local l_ServerScriptService_0 = game:GetService("ServerScriptService");
local l_StarterPlayer_0 = game:GetService("StarterPlayer");
local v2 = require(script.Parent.Parent.ServerUtil);
local function _()
    if not l_ServerScriptService_0:FindFirstChild("SoundDispatcher") then
        local l_StarterCharacterScripts_0 = l_StarterPlayer_0:FindFirstChildOfClass("StarterCharacterScripts");
        if not l_StarterCharacterScripts_0 or not l_StarterCharacterScripts_0:FindFirstChild("Sound") then
            return false;
        else
            return true;
        end;
    else
        return true;
    end;
end;
local function v9(v5, v6)
    local v7 = script.Parent:WaitForChild(v5);
    local l_Script_0 = Instance.new("Script");
    l_Script_0.Name = v5;
    if not v2.getFFlagServerCoreScriptSourceCode() then
        l_Script_0.Source = v7.Source;
    else
        l_Script_0.Source = v2.getSourceForServerScript(v7);
    end;
    l_Script_0.Parent = v6;
    return l_Script_0;
end;
return function()
    local v10;
    if not l_ServerScriptService_0:FindFirstChild("SoundDispatcher") then
        local l_StarterCharacterScripts_1 = l_StarterPlayer_0:FindFirstChildOfClass("StarterCharacterScripts");
        v10 = not not l_StarterCharacterScripts_1 and (l_StarterCharacterScripts_1:FindFirstChild("Sound") and true or false);
    else
        v10 = true;
    end;
    if v10 then
        v10 = true;
        local l_SoundDispatcher_0 = l_ServerScriptService_0:FindFirstChild("SoundDispatcher");
        if not l_SoundDispatcher_0 then
            v10 = false;
            l_SoundDispatcher_0 = v9("SoundDispatcher", l_ServerScriptService_0);
        end;
        if not l_ServerScriptService_0:FindFirstChild("SoundDispatcher") then
            local v13 = l_SoundDispatcher_0:Clone();
            v13.Archivable = false;
            v13.Parent = l_ServerScriptService_0;
        end;
        l_SoundDispatcher_0.Archivable = v10;
        return ;
    else
        return ;
    end;
end;


local v0 = game:DefineFastFlag("ServerCoreScriptSourceCode", false);
local v1 = {
    getFFlagServerCoreScriptSourceCode = function()
        return v0;
    end
};
if v0 then
    local l_InsertService_0 = game:GetService("InsertService");
    local l_Modules_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui", math.huge).Modules;
    local function v7(v4, v5)
        local v6 = {};
        while true do
            if v5 ~= v4 then
                if v5 == nil then
                    return nil;
                else
                    table.insert(v6, 1, v5.Name);
                    v5 = v5.Parent;
                end;
            else
                return v6;
            end;
        end;
    end;
    v1.getSourceForServerScript = function(v8)
        if v8.Source ~= "" then
            return v8.Source;
        else
            local l_l_Modules_0_0 = l_Modules_0;
            local l_SourceCode_0 = l_Modules_0.SourceCode;
            local v11 = v7(l_l_Modules_0_0, v8);
            if v11 == nil then
                error("Instance is not a descendant of the byte code root");
            end;
            local l_l_SourceCode_0_0 = l_SourceCode_0;
            for v13 = 1, #v11 do
                l_l_SourceCode_0_0 = l_l_SourceCode_0_0:FindFirstChild(v11[v13]);
            end;
            if l_l_SourceCode_0_0 == nil then
                error("No source found for instance");
            end;
            return l_l_SourceCode_0_0.Source;
        end;
    end;
    local function _()
        return script.Source == "";
    end;
    v1.initSourceCodeFolder = function()
        if script.Source == "" then
            local v15 = l_InsertService_0:LoadLocalAsset("rbxasset://models/ServerCoreScripts.rbxm");
            local l_Folder_0 = Instance.new("Folder");
            l_Folder_0.Name = "SourceCode";
            l_Folder_0.Parent = l_Modules_0;
            local l_Server_0 = v15.Server;
            local l_Common_0 = v15.Common;
            l_Server_0.Parent = l_Folder_0;
            l_Common_0.Parent = l_Folder_0;
            return ;
        else
            return ;
        end;
    end;
end;
return v1;


