local E=require(script.Parent.Parent.equalObjects)local function s(E,c)if type(E)=="\116\097\098\108\101"and type(c)=="\116\097\098\108\101"then for H=1,#E,1 do if not s(E[H],c[H])then return false end end else if E~=c then return false end end return true end local function c(...)if E(...)then return true end local c=select("\035",...)for E=1,c,1 do local H=select(E,...)for c=1,c,1 do if c~=E then local E=select(c,...)if not s(H,E)then return false end end end end return true end return c

local equalObjects = require(script.Parent.Parent.equalObjects)

local function equalsDeepOneWay(object, comparison)
	if type(object) == "table" and type(comparison) == "table" then
		for i = 1, #object do
			if not equalsDeepOneWay(object[i], comparison[i]) then
				return false
			end
		end
	else
		if object ~= comparison then
			return false
		end
	end

	return true
end

local function equalsDeep(...)
	if equalObjects(...) then
		return true
	end

	local argc = select('#', ...)

	for i = 1, argc do
		local dictionary = select(i, ...)

		for j = 1, argc do
			if j ~= i then
				local compare = select(j, ...)
				
				if not equalsDeepOneWay(dictionary, compare) then
					return false
				end
			end
		end
	end

	return true
end

return equalsDeep