local v7 = {
    type = function(v0)
        return function(v1)
            local v2 = type(v1);
            if v2 == v0 then
                return true;
            else
                return false, string.format("%s expected, got %s", v0, v2);
            end;
        end;
    end,
    typeof = function(v3)
        return function(v4)
            local v5 = typeof(v4);
            if v5 == v3 then
                return true;
            else
                return false, string.format("%s expected, got %s", v3, v5);
            end;
        end;
    end,
    any = function(v6)
        if v6 ~= nil then
            return true;
        else
            return false, "any expected, got nil";
        end;
    end
};
v7.boolean = v7.typeof("boolean");
v7.thread = v7.typeof("thread");
v7.callback = v7.typeof("function");
v7["function"] = v7.callback;
v7.none = v7.typeof("nil");
v7["nil"] = v7.none;
v7.string = v7.typeof("string");
v7.table = v7.typeof("table");
v7.userdata = v7.type("userdata");
v7.number = function(v8)
    local v9 = typeof(v8);
    if v9 == "number" then
        if v8 == v8 then
            return true;
        else
            return false, "unexpected NaN value";
        end;
    else
        return false, string.format("number expected, got %s", v9);
    end;
end;
v7.nan = function(v10)
    local v11 = typeof(v10);
    if v11 == "number" then
        if v10 ~= v10 then
            return true;
        else
            return false, "unexpected non-NaN value";
        end;
    else
        return false, string.format("number expected, got %s", v11);
    end;
end;
v7.Axes = v7.typeof("Axes");
v7.BrickColor = v7.typeof("BrickColor");
v7.CatalogSearchParams = v7.typeof("CatalogSearchParams");
v7.CFrame = v7.typeof("CFrame");
v7.Color3 = v7.typeof("Color3");
v7.ColorSequence = v7.typeof("ColorSequence");
v7.ColorSequenceKeypoint = v7.typeof("ColorSequenceKeypoint");
v7.DateTime = v7.typeof("DateTime");
v7.DockWidgetPluginGuiInfo = v7.typeof("DockWidgetPluginGuiInfo");
v7.Enum = v7.typeof("Enum");
v7.EnumItem = v7.typeof("EnumItem");
v7.Enums = v7.typeof("Enums");
v7.Faces = v7.typeof("Faces");
v7.Instance = v7.typeof("Instance");
v7.NumberRange = v7.typeof("NumberRange");
v7.NumberSequence = v7.typeof("NumberSequence");
v7.NumberSequenceKeypoint = v7.typeof("NumberSequenceKeypoint");
v7.PathWaypoint = v7.typeof("PathWaypoint");
v7.PhysicalProperties = v7.typeof("PhysicalProperties");
v7.Random = v7.typeof("Random");
v7.Ray = v7.typeof("Ray");
v7.RaycastParams = v7.typeof("RaycastParams");
v7.RaycastResult = v7.typeof("RaycastResult");
v7.RBXScriptConnection = v7.typeof("RBXScriptConnection");
v7.RBXScriptSignal = v7.typeof("RBXScriptSignal");
v7.Rect = v7.typeof("Rect");
v7.Region3 = v7.typeof("Region3");
v7.Region3int16 = v7.typeof("Region3int16");
v7.TweenInfo = v7.typeof("TweenInfo");
v7.UDim = v7.typeof("UDim");
v7.UDim2 = v7.typeof("UDim2");
v7.Vector2 = v7.typeof("Vector2");
v7.Vector2int16 = v7.typeof("Vector2int16");
v7.Vector3 = v7.typeof("Vector3");
v7.Vector3int16 = v7.typeof("Vector3int16");
v7.literal = function(...)
    local v12 = select("#", ...);
    if v12 == 1 then
        local v13 = ...;
        return function(v14)
            if v14 ~= v13 then
                return false, string.format("expected %s, got %s", tostring(v13), (tostring(v14)));
            else
                return true;
            end;
        end;
    else
        local v15 = {};
        for v16 = 1, v12 do
            v15[v16] = v7.literal((select(v16, ...)));
        end;
        return v7.union(table.unpack(v15, 1, v12));
    end;
end;
v7.exactly = v7.literal;
v7.keyOf = function(v17)
    local v18 = {};
    local v19 = 0;
    for v20 in pairs(v17) do
        v19 = v19 + 1;
        v18[v19] = v20;
    end;
    return v7.literal(table.unpack(v18, 1, v19));
end;
v7.valueOf = function(v21)
    local v22 = {};
    local v23 = 0;
    for _, v25 in pairs(v21) do
        v23 = v23 + 1;
        v22[v23] = v25;
    end;
    return v7.literal(table.unpack(v22, 1, v23));
end;
v7.integer = function(v26)
    local v27, v28 = v7.number(v26);
    if v27 then
        if v26 % 1 == 0 then
            return true;
        else
            return false, string.format("integer expected, got %s", v26);
        end;
    else
        return false, v28 or "";
    end;
end;
v7.numberMin = function(v29)
    return function(v30)
        local v31, v32 = v7.number(v30);
        if v31 then
            if v29 <= v30 then
                return true;
            else
                return false, string.format("number >= %s expected, got %s", v29, v30);
            end;
        else
            return false, v32 or "";
        end;
    end;
end;
v7.numberMax = function(v33)
    return function(v34)
        local v35, v36 = v7.number(v34);
        if v35 then
            if v34 <= v33 then
                return true;
            else
                return false, string.format("number <= %s expected, got %s", v33, v34);
            end;
        else
            return false, v36;
        end;
    end;
end;
v7.numberMinExclusive = function(v37)
    return function(v38)
        local v39, v40 = v7.number(v38);
        if v39 then
            if v37 < v38 then
                return true;
            else
                return false, string.format("number > %s expected, got %s", v37, v38);
            end;
        else
            return false, v40 or "";
        end;
    end;
end;
v7.numberMaxExclusive = function(v41)
    return function(v42)
        local v43, v44 = v7.number(v42);
        if v43 then
            if v42 < v41 then
                return true;
            else
                return false, string.format("number < %s expected, got %s", v41, v42);
            end;
        else
            return false, v44 or "";
        end;
    end;
end;
v7.numberPositive = v7.numberMinExclusive(0);
v7.numberNegative = v7.numberMaxExclusive(0);
v7.numberConstrained = function(v45, v46)
    assert(v7.number(v45));
    assert(v7.number(v46));
    local v47 = v7.numberMin(v45);
    local v48 = v7.numberMax(v46);
    return function(v49)
        local v50, v51 = v47(v49);
        if v50 then
            local v52, v53 = v48(v49);
            if v52 then
                return true;
            else
                return false, v53 or "";
            end;
        else
            return false, v51 or "";
        end;
    end;
end;
v7.numberConstrainedExclusive = function(v54, v55)
    assert(v7.number(v54));
    assert(v7.number(v55));
    local v56 = v7.numberMinExclusive(v54);
    local v57 = v7.numberMaxExclusive(v55);
    return function(v58)
        local v59, v60 = v56(v58);
        if v59 then
            local v61, v62 = v57(v58);
            if v61 then
                return true;
            else
                return false, v62 or "";
            end;
        else
            return false, v60 or "";
        end;
    end;
end;
v7.match = function(v63)
    assert(v7.string(v63));
    return function(v64)
        local v65, v66 = v7.string(v64);
        if v65 then
            if string.match(v64, v63) == nil then
                return false, string.format("%q failed to match pattern %q", v64, v63);
            else
                return true;
            end;
        else
            return false, v66;
        end;
    end;
end;
v7.optional = function(v67)
    assert(v7.callback(v67));
    return function(v68)
        if v68 == nil then
            return true;
        else
            local v69, v70 = v67(v68);
            if not v69 then
                return false, string.format("(optional) %s", v70 or "");
            else
                return true;
            end;
        end;
    end;
end;
v7.tuple = function(...)
    local v71 = {
        ...
    };
    return function(...)
        local v72 = {
            ...
        };
        for v73, v74 in ipairs(v71) do
            local v75, v76 = v74(v72[v73]);
            if v75 == false then
                return false, string.format("Bad tuple index #%s:\n\t%s", v73, v76 or "");
            end;
        end;
        return true;
    end;
end;
v7.keys = function(v77)
    assert(v7.callback(v77));
    return function(v78)
        local v79, v80 = v7.table(v78);
        if v79 == false then
            return false, v80 or "";
        else
            for v81 in pairs(v78) do
                local v82, v83 = v77(v81);
                if v82 == false then
                    return false, string.format("bad key %s:\n\t%s", tostring(v81), v83 or "");
                end;
            end;
            return true;
        end;
    end;
end;
v7.values = function(v84)
    assert(v7.callback(v84));
    return function(v85)
        local v86, v87 = v7.table(v85);
        if v86 == false then
            return false, v87 or "";
        else
            for v88, v89 in pairs(v85) do
                local v90, v91 = v84(v89);
                if v90 == false then
                    return false, string.format("bad value for key %s:\n\t%s", tostring(v88), v91 or "");
                end;
            end;
            return true;
        end;
    end;
end;
v7.map = function(v92, v93)
    assert(v7.callback(v92));
    assert(v7.callback(v93));
    local v94 = v7.keys(v92);
    local v95 = v7.values(v93);
    return function(v96)
        local v97, v98 = v94(v96);
        if v97 then
            local v99, v100 = v95(v96);
            if v99 then
                return true;
            else
                return false, v100 or "";
            end;
        else
            return false, v98 or "";
        end;
    end;
end;
v7.set = function(v101)
    return v7.map(v101, v7.literal(true));
end;
local v102 = v7.keys(v7.integer);
local l_v102_0 = v102 --[[ copy: 1 -> 2 ]];
v7.array = function(v104)
    assert(v7.callback(v104));
    local v105 = v7.values(v104);
    return function(v106)
        local v107, v108 = l_v102_0(v106);
        if v107 == false then
            return false, string.format("[array] %s", v108 or "");
        else
            local v109 = 0;
            for _ in ipairs(v106) do
                v109 = v109 + 1;
            end;
            for v111 in pairs(v106) do
                if not (v111 >= 1) or v109 < v111 then
                    return false, string.format("[array] key %s must be sequential", (tostring(v111)));
                end;
            end;
            local v112, v113 = v105(v106);
            if v112 then
                return true;
            else
                return false, string.format("[array] %s", v113 or "");
            end;
        end;
    end;