local l_AssetService_0 = game:GetService("AssetService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_UGCValidationService_0 = game:GetService("UGCValidationService");
local v3 = require(l_CorePackages_0.UGCValidation);
local v4 = game:DefineFastFlag("MoveUGCValidationFunctionFeature", false) and game:GetEngineFeature("MoveUGCValidationFromAssetService");
local l_game_EngineFeature_0 = game:GetEngineFeature("EngineUGCValidateEditableMeshAndImage");
local l_game_EngineFeature_1 = game:GetEngineFeature("EngineUGCValidationCallbackResultStrings");
local function v26(v7)
    local l_instances_0 = v7.instances;
    local l_assetType_0 = v7.assetType;
    local l_isServer_0 = v7.isServer;
    local l_fullBodyData_0 = v7.fullBodyData;
    local l_allowUnreviewedAssets_0 = v7.allowUnreviewedAssets;
    local l_restrictedUserIds_0 = v7.restrictedUserIds;
    local l_token_0 = v7.token;
    local l_universeId_0 = v7.universeId;
    local v16 = {
        skipSnapshot = true
    };
    local v17 = nil;
    local v18 = nil;
    if not v4 then
        local v19, v20 = v3.validate(l_instances_0, l_assetType_0, l_isServer_0, l_allowUnreviewedAssets_0, l_restrictedUserIds_0, l_token_0);
        v17 = v19;
        v18 = v20;
    elseif not l_fullBodyData_0 then
        local v21, v22 = v3.validate(l_instances_0, l_assetType_0, l_isServer_0, l_allowUnreviewedAssets_0, l_restrictedUserIds_0, l_token_0, l_universeId_0, l_game_EngineFeature_0, v16);
        v17 = v21;
        v18 = v22;
    else
        local v23, v24 = v3.validateFullBody(l_fullBodyData_0, l_isServer_0, l_game_EngineFeature_0);
        v17 = v23;
        v18 = v24;
    end;
    if v17 then
        if not l_game_EngineFeature_1 then
            return true, "Success";
        else
            return true, {
                "Success"
            };
        end;
    elseif not l_game_EngineFeature_1 then
        local v25 = "";
        if v18 then
            v25 = table.concat(v18, "\n");
        end;
        return false, v25;
    else
        return false, v18;
    end;
end;
return function()
    if not v4 then
        l_AssetService_0:RegisterUGCValidationFunction(v26);
        return ;
    else
        l_UGCValidationService_0:RegisterUGCValidationFunction(v26);
        return ;
    end;
end;


local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local l_Players_0 = game:GetService("Players");
local l_VRService_0 = game:GetService("VRService");
local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local v5 = require(l_RobloxGui_0.Modules.Common.AvatarUtil);
local v6 = require(l_RobloxGui_0.Modules.Common.ConnectionUtil);
local v7 = game:DefineFastFlag("DebugImmersionModeNonVR", false);
local v8 = game:DefineFastFlag("UpdateAvatarGestures", false);
local v9 = game:DefineFastFlag("AvatarGesturesTelemetry", false);
local v10 = game:DefineFastInt("VRAvatarGesturesAnalyticsThrottleHundrethsPercent", 0);
local v11 = {};
v11.__index = v11;
v11.new = function()
    local v12 = setmetatable({}, v11);
    v12.connections = v6.new();
    v12.VRPlayers = {};
    v12.connections:connect("AvatarGestures", l_VRService_0:GetPropertyChangedSignal("AvatarGestures"), function()
        v12:onAvatarGesturesChanged();
    end);
    if l_VRService_0.AvatarGestures then
        v12:onAvatarGesturesChanged();
    end;
    return v12;
end;
cleanCharacter = function(v13)
    if v13.Character then
        local l_Humanoid_0 = v13.Character:FindFirstChild("Humanoid");
        if l_Humanoid_0 then
            for _, v16 in pairs({
                "TrackedIKLeftHand",
                "TrackedIKRightHand",
                "TrackedIKHead"
            }) do
                local l_l_Humanoid_0_FirstChild_0 = l_Humanoid_0:FindFirstChild(v16);
                if l_l_Humanoid_0_FirstChild_0 then
                    l_l_Humanoid_0_FirstChild_0:Destroy();
                end;
            end;
        end;
        for _, v19 in pairs({
            "TrackedLeftHand",
            "TrackedRightHand",
            "TrackedHead"
        }) do
            local l_FirstChild_0 = v13.Character:FindFirstChild(v19);
            if l_FirstChild_0 then
                l_FirstChild_0:Destroy();
            end;
        end;
    end;
end;
v11.onPlayerChanged = function(v21, v22, v23)
    v21.VRPlayers[v22] = v23 or nil;
    if not v23 then
        cleanCharacter(v22);
        return ;
    else
        if not v21.avatarUtil then
            v21.avatarUtil = v5.new();
        end;
        v21.avatarUtil:connectPlayerCharacterChanges(v22, function(v24)
            v21:onCharacterChanged(v24);
        end);
        return ;
    end;
end;
v11.onPlayerAdded = function(v25, v26)
    if v9 and next(v25.VRPlayers) ~= nil then
        l_RbxAnalyticsService_0:ReportInfluxSeries("VRAvatarGestures", {
            placeId = game.PlaceId,
            calledFrom = "ServerPlayerAddedWithVRPlayer",
            playerUserID = v26.UserId
        }, v10);
    end;
end;
v11.onAvatarGesturesChanged = function(v27)
    if not v8 then
        if not l_VRService_0.AvatarGestures then
            for _, v29 in pairs(l_Players_0:GetPlayers()) do
                if v29.Character then
                    local l_Humanoid_1 = v29.Character:FindFirstChild("Humanoid");
                    if l_Humanoid_1 then
                        for _, v32 in pairs({
                            "VRIKLeftHand",
                            "VRIKRightHand",
                            "VRIKHead"
                        }) do
                            local l_l_Humanoid_1_FirstChild_0 = l_Humanoid_1:FindFirstChild(v32);
                            if l_l_Humanoid_1_FirstChild_0 then
                                l_l_Humanoid_1_FirstChild_0:Destroy();
                            end;
                        end;
                    end;
                    for _, v35 in pairs({
                        "VRGesturesLeftHand",
                        "VRGesturesRightHand",
                        "VRGesturesHead"
                    }) do
                        local l_FirstChild_1 = v29.Character:FindFirstChild(v35);
                        if l_FirstChild_1 then
                            l_FirstChild_1:Destroy();
                        end;
                    end;
                end;
            end;
            return ;
        elseif v27.avatarUtil then
            for _, v38 in pairs(l_Players_0:GetPlayers()) do
                if v38.Character then
                    v27:onCharacterChanged(v38.Character);
                end;
            end;
            return ;
        else
            v27.avatarUtil = v5.new();
            v27.connections:connect("PlayerAdded", l_Players_0.PlayerAdded, function(v39)
                v27.avatarUtil:connectPlayerCharacterChanges(v39, function(v40)
                    v27:onCharacterChanged(v40);
                end);
            end);
            for _, v42 in pairs(l_Players_0:GetPlayers()) do
                v27.avatarUtil:connectPlayerCharacterChanges(v42, function(v43)
                    v27:onCharacterChanged(v43);
                end);
            end;
            return ;
        end;
    elseif not l_VRService_0.AvatarGestures then
        for v44 in pairs(v27.VRPlayers) do
            v27:onPlayerChanged(v44, false);
        end;
        v27.connections:disconnectAll();
        v27.connections:connect("AvatarGestures", l_VRService_0:GetPropertyChangedSignal("AvatarGestures"), function()
            v27:onAvatarGesturesChanged();
        end);
        return ;
    else
        local l_AvatarGesturesVRPlayer_0 = l_RobloxReplicatedStorage_0:FindFirstChild("AvatarGesturesVRPlayer");
        if not l_AvatarGesturesVRPlayer_0 then
            l_AvatarGesturesVRPlayer_0 = Instance.new("RemoteEvent");
            l_AvatarGesturesVRPlayer_0.Name = "AvatarGesturesVRPlayer";
            l_AvatarGesturesVRPlayer_0.Parent = l_RobloxReplicatedStorage_0;
        end;
        v27.connections:connect("VRPlayerOnServerEvent", l_AvatarGesturesVRPlayer_0.OnServerEvent, function(v46, v47)
            v27:onPlayerChanged(v46, v47);
        end);
        v27.connections:connect("PlayerAdded", l_Players_0.PlayerAdded, function(v48)
            v27:onPlayerAdded(v48);
        end);
        v27.connections:connect("PlayerRemoving", l_Players_0.PlayerRemoving, function(v49)
            v27:onPlayerChanged(v49, false);
        end);
        return ;
    end;
end;
v11.findOrCreateColliders = function(_, v51, v52)
    local l_l_Players_0_PlayerFromCharacter_0 = l_Players_0:GetPlayerFromCharacter(v52);
    local v54 = nil;
    v54 = if not v8 then "VRGestures" .. v51 else "Tracked" .. v51;
    local l_v52_FirstChild_0 = v52:FindFirstChild(v54);
    if not l_v52_FirstChild_0 then
        l_v52_FirstChild_0 = Instance.new("Part");
        l_v52_FirstChild_0.Name = v54;
        l_v52_FirstChild_0.Transparency = 1;
        l_v52_FirstChild_0.CanCollide = false;
        l_v52_FirstChild_0.Parent = v52;
        l_v52_FirstChild_0:SetNetworkOwner(l_l_Players_0_PlayerFromCharacter_0);
    end;
    local l_l_v52_FirstChild_0_FirstChild_0 = l_v52_FirstChild_0:FindFirstChild(v54 .. "Attachment");
    if not l_l_v52_FirstChild_0_FirstChild_0 then
        l_l_v52_FirstChild_0_FirstChild_0 = Instance.new("Attachment");
        l_l_v52_FirstChild_0_FirstChild_0.Name = v54 .. "Attachment";
        l_l_v52_FirstChild_0_FirstChild_0.Parent = l_v52_FirstChild_0;
    end;
    local l_l_v52_FirstChild_0_FirstChild_1 = l_v52_FirstChild_0:FindFirstChild(v54 .. "AlignPosition");
    if not l_l_v52_FirstChild_0_FirstChild_1 then
        l_l_v52_FirstChild_0_FirstChild_1 = Instance.new("AlignPosition");
        l_l_v52_FirstChild_0_FirstChild_1.Name = v54 .. "AlignPosition";
        l_l_v52_FirstChild_0_FirstChild_1.Mode = Enum.PositionAlignmentMode.OneAttachment;
        l_l_v52_FirstChild_0_FirstChild_1.Attachment0 = l_l_v52_FirstChild_0_FirstChild_0;
        l_l_v52_FirstChild_0_FirstChild_1.RigidityEnabled = true;
        l_l_v52_FirstChild_0_FirstChild_1.Parent = l_v52_FirstChild_0;
    end;
    local l_l_v52_FirstChild_0_FirstChild_2 = l_v52_FirstChild_0:FindFirstChild(v54 .. "AlignOrientation");
    if not l_l_v52_FirstChild_0_FirstChild_2 then
        l_l_v52_FirstChild_0_FirstChild_2 = Instance.new("AlignOrientation");
        l_l_v52_FirstChild_0_FirstChild_2.Name = v54 .. "AlignOrientation";
        l_l_v52_FirstChild_0_FirstChild_2.Mode = Enum.OrientationAlignmentMode.OneAttachment;
        l_l_v52_FirstChild_0_FirstChild_2.Attachment0 = l_l_v52_FirstChild_0_FirstChild_0;
        l_l_v52_FirstChild_0_FirstChild_2.RigidityEnabled = true;
        l_l_v52_FirstChild_0_FirstChild_2.Parent = l_v52_FirstChild_0;
    end;
    local l_v52_FirstChild_1 = v52:FindFirstChild(v51);
    if not l_v52_FirstChild_1 then
        l_v52_FirstChild_0.Size = Vector3.new(1, 1, 1);
        l_v52_FirstChild_0.CFrame = v52.WorldPivot;
        l_l_v52_FirstChild_0_FirstChild_1.Position = v52.WorldPivot.Position;
        l_l_v52_FirstChild_0_FirstChild_2.CFrame = v52.WorldPivot;
    else
        l_v52_FirstChild_0.Size = l_v52_FirstChild_1.Size;
        l_v52_FirstChild_0.CFrame = l_v52_FirstChild_1.CFrame;
        l_l_v52_FirstChild_0_FirstChild_1.Position = l_v52_FirstChild_1.Position;
        l_l_v52_FirstChild_0_FirstChild_2.CFrame = l_v52_FirstChild_1.CFrame;
    end;
    local l_Humanoid_2 = v52:FindFirstChild("Humanoid");
    if l_Humanoid_2 then
        local v61 = nil;
        v61 = if not v8 then "VRIK" .. v51 else "TrackedIK" .. v51;
        local l_l_Humanoid_2_FirstChild_0 = l_Humanoid_2:FindFirstChild(v61);
        if not l_l_Humanoid_2_FirstChild_0 then
            l_l_Humanoid_2_FirstChild_0 = Instance.new("IKControl");
            l_l_Humanoid_2_FirstChild_0.Name = v61;
        end;
        l_l_Humanoid_2_FirstChild_0.SmoothTime = 0.1;
        l_l_Humanoid_2_FirstChild_0.Parent = l_Humanoid_2;
        l_l_Humanoid_2_FirstChild_0.Target = l_v52_FirstChild_0;
    end;
end;
v11.createHandCollider = function(v63, v64, v65)
    v63:findOrCreateColliders(v64 .. "Hand", v65);
    local l_v65_FirstChild_0 = v65:FindFirstChild(v64 .. "Hand");
    local l_Humanoid_3 = v65:FindFirstChild("Humanoid");
    if l_Humanoid_3 then
        local _ = "VRIK" .. v64 .. "Hand";
        local l_l_Humanoid_3_FirstChild_0 = l_Humanoid_3:FindFirstChild(if not v8 then "VRIK" .. v64 .. "Hand" else "TrackedIK" .. v64 .. "Hand");
        if l_l_Humanoid_3_FirstChild_0 then
            l_l_Humanoid_3_FirstChild_0.Type = Enum.IKControlType.Transform;
            local l_v65_FirstChild_1 = v65:FindFirstChild(v64 .. "UpperArm");
            if l_v65_FirstChild_1 then
                l_l_Humanoid_3_FirstChild_0.ChainRoot = l_v65_FirstChild_0;
                coroutine.wrap(function()
                    task.wait(0.1);
                    l_l_Humanoid_3_FirstChild_0.ChainRoot = l_v65_FirstChild_1;
                end)();
            end;
            if l_v65_FirstChild_0 then
                l_l_Humanoid_3_FirstChild_0.EndEffector = l_v65_FirstChild_0;
            end;
            l_l_Humanoid_3_FirstChild_0.Priority = 1;
        end;
    end;
    if l_v65_FirstChild_0 then
        local l_RagdollBallSocket_0 = l_v65_FirstChild_0:FindFirstChild("RagdollBallSocket");
        if l_RagdollBallSocket_0 then
            l_RagdollBallSocket_0.LimitsEnabled = false;
        end;
    end;
end;
v11.createHeadCollider = function(v72, v73)
    v72:findOrCreateColliders("Head", v73);
    local l_Head_0 = v73:FindFirstChild("Head");
    local l_Humanoid_4 = v73:FindFirstChild("Humanoid");
    if l_Humanoid_4 then
        local _ = nil;
        local l_l_Humanoid_4_FirstChild_0 = l_Humanoid_4:FindFirstChild(not v8 and "VRIKHead" or "TrackedIKHead");
        if l_l_Humanoid_4_FirstChild_0 then
            l_l_Humanoid_4_FirstChild_0.Type = Enum.IKControlType.Rotation;
            local l_UpperTorso_0 = v73:FindFirstChild("UpperTorso");
            if l_UpperTorso_0 then
                l_l_Humanoid_4_FirstChild_0.ChainRoot = l_UpperTorso_0;
            end;
            if l_Head_0 then
                l_l_Humanoid_4_FirstChild_0.EndEffector = l_Head_0;
            end;
        end;
    end;
end;
v11.onCharacterChanged = function(v79, v80)
    local l_l_Players_0_PlayerFromCharacter_1 = l_Players_0:GetPlayerFromCharacter(v80);
    if not v8 then
        if not (not l_l_Players_0_PlayerFromCharacter_1.VREnabled and not v7 or not l_VRService_0.AvatarGestures) then
            v79:createHandCollider("Left", v80);
            v79:createHandCollider("Right", v80);
            v79:createHeadCollider(v80);
        end;
    elseif not (not v79.VRPlayers[l_l_Players_0_PlayerFromCharacter_1] or not l_VRService_0.AvatarGestures) then
        v79:createHandCollider("Left", v80);
        v79:createHandCollider("Right", v80);
        v79:createHeadCollider(v80);
        return ;
    end;
end;
return v11;


local v0 = require(game:GetService("CorePackages").Cryo);
local v1 = {};
v1.__index = v1;
v1.new = function(v2, v3)
    assert(v2, "BlockingAnalytics must be passed the ID of the local user");
    local v4 = {
        _eventStreamImpl = v3.EventStream,
        localUserId = v2
    };
    setmetatable(v4, v1);
    return v4;
end;
v1.action = function(v5, v6, v7, v8)
    v5._eventStreamImpl:SendEventDeferred("AccountSettingsApi", v6, v7, (v0.Dictionary.join(v8 or {}, {
        blockerUserId = v5.localUserId
    })));
end;
return v1;


local l_AdService_0 = game:GetService("AdService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_HttpRbxApiService_0 = game:GetService("HttpRbxApiService");
local v4 = require(l_CorePackages_0.Packages.RoactAppExperiment);
local v5 = require(l_CorePackages_0.Promise);
local v6 = require(l_CorePackages_0.Roact);
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v8 = require(l_RobloxGui_0.Modules.Common.httpRequest)(l_HttpRbxApiService_0);
local l_RobloxTranslator_0 = require(l_RobloxGui_0.Modules:WaitForChild("RobloxTranslator"));
local l_GetGameNameAndDescription_0 = require(l_CorePackages_0.Workspace.Packages.GameDetailRodux).GetGameNameAndDescription;
local v11 = require(l_RobloxGui_0.Modules.Flags.GetFFlagEnableTeleportBackButton);
local v12 = require(l_RobloxGui_0.Modules.Flags.GetFStringTeleportBackButtonIXPCustomLayerName);
local v13 = 0;
local l_l_AdService_0_AdTeleportInfo_0, v15 = l_AdService_0:GetAdTeleportInfo();
if l_l_AdService_0_AdTeleportInfo_0 > 0 and (not (v15 ~= 0) or v15 == game.GameId) then
    v13 = l_l_AdService_0_AdTeleportInfo_0;
end;
local v16 = nil;
local v19 = v5.defer(function(v17)
    if v13 > 0 then
        l_GetGameNameAndDescription_0(v8, v13):andThen(function(v18)
            v16 = v18.Name;
        end):await();
        v17();
        return ;
    else
        v17();
        return ;
    end;
end);
local v20 = {
    getTooltipText = function()
        if v16 == nil then
            return l_RobloxTranslator_0:FormatByKey("InGame.CommonUI.Label.ReturnFallback");
        else
            return l_RobloxTranslator_0:FormatByKey("InGame.CommonUI.Label.ReturnTo", {
                placeName = v16
            });
        end;
    end
};
v20.getTooltipTextTimeout = function()
    if v16 == nil then
        v5.any({
            v19,
            v5.delay(1)
        }):await();
    end;
    return v20.getTooltipText();
end;
v20.getMenuText = function()
    local v21, v22 = v6.createBinding(v20.getTooltipText());
    if v16 == nil then
        pcall(function()
            v19:andThen(function()
                v22(v20.getTooltipText());
            end);
        end);
    end;
    return v21;
end;
v20.initiateBackButtonTeleport = function(v23)
    l_AdService_0:ReturnToPublisherExperience(v23);
end;
v20.connectExperimentUserLayer = function(v24, v25, v26)
    local v27 = v11() and v13 > 0;
    return v4.connectUserLayer({
        v12()
    }, function(v28, _)
        return {
            [v25] = v27 and ((v28[v12()] or {})[v26] or false)
        };
    end)(v24);
end;
return v20;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v4.Style.withStyle;
local l_ButtonType_0 = v4.App.Button.Enum.ButtonType;
local l_InteractiveAlert_0 = v4.App.Dialog.Alert.InteractiveAlert;
local v8 = require(l_RobloxGui_0.Modules.Flags.GetFFlagWrapBlockModalScreenInProvider);
local v9 = v2.PureComponent:extend("ActionModal");
v9.defaultProps = {
    screenSize = Vector2.new(1000, 1000)
};
v9.validateProps = v3.interface({
    action = v3.callback,
    actionText = v3.string,
    body = v3.string,
    cancel = v3.callback,
    cancelText = v3.string,
    screenSize = v3.optional(v3.Vector2),
    title = v3.string
});
v9.render = function(v10)
    return l_withStyle_0(function(v11)
        return v2.createElement("ImageButton", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = v11.Theme.Overlay.Transparency,
            BackgroundColor3 = v11.Theme.Overlay.Color,
            Active = true,
            AutoButtonColor = false,
            Selectable = if not v8() then nil else false,
            Visible = v10.props.Visible,
            [v2.Event.Activated] = v10.props.cancel
        }, {
            AlertModal = v2.createElement(l_InteractiveAlert_0, {
                title = v10.props.title,
                bodyText = v10.props.body,
                buttonStackInfo = {
                    buttons = {
                        {
                            buttonType = l_ButtonType_0.Secondary,
                            props = {
                                text = v10.props.cancelText,
                                onActivated = v10.props.cancel
                            }
                        },
                        {
                            buttonType = l_ButtonType_0.Alert,
                            props = {
                                text = v10.props.actionText,
                                onActivated = v10.props.action
                            }
                        }
                    }
                },
                screenSize = v10.props.screenSize
            })
        });
    end);
end;
return v9;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_RobloxGui_0.Modules.Common.FocusNavigationEffectsWrapper);
local v6 = require(script.Parent.BlockingModalContainer);
local v7 = require(l_RobloxGui_0.Modules.Common.renderWithCoreScriptsStyleProvider);
local l_FocusNavigableSurfaceIdentifierEnum_0 = require(l_CorePackages_0.Workspace.Packages.FocusNavigationUtils).FocusNavigableSurfaceIdentifierEnum;
local v9 = require(l_RobloxGui_0.Modules.Flags.GetFFlagWrapBlockModalScreenInProvider);
local v10 = v3.PureComponent:extend("BlockingModalScreen");
v10.validateProps = v4.interface({
    closeModal = v4.callback,
    player = v4.interface({
        DisplayName = v4.string,
        Name = v4.string,
        UserId = v4.number
    }),
    translator = v4.optional(v4.table),
    source = v4.optional(v4.string)
});
v10.render = function(v11)
    local v12 = v3.createElement(v6, v11.props);
    if v9() then
        v12 = v3.createElement(v5, {
            selectionGroupName = "BlockingModalScreen" .. tostring(v11.props.player.UserId),
            focusNavigableSurfaceIdentifier = l_FocusNavigableSurfaceIdentifierEnum_0.CentralOverlay
        }, {
            BlockingModalContainerWrapper = v12
        });
    end;
    return v7({
        v3.createElement(v3.Portal, {
            target = l_CoreGui_0
        }, {
            BlockingModalScreen = v3.createElement("ScreenGui", {
                IgnoreGuiInset = true,
                AutoLocalize = false,
                DisplayOrder = 6
            }, {
                BlockingModalContainer = v12
            })
        })
    });
