local E=require(script.Parent.Parent.None)local s=require(script.Parent.copyDeep)local function c(...)local H={}local l=1 for K=1,select("\035",...),1 do local N=select(K,...)for K=1,#N,1 do if type(N[K])=="\116\097\098\108\101"then if H[l]==nil or type(H[l]~="\116\097\098\108\101")then H[l]=s(N[K])else H[l]=c(H[l],N[K])end elseif N[K]~=E then H[l]=N[K]end l=l+1 end end return H end return c

local None = require(script.Parent.Parent.None)
local copyDeep = require(script.Parent.copyDeep)

local function joinDeep(...)
	local new = {}

	local index = 1

	for listIndex = 1, select("#", ...) do
		local list = select(listIndex, ...)

		for i = 1, #list do
			if type(list[i]) == "table" then
				if new[index] == nil or type(new[index] ~= "table") then
					new[index] = copyDeep(list[i])
				else
					new[index] = joinDeep(new[index], list[i])
				end
			elseif list[i] ~= None then
				new[index] = list[i]
			end

			index = index + 1
		end
	end

	return new
end

return joinDeep