end;
v7.strictArray = function(...)
    local v114 = {
        ...
    };
    assert(v7.array(v7.callback)(v114));
    return function(v115)
        local v116, v117 = l_v102_0(v115);
        if v116 == false then
            return false, string.format("[strictArray] %s", v117 or "");
        elseif #v114 < #v115 then
            return false, string.format("[strictArray] Array size exceeds limit of %d", #v114);
        else
            for v118, v119 in pairs(v114) do
                local v120, v121 = v119(v115[v118]);
                if not v120 then
                    return false, string.format("[strictArray] Array index #%d - %s", v118, v121);
                end;
            end;
            return true;
        end;
    end;
end;
v102 = v7.array(v7.callback);
local l_v102_1 = v102 --[[ copy: 1 -> 3 ]];
v7.union = function(...)
    local v123 = {
        ...
    };
    assert(l_v102_1(v123));
    return function(v124)
        for _, v126 in ipairs(v123) do
            if v126(v124) then
                return true;
            end;
        end;
        return false, "bad type for union";
    end;
end;
v7.some = v7.union;
v7.intersection = function(...)
    local v127 = {
        ...
    };
    assert(l_v102_1(v127));
    return function(v128)
        for _, v130 in ipairs(v127) do
            local v131, v132 = v130(v128);
            if not v131 then
                return false, v132 or "";
            end;
        end;
        return true;
    end;
end;
v7.every = v7.intersection;
v102 = v7.map(v7.any, v7.callback);
local l_v102_2 = v102 --[[ copy: 1 -> 4 ]];
v7.interface = function(v134)
    assert(l_v102_2(v134));
    return function(v135)
        local v136, v137 = v7.table(v135);
        if v136 == false then
            return false, v137 or "";
        else
            for v138, v139 in pairs(v134) do
                local v140, v141 = v139(v135[v138]);
                if v140 == false then
                    return false, string.format("[interface] bad value for %s:\n\t%s", tostring(v138), v141 or "");
                end;
            end;
            return true;
        end;
    end;
end;
v7.strictInterface = function(v142)
    assert(l_v102_2(v142));
    return function(v143)
        local v144, v145 = v7.table(v143);
        if v144 == false then
            return false, v145 or "";
        else
            for v146, v147 in pairs(v142) do
                local v148, v149 = v147(v143[v146]);
                if v148 == false then
                    return false, string.format("[interface] bad value for %s:\n\t%s", tostring(v146), v149 or "");
                end;
            end;
            for v150 in pairs(v143) do
                if not v142[v150] then
                    return false, string.format("[interface] unexpected field %q", (tostring(v150)));
                end;
            end;
            return true;
        end;
    end;
end;
v7.instanceOf = function(v151, v152)
    assert(v7.string(v151));
    local v153 = nil;
    if v152 ~= nil then
        v153 = v7.children(v152);
    end;
    return function(v154)
        local v155, v156 = v7.Instance(v154);
        if v155 then
            if v154.ClassName ~= v151 then
                return false, string.format("%s expected, got %s", v151, v154.ClassName);
            else
                if v153 then
                    local v157, v158 = v153(v154);
                    if not v157 then
                        return false, v158;
                    end;
                end;
                return true;
            end;
        else
            return false, v156 or "";
        end;
    end;
end;
v7.instance = v7.instanceOf;
v7.instanceIsA = function(v159, v160)
    assert(v7.string(v159));
    local v161 = nil;
    if v160 ~= nil then
        v161 = v7.children(v160);
    end;
    return function(v162)
        local v163, v164 = v7.Instance(v162);
        if v163 then
            if v162:IsA(v159) then
                if v161 then
                    local v165, v166 = v161(v162);
                    if not v165 then
                        return false, v166;
                    end;
                end;
                return true;
            else
                return false, string.format("%s expected, got %s", v159, v162.ClassName);
            end;
        else
            return false, v164 or "";
        end;
    end;
end;
v7.enum = function(v167)
    assert(v7.Enum(v167));
    return function(v168)
        local v169, v170 = v7.EnumItem(v168);
        if v169 then
            if v168.EnumType == v167 then
                return true;
            else
                return false, string.format("enum of %s expected, got enum of %s", tostring(v167), (tostring(v168.EnumType)));
            end;
        else
            return false, v170;
        end;
    end;
end;
v102 = v7.tuple(v7.callback, v7.callback);
local l_v102_3 = v102 --[[ copy: 1 -> 5 ]];
v7.wrap = function(v172, v173)
    assert(l_v102_3(v172, v173));
    return function(...)
        assert(v173(...));
        return v172(...);
    end;
end;
v7.strict = function(v174)
    return function(...)
        assert(v174(...));
    end;
end;
v102 = v7.map(v7.string, v7.callback);
v7.children = function(v175)
    assert(v102(v175));
    return function(v176)
        local v177, v178 = v7.Instance(v176);
        if v177 then
            local v179 = {};
            for _, v181 in ipairs(v176:GetChildren()) do
                local l_Name_0 = v181.Name;
                if v175[l_Name_0] then
                    if not v179[l_Name_0] then
                        v179[l_Name_0] = v181;
                    else
                        return false, string.format("Cannot process multiple children with the same name %q", l_Name_0);
                    end;
                end;
            end;
            for v183, v184 in pairs(v175) do
                local v185, v186 = v184(v179[v183]);
                if not v185 then
                    return false, string.format("[%s.%s] %s", v176:GetFullName(), v183, v186 or "");
                end;
            end;
            return true;
        else
            return false, v178 or "";
        end;
    end;
end;
return v7;


return function(v0)
    local v1 = false;
    local v2 = false;
    local v3 = true;
    local v4 = 1;
    for v5, _ in pairs(v0) do
        if type(v5) == "string" then
            v2 = true;
        elseif type(v5) == "number" then
            if v4 ~= v5 then
                v3 = false;
            end;
            v1 = true;
        else
            return false;
        end;
        if not v2 or not v1 then
            v4 = v4 + 1;
        else
            return false;
        end;
    end;
    if not v1 then
        return true;
    else
        return v3;
    end;
end;


local function v0(v1, v2)
    if type(v1) ~= "table" then
        return v1;
    elseif not v2 or not v2[v1] then
        local v3 = v2 or {};
        local v4 = setmetatable({}, (getmetatable(v1)));
        v3[v1] = v4;
        for v5, v6 in pairs(v1) do
            v4[v0(v5, v3)] = v0(v6, v3);
        end;
        return v4;
    else
        return v2[v1];
    end;
end;
return v0;


local function v0(v1, v2, v3)
    if v1 == v2 then
        return true;
    else
        local v4 = type(v1);
        if v4 ~= type(v2) then
            return false;
        elseif v4 ~= "table" then
            return false;
        else
            if not v3 then
                local v5 = getmetatable(v1);
                if not (not v5 or not v5.__eq) then
                    return v1 == v2;
                end;
            end;
            local v6 = {};
            for v7, v8 in pairs(v1) do
                local v9 = v2[v7];
                if v9 ~= nil and v0(v8, v9, v3) then
                    v6[v7] = true;
                else
                    return false;
                end;
            end;
            for v10, _ in pairs(v2) do
                if not v6[v10] then
                    return false;
                end;
            end;
            return true;
        end;
    end;
end;
return v0;


return function(v0, v1, v2)
    if not ((not (not ((not v0 or not v1) or not v2) and v2 ~= "") or not v0[v2]) or not v1[v2]) and v0[v2] == v1[v2] then
        return true;
    else
        return false;
    end;
end;


return function(v0)
    local v1 = 0;
    for _ in pairs(v0) do
        v1 = v1 + 1;
    end;
    return v1;
end;


return {
    checkListConsistency = require(script.checkListConsistency),
    deepEqual = require(script.deepEqual),
    deepCopy = require(script.deepCopy),
    equalKey = require(script.equalKey),
    fieldCount = require(script.fieldCount),
    listDifferences = require(script.listDifferences),
    print = require(script.print)(print),
    shallowEqual = require(script.shallowEqual),
    tableDifference = require(script.tableDifference),
    toString = require(script.toString)
};


local v0 = require(script.Parent.tableDifference);
local function _(v1)
    local v2 = {};
    for v3 = 1, #v1 do
        v2[v1[v3]] = true;
    end;
    return v2;
end;
local _ = function(v5)
    local v6 = {};
    for v7, _ in pairs(v5) do
        table.insert(v6, v7);
    end;
    return v6;
end;
return function(v10, v11)
    local l_v0_0 = v0;
    local v13 = {};
    for v14 = 1, #v10 do
        v13[v10[v14]] = true;
    end;
    local l_v13_0 = v13;
    local v16 = {};
    for v17 = 1, #v11 do
        v16[v11[v17]] = true;
    end;
    l_v0_0 = l_v0_0(l_v13_0, v16);
    l_v13_0 = {};
    for v18, _ in pairs(l_v0_0) do
        table.insert(l_v13_0, v18);
    end;
    return l_v13_0;
end;


return function(v0)
    local function _(v1)
        if type(v1) == "string" then
            return string.format("%s", v1);
        else
            return string.format("[%s]", (tostring(v1)));
        end;
    end;
    local function v5(v3)
        local v4 = type(v3);
        if v4 == "string" then
            return string.format("%q", v3);
        elseif not (v4 ~= "function") or v4 == "table" then
            return string.format("<%s>", (tostring(v3)));
        else
            return string.format("%s", (tostring(v3)));
        end;
    end;
    local function v10(v6, v7, v8, v9)
        v0(string.format("%s%s = %s,%s", v8, if type(v6) == "string" then string.format("%s", v6) else string.format("[%s]", (tostring(v6))), v5(v7), not not v9 and string.format(" -- %s", v9) or ""));
    end;
    return function(v11, v12)
        v12 = v12 or "  ";
        if type(v11) ~= "table" then
            error("tutils.Print must be passed a table", 2);
        end;
        local v13 = {};
        local function v14(v15, v16, v17)
            v13[v15] = true;
            local v18 = string.rep(v12, v17);
            local v19 = string.rep(v12, v17 + 1);
            if not v16 then
                v0(string.format("%s%s {", v18, v5(v15)));
            else
                v0(string.format("%s%s = %s {", v18, if type(v16) == "string" then string.format("%s", v16) else string.format("[%s]", (tostring(v16))), v5(v15)));
            end;
            for v20, v21 in pairs(v15) do
                if type(v21) == "table" then
                    if not v13[v21] then
                        v14(v21, v20, v17 + 1);
                    else
                        v10(v20, v21, v19, "Possible cycle");
                    end;
                else
                    v10(v20, v21, v19);
                end;
            end;
            v0(string.format("%s}%s", v18, v17 > 0 and "," or ""));
        end;
        v14(v11, nil, 0);
    end;
end;


return function(v0, v1, v2)
    if v0 and v1 then
        if v0 == v1 then
            return true;
        else
            if not v2 then
                v2 = {};
            end;
            for v3, v4 in pairs(v0) do
                if not (not (v1[v3] ~= v4) or v2[v3]) then
                    return false;
                end;
            end;
            for v5, v6 in pairs(v1) do
                if not (not (v0[v5] ~= v6) or v2[v5]) then
                    return false;
                end;
            end;
            return true;
        end;
    else
        return false;
    end;
end;


return function(v0, v1)
    local v2 = {};
    for v3, v4 in pairs(v0) do
        if v1[v3] ~= v0[v3] then
            v2[v3] = v4;
        end;
    end;
    for v5, v6 in pairs(v1) do
        if v1[v5] ~= v0[v5] then
            v2[v5] = v6;
        end;
    end;
    return v2;
end;


local v0 = require(script.Parent.checkListConsistency);
local function v1(v2, v3)
    v3 = v3 or "";
    if type(v2) == "table" then
        local v4 = "";
        if not v0(v2) then
            v4 = v4 .. "-- WARNING: this table fails the list consistency test\n";
        end;
        v4 = v4 .. "{\n";
        for v5, v6 in pairs(v2) do
            if type(v5) == "string" then
                v4 = v4 .. "  " .. v3 .. tostring(v5) .. " = " .. v1(v6, "  " .. v3) .. ";\n";
            end;
            if type(v5) == "number" then
                v4 = v4 .. "  " .. v3 .. v1(v6, "  " .. v3) .. ",\n";
            end;
        end;
        return v4 .. v3 .. "}";
    else
        return (tostring(v2));
    end;
end;
return v1;


local v0 = require(script.Parent.Parent.shallowEqual);
local v1 = require(script.Parent.Parent.toString);
return function(v2)
    return {
        toEqual = function(v3)
            assert(v0(v2, v3), string.format("expected: %s\ninstead got: %s", v1(v3), v1(v2)));
        end
    };
end;


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


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Url_0 = require(l_CorePackages_0.Workspace.Packages.Http).Url;
local l_UrlBuilder_0 = require(l_CorePackages_0.Packages.UrlBuilder).UrlBuilder;
local v3 = require(l_CorePackages_0.Logging);
local v4 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v5 = {
    GET_INSTRUCTIONS = "timed-entertainment-allowance/v1/instructions",
    REPORT_EXECUTION = "timed-entertainment-allowance/v1/reportExecute"
};
local v6 = {
    GET_INSTRUCTIONS = {
        errorCode = "number",
        instructions = "table"
    },
    INSTRUCTION = {
        type = "number",
        instructionName = "string",
        serialId = "string",
        title = "string",
        message = "string",
        url = "string",
        modalType = "number",
        data = "string"
    },
    REPORT_EXECUTION = {
        errorCode = "number"
    }
};
local v7 = l_UrlBuilder_0.new({
    base = l_Url_0.APIS_URL,
    path = v5.GET_INSTRUCTIONS
})();
local v8 = l_UrlBuilder_0.new({
    base = l_Url_0.APIS_URL,
    path = v5.REPORT_EXECUTION
})();
local v9 = l_UrlBuilder_0.new({
    base = l_Url_0.AUTH_URL,
    path = "v1/logout"
})();
local function v14(v10, v11)
    for v12, v13 in pairs(v10) do
        assert(v11[v12] ~= nil, "Missing key");
        assert(type(v11[v12]) == v13, "Wrong type");
    end;
end;
return {
    httpService = nil,
    new = function(v15, v16)
        v4.isNotNil(v16, "httpService");
        local v17 = {
            httpService = v16
        };
        setmetatable(v17, v15);
        v15.__index = v15;
        return v17;
    end,
    getInstructions = function(v18, v19)
        v4.isNotNil(v18.httpService, "httpService");
        v4.isNotNil(v19, "callback");
        v18.httpService:RequestInternal({
            Url = v7,
            Method = "GET"
        }):Start(function(v20, v21)
            local v22 = nil;
            local v23 = nil;
            local v24 = false;
            local v25 = {};
            if v20 then
                if v21.StatusCode == 401 then
                    v22 = false;
                    v24 = true;
                    v23 = "Unauthorized";
                elseif not (v21.StatusCode >= 200) or v21.StatusCode >= 400 then
                    v22 = false;
                    v23 = "Status code: " .. v21.StatusCode;
                else
                    local l_status_0, l_result_0 = pcall(function()
                        local v26 = v18.httpService:JSONDecode(v21.Body);
                        v14(v6.GET_INSTRUCTIONS, v26);
                        assert(v26.errorCode == 0, "Error code is not 0");
                        for _, v28 in ipairs(v26.instructions) do
                            v14(v6.INSTRUCTION, v28);
                        end;
                        v25 = v26.instructions;
                    end);
                    v22 = l_status_0;
                    v23 = l_result_0;
                end;
            else
                v22 = false;
                v23 = "Connection error";
            end;
            if not v22 then
                v3.warn("HttpRequests" .. " getInstructions failed: " .. v7 .. ", " .. v23);
            end;
            v19(v22, v24, v25);
        end);
    end,
    reportExecution = function(v31, v32, v33, v34)
        v4.isNotNil(v31.httpService, "httpService");
        v31.httpService:RequestInternal({
            Url = v8,
            Method = "POST",
            Headers = {
                ["Content-Type"] = "application/json"
            },
            Body = v31.httpService:JSONEncode({
                instructionName = v32,
                serialId = v33,
                execTime = os.date("%Y-%m-%dT%H:%M:%SZ")
            })
        }):Start(function(v35, v36)
            local v37 = nil;
            local v38 = nil;
            if v35 then
                if v36.StatusCode < 200 and v36.StatusCode >= 400 then
                    v37 = false;
                    v38 = "Status code: " .. v36.StatusCode;
                else
                    local l_status_1, l_result_1 = pcall(function()
                        local v39 = v31.httpService:JSONDecode(v36.Body);
                        v14(v6.REPORT_EXECUTION, v39);
                        assert(v39.errorCode == 0, "Error code is not 0");
                    end);
                    v37 = l_status_1;
                    v38 = l_result_1;
                end;
            else
                v37 = false;
                v38 = "Connection error";
            end;
            if not v37 then
                v3.warn("HttpRequests" .. " reportExecution failed: " .. v8 .. ", " .. v38);
            end;
            if v34 ~= nil then
                v34(v37);
            end;
        end);
    end,
    logout = function(v42)
        v4.isNotNil(v42.httpService, "httpService");
        local v43 = v42.httpService:RequestInternal({
            Url = v9,
            Method = "POST",
            Headers = {
                ["Content-Type"] = "application/json"
            },
            Body = ""
        });
        pcall(function()
            v43:Start(function(_, _)
            end);
        end);
    end
};


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v2 = require(l_CorePackages_0.Logging);
return {
    globalGetter = nil,
    globalSetter = nil,
    new = function(v3, v4)
        v1.isType(v4.globalGetter, "function", "globalGetter");
        v1.isType(v4.globalSetter, "function", "globalSetter");
        local v5 = {
            globalGetter = v4.globalGetter,
            globalSetter = v4.globalSetter
        };
        setmetatable(v5, v3);
        v3.__index = v3;
        return v5;
    end,
    isLockedOut = function(v6)
        v1.isType(v6.globalGetter, "function", "globalGetter");
        return v6.globalGetter("ScreenTime.lockedOut") == "true";
    end,
    setLockedOut = function(v7)
        v2.warn("Utils" .. " setLockedOut");
        v1.isType(v7.globalSetter, "function", "globalSetter");
        v7.globalSetter("ScreenTime.lockedOut", "true");
    end
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_Players_0 = game:GetService("Players");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v6 = require(l_Parent_0.React);
local v7 = require(l_Parent_0.Style);
local v8 = require(l_script_FirstAncestor_0.Components.ReportTypeSelector);
local v9 = require(l_script_FirstAncestor_0.Components.Constants);
local l_ReportModes_0 = v9.ReportModes;
local l_ReportTypes_0 = v9.ReportTypes;
local v12 = require(l_script_FirstAncestor_0.Components.SelectInSceneReportMenu);
local v13 = require(l_script_FirstAncestor_0.Components.Containers.ReportPersonMenuItemsContainer);
local v14 = require(l_script_FirstAncestor_0.Components.Containers.ReportExperienceMenuItemsContainer);
local v15 = require(l_script_FirstAncestor_0.ReportAnything.Utility.ReportAnythingAnalytics);
local v16 = require(l_script_FirstAncestor_0.Analytics.ReportAbuseAnalytics);
local v17 = require(l_script_FirstAncestor_0.ReportAnything.Components.AnnotationModal);
local v18 = require(l_script_FirstAncestor_0.Components.ModalBasedSelectorDialogController);
local l_Localization_0 = require(l_CorePackages_0.Workspace.Packages.InExperienceLocales).Localization;
local l_LocalizationProvider_0 = require(l_CorePackages_0.Workspace.Packages.Localization).LocalizationProvider;
local v21 = require(l_script_FirstAncestor_0.Hooks.useReportAnythingWithScreenshot);
local v22 = require(l_script_FirstAncestor_0.Reducers.analyticsReducer);
local v23 = require(l_script_FirstAncestor_0.Components.createCleanup);
local v24 = require(l_Parent_0.DsaIllegalContentReporting);
local l_isShowEUDSAIllegalContentReportingLink_0 = v24.isShowEUDSAIllegalContentReportingLink;
local l_DSAReportLink_0 = v24.DSAReportLink;
local l_StyleProviderWithDefaultTheme_0 = v7.StyleProviderWithDefaultTheme;
local v28 = require(l_CorePackages_0.Packages.ReactFocusNavigation);
local v29 = require(l_RobloxGui_0.Modules.Common.FocusNavigationEffectsWrapper);
local l_FocusNavigableSurfaceIdentifierEnum_0 = require(l_CorePackages_0.Workspace.Packages.FocusNavigationUtils).FocusNavigableSurfaceIdentifierEnum;
local v31 = v28.FocusNavigationService.new(v28.EngineInterface.CoreGui);
local l_GetFFlagSelectInSceneReportMenu_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagSelectInSceneReportMenu;
local v33 = require(l_script_FirstAncestor_0.Utility.isShowSelectInSceneReportMenu);
local l_SegmentedControl_0 = require(l_CorePackages_0.UIBlox).App.Control.SegmentedControl;
local v35 = {
    l_ReportModes_0.Classic,
    l_ReportModes_0.SelectInScene
};
local v36 = {
    l_ReportTypes_0.Person,
    l_ReportTypes_0.Experience
};
local v37 = nil;
local l_RobloxTranslator_0 = l_RobloxGui_0.Modules:FindFirstChild("RobloxTranslator");
if l_RobloxTranslator_0 then
    v37 = require(l_RobloxTranslator_0);
end;
local function v67(v39)
    local v40, v41 = v6.useState(false);
    local v42, v43 = v6.useState(1);
    local v44, v45 = v6.useState(1);
    local v46, v47 = v6.useState(nil);
    local v48, v49 = v6.useState(0);
    local v50, v51 = v6.useState(false);
    local v52, v53 = v6.useState({
        width = 0,
        height = 0
    });
    local v54, v55 = v6.useReducer(v22, v9.AnalyticsInitialState);
    local v56 = v35[v42];
    local v57 = v36[v44];
    local v58, v59 = v21(v40, v39.hideReportTab, v39.showReportTab, (v6.useCallback(v23(v54, v55, v47, v57), {
        v54,
        v44
    })));
    v6.useEffect(function()
        v39.registerOnReportTabDisplayed(function()
            v41(true);
        end);
        v39.registerOnReportTabHidden(function()
            v41(false);
            v17.unmountAnnotationPage();
            v18.unmountModalSelector();
        end);
        v39.registerSetNextPlayerToReport(function(v60)
            v47(v60);
        end);
        v39.registerOnMenuWidthChange(function(v61)
            v49(v61);
        end);
        v39.registerOnSettingsHidden(function()
            if v16:getAbuseReportSessionEntryPoint() == "" then
                v59({
                    type = v9.ReportAnythingActions.ClearAll
                });
            end;
        end);
    end, {});
    v6.useEffect(function()
        if v40 then
            if #l_Players_0:GetPlayers() <= 1 then
                v51(true);
                v45(2);
                return ;
            else
                v45(1);
                v51(false);
            end;
        else
            v45(0);
            if l_GetFFlagSelectInSceneReportMenu_0() then
                v43(1);
                return ;
            end;
        end;
    end, {
        v40
    });
    v6.useEffect(function()
        if v40 then
            v55({
                type = v9.AnalyticsActions.SetMenuOpenedTimestamp,
                timestamp = math.floor(workspace:GetServerTimeNow() * 1000)
            });
            v16:startAbuseReportSession("ReportPage");
        end;
        local l_CurrentCamera_0 = game.Workspace.CurrentCamera;
        if l_CurrentCamera_0 ~= nil then
            local l_ViewportSize_0 = l_CurrentCamera_0.ViewportSize;
            v53({
                width = l_ViewportSize_0.X,
                height = l_ViewportSize_0.Y
            });
            v55({
                type = v9.AnalyticsActions.SetViewportInformation,
                viewportSizeX = l_ViewportSize_0.X,
                viewportSizeY = l_ViewportSize_0.Y
            });
        end;
    end, {
        v40,
        v48
    });
    local v64 = nil;
    local v65 = {
        onReportComplete = v39.onReportComplete,
        reportAnythingAnalytics = v15,
        reportAnythingState = v58,
        reportAnythingDispatch = v59,
        hideReportTab = v39.hideReportTab,
        isReportTabVisible = v40,
        showReportSentPage = v39.showReportSentPage,
        analyticsState = v54,
        analyticsDispatch = v55,
        preselectedPlayer = v46,
        setPreselectedPlayer = v47,
        menuWidth = v48,
        viewportDimension = v52
    };
    if v57 == l_ReportTypes_0.Person then
        v64 = v6.createElement(v13, {
            utilityProps = v65
        });
    elseif v57 == l_ReportTypes_0.Experience then
        v64 = v6.createElement(v14, {
            utilityProps = v65
        });
    end;
    return v6.createElement("Frame", {
        BackgroundTransparency = 1,
        AutomaticSize = Enum.AutomaticSize.Y,
        Size = UDim2.new(1, 0, 0, 0)
    }, {
        MenuLayoutFrame = v6.createElement("Frame", {
            BackgroundTransparency = 1,
            AutomaticSize = Enum.AutomaticSize.Y,
            Size = UDim2.new(1, 0, 0, 0)
        }, {
            Layout = v6.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = 0,
                Padding = UDim.new(0, 12)
            }),
            SelectInSceneToggleFrame = if not v33() then nil else v6.createElement("Frame", {
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.XY,
                Position = UDim2.new(0.5, 0, 0, 0),
                AnchorPoint = Vector2.new(0.5, 0),
                LayoutOrder = 0
            }, {
                SelectInSceneToggle = v6.createElement(l_SegmentedControl_0, {
                    onTabActivated = function(v66)
                        v43(v66);
                    end,
                    selectedTabIndex = v42,
                    tabs = {
                        {
                            tabName = v37:FormatByKey("Feature.ReportAbuse.Action.BuildAReport")
                        },
                        {
                            tabName = v37:FormatByKey("Feature.ReportAbuse.Action.SelectInScene")
                        }
                    },
                    width = UDim.new(0, v48)
                })
            }),
            Menu = if v56 == l_ReportModes_0.SelectInScene then v6.createElement(v12) else if v56 == l_ReportModes_0.Classic then v6.createElement("Frame", {
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.Y,
                Size = UDim2.new(1, 0, 0, 0),
                LayoutOrder = 1
            }, {
                Layout = v6.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, 12)
                }),
                ReportTypeSelector = v6.createElement(v8, {
                    label = "Experience or Person?",
                    abuseType = v36[v44],
                    layoutOrder = 0,
                    utilityProps = v65,
                    isSelectionDisabled = v50,
                    menuWidth = v48,
                    onClickLeft = function()
                        v59({
                            type = v9.ReportAnythingActions.ClearAnnotationFlowProperties
                        });
                        v55({
                            type = v9.AnalyticsActions.IncrementExperiencePersonChanged
                        });
                        v45(((v44 - 1) - 1) % #v36 + 1);
                    end,
                    onClickRight = function()
                        v59({
                            type = v9.ReportAnythingActions.ClearAnnotationFlowProperties
                        });
                        v55({
                            type = v9.AnalyticsActions.IncrementExperiencePersonChanged
                        });
                        v45(((v44 - 1) + 1) % #v36 + 1);
                    end
                }),
                MenuItemsContainer = v6.createElement("Frame", {
                    BackgroundTransparency = 1,
                    LayoutOrder = 1,
                    AutomaticSize = Enum.AutomaticSize.Y,
                    Size = UDim2.new(1, 0, 0, 0)
                }, {
                    MenuItems = v64
                }),
                DSALinkFrame = if not l_isShowEUDSAIllegalContentReportingLink_0() then nil else v6.createElement("Frame", {
                    BackgroundTransparency = 1,
                    LayoutOrder = 2,
                    AutomaticSize = Enum.AutomaticSize.Y,
                    Size = UDim2.new(1, 0, 0, 0)
                }, {
                    DSALink = v6.createElement(l_DSAReportLink_0)
                })
            }) else nil
        })
    });