end;
return v10;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.React);
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.UIBlox);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local l_Images_0 = v3.App.ImageSet.Images;
local l_ImageSetLabel_0 = v3.Core.ImageSet.ImageSetLabel;
local l_useStyle_0 = v3.Core.Style.useStyle;
local l_BaseMenu_0 = v3.App.Menu.BaseMenu;
local v10 = l_Images_0["icons/actions/truncationExpand_small"];
local v11 = v5.wrap(v4.strictInterface({
    buttonSize = v4.UDim2,
    dropdownList = v4.table,
    selectedIndex = v4.number,
    onSelection = v4.callback,
    layoutOrder = v4.number
}));
return function(v12)
    assert(v11(v12));
    local v13 = l_useStyle_0();
    local l_CaptionHeader_0 = v13.Font.CaptionHeader;
    local v15 = l_CaptionHeader_0.RelativeSize * v13.Font.BaseSize;
    local v16 = if not v13.UIBloxThemeEnabled then Color3.fromRGB(79, 84, 95) else v13.color("ControlInputBackground");
    local v17, v18 = v1.useState(false);
    local v19, v20 = v1.useState({});
    local v21 = v1.useCallback(function()
        v18(not v17);
    end);
    v1.useEffect(function()
        local v22 = {};
        for v23, v24 in pairs(v12.dropdownList) do
            v22[v23] = {
                text = v24,
                fontStyle = {
                    Font = l_CaptionHeader_0.Font,
                    RelativeSize = l_CaptionHeader_0.RelativeSize
                },
                onActivated = function()
                    v12.onSelection(v23);
                    v18(false);
                end,
                leftPaddingOffset = -12,
                selected = v23 == v12.selectedIndex,
                selectedIconPaddingRight = 12
            };
        end;
        v20(v22);
    end, {
        v12.dropdownList,
        v12.selectedIndex
    });
    return v2.createElement("Frame", {
        Size = v12.buttonSize,
        LayoutOrder = v12.layoutOrder,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        ZIndex = 3
    }, {
        SpawnButton = v2.createElement("TextButton", {
            Size = UDim2.new(1, 0, 1, 0),
            Text = v12.dropdownList[v12.selectedIndex],
            TextColor3 = Color3.new(1, 1, 1),
            TextSize = v15,
            Font = l_CaptionHeader_0.Font,
            TextXAlignment = Enum.TextXAlignment.Left,
            BackgroundColor3 = v16,
            BackgroundTransparency = 0,
            LayoutOrder = v12.layoutOrder,
            [v2.Event.Activated] = v21
        }, {
            UICorner = v2.createElement("UICorner", {
                CornerRadius = UDim.new(0, 4)
            }),
            UIPadding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 12)
            }),
            UIStroke = v2.createElement("UIStroke", {
                ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
                Color = Color3.new(1, 1, 1),
                Thickness = 1,
                Transparency = 0.8
            }),
            Arrow = v2.createElement(l_ImageSetLabel_0, {
                Image = v10,
                BackgroundTransparency = 1,
                Size = UDim2.new(0, 16, 0, 16),
                Position = UDim2.new(1, -28, 0.5, -8)
            })
        }),
        Dropdown = v17 and v2.createElement(l_BaseMenu_0, {
            buttonProps = v19,
            position = UDim2.new(0, 0, 1, 6),
            layoutOrder = 2,
            elementHeight = 40,
            background = {
                Color = v16
            },
            showDropShadow = true
        })
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v3 = require(l_RobloxGui_0.Modules.Common.CoreScriptsRootProvider);
local v4 = require(l_RobloxGui_0.Modules.Common.FocusNavigationEffectsWrapper);
local v5 = require(l_CorePackages_0.Packages.React);
local v6 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums);
local l_FocusNavigableSurfaceIdentifierEnum_0 = require(l_CorePackages_0.Workspace.Packages.FocusNavigationUtils).FocusNavigableSurfaceIdentifierEnum;
local l_DeviceType_0 = v6.DeviceType;
OverscanWrapper = function(v9)
    return function(v10)
        return v5.createElement(v3, {
            styleOverride = {
                deviceType = l_DeviceType_0.Console
            }
        }, {
            FocusNavigationEffects = v5.createElement(v4, {
                selectionGroupName = "OverscanScreen",
                focusNavigableSurfaceIdentifier = l_FocusNavigableSurfaceIdentifierEnum_0.CentralOverlay
            }, {
                Overscan = v5.createElement(v9, v10)
            })
        });
    end;
end;
return OverscanWrapper;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local l_ImageSetButton_0 = require(l_CorePackages_0.UIBlox).Core.ImageSet.ImageSetButton;
local v4 = v1.PureComponent:extend("PermissionButton");
v4.validateProps = v2.strictInterface({
    callback = v2.callback,
    image = v2.table,
    LayoutOrder = v2.number,
    useNewMenuTheme = v2.boolean,
    imageLabelProps = v2.optional(v2.table)
});
v4.render = function(v5)
    return v1.createElement("ImageButton", {
        LayoutOrder = v5.props.LayoutOrder,
        Image = not v5.props.useNewMenuTheme and "rbxasset://textures/ui/dialog_white.png" or "rbxasset://textures/ui/TopBar/iconBase.png",
        ImageTransparency = not v5.props.useNewMenuTheme and 0.85 or 0,
        BackgroundTransparency = 1,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = Rect.new(10, 10, 10, 10),
        Size = UDim2.new(0, 32, 0, 32)
    }, {
        ImageLabel = v1.createElement(l_ImageSetButton_0, {
            LayoutOrder = 2,
            Image = v5.props.image,
            BackgroundTransparency = 1,
            Size = not not v5.props.imageLabelProps and v5.props.imageLabelProps.Size or UDim2.new(0, 32, 0, 32),
            Position = v5.props.imageLabelProps and v5.props.imageLabelProps.Position,
            [v1.Event.Activated] = v5.props.callback
        })
    });
