local l={}local c=CFrame.new local g={}local A=require(script.Easing)for l,n in pairs(A)do g[l]=function(g,n,Y,i,...)local s,T,L,D,r,E,I,e,w,M,m,S=g:GetComponents()local q,b,F,O,U,N,a,R,y,o,t,B=n:GetComponents()return c(A[l](Y,s,q-s,i,...),A[l](Y,T,b-T,i,...),A[l](Y,L,F-L,i,...),A[l](Y,D,O-D,i,...),A[l](Y,r,U-r,i,...),A[l](Y,E,N-E,i,...),A[l](Y,I,a-I,i,...),A[l](Y,e,R-e,i,...),A[l](Y,w,y-w,i,...),A[l](Y,M,o-M,i,...),A[l](Y,m,t-m,i,...),A[l](Y,S,B-S,i,...))end end return g


local comps = {}

local cf = CFrame.new

local CFrameEasing = {}

local easing = require(script.Easing)

for key, val in pairs(easing) do
	CFrameEasing[key] = function(b, g, t, d, ...)	
		local bX, bY, bZ, bR00, bR01, bR02, bR10, bR11, bR12, bR20, bR21, bR22 = b:GetComponents()
		local gX, gY, gZ, gR00, gR01, gR02, gR10, gR11, gR12, gR20, gR21, gR22 = g:GetComponents()
		return cf(
			easing[key](t, bX, gX - bX, d, ...), easing[key](t, bY, gY - bY, d, ...), easing[key](t, bZ, gZ - bZ, d, ...),		--X, Y, Z
			easing[key](t, bR00, gR00 - bR00, d, ...), easing[key](t, bR01, gR01 - bR01, d, ...), easing[key](t, bR02, gR02 - bR02, d, ...),		--number R00, number R01, number R02
			easing[key](t, bR10, gR10 - bR10, d, ...), easing[key](t, bR11, gR11 - bR11, d, ...), easing[key](t, bR12, gR12 - bR12, d, ...),		--number R10, number R11, number R12
			easing[key](t, bR20, gR20 - bR20, d, ...), easing[key](t, bR21, gR21 - bR21, d, ...), easing[key](t, bR22, gR22 - bR22, d, ...)		--number R20, number R21, number R22
		)
	end	
end

return CFrameEasing