end;
return function(v68)
    return v6.createElement(l_StyleProviderWithDefaultTheme_0, {
        withDarkTheme = true
    }, {
        LocalizationProvider = v6.createElement(l_LocalizationProvider_0, {
            localization = l_Localization_0.new(l_LocalizationService_0.RobloxLocaleId)
        }, {
            FocusNavigationProvider = v6.createElement(v28.FocusNavigationContext.Provider, {
                value = v31
            }, {
                FocusNavigationEffects = v6.createElement(v29, {
                    selectionGroupName = v9.AbuseReportMenuRootName,
                    focusNavigableSurfaceIdentifier = l_FocusNavigableSurfaceIdentifierEnum_0.RouterView,
                    automaticSize = Enum.AutomaticSize.Y,
                    size = UDim2.new(1, 0, 0, 0)
                }, {
                    [v9.AbuseReportMenuRootName] = v6.createElement(v67, v68)
                })
            })
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_script_FirstAncestor_0.MenuConfigs.getMenuItemsFromConfigs);
local v4 = require(l_script_FirstAncestor_0.MenuConfigs.Experience.ReportExperienceMenuItemConfigList);
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v6 = require(l_script_FirstAncestor_0.Components.Constants);
local v7 = require(l_Parent_0.Cryo);
local v8 = require(l_script_FirstAncestor_0.Reducers.reportExperienceUIStateReducer);
return function(v9)
    local v10, v11 = v2.useReducer(v8, v6.InitExperienceUIState);
    v2.useEffect(function()
        if v9.utilityProps.isReportTabVisible then
            v9.utilityProps.analyticsDispatch({
                type = v6.AnalyticsActions.SwitchToExperienceInitialSelections
            });
        end;
    end, {
        v9.utilityProps.isReportTabVisible
    });
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        MenuItems = v2.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, (v7.Dictionary.join({
            Layout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 12)
            })
        }, (v3(v10, v11, v9.utilityProps, v4)))))
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_Players_0 = game:GetService("Players");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v4 = require(l_Parent_0.React);
local v5 = require(l_Parent_0.Cryo);
local v6 = require(l_script_FirstAncestor_0.MenuConfigs.getMenuItemsFromConfigs);
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v8 = require(l_script_FirstAncestor_0.Components.Constants);
local v9 = require(l_script_FirstAncestor_0.MenuConfigs.Players.ReportPlayerMenuItemConfigList);
local v10 = require(l_script_FirstAncestor_0.Reducers.reportPersonUIStateReducer);
local v11 = require(l_script_FirstAncestor_0.Utility.handlePreselectedPlayer);
local l_default_0 = require(l_RobloxGui_0.Modules.VoiceChat.VoiceChatServiceManager).default;
local l_PlayerMenuActions_0 = v8.PlayerMenuActions;
local function v16(v14, v15)
    return v14.Name:lower() < v15.Name:lower();