end;
return v4;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_FaceAnimatorService_0 = game:GetService("FaceAnimatorService");
local l_StarterGui_0 = game:GetService("StarterGui");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_VideoCaptureService_0 = game:GetService("VideoCaptureService");
local v6 = require(l_CorePackages_0.Roact);
local v7 = require(l_CorePackages_0.UIBlox);
local v8 = require(l_CorePackages_0.Packages.t);
local l_default_0 = require(l_CorePackages_0.Workspace.Packages.PermissionsProtocol).PermissionsProtocol.default;
local v10 = require(l_RobloxGui_0.Modules.SelfView.toggleSelfViewSignal);
local v11 = require(l_RobloxGui_0.Modules.SelfView.selfViewVisibilityUpdatedSignal);
local v12 = require(l_RobloxGui_0.Modules.Settings.getCamMicPermissions);
local v13 = require(l_RobloxGui_0.Modules.Settings.isCamEnabledForUserAndPlace);
local v14 = require(l_RobloxGui_0.Modules.InGameChat.BubbleChat.Helpers.displayCameraDeniedToast);
local v15 = require(l_RobloxGui_0.Modules.SelfView.publicApi);
local l_ExternalEventConnection_0 = v7.Utility.ExternalEventConnection;
local l_Images_0 = v7.App.ImageSet.Images;
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v19 = require(l_Modules_0.Settings.Components.PermissionButton);
local v20 = require(l_Modules_0.Settings.Components.RecordingIndicator);
local l_default_1 = require(l_Modules_0.VoiceChat.VoiceChatServiceManager).default;
local v22 = require(l_Modules_0.VoiceChat.Constants);
local v23 = require(l_RobloxGui_0.Modules.Logger):new(script.Name);
local v24 = require(l_RobloxGui_0.Modules.Flags.GetFFlagInvertMuteAllPermissionButton);
local v25 = require(l_RobloxGui_0.Modules.Flags.FFlagAvatarChatCoreScriptSupport);
local v26 = require(l_RobloxGui_0.Modules.Flags.GetFFlagUpdateSelfieViewOnBan);
local v27 = require(l_RobloxGui_0.Modules.Flags.GetFFlagShowMicConnectingIconAndToast);
local v28 = require(l_RobloxGui_0.Modules.Flags.FFlagMuteNonFriendsEvent);
local v29 = require(l_RobloxGui_0.Modules.Flags.getFFlagDoNotPromptCameraPermissionsOnMount);
local v30 = require(l_RobloxGui_0.Modules.Flags.GetFFlagRemoveInGameChatBubbleChatReferences);
local v31 = require(l_RobloxGui_0.Modules.Flags.GetFFlagJoinWithoutMicPermissions);
if v30() then
    v14 = require(l_RobloxGui_0.Modules.VoiceChat.Helpers.displayCameraDeniedToast);
end;
local v32 = require(l_RobloxGui_0.Modules.SelfView.Analytics).new();
local v33 = v6.PureComponent:extend("PermissionsButtons");
local v34 = l_Images_0["icons/controls/video"];
local v35 = l_Images_0["icons/controls/videoOff"];
local v36 = l_Images_0["icons/controls/microphone"];
local v37 = l_Images_0["icons/controls/microphoneMute"];
local v38 = l_Images_0["icons/controls/selfie"];
local v39 = l_Images_0["icons/controls/selfieOff"];
local v40 = l_Images_0["icons/controls/headphone"];
local v41 = l_Images_0["icons/controls/headphoneDeafen"];
v33.validateProps = v8.strictInterface({
    isPortrait = v8.boolean,
    isSmallTouchScreen = v8.boolean,
    isTenFootInterface = v8.boolean,
    ZIndex = v8.number,
    LayoutOrder = v8.number,
    shouldFillScreen = v8.boolean,
    selfViewOpen = v8.boolean,
    useNewMenuTheme = v8.boolean
});
local function v43(v42)
    return v6.createElement("Frame", {
        LayoutOrder = v42,
        Size = UDim2.new(0, 2, 0, 24),
        BorderSizePixel = 0,
        BackgroundTransparency = 0.2
    }, {
        UICorner = v6.createElement("UICorner", {
            CornerRadius = UDim.new(0.5, 0)
        })
    });
end;
v33.init = function(v44)
    local v45 = ((l_FaceAnimatorService_0 and l_FaceAnimatorService_0:IsStarted()) and l_FaceAnimatorService_0.VideoAnimationEnabled) and l_VideoCaptureService_0.Active;
    local v46 = l_default_1.localMuted ~= nil and (not l_default_1.localMuted or false);
    local v47 = (v25 and l_StarterGui_0:GetCoreGuiEnabled(Enum.CoreGuiType.SelfView)) and (v44.state.hasCameraPermissions or v44.state.hasMicPermissions);
    if v29() then
        v47 = (v25 and l_StarterGui_0:GetCoreGuiEnabled(Enum.CoreGuiType.SelfView)) and ((v13() or v44.state.hasMicPermissions) or v44.state.hasCameraPermissions);
    end;
    v44:setState({
        allPlayersMuted = false,
        microphoneEnabled = v46,
        isVoiceConnecting = l_default_1.localMuted == nil,
        voiceServiceInitialized = false,
        cameraEnabled = v45,
        selfViewOpen = v44.props.selfViewOpen,
        showSelfView = v47,
        hasCameraPermissions = false,
        hasMicPermissions = false
    });
    if v27() then
        l_default_1:asyncInit():andThen(function()
            if l_default_1:getService() then
                v44:setState({
                    voiceServiceInitialized = true
                });
            end;
        end):catch(function()
            v23:warning("VoiceChatServiceManager failed to initialize");
        end);
    end;
    v44.selfViewVisibilityUpdatedSignal = v11:connect(function()
        v44:setState({
            selfViewOpen = v15.getSelfViewIsOpenAndVisible()
        });
    end);
    v44.toggleMuteAll = function()
        if l_default_1:getService() then
            local v48 = not v44.state.allPlayersMuted;
            l_default_1:MuteAll(v48, v22.VOICE_CONTEXT_TYPE.IN_GAME_MENU);
            v44:setState({
                allPlayersMuted = v48
            });
            return ;
        else
            return ;
        end;
    end;
    v44.toggleMuteAllIcon = function(v49)
        v44:setState({
            allPlayersMuted = v49
        });
    end;
    v44.toggleMic = function()
        if not v27() or not v44.state.isVoiceConnecting then
            if l_default_1:getService() then
                l_default_1:ToggleMic("InGameMenuPermissionsBar");
                v32:setLastCtx("inExperienceEscapeMenu");
                v44:setState({
                    microphoneEnabled = not l_default_1.localMuted
                });
                return ;
            else
                return ;
            end;
        else
            l_default_1:ShowVoiceChatLoadingMessage();
            return ;
        end;
    end;
    v44.toggleVideo = function()
        if l_FaceAnimatorService_0 and l_FaceAnimatorService_0:IsStarted() then
            l_FaceAnimatorService_0.VideoAnimationEnabled = not l_FaceAnimatorService_0.VideoAnimationEnabled;
            v32:setLastCtx("inExperienceEscapeMenu");
            v44:setState({
                cameraEnabled = l_FaceAnimatorService_0.VideoAnimationEnabled
            });
            return ;
        else
            return ;
        end;
    end;
    v44.onVideoButtonPressed = function()
        if not v29() or v44.state.hasCameraPermissions then
            v44:toggleVideo();
            return ;
        else
            v12(function(v50)
                v44:setState({
                    hasCameraPermissions = v50.hasCameraPermissions
                });
                if not v50.hasCameraPermissions then
                    v14();
                    return ;
                else
                    v44:toggleVideo();
                    return ;
                end;
            end, {
                l_default_0.Permissions.CAMERA_ACCESS
            });
            return ;
        end;
    end;
    v44.toggleSelfView = function()
        v10:fire();
        v44:setState({
            selfViewOpen = not v44.state.selfViewOpen
        });
    end;
    v44.muteChangedEvent = function(v51)
        v44:setState({
            microphoneEnabled = not v51
        });
    end;
    v44.onSelfViewVisibilityUpdated = function()
        v44:setState({
            selfViewOpen = v15.getSelfViewIsOpenAndVisible()
        });
    end;
    v44.onCoreGuiChanged = function()
        local l_l_StarterGui_0_CoreGuiEnabled_0 = l_StarterGui_0:GetCoreGuiEnabled(Enum.CoreGuiType.SelfView);
        if v44.state.showSelfView ~= l_l_StarterGui_0_CoreGuiEnabled_0 then
            local v53 = (v25 and l_l_StarterGui_0_CoreGuiEnabled_0) and (v44.state.hasCameraPermissions or v44.state.hasMicPermissions);
            if v29() then
                v53 = (v25 and l_StarterGui_0:GetCoreGuiEnabled(Enum.CoreGuiType.SelfView)) and ((v13() or v44.state.hasMicPermissions) or v44.state.hasCameraPermissions);
            end;
            v44:setState({
                showSelfView = v53
            });
        end;
    end;
    v44.updateVideoCaptureEnabled = function()
        v44:setState({
            cameraEnabled = l_FaceAnimatorService_0.VideoAnimationEnabled
        });
    end;
    if v27() then
        v44.onVoiceStateChange = function(_, v55)
            if not (l_default_1:GetVoiceStateFromEnum(v55) == l_default_1.VOICE_STATE.CONNECTING or not v44.state.isVoiceConnecting) then
                v44:setState({
                    isVoiceConnecting = false
                });
            end;
        end;
    end;
end;
v33.getPermissions = function(v56)
    v12(function(v57)
        v56:setState({
            hasCameraPermissions = v57.hasCameraPermissions,
            hasMicPermissions = v57.hasMicPermissions
        });
    end, nil, nil, "PermissionsButtons.getPermissions");
end;
v33.getMicPermission = function(v58)
    v12(function(v59)
        v58:setState({
            hasMicPermissions = v59.hasMicPermissions
        });
    end, {
        l_default_0.Permissions.MICROPHONE_ACCESS
    }, nil, "PermissionsButtons.getMicPermission");
end;
v33.getCameraPermissionWithoutRequest = function(v60)
    v12(function(v61)
        v60:setState({
            hasCameraPermissions = v61.hasCameraPermissions
        });
    end, {
        l_default_0.Permissions.CAMERA_ACCESS
    }, true);
end;
v33.getCameraButtonVisibleAtMount = function(_)
    return v13();
end;
v33.didUpdate = function(v63, _, v65)
    local l_l_StarterGui_0_CoreGuiEnabled_1 = l_StarterGui_0:GetCoreGuiEnabled(Enum.CoreGuiType.SelfView);
    if not (v63.state.hasCameraPermissions == v65.hasCameraPermissions) or v63.state.hasMicPermissions ~= v65.hasMicPermissions then
        local v67 = (v25 and l_l_StarterGui_0_CoreGuiEnabled_1) and (v63.state.hasCameraPermissions or v63.state.hasMicPermissions);
        if v29() then
            v67 = (v25 and l_StarterGui_0:GetCoreGuiEnabled(Enum.CoreGuiType.SelfView)) and ((v13() or v63.state.hasMicPermissions) or v63.state.hasCameraPermissions);
        end;
        v63:setState({
            showSelfView = v67
        });
    end;
end;
v33.didMount = function(v68)
    if not v29() then
        v68:getPermissions();
        return ;
    else
        v68:getMicPermission();
        v68:getCameraPermissionWithoutRequest();
        return ;
    end;
end;
v33.isShowingPermissionButtons = function(v69)
    if not v29() then
        return (v69.state.hasMicPermissions or v69.state.hasCameraPermissions) or v69.state.showSelfView;
    else
        return ((v69.state.hasMicPermissions or v69.state.hasCameraPermissions) or v69.state.showSelfView) or v69:getCameraButtonVisibleAtMount();
    end;
