local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_1.Collections);
local l_Array_0 = v2.Array;
local l_Object_0 = v2.Object;
local v5 = require(l_Parent_1.Boolean);
local v6 = require(l_Parent_1.String);
local _ = require(l_Parent_1.ES7Types);
local l_inspect_0 = v2.inspect;
local v9 = require(l_Parent_0.Error);
local v10 = require(l_Parent_1.InstanceOf);
local v11 = {
    stderr = {
        isTTY = false,
        columns = 0,
        hasColors = function(...)
            return true;
        end
    }
};
ErrorCaptureStackTrace = function(v12, ...)
    v9.captureStackTrace(v12, ...);
end;
local function _(v13)
    return v13;
end;
local v15 = "";
local v16 = "";
local v17 = "";
local v18 = "";
local v19 = {
    deepStrictEqual = "Expected values to be strictly deep-equal:",
    strictEqual = "Expected values to be strictly equal:",
    strictEqualObject = "Expected \"actual\" to be reference-equal to \"expected\":",
    deepEqual = "Expected values to be loosely deep-equal:",
    notDeepStrictEqual = "Expected \"actual\" not to be strictly deep-equal to:",
    notStrictEqual = "Expected \"actual\" to be strictly unequal to:",
    notStrictEqualObject = "Expected \"actual\" not to be reference-equal to \"expected\":",
    notDeepEqual = "Expected \"actual\" not to be loosely deep-equal to:",
    notIdentical = "Values have same structure but are not reference-equal:",
    notDeepEqualUnequal = "Expected values not to be loosely deep-equal:"
};
local _ = function(v20)
    local v21 = l_Object_0.keys(v20);
    local v22 = {};
    for _, v24 in v21, nil, nil do
        v22[v24] = v20[v24];
    end;
    v22.message = v20.message;
    return v22;
end;
local function _(v26)
    return l_inspect_0(v26, {
        compact = false,
        customInspect = false,
        depth = 1000,
        maxArrayLength = math.huge,
        showHidden = false,
        showProxy = false,
        sorted = true,
        getters = true
    });