end;
return function(v17)
    local v18, v19 = v4.useReducer(v10, v8.InitPersonUIState);
    v4.useEffect(function()
        if v17.utilityProps.isReportTabVisible ~= true then
            return ;
        else
            v17.utilityProps.analyticsDispatch({
                type = v8.AnalyticsActions.SwitchToPersonInitialSelections
            });
            l_default_0:asyncInit():andThen(function()
                if v17.utilityProps.preselectedPlayer then
                    v11(v17.utilityProps.preselectedPlayer, true, v19, v17.utilityProps.analyticsDispatch);
                end;
                v19({
                    type = l_PlayerMenuActions_0.SetVoiceEnabled,
                    enabled = true
                });
            end):catch(function()
                if v17.utilityProps.preselectedPlayer then
                    v11(v17.utilityProps.preselectedPlayer, false, v19, v17.utilityProps.analyticsDispatch);
                end;
            end);
            return ;
        end;
    end, {
        v17.utilityProps.isReportTabVisible
    });
    v4.useEffect(function()
        local v20 = {};
        if v18.methodOfAbuse == v8.AbuseMethods.VoiceChat then
            for _, v22 in pairs((l_default_0:getRecentUsersInteractionData())) do
                table.insert(v20, v22.player);
            end;
            table.sort(v20, v16);
        elseif not ((v18.methodOfAbuse ~= v8.AbuseMethods.TextChat and v18.methodOfAbuse ~= v8.AbuseMethods.Other) and v18.methodOfAbuse ~= v8.AbuseMethods.Avatar) or v18.methodOfAbuse == nil then
            v20 = l_Players_0:GetPlayers();
            table.sort(v20, v16);
        end;
        local v23 = false;
        local v24 = false;
        v19({
            type = l_PlayerMenuActions_0.UpdatePlayerNameMap,
            playerObjects = v5.List.filter(v20, function(v25)
                if v18.preselectedPlayer and v25.UserId == v18.preselectedPlayer.UserId then
                    v23 = true;
                end;
                if v18.allegedAbuser and v25.UserId == v18.allegedAbuserId then
                    v24 = true;
                end;
                local v26 = false;
                if v25 ~= l_Players_0.LocalPlayer then
                    v26 = v25.UserId > 0;
                end;
                return v26;
            end)
        });
        if not v18.preselectedPlayer or not v23 then
            if not v24 then
                v19({
                    type = v8.PlayerMenuActions.UpdateAbuser,
                    abuseId = nil,
                    abuser = nil
                });
            end;
        else
            v19({
                type = v8.PlayerMenuActions.UpdateAbuser,
                abuseId = v18.preselectedPlayer.UserId,
                abuser = v18.preselectedPlayer
            });
            v19({
                type = v8.PlayerMenuActions.SetPreselectedPlayer,
                player = nil
            });
        end;
    end, {
        v18.methodOfAbuse,
        v18.isVoiceEnabled,
        v17.utilityProps.isReportTabVisible,
        v18.preselectedPlayer
    });
    return v4.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        MenuItems = v4.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, (v5.Dictionary.join({
            Layout = v4.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 12)
            })
        }, (v6(v18, v19, v17.utilityProps, v9)))))
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local v1 = require(l_script_FirstAncestor_0.Parent.React);
local v2 = require(l_script_FirstAncestor_0.Components.MenuItems.ReportMenuItem);
return function(v3)
    return v1.createElement(v2, {
        label = v3.label,
        layoutOrder = v3.layoutOrder,
        rightComponent = v3.button,
        menuContainerWidth = v3.menuContainerWidth
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.UIBlox);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v4 = require(l_Parent_0.React);
local l_AppFonts_0 = require(l_CorePackages_0.Workspace.Packages.Style).AppFonts;
local l_DropdownMenu_0 = v2.App.Menu.DropdownMenu;
local v7 = require(l_script_FirstAncestor_0.Components.MenuItems.ReportMenuItem);
local l_useStyle_0 = v2.Core.Style.useStyle;
local v9 = require(l_Parent_0.Cryo);
return function(v10)
    local l_Theme_0 = l_useStyle_0().Theme;
    return v4.createElement(v7, {
        label = v10.label,
        layoutOrder = v10.layoutOrder,
        rightComponent = if v10.readonlyValue ~= nil then v4.createElement("TextLabel", {
            Text = v10.readonlyValue,
            Font = l_AppFonts_0.default:getMedium(),
            TextColor3 = l_Theme_0.TextEmphasis.Color,
            TextTransparency = l_Theme_0.TextEmphasis.Transparency,
            TextSize = 20,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Center,
            Size = UDim2.new(1, 0, 0, 48),
            BackgroundTransparency = 1
        }) else v4.createElement(l_DropdownMenu_0, {
            placeholder = "Choose One",
            onChange = v10.onSelect,
            height = UDim.new(0, 48),
            screenSize = Vector2.new(2400, 1800),
            errorState = false,
            showDropShadow = true,
            fixedListHeight = 180,
            cellDatas = v9.List.map(v10.selections, function(v12)
                return {
                    text = v12
                };
            end)
        }),
        menuContainerWidth = v10.menuContainerWidth
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local v1 = require(l_script_FirstAncestor_0.Parent.React);
local v2 = require(l_script_FirstAncestor_0.Components.ReportTextEntry);
local v3 = require(l_script_FirstAncestor_0.Components.MenuItems.ReportMenuItem);
local v4 = require(l_script_FirstAncestor_0.Flags.GetFFlagAbuseReportFullWidthCommentBox);
local v5 = require(l_script_FirstAncestor_0.Components.Constants);
return function(v6)
    return v1.createElement(v3, {
        label = "Abuse Description",
        isRightComponentFullWidth = v4(),
        layoutOrder = v6.layoutOrder,
        rightComponent = v1.createElement(v2, {
            layoutOrder = v6.layoutOrder,
            text = v6.comment,
            onUpdate = v6.onUpdate
        }),
        heightOverride = if not v4() then nil else v5.FreeCommentsMenuItemHeight,
        menuContainerWidth = v6.menuContainerWidth
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local v1 = require(l_script_FirstAncestor_0.Parent.React);
local v2 = require(l_script_FirstAncestor_0.Components.ModalBasedSelector);
local v3 = require(l_script_FirstAncestor_0.Components.MenuItems.ReportMenuItem);
return function(v4)
    return v1.createElement(v3, {
        label = v4.label,
        layoutOrder = v4.layoutOrder,
        rightComponent = v1.createElement(v2, v4),
        menuContainerWidth = v4.menuContainerWidth
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v4 = require(l_script_FirstAncestor_0.Components.Constants);
local v5 = require(l_Parent_0.UIBlox);
local v6 = require(l_Parent_0.React);
local l_ScrollingListTable_0 = v5.App.Table.ScrollingListTable;
local l_CellHeadDetail_0 = v5.App.Table.CellHeadDetail;
local l_Cell_0 = v5.App.Table.Cell;
local l_CellTailDescription_0 = v5.App.Table.CellTailDescription;
local l_ModalWindow_0 = v5.App.Dialog.Modal.ModalWindow;
local v12 = require(l_Parent_0.Dash);
local v13 = require(l_Parent_0.Cryo);
local l_useStyle_0 = v5.Core.Style.useStyle;
local l_IconButton_0 = v5.App.Button.IconButton;
local l_IconSize_0 = v5.App.ImageSet.Enum.IconSize;
local l_Images_0 = v5.App.ImageSet.Images;
local v18 = require(l_RobloxGui_0.Modules.Common.CoreScriptsRootProvider);
local v19 = require(l_RobloxGui_0.Modules.Common.FocusNavigationEffectsWrapper);
local l_FocusNavigableSurfaceIdentifierEnum_0 = require(l_CorePackages_0.Workspace.Packages.FocusNavigationUtils).FocusNavigableSurfaceIdentifierEnum;
local v21 = require(l_script_FirstAncestor_0.Flags.GetFFlagModalSelectorCloseButton);
local function v31(v22)
    local v23 = l_useStyle_0();
    local l_Theme_0 = v23.Theme;
    local v25 = math.min(#v22.cellData * 40, (v22.viewportHeight - 80) - 24);
    local v26 = v25 + 24;
    local v27 = 0;
    local v28 = 0;
    local v29 = {
        Paddings = v6.createElement("UIPadding", {
            PaddingTop = UDim.new(0, 12),
            PaddingBottom = UDim.new(0, 12),
            PaddingLeft = UDim.new(0, 12),
            PaddingRight = UDim.new(0, 12)
        })
    };
    if v21() then
        v26 = (v25 + 48) + 40;
        v27 = 12;
        v28 = -36;
        v29 = v13.Dictionary.join(v29, {
            Layout = v6.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = 0
            }),
            Header = v6.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 40),
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }, {
                Layout = v6.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Horizontal,
                    HorizontalAlignment = Enum.HorizontalAlignment.Right
                }),
                CloseButton = v6.createElement(l_IconButton_0, {
                    size = UDim2.fromOffset(0, 0),
                    iconSize = l_IconSize_0.Medium,
                    icon = l_Images_0["icons/navigation/close"],
                    onActivated = function()
                        v22.onClose();
                    end
                })
            }),
            Divider = v6.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 1),
                Position = UDim2.new(0, 0, 1, 0),
                AnchorPoint = Vector2.new(0, 1),
                BackgroundTransparency = v23.Theme.Divider.Transparency,
                BackgroundColor3 = v23.Theme.Divider.Color,
                BorderSizePixel = 0,
                LayoutOrder = 2
            })
        });
    end;
    return v6.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        Position = UDim2.new(0, 0, 0, 0)
    }, {
        Overlay = if not v22.isShown then nil else v6.createElement("TextButton", {
            Selectable = false,
            AutoButtonColor = false,
            BorderSizePixel = 0,
            BackgroundColor3 = l_Theme_0.Overlay.Color,
            BackgroundTransparency = l_Theme_0.Overlay.Transparency,
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.fromScale(0.5, 0.5),
            AnchorPoint = Vector2.new(0.5, 0.5),
            ZIndex = 10,
            Text = "",
            [v6.Event.Activated] = function()
                v22.onClose();
            end
        }, {
            Modal = v6.createElement(l_ModalWindow_0, {
                isFullHeight = false,
                screenSize = Vector2.new(v22.viewportWidth, v22.viewportHeight)
            }, {
                ModalContent = v6.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, v26),
                    BackgroundTransparency = 0,
                    BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Position = UDim2.new(0.5, 0, 0.5, 20)
                }, (v13.Dictionary.join(v29, {
                    SelectorFrame = v6.createElement("Frame", {
                        Size = UDim2.new(1, 0, 1, v28),
                        BackgroundTransparency = 1,
                        LayoutOrder = 3
                    }, {
                        Paddings = v6.createElement("UIPadding", {
                            PaddingTop = UDim.new(0, v27)
                        }),
                        ModalSelector = v6.createElement(l_ScrollingListTable_0, {
                            selectable = false,
                            size = UDim2.new(1, 0, 1, 0),
                            cells = v12.map(v22.cellData, function(v30)
                                return v6.createElement(l_Cell_0, {
                                    head = v6.createElement(l_CellHeadDetail_0, {
                                        labelText = v30.label,
                                        subLabelText = v30.subLabel
                                    }),
                                    tail = v6.createElement(l_CellTailDescription_0, {
                                        text = "",
                                        showArrow = false
                                    }),
                                    background = v6.createElement("Frame", {
                                        BackgroundTransparency = 1,
                                        Size = UDim2.fromScale(1, 1)
                                    }),
                                    size = UDim2.new(1, 0, 0, 40),
                                    userInteractionEnabled = true,
                                    onActivated = function()
                                        v22.onSelect(v30.label, v30.subLabel, v30.identifier);
                                        v22.onClose();
                                    end
                                });
                            end)
                        })
                    })
                })))
            })
        })
    });