end;
v33.render = function(v70)
    local l_hasMicPermissions_0 = v70.state.hasMicPermissions;
    if v26() then
        l_hasMicPermissions_0 = v70.state.hasMicPermissions and not l_default_1:VoiceChatEnded();
    end;
    if v31() then
        l_hasMicPermissions_0 = v70.state.voiceServiceInitialized and not l_default_1:VoiceChatEnded();
    end;
    local l_hasCameraPermissions_0 = v70.state.hasCameraPermissions;
    if v29() then
        l_hasCameraPermissions_0 = v70:getCameraButtonVisibleAtMount();
    end;
    local v73 = if not v24() then v70.state.allPlayersMuted else not v70.state.allPlayersMuted;
    local v74 = not (v70.props.isPortrait or v70.props.isTenFootInterface) and not v70.props.isSmallTouchScreen or v70.props.useNewMenuTheme;
    local v75 = (not v27() or not v70.state.isVoiceConnecting) and l_hasMicPermissions_0;
    local l_v36_0 = v36;
    local v77 = nil;
    if not v27() or not v70.state.isVoiceConnecting then
        if not v70.state.microphoneEnabled then
            l_v36_0 = v37;
        end;
    else
        l_v36_0 = l_default_1:GetIcon("Connecting", "New");
        v77 = {
            Size = UDim2.fromOffset(14, 22),
            Position = UDim2.fromOffset(9, 4)
        };
    end;
    return v70:isShowingPermissionButtons() and v6.createElement("Frame", {
        AutomaticSize = Enum.AutomaticSize.XY,
        ZIndex = v70.props.ZIndex,
        BackgroundTransparency = 1,
        Position = UDim2.new(0, 0, 0, 0),
        Size = UDim2.new(not v70.props.shouldFillScreen and 0 or 1, 0, 0, 0),
        AnchorPoint = if not v74 then Vector2.new(0.5, 0.5) else Vector2.new(0, 0),
        LayoutOrder = v70.props.LayoutOrder,
        Visible = not v70.props.isTenFootInterface
    }, {
        UIPaddingPermissionsContainer = v6.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, not v70.props.isSmallTouchScreen and 74 or 54),
            PaddingTop = UDim.new(0, 4)
        }),
        UIListLayout = v6.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, not v70.props.isSmallTouchScreen and 24 or 10)
        }),
        Divider1 = v43(1),
        Container = v6.createElement("Frame", {
            AutomaticSize = Enum.AutomaticSize.X,
            Size = UDim2.fromOffset(0, 38),
            BackgroundTransparency = 1,
            ClipsDescendants = true,
            LayoutOrder = 2
        }, {
            UIListLayoutPermissionsContainer = v6.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, not v70.props.isSmallTouchScreen and 24 or 10)
            }),
            if not v26() then v6.createElement(v19, {
                LayoutOrder = 1,
                image = if not v73 then v41 else v40,
                callback = v70.toggleMuteAll,
                useNewMenuTheme = v70.props.useNewMenuTheme
            }) else l_hasMicPermissions_0 and v6.createElement(v19, {
                LayoutOrder = 1,
                image = if not v73 then v41 else v40,
                callback = v70.toggleMuteAll,
                useNewMenuTheme = v70.props.useNewMenuTheme
            }),
            ToggleMicButton = l_hasMicPermissions_0 and v6.createElement(v19, {
                LayoutOrder = 2,
                image = l_v36_0,
                callback = v70.toggleMic,
                useNewMenuTheme = v70.props.useNewMenuTheme,
                imageLabelProps = v77
            }),
            EnableVideoButton = l_hasCameraPermissions_0 and v6.createElement(v19, {
                LayoutOrder = 3,
                image = if not v70.state.cameraEnabled then v35 else v34,
                callback = if not v29() then v70.toggleVideo else v70.onVideoButtonPressed,
                useNewMenuTheme = v70.props.useNewMenuTheme
            }),
            EnableSelfViewButton = v70.state.showSelfView and v6.createElement(v19, {
                LayoutOrder = 4,
                image = if not v70.state.selfViewOpen then v39 else v38,
                callback = v70.toggleSelfView,
                useNewMenuTheme = v70.props.useNewMenuTheme
            })
        }),
        Divider2 = v43(5),
        RecordingIndicator = v75 and v6.createElement(v20, {
            micOn = v70.state.microphoneEnabled,
            hasMicPermissions = v70.state.hasMicPermissions,
            isSmallTouchScreen = v70.props.isSmallTouchScreen
        }),
        MuteChangedEvent = v6.createElement(l_ExternalEventConnection_0, {
            event = l_default_1.muteChanged.Event,
            callback = v70.muteChangedEvent
        }),
        SelfViewChangedEvent = v6.createElement(l_ExternalEventConnection_0, {
            event = l_StarterGui_0.CoreGuiChangedSignal,
            callback = v70.onCoreGuiChanged
        }),
        MuteAllChangedEvent = v6.createElement(l_ExternalEventConnection_0, {
            event = l_default_1.muteAllChanged.Event,
            callback = v70.toggleMuteAllIcon
        }),
        VideoCaptureEnabledEvent = v6.createElement(l_ExternalEventConnection_0, {
            event = l_FaceAnimatorService_0:GetPropertyChangedSignal("VideoAnimationEnabled"),
            callback = v70.updateVideoCaptureEnabled
        }),
        VoiceStateChangeEvent = if not not v27() and v70.state.voiceServiceInitialized then v6.createElement(l_ExternalEventConnection_0, {
            event = l_default_1:getService().StateChanged,
            callback = v70.onVoiceStateChange
        }) else nil,
        MuteNonFriendsEvent = if not v28 then nil else v6.createElement(l_ExternalEventConnection_0, {
            event = l_default_1.mutedNonFriends.Event,
            callback = function()
                v70.toggleMuteAllIcon(false);
            end
        })
    });
end;
v33.willUnmount = function(v78)
    if v78.selfViewVisibilityUpdatedSignal then
        v78.selfViewVisibilityUpdatedSignal:disconnect();
        v78.selfViewVisibilityUpdatedSignal = nil;
    end;
end;
return v33;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_RunService_0 = game:GetService("RunService");
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.Otter);
local v6 = require(l_CorePackages_0.Packages.t);
local l_AppFonts_0 = require(l_CorePackages_0.Workspace.Packages.Style).AppFonts;
local v8 = require(l_RobloxGui_0.Modules.RobloxTranslator);
local v9 = {
    frequency = 4,
    dampingRatio = 1
};
local v10 = v8:FormatByKey("InGame.CommonUI.Label.MicOnRecording");
local v11 = v8:FormatByKey("InGame.CommonUI.Label.MicOff");
local v12 = v4.PureComponent:extend("PermissionsButtons");
v12.validateProps = v6.strictInterface({
    micOn = v6.boolean,
    isSmallTouchScreen = v6.optional(v6.boolean)
});
v12.init = function(v13)
    v13:setState({
        lastVoiceRecordingIndicatorTextUpdated = tick(),
        voiceRecordingIndicatorTextMotor = v5.createSingleMotor(1),
        textOpacity = 1
    });
end;
v12.didMount = function(v14)
    task.spawn(function()
        v14.state.voiceRecordingIndicatorTextMotor:onStep(function(v15)
            v14:setState({
                textOpacity = v15
            });
        end);
        l_RunService_0:BindToRenderStep("RoactVoiceRecordingIndicator", Enum.RenderPriority.Last.Value, function()
            if not (not (tick() - v14.state.lastVoiceRecordingIndicatorTextUpdated >= 5) or v14.props.micOn) and v14.state.textOpacity >= 1 then
                v14.state.voiceRecordingIndicatorTextMotor:setGoal(v5.spring(0, v9));
                v14.state.voiceRecordingIndicatorTextMotor:start();
            end;
        end);
    end);
end;
v12.willUnmount = function(v16)
    v16.state.voiceRecordingIndicatorTextMotor:destroy();
    l_RunService_0:UnbindFromRenderStep("RoactVoiceRecordingIndicator");
end;
v12.shouldUpdate = function(v17, v18, v19)
    if v17.props.micOn ~= v18.micOn then
        v17:setState({
            lastVoiceRecordingIndicatorTextUpdated = tick()
        });
        if v18.micOn then
            v17.state.voiceRecordingIndicatorTextMotor:setGoal(v5.spring(1, v9));
            v17.state.voiceRecordingIndicatorTextMotor:start();
        end;
    end;
    local v20 = true;
    if v17.props.micOn == v18.micOn then
        v20 = v17.state.textOpacity ~= v19.textOpacity;
    end;
    return v20;
end;
v12.render = function(v21)
    return v4.createElement("TextLabel", {
        Text = if not v21.props.micOn then v11 else v10,
        AutomaticSize = Enum.AutomaticSize.XY,
        Visible = v21.props.hasMicPermissions,
        TextSize = not v21.props.isSmallTouchScreen and 12 or 10,
        Font = l_AppFonts_0.default:getMedium(),
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Center,
        TextColor3 = Color3.fromRGB(255, 255, 255),
        TextTransparency = 1 - v21.state.textOpacity,
        BackgroundTransparency = 1,
        LayoutOrder = 6,
        TextWrapped = true
    });
end;
return v12;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v3.Style.withStyle;
local l_ImageSetLabel_0 = v3.Core.ImageSet.ImageSetLabel;
local l_Images_0 = v3.App.ImageSet.Images;
local l_Checkbox_0 = v3.App.InputButton.Checkbox;
local v8 = v1.PureComponent:extend("CheckboxRow");
v8.defaultProps = {
    height = 28,
    image = "icons/controls/microphone",
    descriptionText = "Description Text",
    checkboxSelected = false,
    actionDisabled = false,
    onCheckboxActivated = function()
    end,
    LayoutOrder = 1
};
v8.validateProps = v2.interface({
    height = v2.number,
    image = v2.string,
    descriptionText = v2.string,
    checkboxSelected = v2.boolean,
    actionDisabled = v2.boolean,
    onCheckboxActivated = v2.callback,
    LayoutOrder = v2.optional(v2.number)
});
v8.render = function(v9)
    return l_withStyle_0(function(v10)
        local l_BaseSize_0 = v10.Font.BaseSize;
        local v12 = nil;
        local v13 = nil;
        if not v9.props.actionDisabled then
            v12 = v10.Theme.TextEmphasis;
            v13 = v10.Theme.IconEmphasis;
        else
            v12 = v10.Theme.TextMuted;
            v13 = v10.Theme.IconDefault;
        end;
        return v1.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, v9.props.height),
            BackgroundTransparency = 1,
            LayoutOrder = v9.props.LayoutOrder
        }, {
            layout = v1.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Center,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                Padding = UDim.new(0, 12),
                FillDirection = Enum.FillDirection.Horizontal,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            image = v1.createElement(l_ImageSetLabel_0, {
                Size = UDim2.fromOffset(v9.props.height, v9.props.height),
                Image = l_Images_0[v9.props.image],
                ImageColor3 = v13.Color,
                ImageTransparency = v13.Transparency,
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }),
            text = v1.createElement("TextLabel", {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, -(v9.props.height + 12) * 4, 1, 0),
                Text = v9.props.descriptionText,
                TextColor3 = v12.Color,
                TextTransparency = v12.Transparency,
                TextSize = v10.Font.Header2.RelativeSize * l_BaseSize_0,
                Font = v10.Font.Header2.Font,
                TextXAlignment = Enum.TextXAlignment.Left,
                LayoutOrder = 2
            }),
            checkbox = v1.createElement(l_Checkbox_0, {
                size = UDim2.fromOffset(v9.props.height, v9.props.height),
                isDisabled = v9.props.actionDisabled,
                isSelected = v9.props.checkboxSelected,
                onActivated = v9.props.onCheckboxActivated,
                text = "",
                layoutOrder = 3
            })
        });
    end);
