local U=math.rad(-80)local I=math.rad(80)local s=math.rad(30)local Q=math.rad(-15)local C=2.1 local n=.5 local d=math.rad(15)local y=Vector2.new(math.rad(15),0)local l=Vector2.new(math.rad(45),0)local o=.1 local Y=.4 local N=Vector2.new(0,0)local Z=Vector3.new(0,0,0)local t=Vector2.new(.00945*math.pi,.003375*math.pi)local B=Vector2.new(.002*math.pi,.0015*math.pi)local X=Vector3.new(0,5,0)local E=Vector3.new(0,4,0)local R=Vector3.new(0,1.5,0)local D=Vector3.new(0,1.5,0)local w=Vector3.new(0,2,0)local x=Vector3.new(2,2,1)local H=0 local k=10 local P=20 local e=20 local O=.5 local z=math.abs local c=math.sign local A do local U,I=pcall(function()return(UserSettings()):IsUserFeatureEnabled("\085\115\101\114\067\097\109\101\114\097\084\111\103\103\108\101")end)A=U and I end local J do local U,I=pcall(function()return(UserSettings()):IsUserFeatureEnabled("\085\115\101\114\070\105\120\090\111\111\109\073\110\090\111\111\109\079\117\116\068\105\115\099\114\101\112\097\110\099\121")end)J=U and I end local m do local U,I=pcall(function()return(UserSettings()):IsUserFeatureEnabled("\085\115\101\114\070\105\120\071\097\109\101\112\097\100\067\097\109\101\114\097\084\114\097\099\107\105\110\103")end)m=U and I end local r=require(script.Parent:WaitForChild("\067\097\109\101\114\097\085\116\105\108\115"))local g=require(script.Parent:WaitForChild("\090\111\111\109\067\111\110\116\114\111\108\108\101\114"))local K=require(script.Parent:WaitForChild("\067\097\109\101\114\097\084\111\103\103\108\101\083\116\097\116\101\067\111\110\116\114\111\108\108\101\114"))local h=require(script.Parent:WaitForChild("\067\097\109\101\114\097\073\110\112\117\116"))local u=require(script.Parent:WaitForChild("\067\097\109\101\114\097\085\073"))

local MIN_Y = math.rad(-80)
local MAX_Y = math.rad(80)

local TOUCH_ADJUST_AREA_UP = math.rad(30)
local TOUCH_ADJUST_AREA_DOWN = math.rad(-15)

local TOUCH_SENSITIVTY_ADJUST_MAX_Y = 2.1
local TOUCH_SENSITIVTY_ADJUST_MIN_Y = 0.5

local VR_ANGLE = math.rad(15)
local VR_LOW_INTENSITY_ROTATION = Vector2.new(math.rad(15), 0)
local VR_HIGH_INTENSITY_ROTATION = Vector2.new(math.rad(45), 0)
local VR_LOW_INTENSITY_REPEAT = 0.1
local VR_HIGH_INTENSITY_REPEAT = 0.4

local ZERO_VECTOR2 = Vector2.new(0,0)
local ZERO_VECTOR3 = Vector3.new(0,0,0)

local TOUCH_SENSITIVTY = Vector2.new(0.00945 * math.pi, 0.003375 * math.pi)
local MOUSE_SENSITIVITY = Vector2.new( 0.002 * math.pi, 0.0015 * math.pi )

local SEAT_OFFSET = Vector3.new(0,5,0)
local VR_SEAT_OFFSET = Vector3.new(0,4,0)
local HEAD_OFFSET = Vector3.new(0,1.5,0)
local R15_HEAD_OFFSET = Vector3.new(0, 1.5, 0)
local R15_HEAD_OFFSET_NO_SCALING = Vector3.new(0, 2, 0)
local HUMANOID_ROOT_PART_SIZE = Vector3.new(2, 2, 1)

local GAMEPAD_ZOOM_STEP_1 = 0
local GAMEPAD_ZOOM_STEP_2 = 10
local GAMEPAD_ZOOM_STEP_3 = 20

local PAN_SENSITIVITY = 20
local ZOOM_SENSITIVITY_CURVATURE = 0.5

local abs = math.abs
local sign = math.sign

local FFlagUserCameraToggle do
	local success, result = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserCameraToggle")
	end)
	FFlagUserCameraToggle = success and result
end

local FFlagUserFixZoomInZoomOutDiscrepancy do
	local success, result = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserFixZoomInZoomOutDiscrepancy")
	end)
	FFlagUserFixZoomInZoomOutDiscrepancy = success and result
end

local FFlagUserFixGamepadCameraTracking do
	local success, result = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserFixGamepadCameraTracking")
	end)
	FFlagUserFixGamepadCameraTracking = success and result
end

local Util = require(script.Parent:WaitForChild("CameraUtils"))
local ZoomController = require(script.Parent:WaitForChild("ZoomController"))
local CameraToggleStateController = require(script.Parent:WaitForChild("CameraToggleStateController"))
local CameraInput = require(script.Parent:WaitForChild("CameraInput"))
local CameraUI = require(script.Parent:WaitForChild("CameraUI"))