end;
DialogWrapper = function(v32)
    return v6.createElement(v18, {}, {
        FocusNavigationEffects = v6.createElement(v19, {
            selectionGroupName = v4.ModalBaseSelectorDialogRootName,
            focusNavigableSurfaceIdentifier = l_FocusNavigableSurfaceIdentifierEnum_0.CentralOverlay
        }, {
            DialogContainer = v6.createElement(v31, v32)
        })
    });
end;
return DialogWrapper;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.UIBlox);
local l_Images_0 = v3.App.ImageSet.Images;
local l_Button_0 = v3.App.Button.Button;
local l_ButtonType_0 = v3.App.Button.Enum.ButtonType;
local v7 = require(l_script_FirstAncestor_0.Components.ModalBasedSelectorDialogController);
return function(v8)
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        ControlButton = v2.createElement(l_Button_0, {
            buttonType = l_ButtonType_0.Secondary,
            size = UDim2.new(1, 0, 1, 0),
            anchorPoint = Vector2.new(0.5, 0.5),
            position = UDim2.fromScale(0.5, 0.5),
            text = v8.selectedValue or "Choose One",
            inputIcon = l_Images_0["icons/actions/truncationExpand"],
            onActivated = function()
                v7.mountModalSelector(v8.viewportHeight, v8.viewportWidth, v8.selections, v8.onSelect, function()
                    v7.unmountModalSelector();
                end);
            end
        })
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_GuiService_0 = game:GetService("GuiService");
local v2 = require(game:GetService("CorePackages").Roact);
local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local v4 = require(l_script_FirstAncestor_0.Components.Constants);
local v5 = require(l_script_FirstAncestor_0.Components.ModalBaseSelectorDialog);
local v6 = {
    modalSelectorHandle = nil,
    modalSelectorFrame = nil,
    modalSelectorScreenGui = nil
};
return {
    mountModalSelector = function(v7, v8, v9, v10, v11)
        local l_l_GuiService_0_GuiInset_0, _ = l_GuiService_0:GetGuiInset();
        if not v6.modalSelectorScreenGui then
            local l_ScreenGui_0 = Instance.new("ScreenGui");
            l_ScreenGui_0.Name = "ModalSelectorDialogGui";
            l_ScreenGui_0.DisplayOrder = 7;
            l_ScreenGui_0.Enabled = true;
            l_ScreenGui_0.ZIndexBehavior = Enum.ZIndexBehavior.Sibling;
            l_ScreenGui_0.Parent = l_CoreGui_0:FindFirstChild(v4.AbuseReportMenuRootName, true);
            v6.modalSelectorScreenGui = l_ScreenGui_0;
            local l_Frame_0 = Instance.new("Frame");
            l_Frame_0.BackgroundTransparency = 1;
            l_Frame_0.Position = UDim2.new(0, 0, 0, -l_l_GuiService_0_GuiInset_0.Y);
            l_Frame_0.Size = UDim2.new(1, 0, 1, l_l_GuiService_0_GuiInset_0.Y);
            l_Frame_0.Parent = v6.modalSelectorScreenGui;
            v6.modalSelectorFrame = l_Frame_0;
        end;
        v6.modalSelectorHandle = v2.mount(v2.createElement(v5, {
            isShown = true,
            cellData = v9,
            viewportHeight = v7,
            viewportWidth = v8,
            onSelect = v10,
            onClose = v11
        }), v6.modalSelectorFrame, "ModalSelectorDialog");
    end,
    unmountModalSelector = function()
        if v6.modalSelectorHandle ~= nil then
            v2.unmount(v6.modalSelectorHandle);
            v6.modalSelectorHandle = nil;
        end;
        if v6.modalSelectorScreenGui ~= nil then
            v6.modalSelectorFrame.Parent = nil;
            v6.modalSelectorFrame = nil;
            v6.modalSelectorScreenGui = nil;
        end;
    end
};