end;
return v8;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v3.Style.withStyle;
local l_TextButton_0 = v3.App.Button.TextButton;
local v6 = v1.PureComponent:extend("ReportActionSelection");
local function v7()
end;
v6.defaultProps = {
    isMuted = true,
    isBlocked = true,
    onCancelActivated = v7,
    onConfirmActivated = v7,
    ZIndex = 1,
    uiScale = 1.3
};
v6.validateProps = v2.strictInterface({
    mutedTitleText = v2.string,
    blockedTitleText = v2.string,
    mutedAndBlockedTitleText = v2.string,
    mutedSubtitleText = v2.string,
    blockedSubtitleText = v2.string,
    mutedAndBlockedSubtitleText = v2.string,
    cancelText = v2.string,
    confirmText = v2.string,
    isMuted = v2.boolean,
    isBlocked = v2.boolean,
    onCancelActivated = v2.callback,
    onConfirmActivated = v2.callback,
    ZIndex = v2.optional(v2.number),
    uiScale = v2.optional(v2.number)
});
v6.init = function(v8)
    v8.onCancelActivated = function()
        v8.props.onCancelActivated();
    end;
    v8.onConfirmActivated = function()
        v8.props.onConfirmActivated();
    end;
    local v9 = nil;
    local v10 = nil;
    if not v8.props.isMuted or not v8.props.isBlocked then
        if not v8.props.isMuted then
            if v8.props.isBlocked then
                v9 = v8.props.blockedTitleText;
                v10 = v8.props.blockedSubtitleText;
            end;
        else
            v9 = v8.props.mutedTitleText;
            v10 = v8.props.mutedSubtitleText;
        end;
    else
        v9 = v8.props.mutedAndBlockedTitleText;
        v10 = v8.props.mutedAndBlockedSubtitleText;
    end;
    v8:setState({
        titleText = v9,
        subtitleText = v10
    });
end;
v6.render = function(v11)
    return l_withStyle_0(function(v12)
        local l_BaseSize_0 = v12.Font.BaseSize;
        return v1.createElement("Frame", {
            Size = UDim2.fromScale(1, 1),
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.fromScale(0.5, 0.5),
            BackgroundTransparency = 1,
            ZIndex = v11.props.ZIndex
        }, {
            uiScale = v1.createElement("UIScale", {
                Scale = v11.props.uiScale
            }),
            layout = v1.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Top,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                Padding = UDim.new(0, 22),
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            title = v1.createElement("TextLabel", {
                Text = v11.state.titleText,
                TextColor3 = v12.Theme.TextEmphasis.Color,
                TextTransparency = v12.Theme.TextEmphasis.Transparency,
                TextSize = v12.Font.Header1.RelativeSize * l_BaseSize_0,
                Font = v12.Font.Header1.Font,
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.XY,
                LayoutOrder = 1
            }),
            subtitle = v1.createElement("TextLabel", {
                Size = UDim2.fromOffset(612, 0),
                Text = v11.state.subtitleText,
                TextColor3 = v12.Theme.TextEmphasis.Color,
                TextTransparency = v12.Theme.TextEmphasis.Transparency,
                TextSize = v12.Font.CaptionHeader.RelativeSize * l_BaseSize_0,
                Font = v12.Font.CaptionHeader.Font,
                TextWrapped = true,
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.Y,
                LayoutOrder = 2
            }),
            spacer = v1.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.fromOffset(0, 62),
                LayoutOrder = 3
            }),
            actions = v1.createElement("Frame", {
                Size = UDim2.fromOffset(584, 0),
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.Y,
                LayoutOrder = 4
            }, {
                layout = v1.createElement("UIListLayout", {
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    Padding = UDim.new(0, 70),
                    FillDirection = Enum.FillDirection.Horizontal,
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                cancelContainer = v1.createElement("Frame", {
                    BackgroundColor3 = v12.Theme.SystemPrimaryContent.Color,
                    BackgroundTransparency = v12.Theme.SystemPrimaryContent.Transparency,
                    BorderSizePixel = 0,
                    Size = UDim2.fromOffset(234, 44),
                    LayoutOrder = 1
                }, {
                    uiCorner = v1.createElement("UICorner", {
                        CornerRadius = UDim.new(0, 4)
                    }),
                    cancelButton = v1.createElement(l_TextButton_0, {
                        size = UDim2.fromScale(1, 1),
                        text = v11.props.cancelText,
                        onActivated = v11.onCancelActivated
                    })
                }),
                confirmContainer = v1.createElement("Frame", {
                    BackgroundColor3 = v3.App.Style.Colors.Blue,
                    BackgroundTransparency = 0,
                    BorderSizePixel = 0,
                    Size = UDim2.fromOffset(234, 44),
                    LayoutOrder = 2
                }, {
                    uiCorner = v1.createElement("UICorner", {
                        CornerRadius = UDim.new(0, 4)
                    }),
                    confirmButton = v1.createElement(l_TextButton_0, {
                        size = UDim2.fromScale(1, 1),
                        text = v11.props.confirmText,
                        onActivated = v11.onConfirmActivated
                    })
                })
            })
        });
    end);
end;
return v6;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v3.Style.withStyle;
local l_TextButton_0 = v3.App.Button.TextButton;
local v6 = require(script.Parent.CheckboxRow);
local v7 = v1.PureComponent:extend("ReportActionSelection");
local function v8()
end;
v7.defaultProps = {
    titleText = "Thanks for your report",
    subtitleText = "We've received your report and will take action soon if needed. Your feedback helps keep our community safe.",
    instructionText = "Other steps you can take:",
    muteText = "Mute {DISPLAYNAME}(@username)",
    blockText = "Block {DISPLAYNAME}(@username)",
    doneText = "Done",
    showVoiceMuting = true,
    isVoiceMuted = false,
    isBlocked = false,
    onMuteCheckboxActivated = v8,
    onBlockCheckboxActivated = v8,
    onDoneActivated = v8,
    ZIndex = 1,
    uiScale = 1.3
};
v7.validateProps = v2.interface({
    titleText = v2.string,
    subtitleText = v2.string,
    instructionText = v2.string,
    muteText = v2.string,
    blockText = v2.string,
    doneText = v2.string,
    showVoiceMuting = v2.boolean,
    isVoiceMuted = v2.optional(v2.boolean),
    isBlocked = v2.optional(v2.boolean),
    onMuteCheckboxActivated = v2.optional(v2.callback),
    onBlockCheckboxActivated = v2.optional(v2.callback),
    onDoneActivated = v2.callback,
    ZIndex = v2.number
});
v7.init = function(v9)
    v9.onMuteCheckboxActivated = function(v10)
        v9:setState({
            isVoiceMuted = v10
        });
        v9.props.onMuteCheckboxActivated(v10);
    end;
    v9.onBlockCheckboxActivated = function(v11)
        v9:setState({
            isBlocked = v11
        });
        v9.props.onBlockCheckboxActivated(v11);
    end;
    v9.onDoneActivated = function()
        v9.props.onDoneActivated(v9.state.isBlocked, v9.state.isVoiceMuted);
    end;
    v9:setState({
        isVoiceMuted = v9.props.isVoiceMuted,
        isBlocked = v9.props.isBlocked
    });
end;
v7.render = function(v12)
    return l_withStyle_0(function(v13)
        local l_BaseSize_0 = v13.Font.BaseSize;
        return v1.createElement("Frame", {
            Size = UDim2.fromScale(1, 1),
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.fromScale(0.5, 0.5),
            BackgroundTransparency = 1,
            ZIndex = v12.props.ZIndex
        }, {
            uiScale = v1.createElement("UIScale", {
                Scale = v12.props.uiScale
            }),
            layout = v1.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Top,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                Padding = UDim.new(0, 22),
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            title = v1.createElement("TextLabel", {
                Text = v12.props.titleText,
                TextColor3 = v13.Theme.TextEmphasis.Color,
                TextTransparency = v13.Theme.TextEmphasis.Transparency,
                TextSize = v13.Font.Header1.RelativeSize * l_BaseSize_0,
                Font = v13.Font.Header1.Font,
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.XY,
                LayoutOrder = 1
            }),
            subtitle = v1.createElement("TextLabel", {
                Size = UDim2.fromOffset(612, 0),
                Text = v12.props.subtitleText,
                TextColor3 = v13.Theme.TextEmphasis.Color,
                TextTransparency = v13.Theme.TextEmphasis.Transparency,
                TextSize = v13.Font.CaptionHeader.RelativeSize * l_BaseSize_0,
                Font = v13.Font.CaptionHeader.Font,
                TextWrapped = true,
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.Y,
                LayoutOrder = 2
            }),
            actions = v1.createElement("Frame", {
                Size = UDim2.fromOffset(584, 0),
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.Y,
                LayoutOrder = 3
            }, {
                layout = v1.createElement("UIListLayout", {
                    VerticalAlignment = Enum.VerticalAlignment.Top,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    Padding = UDim.new(0, 18),
                    FillDirection = Enum.FillDirection.Vertical,
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                instruction = v1.createElement("TextLabel", {
                    Size = UDim2.fromScale(1, 0),
                    Text = v12.props.instructionText,
                    TextColor3 = v13.Theme.TextDefault.Color,
                    TextTransparency = v13.Theme.TextDefault.Transparency,
                    TextSize = v13.Font.CaptionHeader.RelativeSize * l_BaseSize_0,
                    Font = v13.Font.CaptionHeader.Font,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    BackgroundTransparency = 1,
                    AutomaticSize = Enum.AutomaticSize.Y,
                    LayoutOrder = 1
                }),
                muteCheckbox = v12.props.showVoiceMuting and v1.createElement(v6, {
                    height = 28,
                    image = "icons/controls/microphone",
                    descriptionText = v12.props.muteText,
                    actionDisabled = v12.state.isBlocked,
                    checkboxSelected = v12.state.isBlocked or v12.state.isVoiceMuted,
                    onCheckboxActivated = v12.onMuteCheckboxActivated,
                    LayoutOrder = 2
                }),
                div = v12.props.showVoiceMuting and v1.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 1),
                    BackgroundColor3 = v13.Theme.Divider.Color,
                    BackgroundTransparency = v13.Theme.Divider.Transparency,
                    BorderSizePixel = 0,
                    LayoutOrder = 3
                }),
                blockCheckbox = v1.createElement(v6, {
                    height = 28,
                    image = "icons/actions/block",
                    descriptionText = v12.props.blockText,
                    checkboxSelected = v12.state.isBlocked,
                    onCheckboxActivated = v12.onBlockCheckboxActivated,
                    LayoutOrder = 4
                }),
                doneContainer = v1.createElement("Frame", {
                    BackgroundColor3 = v13.Theme.SystemPrimaryContent.Color,
                    BackgroundTransparency = v13.Theme.SystemPrimaryContent.Transparency,
                    BorderSizePixel = 0,
                    Size = UDim2.new(1, 0, 0, 44),
                    LayoutOrder = 5
                }, {
                    uiCorner = v1.createElement("UICorner", {
                        CornerRadius = UDim.new(0, 4)
                    }),
                    doneButton = v1.createElement(l_TextButton_0, {
                        size = UDim2.fromScale(1, 1),
                        text = v12.props.doneText,
                        onActivated = v12.onDoneActivated
                    })
                })
            })
        });
    end);
end;
return v7;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(script.Parent.ReportConfirmationContainer);
local v4 = require(script.Parent.Parent.Parent.Parent.Common.renderWithCoreScriptsStyleProvider);
local v5 = v1.PureComponent:extend("ReportConfirmationScreen");
v5.validateProps = v2.interface({
    closeMenu = v2.callback,
    player = v2.interface({
        DisplayName = v2.string,
        Name = v2.string,
        UserId = v2.number
    })
});
v5.render = function(v6)
    return v4({
        reportConfirmationContainer = v1.createElement(v3, v6.props)
    });