end;
local function v59(v28, v29, v30)
    local v31 = "";
    local v32 = "";
    local v33 = "";
    local v34 = false;
    local v35 = l_inspect_0(v28, {
        compact = false,
        customInspect = false,
        depth = 1000,
        maxArrayLength = math.huge,
        showHidden = false,
        showProxy = false,
        sorted = true,
        getters = true
    });
    local v36 = v6.split(v35, "\n");
    local v37 = v6.split(l_inspect_0(v29, {
        compact = false,
        customInspect = false,
        depth = 1000,
        maxArrayLength = math.huge,
        showHidden = false,
        showProxy = false,
        sorted = true,
        getters = true
    }), "\n");
    local v38 = 0;
    local v39 = "";
    if v30 == "strictEqual" and (not (not ((typeof(v28) == "table" and v28 ~= nil) and typeof(v29) == "table") or v29 == nil) or typeof(v28) == "function" and typeof(v29) == "function") then
        v30 = "strictEqualObject";
    end;
    if (#v36 == 1 and #v37 == 1) and v36[1] ~= v37[1] then
        local v40 = v36[1];
        local v41 = if not v5.toJSBoolean(false) then v37[1] else v37[1];
        local v42 = string.len(v40) + string.len(v41);
        if v42 <= 12 then
            if ((not (typeof(v28) == "table") or v28 == nil) and (not (typeof(v29) == "table") or v29 == nil)) and (not (v28 == 0) or v29 ~= 0) then
                return ("%s\n\n"):format(v19[v30]) .. ("%s format(v36[1], v37[1]);
            end;
        elseif v30 ~= "strictEqualObject" and v42 < (not v11.stderr.isTTY and 80 or v11.stderr.columns) then
            while string.sub(v40, v38 + 1, v38 + 1) == string.sub(v41, v38 + 1, v38 + 1) do
                v38 = v38 + 1;
            end;
            if v38 > 2 then
                v39 = ("\n  %s^"):format(string.rep(" ", v38));
                v38 = 0;
            end;
        end;
    end;
    local v43 = v36[#v36];
    local v44 = v37[#v37];
    while v43 == v44 do
        local l_v38_0 = v38;
        v38 = v38 + 1;
        if l_v38_0 < 3 then
            v33 = ("\n  %s%s"):format(v43, v33);
        else
            v31 = v43;
        end;
        table.remove(v36);
        table.remove(v37);
        if #v36 ~= 0 and #v37 ~= 0 then
            v43 = v36[#v36];
            v44 = v37[#v37];
        else
            break;
        end;
    end;
    local v46 = math.max(#v36, #v37);
    if v46 == 0 then
        local v47 = v6.split(v35, "\n");
        if #v47 > 50 then
            v47[47] = ("%s...%s"):format(v15, v18);
            while #v47 > 47 do
                table.remove(v47);
            end;
        end;
        return ("%s\n\n"):format(v19.notIdentical) .. ("%s\n"):format(l_Array_0.join(v47, "\n"));
    else
        if v38 >= 5 then
            v33 = ("\n%s...%s%s"):format(v15, v18, v33);
            v34 = true;
        end;
        if v31 ~= "" then
            v33 = ("\n  %s%s"):format(v31, v33);
            v31 = "";
        end;
        local v48 = 0;
        local v49 = 0;
        local v50 = v19[v30] .. ("\n%s+ actual%s %s- expected%s"):format(v16, v18, v17, v18);
        local v51 = (" %s...%s Lines skipped"):format(v15, v18);
        local l_v36_0 = v36;
        local v53 = ("%s+%s"):format(v16, v18);
        local v54 = #v37;
        if #v36 < v46 then
            l_v36_0 = v37;
            v53 = ("%s-%s"):format(v17, v18);
            v54 = #v36;
        end;
        for v55 = 1, v46 do
            v38 = v55;
            if v54 < v55 then
                if v49 > 2 then
                    if v49 > 3 then
                        if v49 > 4 then
                            if v49 == 5 then
                                v32 = v32 .. ("\n  %s"):format(l_v36_0[v55 - 3]);
                                v48 = v48 + 1;
                            else
                                v32 = v32 .. ("\n%s...%s"):format(v15, v18);
                                v34 = true;
                            end;
                        end;
                        v32 = v32 .. ("\n  %s"):format(l_v36_0[v55 - 2]);
                        v48 = v48 + 1;
                    end;
                    v32 = v32 .. ("\n  %s"):format(l_v36_0[v55 - 1]);
                    v48 = v48 + 1;
                end;
                v49 = 0;
                if l_v36_0 == v36 then
                    v32 = v32 .. ("\n%s %s"):format(v53, l_v36_0[v55]);
                else
                    v31 = v31 .. ("\n%s %s"):format(v53, l_v36_0[v55]);
                end;
                v48 = v48 + 1;
            else
                local v56 = v37[v55];
                local v57 = v36[v55];
                local v58 = false;
                if v57 ~= v56 then
                    v58 = not v5.toJSBoolean(v6.endsWith(v57, ",")) or v6.slice(v57, 0, -1) ~= v56;
                end;
                if not (not v58 or not v6.endsWith(v56, ",")) and v6.slice(v56, 0, -1) == v57 then
                    v58 = false;
                    v57 = v57 .. ",";
                end;
                if not v58 then
                    v32 = v32 .. v31;
                    v31 = "";
                    v49 = v49 + 1;
                    if v49 <= 2 then
                        v32 = v32 .. ("\n  %s"):format(v57);
                        v48 = v48 + 1;
                    end;
                else
                    if v49 > 2 then
                        if v49 > 3 then
                            if v49 > 4 then
                                if v49 == 5 then
                                    v32 = v32 .. ("\n  %s"):format(v36[v55 - 3]);
                                    v48 = v48 + 1;
                                else
                                    v32 = v32 .. ("\n%s...%s"):format(v15, v18);
                                    v34 = true;
                                end;
                            end;
                            v32 = v32 .. ("\n  %s"):format(v36[v55 - 2]);
                            v48 = v48 + 1;
                        end;
                        v32 = v32 .. ("\n  %s"):format(v36[v55 - 1]);
                        v48 = v48 + 1;
                    end;
                    v49 = 0;
                    v32 = v32 .. ("\n%s+%s %s"):format(v16, v18, v57);
                    v31 = v31 .. ("\n%s-%s %s"):format(v17, v18, v56);
                    v48 = v48 + 2;
                end;
            end;
            if v48 > 50 and v55 < v46 - 2 then
                return ("%s%s\n%s\n%s...%s%s\n"):format(v50, v51, v32, v15, v18, v31) .. ("%s...%s"):format(v15, v18);
            end;
        end;
        return ("%s%s\n%s%s%s%s"):format(v50, not v34 and "" or v51, v32, v31, v33, v39);
    end;
end;
local v60 = setmetatable({}, {
    __index = v9
});
v60.__index = v60;
v60.__tostring = function(v61)
    return v61:toString();
end;
v60.new = function(v62)
    local v63 = nil;
    local l_message_0 = v62.message;
    local l_operator_0 = v62.operator;
    local l_stackStartFn_0 = v62.stackStartFn;
    local l_actual_0 = v62.actual;
    local l_expected_0 = v62.expected;
    if l_message_0 ~= nil then
        v63 = setmetatable(v9.new((tostring(l_message_0))), v60);
    else
        if v11.stderr.isTTY then
            if not v11.stderr:hasColors() then
                v15 = "";
                v16 = "";
                v18 = "";
                v17 = "";
            else
                v15 = "\027[34m";
                v16 = "\027[32m";
                v18 = "\027[39m";
                v17 = "\027[31m";
            end;
        end;
        if not (not (not (not ((((typeof(l_actual_0) == "table" and l_actual_0 ~= nil) and typeof(l_expected_0) == "table") and l_expected_0 ~= nil) and l_Array_0.indexOf(l_Object_0.keys(l_actual_0), "stack") ~= -1) or not v10(l_actual_0, v9)) and l_Array_0.indexOf(l_Object_0.keys(l_expected_0), "stack") ~= -1) or not v10(l_expected_0, v9)) then
            local l_l_actual_0_0 = l_actual_0;
            local v70 = l_Object_0.keys(l_l_actual_0_0);
            local v71 = {};
            for _, v73 in v70, nil, nil do
                v71[v73] = l_l_actual_0_0[v73];
            end;
            v71.message = l_l_actual_0_0.message;
            l_actual_0 = v71;
            l_l_actual_0_0 = l_expected_0;
            v70 = l_Object_0.keys(l_l_actual_0_0);
            v71 = {};
            for _, v75 in v70, nil, nil do
                v71[v75] = l_l_actual_0_0[v75];
            end;
            v71.message = l_l_actual_0_0.message;
            l_expected_0 = v71;
        end;
        if not (l_operator_0 ~= "deepStrictEqual") or l_operator_0 == "strictEqual" then
            v63 = setmetatable(v9.new(v59(l_actual_0, l_expected_0, l_operator_0)), v60);
        elseif not (l_operator_0 ~= "notDeepStrictEqual") or l_operator_0 == "notStrictEqual" then
            local v76 = v19[l_operator_0];
            local v77 = v6.split(l_inspect_0(l_actual_0, {
                compact = false,
                customInspect = false,
                depth = 1000,
                maxArrayLength = math.huge,
                showHidden = false,
                showProxy = false,
                sorted = true,
                getters = true
            }), "\n");
            if l_operator_0 == "notStrictEqual" and (not (not (typeof(l_actual_0) == "table") or l_actual_0 == nil) or typeof(l_actual_0) == "function") then
                v76 = v19.notStrictEqualObject;
            end;
            if #v77 > 50 then
                v77[47] = ("%s...%s"):format(v15, v18);
                while #v77 > 47 do
                    table.remove(v77);
                end;
            end;
            v63 = if #v77 == 1 then setmetatable(v9.new(("%s%s%s"):format(v76, string.len(v77[1]) > 5 and "\n\n" or " ", v77[1])), v60) else setmetatable(v9.new(("%s\n\n%s\n"):format(v76, l_Array_0.join(v77, "\n"))), v60);
        else
            local v78 = l_inspect_0(l_actual_0, {
                compact = false,
                customInspect = false,
                depth = 1000,
                maxArrayLength = math.huge,
                showHidden = false,
                showProxy = false,
                sorted = true,
                getters = true
            });
            local v79 = l_inspect_0(l_expected_0, {
                compact = false,
                customInspect = false,
                depth = 1000,
                maxArrayLength = math.huge,
                showHidden = false,
                showProxy = false,
                sorted = true,
                getters = true
            });
            local v80 = v19[tostring(l_operator_0)];
            if l_operator_0 == "notDeepEqual" and v78 == v79 then
                v78 = ("%s\n\n%s"):format(v80, v78);
                if string.len(v78) > 1024 then
                    v78 = ("%s..."):format(v6.slice(v78, 0, 1021));
                end;
                v63 = setmetatable(v9.new(v78), v60);
            else
                if string.len(v78) > 512 then
                    v78 = ("%s..."):format(v6.slice(v78, 0, 509));
                end;
                if string.len(v79) > 512 then
                    v79 = ("%s..."):format(v6.slice(v79, 0, 509));
                end;
                if l_operator_0 == "deepEqual" then
                    v78 = ("%s\n\n%s\n\nshould loosely deep-equal\n\n"):format(v80, v78);
                else
                    local v81 = v19[("%sUnequal"):format((tostring(l_operator_0)))];
                    if not v5.toJSBoolean(v81) then
                        v79 = (" %s %s"):format(tostring(l_operator_0), v79);
                    else
                        v78 = ("%s\n\n%s\n\nshould not loosely deep-equal\n\n"):format(v81, v78);
                    end;
                end;
                v63 = setmetatable(v9.new(("%s%s"):format(v78, v79)), v60);
            end;
        end;
    end;
    v63.generatedMessage = not v5.toJSBoolean(l_message_0);
    v63.name = "AssertionError [ERR_ASSERTION]";
    v63.code = "ERR_ASSERTION";
    v63.actual = l_actual_0;
    v63.expected = l_expected_0;
    v63.operator = l_operator_0;
    ErrorCaptureStackTrace(v63, l_stackStartFn_0 or v60.new);
    v63.name = "AssertionError";
    return v63;
end;
v60.toString = function(v82)
    return ("%s [%s]: %s"):format(v82.name, v82.code, v82.message);
end;
v60.name = "AssertionError";
return {
    AssertionError = v60
};


local _ = require(script.Parent.Parent.Parent.ES7Types);
local v1 = {};
v1.__index = v1;
v1.__tostring = function(v2)
    return getmetatable(v1).__tostring(v2);
end;
local function _(v3)
    local v4 = setmetatable({
        name = "Error",
        message = v3 or ""
    }, v1);
    v1.__captureStackTrace(v4, 4);
    return v4;
end;
v1.new = function(v6)
    local v7 = setmetatable({
        name = "Error",
        message = v6 or ""
    }, v1);
    v1.__captureStackTrace(v7, 4);
    return v7;
end;
v1.captureStackTrace = function(v8, v9)
    v1.__captureStackTrace(v8, 3, v9);
end;
v1.__captureStackTrace = function(v10, v11, v12)
    if typeof(v12) == "function" then
        local v13 = debug.traceback(nil, v11);
        local v14 = string.find(v13, string.gsub(debug.info(v12, "s"), "([%(%)%.%%%+%-%*%?%[%^%$])", "%%%1") .. ":%d* function " .. debug.info(v12, "n"));
        local v15 = nil;
        if v14 ~= nil then
            local v16, v17 = string.find(v13, "\n", v14 + 1);
            v14 = v16;
            v15 = v17;
        end;
        if v15 ~= nil then
            v13 = string.sub(v13, v15 + 1);
        end;
        v10.__stack = v13;
    else
        v10.__stack = debug.traceback(nil, v11);
    end;
    v1.__recalculateStacktrace(v10);
end;
v1.__recalculateStacktrace = function(v18)
    local l_message_0 = v18.message;
    v18.stack = (v18.name or "Error") .. if l_message_0 ~= nil and l_message_0 ~= "" then ": " .. l_message_0 else "" .. "\n" .. (not v18.__stack and "" or v18.__stack);
end;
return (setmetatable(v1, {
    __call = function(_, ...)
        local v21 = setmetatable({
            name = "Error",
            message = ... or ""
        }, v1);
        v1.__captureStackTrace(v21, 4);
        return v21;
    end,
    __tostring = function(v22)
        if v22.name ~= nil then
            if v22.message and v22.message ~= "" then
                return string.format("%s: %s", tostring(v22.name), (tostring(v22.message)));
            else
                return (tostring(v22.name));
            end;
        else
            return (tostring("Error"));
        end;
    end
}));


local l_HttpService_0 = game:GetService("HttpService");
local l_charCodeAt_0 = require(script.Parent.Parent.String).charCodeAt;
local v2 = require(script.Parent.Error);
return function(v3)
    local v4 = utf8.len(v3);
    if not (v4 ~= 0) or v4 == nil then
        return "";
    else
        local v5 = l_charCodeAt_0(v3, 1);
        if v4 == 1 then
            if v5 == 55296 then
                error(v2.new("URI malformed"));
            end;
            if v5 == 57343 then
                error(v2.new("URI malformed"));
            end;
        end;
        if v5 >= 56320 and v5 < 57343 then
            error(v2.new("URI malformed"));
        end;
        return (l_HttpService_0:UrlEncode(v3):gsub("%%2D", "-"):gsub("%%5F", "_"):gsub("%%2E", "."):gsub("%%21", "gsub("%%7E", "~"):gsub("%%2A", "*"):gsub("%%27", "'"):gsub("%%28", "("):gsub("%%29", ")"));
    end;
end;


local l_Parent_0 = script.Parent;
local v1 = require(l_Parent_0.Boolean);
local v2 = require(l_Parent_0.Collections);
local v3 = require(l_Parent_0.Console);
local v4 = require(l_Parent_0.Math);
local v5 = require(l_Parent_0.Number);
local v6 = require(l_Parent_0.String);
local v7 = require(l_Parent_0.Symbol);
local v8 = require(l_Parent_0.Timers);
local _ = require(l_Parent_0.ES7Types);
local v10 = require(script.AssertionError);
local v11 = require(script.Error);
local _ = require(script.Promise);
return {
    Array = v2.Array,
    AssertionError = v10,
    Boolean = v1,
    console = v3,
    Error = v11,
    extends = require(script.extends),
    instanceof = require(l_Parent_0.InstanceOf),
    Math = v4,
    Number = v5,
    Object = v2.Object,
    Map = v2.Map,
    coerceToMap = v2.coerceToMap,
    coerceToTable = v2.coerceToTable,
    Set = v2.Set,
    WeakMap = v2.WeakMap,
    String = v6,
    Symbol = v7,
    setTimeout = v8.setTimeout,
    clearTimeout = v8.clearTimeout,
    setInterval = v8.setInterval,
    clearInterval = v8.clearInterval,
    util = {
        inspect = v2.inspect
    }
};


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v5 = {};
local _ = require(l_Parent_0.GraphQL);
local l_mergeDeep_0 = require(l_Parent_0.Utils).mergeDeep;
v5.extractExtensionsFromSchema = require(l_Parent_0.Utils).extractExtensionsFromSchema;
v5.mergeExtensions = function(v8)
    return l_mergeDeep_0(v8);
end;
local function v11(v9, v10)
    if v9 then
        v9.extensions = l_mergeDeep_0({
            not not l_Boolean_0.toJSBoolean(v9.extensions) and v9.extensions or {},
            not not l_Boolean_0.toJSBoolean(v10) and v10 or {}
        });
        return ;
    else
        return ;
    end;
end;
v5.applyExtensions = function(v12, v13)
    v11(v12, v13.schemaExtensions);
    local l_entries_0 = l_Object_0.entries;
    local v15 = not not l_Boolean_0.toJSBoolean(v13.types) and v13.types or {};
    for _, v17 in l_entries_0(v15) do
        local v18 = v17[1];
        local v19 = v17[2];
        local v20 = v12:getType(v18);
        if l_Boolean_0.toJSBoolean(v20) then
            v11(v20, v19.extensions);
            if not (v19.type ~= "object") or v19.type == "interface" then
                for _, v22 in l_Object_0.entries(v19.fields) do
                    local v23 = v22[1];
                    local v24 = v22[2];
                    local v25 = v20:getFields():get(v23);
                    if l_Boolean_0.toJSBoolean(v25) then
                        v11(v25, v24.extensions);
                        for _, v27 in l_Object_0.entries(v24.arguments) do
                            local v28, v29 = table.unpack(v27, 1, 2);
                            v11(l_Array_0.find(v25.args, function(v30)
                                return v30.name == v28;
                            end), v29);
                        end;
                    end;
                end;
            elseif v19.type == "input" then
                for _, v32 in l_Object_0.entries(v19.fields) do
                    local v33, v34 = table.unpack(v32, 1, 2);
                    v11(v20:getFields():get(v33), v34.extensions);
                end;
            elseif v19.type == "enum" then
                for _, v36 in l_Object_0.entries(v19.values) do
                    local v37, v38 = table.unpack(v36, 1, 2);
                    v11(v20:getValue(v37), v38);
                end;
            end;
        end;
    end;
    return v12;
end;
return v5;


local l_Object_0 = require(script.Parent.LuauPolyfill).Object;
local v1 = {};
l_Object_0.assign(v1, (require(script["merge-resolvers"])));
l_Object_0.assign(v1, (require(script["typedefs-mergers"])));
l_Object_0.assign(v1, (require(script.extensions)));
return v1;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_String_0 = v1.String;
local v5 = {};
local l_mergeDeep_0 = require(l_Parent_0.Utils).mergeDeep;
local function v7(v8, v9)
    if not l_Boolean_0.toJSBoolean(v8) or l_Array_0.isArray(v8) and #v8 == 0 then
        return {};
    elseif l_Boolean_0.toJSBoolean(l_Array_0.isArray(v8)) then
        if #v8 == 1 then
            if not l_Boolean_0.toJSBoolean(v8[1]) then
                return {};
            else
                return v8[1];
            end;
        else
            local v10 = {};
            for _, v12 in v8, nil, nil do
                if l_Boolean_0.toJSBoolean(l_Array_0.isArray(v12)) then
                    v12 = v7(v12);
                end;
                local l_toJSBoolean_0 = l_Boolean_0.toJSBoolean;
                local v14 = false;
                if typeof(v12) == "table" then
                    v14 = v12;
                end;
                if l_toJSBoolean_0(v14) then
                    table.insert(v10, v12);
                end;
            end;
            local v15 = l_mergeDeep_0(v10, true);
            if l_Boolean_0.toJSBoolean(if typeof(v9) == "table" then v9.exclusions else nil) then
                for _, v17 in v9.exclusions, nil, nil do
                    local v18, v19 = table.unpack(l_String_0.split(v17, "."), 1, 2);
                    if not l_Boolean_0.toJSBoolean(v19) or v19 == "*" then
                        v15[v18] = nil;
                    elseif l_Boolean_0.toJSBoolean(v15[v18]) then
                        v15[v18][v19] = nil;
                    end;
                end;
            end;
            return v15;
        end;
    else
        return v8;
    end;
end;
v5.mergeResolvers = v7;
return v5;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local v4 = {};
local _ = require(l_Parent_0.GraphQL);
local _ = require(script.Parent["merge-typedefs_types"]);
local v7 = require(l_Parent_0.Utils);
local l_compareNodes_0 = v7.compareNodes;
local l_isSome_0 = v7.isSome;
local v10 = nil;
v4.mergeArguments = function(v11, v12, v13)
    local v14 = v10(l_Array_0.filter(l_Array_0.concat({}, v12, v11), l_isSome_0));
    if not (not v13 or not v13.sort) then
        l_Array_0.sort(v14, l_compareNodes_0);
    end;
    return v14;
end;
v10 = function(v15)
    return l_Array_0.reduce(v15, function(v16, v17)
        if l_Boolean_0.toJSBoolean((l_Array_0.find(v16, function(v18)
            return v18.name.value == v17.name.value;
        end))) then
            return v16;
        else
            return l_Array_0.concat(v16, {
                v17
            });
        end;
    end, {});
end;
return v4;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local l_Object_0 = v1.Object;
local v6 = {};
local l_print_0 = require(l_Parent_0.GraphQL).print;
local _ = require(script.Parent["merge-typedefs_types"]);
local l_isSome_0 = require(l_Parent_0.Utils).isSome;
local v10 = nil;
local function v14(v11, v12)
    return l_Boolean_0.toJSBoolean(l_Array_0.find(v11, function(v13)
        return v13.name.value == v12.name.value;
    end));
end;
local function _(v15, v16)
    return l_Array_0.some(v16, function(v17)
        return v17.value == v15.value;
    end);
end;
local function v31(v19, v20)
    local v21 = l_Array_0.concat({}, v20);
    for _, v23 in v19, nil, nil do
        local v25 = l_Array_0.findIndex(v21, function(v24)
            return v24.name.value == v23.name.value;
        end);
        if v25 > -1 then
            local v26 = v21[v25];
            if v26.value.kind == "ListValue" then
                v26.value.values = v10(v26.value.values, v23.value.values, function(v27, v28)
                    local l_value_0 = v27.value;
                    return not l_Boolean_0.toJSBoolean(l_value_0) or not l_Array_0.some(v28, function(v30)
                        return v30.value == l_value_0;
                    end);
                end);
            else
                v26.value = v23.value;
            end;
        else
            table.insert(v21, v23);
        end;
    end;
    return v21;
end;
local function _(v32)
    return (l_Array_0.filter(l_Array_0.map(v32, function(v33, v34, v35)
        local v37 = l_Array_0.findIndex(v35, function(v36)
            return v36.name.value == v33.name.value;
        end);
        if v37 ~= v34 then
            v33.arguments = v31(v33.arguments, v35[v37].arguments);
            return nil;
        else
            return v33;
        end;
    end), l_isSome_0));
end;
v6.mergeDirectives = function(v39, v40, v41)
    local v42 = if v39 ~= nil then v39 else {};
    local v43 = if v40 ~= nil then v40 else {};
    local v44 = v41 and v41.reverseDirectives;
    local v45 = if not l_Boolean_0.toJSBoolean(v44) then v43 else v42;
    local v46 = if not l_Boolean_0.toJSBoolean(v44) then v42 else v43;
    local v52 = l_Array_0.filter(l_Array_0.map(l_Array_0.concat({}, v45), function(v47, v48, v49)
        local v51 = l_Array_0.findIndex(v49, function(v50)
            return v50.name.value == v47.name.value;
        end);
        if v51 ~= v48 then
            v47.arguments = v31(v47.arguments, v49[v51].arguments);
            return nil;
        else
            return v47;
        end;
    end), l_isSome_0);
    for _, v54 in v46, nil, nil do
        if not l_Boolean_0.toJSBoolean(v14(v52, v54)) then
            table.insert(v52, v54);
        else
            local v56 = l_Array_0.findIndex(v52, function(v55)
                return v55.name.value == v54.name.value;
            end);
            local v57 = v52[v56];
            v52[v56].arguments = v31(not not l_Boolean_0.toJSBoolean(v54.arguments) and v54.arguments or {}, not not l_Boolean_0.toJSBoolean(v57.arguments) and v57.arguments or {});
        end;
    end;
    return v52;
end;
local function v62(v58, v59)
    local v60 = l_print_0(l_Object_0.assign({}, v58, {
        description = l_Object_0.None
    }));
    local v61 = l_print_0(l_Object_0.assign({}, v59, {
        description = l_Object_0.None
    }));
    if not l_Boolean_0.toJSBoolean(v60:gsub("directive @w*d*", ""):gsub(" on .*$", "") == v61:gsub("directive @w*d*", ""):gsub(" on .*$", "")) then
        error(l_Error_0.new(("Unable to merge GraphQL directive \"%s\". \nExisting directive:  \n\t%s \nReceived directive: \n\t%s"):format(tostring(v58.name.value), tostring(v61), (tostring(v60)))));
    end;
end;
v6.mergeDirective = function(v63, v64)
    if not v64 then
        return v63;
    else
        v62(v63, v64);
        return l_Object_0.assign({}, v63, {
            locations = l_Array_0.concat({}, v64.locations, l_Array_0.filter(v63.locations, function(v65)
                return not l_Array_0.some(v64.locations, function(v66)
                    return v66.value == v65.value;
                end);
            end))
        });
    end;
end;
v10 = function(v67, v68, v69)
    return l_Array_0.concat(v67, l_Array_0.filter(v68, function(v70)
        return v69(v70, v67);
    end));
end;
return v6;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Map_0 = v1.Map;
local v5 = {};
local _ = require(l_Parent_0.GraphQL);
local l_mergeDirectives_0 = require(script.Parent.directives).mergeDirectives;
local _ = require(script.Parent["merge-typedefs_types"]);
local l_compareNodes_0 = require(l_Parent_0.Utils).compareNodes;
v5.mergeEnumValues = function(v10, v11, v12)
    if l_Boolean_0.toJSBoolean(if typeof(v12) == "table" then v12.consistentEnumMerge else nil) then
        local v13 = {};
        if l_Boolean_0.toJSBoolean(v10) then
            v13 = l_Array_0.concat(v13, v10);
        end;
        v10 = v11;
        v11 = v13;
    end;
    local v14 = l_Map_0.new();
    if v10 then
        for _, v16 in v10, nil, nil do
            v14:set(v16.name.value, v16);
        end;
    end;
    if v11 then
        for _, v18 in v11, nil, nil do
            local l_value_0 = v18.name.value;
            if not l_Boolean_0.toJSBoolean(v14:has(l_value_0)) then
                v14:set(l_value_0, v18);
            else
                local v20 = v14:get(l_value_0);
                v20.description = not not l_Boolean_0.toJSBoolean(v18.description) and v18.description or v20.description;
                v20.directives = l_mergeDirectives_0(v18.directives, v20.directives);
            end;
        end;
    end;
    local v21 = l_Array_0.concat({}, v14:values());
    if not (not v12 or not l_Boolean_0.toJSBoolean(v12.sort)) then
        l_Array_0.sort(v21, l_compareNodes_0);
    end;
    return v21;
end;
return v5;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v4 = {};
local l_Kind_0 = require(l_Parent_0.GraphQL).Kind;
local l_mergeDirectives_0 = require(script.Parent.directives).mergeDirectives;
local l_mergeEnumValues_0 = require(script.Parent["enum-values"]).mergeEnumValues;
local _ = require(script.Parent["merge-typedefs_types"]);
v4.mergeEnum = function(v9, v10, v11)
    if not l_Boolean_0.toJSBoolean(v10) then
        if not v11 or not l_Boolean_0.toJSBoolean(v11.convertExtensions) then
            return v9;
        else
            return (l_Object_0.assign({}, v9, {
                kind = l_Kind_0.ENUM_TYPE_DEFINITION
            }));
        end;
    else
        return {
            name = v9.name,
            description = if not l_Boolean_0.toJSBoolean(v9.description) then v10.description else v9.description,
            kind = (not (not (not not v11 and l_Boolean_0.toJSBoolean(v11.convertExtensions)) and v9.kind ~= "EnumTypeDefinition") or v10.kind == "EnumTypeDefinition") and "EnumTypeDefinition" or "EnumTypeExtension",
            loc = v9.loc,
            directives = l_mergeDirectives_0(v9.directives, v10.directives, v11),
            values = l_mergeEnumValues_0(v9.values, v10.values, v11)
        };
    end;
end;
return v4;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local v5 = {};
local _ = require(script.Parent["merge-typedefs_types"]);
local _ = require(l_Parent_0.GraphQL);
local v8 = require(script.Parent.utils);
local l_extractType_0 = v8.extractType;
local l_isWrappingTypeNode_0 = v8.isWrappingTypeNode;
local l_isListTypeNode_0 = v8.isListTypeNode;
local l_isNonNullTypeNode_0 = v8.isNonNullTypeNode;
local l_printTypeNode_0 = v8.printTypeNode;
local l_mergeDirectives_0 = require(script.Parent.directives).mergeDirectives;
local l_compareNodes_0 = require(l_Parent_0.Utils).compareNodes;
local l_mergeArguments_0 = require(script.Parent.arguments).mergeArguments;
local v17 = nil;
local v18 = nil;
local function v26(v19, v20, v21)
    local v23 = l_Array_0.find(v19, function(v22)
        return v22.name.value == v20.name.value;
    end);
    if not (not v23 or v21 and l_Boolean_0.toJSBoolean(v21.ignoreFieldConflicts)) then
        local v24 = l_extractType_0(v23.type);
        local v25 = l_extractType_0(v20.type);
        if v24.name.value ~= v25.name.value then
            error(l_Error_0.new(("Field \"%s\" already defined with a different type. Declared as \"%s\", but you tried to override with \"%s\""):format(tostring(v20.name.value), tostring(v24.name.value), (tostring(v25.name.value)))));
        end;
    end;
    return not not l_Boolean_0.toJSBoolean(v23);
end;
v5.mergeFields = function(v27, v28, v29, v30)
    local v31 = {};
    if v29 ~= nil then
        v31 = l_Array_0.concat(v31, v29);
    end;
    if v28 ~= nil then
        for _, v33 in v28, nil, nil do
            if not l_Boolean_0.toJSBoolean((v26(v31, v33, v30))) then
                table.insert(v31, v33);
            else
                local v35 = l_Array_0.find(v31, function(v34)
                    return v34.name.value == v33.name.value;
                end);
                if not (v30 and l_Boolean_0.toJSBoolean(v30.ignoreFieldConflicts)) then
                    if not v30 or not l_Boolean_0.toJSBoolean(v30.throwOnConflict) then
                        v17(v27, v35, v33, true);
                    else
                        v17(v27, v35, v33, false);
                    end;
                    local l_toJSBoolean_0 = l_Boolean_0.toJSBoolean;
                    local v37 = l_isNonNullTypeNode_0(v33.type);
                    if l_toJSBoolean_0(if not l_Boolean_0.toJSBoolean(v37) then v37 else not l_Boolean_0.toJSBoolean(l_isNonNullTypeNode_0(v35.type))) then
                        v35.type = v33.type;
                    end;
                end;
                v35.arguments = l_mergeArguments_0(if not l_Boolean_0.toJSBoolean(v33.arguments) then {} else v33.arguments, if not l_Boolean_0.toJSBoolean(v35.arguments) then {} else v35.arguments, v30);
                v35.directives = l_mergeDirectives_0(v33.directives, v35.directives, v30);
                v35.description = if not l_Boolean_0.toJSBoolean(v33.description) then v35.description else v33.description;
            end;
        end;
    end;
    if not (not v30 or not l_Boolean_0.toJSBoolean(v30.sort)) then
        l_Array_0.sort(v31, l_compareNodes_0);
    end;
    if not v30 or not v30.exclusions then
        return v31;
    else
        local l_exclusions_0 = v30.exclusions;
        return l_Array_0.filter(v31, function(v39)
            return not l_Boolean_0.toJSBoolean(l_Array_0.includes(l_exclusions_0, ("%s.%s"):format(tostring(v27.name.value), (tostring(v39.name.value)))));
        end);
    end;
end;
v17 = function(v40, v41, v42, v43)
    local v44 = if v43 ~= nil then v43 else false;
    local v45 = l_printTypeNode_0(v41.type);
    local v46 = l_printTypeNode_0(v42.type);
    if not (not (v45 ~= v46) or l_Boolean_0.toJSBoolean(v18(v41.type, v42.type, v44))) then
        error(l_Error_0.new(("Field '%s.%s' changed type from '%s' to '%s'"):format(tostring(v40.name.value), tostring(v41.name.value), tostring(v45), (tostring(v46)))));
    end;
end;
v18 = function(v47, v48, v49)
    local v50 = if v49 ~= nil then v49 else false;
    if l_Boolean_0.toJSBoolean(l_isWrappingTypeNode_0(v47)) or l_Boolean_0.toJSBoolean(l_isWrappingTypeNode_0(v48)) then
        if not l_Boolean_0.toJSBoolean(l_isNonNullTypeNode_0(v48)) then
            if not l_Boolean_0.toJSBoolean(l_isNonNullTypeNode_0(v47)) then
                if not l_Boolean_0.toJSBoolean(l_isListTypeNode_0(v47)) then
                    return false;
                else
                    return not not l_isListTypeNode_0(v48) and v18(v47.type, v48.type) or l_isNonNullTypeNode_0(v48) and v18(v47, v48.type);
                end;
            else
                return v18(v48, v47, v50);
            end;
        else
            return v18(if not l_Boolean_0.toJSBoolean(l_isNonNullTypeNode_0(v47)) then v47 else v47.type, v48.type);
        end;
    elseif ((typeof(v47) == "table" and #v47 == 0) and typeof(v48) == "table") and #v48 == 0 then
        return true;
    else
        return tostring(v47) == tostring(v48);
    end;
end;
return v5;


local l_Object_0 = require(script.Parent.Parent.LuauPolyfill).Object;
local v1 = {};
l_Object_0.assign(v1, (require(script.arguments)));
l_Object_0.assign(v1, (require(script.directives)));
l_Object_0.assign(v1, (require(script["enum-values"])));
l_Object_0.assign(v1, (require(script.enum)));
l_Object_0.assign(v1, (require(script.fields)));
l_Object_0.assign(v1, (require(script["input-type"])));
l_Object_0.assign(v1, (require(script.interface)));
l_Object_0.assign(v1, (require(script["merge-named-type-array"])));
l_Object_0.assign(v1, (require(script["merge-nodes"])));
l_Object_0.assign(v1, (require(script["merge-typedefs"])));
l_Object_0.assign(v1, (require(script.scalar)));
l_Object_0.assign(v1, (require(script.type)));
l_Object_0.assign(v1, (require(script.union)));
l_Object_0.assign(v1, (require(script.utils)));
return v1;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local l_Object_0 = v1.Object;
local v5 = {};
local _ = require(script.Parent["merge-typedefs_types"]);
local l_Kind_0 = require(l_Parent_0.GraphQL).Kind;
local l_mergeFields_0 = require(script.Parent.fields).mergeFields;
local l_mergeDirectives_0 = require(script.Parent.directives).mergeDirectives;
v5.mergeInputType = function(v10, v11, v12)
    if not l_Boolean_0.toJSBoolean(v11) then
        if not v12 or not l_Boolean_0.toJSBoolean(v12.convertExtensions) then
            return v10;
        else
            return (l_Object_0.assign({}, v10, {
                kind = l_Kind_0.INPUT_OBJECT_TYPE_DEFINITION
            }));
        end;
    else
        local l_status_0, l_result_0 = pcall(function()
            return {
                name = v10.name,
                description = if not l_Boolean_0.toJSBoolean(v10.description) then v11.description else v10.description,
                kind = (not (not l_Boolean_0.toJSBoolean(v12 and v12.convertExtensions) and v10.kind ~= "InputObjectTypeDefinition") or v11.kind == "InputObjectTypeDefinition") and "InputObjectTypeDefinition" or "InputObjectTypeExtension",
                loc = v10.loc,
                fields = l_mergeFields_0(v10, v10.fields, v11.fields, v12),
                directives = l_mergeDirectives_0(v10.directives, v11.directives, v12)
            };
        end);
        if not l_status_0 then
            error(l_Error_0.new(("Unable to merge GraphQL input type \"%s\": %s"):format(tostring(v10.name.value), (tostring(l_result_0.message)))));
        end;
        return l_result_0;
    end;
end;
return v5;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local l_Object_0 = v1.Object;
local v5 = {};
local _ = require(script.Parent["merge-typedefs_types"]);
local l_Kind_0 = require(l_Parent_0.GraphQL).Kind;
local l_mergeFields_0 = require(script.Parent.fields).mergeFields;
local l_mergeDirectives_0 = require(script.Parent.directives).mergeDirectives;
local l_mergeNamedTypeArray_0 = require(script.Parent["merge-named-type-array"]).mergeNamedTypeArray;
v5.mergeInterface = function(v11, v12, v13)
    if not l_Boolean_0.toJSBoolean(v12) then
        if not l_Boolean_0.toJSBoolean(if typeof(v13) == "table" then v13.convertExtensions else nil) then
            return v11;
        else
            return (l_Object_0.assign({}, v11, {
                kind = l_Kind_0.INTERFACE_TYPE_DEFINITION
            }));
        end;
    else
        local l_status_0, l_result_0 = pcall(function()
            return {
                name = v11.name,
                description = if not l_Boolean_0.toJSBoolean(v11.description) then v12.description else v11.description,
                kind = (not (not l_Boolean_0.toJSBoolean(v13 and v13.convertExtensions) and v11.kind ~= "InterfaceTypeDefinition") or v12.kind == "InterfaceTypeDefinition") and "InterfaceTypeDefinition" or "InterfaceTypeExtension",
                loc = v11.loc,
                fields = l_mergeFields_0(v11, v11.fields, v12.fields, v13),
                directives = l_mergeDirectives_0(v11.directives, v12.directives, v13),
                interfaces = if not l_Boolean_0.toJSBoolean(v11.interfaces) then nil else l_mergeNamedTypeArray_0(v11.interfaces, v12.interfaces, v13)
            };
        end);
        if not l_status_0 then
            error(l_Error_0.new(("Unable to merge GraphQL interface \"%s\": %s"):format(tostring(v11.name.value), (tostring(l_result_0.message)))));
        end;
        return l_result_0;
    end;
end;
return v5;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local v4 = {};
local _ = require(l_Parent_0.GraphQL);
local _ = require(script.Parent["merge-typedefs_types"]);
local l_compareNodes_0 = require(l_Parent_0.Utils).compareNodes;
local function _(v8, v9)
    return not not l_Boolean_0.toJSBoolean(l_Array_0.find(v8, function(v10)
        return v10.name.value == v9.name.value;
    end));
end;
v4.mergeNamedTypeArray = function(v12, v13, v14)
    local v15 = if v12 ~= nil then v12 else {};
    local v16 = if v13 ~= nil then v13 else {};
    local v17 = if v14 ~= nil then v14 else {};
    local v20 = l_Array_0.concat({}, v16, l_Array_0.filter(v15, function(v18)
        return not l_Boolean_0.toJSBoolean(not not l_Boolean_0.toJSBoolean(l_Array_0.find(v16, function(v19)
            return v19.name.value == v18.name.value;
        end)));
    end));
    if not (not v17 or not l_Boolean_0.toJSBoolean(v17.sort)) then
        l_Array_0.sort(v20, l_compareNodes_0);
    end;
    return v20;
end;
return v4;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local l_Map_0 = v1.Map;
local v6 = {};
local _ = require(script.Parent["merge-typedefs_types"]);
local l_Kind_0 = require(l_Parent_0.GraphQL).Kind;
local l_mergeType_0 = require(script.Parent.type).mergeType;
local l_mergeEnum_0 = require(script.Parent.enum).mergeEnum;
local l_mergeScalar_0 = require(script.Parent.scalar).mergeScalar;
local l_mergeUnion_0 = require(script.Parent.union).mergeUnion;
local l_mergeInputType_0 = require(script.Parent["input-type"]).mergeInputType;
local l_mergeInterface_0 = require(script.Parent.interface).mergeInterface;
local l_mergeDirective_0 = require(script.Parent.directives).mergeDirective;
local l_mergeSchemaDefs_0 = require(script.Parent["schema-def"]).mergeSchemaDefs;
local l_collectComment_0 = require(l_Parent_0.Utils).collectComment;
v6.schemaDefSymbol = "SCHEMA_DEF_SYMBOL";
v6.isNamedDefinitionNode = function(v18)
    return l_Array_0.indexOf(l_Object_0.keys(v18), "name") ~= -1;
end;
v6.mergeGraphQLNodes = function(v19, v20)
    local v21 = l_Map_0.new();
    for _, v23 in v19, nil, nil do
        if not l_Boolean_0.toJSBoolean(l_Array_0.indexOf(l_Object_0.keys(v23), "name") ~= -1) then
            if not (v23.kind ~= l_Kind_0.SCHEMA_DEFINITION) or v23.kind == l_Kind_0.SCHEMA_EXTENSION then
                v21:set("SCHEMA_DEF_SYMBOL", l_mergeSchemaDefs_0(v23, v21:get("SCHEMA_DEF_SYMBOL"), v20));
            end;
        else
            local v24 = if typeof(v23.name) == "table" then v23.name.value else nil;
            if not (not v20 or not l_Boolean_0.toJSBoolean(v20.commentDescriptions)) then
                l_collectComment_0(v23);
            end;
            if v24 ~= nil then
                if not ((v20 and typeof(v20.exclusions) == "table") and l_Array_0.includes(v20.exclusions, v24 .. ".*")) and (not (v20 and typeof(v20.exclusions) == "table") or not l_Array_0.includes(v20.exclusions, v24)) then
                    local l_kind_0 = v23.kind;
                    if not (l_kind_0 ~= l_Kind_0.OBJECT_TYPE_DEFINITION) or l_kind_0 == l_Kind_0.OBJECT_TYPE_EXTENSION then
                        v21:set(v24, l_mergeType_0(v23, v21:get(v24), v20));
                    elseif not (l_kind_0 ~= l_Kind_0.ENUM_TYPE_DEFINITION) or l_kind_0 == l_Kind_0.ENUM_TYPE_EXTENSION then
                        v21:set(v24, l_mergeEnum_0(v23, v21:get(v24), v20));
                    elseif not (l_kind_0 ~= l_Kind_0.UNION_TYPE_DEFINITION) or l_kind_0 == l_Kind_0.UNION_TYPE_EXTENSION then
                        v21:set(v24, l_mergeUnion_0(v23, v21:get(v24), v20));
                    elseif not (l_kind_0 ~= l_Kind_0.SCALAR_TYPE_DEFINITION) or l_kind_0 == l_Kind_0.SCALAR_TYPE_EXTENSION then
                        v21:set(v24, l_mergeScalar_0(v23, v21:get(v24), v20));
                    elseif not (l_kind_0 ~= l_Kind_0.INPUT_OBJECT_TYPE_DEFINITION) or l_kind_0 == l_Kind_0.INPUT_OBJECT_TYPE_EXTENSION then
                        v21:set(v24, l_mergeInputType_0(v23, v21:get(v24), v20));
                    elseif not (l_kind_0 ~= l_Kind_0.INTERFACE_TYPE_DEFINITION) or l_kind_0 == l_Kind_0.INTERFACE_TYPE_EXTENSION then
                        v21:set(v24, l_mergeInterface_0(v23, v21:get(v24), v20));
                    elseif l_kind_0 == l_Kind_0.DIRECTIVE_DEFINITION then
                        v21:set(v24, l_mergeDirective_0(v23, (v21:get(v24))));
                    end;
                else
                    v21:delete(v24);
                end;
            end;
        end;
    end;
    return v21;
end;
return v6;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local l_Object_0 = v1.Object;
local l_Set_0 = v1.Set;
local v7 = {};
local _ = require(script.Parent["merge-typedefs_types"]);
local v9 = nil;
local v10 = require(l_Parent_0.GraphQL);
local l_parse_0 = v10.parse;
local l_Kind_0 = v10.Kind;
local l_isSchema_0 = v10.isSchema;
local l_isDefinitionNode_0 = v10.isDefinitionNode;
local v15 = require(script.Parent.utils);
local l_defaultStringComparator_0 = v15.defaultStringComparator;
local l_isSourceTypes_0 = v15.isSourceTypes;
local l_isStringTypes_0 = v15.isStringTypes;
local v19 = require(script.Parent["merge-nodes"]);
local l_mergeGraphQLNodes_0 = v19.mergeGraphQLNodes;
local l_schemaDefSymbol_0 = v19.schemaDefSymbol;
local v22 = require(l_Parent_0.Utils);
local l_getDocumentNodeFromSchema_0 = v22.getDocumentNodeFromSchema;
local l_isDocumentNode_0 = v22.isDocumentNode;
local l_resetComments_0 = v22.resetComments;
local l_printWithComments_0 = v22.printWithComments;
local l_DEFAULT_OPERATION_TYPE_NAME_MAP_0 = require(script.Parent["schema-def"]).DEFAULT_OPERATION_TYPE_NAME_MAP;
v7.mergeTypeDefs = function(v28, v29)
    l_resetComments_0();
    local v30 = {
        kind = l_Kind_0.DOCUMENT,
        definitions = v9(v28, l_Object_0.assign({}, {
            useSchemaDefinition = true,
            forceSchemaDefinition = false,
            throwOnConflict = false,
            commentDescriptions = false
        }, v29))
    };
    local v31 = nil;
    v31 = if not not v29 and v29.commentDescriptions then l_printWithComments_0(v30) else v30;
    l_resetComments_0();
    return v31;
end;
local function v32(v33, v34, v35, v36)
    local v37 = if v35 ~= nil then v35 else {};
    local v38 = if v36 ~= nil then v36 else l_Set_0.new();
    if l_Boolean_0.toJSBoolean(if not l_Boolean_0.toJSBoolean(v33) then v33 else not l_Boolean_0.toJSBoolean(v38:has(v33))) then
        v38:add(v33);
        if typeof(v33) == "function" then
            v32(v33(), v34, v37, v38);
            return v37;
        elseif not l_Boolean_0.toJSBoolean(l_Array_0.isArray(v33)) then
            if not l_Boolean_0.toJSBoolean(l_isSchema_0(v33)) then
                local l_toJSBoolean_0 = l_Boolean_0.toJSBoolean;
                local v40 = l_isStringTypes_0(v33);
                if not l_toJSBoolean_0(not not l_Boolean_0.toJSBoolean(v40) and v40 or l_isSourceTypes_0(v33)) then
                    l_toJSBoolean_0 = l_Boolean_0.toJSBoolean;
                    local v41 = false;
                    if typeof(v33) == "table" then
                        v41 = l_isDefinitionNode_0(v33);
                    end;
                    if not l_toJSBoolean_0(v41) then
                        if not l_isDocumentNode_0(v33) then
                            error(l_Error_0.new(("typeDefs must contain only strings, documents, schemas, or functions, got %s"):format((tostring((typeof(v33)))))));
                        else
                            v32(v33.definitions, v34, v37, v38);
                            return v37;
                        end;
                    else
                        table.insert(v37, v33);
                        return v37;
                    end;
                else
                    v32(l_parse_0(v33, v34).definitions, v34, v37, v38);
                    return v37;
                end;
            else
                v32(l_getDocumentNodeFromSchema_0(v33, v34).definitions, v34, v37, v38);
                return v37;
            end;
        else
            for _, v43 in v33, nil, nil do
                v32(v43, v34, v37, v38);
            end;
            return v37;
        end;
    end;
    return v37;
end;
v9 = function(v44, v45)
    l_resetComments_0();
    local v46 = l_mergeGraphQLNodes_0(v32(v44, v45), v45);
    if not (not v45 or not l_Boolean_0.toJSBoolean(v45.useSchemaDefinition)) then
        local v47 = not not l_Boolean_0.toJSBoolean(v46:get(l_schemaDefSymbol_0)) and v46:get(l_schemaDefSymbol_0) or {
            kind = l_Kind_0.SCHEMA_DEFINITION,
            operationTypes = {}
        };
        local l_operationTypes_0 = v47.operationTypes;
        for v49 in l_DEFAULT_OPERATION_TYPE_NAME_MAP_0, nil, nil do
            if not l_Boolean_0.toJSBoolean((l_Array_0.find(l_operationTypes_0, function(v50)
                return v50.operation == v49;
            end))) then
                local v51 = v46:get(l_DEFAULT_OPERATION_TYPE_NAME_MAP_0[tostring(v49)]);
                if v51 ~= nil and v51.name ~= nil then
                    table.insert(l_operationTypes_0, {
                        kind = l_Kind_0.OPERATION_TYPE_DEFINITION,
                        type = {
                            kind = l_Kind_0.NAMED_TYPE,
                            name = v51.name
                        },
                        operation = v49
                    });
                end;
            end;
        end;
        if (typeof(v47) == "table" and typeof(v47.operationTypes) == "table") and #v47.operationTypes > 0 then
            v46:set(l_schemaDefSymbol_0, v47);
        end;
    end;
    if not (not v45 or not l_Boolean_0.toJSBoolean(v45.forceSchemaDefinition)) and (not (typeof(v46:get(l_schemaDefSymbol_0)) == "table" and typeof(v46:get(l_schemaDefSymbol_0).operationTypes) == "table") or #v46:get(l_schemaDefSymbol_0).operationTypes <= 0) then
        v46:set(l_schemaDefSymbol_0, {
            kind = l_Kind_0.SCHEMA_DEFINITION,
            operationTypes = {
                {
                    kind = l_Kind_0.OPERATION_TYPE_DEFINITION,
                    operation = "query",
                    type = {
                        kind = l_Kind_0.NAMED_TYPE,
                        name = {
                            kind = l_Kind_0.NAME,
                            value = "Query"
                        }
                    }
                }
            }
        });
    end;
    local v52 = v46:values();
    if not (not v45 or not l_Boolean_0.toJSBoolean(v45.sort)) then
        local v53 = if typeof(v45.sort) == "function" then v45.sort else l_defaultStringComparator_0;
        l_Array_0.sort(v52, function(v54, v55)
            return v53(if typeof(v54.name) == "table" then v54.name.value else nil, if typeof(v55.name) == "table" then v55.name.value else nil);
        end);
    end;
    return v52;
end;
v7.mergeGraphQLTypes = v9;
return v7;


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.LuauPolyfill);
local v2 = {};
local _ = require(l_Parent_0.GraphQL);
local _ = require(script.Parent.utils);
local _ = require(l_Parent_0.Utils);
return v2;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v4 = {};
local l_Kind_0 = require(l_Parent_0.GraphQL).Kind;
local l_mergeDirectives_0 = require(script.Parent.directives).mergeDirectives;
local _ = require(script.Parent["merge-typedefs_types"]);
v4.mergeScalar = function(v8, v9, v10)
    if not v9 then
        if not v10 or not l_Boolean_0.toJSBoolean(v10.convertExtensions) then
            return v8;
        else
            return (l_Object_0.assign({}, v8, {
                kind = l_Kind_0.SCALAR_TYPE_DEFINITION
            }));
        end;
    else
        return {
            name = v8.name,
            description = if not l_Boolean_0.toJSBoolean(v8.description) then v9.description else v8.description,
            kind = (not (not (not not v10 and l_Boolean_0.toJSBoolean(v10.convertExtensions)) and v8.kind ~= "ScalarTypeDefinition") or v9.kind == "ScalarTypeDefinition") and "ScalarTypeDefinition" or "ScalarTypeExtension",
            loc = v8.loc,
            directives = l_mergeDirectives_0(v8.directives, v9.directives, v10)
        };
    end;
end;
return v4;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v5 = {};
local l_Kind_0 = require(l_Parent_0.GraphQL).Kind;
local l_mergeDirectives_0 = require(script.Parent.directives).mergeDirectives;
local _ = require(script.Parent["merge-typedefs_types"]);
local v9 = {
    query = "Query",
    mutation = "Mutation",
    subscription = "Subscription"
};
v5.DEFAULT_OPERATION_TYPE_NAME_MAP = v9;
local function v21(v10, v11)
    local v12 = if v10 ~= nil then v10 else {};
    local v13 = if v11 ~= nil then v11 else {};
    local v14 = {};
    for _, v16 in v9, nil, nil do
        local v18 = l_Array_0.find(v12, function(v17)
            return v17.operation == v16;
        end);
        local v20 = not not l_Boolean_0.toJSBoolean(v18) and v18 or l_Array_0.find(v13, function(v19)
            return v19.operation == v16;
        end);
        if v20 then
            table.insert(v14, v20);
        end;
    end;
    return v14;
end;
v5.mergeSchemaDefs = function(v22, v23, v24)
    if not l_Boolean_0.toJSBoolean(v23) then
        if not v24 or not l_Boolean_0.toJSBoolean(v24.convertExtensions) then
            return v22;
        else
            return (l_Object_0.assign({}, v22, {
                kind = l_Kind_0.SCHEMA_DEFINITION
            }));
        end;
    else
        return {
            kind = if not (v22.kind ~= l_Kind_0.SCHEMA_DEFINITION) or v23.kind == l_Kind_0.SCHEMA_DEFINITION then l_Kind_0.SCHEMA_DEFINITION else l_Kind_0.SCHEMA_EXTENSION,
            description = not not l_Boolean_0.toJSBoolean(v22.description) and v22.description or v23.description,
            directives = l_mergeDirectives_0(v22.directives, v23.directives, v24),
            operationTypes = v21(v22.operationTypes, v23.operationTypes)
        };
    end;
end;
return v5;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local l_Object_0 = v1.Object;
local v5 = {};
local _ = require(script.Parent["merge-typedefs_types"]);
local l_Kind_0 = require(l_Parent_0.GraphQL).Kind;
local l_mergeFields_0 = require(script.Parent.fields).mergeFields;
local l_mergeDirectives_0 = require(script.Parent.directives).mergeDirectives;
local l_mergeNamedTypeArray_0 = require(script.Parent["merge-named-type-array"]).mergeNamedTypeArray;
v5.mergeType = function(v11, v12, v13)
    if not v12 then
        if not v13 or not l_Boolean_0.toJSBoolean(v13.convertExtensions) then
            return v11;
        else
            return (l_Object_0.assign({}, v11, {
                kind = l_Kind_0.OBJECT_TYPE_DEFINITION
            }));
        end;
    else
        local l_status_0, l_result_0 = pcall(function()
            return {
                name = v11.name,
                description = if not l_Boolean_0.toJSBoolean(v11.description) then v12.description else v11.description,
                kind = (not (not (not not v13 and l_Boolean_0.toJSBoolean(v13.convertExtensions)) and v11.kind ~= "ObjectTypeDefinition") or v12.kind == "ObjectTypeDefinition") and "ObjectTypeDefinition" or "ObjectTypeExtension",
                loc = v11.loc,
                fields = l_mergeFields_0(v11, v11.fields, v12.fields, v13),
                directives = l_mergeDirectives_0(v11.directives, v12.directives, v13),
                interfaces = l_mergeNamedTypeArray_0(v11.interfaces, v12.interfaces, v13)
            };
        end);
        if not l_status_0 then
            error(l_Error_0.new(("Unable to merge GraphQL type \"%s\": %s"):format(tostring(v11.name.value), (tostring(l_result_0.message)))));
        end;
        return l_result_0;
    end;
end;
return v5;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v4 = {};
local l_Kind_0 = require(l_Parent_0.GraphQL).Kind;
local l_mergeDirectives_0 = require(script.Parent.directives).mergeDirectives;
local l_mergeNamedTypeArray_0 = require(script.Parent["merge-named-type-array"]).mergeNamedTypeArray;
local _ = require(script.Parent["merge-typedefs_types"]);
v4.mergeUnion = function(v9, v10, v11)
    if not v10 then
        if not v11 or not l_Boolean_0.toJSBoolean(v11.convertExtensions) then
            return v9;
        else
            return (l_Object_0.assign({}, v9, {
                kind = l_Kind_0.UNION_TYPE_DEFINITION
            }));
        end;
    else
        return {
            name = v9.name,
            description = if not l_Boolean_0.toJSBoolean(v9.description) then v10.description else v9.description,
            directives = l_mergeDirectives_0(v9.directives, v10.directives, v11),
            kind = if not (not (not not v11 and l_Boolean_0.toJSBoolean(v11.convertExtensions)) and v9.kind ~= "UnionTypeDefinition") or v10.kind == "UnionTypeDefinition" then l_Kind_0.UNION_TYPE_DEFINITION else l_Kind_0.UNION_TYPE_EXTENSION,
            loc = v9.loc,
            types = l_mergeNamedTypeArray_0(v9.types, v10.types, v11)
        };
    end;
end;
return v4;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_instanceof_0 = v1.instanceof;
local v4 = {};
local v5 = require(l_Parent_0.GraphQL);
local l_Source_0 = v5.Source;
local l_Kind_0 = v5.Kind;
v4.isStringTypes = function(v8)
    return typeof(v8) == "string";
end;
v4.isSourceTypes = function(v9)
    return l_instanceof_0(v9, l_Source_0);
end;
v4.extractType = function(v10)
    local l_v10_0 = v10;
    while not (l_v10_0.kind ~= l_Kind_0.LIST_TYPE) or l_v10_0.kind == "NonNullType" do
        l_v10_0 = l_v10_0.type;
    end;
    return l_v10_0;
end;
v4.isWrappingTypeNode = function(v12)
    return v12.kind ~= l_Kind_0.NAMED_TYPE;
end;
v4.isListTypeNode = function(v13)
    return v13.kind == l_Kind_0.LIST_TYPE;
end;
v4.isNonNullTypeNode = function(v14)
    return v14.kind == l_Kind_0.NON_NULL_TYPE;
end;
local function v15(v16)
    if not l_Boolean_0.toJSBoolean(v16.kind == l_Kind_0.LIST_TYPE) then
        if not l_Boolean_0.toJSBoolean(v16.kind == l_Kind_0.NON_NULL_TYPE) then
            return v16.name.value;
        else
            return ("%sformat(v15(v16.type));
        end;
    else
        return ("[%s]"):format(v15(v16.type));
    end;
end;
v4.printTypeNode = v15;
local v17 = {
    A_SMALLER_THAN_B = -1,
    A_EQUALS_B = 0,
    A_GREATER_THAN_B = 1
};
v4.CompareVal = v17;
v4.defaultStringComparator = function(v18, v19)
    if v18 == nil and v19 == nil then
        return v17.A_EQUALS_B;
    elseif v18 == nil then
        return v17.A_SMALLER_THAN_B;
    elseif v19 == nil then
        return v17.A_GREATER_THAN_B;
    elseif v18 < v19 then
        return v17.A_SMALLER_THAN_B;
    elseif v19 < v18 then
        return v17.A_GREATER_THAN_B;
    else
        return v17.A_EQUALS_B;
    end;
end;
return v4;


local l_Parent_0 = script.Parent;
local v1 = require(l_Parent_0.networkRequests.createGetPhoneInformation);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
return function(v3)
    return {
        GetPhoneInformation = v1(v3)
    };
end;


local l_Parent_0 = script.Parent.Parent;
local _ = require(l_Parent_0.Types.networkRequestsTypes);
local v2 = require(l_Parent_0.ACCOUNT_INFORMATION_URL);
return function(v3)
    return v3.roduxNetworking.GET({
        Name = "GetPhoneInformation"
    }, function(v4)
        return v4(v2):path("v1"):path("phone");
    end);
end;


local l_Parent_0 = script.Parent;
local v1 = require(l_Parent_0.networkRequests.createGetEmailSettings);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
return function(v3)
    return {
        GetEmailSettings = v1(v3)
    };
end;


local l_Parent_0 = script.Parent.Parent;
local _ = require(l_Parent_0.Types.networkRequestsTypes);
local v2 = require(l_Parent_0.ACCOUNT_SETTINGS_URL);
return function(v3)
    return v3.roduxNetworking.GET({
        Name = "GetEmailSettings"
    }, function(v4)
        return v4(v2):path("v1"):path("email");
    end);
end;


local l_ContentProvider_0 = game:GetService("ContentProvider");
local _, _, v8 = (function()
    local l_BaseUrl_0 = l_ContentProvider_0.BaseUrl;
    if l_BaseUrl_0:sub(#l_BaseUrl_0) ~= "/" then
        l_BaseUrl_0 = l_BaseUrl_0 .. "/";
    end;
    local _, v3 = l_BaseUrl_0:find("://");
    assert(type(v3) == "number", "Expected schemeEnd to be a number");
    local v4, v5 = l_BaseUrl_0:find("%.", v3 + 1);
    assert(type(v4) == "number", "Expected prefixIndex to be a number");
    assert(type(v5) == "number", "Expected prefixEnd to be a number");
    return l_BaseUrl_0, l_BaseUrl_0:sub(v3 + 1, v4 - 1), (l_BaseUrl_0:sub(v5 + 1));
end)();
return function(v9)
    return string.format("https://%s.%s", v9, v8);
end;


local l_networkRequests_0 = script.Parent.networkRequests;
local v1 = require(l_networkRequests_0.createGetTagsFromUserIds);
local v2 = require(l_networkRequests_0.createSetUserTag);
local _ = require(script.Parent.networkingAliasesTypes);
return function(v4)
    return {
        GetTagsFromUserIds = v1(v4),
        SetUserTag = v2(v4)
    };
end;


local v0 = require(script.Parent.Parent.ALIAS_URL);
local _ = require(script.Parent.Parent.networkingAliasesTypes);
return function(v2)
    return v2.roduxNetworking.POST({
        Name = "GetTagsFromUserIds"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("user"):path("get-tags"):body({
            targetUserIds = v4
        });
    end);
end;


local v0 = require(script.Parent.Parent.ALIAS_URL);
local _ = require(script.Parent.Parent.networkingAliasesTypes);
return function(v2)
    return v2.roduxNetworking.POST({
        Name = "SetUserTag"
    }, function(v3, v4, v5)
        return v3(v0):path("v1"):path("user"):path("tag"):body({
            targetUserId = v4,
            userTag = v5
        });
    end);
end;


local l_networkRequests_0 = script.Parent.networkRequests;
local v1 = require(l_networkRequests_0.createGetBlockedUsers);
local v2 = require(l_networkRequests_0.createBlockUserById);
local v3 = require(l_networkRequests_0.createUnblockUserById);
return function(v4)
    return {
        GetBlockedUsers = v1(v4),
        BlockUserById = v2(v4),
        UnblockUserById = v3(v4)
    };
end;


local v0 = require(script.Parent.Parent.ACCOUNT_SETTINGS_URL);
return function(v1)
    return v1.roduxNetworking.POST({
        Name = "BlockUserById"
    }, function(v2, v3)
        return v2(v0, {
            currentUserId = v3.currentUserId
        }):path("v1"):path("users"):id(v3.userId):path("block"):body({});
    end);
end;


local v0 = require(script.Parent.Parent.ACCOUNT_SETTINGS_URL);
return function(v1)
    return v1.roduxNetworking.GET({
        Name = "GetBlockedUsers"
    }, function(v2, v3)
        return v2(v0, {
            currentUserId = not not v3 and v3.currentUserId or nil
        }):path("v1"):path("users"):path("get-detailed-blocked-users");
    end);
end;


local v0 = require(script.Parent.Parent.ACCOUNT_SETTINGS_URL);
return function(v1)
    return v1.roduxNetworking.POST({
        Name = "UnblockUserById"
    }, function(v2, v3)
        return v2(v0, {
            params = v3.currentUserId
        }):path("v1"):path("users"):id(v3.userId):path("unblock"):body({});
    end);
end;


local _ = require(script.Parent.networkingCallTypes);
local l_networkRequests_0 = script.Parent.networkRequests;
local v2 = require(l_networkRequests_0.createGetCallHistory);
local v3 = require(l_networkRequests_0.createGetSuggestedCallees);
return function(v4)
    return {
        GetCallHistory = v2(v4),
        GetSuggestedCallees = v3(v4)
    };
end;


return {
    config = require(script.createRequestThunks),
    networkingCallTypes = require(script.networkingCallTypes)
};


local v0 = require(script.Parent.Parent.CALL_URL);
local _ = require(script.Parent.Parent.networkingCallTypes);
return function(v2)
    return (v2.roduxNetworking.GET({
        Name = "GetCallHistory"
    }, function(v3, v4)
        return v3(v0):path("call"):path("v1"):path("get-call-history"):queryArgs({
            universeId = if not v4 then nil else v4.universeId,
            limit = if not v4 then nil else v4.limit,
            cursor = if not v4 then nil else v4.cursor
        });
    end));
end;


local v0 = require(script.Parent.Parent.CALL_URL);
local _ = require(script.Parent.Parent.networkingCallTypes);
return function(v2)
    return (v2.roduxNetworking.GET({
        Name = "GetSuggestedCallees"
    }, function(v3)
        return v3(v0):path("call"):path("v1"):path("get-suggested-callees");
    end));
end;


local l_Parent_0 = script.Parent;
local l_networkRequests_0 = l_Parent_0.networkRequests;
local v2 = require(l_networkRequests_0.createUploadContactsByUser);
local v3 = require(l_networkRequests_0.createFindContactFriends);
local v4 = require(l_networkRequests_0.createGetContactEntitiesByContactId);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
return function(v6)
    return {
        UploadContactsByUser = v2(v6),
        FindContactFriends = v3(v6),
        GetContactEntitiesByContactId = v4(v6)
    };
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.API_URL);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
return function(v3)
    return v3.roduxNetworking.GET({
        Name = "FindContactFriends"
    }, function(v4)
        return v4(v1):path("contacts-api"):path("v1"):path("contacts");
    end);
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.API_URL);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
return function(v3)
    return v3.roduxNetworking.POST({
        Name = "GetContactEntitiesByContactId"
    }, function(v4, v5)
        return v4(v1):path("contacts-api"):path("v1"):path("contacts"):path("entities"):body({
            userContactIds = v5
        });
    end);
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.API_URL);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
return function(v3)
    return v3.roduxNetworking.POST({
        Name = "UploadContactsByUser"
    }, function(v4, v5)
        return v4(v1):path("contacts-api"):path("v1"):path("contacts"):body({
            contacts = v5
        });
    end);
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.API_URL);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
game:DefineFastString("ContactImporterFindFriendsUrl", "contacts");
local l_game_FastString_0 = game:GetFastString("ContactImporterFindFriendsUrl");
return function(v4)
    return v4.roduxNetworking.GET({
        Name = "FindContactFriends"
    }, function(v5)
        return v5(v1):path("contacts-api"):path("v1"):path(l_game_FastString_0);
    end);
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.API_URL);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
game:DefineFastString("ContactImporterUploadUrl", "contacts");
local l_game_FastString_0 = game:GetFastString("ContactImporterUploadUrl");
return function(v4)
    return v4.roduxNetworking.POST({
        Name = "UploadContactsByUser"
    }, function(v5, v6)
        return v5(v1):path("contacts-api"):path("v1"):path(l_game_FastString_0):body({
            countryCode = v6.countryCode,
            contacts = v6.contacts
        });
    end);
end;


local l_networkRequests_0 = script.networkRequests;
local v1 = require(l_networkRequests_0.createGetCurrentlyWearing);
local v2 = require(l_networkRequests_0.createGetItemDetails);
return {
    config = function(v3)
        return {
            GetCurrentlyWearing = v1(v3),
            GetItemDetails = v2(v3)
        };
    end
};


local v0 = require(script.Parent.Parent.AVATAR_URL);
return function(v1)
    return v1.roduxNetworking.GET({
        Name = "GetCurrentlyWearing"
    }, function(v2, v3)
        return v2(v0):path("v1"):path("users"):id(v3):path("currently-wearing");
    end);
end;


local v0 = require(script:FindFirstAncestor("NetworkingCurrentlyWearing").Parent.Dash);
local v1 = require(script.Parent.Parent.CATALOG_URL);
return function(v2)
    return v2.roduxNetworking.POST({
        Name = "GetItemDetails"
    }, function(v3, v4)
        return v3(v1):path("v1"):path("catalog"):path("items"):path("details"):body({
            items = v0.map(v4, function(v5)
                return {
                    itemType = "Asset",
                    id = v5
                };
            end)
        });
    end);
end;


return require(script.Parent.Parent.Parent.enumerate)(script.Name, {
    Unknown = "Unknown",
    PlayerSearch = "PlayerSearch",
    QrCode = "QrCode",
    InGame = "InGame",
    UserProfile = "UserProfile",
    QqContactImporter = "QqContactImporter",
    WeChatContactImporter = "WeChatContactImporter",
    ProfileShare = "ProfileShare",
    PhoneContactImporter = "PhoneContactImporter",
    FriendRecommendations = "FriendRecommendations"
});


return {
    FriendshipOriginSourceType = require(script.FriendshipOriginSourceType)
};


local _ = require(script.Parent.networkingFriendsTypes);
local l_networkRequests_0 = script.Parent.networkRequests;
local v2 = require(l_networkRequests_0.createGetFriendsFromUserId);
local v3 = require(l_networkRequests_0.createFindFriendsFromUserId);
local v4 = require(l_networkRequests_0.createSearchFriendsByQuery);
local v5 = require(l_networkRequests_0.createGetFriendRequestsCount);
local v6 = require(l_networkRequests_0.createUnfriendTargetUserId);
local v7 = require(l_networkRequests_0.createGetFriendRequests);
local v8 = require(l_networkRequests_0.createAcceptFriendRequestFromUserId);
local v9 = require(l_networkRequests_0.createDeclineFriendRequestFromUserId);
local v10 = require(l_networkRequests_0.createDeclineAllFriendRequests);
local v11 = require(l_networkRequests_0.createGetFriendsCountFromUserId);
local v12 = require(l_networkRequests_0.createGetInactiveFriends);
local v13 = require(l_networkRequests_0.createRequestFriendshipFromUserId);
local v14 = require(l_networkRequests_0.createRequestFriendshipFromContactId);
local v15 = require(l_networkRequests_0.createGetFollowingExists);
local v16 = require(l_networkRequests_0.createGetUserFollowers);
local v17 = require(l_networkRequests_0.createGetFriendRecommendationsFromUserId);
local v18 = require(l_networkRequests_0.createGetFriendshipStatus);
local v19 = require(l_networkRequests_0.createGetExtendedFriendshipStatus);
local v20 = require(l_networkRequests_0.createAcceptFriendRequestWithToken);
local v21 = require(l_networkRequests_0.createGetFollowersCount);
local v22 = require(l_networkRequests_0.createGetFollowingsCount);
return function(v23)
    return {
        GetFriendsFromUserId = v2(v23),
        FindFriendsFromUserId = v3(v23),
        SearchFriendsByQuery = v4(v23),
        GetFriendRequestsCount = v5(v23),
        UnfriendTargetUserId = v6(v23),
        GetFriendRequests = v7(v23),
        AcceptFriendRequestFromUserId = v8(v23),
        DeclineFriendRequestFromUserId = v9(v23),
        DeclineAllFriendRequests = v10(v23),
        GetFriendsCountFromUserId = v11(v23),
        GetInactiveFriends = v12(v23),
        RequestFriendshipFromUserId = v13(v23),
        RequestFriendshipFromContactId = v14(v23),
        GetFollowingExists = v15(v23),
        GetUserFollowers = v16(v23),
        GetFriendRecommendationsFromUserId = v17(v23),
        GetFriendshipStatus = v18(v23),
        GetExtendedFriendshipStatus = v19(v23),
        AcceptFriendRequestWithToken = v20(v23),
        GetFollowersCount = v21(v23),
        GetFollowingsCount = v22(v23)
    };
end;


return {
    config = require(script.createRequestThunks),
    Enums = require(script.Enums)
};


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.POST({
        Name = "AcceptFriendRequestFromUserId"
    }, function(v3, v4)
        return v3(v0, {
            currentUserId = v4.currentUserId
        }):path("v1"):path("users"):id(v4.targetUserId):path("accept-friend-request"):body({});
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.POST({
        Name = "AcceptFriendRequestWithToken"
    }, function(v3, v4)
        return v3(v0, {
            currentUserId = v4.currentUserId
        }):path("v1"):path("users"):id(v4.targetUserId):path("accept-friend-request-with-token"):body({
            friendingToken = v4.friendingToken
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.POST({
        Name = "DeclineAllFriendRequests"
    }, function(v3, v4)
        return v3(v0, {
            currentUserId = v4.currentUserId
        }):path("v1"):path("user"):path("friend-requests"):path("decline-all"):body({});
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.POST({
        Name = "DeclineFriendRequesterUserId"
    }, function(v3, v4)
        return v3(v0, {
            currentUserId = v4.currentUserId
        }):path("v1"):path("users"):id(v4.targetUserId):path("decline-friend-request"):body({});
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "FindFriendsFromUserId"
    }, function(v3, v4, v5)
        return v3(v0):path("v1"):path("users"):id(v4):path("friends"):path("find"):queryArgs({
            userSort = if not v5 then nil else v5.userSort,
            cursor = if not v5 then nil else v5.cursor,
            limit = if not v5 then nil else v5.limit
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetExtendedFriendshipStatus"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("my"):path("friends"):id(v4.targetUserId):path("status");
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetFollowersCount"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("users"):id(v4):path("followers"):path("count");
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.POST({
        Name = "GetFollowingExists"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("user"):path("following-exists"):body({
            targetUserIds = v4.targetUserIds
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetFollowingsCount"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("users"):id(v4):path("followings"):path("count");
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetFriendRecommendationsFromUserId"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("users"):id(v4.targetUserId):path("friends"):path("recommendations"):queryArgs({
            source = v4.source
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetFriendRequests"
    }, function(v3, v4)
        return v3(v0, {
            currentUserId = v4.currentUserId
        }):path("v1"):path("my"):path("friends"):path("requests"):queryArgs({
            fetchMutualFriends = v4.fetchMutualFriends,
            sortOrder = v4.sortOrder,
            limit = v4.limit,
            cursor = v4.cursor
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetFriendRequestsCount"
    }, function(v3, _)
        return v3(v0):path("v1"):path("user"):path("friend-requests"):path("count");
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetFriendsCountFromUserId"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("users"):id(v4):path("friends"):path("count");
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetFriendsFromUserId"
    }, function(v3, v4, v5)
        return v3(v0):path("v1"):path("users"):id(v4):path("friends"):queryArgs({
            userSort = not not v5 and v5.userSort or nil
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetFriendshipStatus"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("users"):id(v4.currentUserId):path("friends"):path("statuses"):expandedQueryArgsWithIds("userIds", {
            v4.targetUserId
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetInactiveFriends"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("users"):id(v4):path("friends"):path("inactive");
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetLuobuFriendRequests"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("my"):path("luobu-friends"):path("requests"):queryArgs({
            userOpenId = v4.userOpenId,
            userAccessToken = v4.userAccessToken,
            type = v4.type,
            appType = v4.appType,
            sortOrder = v4.sortOrder,
            limit = v4.limit,
            cursor = v4.cursor
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetLuobuFriendsFromUserId"
    }, function(v3, v4, v5)
        return v3(v0):path("v1"):path("users"):id(v4):path("luobu-friends"):queryArgs({
            userOpenId = v5.userOpenId,
            userAccessToken = v5.userAccessToken,
            type = v5.type,
            appType = v5.appType
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetTencentFriendsSuggestion"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("tecent-friends-suggestion"):queryArgs({
            userOpenId = v4.userOpenId,
            userAccessToken = v4.userAccessToken,
            type = v4.type,
            appType = v4.appType
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "GetUserFollowers"
    }, function(v3, v4)
        return v3(v0):path("v1"):path("users"):id(v4.targetUserId):path("followers");
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.POST({
        Name = "RequestFriendshipFromContactId"
    }, function(v3, v4)
        return v3(v0, {
            currentUserId = v4.currentUserId
        }):path("v1"):path("contacts"):id(v4.contactId):path("request-friendship"):body({});
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.POST({
        Name = "RequestFriendshipFromUserId"
    }, function(v3, v4)
        return v3(v0, {
            currentUserId = v4.currentUserId
        }):path("v1"):path("users"):id(v4.targetUserId):path("request-friendship"):body({
            friendshipOriginSourceType = v4.friendshipOriginSourceType
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.GET({
        Name = "SearchFriendsByQuery"
    }, function(v3, v4, v5)
        return v3(v0):path("v1"):path("users"):id(v4):path("friends"):path("search"):queryArgs({
            query = if not v5 then nil else v5.query,
            userSort = if not v5 then nil else v5.userSort,
            cursor = if not v5 then nil else v5.cursor,
            limit = if not v5 then nil else v5.limit
        });
    end);
end;


local v0 = require(script.Parent.Parent.FRIENDS_URL);
local _ = require(script.Parent.Parent.networkingFriendsTypes);
return function(v2)
    return v2.roduxNetworking.POST({
        Name = "UnfriendTargetUserId"
    }, function(v3, v4)
        return v3(v0, {
            currentUserId = v4.currentUserId
        }):path("v1"):path("users"):id(v4.targetUserId):path("unfriend"):body({});
    end);
end;


local l_ContentProvider_0 = game:GetService("ContentProvider");
local _, _, v8 = (function()
    local l_BaseUrl_0 = l_ContentProvider_0.BaseUrl;
    if l_BaseUrl_0:sub(#l_BaseUrl_0) ~= "/" then
        l_BaseUrl_0 = l_BaseUrl_0 .. "/";
    end;
    local _, v3 = l_BaseUrl_0:find("://");
    local v4, v5 = l_BaseUrl_0:find("%.", v3 + 1);
    return l_BaseUrl_0, l_BaseUrl_0:sub(v3 + 1, v4 - 1), (l_BaseUrl_0:sub(v5 + 1));
end)();
return function(v9)
    return string.format("https://%s.%s", v9, v8);
end;


local v0 = require(script.Parent.Parent.GAMES_URL);
return function(v1)
    return v1.roduxNetworking.GET({
        Name = "GetExperienceMedia"
    }, function(v2, v3)
        return v2(v0):path("v2"):path("games"):id(v3):path("media");
    end);
end;


local v0 = require(script.Parent.Parent.GAMES_URL);
return function(v1)
    return v1.roduxNetworking.GET({
        Name = "GetExperiencesDetails"
    }, function(v2, v3)
        return v2(v0):path("v1"):path("games"):expandedQueryArgsWithIds("universeIds", v3);
    end);
end;


local v0 = require(script.networkRequests.createGetUserPremiumMembershipStatus);
return {
    config = function(v1)
        return {
            GetUserPremiumMembershipStatus = v0(v1)
        };
    end
};


local v0 = require(script.Parent.Parent.PREMIUM_FEATURES_URL);
return function(v1)
    return v1.roduxNetworking.GET({
        Name = "GetUserPremiumMembershipStatus"
    }, function(v2, v3)
        return v2(v0):path("v1"):path("users"):id(v3):path("validate-membership");
    end);
end;


local v0 = require(script.Parent.networkRequests.createGetPresencesFromUserIds);
local _ = require(script.Parent.networkingPresenceTypes);
return function(v2)
    return {
        GetPresencesFromUserIds = v0(v2)
    };
end;


local _ = require(script.networkingPresenceTypes);
return {
    config = require(script.createRequestThunks)
};


local l_Parent_0 = script.Parent.Parent;
local _ = require(l_Parent_0.networkingPresenceTypes);
local v2 = require(l_Parent_0.PRESENCE_URL);
return function(v3)
    return v3.roduxNetworking.POST({
        Name = "GetPresencesFromUserIds"
    }, function(v4, v5)
        return v4(v2):path("v1"):path("presence"):path("users"):body({
            userIds = v5
        }):setStatusIds(v5);
    end);
end;


local l_networkRequests_0 = script.Parent.networkRequests;
local v1 = require(l_networkRequests_0.createGetPresencesFromUserIds);
local v2 = require(l_networkRequests_0.createSetInvisibilityStatus);
local _ = require(script.Parent.networkingPresenceTypes);
return function(v4)
    return {
        GetPresencesFromUserIds = v1(v4),
        SetInvisibilityStatus = v2(v4)
    };
end;


local l_Parent_0 = script.Parent.Parent;
local _ = require(l_Parent_0.networkingPresenceTypes);
local v2 = require(l_Parent_0.PRESENCE_URL);
return function(v3)
    return v3.roduxNetworking.POST({
        Name = "SetInvisibilityStatus"
    }, function(v4, v5)
        return v4(v2):path("v1"):path("presence"):path("set-invisibility-status"):body({
            isInvisible = v5
        });
    end);
end;


return string.format("%s%s", require(script.Parent.buildApiSiteUrl)("apis"), "sharelinks");


local _ = require(script.Parent.networkingShareLinkTypes);
local l_networkRequests_0 = script.Parent.networkRequests;
local v2 = require(l_networkRequests_0.createGenerateLink);
local v3 = require(l_networkRequests_0.createResolveLinkFromLinkId);
return function(v4)
    return {
        ResolveLinkFromLinkId = v3(v4),
        GenerateLink = v2(v4)
    };
end;


return {
    config = require(script.createRequestThunks),
    networkingShareLinkTypes = require(script.networkingShareLinkTypes)
};


local _ = require(script.Parent.networkingSquadTypes);
local l_networkRequests_0 = script.Parent.networkRequests;
local v2 = require(l_networkRequests_0.createCreateOrJoinSquad);
local v3 = require(l_networkRequests_0.createGetSquadActive);
local v4 = require(l_networkRequests_0.createGetSquadFromSquadId);
local v5 = require(l_networkRequests_0.createJoinSquad);
local v6 = require(l_networkRequests_0.createLeaveSquad);
local v7 = require(l_networkRequests_0.createSquadInvite);
local v8 = require(l_networkRequests_0.createCreateExperienceInvite);
local v9 = require(l_networkRequests_0.createGetExperienceInvite);
local v10 = require(l_networkRequests_0.createVoteForExperienceInvite);
return function(v11)
    return {
        CreateOrJoinSquad = v2(v11),
        GetSquadActive = v3(v11),
        GetSquadFromSquadId = v4(v11),
        JoinSquad = v5(v11),
        LeaveSquad = v6(v11),
        SquadInvite = v7(v11),
        CreateExperienceInvite = v8(v11),
        GetExperienceInvite = v9(v11),
        VoteForExperienceInvite = v10(v11)
    };
end;


return {
    config = require(script.createRequestThunks),
    networkingSquadTypes = require(script.networkingSquadTypes)
};


local l_Parent_0 = script.Parent;
local l_networkRequests_0 = l_Parent_0.networkRequests;
local v2 = require(l_networkRequests_0.createGetUserSettings);
local v3 = require(l_networkRequests_0.createUpdateUserSettings);
local v4 = require(l_networkRequests_0.createGetUserSettingsMetadata);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
return function(v6)
    return {
        GetUserSettings = v2(v6),
        UpdateUserSettings = v3(v6),
        GetUserSettingsMetadata = v4(v6)
    };
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.API_URL);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
return function(v3)
    return v3.roduxNetworking.GET(script, function(v4, v5)
        return v4(v1):path("user-settings-api"):path("v1"):path("user-settings"):queryArgs(v5);
    end);
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.API_URL);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
return function(v3)
    return v3.roduxNetworking.GET(script, function(v4)
        return v4(v1):path("user-settings-api"):path("v1"):path("user-settings"):path("metadata");
    end);
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.API_URL);
local _ = require(l_Parent_0.Types.networkRequestsTypes);
return function(v3)
    return v3.roduxNetworking.POST(script, function(v4, v5)
        return v4(v1):path("user-settings-api"):path("v1"):path("user-settings"):body(v5);
    end);
end;


local l_networkRequests_0 = script.Parent.networkRequests;
local v1 = require(l_networkRequests_0.createGetSkinnyUsersFromUserIds);
local v2 = require(l_networkRequests_0.createGetUsernameHistoryFromUserId);
local v3 = require(l_networkRequests_0.createGetUserV2FromUserId);
local v4 = require(l_networkRequests_0.createGetDisplayNameValidation);
local v5 = require(l_networkRequests_0.createSetDisplayName);
local v6 = require(l_networkRequests_0.createSetDescription);
return function(v7)
    return {
        GetSkinnyUsersFromUserIds = v1(v7),
        GetUsernameHistoryFromUserId = v2(v7),
        GetUserV2FromUserId = v3(v7),
        GetDisplayNameValidation = v4(v7),
        SetDisplayName = v5(v7),
        SetDescription = v6(v7)
    };
end;


local v0 = require(script.Parent.Parent.USERS_URL);
return function(v1)
    return v1.roduxNetworking.GET({
        Name = "GetDisplayNameValidation"
    }, function(v2, v3, v4)
        return v2(v0):path("v1"):path("users"):id(v3):path("display-names"):path("validate"):queryArgs({
            displayName = v4
        });
    end);
end;


local v0 = require(script.Parent.Parent.USERS_URL);
return function(v1)
    return v1.roduxNetworking.POST({
        Name = "GetSkinnyUsersFromUserIds"
    }, function(v2, v3)
        return v2(v0):path("v1"):path("users"):body({
            userIds = v3
        });
    end);
end;


local v0 = require(script.Parent.Parent.USERS_URL);
return function(v1)
    return v1.roduxNetworking.GET({
        Name = "GetUserV2FromUserId"
    }, function(v2, v3)
        return v2(v0):path("v1"):path("users"):id(v3);
    end);
end;


local v0 = require(script.Parent.Parent.USERS_URL);
return function(v1)
    return v1.roduxNetworking.GET({
        Name = "GetUsernameHistoryFromUserId"
    }, function(v2, v3)
        return v2(v0):path("v1"):path("users"):id(v3):path("username-history");
    end);
end;


local v0 = require(script.Parent.Parent.USERS_URL);
return function(v1)
    return v1.roduxNetworking.POST({
        Name = "SetDescription"
    }, function(v2, v3, v4)
        return v2(v0, {
            LocalUserId = v3
        }):path("v1"):path("description"):body({
            description = v4
        });
    end);
end;


local v0 = require(script.Parent.Parent.USERS_URL);
return function(v1)
    return v1.roduxNetworking.PATCH({
        Name = "SetDisplayName"
    }, function(v2, v3, v4)
        return v2(v0):path("v1"):path("users"):id(v3):path("display-names"):body({
            newDisplayName = v4
        });
    end);
end;


return function(v0, ...)
    for v1 = 1, select("#", ...) do
        for v2, v3 in pairs((select(v1, ...))) do
            v0[v2] = v3;
        end;
    end;
    return v0;
end;


local l_RunService_0 = game:GetService("RunService");
local v1 = require(script.Parent.assign);
local v2 = require(script.Parent.createSignal);
local v3 = {
    prototype = {}
};
v3.__index = v3.prototype;
local function v9(v4)
    assert(typeof(v4) == "table");
    local v5 = {};
    for v6, v7 in pairs(v4) do
        v5[v6] = {
            value = v7,
            complete = true
        };
    end;
    local v8 = {
        __goals = {},
        __states = v5,
        __allComplete = true,
        __onComplete = v2(),
        __onStep = v2(),
        __running = false
    };
    setmetatable(v8, v3);
    return v8;
end;
v3.prototype.start = function(v10)
    if not v10.__running then
        v10.__connection = l_RunService_0.Heartbeat:Connect(function(v11)
            v10:step(v11);
        end);
        v10.__running = true;
        return ;
    else
        return ;
    end;
end;
v3.prototype.stop = function(v12)
    if v12.__connection ~= nil then
        v12.__connection:Disconnect();
        v12.__running = false;
    end;
end;
v3.prototype.step = function(v13, v14)
    assert(typeof(v14) == "number");
    if not v13.__allComplete then
        local v15 = true;
        local v16 = {};
        for v17, v18 in pairs(v13.__states) do
            if not v18.complete then
                local v19 = v13.__goals[v17];
                if v19 ~= nil then
                    local v20 = v19:step(v18, v14);
                    if v20 ~= nil then
                        v18 = v20;
                        v13.__states[v17] = v20;
                    end;
                else
                    v18.complete = true;
                end;
                if not v18.complete then
                    v15 = false;
                end;
            end;
            v16[v17] = v18.value;
        end;
        local l___allComplete_0 = v13.__allComplete;
        v13.__allComplete = v15;
        v13.__onStep:fire(v16);
        if not ((not v13.__allComplete or l___allComplete_0) or not v13.__running) then
            v13:stop();
            v13.__onComplete:fire(v16);
        end;
        return ;
    else
        return ;
    end;
end;
v3.prototype.setGoal = function(v22, v23)
    assert(typeof(v23) == "table");
    v22.__goals = v1({}, v22.__goals, v23);
    for v24 in pairs(v23) do
        local v25 = v22.__states[v24];
        if v25 == nil then
            error(("Cannot set goal for the value %s because it doesn't exist"):format((tostring(v24))), 2);
        end;
        v25.complete = false;
    end;
    v22.__allComplete = false;
    v22:start();
end;
v3.prototype.onStep = function(v26, v27)
    assert(typeof(v27) == "function");
    return v26.__onStep:subscribe(v27);
end;
v3.prototype.onComplete = function(v28, v29)
    assert(typeof(v29) == "function");
    return v28.__onComplete:subscribe(v29);
end;
v3.prototype.destroy = function(v30)
    v30:stop();
end;
return v9;


local function _(v0, v1, v2)
    local v3 = {};
    for v4, v5 in pairs(v0) do
        v3[v4] = v5;
    end;
    v3[v1] = v2;
    return v3;
end;
local function _(v7, v8)
    local v9 = {};
    for v10, v11 in pairs(v7) do
        if v10 ~= v8 then
            v9[v10] = v11;
        end;
    end;
    return v9;
end;
return function()
    local v13 = {};
    return {
        subscribe = function(_, v15)
            assert(typeof(v15) == "function", "Can only subscribe to signals with a function.");
            local v16 = {
                callback = v15
            };
            local l_v13_0 = v13;
            local v18 = {};
            for v19, v20 in pairs(l_v13_0) do
                v18[v19] = v20;
            end;
            v18[v15] = v16;
            v13 = v18;
            return function()
                assert(not v16.disconnected, "Listeners can only be disconnected once.");
                v16.disconnected = true;
                local l_v13_1 = v13;
                local l_v15_0 = v15;
                local v23 = {};
                for v24, v25 in pairs(l_v13_1) do
                    if v24 ~= l_v15_0 then
                        v23[v24] = v25;
                    end;
                end;
                v13 = v23;
            end;
        end,
        fire = function(_, ...)
            for v27, v28 in pairs(v13) do
                if not v28.disconnected then
                    v27(...);
                end;
            end;
        end
    };
end;


local l_RunService_0 = game:GetService("RunService");
local v1 = require(script.Parent.createSignal);
local v2 = {
    prototype = {}
};
v2.__index = v2.prototype;
local function v5(v3)
    assert(typeof(v3) == "number");
    local v4 = {
        __goal = nil,
        __state = {
            value = v3,
            complete = true
        },
        __onComplete = v1(),
        __onStep = v1(),
        __running = false
    };
    setmetatable(v4, v2);
    return v4;
end;
v2.prototype.start = function(v6)
    if not v6.__running then
        v6.__connection = l_RunService_0.Heartbeat:Connect(function(v7)
            v6:step(v7);
        end);
        v6.__running = true;
        return ;
    else
        return ;
    end;
end;
v2.prototype.stop = function(v8)
    if v8.__connection ~= nil then
        v8.__connection:Disconnect();
    end;
    v8.__running = false;
end;
v2.prototype.step = function(v9, v10)
    assert(typeof(v10) == "number");
    if not v9.__state.complete then
        if v9.__goal == nil then
            return ;
        else
            local v11 = v9.__goal:step(v9.__state, v10);
            if v11 ~= nil then
                v9.__state = v11;
            end;
            v9.__onStep:fire(v9.__state.value);
            if not (not v9.__state.complete or not v9.__running) then
                v9:stop();
                v9.__onComplete:fire(v9.__state.value);
            end;
            return ;
        end;
    else
        return ;
    end;
end;
v2.prototype.setGoal = function(v12, v13)
    v12.__goal = v13;
    v12.__state.complete = false;
    v12:start();
end;
v2.prototype.onStep = function(v14, v15)
    assert(typeof(v15) == "function");
    return v14.__onStep:subscribe(v15);
end;
v2.prototype.onComplete = function(v16, v17)
    assert(typeof(v17) == "function");
    return v16.__onComplete:subscribe(v17);
end;
v2.prototype.destroy = function(v18)
    v18:stop();
end;
return v5;