local l_Parent_0 = script:FindFirstAncestor("AbuseReportMenu").Parent;
local v1 = require(l_Parent_0.React);
local l_useStyle_0 = require(l_Parent_0.UIBlox).Core.Style.useStyle;
return function(v3)
    local v4 = l_useStyle_0();
    local l_Font_0 = v4.Font.Body.Font;
    local l_BaseSize_0 = v4.Font.BaseSize;
    local l_Theme_0 = v4.Theme;
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, 60),
        BackgroundTransparency = v4.Theme.BackgroundDefault.Transparency,
        BackgroundColor3 = v4.Theme.BackgroundDefault.Color
    }, {
        UIPadding = v1.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, 10),
            PaddingRight = UDim.new(0, 10),
            PaddingTop = UDim.new(0, 10),
            PaddingBottom = UDim.new(0, 10)
        }),
        UICorner = v1.createElement("UICorner", {
            CornerRadius = UDim.new(0, 8)
        }),
        AbuseReportsText = v1.createElement("TextBox", {
            Size = UDim2.new(1, 0, 0, 40),
            Position = UDim2.new(0, 0, 0, 0),
            AnchorPoint = Vector2.new(0, 0),
            BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
            PlaceholderText = "In your own words, help us understand what went wrong.",
            Font = l_Font_0,
            Text = v3.text,
            TextSize = l_BaseSize_0,
            TextColor3 = l_Theme_0.TextDefault.Color,
            TextTransparency = l_Theme_0.TextDefault.Transparency,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top,
            BackgroundTransparency = l_Theme_0.BackgroundDefault.Transparency,
            BorderSizePixel = 0,
            LayoutOrder = 1,
            RichText = false,
            MultiLine = true,
            TextWrapped = true,
            ClearTextOnFocus = false,
            OverlayNativeInput = true,
            ClipsDescendants = true,
            [v1.Event.FocusLost] = function()
            end,
            [v1.Event.Focused] = function()
            end,
            [v1.Change.AbsoluteSize] = function()
            end,
            [v1.Change.Text] = function(v8)
                if v3.text ~= v8.Text then
                    v3.onUpdate(v8.Text);
                end;
            end
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_AppFonts_0 = require(l_CorePackages_0.Workspace.Packages.Style).AppFonts;
local v3 = require(l_CorePackages_0.UIBlox);
local v4 = require(l_script_FirstAncestor_0.Parent.React);
local l_Images_0 = v3.App.ImageSet.Images;
local v6 = require(l_script_FirstAncestor_0.Components.Constants);
local v7 = require(l_script_FirstAncestor_0.Components.getMenuItemDimensions);
local l_TextButton_0 = v3.App.Button.TextButton;
local l_IconButton_0 = v3.App.Button.IconButton;
local l_IconSize_0 = v3.App.ImageSet.Enum.IconSize;
local v11 = require(l_script_FirstAncestor_0.Flags.GetFFlagAbuseReportFullWidthCommentBox);
return function(v12)
    local v13 = v7(v12.menuWidth);
    return v4.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, if not v11() then v6.MenuItemHeight else v6.MenuItemHeightTight),
        BackgroundTransparency = 1
    }, {
        Layout = v4.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            SortOrder = Enum.SortOrder.LayoutOrder,
            HorizontalAlignment = Enum.HorizontalAlignment.Center
        }),
        Label = v4.createElement("TextLabel", {
            Text = v12.label,
            Font = l_AppFonts_0.default:getMedium(),
            LayoutOrder = 1,
            TextColor3 = Color3.new(1, 1, 1),
            TextTransparency = 0,
            TextSize = v13.TextSize,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left,
            Size = UDim2.new(0, v13.LeftWidth, 0, v6.MenuItemHeight),
            BackgroundTransparency = 1
        }),
        MiddleWidthHolder = v4.createElement("Frame", {
            Size = UDim2.new(0, math.max(0, ((v12.menuWidth - v13.LeftWidth) - v13.RightWidth) - 100), 0, v6.MenuItemHeight),
            BackgroundTransparency = 1,
            LayoutOrder = 2
        }),
        Container = v4.createElement("Frame", {
            Size = UDim2.new(0, v13.RightWidth, 1, 0),
            BackgroundTransparency = 1,
            LayoutOrder = 3
        }, {
            Layout = v4.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                VerticalAlignment = Enum.VerticalAlignment.Center
            }),
            LeftChevron = if not v12.isSelectionDisabled then v4.createElement(l_IconButton_0, {
                size = UDim2.fromOffset(32, 32),
                iconSize = l_IconSize_0.Medium,
                icon = l_Images_0["icons/actions/cycleLeft"],
                onActivated = v12.onClickLeft,
                layoutOrder = 1
            }) else nil,
            ButtonContainer = v4.createElement("Frame", {
                Size = UDim2.new(0, v13.RightWidth - 64, 1, 0),
                BackgroundTransparency = 1,
                LayoutOrder = 2
            }, {
                ToggleButton = v4.createElement(l_TextButton_0, {
                    size = UDim2.new(1, 0, 1, 0),
                    text = v12.abuseType,
                    onActivated = v12.onClickRight,
                    layoutOrder = 2,
                    isDisabled = v12.isSelectionDisabled
                })
            }),
            RightChevron = if not v12.isSelectionDisabled then v4.createElement(l_IconButton_0, {
                size = UDim2.fromOffset(32, 32),
                iconSize = l_IconSize_0.Medium,
                icon = l_Images_0["icons/actions/cycleRight"],
                onActivated = v12.onClickRight,
                layoutOrder = 3
            }) else nil
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v3 = require(l_script_FirstAncestor_0.Parent.React);
local v4 = require(l_CorePackages_0.UIBlox);
local l_StyledTextLabel_0 = v4.App.Text.StyledTextLabel;
local l_Button_0 = v4.App.Button.Button;
local l_ButtonType_0 = v4.App.Button.Enum.ButtonType;
local l_StandardButtonSize_0 = v4.App.Button.Enum.StandardButtonSize;
local l_useStyle_0 = v4.Core.Style.useStyle;
local v10 = nil;
local l_RobloxTranslator_0 = l_RobloxGui_0.Modules:FindFirstChild("RobloxTranslator");
if l_RobloxTranslator_0 then
    v10 = require(l_RobloxTranslator_0);