end;
return v5;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_GuiService_0 = game:GetService("GuiService");
local l_RunService_0 = game:GetService("RunService");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local v6 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v6.Roact;
local l_UIBlox_0 = v6.UIBlox;
local l_Promise_0 = v6.Promise;
local _ = require(l_CorePackages_0.Packages.Dash);
local l_t_0 = v6.t;
local l_InGameMenu_0 = l_RobloxGui_0.Modules.InGameMenu;
local v13 = require(l_InGameMenu_0.Resources.Constants);
local l_FullscreenTitleBar_0 = l_UIBlox_0.App.Bar.FullscreenTitleBar;
local v15 = require(l_InGameMenu_0.Utility.ExternalEventConnection);
local v16 = require(l_RobloxGui_0.Modules.Common.GetDefaultQualityLevel);
local v17 = require(l_RobloxGui_0.Modules.Common.renderWithCoreScriptsStyleProvider);
local v18 = require(l_InGameMenu_0.Flags.GetFIntFullscreenTitleBarTriggerDelayMillis);
local v19 = l_Roact_0.PureComponent:extend("SettingsFullScreenTitleBar");
v19.validateProps = l_t_0.strictInterface({
    titleText = l_t_0.optional(l_t_0.string),
    onClose = l_t_0.optional(l_t_0.callback),
    _mockFullScreen = l_t_0.optional(l_t_0.boolean)
});
v19.defaultProps = {
    titleText = "Roblox"
};
v19.init = function(v20)
    v20:setState({
        isTriggered = false
    });
    v20.show = function()
        v20:setTriggered(true);
    end;
    v20.hide = function()
        v20:setTriggered(false);
    end;
    v20.cancel = function()
        v20:unsetTriggered();
    end;
    v20.onFullscreenChanged = function()
        v20:unsetTriggered();
        v20:setState({
            isTriggered = false
        });
    end;
end;
v19.setTriggered = function(v21, v22)
    v21:unsetTriggered();
    if not (not l_UserGameSettings_0:InFullScreen() and not v21.props._mockFullScreen) then
        v21.triggerPromise = l_Promise_0.delay(v18() / 1000):andThenCall(function()
            v21.triggerPromise = nil;
            v21:setState({
                isTriggered = v22
            });
        end);
    end;
end;
v19.unsetTriggered = function(v23)
    if v23.triggerPromise then
        v23.triggerPromise:cancel();
        v23.triggerPromise = nil;
    end;
end;
v19.toggleFullscreen = function(_)
    l_GuiService_0:ToggleFullscreen();
end;
v19.leaveGame = function(_)
    l_GuiService_0.SelectedCoreObject = nil;
    l_RunService_0.RenderStepped:Wait();
    l_RunService_0.RenderStepped:Wait();
    game:Shutdown();
    settings().Rendering.QualityLevel = v16();
end;
v19.render = function(v26)
    return v17({
        FullscreenTitleBar = l_Roact_0.createElement(l_Roact_0.Portal, {
            target = l_CoreGui_0
        }, {
            InGameFullscreenTitleBarScreen = l_Roact_0.createElement("ScreenGui", {
                Enabled = true,
                IgnoreGuiInset = true,
                ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                DisplayOrder = v13.DisplayOrder.FullscreenTitleBar
            }, {
                FullscreenChangedEvent = l_Roact_0.createElement(v15, {
                    event = l_UserGameSettings_0.FullscreenChanged,
                    callback = v26.onFullscreenChanged
                }),
                TriggerArea = l_Roact_0.createElement("Frame", {
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    Size = UDim2.new(1, 0, 0, 1),
                    [l_Roact_0.Event.MouseEnter] = v26.show,
                    [l_Roact_0.Event.MouseLeave] = v26.cancel
                }),
                Bar = l_Roact_0.createElement(l_FullscreenTitleBar_0, {
                    title = v26.props.titleText,
                    isTriggered = v26.state.isTriggered,
                    onDisappear = v26.hide,
                    onHover = v26.cancel,
                    exitFullscreen = v26.toggleFullscreen,
                    closeRoblox = v26.props.onClose or v26.leaveGame
                })
            })
        })
    });
end;
v19.willUnmount = function(v27)
    v27:unsetTriggered();
end;
return {
    mount = function(v28, v29, v30)
        return l_Roact_0.mount(l_Roact_0.createElement(v19, v28 or {}), v29, v30);
    end,
    update = function(v31, v32)
        return l_Roact_0.update(v31, l_Roact_0.createElement(v19, v32));
    end,
    unmount = function(v33)
        return l_Roact_0.unmount(v33);
    end
};


local v0 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.Common.IXPServiceWrapper);
local v1 = false;
return {
    initialize = function()
        task.spawn(function()
            v0:WaitForInitialization();
            local l_v0_LayerData_0 = v0:GetLayerData("Engine.Interactivity.UICreation.NotchScreenSupport");
            if l_v0_LayerData_0 then
                v1 = l_v0_LayerData_0.notchEnabled;
            end;
        end);
    end,
    enabled = function()
        return v1;
    end
};


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


game:DefineFastFlag("ReportAnythingAnnotationIXP", false);
return function()
    return game:GetEngineFeature("ReportAnythingScreenshotOrientation") and game:GetFastFlag("ReportAnythingAnnotationIXP");
end;


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


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


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


local l_Players_0 = game:GetService("Players");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_ThrottleUserId_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).ThrottleUserId;
local v4 = require(l_Modules_0.ShareInviteLinkABTestManager);
local v5 = require(l_Modules_0.Flags.GetFFlagShareInviteLinkContextMenuV1ABTestEnabled);
game:DefineFastFlag("ShareInviteLinkContextMenuV1Enabled_v3", false);
game:DefineFastInt("ShareInviteLinkContextMenuV1RolloutPercentage", 0);
return function()
    local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
    if l_LocalPlayer_0 and l_LocalPlayer_0.UserId then
        return (game:GetFastFlag("ShareInviteLinkContextMenuV1Enabled_v3") or not not v5() and v4.default:isShareInviteLinkEnabled()) or l_ThrottleUserId_0(game:GetFastInt("ShareInviteLinkContextMenuV1RolloutPercentage"), l_LocalPlayer_0.UserId);
    else
        return false;
    end;
end;


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


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


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


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


game:DefineFastInt("IGMv1ARFlowCSWaitFrames", 10);
return function()
    return game:GetFastInt("IGMv1ARFlowCSWaitFrames");
end;


game:DefineFastString("MuteTogglesIXPLayerName", "Voice.UserAgency");
return function()
    return game:GetFastString("MuteTogglesIXPLayerName");
end;


game:DefineFastString("ReportAnythingAnnotationIXPLayerName", "UserBehavior.ReportAnything");
return function()
    return game:GetFastString("ReportAnythingAnnotationIXPLayerName");
end;


local l_GameSettings_0 = UserSettings().GameSettings;
local v1 = game:DefineFastFlag("IGMResetGfxQuality", false);
local v2 = game:DefineFastFlag("IGMRevertGfxQuality", false);
local v3 = game:DefineFastFlag("IGMRevertGfxLv5Only", false);
local v4 = game:DefineFastFlag("IGMResetGfxLv5Only", false);
local v5 = game:DefineFastFlag("IGMAlwaysResetGfxLv5", false);
local v6 = game:DefineFastInt("IGMTempOverrideGfxLv5", 0);
local _ = function(v7)
    for _, v9 in (Enum.SavedQualitySetting:GetEnumItems()), nil, nil do
        if v9.Value == v7 then
            return v9;
        end;
    end;
    return Enum.SavedQualitySetting.Automatic;
end;
local function v20()
    local l_v5_0 = v5;
    local v12 = l_GameSettings_0.SavedQualityLevel == Enum.SavedQualitySetting.QualityLevel5;
    if not (not l_v5_0 or not v12) then
        l_GameSettings_0.SavedQualityLevel = Enum.SavedQualitySetting.Automatic;
    end;
    if game:GetEngineFeature("QualityLevelReset") then
        if not v2 then
            if v1 then
                local l_v4_0 = v4;
                local l_QualityResetLevel_0 = l_GameSettings_0.QualityResetLevel;
                if not (l_QualityResetLevel_0 >= 0) or l_QualityResetLevel_0 == nil then
                    local l_Value_0 = l_GameSettings_0.SavedQualityLevel.Value;
                    if v12 and l_v4_0 or l_v4_0 == false then
                        l_GameSettings_0.SavedQualityLevel = Enum.SavedQualitySetting.Automatic;
                    end;
                    l_GameSettings_0.QualityResetLevel = l_Value_0;
                end;
            end;
        elseif l_GameSettings_0.QualityResetLevel >= 0 then
            local l_QualityResetLevel_1 = l_GameSettings_0.QualityResetLevel;
            local v17;
            for _, v19 in (Enum.SavedQualitySetting:GetEnumItems()), nil, nil do
                if v19.Value == l_QualityResetLevel_1 then
                    v17 = v19;
                    goto label0 --[[  true, false  ]];
                end;
            end;
            v17 = Enum.SavedQualitySetting.Automatic;
            ::label0::;
            if not (not v3 or v17 ~= Enum.SavedQualitySetting.QualityLevel5) or v3 == false then
                l_GameSettings_0.SavedQualityLevel = v17;
                l_GameSettings_0.QualityResetLevel = -1;
                return ;
            end;
        end;
    end;
end;
applicationId = function()
    local l_AppStorageService_0 = game:GetService("AppStorageService");
    if l_AppStorageService_0 then
        local l_l_AppStorageService_0_Item_0 = l_AppStorageService_0:GetItem("AppInstallationId");
        local v23 = typeof(l_l_AppStorageService_0_Item_0);
        if v23 == "number" then
            return tonumber(l_l_AppStorageService_0_Item_0) or nil;
        elseif v23 == "string" then
            if string.len(l_l_AppStorageService_0_Item_0) <= 0 then
                return nil;
            else
                return (tonumber((string.sub(l_l_AppStorageService_0_Item_0, -string.len((tostring(1000)))))));
            end;
        else
            return nil;
        end;
    else
        return nil;
    end;
end;
return {
    RunGfxReset = v20,
    TemporaryOverride = function(v24)
        if ((applicationId() or 0) + 329) % 1000 < v6 and (not (v24 ~= Enum.SavedQualitySetting.QualityLevel5) or v24 == Enum.SavedQualitySetting.QualityLevel5.Value) then
            return true, Enum.SavedQualitySetting.Automatic.Value;
        else
            return false, Enum.SavedQualitySetting.Automatic.Value;
        end;
    end
};


local v0 = {
    new = function()
        return {};
    end
};
v0.fromGameCache = function(v1)
    local v2 = v0.new();
    v2.universeId = v1.UniverseId;
    v2.placeId = v1.PlaceId;
    v2.name = v1.Name;
    v2.playerCount = v1.PlayerCount;
    v2.imageToken = v1.ImageToken;
    v2.totalUpVotes = v1.VoteData.UpVotes;
    v2.totalDownVotes = v1.VoteData.DownVotes;
    return v2;
end;
v0.fromJsonData = function(v3)
    local v4 = v0.new();
    v4.universeId = v3.universeId;
    v4.placeId = v3.placeId;
    v4.name = v3.name;
    v4.playerCount = v3.playerCount;
    v4.imageToken = v3.imageToken;
    v4.totalUpVotes = v3.totalUpVotes;
    v4.totalDownVotes = v3.totalDownVotes;
    return v4;
