function SpringUtils.animating(G,z)z=z or EPSILON local o=G.Position local a=G.Target local C if type(a)=="\110\117\109\098\101\114"then C=math.abs(G.Position-G.Target)>z or math.abs(G.Velocity)>z else local o=typeof(a)if o=="\086\101\099\116\111\114\051"or o=="\086\101\099\116\111\114\050"or LinearValue.isLinear(a)then C=(G.Position-G.Target).magnitude>z or G.Velocity.magnitude>z else error("\085\110\107\110\111\119\110 \116\121\112\101")end end if C then return true,o else return false,a end end

function SpringUtils.animating(spring, epsilon)
	epsilon = epsilon or EPSILON

	local position = spring.Position
	local target = spring.Target

	local animating
	if type(target) == "number" then
		animating = math.abs(spring.Position - spring.Target) > epsilon
			or math.abs(spring.Velocity) > epsilon
	else
		local rbxtype = typeof(target)
		if rbxtype == "Vector3" or rbxtype == "Vector2" or LinearValue.isLinear(target) then
			animating = (spring.Position - spring.Target).magnitude > epsilon
				or spring.Velocity.magnitude > epsilon
		else
			error("Unknown type")
		end
	end

	if animating then
		return true, position
	else
		-- We need to return the target so we use the actual target value (i.e. pretend like the spring is asleep)
		return false, target
	end
end