end;
return function()
    local v12 = l_useStyle_0();
    return v3.createElement("Frame", {
        BackgroundTransparency = 1,
        AutomaticSize = Enum.AutomaticSize.Y,
        Size = UDim2.new(1, 0, 0, 0)
    }, {
        Layout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            Padding = UDim.new(0, 30)
        }),
        Padding = v3.createElement("UIPadding", {
            PaddingTop = UDim.new(0, 15)
        }),
        Title = v3.createElement(l_StyledTextLabel_0, {
            text = "Report using Select in Scene",
            fontStyle = v12.Font.Header1,
            colorStyle = v12.Theme.TextEmphasis,
            layoutOrder = 0,
            automaticSize = Enum.AutomaticSize.XY
        }),
        SubheadingFrame = v3.createElement("Frame", {
            BackgroundTransparency = 1,
            AutomaticSize = Enum.AutomaticSize.XY,
            Position = UDim2.new(0.5, 0, 0, 0),
            AnchorPoint = Vector2.new(0.5, 0),
            LayoutOrder = 1
        }, {
            Layout = v3.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 30)
            }),
            Subheading1 = v3.createElement(l_StyledTextLabel_0, {
                text = "\226\128\162 " .. v10:FormatByKey("Feature.ReportAbuse.Label.SelectInSceneDescription1"),
                fontStyle = v12.Font.Body,
                colorStyle = v12.Theme.TextEmphasis,
                layoutOrder = 0,
                automaticSize = Enum.AutomaticSize.XY
            }),
            Subheading2 = v3.createElement(l_StyledTextLabel_0, {
                text = "\226\128\162 " .. v10:FormatByKey("Feature.ReportAbuse.Label.SelectInSceneDescription2"),
                fontStyle = v12.Font.Body,
                colorStyle = v12.Theme.TextEmphasis,
                layoutOrder = 1,
                automaticSize = Enum.AutomaticSize.XY
            }),
            Subheading3 = v3.createElement(l_StyledTextLabel_0, {
                text = "\226\128\162 " .. v10:FormatByKey("Feature.ReportAbuse.Label.SelectInSceneDescription3"),
                fontStyle = v12.Font.Body,
                colorStyle = v12.Theme.TextEmphasis,
                layoutOrder = 2,
                automaticSize = Enum.AutomaticSize.XY
            })
        }),
        EnterSelectInSceneButton = v3.createElement(l_Button_0, {
            text = v10:FormatByKey("Feature.ReportAbuse.Action.EnterSceneReporting"),
            buttonType = l_ButtonType_0.PrimarySystem,
            standardSize = l_StandardButtonSize_0.Small,
            layoutOrder = 2,
            position = UDim2.new(0.5, 0, 0, 0),
            anchorPoint = Vector2.new(0.5, 0),
            fitContent = true,
            onActivated = function()
                local l_SafetyService_0 = game:GetService("SafetyService");
                local l_ExperienceStateCaptureService_0 = game:GetService("ExperienceStateCaptureService");
                l_SafetyService_0.IsCaptureModeForReport = true;
                l_ExperienceStateCaptureService_0:ToggleCaptureMode();
            end
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local _ = require(l_Parent_0.AvatarIdentification);
local _ = require(l_Parent_0.AdIdentification);
local _ = require(l_script_FirstAncestor_0.ReportAnything.Utility.ReportAnythingAnalytics);
return {};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local _ = require(l_script_FirstAncestor_0.Components.Types);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v3 = require(l_script_FirstAncestor_0.Components.Constants);
local l_ReportTypes_0 = v3.ReportTypes;
local l_EventIngestService_0 = game:GetService("EventIngestService");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local v7 = require(l_script_FirstAncestor_0.ReportAnything.Utility.ReportAnythingAnalytics);
local l_EventIngest_0 = require(l_Parent_0.Analytics).AnalyticsReporters.EventIngest;
local v9 = require(l_Parent_0.Analytics).Analytics.new(l_RbxAnalyticsService_0);
local v10 = require(l_script_FirstAncestor_0.Analytics.ReportAbuseAnalytics);
local v11 = require(l_script_FirstAncestor_0.Analytics.collectAnalyticsParameters);
local v12 = v10.new(l_EventIngest_0.new(l_EventIngestService_0), v9.Diag, v10.MenuContexts.NewMenu);
return function(v13, v14, v15, v16)
    return function(v17, v18)
        if v13.menuEverShown then
            local _ = nil;
            v12:reportInGameAbuseReportInteraction(if v16 == l_ReportTypes_0.Person then v11.forPersonReport(v13, v17, v7.getAccumulatedParameters()) else v11.forExperienceReport(v13, v17, v7.getAccumulatedParameters()));
            v18({
                type = v3.ReportAnythingActions.ClearAnnotationFlowProperties
            });
            v14({
                type = v3.AnalyticsActions.Reset
            });
            v7.clear();
            v15(nil);
            v12:endAbuseReportSession();
            return ;
        else
            return ;
        end;
    end;
end;


local v0 = require(script:FindFirstAncestor("AbuseReportMenu").Components.Constants);
getMenuItemDimensions = function(v1)
    if v1 < v0.SmallLayoutThreshold then
        return {
            LeftWidth = v0.LeftContainerWidthSmall,
            RightWidth = v0.RightContainerWidthSmall,
            TextSize = v0.FieldLabelSizeSmall
        };
    else
        return {
            LeftWidth = v0.LeftContainerWidth,
            RightWidth = v0.RightContainerWidth,
            TextSize = v0.FieldLabelSize
        };
    end;
end;
return getMenuItemDimensions;


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


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


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


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v4 = require(l_Parent_0.AvatarIdentification);
local v5 = require(l_Parent_0.AdIdentification);
local l_ScreenshotManager_0 = require(l_Parent_0.Screenshot).ScreenshotManager;
local l_AvatarIdentification_0 = v4.AvatarIdentification;
local l_AdIdentification_0 = v5.AdIdentification;
return function(v9, v10, v11)
    return v2.useCallback(function()
        l_ScreenshotManager_0:TakeScreenshotWithCallback(v10, v9);
        local v12, v13 = l_AvatarIdentification_0.getVisibleAvatars();
        local v14, v15 = l_AdIdentification_0.getVisibleAds();
        v11({
            identifiedAvatars = v12,
            identifiedAds = v14,
            avatarIDStats = v13,
            adIDStats = v15
        });
    end, {
        v10,
        v9,
        v11
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_RunService_0 = game:GetService("RunService");
local v2 = require(l_script_FirstAncestor_0.Parent.React);
return function(v3, v4, v5, v6, v7, v8)
    local v9, v10 = v2.useState(false);
    v2.useEffect(function()
        if not v4 then
            if not v9 then
                v8();
            end;
        elseif not v9 then
            if v3 then
                v10(true);
                v5();
                local v11 = nil;
                local v12 = 0;
                local v13 = 0;
                local v14 = nil;
                v11 = l_RunService_0.Heartbeat:Connect(function()
                    if v12 == 1 then
                        v7();
                        v11:Disconnect();
                        return ;
                    else
                        v12 = v12 + 1;
                        return ;
                    end;
                end);
                v14 = l_RunService_0.Heartbeat:Connect(function()
                    if v13 == 10 then
                        v6();
                        v14:Disconnect();
                        return ;
                    else
                        v13 = v13 + 1;
                        return ;
                    end;
                end);
                return ;
            end;
        else
            v10(false);
            return ;
        end;
    end, {
        v4
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local v1 = require(l_script_FirstAncestor_0.Parent.React);
local v2 = require(l_script_FirstAncestor_0.Components.Constants);
local v3 = require(l_script_FirstAncestor_0.Hooks.useHideForScreenshot);
local v4 = require(l_script_FirstAncestor_0.Hooks.useCaptureScreenshot);
local v5 = require(l_script_FirstAncestor_0.Reducers.reportAnythingReducer);
local v6 = require(l_script_FirstAncestor_0.IXP.TnSIXPWrapper);
return function(v7, v8, v9, v10)
    local v11 = v6.getReportAnythingAvatarEnabled();
    local v12 = v6.getReportAnythingExperienceEnabled();
    local v13, v14 = v1.useReducer(v5, v2.ReportAnythingInitialState);
    v3((v11 or v12) and v13.screenshotContentId == "", v7, v8, v9, v4(v1.useCallback(function(v15)
        v14({
            type = v2.ReportAnythingActions.SetScreenshotContentId,
            screenshotContentId = v15
        });
    end), v1.useCallback(function(v16)
        v14({
            type = v2.ReportAnythingActions.SetScreenshotId,
            screenshotId = v16
        });
    end), v1.useCallback(function(v17)
        v14({
            type = v2.ReportAnythingActions.SetIdentificationResults,
            identificationResults = v17
        });
    end)), function()
        v10(v13, v14);
    end);
    return v13, v14;
end;


local l_default_0 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.TrustAndSafety.TrustAndSafetyIXPManager).default;
return {
    getReportAnythingAvatarEnabled = function()
        return l_default_0:getReportAnythingAvatarEnabled();
    end,
    getReportAnythingExperienceEnabled = function()
        return l_default_0:getReportAnythingExperienceEnabled();
    end
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local _ = require(l_script_FirstAncestor_0.Components.Types);
return {
    componentType = "dropdown",
    getIsVisible = function(_)
        return true;
    end,
    getMenuItems = function(_)
        return {};
    end,
    onUpdateSelectedOption = function(_, _)
    end,
    readonlyValue = require(l_script_FirstAncestor_0.Components.Constants).InappropriateContentAbuseReason,
    fieldLabel = "Reason for Abuse?",
    componentName = "AbuseReason"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v2 = require(l_script_FirstAncestor_0.Components.Constants);
return {
    componentType = "freeComments",
    getIsVisible = function(_)
        return true;
    end,
    onUpdate = function(v4, _, v6, v7)
        v7.analyticsDispatch({
            type = v2.AnalyticsActions.SetCommentAdded,
            commentAdded = #v4 > 0
        });
        v6({
            type = v2.PlayerMenuActions.UpdateComment,
            comment = v4
        });
    end,
    componentName = "FreeComments"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v2 = require(l_script_FirstAncestor_0.Components.Constants);
local v3 = require(l_script_FirstAncestor_0.IXP.TnSIXPWrapper);
local v4 = require(l_script_FirstAncestor_0.ReportAnything.Components.AnnotationModal);
return {
    componentType = "button",
    getIsVisible = function(_)
        return v3.getReportAnythingExperienceEnabled();
    end,
    getIsDisabled = function(_, v7)
        return v7.reportAnythingState.attachCompleted;
    end,
    variant = "secondary",
    getIconSrc = function(v8)
        if not v8.reportAnythingState.attachCompleted then
            return "icons/controls/screenshot";
        else
            return "icons/actions/accept";
        end;
    end,
    getButtonLabel = function(v9)
        if not v9.reportAnythingState.attachCompleted then
            return "Capture Scene";
        else
            return "Scene Captured";
        end;
    end,
    onClick = function(_, _, v12)
        v12.analyticsDispatch({
            type = v2.AnalyticsActions.IncrementCaptureScene
        });
        v4.mountAnnotationPage(v2.ReportTypes.Experience, v12.hideReportTab, v12.reportAnythingAnalytics, v12.reportAnythingState, v12.reportAnythingDispatch);
    end,
    fieldLabel = "Attach Screenshot? (optional)",
    componentName = "OptionalScreenshot"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local _ = require(l_script_FirstAncestor_0.Components.Types);
local l_MenuConfigs_0 = l_script_FirstAncestor_0.MenuConfigs;
return {
    require(l_MenuConfigs_0.Experience.AbuseReasonMenuConfig),
    require(l_MenuConfigs_0.Experience.OptionalAttachScreenshotMenuConfig),
    require(l_MenuConfigs_0.Experience.FreeFormCommentMenuConfig),
    (require(l_MenuConfigs_0.Experience.SubmitReportButtonMenuConfig))
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_MarketplaceService_0 = game:GetService("MarketplaceService");
local l_Players_0 = game:GetService("Players");
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v4 = require(l_script_FirstAncestor_0.Components.Constants);
local v5 = require(l_script_FirstAncestor_0.IXP.TnSIXPWrapper);
local v6 = require(l_script_FirstAncestor_0.ReportAnything.Utility.AbuseReportBuilder);
local v7 = require(l_script_FirstAncestor_0.Analytics.ReportAbuseAnalytics);
local v8 = require(l_script_FirstAncestor_0.MenuConfigs.getToastMessageFromAbuseReason);
return {
    componentType = "button",
    getIsVisible = function(_)
        return true;
    end,
    variant = "primary",
    getIconSrc = function(_)
        return "";
    end,
    getButtonLabel = function(_)
        return "Submit";
    end,
    onClick = function(v12, _, v14)
        local l_abuseReason_0 = v12.abuseReason;
        if l_abuseReason_0 ~= nil and l_Players_0.LocalPlayer ~= nil then
            if not v5.getReportAnythingExperienceEnabled() then
                spawn(function()
                    local v16 = tostring(game.PlaceId);
                    local v17 = "N/A";
                    local v18 = "N/A";
                    pcall(function()
                        local l_l_MarketplaceService_0_ProductInfo_0 = l_MarketplaceService_0:GetProductInfo(game.PlaceId, Enum.InfoType.Asset);
                        v17 = l_l_MarketplaceService_0_ProductInfo_0.Name;
                        v18 = l_l_MarketplaceService_0_ProductInfo_0.Description;
                    end);
                    l_Players_0:ReportAbuse(nil, l_abuseReason_0, (string.format("User Report: \n    %s \n" .. "Place Title: \n    %s \n" .. "PlaceId: \n    %s \n" .. "Place Description: \n    %s \n", v12.comment, v17, v16, v18)));
                end);
                v14.analyticsDispatch({
                    type = v4.AnalyticsActions.SetSubmissionCompleted
                });
                v14.onReportComplete((v8(l_abuseReason_0)));
            else
                l_Players_0:ReportAbuseV3(l_Players_0.LocalPlayer, (v6.buildExperienceReportRequest({
                    localUserId = l_Players_0.LocalPlayer.UserId,
                    placeId = game.PlaceId,
                    abuseComment = v12.comment,
                    abuseReason = l_abuseReason_0,
                    menuEntryPoint = v7:getAbuseReportSessionEntryPoint(),
                    variant = v6.Constants.Variant.NM
                }, v14.reportAnythingState, v14.reportAnythingAnalytics.getAccumulatedParameters())));
                v14.analyticsDispatch({
                    type = v4.AnalyticsActions.SetSubmissionCompleted
                });
                v14.onReportComplete((v8(l_abuseReason_0, true)));
                return ;
            end;
        end;
    end,
    fieldLabel = "",
    componentName = "SubmitButton"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Components.Constants);
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v4 = require(l_Parent_0.Cryo);
return {
    componentType = "dropdown",
    getIsVisible = function(_)
        return true;
    end,
    getMenuItems = function(v6)
        return v4.Dictionary.values(if v6.methodOfAbuse == "Voice Chat" then v2.PlayerVoiceAbuseTypes else v2.PlayerAbuseTypes);
    end,
    onUpdateSelectedOption = function(v7, _, v9, v10)
        v10.analyticsDispatch({
            type = v2.AnalyticsActions.IncrementReasonChanged
        });
        v10.analyticsDispatch({
            type = v2.AnalyticsActions.SetReasonSelection,
            selection = v7
        });
        v9({
            type = v2.PlayerMenuActions.UpdateAbuseReason,
            abuseReason = v7
        });
    end,
    fieldLabel = "Reason for Abuse?",
    componentName = "AbuseReason"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Components.Constants);
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v4 = require(l_Parent_0.Cryo);
return {
    componentType = "modalSelector",
    getIsVisible = function(_)
        return true;
    end,
    getMenuItems = function(v6)
        return v4.List.map(v4.Dictionary.values(if v6.methodOfAbuse == v2.AbuseMethods.VoiceChat then v2.PlayerVoiceAbuseTypes else v2.PlayerAbuseTypes), function(v7)
            return {
                label = v7
            };
        end);
    end,
    getSelectedValue = function(v8)
        return v8.abuseReason;
    end,
    onUpdateSelectedOption = function(v9, _, v11, v12)
        v12.analyticsDispatch({
            type = v2.AnalyticsActions.IncrementReasonChanged
        });
        v12.analyticsDispatch({
            type = v2.AnalyticsActions.SetReasonSelection,
            selection = v9.label
        });
        v11({
            type = v2.PlayerMenuActions.UpdateAbuseReason,
            abuseReason = v9.label
        });
    end,
    fieldLabel = "Reason for Abuse?",
    componentName = "AbuseReason"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_CoreGui_0 = game:GetService("CoreGui");
local _ = require(l_script_FirstAncestor_0.Components.Types);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v4 = require(l_script_FirstAncestor_0.Components.Constants);
local v5 = require(l_script_FirstAncestor_0.Utility.getAvailableMethodsOfAbuse);
local v6 = require(l_script_FirstAncestor_0.IXP.TnSIXPWrapper);
local l_default_0 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.VoiceChat.VoiceChatServiceManager).default;
local v8 = require(l_Parent_0.Cryo);
return {
    componentType = "modalSelector",
    getIsVisible = function(v9)
        return v9.isVoiceEnabled or v6.getReportAnythingAvatarEnabled();
    end,
    getMenuItems = function(v10)
        return v5(v10.isVoiceEnabled and not v8.isEmpty(l_default_0:getRecentUsersInteractionData()), v6.getReportAnythingAvatarEnabled());
    end,
    getSelectedValue = function(v11)
        return v11.methodOfAbuse;
    end,
    onUpdateSelectedOption = function(v12, v13, v14, v15)
        v14({
            type = v4.PlayerMenuActions.UpdateMethodOfAbuse,
            methodOfAbuse = v12.label
        });
        if v12.label ~= v13.methodOfAbuse then
            v15.reportAnythingDispatch({
                type = v4.ReportAnythingActions.ClearAnnotationFlowProperties
            });
            v15.analyticsDispatch({
                type = v4.AnalyticsActions.IncrementTypeofabuseChanged
            });
            v15.analyticsDispatch({
                type = v4.AnalyticsActions.SetTypeOfAbuseSelection,
                selection = v12.label
            });
        end;
    end,
    fieldLabel = "Type Of Abuse?",
    componentName = "MethodOfAbuse"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v2 = require(l_script_FirstAncestor_0.Components.Constants);
local v3 = require(l_script_FirstAncestor_0.IXP.TnSIXPWrapper);
local v4 = require(l_script_FirstAncestor_0.ReportAnything.Components.AnnotationModal);
return {
    componentType = "button",
    getIsVisible = function(v5)
        local v6 = v3.getReportAnythingAvatarEnabled();
        if v6 then
            v6 = true;
            if v5.methodOfAbuse ~= v2.AbuseMethods.Other then
                v6 = v5.methodOfAbuse == v2.AbuseMethods.Avatar;
            end;
        end;
        return v6;
    end,
    getIsDisabled = function(_, v8)
        return v8.reportAnythingState.attachCompleted;
    end,
    variant = "secondary",
    getIconSrc = function(v9)
        if not v9.reportAnythingState.attachCompleted then
            return "icons/controls/screenshot";
        else
            return "icons/actions/accept";
        end;
    end,
    getButtonLabel = function(v10)
        if not v10.reportAnythingState.attachCompleted then
            return "Capture Scene";
        else
            return "Scene Captured";
        end;
    end,
    onClick = function(_, _, v13)
        v13.analyticsDispatch({
            type = v2.AnalyticsActions.IncrementCaptureScene
        });
        v4.mountAnnotationPage(v2.ReportTypes.Person, v13.hideReportTab, v13.reportAnythingAnalytics, v13.reportAnythingState, v13.reportAnythingDispatch);
    end,
    fieldLabel = "Attach Screenshot? (optional)",
    componentName = "OptionalScreenshot"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Cryo);
local v3 = require(l_Parent_0.VerifiedBadges);
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v5 = require(l_script_FirstAncestor_0.Components.Constants);
return {
    componentType = "modalSelector",
    getIsVisible = function(_)
        return true;
    end,
    getMenuItems = function(v7)
        return (v2.List.map(v7.playerObjects, function(v8)
            return {
                label = v8.DisplayName .. (not v3.isPlayerVerified(v8) and "" or v3.emoji.verified),
                subLabel = "[@" .. v8.Name .. "]",
                identifier = v8.Name
            };
        end));
    end,
    getSelectedValue = function(v9)
        local l_allegedAbuser_0 = v9.allegedAbuser;
        if not l_allegedAbuser_0 then
            return nil;
        else
            return l_allegedAbuser_0.DisplayName .. "[@" .. l_allegedAbuser_0.Name .. "]";
        end;
    end,
    onUpdateSelectedOption = function(v11, v12, v13, v14)
        if v11.identifier then
            local l_identifier_0 = v11.identifier;
            for _, v17 in v12.playerObjects, nil, nil do
                if l_identifier_0 == v17.Name then
                    local l_UserId_0 = v17.UserId;
                    v14.analyticsDispatch({
                        type = v5.AnalyticsActions.IncrementPersonChanged
                    });
                    v13({
                        type = v5.PlayerMenuActions.UpdateAbuser,
                        abuseId = l_UserId_0,
                        abuser = v17
                    });
                end;
            end;
        end;
    end,
    fieldLabel = "Which Person?",
    componentName = "PlayerSelector"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Cryo);
local v3 = require(l_Parent_0.VerifiedBadges);
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v5 = require(l_script_FirstAncestor_0.Components.Constants);
return {
    componentType = "dropdown",
    getIsVisible = function(_)
        return true;
    end,
    getMenuItems = function(v7)
        return (v2.List.map(v7.playerObjects, function(v8)
            return v8.DisplayName .. (not v3.isPlayerVerified(v8) and "" or v3.emoji.verified) .. "\n[@" .. v8.Name .. "]";
        end));
    end,
    onUpdateSelectedOption = function(v9, v10, v11, v12)
        local v13 = string.find(v9, "@");
        if v13 ~= nil then
            local v14 = string.sub(v9, v13 + 1, -2);
            for _, v16 in v10.playerObjects, nil, nil do
                if v14 == v16.Name then
                    local l_UserId_0 = v16.UserId;
                    v12.analyticsDispatch({
                        type = v5.AnalyticsActions.IncrementPersonChanged
                    });
                    v11({
                        type = v5.PlayerMenuActions.UpdateAbuser,
                        abuseId = l_UserId_0,
                        abuser = v16
                    });
                end;
            end;
        end;
    end,
    fieldLabel = "Which Person?",
    componentName = "PlayerSelector"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AbuseReportMenu");
local _ = require(l_script_FirstAncestor_0.Components.Types);
local l_MenuConfigs_0 = l_script_FirstAncestor_0.MenuConfigs;
return {
    require(l_MenuConfigs_0.Players.MethodOfAbuseModalMenuConfig),
    require(l_MenuConfigs_0.Players.PlayerModalSelectorMenuConfig),
    require(l_MenuConfigs_0.Players.AbuseReasonModalSelectorMenuConfig),
    require(l_MenuConfigs_0.Players.OptionalAttachScreenshotMenuConfig),
    require(l_MenuConfigs_0.Players.FreeFormCommentMenuConfig),
    (require(l_MenuConfigs_0.Players.SubmitReportButtonMenuConfig))
};