end;
return v0;


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


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


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


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


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


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


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


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_ShareGame_0 = l_Modules_0.Settings.Pages.ShareGame;
local l_ReducerDependencies_0 = require(l_CorePackages_0.Workspace.Packages.NotificationsCommon).ReducerDependencies;
local l_PlaceInfosReducer_0 = require(l_CorePackages_0.Workspace.Packages.PlaceInfoRodux).Reducers.PlaceInfosReducer;
local l_UserReducer_0 = require(l_CorePackages_0.Workspace.Packages.UserLib).Reducers.UserReducer;
local l_Friends_0 = require(l_CorePackages_0.Workspace.Packages.LegacyFriendsRodux).Reducers.Friends;
local l_FriendCount_0 = require(l_CorePackages_0.Workspace.Packages.LegacyFriendsRodux).Reducers.FriendCount;
local v8 = require(l_ShareGame_0.Reducers.ConversationsSearch);
local v9 = require(l_ShareGame_0.Reducers.DeviceInfo);
local v10 = require(l_ShareGame_0.Reducers.Invites);
local v11 = require(l_ShareGame_0.Reducers.GameInfo);
local v12 = require(l_ShareGame_0.Reducers.Page);
local v13 = require(l_ShareGame_0.Reducers.Toasts);
local l_RoduxShareLinks_0 = l_ReducerDependencies_0.RoduxShareLinks;
local v15 = l_ReducerDependencies_0.RoduxNetworking.installReducer();
local v16 = l_RoduxShareLinks_0.installReducer();
local v17 = require(l_Modules_0.Settings.Flags.GetFFlagShareInviteLinkContextMenuV1Enabled);
return function(v18, v19)
    v18 = v18 or {};
    return {
        ConversationsSearch = v8(v18.ConversationsSearch, v19),
        DeviceInfo = v9(v18.DeviceInfo, v19),
        Invites = v10(v18.Invites, v19),
        Page = v12(v18.Page, v19),
        PlaceInfos = l_PlaceInfosReducer_0(v18.PlaceInfos, v19),
        Toasts = v13(v18.Toasts, v19),
        Users = l_UserReducer_0(v18.Users, v19),
        Friends = l_Friends_0(v18.Friends, v19),
        FriendCount = l_FriendCount_0(v18.FriendCount, v19),
        ShareLinks = if not v17() then nil else v16(v18.ShareLinks, v19),
        GameInfo = if not v17() then nil else v11(v18.GameInfo, v19),
        NetworkStatus = if not v17() then nil else v15(v18.NetworkStatus, v19)
    };
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactRodux);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local l_ShareGame_0 = l_Modules_0.Settings.Pages.ShareGame;
local v8 = require(l_ShareGame_0.Constants);
local l_AppFeaturePolicies_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).AppFeaturePolicies;
local l_EventStream_0 = require(l_CorePackages_0.Workspace.Packages.Analytics).AnalyticsReporters.EventStream;
local v11 = require(l_ShareGame_0.Components.LayoutProvider);
local v12 = require(l_ShareGame_0.Components.ShareGameContainer);
local v13 = require(l_Modules_0.Settings.Flags.FFlagShareExperienceInviteLinkPolicy);
local v14 = v4.PureComponent:extend("App");
local function v16(v15)
    if not v13 then
        return v4.createElement(v11, nil, v15);
    else
        return v4.createElement(v11, nil, {
            PolicyProvider = v4.createElement(l_RoactAppPolicy_0.Provider, {
                policy = {
                    l_AppFeaturePolicies_0
                }
            }, v15)
        });
    end;
end;
v14.render = function(v17)
    local l_analytics_0 = v17.props.analytics;
    local l_pageTarget_0 = v17.props.pageTarget;
    local v20 = nil;
    if v17.props.isPageOpen then
        v20 = v4.createElement(v12, {
            analytics = l_analytics_0,
            zIndex = v8.SHARE_GAME_Z_INDEX
        });
    end;
    return v16({
        v4.createElement(v4.Portal, {
            target = l_pageTarget_0
        }, {
            ShareGamePageFrame = v20
        })
    });
end;
v14.didMount = function(v21)
    v21.eventStream = l_EventStream_0.new(l_RbxAnalyticsService_0);
end;
v14.willUnmount = function(v22)
    v22.eventStream:releaseRBXEventStream();
end;
return v5.UNSTABLE_connect2(function(v23, _)
    return {
        isPageOpen = v23.Page.IsOpen
    };
end)(v14);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local v2 = require(l_CorePackages_0.Roact);
local l_ShareGame_0 = l_RobloxGui_0.Modules.Settings.Pages.ShareGame;
local v4 = require(l_ShareGame_0.Constants);
local v5 = require(l_RobloxGui_0.Modules.Settings.Theme);
local v6 = v5.font(Enum.Font.SourceSans, "ConversationDetails");
local l_WHITE_0 = v4.Color.WHITE;
local v8 = v5.textSize(19);
local v9 = v5.font(Enum.Font.SourceSans, "ConversationDetails");
local l_GRAY3_0 = v4.Color.GRAY3;
local v11 = v5.textSize(16, "ConversationDetails");
local v12 = v5.font(Enum.Font.SourceSans, "ConversationDetails");
local v13 = v5.textSize(16, "ConversationDetails");
local v14 = require(l_ShareGame_0.getTranslator)();
local v15 = v2.PureComponent:extend("ConversationDetails");
v15.render = function(v16)
    local l_title_0 = v16.props.title;
    local l_subtitle_0 = v16.props.subtitle;
    local l_presence_0 = v16.props.presence;
    local l_size_0 = v16.props.size;
    local l_layoutOrder_0 = v16.props.layoutOrder;
    local l_zIndex_0 = v16.props.zIndex;
    local v23 = nil;
    if l_subtitle_0 ~= nil then
        v23 = v2.createElement("TextLabel", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, v11),
            Text = l_subtitle_0,
            Font = v9,
            TextColor3 = l_GRAY3_0,
            TextSize = v11,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextWrapped = true,
            LayoutOrder = 1,
            ZIndex = l_zIndex_0
        });
    end;
    local v24 = nil;
    if l_presence_0 ~= nil then
        v24 = v2.createElement("TextLabel", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, v13),
            Text = v14:FormatByKey(v4.PresenceTextKey[l_presence_0]),
            Font = v12,
            TextColor3 = v4.PresenceColors[l_presence_0],
            TextSize = v13,
            TextXAlignment = Enum.TextXAlignment.Left,
            LayoutOrder = 2,
            ZIndex = l_zIndex_0
        });
    end;
    return v2.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = l_size_0,
        LayoutOrder = l_layoutOrder_0,
        ZIndex = l_zIndex_0
    }, {
        UIListLayout = v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 2)
        }),
        Title = v2.createElement("TextLabel", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, v8),
            Text = l_title_0 or "",
            Font = v6,
            TextColor3 = l_WHITE_0,
            TextSize = v8,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextWrapped = true,
            LayoutOrder = 0,
            ZIndex = l_zIndex_0
        }),
        Subtitle = v23,
        Presence = v24
    });
end;
return v15;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_Modules_0.Settings.Theme);
local l_ShareGame_0 = l_Modules_0.Settings.Pages.ShareGame;
local v7 = require(l_ShareGame_0.Components.ConversationDetails);
local v8 = require(l_ShareGame_0.Components.ConversationThumbnail);
local l_EventStream_0 = require(l_CorePackages_0.Workspace.Packages.Analytics).AnalyticsReporters.EventStream;
local v10 = require(l_ShareGame_0.Components.InviteButton);
local l_InviteStatus_0 = require(l_ShareGame_0.Constants).InviteStatus;
local v12 = Rect.new(10, 10, 10, 10);
local v13 = v4.PureComponent:extend("ConversationEntry");
v13.init = function(v14)
    v14.eventStream = l_EventStream_0.new(l_RbxAnalyticsService_0);
    v14.onInvite = function()
        local l_inviteStatus_0 = v14.props.inviteStatus;
        if l_inviteStatus_0 and l_inviteStatus_0 ~= l_InviteStatus_0.Failed then
            return ;
        else
            local l_analytics_0 = v14.props.analytics;
            local l_users_0 = v14.props.users;
            local l_inviteUser_0 = v14.props.inviteUser;
            if #l_users_0 == 1 then
                l_inviteUser_0(l_users_0[1].id):andThen(function(v19)
                    if v19 then
                        local v20 = {};
                        for _, v22 in pairs(l_users_0) do
                            table.insert(v20, v22.id);
                        end;
                        l_analytics_0:onActivatedInviteSent(l_Players_0.LocalPlayer.UserId, v19.conversationId, v20);
                        return ;
                    else
                        return ;
                    end;
                end, function()
                end);
            end;
            return ;
        end;
    end;
end;
v13.render = function(v23)
    local l_visible_0 = v23.props.visible;
    local l_layoutOrder_0 = v23.props.layoutOrder;
    local l_zIndex_0 = v23.props.zIndex;
    local l_size_0 = v23.props.size;
    local l_subtitle_0 = v23.props.subtitle;
    local l_title_0 = v23.props.title;
    local l_users_1 = v23.props.users;
    local l_inviteStatus_1 = v23.props.inviteStatus;
    local l_presence_0 = v23.props.presence;
    local l_UIBloxThemeEnabled_0 = v5.UIBloxThemeEnabled;
    return v4.createElement("ImageButton", {
        Visible = l_visible_0,
        Selectable = true,
        BackgroundColor3 = v5.color("PlayerRowFrame"),
        BackgroundTransparency = v5.transparency("PlayerRowFrame", 1),
        Image = if l_UIBloxThemeEnabled_0 then nil else "rbxasset://textures/ui/dialog_white.png",
        ImageTransparency = l_UIBloxThemeEnabled_0 and 0 or 0.85,
        ScaleType = not l_UIBloxThemeEnabled_0 and Enum.ScaleType.Slice or Enum.ScaleType.Stretch,
        SliceCenter = not l_UIBloxThemeEnabled_0 and v12 or Rect.new(),
        Size = l_size_0,
        LayoutOrder = l_layoutOrder_0,
        ZIndex = l_zIndex_0,
        [v4.Event.Activated] = v23.onInvite
    }, {
        UICorner = not not l_UIBloxThemeEnabled_0 and v4.createElement("UICorner", {
            CornerRadius = v5.MenuContainerCornerRadius
        }) or nil,
        UIPadding = v4.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, 12),
            PaddingRight = UDim.new(0, 12),
            PaddingTop = UDim.new(0, 12),
            PaddingBottom = UDim.new(0, 12)
        }),
        UIListLayout = v4.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 12)
        }),
        Thumbnail = v4.createElement(v8, {
            users = l_users_1,
            size = UDim2.new(0, 32, 0, 32),
            layoutOrder = 0,
            zIndex = l_zIndex_0
        }),
        Details = v4.createElement(v7, {
            title = l_title_0,
            subtitle = l_subtitle_0,
            presence = l_presence_0,
            size = UDim2.new(1, -125, 1, 0),
            layoutOrder = 1,
            zIndex = l_zIndex_0
        }),
        InviteButton = v4.createElement(v10, {
            size = UDim2.new(0, 69, 1, 0),
            layoutOrder = 2,
            zIndex = l_zIndex_0,
            onInvite = v23.onInvite,
            inviteStatus = l_inviteStatus_1
        })
    });
end;
return v13;