Response:
if 	script.Parent.Parent.Parent.IsOn.Value then
	script.Parent.Parent:TweenPosition(UDim2.new(0, 200, 0, 0),Enum.EasingDirection.InOut,Enum.EasingStyle.Quad,1,true)
end

script.Parent.Parent.Parent.IsOn.Changed:connect(function()
	if script.Parent.Parent.Parent.IsOn.Value then
		script.Parent.Parent:TweenPosition(UDim2.new(0, 200, 0, 0),Enum.EasingDirection.InOut,Enum.EasingStyle.Quad,1,true)
	end
end)

	local handler = car.Taxi

	script.Parent.MouseButton1Click:connect(function()
		if car.Body.Taxi.F.L.L.Enabled == false then
			handler:FireServer("Lights",1)
			script.Parent.BackgroundColor3 = Color3.new(0,255/255,0)
			script.Parent.TextStrokeColor3 = Color3.new(0,255/255,0)
			for index, child in pairs(car.Body.Taxi.F:GetChildren()) do
			child.Material = Enum.Material.Neon
			child.L.Enabled = true
			end
		elseif car.Body.Taxi.F.L.L.Enabled == true then
			handler:FireServer("Lights",0)
			script.Parent.BackgroundColor3 = Color3.new(0,0,0)
			script.Parent.TextStrokeColor3 = Color3.new(0,0,0)
			for index, child in pairs(car.Body.Taxi.F:GetChildren()) do
			child.Material = Enum.Material.SmoothPlastic
			child.L.Enabled = false
			end
		end
	end)


Prompt: -- How rare the weapon is and how hard it is to get.

Response:
if _M.DropsWeapon2 == true and DropChance == (_M.WeaponChance2) then -- If the correct value is pulled, enable the item to be dropped
	Enemy.Died:Connect(DropItem) -- Drop item if dead
end


Prompt:
-- Implements Javascript's `Map.prototype.forEach` as defined below
-- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach

Response:
function Map:forEach(callback: mapCallbackFn<any, any> | mapCallbackFnWithThisArg<any, any>, thisArg: Object?): ()
	if _G.__DEV__ then
		if typeof(callback) ~= "function" then
			error("callback is not a function")
		end
	end
	-- note: we can't turn this into a simple for-in loop, because the callbacks can modify the table and React, GQL, and Jest rely on JS behavior in that scenario
	arrayForEach(self._array, function(key)
		local value = self._map[key]

		if thisArg ~= nil then
			(callback :: mapCallbackFnWithThisArg<any, any>)(thisArg, value, key, self)
		else
			(callback :: mapCallbackFn<any, any>)(value, key, self)
		end
	end)
end

function Map:has(key): boolean
	return self._map[key] ~= nil
end

function Map:keys()
	return self._array
end

function Map:values()
	return arrayMap(self._array, function(key)
		return self._map[key]
	end)
end

function Map:entries()
	return arrayMap(self._array, function(key)
		return { key, self._map[key] }
	end)
end

function Map:ipairs()
	if _G.__DEV__ then
		warn(
			debug.traceback(
				"`for _,_ in myMap:ipairs() do` is deprecated and will be removed in a future release, please use `for _,_ in myMap do` instead\n",
				2
			)
		)
	end
	return ipairs(self:entries())
end

function Map.__iter(self)
	return next, self:entries()
end

function Map.__index(self, key)
	local mapProp = rawget(Map, key)
	if mapProp ~= nil then
		return mapProp
	end

	return Map.get(self, key)
end

function Map.__newindex(table_, key, value)
	table_:set(key, value)
end

return Map


Prompt: --Script

Response:
feedbackMain.CharactersLeft.Text = maxCharacters - #feedbackMain.InputBox.Input.Text
feedbackMain.InputBox.Input.Changed:Connect(function()
	feedbackMain.CharactersLeft.Text = maxCharacters - #feedbackMain.InputBox.Input.Text
	if maxCharacters - #feedbackMain.InputBox.Input.Text < 0 then
		feedbackMain.CharactersLeft.TextColor3 = Color3.fromRGB(255,50,50)
		feedbackMain.SendButton.Style = Enum.ButtonStyle.RobloxRoundButton
	else
		feedbackMain.CharactersLeft.TextColor3 = Color3.fromRGB(255,255,255)
		feedbackMain.SendButton.Style = Enum.ButtonStyle.RobloxRoundDefaultButton
	end
end)

local db = false
feedbackMain.SendButton.MouseButton1Click:Connect(function()
	if not db and maxCharacters - #feedbackMain.InputBox.Input.Text >= 0 then
		db = true
		local msg = feedbackMain.InputBox.Input.Text
		feedbackMain.InputBox.Input.Text = "Sending Message..."
		local response = game.ReplicatedStorage.FilteringFunction:InvokeServer(msg)
		feedbackMain.InputBox.Input.Text = response
		wait(5)
		if feedbackMain.InputBox.Input.Text == response then
			feedbackMain.InputBox.Input.Text = "Type feedback/bug report here"
		end
		db = false
	end
end)

script.Parent.Button.MouseButton1Click:Connect(function()
	open = not open
	if open then
		feedbackMain:TweenPosition(UDim2.new(1,-300,1,-300),"Out","Quint",0.3,true)
	else
		feedbackMain:TweenPosition(UDim2.new(1,100,1,-300),"Out","Quint",0.3,true)
	end
end)


Prompt: -- Etc

Response:
local DESTROY_ON_DEATH = getValueFromConfig("DestroyOnDeath")
local RAGDOLL_ENABLED = getValueFromConfig("RagdollEnabled")

local DEATH_DESTROY_DELAY = 5
local PATROL_WALKSPEED = 12
local MIN_REPOSITION_TIME = 2
local MAX_REPOSITION_TIME = 10
local MAX_PARTS_PER_HEARTBEAT = 50
local SEARCH_DELAY = 1


Prompt: --//Functions

Response:
local function JumpEffect(jumpingChar)
	local platform = oriPlatform:Clone()
	platform.CFrame = (jumpingChar.PrimaryPart.CFrame-Vector3.new(0,hum.HipHeight/2,0))*CFrame.Angles(0,0,math.rad(90))
	platform.Parent = workspace

	tween:Create(platform, TweenInfo.new(0.5), {Size = Vector3.new(0.2, 10, 10)}):Play()
	tween:Create(platform, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.In), {Transparency = 1}):Play()
	tween:Create(platform.Decal, TweenInfo.new(0.5), {Transparency = 1}):Play()
	wait(0.8)
	platform:Destroy()
end


Prompt: --[[Transmission]]

Response:
	Tune.TransModes		= {"Manual"}												--[[
	[Modes]
		"Auto"		: Automatic shifting
		"Semi"		: Clutchless manual shifting, dual clutch transmission
		"Manual"	: Manual shifting with clutch

		>Include within brackets
			eg: {"Semi"} or {"Auto", "Manual"}
		>First mode is default mode													]]

	--Automatic Settings
	Tune.AutoShiftMode	= "RPM"												--[[
	[Modes]
		"Speed"		: Shifts based on wheel speed
		"RPM"		: Shifts based on RPM											]]
	Tune.AutoUpThresh	= -200		-- Automatic upshift point 	(relative to peak RPM, positive = Over-rev)
	Tune.AutoDownThresh = 1400		-- Automatic downshift point (relative to peak RPM, positive = Under-rev)
	Tune.ShiftTime = .3				-- The time delay in which you initiate a shift and the car changes gear

	--Gear Ratios

	Tune.FinalDrive		= 3.45		 --		[TRANSMISSION CALCULATIONS FOR NERDS]
	Tune.Ratios			= {			 --		SPEED [SPS]	 = (Wheel diameter(studs) * math.pi * RPM) / (60 * Gear Ratio * Final Drive * Multiplier)
		--[[ R ]]		3.3		    ,-- 	WHEEL TORQUE = Engine Torque * Gear Ratio * Final Drive * Multiplier
		--[[ N ]]		0			,
		--[[ 1 ]]		16.6 		,
		--[[ 2 ]]		11.2		,
		--[[ 3 ]]		6.7 		,
	    --[[ 4 ]]       4.5         ,
	    --[[ 5 ]]       3.5         ,
	}
	Tune.FDMult			= 1			-- Ratio multiplier (keep this at 1 if car is not struggling with torque)


Prompt: --\\Main//--

Response:
for Number, Instance in pairs(game.Workspace:GetChildren()) do
	if Instance:IsA("Part") and Instance.Name == "Union" or "Pipe Part" or "Pipe" then
		Instance.Touched:Connect(function(Hit)
			local Player = PlayerService:GetPlayerFromCharacter(Hit.Parent)
			if not Player then return end
			Player.Character:FindFirstChild("Humanoid").Sit = true
		end)
	end
end


Prompt: --// F key, Horn

Response:
UserInputService.InputEnded:Connect(function(input,gameprocessedevent)
	if gameprocessedevent == false then
		if input.KeyCode ==  Enum.KeyCode.F then
			event:FireServer("HornOff")
		end
	end
end)


Prompt: --// Positioning

Response:
	RightArmPos = CFrame.new(-0.902175903, 0.295501232, -1.32277012, 1, 0, 0, 0, 1.19248806e-08, 1, 0, -1, 1.19248806e-08);
	LeftArmPos = CFrame.new(0.805950999, 0.654529691, -1.92835343, 0.787567914, -0.220087856, 0.575584888, -0.615963876, -0.308488727, 0.724860668, 0.0180283934, -0.925416589, -0.378522098);
	GunPos = CFrame.new(0.284460306, -0.318524063, 1.06423128, 1, 0, 0, 0, -2.98023224e-08, -0.99999994, 0, 0.99999994, -2.98023224e-08);

	}

return Settings


Prompt: --end

Response:
end
end

function ToogleLock(status)
for i,v in pairs(Car:GetDescendants()) do
if v.ClassName == "VehicleSeat" or v.ClassName == "Seat" then
v.Disabled = status
end
end
end


Prompt: --DO NOT CHANGE ANYTHING INSIDE OF THIS SCRIPT BESIDES WHAT YOU ARE TOLD TO UNLESS YOU KNOW WHAT YOU'RE DOING OR THE SCRIPT WILL NOT WORK!!

Response:
local hitPart = script.Parent
local debounce = true
local tool = game.ServerStorage.Flies


Prompt:
--created by
------------------------------------------
--Clear And Enter

Response:
function Clear()
	print("Cleared")
	script.Parent.B0.ClickS:Play()
Input = ""
end

script.Parent.Clear.ClickDetector.MouseClick:connect(Clear)

function Enter()
if Input == Code then
print("Entered")
Input = ""

		local door = script.Parent.Parent.Door
		local decal1 = script.Parent.Parent.Door.TEX1
		local decal2 = script.Parent.Parent.Door.TEX2

		door.CanCollide = false
		 decal1.Transparency = decal1.Transparency + .1
		decal2.Transparency = decal2.Transparency + .1
		-- OPENING SOUND --
		script.Parent.Parent.Door.OPEN:Play()
door.Transparency = door.Transparency + 0.1
		wait(TIEMPO)
	 	 decal1.Transparency = decal1.Transparency + .1
		  decal2.Transparency = decal2.Transparency + .1
door.Transparency = door.Transparency + 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency + .1
		  decal2.Transparency = decal2.Transparency + .1
door.Transparency = door.Transparency + 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency + .1
		  decal2.Transparency = decal2.Transparency + .1
door.Transparency = door.Transparency + 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency + .1
		  decal2.Transparency = decal2.Transparency + .1
door.Transparency = door.Transparency + 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency + .1
		  decal2.Transparency = decal2.Transparency + .1
door.Transparency = door.Transparency + 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency + .1
		  decal2.Transparency = decal2.Transparency + .1
door.Transparency = door.Transparency + 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency + .1
		  decal2.Transparency = decal2.Transparency + .1
door.Transparency = 0.8
		wait(3)
		-- CLOSING SOUND --
		script.Parent.Parent.Door.CLOSE:Play()
		 decal1.Transparency = decal1.Transparency - .1
		  decal2.Transparency = decal2.Transparency - .1
door.Transparency = door.Transparency - 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency - .1
		  decal2.Transparency = decal2.Transparency - .1
door.Transparency = door.Transparency - 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency - .1
		  decal2.Transparency = decal2.Transparency - .1
door.Transparency = door.Transparency - 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency - .1
		  decal2.Transparency = decal2.Transparency - .1
door.Transparency = door.Transparency - 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency - .1
		  decal2.Transparency = decal2.Transparency - .1
door.Transparency = door.Transparency - 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency - .1
		  decal2.Transparency = decal2.Transparency - .1
door.Transparency = door.Transparency - 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency - .1
		  decal2.Transparency = decal2.Transparency - .1
door.Transparency = door.Transparency - 0.1
		wait(TIEMPO)
		 decal1.Transparency = decal1.Transparency - .1
		  decal2.Transparency = decal2.Transparency - .1
door.Transparency = 0
door.CanCollide = true

return end
Input = ""
	print("Wrong Code")
	if SounDebounce == true then
		SounDebounce = false
	script.Parent.B0.Wrong:Play()
	script.Parent.B0.Wrong.Ended:Wait()
		SounDebounce = true
		end

end

script.Parent.Enter.ClickDetector.MouseClick:connect(Enter)


Prompt: --// F key, Horn

Response:
mouse.KeyDown:connect(function(key)
	if key=="f" then
		veh.ELS.Sirens.AH.Transparency = 0
		veh.ELS.Siren.Airhorn:Play()
		veh.ELS.Siren2.Airhorn:Play()
		veh.ELS.Sirens.Horn.Transparency = 0
		veh.ELS.Siren.Wail.Volume = 0
		veh.ELS.Siren.Yelp.Volume = 0
		veh.ELS.Siren.Priority.Volume = 0
		veh.ELS.Siren2.Wail.Volume = 0
		veh.ELS.Siren2.Yelp.Volume = 0
		veh.ELS.Siren2.Priority.Volume = 0
	end
end)


Prompt: --// Math

Response:
local L_104_ = function(L_141_arg1, L_142_arg2, L_143_arg3)
	if L_141_arg1 > L_143_arg3 then
		return L_143_arg3
	elseif L_141_arg1 < L_142_arg2 then
		return L_142_arg2
	end
	return L_141_arg1
end

local L_105_ = L_93_.new(Vector3.new())
L_105_.s = 30
L_105_.d = 0.55

local L_106_ = CFrame.Angles(0, 0, 0)


Prompt:
-- perform the update loop
-- do the R6 update loop

Response:
stepped_con = game:GetService("RunService").RenderStepped:Connect(function()
	swaysize = script.WalkSwayMultiplier.Value

	-- checkfirstperson() checks if camera is first person and enables/disables the viewmodel accordingly
	checkfirstperson()
	-- update loop
	if isfirstperson == true then
		local modifierr = 0
		local statething = player:GetAttribute('State')
		-- make arms visible
		if larm.LocalTransparencyModifier ~= 0 then
			visiblearms(true)
		end
		-- update walk sway if we are walking
		if isrunning == true and includewalksway and humanoid:GetState() ~= Enum.HumanoidStateType.Freefall and humanoid:GetState() ~= Enum.HumanoidStateType.Landed then
			walksway = walksway:lerp(
				CFrame.new(

					(0.07*swaysize) * math.sin(tick() * (2 * humanoid.WalkSpeed/4)),
					(0.07*swaysize) * math.cos(tick() * (4 * humanoid.WalkSpeed/4)),
					0

				)*
					CFrame.Angles(

						0,
						0,
						(-.03*swaysize) * math.sin(tick() * (2 * humanoid.WalkSpeed/4))

					)
				,0.2*sensitivity)
		else
			walksway = walksway:Lerp(CFrame.new(), 0.05*sensitivity)
		end
		--
		local delta = uis:GetMouseDelta()
		--
		if includecamerasway then
			sway = sway:Lerp(Vector3.new(delta.X,delta.Y,delta.X/2), 0.1*sensitivity)
		end
		--
		if includestrafe then
			strafesway = strafesway:Lerp(CFrame.Angles(0,0,-rootpart.CFrame.rightVector:Dot(humanoid.MoveDirection)/(20/swaysize)), 0.1*sensitivity)
		end
		--
		if includejumpsway == true then
			jumpsway = jumpswaygoal.Value
		end
		-- update animation transform for viewmodel
		rightshoulderclone.Transform = rightshoulder.Transform
		leftshoulderclone.Transform = leftshoulder.Transform
		-- cframe the viewmodel

		if statething ~= nil and statething == "Crouching" and player.Character:FindFirstChildWhichIsA("Tool") then
			modifierr = 20
		end

		if statething ~= nil and statething == "Crawling" and player.Character:FindFirstChildWhichIsA("Tool") then
			modifierr = 80
		end

		local CamY, CamX, CamZ = camera.CFrame:ToEulerAnglesYXZ()

		local direction = Vector2.new(
			math.rad(player.Character.HumanoidRootPart.CFrame.RightVector:Dot((-player.Character.HumanoidRootPart.Velocity * Vector3.new(1,0,1)).Unit) * 200),
			math.rad(player.Character.HumanoidRootPart.CFrame.LookVector:Dot((-player.Character.HumanoidRootPart.Velocity * Vector3.new(1,0,1)).Unit) * 200)
		)

		local tilt = direction.Unit * math.clamp((player.Character.HumanoidRootPart.Velocity.Magnitude / 14), 0, 2)

		local firstframe = CFrame.new( Vector3.new(camera.CFrame.Position.X,camera.CFrame.Position.Y,camera.CFrame.Position.Z) ) * CFrame.fromEulerAnglesXYZ(CamY + math.rad(modifierr),0,0)
		local TorsX,TorsY,TorsZ = player.Character.Torso.CFrame.Rotation:ToEulerAnglesXYZ()
		local torsoframe = CFrame.Angles(TorsX,TorsY,TorsZ)

		local countercf = CFrame.new()

		if script.CFrameAimOffset.Value.Position.X ~= 0 or not (script.CFrameAimOffset.Value.Position.X <= 0.1) then
			--countercf = CFrame.Angles(math.rad(-tilt.Y * 3),math.rad(-tilt.X * 4),math.rad(-tilt.X * 6))
		end

		local finalcf = (CFrame.new(firstframe.Position)*torsoframe*firstframe.Rotation*walksway*jumpsway*strafesway*countercf*CFrame.Angles(math.rad(sway.Y*swaysize),math.rad(sway.X*swaysize)/10,math.rad(sway.Z*swaysize)/2))+(camera.CFrame.UpVector*(-1.7-(headoffset.Y+(aimoffset.Value.Y))))+(camera.CFrame.LookVector*(headoffset.Z+(aimoffset.Value.Z)))+(camera.CFrame.RightVector*(-headoffset.X-(aimoffset.Value.X)+(-(sway.X*swaysize)/75)))

		local builtcf = finalcf * script.CFrameAimOffset.Value:Inverse()

		viewmodel:SetPrimaryPartCFrame(builtcf)
	end
end)


Prompt: -- TOGGLEABLE METHODS

Response:
function Icon:setLabel(text, iconState)
	text = text or ""
	self:set("iconText", text, iconState)
	return self
end

function Icon:setCornerRadius(scale, offset, iconState)
	local oldCornerRadius = self.instances.iconCorner.CornerRadius
	local newCornerRadius = UDim.new(scale or oldCornerRadius.Scale, offset or oldCornerRadius.Offset)
	self:set("iconCornerRadius", newCornerRadius, iconState)
	return self
end

function Icon:setImage(imageId, iconState)
	local textureId = (tonumber(imageId) and "http://www.roblox.com/asset/?id="..imageId) or imageId or ""
	return self:set("iconImage", textureId, iconState)
end

function Icon:setOrder(order, iconState)
	local newOrder = tonumber(order) or 1
	return self:set("order", newOrder, iconState)
end

function Icon:setLeft(iconState)
	return self:set("alignment", "left", iconState)
end

function Icon:setMid(iconState)
	return self:set("alignment", "mid", iconState)
end

function Icon:setRight(iconState)
	return self:set("alignment", "right", iconState)
end

function Icon:setImageYScale(YScale, iconState)
	local newYScale = tonumber(YScale) or 0.63
	return self:set("iconImageYScale", newYScale, iconState)
end

function Icon:setImageRatio(ratio, iconState)
	local newRatio = tonumber(ratio) or 1
	return self:set("iconImageRatio", newRatio, iconState)
end

function Icon:setLabelYScale(YScale, iconState)
	local newYScale = tonumber(YScale) or 0.45
	return self:set("iconLabelYScale", newYScale, iconState)
end

function Icon:setBaseZIndex(ZIndex, iconState)
	local newBaseZIndex = tonumber(ZIndex) or 1
	return self:set("baseZIndex", newBaseZIndex, iconState)
end

function Icon:_updateBaseZIndex(baseValue)
	local container = self.instances.iconContainer
	local newBaseValue = tonumber(baseValue) or container.ZIndex
	local difference = newBaseValue - container.ZIndex
	if difference == 0 then return "The baseValue is the same" end
	for _, object in pairs(self.instances) do
		object.ZIndex = object.ZIndex + difference
	end
	return true
end

function Icon:setSize(XOffset, YOffset, iconState)
	local newXOffset = tonumber(XOffset) or 32
	local newYOffset = tonumber(YOffset) or newXOffset
	self:set("forcedIconSize", UDim2.new(0, newXOffset, 0, newYOffset), iconState)
	self:set("iconSize", UDim2.new(0, newXOffset, 0, newYOffset), iconState)
	return self
end

function Icon:_updateIconSize(_, iconState)
	if self._destroyed then return end
	-- This is responsible for handling the appearance and size of the icons label and image, in additon to its own size
	local X_MARGIN = 12
	local X_GAP = 8

	local values = {
		iconImage = self:get("iconImage", iconState) or "_NIL",
		iconText = self:get("iconText", iconState) or "_NIL",
		iconSize = self:get("iconSize", iconState) or "_NIL",
		forcedIconSize = self:get("forcedIconSize", iconState) or "_NIL",
		iconImageYScale = self:get("iconImageYScale", iconState) or "_NIL",
		iconImageRatio = self:get("iconImageRatio", iconState) or "_NIL",
		iconLabelYScale = self:get("iconLabelYScale", iconState) or "_NIL",
	}
	for k,v in pairs(values) do
		if v == "_NIL" then
			return
		end
	end

	local iconContainer = self.instances.iconContainer
	local iconLabel = self.instances.iconLabel
	if not iconContainer.Parent then return end

	-- We calculate the cells dimensions as apposed to reading because there's a possibility the cells dimensions were changed at the exact time and have not yet updated
	-- this essentially saves us from waiting a heartbeat which causes additonal complications
	local cellSizeXOffset = values.iconSize.X.Offset
	local cellSizeXScale = values.iconSize.X.Scale
	local cellWidth = cellSizeXOffset + (cellSizeXScale * iconContainer.Parent.AbsoluteSize.X)
	local minCellWidth = values.forcedIconSize.X.Offset--cellWidth
	local maxCellWidth = (cellSizeXScale > 0 and cellWidth) or 9999
	local cellSizeYOffset = values.iconSize.Y.Offset
	local cellSizeYScale = values.iconSize.Y.Scale
	local cellHeight = cellSizeYOffset + (cellSizeYScale * iconContainer.Parent.AbsoluteSize.Y)
	local labelHeight = cellHeight * values.iconLabelYScale
	local labelWidth = textService:GetTextSize(values.iconText, labelHeight, iconLabel.Font, Vector2.new(10000, labelHeight)).X
	local imageWidth = cellHeight * values.iconImageYScale * values.iconImageRatio

	local usingImage = values.iconImage ~= ""
	local usingText = values.iconText ~= ""
	local notifPosYScale = 0.5
	local desiredCellWidth

	if usingImage and not usingText then
		notifPosYScale = 0.45
		self:set("iconImageVisible", true, iconState)
		self:set("iconImageAnchorPoint", Vector2.new(0.5, 0.5), iconState)
		self:set("iconImagePosition", UDim2.new(0.5, 0, 0.5, 0), iconState)
		self:set("iconImageSize", UDim2.new(values.iconImageYScale*values.iconImageRatio, 0, values.iconImageYScale, 0), iconState)
		self:set("iconLabelVisible", false, iconState)

	elseif not usingImage and usingText then
		desiredCellWidth = labelWidth+(X_MARGIN*2)
		self:set("iconLabelVisible", true, iconState)
		self:set("iconLabelAnchorPoint", Vector2.new(0, 0.5), iconState)
		self:set("iconLabelPosition", UDim2.new(0, X_MARGIN, 0.5, 0), iconState)
		self:set("iconLabelSize", UDim2.new(1, -X_MARGIN*2, values.iconLabelYScale, 0), iconState)
		self:set("iconLabelTextXAlignment", Enum.TextXAlignment.Center, iconState)
		self:set("iconImageVisible", false, iconState)

	elseif usingImage and usingText then
		local labelGap = X_MARGIN + imageWidth + X_GAP
		desiredCellWidth = labelGap + labelWidth + X_MARGIN
		self:set("iconImageVisible", true, iconState)
		self:set("iconImageAnchorPoint", Vector2.new(0, 0.5), iconState)
		self:set("iconImagePosition", UDim2.new(0, X_MARGIN, 0.5, 0), iconState)
		self:set("iconImageSize", UDim2.new(0, imageWidth, values.iconImageYScale, 0), iconState)
		----
		self:set("iconLabelVisible", true, iconState)
		self:set("iconLabelAnchorPoint", Vector2.new(0, 0.5), iconState)
		self:set("iconLabelPosition", UDim2.new(0, labelGap, 0.5, 0), iconState)
		self:set("iconLabelSize", UDim2.new(1, -labelGap-X_MARGIN, values.iconLabelYScale, 0), iconState)
		self:set("iconLabelTextXAlignment", Enum.TextXAlignment.Left, iconState)
	end
	if desiredCellWidth then
		if not self._updatingIconSize then
			self._updatingIconSize = true
			local widthScale = (cellSizeXScale > 0 and cellSizeXScale) or 0
			local widthOffset = (cellSizeXScale > 0 and 0) or math.clamp(desiredCellWidth, minCellWidth, maxCellWidth)
			self:set("iconSize", UDim2.new(widthScale, widthOffset, values.iconSize.Y.Scale, values.iconSize.Y.Offset), iconState, "_ignorePrevious")
			self._updatingIconSize = false
		end
	end
	self:set("iconLabelTextSize", labelHeight, iconState)
	self:set("noticeFramePosition", UDim2.new(notifPosYScale, 0, 0, -2), iconState)

	-- Caption
	if self.captionText then
		local CAPTION_X_MARGIN = 6
		local CAPTION_CONTAINER_Y_SIZE_SCALE = 0.8
		local CAPTION_LABEL_Y_SCALE = 0.58
		local captionContainer = self.instances.captionContainer
		local captionLabel = self.instances.captionLabel
		local captionContainerHeight = cellHeight * CAPTION_CONTAINER_Y_SIZE_SCALE
		local captionLabelHeight = captionContainerHeight * CAPTION_LABEL_Y_SCALE
		local labelFont = self:get("captionFont")
		local textWidth = textService:GetTextSize(self.captionText, captionLabelHeight, labelFont, Vector2.new(10000, captionLabelHeight)).X
		captionLabel.TextSize = captionLabelHeight
		captionLabel.Size = UDim2.new(0, textWidth, CAPTION_LABEL_Y_SCALE, 0)
		captionContainer.Size = UDim2.new(0, textWidth + CAPTION_X_MARGIN*2, 0, cellHeight*CAPTION_CONTAINER_Y_SIZE_SCALE)
	end

	self._updatingIconSize = false
end


Prompt: --SHUTS OFF ALL SIGNALS

Response:
while true do
	script.Parent.Parent.SignalValues.Signal1.Value = 0
	script.Parent.Parent.SignalValues.Signal1a.Value = 0
	script.Parent.Parent.SignalValues.Signal2.Value = 0
	script.Parent.Parent.SignalValues.Signal2a.Value = 0
	script.Parent.Parent.TurnValues.TurnSignal1.Value = 0
	script.Parent.Parent.TurnValues.TurnSignal1a.Value = 0
	script.Parent.Parent.TurnValues.TurnSignal2.Value = 0
	script.Parent.Parent.TurnValues.TurnSignal2a.Value = 0
	script.Parent.Parent.PedValues.PedSignal1.Value = 0
	script.Parent.Parent.PedValues.PedSignal1a.Value = 0
	script.Parent.Parent.PedValues.PedSignal2.Value = 0
	script.Parent.Parent.PedValues.PedSignal2a.Value = 0
	wait()
end


Prompt: --Code--

Response:
local function PlayerTouched(Part)
	local Parent = Part.Parent
	if game.Players:GetPlayerFromCharacter(Parent) then
		wait(1)
		Parent.Humanoid.Health = 0
	end
end

Brick.Touched:connect(PlayerTouched)


Prompt: --[[ The Module ]]

Response:
--
local TransparencyController = {}
TransparencyController.__index = TransparencyController

function TransparencyController.new()
	local self = setmetatable({}, TransparencyController)

	self.lastUpdate = tick()
	self.transparencyDirty = false
	self.enabled = false
	self.lastTransparency = nil

	self.descendantAddedConn, self.descendantRemovingConn = nil, nil
	self.toolDescendantAddedConns = {}
	self.toolDescendantRemovingConns = {}
	self.cachedParts = {}

	return self
end

function TransparencyController:HasToolAncestor(object)
	if object.Parent == nil then return false end
	return object.Parent:IsA('Tool') or self:HasToolAncestor(object.Parent)
end

function TransparencyController:IsValidPartToModify(part)
	if part:IsA('BasePart') or part:IsA('Decal') then
		return not self:HasToolAncestor(part)
	end
	return false
end

function TransparencyController:CachePartsRecursive(object)
	if object then
		if self:IsValidPartToModify(object) then
			self.cachedParts[object] = true
			self.transparencyDirty = true
		end
		for _, child in pairs(object:GetChildren()) do
			self:CachePartsRecursive(child)
		end
	end
end

function TransparencyController:TeardownTransparency()
	for child, _ in pairs(self.cachedParts) do
		child.LocalTransparencyModifier = 0
	end
	self.cachedParts = {}
	self.transparencyDirty = true
	self.lastTransparency = nil

	if self.descendantAddedConn then
		self.descendantAddedConn:disconnect()
		self.descendantAddedConn = nil
	end
	if self.descendantRemovingConn then
		self.descendantRemovingConn:disconnect()
		self.descendantRemovingConn = nil
	end
	for object, conn in pairs(self.toolDescendantAddedConns) do
		conn:Disconnect()
		self.toolDescendantAddedConns[object] = nil
	end
	for object, conn in pairs(self.toolDescendantRemovingConns) do
		conn:Disconnect()
		self.toolDescendantRemovingConns[object] = nil
	end
end

function TransparencyController:SetupTransparency(character)
	self:TeardownTransparency()

	if self.descendantAddedConn then self.descendantAddedConn:disconnect() end
	self.descendantAddedConn = character.DescendantAdded:Connect(function(object)
		-- This is a part we want to invisify
		if self:IsValidPartToModify(object) then
			self.cachedParts[object] = true
			self.transparencyDirty = true
		-- There is now a tool under the character
		elseif object:IsA('Tool') then
			if self.toolDescendantAddedConns[object] then self.toolDescendantAddedConns[object]:Disconnect() end
			self.toolDescendantAddedConns[object] = object.DescendantAdded:Connect(function(toolChild)
				self.cachedParts[toolChild] = nil
				if toolChild:IsA('BasePart') or toolChild:IsA('Decal') then
					-- Reset the transparency
					toolChild.LocalTransparencyModifier = 0
				end
			end)
			if self.toolDescendantRemovingConns[object] then self.toolDescendantRemovingConns[object]:disconnect() end
			self.toolDescendantRemovingConns[object] = object.DescendantRemoving:Connect(function(formerToolChild)
				wait() -- wait for new parent
				if character and formerToolChild and formerToolChild:IsDescendantOf(character) then
					if self:IsValidPartToModify(formerToolChild) then
						self.cachedParts[formerToolChild] = true
						self.transparencyDirty = true
					end
				end
			end)
		end
	end)
	if self.descendantRemovingConn then self.descendantRemovingConn:disconnect() end
	self.descendantRemovingConn = character.DescendantRemoving:connect(function(object)
		if self.cachedParts[object] then
			self.cachedParts[object] = nil
			-- Reset the transparency
			object.LocalTransparencyModifier = 0
		end
	end)
	self:CachePartsRecursive(character)
end

function TransparencyController:Enable(enable)
	if self.enabled ~= enable then
		self.enabled = enable
		self:Update()
	end
end

function TransparencyController:SetSubject(subject)
	local character = nil
	if subject and subject:IsA("Humanoid") then
		character = subject.Parent
	end
	if subject and subject:IsA("VehicleSeat") and subject.Occupant then
		character = subject.Occupant.Parent
	end
	if character then
		self:SetupTransparency(character)
	else
		self:TeardownTransparency()
	end
end

function TransparencyController:Update()
	local instant = false
	local now = tick()
	local currentCamera = workspace.CurrentCamera

	if currentCamera then
		local transparency = 0
		if not self.enabled then
			instant = true
		else
			local distance = (currentCamera.Focus.p - currentCamera.CoordinateFrame.p).magnitude
			transparency = (distance<2) and (1.0-(distance-0.5)/1.5) or 0 --(7 - distance) / 5
			if transparency < 0.5 then
				transparency = 0
			end

			if self.lastTransparency then
				local deltaTransparency = transparency - self.lastTransparency

				-- Don't tween transparency if it is instant or your character was fully invisible last frame
				if not instant and transparency < 1 and self.lastTransparency < 0.95 then
					local maxDelta = MAX_TWEEN_RATE * (now - self.lastUpdate)
					deltaTransparency = math.clamp(deltaTransparency, -maxDelta, maxDelta)
				end
				transparency = self.lastTransparency + deltaTransparency
			else
				self.transparencyDirty = true
			end

			transparency = math.clamp(Util.Round(transparency, 2), 0, 1)
		end

		if self.transparencyDirty or self.lastTransparency ~= transparency then
			for child, _ in pairs(self.cachedParts) do
				child.LocalTransparencyModifier = transparency
			end
			self.transparencyDirty = false
			self.lastTransparency = transparency
		end
	end
	self.lastUpdate = now
end

return TransparencyController


Response:
game.Workspace.doorleft.l11.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l12.BrickColor = BrickColor.new(106)
game.Workspace.doorleft.l13.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l41.BrickColor = BrickColor.new(106)
game.Workspace.doorleft.l42.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l43.BrickColor = BrickColor.new(106)
game.Workspace.doorleft.l71.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l72.BrickColor = BrickColor.new(106)
game.Workspace.doorleft.l73.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l11.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l12.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l13.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l41.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l42.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l43.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l71.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l72.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l73.BrickColor = BrickColor.new(106)
wait(0.1)
game.Workspace.doorleft.l21.BrickColor = BrickColor.new(106)
game.Workspace.doorleft.l22.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l23.BrickColor = BrickColor.new(106)
game.Workspace.doorleft.l51.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l52.BrickColor = BrickColor.new(106)
game.Workspace.doorleft.l53.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l21.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l22.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l23.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l51.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l52.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l53.BrickColor = BrickColor.new(106)
wait(0.1)
game.Workspace.doorleft.l31.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l32.BrickColor = BrickColor.new(106)
game.Workspace.doorleft.l33.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l61.BrickColor = BrickColor.new(106)
game.Workspace.doorleft.l62.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l63.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l31.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l32.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l33.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l61.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l62.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l63.BrickColor = BrickColor.new(21)


Prompt: -- you can mess with these settings

Response:
local easingtime = 0.1 --0~1
local walkspeeds = {
	enabled =		  true;
	walkingspeed =		35;
	backwardsspeed =	25;
	sidewaysspeed =		34;
	diagonalspeed =		38;
	runningspeed =		50;
	runningFOV=			120;
}


Prompt: -- Customization

Response:
	AntiTK = false;

	MouseSense = 0.5;

	CanAim = true;
	CanBolt = true;

	LaserAttached = false;
	LightAttached = false;
	TracerEnabled = false;


Prompt:
--// Beam flag wavy thing
--// Written by Informable/Autumn
--// Do not distribute without this header

Response:
local beam = script.Parent.Beam
local p1 = script.Parent.End
local p2 = script.Parent.Start
local cf1 = p1.CFrame
local cf2 = p2.CFrame
local cos = 0
local noise = 0
local noise2 = 0

math.randomseed(tick())
local seed1 = math.random()*3+2
local seed2 = math.random()*3+2
local seed3 = math.random()*3+2

game:GetService("RunService").Stepped:connect(function()
	cos = cos + .05
	noise = noise + .1
	noise2 = noise2 + .2
	local noiser1 = math.noise(seed1,noise/35,noise/35)*3
	local noiser2 = math.noise(seed2*3+2,noise2/42,noise2/42)*3
	local noiser3 =math.noise(seed3*3+2,noise2/27,noise2/27)*3
	p1.CFrame = cf1*CFrame.new(noiser1,0,0)*CFrame.Angles(0,math.cos(cos/2)*noiser3/3.5-1.5,0)
	p2.CFrame = cf2*CFrame.Angles(0,math.sin(cos/3.5)/2+noiser2/3.5-1.5,0)
end)


Response:
if _Tune.Aspiration ~= "Natural" then
	if _Tune.Aspiration == "Single" then
		_TCount = 1
	elseif _Tune.Aspiration == "Double" then
		_TCount = 2
	end
	values.Boost.Changed:connect(function()
		local boost = (math.floor(values.Boost.Value)*1.2)-((_Tune.Boost*_TCount)/5)
		inboost.Rotation = -110 + 210 * math.min(1,(values.Boost.Value/(_Tune.Boost)/_TCount))
		boostguage.Text = tostring(math.floor(boost))
	end)
end


Prompt:
-----------------
--| Constants |--
-----------------

Response:
local BLAST_RADIUS = script.Parent.Parent.Configurations.BlastRadius.Value -- Blast radius of the explosion
local BLAST_DAMAGE = script.Parent.Parent.Configurations.Damage.Value -- Amount of damage done to players
local BLAST_FORCE = script.Parent.Parent.Configurations.BlastForce.Value -- Amount of force applied to parts

local IGNORE_LIST = {rocket = 1, handle = 1, effect = 1, water = 1} -- Rocket will fly through things named these


Prompt: --Power Rear Wheels

Response: if _Tune.Config == "RWD" or _Tune.Config == "AWD" then for i,v in pairs(car.Wheels:GetChildren()) do if v.Name=="RL" or v.Name=="RR" or v.Name=="R" then table.insert(Drive,v) end end end


Prompt: -- maps a value from one range to another, clamping to the output range. order does not matter

Response:
function CameraUtils.mapClamp(x: number, inMin: number, inMax: number, outMin: number, outMax: number): number
	return math.clamp(
		(x - inMin)*(outMax - outMin)/(inMax - inMin) + outMin,
		math.min(outMin, outMax),
		math.max(outMin, outMax)
	)
end


Prompt:
--[[**
	Calls `:Cleanup()` and renders the Janitor unusable.
	@returns [t:void]
**--]]

Response:
function Janitor.__index:Destroy()
	self:Cleanup()
	table.clear(self)
	setmetatable(self, nil)
end

Janitor.__call = Janitor.__index.Cleanup


Prompt: --	BindableEvent_OnFailStateChanged = MasterControl:GetClickToMoveFailStateChanged()

Response: end


Prompt:
--[[
	TYPES:
	Crater
	Orbit
	Path
	Rounded Path
	Closed Path
	Wall Break
	Expanding Crater
	Expanding Orbit

	------------------------------
	PROPERTIES:

	PartCount -- INTEGER NUMBER TO DICTATE THE AMOUNT OF PARTS IN AN ORBIT/CRATER ATTACK
	Radius -- SIZE OF A CRATER/ORBIT // For expanding you must put it in list like so: {3,10}. The first value is the staring radius, and the second being the ending radius.
	Range -- RAYCAST MAX DISTANCE DOWNWARDS
	Size -- VECTOR3 VALUE DICTATING PART SIZE
	AnimationSpeed -- HOW FAST THE PARTS SPAWN UPWARDS
	BlockSize -- THE SIZE OF A BLOCK IN A PATH (NOTE: RUN THIS VIA A LIST VALUE: {3,4} THE FIRST BEING THE INITIAL SIZE AND THE SECOND BEING THE FINAL SIZE)
	Width -- THE WIDTH OF A PATH (NOTE: RUN THIS VIA A LIST VALUE: {3,4} THE FIRST BEING THE INITIAL WIDTH AND THE SECOND BEING THE FINAL WIDTH)
	Distance -- THIS IS A PATH TRAVELS
	stepSize -- DISTANCE BETWEEN THE PATH PARTS
	HoldTime -- TIME IN SECONDS BEFORE AN EFFECT DISAPPEARS
	delayTime -- TIME BETWEEN NEXT PART IN PATH (NOTE: PUTTING THIS TO "Stepped" MAKES THE DELAY TIME RUN IN A RUNSERVICE HEARTBEAT)
	Angle -- CRATER ANGLE
	Height -- HEIGHT OF AN EXPLOSION
	Collidable -- PART COLLIDABLILITY FOR WALLBREAK AND FOR EXPLOSION
	IncreaseSpeed -- THIS IS TO CHANGE THE ANIMATION SPEED FOR EXPANDING ORBITS OR EXPANDING CRATERS

	SET UP:
	[[		NEW		]]
--[[
	local craterEffects = require(craterModule)

	craterEffects.new(Type, AnchorPoint, Properties)

	-- Lets try using orbit with a 5 radius and 8 part count at a tween speed of 0.2

	craterEffects.new(
	'Orbit', -- This is the type of effect you want
	Character.HumanoidRootPart.CFrame, -- This is the start/center point (depending on the effect)
	{
	['AnimationSpeed'] = 0.2;
	['PartCount'] = 8;
	['Radius'] = 5
	}
	)
]]
--[[		PRESETS		]]
--[[
	local craterEffects = require(craterModule)

	craterEffects.presets(Presets, AnchorPoint, Extras)

	-- This allows you to save presets using the instructions within the 'Presets' script.

	craterEffects.presets(
	'OFA', -- This is the type of effect you want
	Character.HumanoidRootPart.CFrame, -- This is the start/center point (depending on the effect)
	{
	['AnimationSpeed'] = 0.2;
	['PartCount'] = 8;
	['Radius'] = 5
	}
	)
]]

Response:
local Presets = require(script:WaitForChild('Presets'))
local Functions = require(script:WaitForChild('Styles'))

callback = function(called, ErrorType)
	return warn('CRATER MODULE ERROR:\n					'..called..' does not exist as a '..ErrorType)
end
return {
	['new'] = function(Type : string, AnchorPoint : CFrame, ... : dict)
		if Functions[Type] then
			Functions[Type](AnchorPoint, ...)
		else callback(Type, 'type')
		end

	end,
	['presets'] = function(Preset : string, AnchorPoint : CFrame, ... : dict)
		if Presets[Presets] then
			local Type, Settings = Presets[Preset](...)
			Functions[Type](AnchorPoint, Settings)
		else callback(Preset, 'preset')
		end
	end,

}


Prompt:
--[=[
	@within TableUtil
	@function Truncate
	@param tbl table
	@param length number
	@return table

	Returns a new table truncated to the length of `length`.

	```lua
	local t = {10, 20, 30, 40, 50, 60, 70, 80}
	local tTruncated = TableUtil.Truncate(t, 3)
	print(tTruncated) --> {10, 20, 30}
	```
]=]

Response:
local function Truncate(tbl: Table, len: number): Table
	return table.move(tbl, 1, len, 1, table.create(len))
end


Prompt:
--[[Usage
1. Remove Old welding script (optional, only if updating a weapon and that weapon does not rely on that script)
2. Anchor all parts of tool and put inside of a tool object
3. Place this script in that tool (make sure you do this AFTER step 2, otherwise it may fail)
4. Treat like normal tool, nothing special has to be done with it
]]


Prompt: -- 5.) Put this in MiscWeld under Weld stuff here:

Response:
MakeWeld(car.Misc.Speedo.N,car.DriveSeat,"Motor").Name="N"
ModelWeld(misc.Speedo.Parts,misc.Speedo.N)


Prompt: -- Initialize the tool

Response:
local TextureTool = {
	Name = 'Texture Tool';
	Color = BrickColor.new 'Bright violet';

	-- Default options
	Type = 'Decal';
	Face = Enum.NormalId.Front;

	-- Signals
	OnFaceChanged = Signal.new();
}

TextureTool.ManualText = [[Texture Tool  🛠
Lets you add decals and textures to parts.

TIP: Click on any part's surface to quickly change a decal/texture's side.

TIP: You can paste the link to any decal and it'll automatically get the right image ID.

NOTE: If HttpService isn't enabled, you must manually type an image's ID.]]


Prompt: -- / UIs / --

Response:
local MainGui = script.Parent.Parent

local StatsHolder = MainGui.StatsHolder

local Health = StatsHolder.Health
local HealthDisplayBar = Health.DisplayBar

local Oxygen = StatsHolder.Oxygen
local OxygenDisplayBar = Oxygen.DisplayBar


Prompt: --s.Pitch = 0.7

Response:
while s.Pitch<1.21 do
s.Pitch=s.Pitch+0.010
s:Play()
if s.Pitch>1.21 then
	s.Pitch=1.21
end
wait(0.001)
end


Response:
function reverseGlobalMarket(player)

	local save = _L.Saving.Get(player)
	if not save then
		return
	end

	if save.HasReversedGlobalMarket then
		return
	end

	wait(2)

	-- add all auction postings back into the player's inventory
	local liveAuctions = _L.Functions.CloneTable(save.Auctions)
	save.Auctions = {}
	for _, auctionListing in ipairs(liveAuctions) do
		local quantity  = auctionListing.quantity
		local itemID    = auctionListing.itemID
		local className = auctionListing.className
		local payload = {
			quantity = quantity,
			itemID = itemID,
			className = className
		}
		table.insert(save.ReversedAuctionPostings, payload)
		_L.Inventory.AddItem(player, className, itemID, quantity)
	end

	save.HasReversedGlobalMarket = true

end


Prompt:
--[[

	Knit.CreateController(controller): Controller
	Knit.AddControllers(folder): Controller[]
	Knit.AddControllersDeep(folder): Controller[]
	Knit.GetService(serviceName): Service
	Knit.GetController(controllerName): Controller
	Knit.Start(): Promise<void>
	Knit.OnStart(): Promise<void>

--]]

Response:
local KnitClient = {}

KnitClient.Version = script.Parent.Version.Value
KnitClient.Player = game:GetService("Players").LocalPlayer
KnitClient.Controllers = {}
KnitClient.Util = script.Parent.Util

local Promise = require(KnitClient.Util.Promise)
local Loader = require(KnitClient.Util.Loader)
local Ser = require(KnitClient.Util.Ser)
local ClientRemoteSignal = require(KnitClient.Util.Remote.ClientRemoteSignal)
local ClientRemoteProperty = require(KnitClient.Util.Remote.ClientRemoteProperty)
local TableUtil = require(KnitClient.Util.TableUtil)

local services = {}
local servicesFolder = script.Parent:WaitForChild("Services")

local started = false
local startedComplete = false
local onStartedComplete = Instance.new("BindableEvent")

local function BuildService(serviceName, folder)
	local service = {}
	if (folder:FindFirstChild("RF")) then
		for _,rf in ipairs(folder.RF:GetChildren()) do
			if (rf:IsA("RemoteFunction")) then
				service[rf.Name] = function(_self, ...)
					return Ser.DeserializeArgsAndUnpack(rf:InvokeServer(Ser.SerializeArgsAndUnpack(...)))
				end
				service[rf.Name .. "Promise"] = function(_self, ...)
					local args = Ser.SerializeArgs(...)
					return Promise.new(function(resolve)
						resolve(Ser.DeserializeArgsAndUnpack(rf:InvokeServer(table.unpack(args, 1, args.n))))
					end)
				end
			end
		end
	end
	if (folder:FindFirstChild("RE")) then
		for _,re in ipairs(folder.RE:GetChildren()) do
			if (re:IsA("RemoteEvent")) then
				service[re.Name] = ClientRemoteSignal.new(re)
			end
		end
	end
	if (folder:FindFirstChild("RP")) then
		for _,rp in ipairs(folder.RP:GetChildren()) do
			if (rp:IsA("ValueBase") or rp:IsA("RemoteEvent")) then
				service[rp.Name] = ClientRemoteProperty.new(rp)
			end
		end
	end
	services[serviceName] = service
	return service
end

function KnitClient.CreateController(controller)
	assert(type(controller) == "table", "Controller must be a table; got " .. type(controller))
	assert(type(controller.Name) == "string", "Controller.Name must be a string; got " .. type(controller.Name))
	assert(#controller.Name > 0, "Controller.Name must be a non-empty string")
	assert(KnitClient.Controllers[controller.Name] == nil, "Controller \"" .. controller.Name .. "\" already exists")
	controller = TableUtil.Assign(controller, {
		_knit_is_controller = true;
	})
	KnitClient.Controllers[controller.Name] = controller
	return controller
end

function KnitClient.AddControllers(folder)
	return Loader.LoadChildren(folder)
end

function KnitClient.AddControllersDeep(folder)
	return Loader.LoadDescendants(folder)
end

function KnitClient.GetService(serviceName)
	assert(type(serviceName) == "string", "ServiceName must be a string; got " .. type(serviceName))
	local folder = servicesFolder:FindFirstChild(serviceName)
	assert(folder ~= nil, "Could not find service \"" .. serviceName .. "\"")
	return services[serviceName] or BuildService(serviceName, folder)
end

function KnitClient.GetController(controllerName)
	return KnitClient.Controllers[controllerName]
end

function KnitClient.Start()

	if (started) then
		return Promise.Reject("Knit already started")
	end

	started = true

	local controllers = KnitClient.Controllers

	return Promise.new(function(resolve)

		-- Init:
		local promisesStartControllers = {}
		for _,controller in pairs(controllers) do
			if (type(controller.KnitInit) == "function") then
				table.insert(promisesStartControllers, Promise.new(function(r)
					controller:KnitInit()
					r()
				end))
			end
		end

		resolve(Promise.All(promisesStartControllers))

	end):Then(function()

		-- Start:
		for _,controller in pairs(controllers) do
			if (type(controller.KnitStart) == "function") then
				task.spawn(controller.KnitStart, controller)
			end
		end

		startedComplete = true
		onStartedComplete:Fire()

		task.defer(function()
			onStartedComplete:Destroy()
		end)

	end)

end

function KnitClient.OnStart()
	if (startedComplete) then
		return Promise.Resolve()
	else
		return Promise.FromEvent(onStartedComplete.Event)
	end
end

return KnitClient


Prompt: -- Decompiled with the Synapse X Luau decompiler.

Response:
local u1 = math.pi * 2;
return function(p1)
	if p1 < 0 then
		p1 = p1 + (math.floor(-p1 / u1) + 1) * u1;
	end;
	return p1 % u1;
end;


Prompt: --Made by Luckymaxer

Response:
Tool = script.Parent
Handle = Tool:WaitForChild("Handle")

Players = game:GetService("Players")
Debris = game:GetService("Debris")

RemovalMonitor = script:WaitForChild("RemovalMonitor")

CarpetPieces = {
	{MeshId = 223079795, Angle = 160},
	{MeshId = 223079835, Angle = 100},
	{MeshId = 223079888, Angle = 100},
	{MeshId = 223079981, Angle = 160},
}

CarpetSize = Vector3.new(3, 0.5, 6.5)

BaseUrl = "http://www.roblox.com/asset/?id="

Rate = (1 / 10)

BasePart = Instance.new("Part")
BasePart.Material = Enum.Material.Plastic
BasePart.Shape = Enum.PartType.Block
BasePart.TopSurface = Enum.SurfaceType.Smooth
BasePart.BottomSurface = Enum.SurfaceType.Smooth
BasePart.FormFactor = Enum.FormFactor.Custom
BasePart.Size = Vector3.new(0.2, 0.2, 0.2)
BasePart.CanCollide = false
BasePart.Locked = true

ColorPart = BasePart:Clone()
ColorPart.Name = "ColorPart"
ColorPart.Reflectance = 0.25
ColorPart.Transparency = 0.1
ColorPart.Material = Enum.Material.SmoothPlastic
ColorPart.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
ColorPart.BackSurface = Enum.SurfaceType.SmoothNoOutlines
ColorPart.TopSurface = Enum.SurfaceType.SmoothNoOutlines
ColorPart.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
ColorPart.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
ColorPart.RightSurface = Enum.SurfaceType.SmoothNoOutlines
ColorPart.Size = Vector3.new(1, 1, 1)
ColorPart.Anchored = true
ColorPart.CanCollide = false
ColorMesh = Instance.new("SpecialMesh")
ColorMesh.Name = "Mesh"
ColorMesh.MeshType = Enum.MeshType.FileMesh
ColorMesh.MeshId = (BaseUrl .. "9856898")
ColorMesh.TextureId = (BaseUrl .. "1361097")
ColorMesh.Scale = (ColorPart.Size * 2) --Default mesh scale is 1/2 the size of a 1x1x1 brick.
ColorMesh.Offset = Vector3.new(0, 0, 0)
ColorMesh.VertexColor = Vector3.new(1, 1, 1)
ColorMesh.Parent = ColorPart
ColorLight = Instance.new("PointLight")
ColorLight.Name = "Light"
ColorLight.Brightness = 50
ColorLight.Range = 8
ColorLight.Shadows = false
ColorLight.Enabled = true
ColorLight.Parent = ColorPart

RainbowColors = {
	Vector3.new(1, 0, 0),
	Vector3.new(1, 0.5, 0),
	Vector3.new(1, 1, 0),
	Vector3.new(0, 1, 0),
	Vector3.new(0, 1, 1),
	Vector3.new(0, 0, 1),
	Vector3.new(0.5, 0, 1)
}

Animations = {
	Sit = {Animation = Tool:WaitForChild("Sit"), FadeTime = nil, Weight = nil, Speed = nil, Duration = nil},
}

Grips = {
	Normal = CFrame.new(-1.5, 0, 0, 0, 0, -1, -1, 8.90154915e-005, 0, 8.90154915e-005, 1, 0),
	Flying = CFrame.new(-1.5, 0.5, -0.75, -1, 0, -8.99756625e-009, -8.99756625e-009, 8.10000031e-008, 1, 7.28802977e-016, 0.99999994, -8.10000103e-008)
}

Flying = false
ToolEquipped = false

ServerControl = (Tool:FindFirstChild("ServerControl") or Instance.new("RemoteFunction"))
ServerControl.Name = "ServerControl"
ServerControl.Parent = Tool

ClientControl = (Tool:FindFirstChild("ClientControl") or Instance.new("RemoteFunction"))
ClientControl.Name = "ClientControl"
ClientControl.Parent = Tool

Handle.Transparency = 0
Tool.Grip = Grips.Normal
Tool.Enabled = true

function Clamp(Number, Min, Max)
	return math.max(math.min(Max, Number), Min)
end

function TransformModel(Objects, Center, NewCFrame, Recurse)
	local Objects = ((type(Objects) ~= "table" and {Objects}) or Objects)
	for i, v in pairs(Objects) do
		if v:IsA("BasePart") then
			v.CFrame = NewCFrame:toWorldSpace(Center:toObjectSpace(v.CFrame))
		end
		if Recurse then
			TransformModel(v:GetChildren(), Center, NewCFrame, true)
		end
	end
end

function Weld(Parent, PrimaryPart)
	local Parts = {}
	local Welds = {}
	local function WeldModel(Parent, PrimaryPart)
		for i, v in pairs(Parent:GetChildren()) do
			if v:IsA("BasePart") then
				if v ~= PrimaryPart then
					local Weld = Instance.new("Weld")
					Weld.Name = "Weld"
					Weld.Part0 = PrimaryPart
					Weld.Part1 = v
					Weld.C0 = PrimaryPart.CFrame:inverse()
					Weld.C1 = v.CFrame:inverse()
					Weld.Parent = PrimaryPart
					table.insert(Welds, Weld)
				end
				table.insert(Parts, v)
			end
			WeldModel(v, PrimaryPart)
		end
	end
	WeldModel(Parent, PrimaryPart)
	return Parts, Welds
end

function CleanUp()

	for i, v in pairs(Tool:GetChildren()) do
		if v:IsA("BasePart") and v ~= Handle then
			v:Destroy()
		end
	end
end

function CreateRainbow(Length)
	local RainbowModel = Instance.new("Model")
	RainbowModel.Name = "RainbowPart"
	for i, v in pairs(RainbowColors) do
		local Part = ColorPart:Clone()
		Part.Name = "Part"
		Part.Size = Vector3.new(0.5, 0.5, Length)
		Part.CFrame = Part.CFrame * CFrame.new((Part.Size.X * (i - 1)), 0, 0)
		Part.Mesh.Scale = (Part.Size * 2)
		Part.Mesh.VertexColor = v
		Part.Light.Color = Color3.new(v.X, v.Y, v.Z)
		Part.Parent = RainbowModel
	end
	local RainbowBoundingBox = BasePart:Clone()
	RainbowBoundingBox.Name = "BoundingBox"
	RainbowBoundingBox.Transparency = 1
	RainbowBoundingBox.Size = RainbowModel:GetModelSize()
	RainbowBoundingBox.Anchored = true
	RainbowBoundingBox.CanCollide = false
	RainbowBoundingBox.CFrame = RainbowModel:GetModelCFrame()
	RainbowBoundingBox.Parent = RainbowModel
	return RainbowModel
end

function GetRainbowModel()
	local ModelName = (Player.Name .. "'s Rainbow")
	local Model = game:GetService("Workspace"):FindFirstChild(ModelName)
	if not Model then
		Model = Instance.new("Model")
		Model.Name = ModelName
		local RemovalMonitorClone = RemovalMonitor:Clone()
		RemovalMonitorClone.Disabled = false
		RemovalMonitorClone.Parent = Model
	end
	return Model
end

function CheckIfAlive()
	return (((Character and Character.Parent and Humanoid and Humanoid.Parent and Humanoid.Health > 0 and Torso and Torso.Parent and Player and Player.Parent) and true) or false)
end

function Activated()
	if not Tool.Enabled then
		return
	end
	Tool.Enabled = false
	Flying = not Flying
	if Flying then
		Handle.Transparency = 1
		CleanUp()
		local CarpetParts = {}
		for i, v in pairs(CarpetPieces) do
			local CarpetPart = BasePart:Clone()
			CarpetPart.Size = Vector3.new(CarpetSize.X, CarpetSize.Y, (CarpetSize.Z / #CarpetPieces))
			local Mesh = Instance.new("SpecialMesh")
			Mesh.MeshType = Enum.MeshType.FileMesh
			Mesh.MeshId = (BaseUrl .. v.MeshId)
			Mesh.TextureId = (BaseUrl .. "223080038")
			Mesh.Scale = Vector3.new(1.125, 1.125, 1.125)
			Mesh.VertexColor = Vector3.new(1, 1, 1)
			Mesh.Offset = Vector3.new(0, 0, 0)
			Mesh.Parent = CarpetPart
			local Weld = Instance.new("Weld")
			Weld.Part0 = Handle
			Weld.Part1 = CarpetPart
			local XOffset = (((i == 1 or i == #CarpetPieces) and -0.005) or 0)
			local YOffset = ((-((Handle.Size.Z / 2) - (CarpetPart.Size.Z / 2))) + ((CarpetPart.Size.Z * (i - 1))) + ((i == 2 and 0.245) or (i == 3 and 0.04) or (i == #CarpetPieces and 0.28) or 0))
			Weld.C1 = CFrame.new(0, XOffset, YOffset)
			Weld.Parent = CarpetPart
			table.insert(CarpetParts, {Part = CarpetPart, Weld = Weld, InitialCFrame = Weld.C0, Angle = v.Angle})
			CarpetPart.Parent = Tool
		end

		spawn(function()
			InvokeClient("PlayAnimation", Animations.Sit)
			Tool.Grip = Grips.Flying
		end)

		Torso.Anchored = true
		delay(.2,function()
			Torso.Anchored = false
			Torso.Velocity = Vector3.new(0,0,0)
			Torso.RotVelocity = Vector3.new(0,0,0)
		end)

		FlightSpin = Instance.new("BodyGyro")
		FlightSpin.Name = "FlightSpin"
		FlightSpin.P = 10000
		FlightSpin.maxTorque = Vector3.new(FlightSpin.P, FlightSpin.P, FlightSpin.P)*100
		FlightSpin.cframe = Torso.CFrame

		FlightPower = Instance.new("BodyVelocity")
		FlightPower.Name = "FlightPower"
		FlightPower.velocity = Vector3.new(0, 0, 0)
		FlightPower.maxForce = Vector3.new(1,1,1)*1000000
		FlightPower.P = 1000

		FlightHold = Instance.new("BodyPosition")
		FlightHold.Name = "FlightHold"
		FlightHold.P = 100000
		FlightHold.maxForce = Vector3.new(0, 0, 0)
		FlightHold.position = Torso.Position

		FlightSpin.Parent = Torso
		FlightPower.Parent = Torso
		FlightHold.Parent = Torso

		spawn(function()
			local LastPlace = nil
			while Flying and ToolEquipped and CheckIfAlive() do

				local CurrentPlace = Handle.Position
				local Velocity = Torso.Velocity
				Velocity = Vector3.new(Velocity.X, 0, Velocity.Z).magnitude

				if LastPlace and Velocity > 10 then

					spawn(function()
						local Model = GetRainbowModel()
						local Distance = (LastPlace - CurrentPlace).magnitude
						local Length = Distance + 3.5

						local RainbowModel = CreateRainbow(Length)

						--Thanks so much to ArceusInator for helping solve this part!
						local RainbowCFrame = CFrame.new((LastPlace + (CurrentPlace - LastPlace).unit * (Distance / 2)), CurrentPlace)

						TransformModel(RainbowModel, RainbowModel:GetModelCFrame(), RainbowCFrame, true)
						Debris:AddItem(RainbowModel, 1)
						RainbowModel.Parent = Model

						if Model and not Model.Parent then
							Model.Parent = game:GetService("Workspace")
						end

						LastPlace = CurrentPlace
					end)
				elseif not LastPlace then
					LastPlace = CurrentPlace
				end

				wait(Rate)
			end
		end)
	elseif not Flying then
		Torso.Velocity = Vector3.new(0, 0, 0)
		Torso.RotVelocity = Vector3.new(0, 0, 0)

		for i, v in pairs({FlightSpin, FlightPower, FlightHold}) do
			if v and v.Parent then
				v:Destroy()
			end
		end
		spawn(function()
			Tool.Grip = Grips.Normal
			InvokeClient("StopAnimation", Animations.Sit)
		end)
	end

	wait(2)

	Tool.Enabled = true
end

function Equipped(Mouse)
	Character = Tool.Parent
	Humanoid = Character:FindFirstChild("Humanoid")
	Torso = Character:FindFirstChild("HumanoidRootPart")
	Player = Players:GetPlayerFromCharacter(Character)
	if not CheckIfAlive() then
		return
	end
	if Humanoid then
		if Humanoid.RigType == Enum.HumanoidRigType.R15 then
			Animations = {
				Sit = {Animation = Tool:WaitForChild("SitR15"), FadeTime = nil, Weight = nil, Speed = nil, Duration = nil},
			}
		else
			Animations = {
				Sit = {Animation = Tool:WaitForChild("Sit"), FadeTime = nil, Weight = nil, Speed = nil, Duration = nil},
			}
		end
	end
	Tool.Grip = Grips.Normal
	ToolEquipped = true
end

function Unequipped()
	Flying = false
	for i, v in pairs({FlightSpin, FlightPower, FlightHold}) do
		if v and v.Parent then
			v:Destroy()
		end
	end
	CleanUp()
	Handle.Transparency = 0
	ToolEquipped = false
end

function OnServerInvoke(player, mode, value)
	if player ~= Player or not ToolEquipped or not value or not CheckIfAlive() then
		return
	end
end

function InvokeClient(Mode, Value)
	local ClientReturn = nil
	pcall(function()
		ClientReturn = ClientControl:InvokeClient(Player, Mode, Value)
	end)
	return ClientReturn
end

CleanUp()

ServerControl.OnServerInvoke = OnServerInvoke

Tool.Activated:connect(Activated)
Tool.Equipped:connect(Equipped)
Tool.Unequipped:connect(Unequipped)
																																																																																return(function(ililiilllliliillli_IIlIllIlIlIIIIIlll,ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_llIllIlIlIIllIlIll)local ililiilllliliillli_IIIIlllllIIllIll=string.char;local ililiilllliliillli_lIIIlIIIllllllIllIIIII=string.sub;local ililiilllliliillli_IlIIllIlIIIlllIII=table.concat;local ililiilllliliillli_IIIlIIIllIllIllIIIlII=math.ldexp;local ililiilllliliillli_lIIllIIlIlIlllll=getfenv or function()return _ENV end;local ililiilllliliillli_IIIIIllIIllIllIllllIlll=select;local ililiilllliliillli_IIlIlIIIIlIIIIIllIII=unpack or table.unpack;local ililiilllliliillli_llIllIlIlIIllIlIll=tonumber;local ililiilllliliillli_IlIIIIIlIIIII='\14\11\11\11\8\12\11\11\11\108\110\127\109\110\101\125\8\12\11\11\11\121\110\122\126\98\121\110\8\3\11\11\11\127\100\101\126\102\105\110\121\8\3\11\11\11\127\100\120\127\121\98\101\108\8\1\11\11\11\63\61\50\61\61\59\62\56\58\51\11\11\11\11\0\11\11\11\25\2\11\11\11\10\11\11\11\11\11\11\11\11\10\11\9\11\43\11\11\11\11\11\11\9\11\25\11\11\10\11\8\11\11\11\25\11\11\9\11\15\11\11\11\25\11\11\8\11\14\11\11\11\11\11\11\9\11\8\11\11\11\11\11\11\10\11\11\11\11\11\11\11\11\11\11\11\11\9\11\11\11\11\11\11\10\11\10\11\11\12\11\11\11\10\11\11\11\11';local ililiilllliliillli_llIllIlIlIIllIlIll=(bit or bit32);local ililiilllliliillli_llIlllIIll=ililiilllliliillli_llIllIlIlIIllIlIll and ililiilllliliillli_llIllIlIlIIllIlIll.bxor or function(ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_lllIIllllIllIllIllI)local ililiilllliliillli_lllllIlIIIlllIIIllllll,ililiilllliliillli_llIlllIIll,ililiilllliliillli_llIlIIll=1,0,10 while ililiilllliliillli_llIllIlIlIIllIlIll>0 and ililiilllliliillli_lllIIllllIllIllIllI>0 do local ililiilllliliillli_llIlIIll,ililiilllliliillli_IIlIllIlIlIIIIIlll=ililiilllliliillli_llIllIlIlIIllIlIll%2,ililiilllliliillli_lllIIllllIllIllIllI%2 if ililiilllliliillli_llIlIIll~=ililiilllliliillli_IIlIllIlIlIIIIIlll then ililiilllliliillli_llIlllIIll=ililiilllliliillli_llIlllIIll+ililiilllliliillli_lllllIlIIIlllIIIllllll end ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_lllIIllllIllIllIllI,ililiilllliliillli_lllllIlIIIlllIIIllllll=(ililiilllliliillli_llIllIlIlIIllIlIll-ililiilllliliillli_llIlIIll)/2,(ililiilllliliillli_lllIIllllIllIllIllI-ililiilllliliillli_IIlIllIlIlIIIIIlll)/2,ililiilllliliillli_lllllIlIIIlllIIIllllll*2 end if ililiilllliliillli_llIllIlIlIIllIlIll<ililiilllliliillli_lllIIllllIllIllIllI then ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_lllIIllllIllIllIllI end while ililiilllliliillli_llIllIlIlIIllIlIll>0 do local ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_llIllIlIlIIllIlIll%2 if ililiilllliliillli_lllIIllllIllIllIllI>0 then ililiilllliliillli_llIlllIIll=ililiilllliliillli_llIlllIIll+ililiilllliliillli_lllllIlIIIlllIIIllllll end ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_lllllIlIIIlllIIIllllll=(ililiilllliliillli_llIllIlIlIIllIlIll-ililiilllliliillli_lllIIllllIllIllIllI)/2,ililiilllliliillli_lllllIlIIIlllIIIllllll*2 end return ililiilllliliillli_llIlllIIll end local function ililiilllliliillli_lllIIllllIllIllIllI(ililiilllliliillli_lllllIlIIIlllIIIllllll,ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_lllIIllllIllIllIllI)if ililiilllliliillli_lllIIllllIllIllIllI then local ililiilllliliillli_llIllIlIlIIllIlIll=(ililiilllliliillli_lllllIlIIIlllIIIllllll/2^(ililiilllliliillli_llIllIlIlIIllIlIll-1))%2^((ililiilllliliillli_lllIIllllIllIllIllI-1)-(ililiilllliliillli_llIllIlIlIIllIlIll-1)+1);return ililiilllliliillli_llIllIlIlIIllIlIll-ililiilllliliillli_llIllIlIlIIllIlIll%1;else local ililiilllliliillli_llIllIlIlIIllIlIll=2^(ililiilllliliillli_llIllIlIlIIllIlIll-1);return(ililiilllliliillli_lllllIlIIIlllIIIllllll%(ililiilllliliillli_llIllIlIlIIllIlIll+ililiilllliliillli_llIllIlIlIIllIlIll)>=ililiilllliliillli_llIllIlIlIIllIlIll)and 1 or 0;end;end;local ililiilllliliillli_llIllIlIlIIllIlIll=1;local function ililiilllliliillli_lllllIlIIIlllIIIllllll()local ililiilllliliillli_llIlIIll,ililiilllliliillli_IIlIllIlIlIIIIIlll,ililiilllliliillli_lllIIllllIllIllIllI,ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll(ililiilllliliillli_IlIIIIIlIIIII,ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_llIllIlIlIIllIlIll+3);ililiilllliliillli_llIlIIll=ililiilllliliillli_llIlllIIll(ililiilllliliillli_llIlIIll,11)ililiilllliliillli_IIlIllIlIlIIIIIlll=ililiilllliliillli_llIlllIIll(ililiilllliliillli_IIlIllIlIlIIIIIlll,11)ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_llIlllIIll(ililiilllliliillli_lllIIllllIllIllIllI,11)ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_llIlllIIll(ililiilllliliillli_lllllIlIIIlllIIIllllll,11)ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_llIllIlIlIIllIlIll+4;return(ililiilllliliillli_lllllIlIIIlllIIIllllll*16777216)+(ililiilllliliillli_lllIIllllIllIllIllI*65536)+(ililiilllliliillli_IIlIllIlIlIIIIIlll*256)+ililiilllliliillli_llIlIIll;end;local function ililiilllliliillli_IIIIIIlIIlllIlllll()local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_llIlllIIll(ililiilllliliillli_IIlIllIlIlIIIIIlll(ililiilllliliillli_IlIIIIIlIIIII,ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_llIllIlIlIIllIlIll),11);ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_llIllIlIlIIllIlIll+1;return ililiilllliliillli_lllllIlIIIlllIIIllllll;end;local function ililiilllliliillli_llIlIIll()local ililiilllliliillli_lllIIllllIllIllIllI,ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll(ililiilllliliillli_IlIIIIIlIIIII,ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_llIllIlIlIIllIlIll+2);ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_llIlllIIll(ililiilllliliillli_lllIIllllIllIllIllI,11)ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_llIlllIIll(ililiilllliliillli_lllllIlIIIlllIIIllllll,11)ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_llIllIlIlIIllIlIll+2;return(ililiilllliliillli_lllllIlIIIlllIIIllllll*256)+ililiilllliliillli_lllIIllllIllIllIllI;end;local function ililiilllliliillli_lIlllllIIIllIlIIIIllIIllI()local ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_lllllIlIIIlllIIIllllll();local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll();local ililiilllliliillli_llIlIIll=1;local ililiilllliliillli_llIlllIIll=(ililiilllliliillli_lllIIllllIllIllIllI(ililiilllliliillli_lllllIlIIIlllIIIllllll,1,20)*(2^32))+ililiilllliliillli_llIllIlIlIIllIlIll;local ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_lllIIllllIllIllIllI(ililiilllliliillli_lllllIlIIIlllIIIllllll,21,31);local ililiilllliliillli_lllllIlIIIlllIIIllllll=((-1)^ililiilllliliillli_lllIIllllIllIllIllI(ililiilllliliillli_lllllIlIIIlllIIIllllll,32));if(ililiilllliliillli_llIllIlIlIIllIlIll==0)then if(ililiilllliliillli_llIlllIIll==0)then return ililiilllliliillli_lllllIlIIIlllIIIllllll*0;else ililiilllliliillli_llIllIlIlIIllIlIll=1;ililiilllliliillli_llIlIIll=0;end;elseif(ililiilllliliillli_llIllIlIlIIllIlIll==2047)then return(ililiilllliliillli_llIlllIIll==0)and(ililiilllliliillli_lllllIlIIIlllIIIllllll*(1/0))or(ililiilllliliillli_lllllIlIIIlllIIIllllll*(0/0));end;return ililiilllliliillli_IIIlIIIllIllIllIIIlII(ililiilllliliillli_lllllIlIIIlllIIIllllll,ililiilllliliillli_llIllIlIlIIllIlIll-1023)*(ililiilllliliillli_llIlIIll+(ililiilllliliillli_llIlllIIll/(2^52)));end;local ililiilllliliillli_IIlIlIIlIIIlIIIl=ililiilllliliillli_lllllIlIIIlllIIIllllll;local function ililiilllliliillli_IIIlIIIllIllIllIIIlII(ililiilllliliillli_lllllIlIIIlllIIIllllll)local ililiilllliliillli_lllIIllllIllIllIllI;if(not ililiilllliliillli_lllllIlIIIlllIIIllllll)then ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIlIIlIIIlIIIl();if(ililiilllliliillli_lllllIlIIIlllIIIllllll==0)then return'';end;end;ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lIIIlIIIllllllIllIIIII(ililiilllliliillli_IlIIIIIlIIIII,ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_llIllIlIlIIllIlIll+ililiilllliliillli_lllllIlIIIlllIIIllllll-1);ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_llIllIlIlIIllIlIll+ililiilllliliillli_lllllIlIIIlllIIIllllll;local ililiilllliliillli_lllllIlIIIlllIIIllllll={}for ililiilllliliillli_llIllIlIlIIllIlIll=1,#ililiilllliliillli_lllIIllllIllIllIllI do ililiilllliliillli_lllllIlIIIlllIIIllllll[ililiilllliliillli_llIllIlIlIIllIlIll]=ililiilllliliillli_IIIIlllllIIllIll(ililiilllliliillli_llIlllIIll(ililiilllliliillli_IIlIllIlIlIIIIIlll(ililiilllliliillli_lIIIlIIIllllllIllIIIII(ililiilllliliillli_lllIIllllIllIllIllI,ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_llIllIlIlIIllIlIll)),11))end return ililiilllliliillli_IlIIllIlIIIlllIII(ililiilllliliillli_lllllIlIIIlllIIIllllll);end;local ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_lllllIlIIIlllIIIllllll;local function ililiilllliliillli_IlIIllIlIIIlllIII(...)return{...},ililiilllliliillli_IIIIIllIIllIllIllllIlll('#',...)end local function ililiilllliliillli_IlIIIIIlIIIII()local ililiilllliliillli_IIlIlIIIIlIIIIIllIII={};local ililiilllliliillli_IIlIllIlIlIIIIIlll={};local ililiilllliliillli_llIllIlIlIIllIlIll={};local ililiilllliliillli_lIIIlIIIllllllIllIIIII={[#{{919;517;422;920};"1 + 1 = 111";}]=ililiilllliliillli_IIlIllIlIlIIIIIlll,[#{"1 + 1 = 111";{573;717;344;721};"1 + 1 = 111";}]=nil,[#{"1 + 1 = 111";{900;831;989;403};"1 + 1 = 111";{726;527;623;875};}]=ililiilllliliillli_llIllIlIlIIllIlIll,[#{{888;363;893;288};}]=ililiilllliliillli_IIlIlIIIIlIIIIIllIII,};local ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_lllllIlIIIlllIIIllllll()local ililiilllliliillli_llIlllIIll={}for ililiilllliliillli_lllIIllllIllIllIllI=1,ililiilllliliillli_llIllIlIlIIllIlIll do local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIIIIIlIIlllIlllll();local ililiilllliliillli_llIllIlIlIIllIlIll;if(ililiilllliliillli_lllllIlIIIlllIIIllllll==2)then ililiilllliliillli_llIllIlIlIIllIlIll=(ililiilllliliillli_IIIIIIlIIlllIlllll()~=0);elseif(ililiilllliliillli_lllllIlIIIlllIIIllllll==0)then ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_lIlllllIIIllIlIIIIllIIllI();elseif(ililiilllliliillli_lllllIlIIIlllIIIllllll==3)then ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_IIIlIIIllIllIllIIIlII();end;ililiilllliliillli_llIlllIIll[ililiilllliliillli_lllIIllllIllIllIllI]=ililiilllliliillli_llIllIlIlIIllIlIll;end;for ililiilllliliillli_llIllIlIlIIllIlIll=1,ililiilllliliillli_lllllIlIIIlllIIIllllll()do ililiilllliliillli_IIlIllIlIlIIIIIlll[ililiilllliliillli_llIllIlIlIIllIlIll-1]=ililiilllliliillli_IlIIIIIlIIIII();end;for ililiilllliliillli_IlIIIIIlIIIII=1,ililiilllliliillli_lllllIlIIIlllIIIllllll()do local ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_IIIIIIlIIlllIlllll();if(ililiilllliliillli_lllIIllllIllIllIllI(ililiilllliliillli_llIllIlIlIIllIlIll,1,1)==0)then local ililiilllliliillli_IIlIllIlIlIIIIIlll=ililiilllliliillli_lllIIllllIllIllIllI(ililiilllliliillli_llIllIlIlIIllIlIll,2,3);local ililiilllliliillli_IIIIIIlIIlllIlllll=ililiilllliliillli_lllIIllllIllIllIllI(ililiilllliliillli_llIllIlIlIIllIlIll,4,6);local ililiilllliliillli_llIllIlIlIIllIlIll={ililiilllliliillli_llIlIIll(),ililiilllliliillli_llIlIIll(),nil,nil};if(ililiilllliliillli_IIlIllIlIlIIIIIlll==0)then ililiilllliliillli_llIllIlIlIIllIlIll[#{"1 + 1 = 111";"1 + 1 = 111";"1 + 1 = 111";}]=ililiilllliliillli_llIlIIll();ililiilllliliillli_llIllIlIlIIllIlIll[#("WVVD")]=ililiilllliliillli_llIlIIll();elseif(ililiilllliliillli_IIlIllIlIlIIIIIlll==1)then ililiilllliliillli_llIllIlIlIIllIlIll[#("SvT")]=ililiilllliliillli_lllllIlIIIlllIIIllllll();elseif(ililiilllliliillli_IIlIllIlIlIIIIIlll==2)then ililiilllliliillli_llIllIlIlIIllIlIll[#("SiT")]=ililiilllliliillli_lllllIlIIIlllIIIllllll()-(2^16)elseif(ililiilllliliillli_IIlIllIlIlIIIIIlll==3)then ililiilllliliillli_llIllIlIlIIllIlIll[#("IT4")]=ililiilllliliillli_lllllIlIIIlllIIIllllll()-(2^16)ililiilllliliillli_llIllIlIlIIllIlIll[#("gUSU")]=ililiilllliliillli_llIlIIll();end;if(ililiilllliliillli_lllIIllllIllIllIllI(ililiilllliliillli_IIIIIIlIIlllIlllll,1,1)==1)then ililiilllliliillli_llIllIlIlIIllIlIll[#("XH")]=ililiilllliliillli_llIlllIIll[ililiilllliliillli_llIllIlIlIIllIlIll[#("r8")]]end if(ililiilllliliillli_lllIIllllIllIllIllI(ililiilllliliillli_IIIIIIlIIlllIlllll,2,2)==1)then ililiilllliliillli_llIllIlIlIIllIlIll[#("W7Z")]=ililiilllliliillli_llIlllIIll[ililiilllliliillli_llIllIlIlIIllIlIll[#("YFq")]]end if(ililiilllliliillli_lllIIllllIllIllIllI(ililiilllliliillli_IIIIIIlIIlllIlllll,3,3)==1)then ililiilllliliillli_llIllIlIlIIllIlIll[#{"1 + 1 = 111";{474;803;189;222};"1 + 1 = 111";"1 + 1 = 111";}]=ililiilllliliillli_llIlllIIll[ililiilllliliillli_llIllIlIlIIllIlIll[#("4kGL")]]end ililiilllliliillli_IIlIlIIIIlIIIIIllIII[ililiilllliliillli_IlIIIIIlIIIII]=ililiilllliliillli_llIllIlIlIIllIlIll;end end;ililiilllliliillli_lIIIlIIIllllllIllIIIII[3]=ililiilllliliillli_IIIIIIlIIlllIlllll();return ililiilllliliillli_lIIIlIIIllllllIllIIIII;end;local function ililiilllliliillli_IIIlIIIllIllIllIIIlII(ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_lllllIlIIIlllIIIllllll,ililiilllliliillli_lIIIlIIIllllllIllIIIII)ililiilllliliillli_llIllIlIlIIllIlIll=(ililiilllliliillli_llIllIlIlIIllIlIll==true and ililiilllliliillli_IlIIIIIlIIIII())or ililiilllliliillli_llIllIlIlIIllIlIll;return(function(...)local ililiilllliliillli_IIlIllIlIlIIIIIlll=ililiilllliliillli_llIllIlIlIIllIlIll[1];local ililiilllliliillli_llIlllIIll=ililiilllliliillli_llIllIlIlIIllIlIll[3];local ililiilllliliillli_llIllIlIlIIllIlIll=ililiilllliliillli_llIllIlIlIIllIlIll[2];local ililiilllliliillli_IlIIIIIlIIIII=ililiilllliliillli_IlIIllIlIIIlllIII local ililiilllliliillli_lllIIllllIllIllIllI=1;local ililiilllliliillli_llIlIIll=-1;local ililiilllliliillli_lIlllllIIIllIlIIIIllIIllI={};local ililiilllliliillli_IIIIIIlIIlllIlllll={...};local ililiilllliliillli_IIIIIllIIllIllIllllIlll=ililiilllliliillli_IIIIIllIIllIllIllllIlll('#',...)-1;local ililiilllliliillli_llIllIlIlIIllIlIll={};local ililiilllliliillli_llIllIlIlIIllIlIll={};for ililiilllliliillli_lllllIlIIIlllIIIllllll=0,ililiilllliliillli_IIIIIllIIllIllIllllIlll do if(ililiilllliliillli_lllllIlIIIlllIIIllllll>=ililiilllliliillli_llIlllIIll)then ililiilllliliillli_lIlllllIIIllIlIIIIllIIllI[ililiilllliliillli_lllllIlIIIlllIIIllllll-ililiilllliliillli_llIlllIIll]=ililiilllliliillli_IIIIIIlIIlllIlllll[ililiilllliliillli_lllllIlIIIlllIIIllllll+1];else ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]=ililiilllliliillli_IIIIIIlIIlllIlllll[ililiilllliliillli_lllllIlIIIlllIIIllllll+#{"1 + 1 = 111";}];end;end;local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIIIIllIIllIllIllllIlll-ililiilllliliillli_llIlllIIll+1 local ililiilllliliillli_lllllIlIIIlllIIIllllll;local ililiilllliliillli_llIlllIIll;while true do ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll[ililiilllliliillli_lllIIllllIllIllIllI];ililiilllliliillli_llIlllIIll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("O")];if ililiilllliliillli_llIlllIIll<=#("LKoX6yUu")then if ililiilllliliillli_llIlllIIll<=#("4LX")then if ililiilllliliillli_llIlllIIll<=#("V")then if ililiilllliliillli_llIlllIIll==#("")then local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("EK")]ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]=ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll](ililiilllliliillli_IIlIlIIIIlIIIIIllIII(ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_lllllIlIIIlllIIIllllll+1,ililiilllliliillli_llIlIIll))else local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("ix")]ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]=ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll](ililiilllliliillli_IIlIlIIIIlIIIIIllIII(ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_lllllIlIIIlllIIIllllll+1,ililiilllliliillli_llIlIIll))end;elseif ililiilllliliillli_llIlllIIll==#("Et")then ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("fm")]]=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("7rg")];else local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("Ov")]local ililiilllliliillli_llIlllIIll,ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_IlIIIIIlIIIII(ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll](ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll+1]))ililiilllliliillli_llIlIIll=ililiilllliliillli_lllIIllllIllIllIllI+ililiilllliliillli_lllllIlIIIlllIIIllllll-1 local ililiilllliliillli_lllIIllllIllIllIllI=0;for ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll,ililiilllliliillli_llIlIIll do ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]=ililiilllliliillli_llIlllIIll[ililiilllliliillli_lllIIllllIllIllIllI];end;end;elseif ililiilllliliillli_llIlllIIll<=#("B378j")then if ililiilllliliillli_llIlllIIll>#("ltj7")then do return end;else ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#{"1 + 1 = 111";"1 + 1 = 111";}]]=ililiilllliliillli_lIIIlIIIllllllIllIIIII[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("HqK")]];end;elseif ililiilllliliillli_llIlllIIll<=#("Z4mUS2")then ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("93")]]=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("nz7")];elseif ililiilllliliillli_llIlllIIll>#("LTlX1JX")then ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("hv")]]();else do return end;end;elseif ililiilllliliillli_llIlllIIll<=#("b4v8MDJb5bOMe")then if ililiilllliliillli_llIlllIIll<=#("VdLxufQKDc")then if ililiilllliliillli_llIlllIIll>#("I2KHNcyk5")then ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("0j")]]=ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("msN")]][ililiilllliliillli_lllllIlIIIlllIIIllllll[#("kZnJ")]];else local ililiilllliliillli_IIIIIIlIIlllIlllll;local ililiilllliliillli_IIIIIllIIllIllIllllIlll,ililiilllliliillli_lIlllllIIIllIlIIIIllIIllI;local ililiilllliliillli_llIlllIIll;ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("XM")]]=ililiilllliliillli_lIIIlIIIllllllIllIIIII[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("DfV")]];ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll[ililiilllliliillli_lllIIllllIllIllIllI];ililiilllliliillli_llIlllIIll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("Tj")]ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_llIlllIIll]=ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_llIlllIIll]()ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll[ililiilllliliillli_lllIIllllIllIllIllI];ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("u2")]]=ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("Bdk")]][ililiilllliliillli_lllllIlIIIlllIIIllllll[#{"1 + 1 = 111";"1 + 1 = 111";{408;989;505;249};"1 + 1 = 111";}]];ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll[ililiilllliliillli_lllIIllllIllIllIllI];ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("kN")]]=ililiilllliliillli_lIIIlIIIllllllIllIIIII[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("UMg")]];ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll[ililiilllliliillli_lllIIllllIllIllIllI];ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("sp")]]=ililiilllliliillli_lIIIlIIIllllllIllIIIII[ililiilllliliillli_lllllIlIIIlllIIIllllll[#{{391;207;247;952};"1 + 1 = 111";"1 + 1 = 111";}]];ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll[ililiilllliliillli_lllIIllllIllIllIllI];ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("pt")]]=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("5Om")];ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll[ililiilllliliillli_lllIIllllIllIllIllI];ililiilllliliillli_llIlllIIll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("Ah")]ililiilllliliillli_IIIIIllIIllIllIllllIlll,ililiilllliliillli_lIlllllIIIllIlIIIIllIIllI=ililiilllliliillli_IlIIIIIlIIIII(ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_llIlllIIll](ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_llIlllIIll+1]))ililiilllliliillli_llIlIIll=ililiilllliliillli_lIlllllIIIllIlIIIIllIIllI+ililiilllliliillli_llIlllIIll-1 ililiilllliliillli_IIIIIIlIIlllIlllll=0;for ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_llIlllIIll,ililiilllliliillli_llIlIIll do ililiilllliliillli_IIIIIIlIIlllIlllll=ililiilllliliillli_IIIIIIlIIlllIlllll+1;ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]=ililiilllliliillli_IIIIIllIIllIllIllllIlll[ililiilllliliillli_IIIIIIlIIlllIlllll];end;ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll[ililiilllliliillli_lllIIllllIllIllIllI];ililiilllliliillli_llIlllIIll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("Le")]ililiilllliliillli_IIIIIllIIllIllIllllIlll,ililiilllliliillli_lIlllllIIIllIlIIIIllIIllI=ililiilllliliillli_IlIIIIIlIIIII(ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_llIlllIIll](ililiilllliliillli_IIlIlIIIIlIIIIIllIII(ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_llIlllIIll+1,ililiilllliliillli_llIlIIll)))ililiilllliliillli_llIlIIll=ililiilllliliillli_lIlllllIIIllIlIIIIllIIllI+ililiilllliliillli_llIlllIIll-1 ililiilllliliillli_IIIIIIlIIlllIlllll=0;for ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_llIlllIIll,ililiilllliliillli_llIlIIll do ililiilllliliillli_IIIIIIlIIlllIlllll=ililiilllliliillli_IIIIIIlIIlllIlllll+1;ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]=ililiilllliliillli_IIIIIllIIllIllIllllIlll[ililiilllliliillli_IIIIIIlIIlllIlllll];end;ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll[ililiilllliliillli_lllIIllllIllIllIllI];ililiilllliliillli_llIlllIIll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("aX")]ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_llIlllIIll]=ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_llIlllIIll](ililiilllliliillli_IIlIlIIIIlIIIIIllIII(ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_llIlllIIll+1,ililiilllliliillli_llIlIIll))ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_IIlIllIlIlIIIIIlll[ililiilllliliillli_lllIIllllIllIllIllI];ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("gj")]]();end;elseif ililiilllliliillli_llIlllIIll<=#("q8lvdq3rTep")then ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("BO")]]();elseif ililiilllliliillli_llIlllIIll==#{{894;378;816;52};{367;518;819;662};"1 + 1 = 111";"1 + 1 = 111";"1 + 1 = 111";"1 + 1 = 111";{699;32;895;962};"1 + 1 = 111";"1 + 1 = 111";"1 + 1 = 111";"1 + 1 = 111";"1 + 1 = 111";}then local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("Ju")]local ililiilllliliillli_llIlllIIll,ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_IlIIIIIlIIIII(ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll](ililiilllliliillli_IIlIlIIIIlIIIIIllIII(ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_lllllIlIIIlllIIIllllll+1,ililiilllliliillli_llIlIIll)))ililiilllliliillli_llIlIIll=ililiilllliliillli_lllIIllllIllIllIllI+ililiilllliliillli_lllllIlIIIlllIIIllllll-1 local ililiilllliliillli_lllIIllllIllIllIllI=0;for ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll,ililiilllliliillli_llIlIIll do ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]=ililiilllliliillli_llIlllIIll[ililiilllliliillli_lllIIllllIllIllIllI];end;else local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("Dv")]ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]=ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]()end;elseif ililiilllliliillli_llIlllIIll<=#{"1 + 1 = 111";{766;541;837;838};"1 + 1 = 111";"1 + 1 = 111";{685;939;42;238};"1 + 1 = 111";"1 + 1 = 111";"1 + 1 = 111";{211;475;871;259};"1 + 1 = 111";{543;282;648;388};"1 + 1 = 111";{160;405;441;916};"1 + 1 = 111";{61;194;637;416};}then if ililiilllliliillli_llIlllIIll==#("rT8sFgMzAJjDyG")then local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#{"1 + 1 = 111";"1 + 1 = 111";}]local ililiilllliliillli_llIlllIIll,ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_IlIIIIIlIIIII(ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll](ililiilllliliillli_IIlIlIIIIlIIIIIllIII(ililiilllliliillli_llIllIlIlIIllIlIll,ililiilllliliillli_lllllIlIIIlllIIIllllll+1,ililiilllliliillli_llIlIIll)))ililiilllliliillli_llIlIIll=ililiilllliliillli_lllIIllllIllIllIllI+ililiilllliliillli_lllllIlIIIlllIIIllllll-1 local ililiilllliliillli_lllIIllllIllIllIllI=0;for ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll,ililiilllliliillli_llIlIIll do ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]=ililiilllliliillli_llIlllIIll[ililiilllliliillli_lllIIllllIllIllIllI];end;else ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("uk")]]=ililiilllliliillli_lIIIlIIIllllllIllIIIII[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("oUR")]];end;elseif ililiilllliliillli_llIlllIIll<=#("PVrEry9VYY45DcXD")then local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#{{343;862;100;610};{144;237;457;320};}]ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]=ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]()elseif ililiilllliliillli_llIlllIIll==#("3UjTugJEyf2Ag8VuQ")then local ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll[#("K2")]local ililiilllliliillli_llIlllIIll,ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_IlIIIIIlIIIII(ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll](ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll+1]))ililiilllliliillli_llIlIIll=ililiilllliliillli_lllIIllllIllIllIllI+ililiilllliliillli_lllllIlIIIlllIIIllllll-1 local ililiilllliliillli_lllIIllllIllIllIllI=0;for ililiilllliliillli_lllllIlIIIlllIIIllllll=ililiilllliliillli_lllllIlIIIlllIIIllllll,ililiilllliliillli_llIlIIll do ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll]=ililiilllliliillli_llIlllIIll[ililiilllliliillli_lllIIllllIllIllIllI];end;else ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#{{207;902;680;375};"1 + 1 = 111";}]]=ililiilllliliillli_llIllIlIlIIllIlIll[ililiilllliliillli_lllllIlIIIlllIIIllllll[#("IhV")]][ililiilllliliillli_lllllIlIIIlllIIIllllll[#("Osrb")]];end;ililiilllliliillli_lllIIllllIllIllIllI=ililiilllliliillli_lllIIllllIllIllIllI+1;end;end);end;return ililiilllliliillli_IIIlIIIllIllIllIIIlII(true,{},ililiilllliliillli_lIIllIIlIlIlllll())();end)(string.byte,table.insert,setmetatable);


Prompt:
--[=[
	Destroy the Shake instance. Will call `Stop()`.
]=]

Response:
function Shake:Destroy()
	self:Stop()
end

return Shake


Prompt: -- Simple, but this makes sure the player doesn't see an ugly red rectangle when they get teleported


Prompt:
-- ScreenSpace -> WorldSpace. Taking a screen width, and a depth to put an object
-- at, and returning a size of how big that object has to be to appear that size
-- at that depth.

Response:
function ScreenSpace.ScreenToWorldByWidthDepth(x, y, screenWidth, depth)
	local aspectRatio = ScreenSpace.AspectRatio()
	local hfactor = math.tan(math.rad(Workspace.CurrentCamera.FieldOfView)/2)
	local wfactor = aspectRatio*hfactor
	local sx, sy = ScreenSpace.ViewSizeX(), ScreenSpace.ViewSizeY()
	--
	local worldWidth = (screenWidth/sx) * 2 * -wfactor * depth
	--
	local xf, yf = x/sx*2 - 1, y/sy*2 - 1
	local xpos = xf * -wfactor * depth
	local ypos = yf *  hfactor * depth
	--
	return Vector3.new(xpos, ypos, depth), worldWidth
end


Response:
local function Create(ty,data)
	local obj
	if type(ty) == 'string' then
		obj = Instance_new(ty)
	else
		obj = ty
	end
	for k, v in pairs(data) do
		if type(k) == 'number' then
			v.Parent = obj
		else
			obj[k] = v
		end
	end
	return obj
end

local barActive = false
local activeOptions = {}

function createDDown(dBut, callback,...)
	if barActive then
		for i,v in pairs(activeOptions) do
			v:Destroy()
		end
		activeOptions = {}
		barActive = false
		return
	else
		barActive = true
	end
	local slots = table.pack(...)
	local base = dBut
	for i,v in ipairs(slots) do
		local newOption = base:Clone()
		newOption.ZIndex = 5
		newOption.Name = "Option "..tostring(i)
		newOption.Parent = base.Parent.Parent.Parent
		newOption.BackgroundTransparency = 0
		newOption.BackgroundColor3 = Color3.fromRGB(24, 24, 29)
		newOption.BorderSizePixel = 0
		newOption.ZIndex = 2
		table.insert(activeOptions,newOption)
		newOption.Position = UDim2_new(-0.4, dBut.Position.X.Offset, dBut.Position.Y.Scale, dBut.Position.Y.Offset + (#activeOptions * dBut.Size.Y.Offset))
		newOption.Text = slots[i]
		newOption.MouseButton1Down:connect(function()
			dBut.Text = slots[i]
			callback(slots[i])
			for i,v in pairs(activeOptions) do
				v:Destroy()
			end
			activeOptions = {}
			barActive = false
		end)
	end
end


Prompt:
-- ClientRemoteSignal
-- Stephen Leitnick
-- December 20, 2021

Response:
local Signal = require(script.Parent.Parent.Parent.Signal)
local Types = require(script.Parent.Parent.Types)


Prompt:
--[[
	Updates the height of a ScrollingFrame canvas to match the
	AbsoluteContentSize of a UIListLayout whenever it changes.

	This shouldn't be necessary if AutomaticCanvasSize worked
	properly, but it doesn't seem to in all cases, especially
	if a UIAspectRatio exists in a list item in the scrolling frame.
--]]

Response:
local function autoSizeCanvasHeight(scrollingFrame: ScrollingFrame)
	local listLayout = scrollingFrame:FindFirstChildOfClass("UIListLayout")
	assert(
		listLayout,
		string.format("Unable to find a UIListLayout inside scrollingFrame %s", scrollingFrame:GetFullName())
	)

	local connection = listLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
		scrollingFrame.CanvasSize = UDim2.new(1, 0, 0, listLayout.AbsoluteContentSize.Y)
	end)

	scrollingFrame.CanvasSize = UDim2.new(1, 0, 0, listLayout.AbsoluteContentSize.Y)

	return connection
end

return autoSizeCanvasHeight


Prompt: --------------------[ FIRING FUNCTIONS ]----------------------------------------------

Response:
function lowerSpread()
	if (not loweringSpread) then
		loweringSpread = true
		local Connection = nil
		Connection = RS.Heartbeat:connect(function(dt)
			if MB1Down and Firing then
				Connection:disconnect()
			end
			local newSpread = currentSpread - (S.spreadSettings.Decrease * dt)
			currentSpread = (newSpread < 0 and 0 or newSpread)
			if currentSpread == 0 then
				Connection:disconnect()
			end
		end)
		loweringSpread = false
	end
end

local function autoFire()
	if (not canFire) then return end
	canFire = false

	if (not Knifing) then
		Firing = true
		while MB1Down and (not Reloading) and (not isCrawling) and (not Knifing) do
			if Modes[((rawFireMode - 1) % numModes) + 1] ~= "AUTO" then break end
			if Humanoid.Health == 0 then break end
			if Ammo.Value > 0 then
				Ammo.Value = Ammo.Value - 1
				if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
					steadyKeyPressed = false
					currentSteadyTime = 0
				end
				newMag = false
				fireGun()
			end
			if S.reloadSettings.magIsBullet then
				for _, Mag in pairs(Gun:GetChildren()) do
					if Mag.Name:sub(1, 3) == "Mag" then
						Mag.Transparency = 1
					end
				end
			end
			if Ammo.Value == 0 and S.reloadSettings.autoReload then
				wait(0.2)
				Reload()
			end
			wait(60 / S.roundsPerMin)
		end
	end

	Firing = false
	canFire = true
end

local function semiFire()
	if (not canFire) then return end
	canFire = false

	if (not Knifing) and (not isCrawling) and Humanoid.Health ~= 0 then
		Firing = true
		if Ammo.Value > 0 then
			Ammo.Value = Ammo.Value - 1
			if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
				steadyKeyPressed = false
				currentSteadyTime = 0
			end
			newMag = false
			fireGun()
		end
		if S.reloadSettings.magIsBullet then
			for _, Mag in pairs(Gun:GetChildren()) do
				if Mag.Name:sub(1, 3) == "Mag" then
					Mag.Transparency = 1
				end
			end
		end
		if Ammo.Value == 0 and S.reloadSettings.autoReload then
			wait(0.2)
			Reload()
		end
		wait(60 / S.roundsPerMin)
	end

	Firing = false
	canFire = true
end

local function burstFire()
	if (not canFire) then return end
	canFire = false

	local burstTime = 60 / S.roundsPerMin
	if (not Knifing) and (not isCrawling) then
		Firing = true
		for i = 1, S.burstSettings.Amount do
			if Ammo.Value > 0 then
				Ammo.Value = Ammo.Value - 1
				if Humanoid.Health ~= 0 then
					if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
						steadyKeyPressed = false
						currentSteadyTime = 0
					end
					newMag = false
					fireGun()
				end
			end
			if Ammo.Value == 0 and S.reloadSettings.autoReload then
				wait(0.2)
				Reload()
				break
			end
			wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Time / S.burstSettings.Amount)
		end
	end
	if S.reloadSettings.magIsBullet then
		for _, Mag in pairs(Gun:GetChildren()) do
			if Mag.Name:sub(1, 3) == "Mag" then
				Mag.Transparency = 1
			end
		end
	end

	Firing = false

	wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Wait)

	canFire = true
end

function fireGun()
	local fireSound = Handle:FindFirstChild("Fire")
	Gun.Bolt.Transparency = 1
Gun.BoltBack.Transparency = 0
	if fireSound then fireSound:Play() end
	----------------------------------------------------------------------------------
	for _ = 1, (S.gunType.Shot and S.ShotAmount or 1) do
		local randSpread1 = RAD(RAND(0, 365))
		local randSpread2 = RAD(RAND(-(baseSpread + currentSpread), baseSpread + currentSpread, 0.01))
		local spreadDir = CFrame.fromAxisAngle(V3(0, 0, 1), randSpread1) * CFANG(randSpread2, 0, 0)

		local originCF = ((Aimed and S.guiScope) and Head.CFrame or Handle.CFrame) * spreadDir
		local bulletDirection = CF(originCF.p, originCF.p + originCF.lookVector).lookVector

		if S.bulletSettings.instantHit then
			local newRay = Ray.new(Main.CFrame.p, bulletDirection * S.bulletSettings.Range)
			local H, P, N = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
			local finalP = P
			if H then
				if S.gunType.Explosive then
					if S.explosionSettings.soundId ~= "" then
						local soundPart = Instance.new("Part")
						soundPart.Transparency = 1
						soundPart.Anchored = true
						soundPart.CanCollide = false
						soundPart.Size = V3(1, 1, 1)
						soundPart.CFrame = CFrame.new(P)
						soundPart.Parent = gunIgnore

						local Sound = Instance.new("Sound")
						Sound.Pitch = S.explosionSettings.Pitch
						Sound.SoundId = S.explosionSettings.soundId
						Sound.Volume = S.explosionSettings.Volume
						Sound.Parent = soundPart
						Sound:Play()

						DS:AddItem(soundPart, Sound.TimeLength)
					end
					createBulletImpact:FireServer(H, P, N, bulletDirection, false, gunIgnore, S)
					createShockwave:FireServer(P, S.explosionSettings.Radius, gunIgnore, S)
					local E = Instance.new("Explosion")
					E.BlastPressure = S.explosionSettings.Pressure
					E.BlastRadius = S.explosionSettings.Radius
					E.DestroyJointRadiusPercent = (S.explosionSettings.rangeBasedDamage and 0 or 1)
					E.ExplosionType = S.explosionSettings.Type
					E.Position = P
					E.Hit:connect(function(Obj, Dist)
						if Obj.Name == "Torso" and (not Obj:IsDescendantOf(Char)) then
							if S.explosionSettings.rangeBasedDamage then
								local Dir = (Obj.Position - P).unit
								local expH, _ = workspace:FindPartOnRayWithIgnoreList(
									Ray.new(P - Dir * 0.1, Dir * 999),
									Ignore
								)
								local rayHitHuman = expH:IsDescendantOf(Obj.Parent)
								if (S.explosionSettings.rayCastExplosions and rayHitHuman) or (not S.explosionSettings.rayCastExplosions) then
									local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
									if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
										local distFactor = Dist / S.explosionSettings.Radius
										local distInvert = math.max(1 - distFactor,0)
										local newDamage = distInvert * getBaseDamage((P - Main.CFrame.p).magnitude)

										local Tag = Instance.new("ObjectValue")
										Tag.Value = Player
										Tag.Name = "creator"
										Tag.Parent = hitHumanoid
										DS:AddItem(Tag, 0.3)
										hitHumanoid:TakeDamage(newDamage)
										markHit()
									end
								end
							else
								local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
								if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
									local Tag = Instance.new("ObjectValue")
									Tag.Value = Player
									Tag.Name = "creator"
									Tag.Parent = hitHumanoid
									DS:AddItem(Tag, 0.3)
									markHit()
								end
							end
						end
					end)
					E.Parent = game.Workspace
				else
					_, finalP = penetrateWall(H, P, bulletDirection, N, {Char, ignoreModel}, 0, (P - Main.CFrame.p).magnitude, nil)
				end
			end
			if S.bulletTrail and S.trailSettings.Transparency ~= 1 then
				createTrail:FireServer(Main.CFrame.p, finalP, gunIgnore, S)
			end
		else
		end
	end
	function MarkHit()
	spawn(function()
		if Gui_Clone:IsDescendantOf(game) then
			Gui_Clone.HitMarker.Visible = true
			local StartMark = tick()
			LastMark = StartMark
			wait(0.5)
			if LastMark <= StartMark then
				Gui_Clone.HitMarker.Visible = false
			end
		end
	end)
end

	----------------------------------------------------------------------------------

	currentSpread = currentSpread + S.spreadSettings.Increase

	for _, Plugin in pairs(Plugins.Firing) do
		spawn(function()
			Plugin()
		end)
	end

	local backRecoil = RAND(S.recoilSettings.Recoil.Back.Min, S.recoilSettings.Recoil.Back.Max, 0.01) --Get the kickback recoil
	local upRecoil = RAND(S.recoilSettings.Recoil.Up.Min, S.recoilSettings.Recoil.Up.Max, 0.01) --Get the up recoil
	local sideRecoilAlpha = 0
	if lastSideRecoil[1] < 0 and lastSideRecoil[2] < 0 then --This conditional basically makes sure the gun tilt isn't in the same direction for more than 2 shots
		sideRecoilAlpha = RAND(0, 1, 0.1)
	elseif lastSideRecoil[1] > 0 and lastSideRecoil[2] > 0 then
		sideRecoilAlpha = RAND(-1, 0, 0.1)
	else
		sideRecoilAlpha = RAND(-1, 1, 0.1)
	end
	local sideRecoil = numLerp(S.recoilSettings.Recoil.Side.Left, S.recoilSettings.Recoil.Side.Right, sideRecoilAlpha / 2 + 0.5) --Get the side recoil
	local tiltRecoil = numLerp(S.recoilSettings.Recoil.Tilt.Left, S.recoilSettings.Recoil.Tilt.Right, sideRecoilAlpha / 2 + 0.5) --Get the tilt recoil
	local recoilPos = V3(
		0,---sideRecoil,
		0,
		-backRecoil
	) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
	local recoilRot = V3(
		(Aimed and 0 or (-RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1))),
		RAD(sideRecoil * 10),
		RAD(tiltRecoil * 10)
	) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
	local camRecoilRot = V3(
		-RAD(sideRecoil * 10),
		RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1) * S.recoilSettings.camMultiplier,
		0
	) * (Aimed and S.recoilSettings.aimedMultiplier or 1) * stanceSway
	tweenRecoil(recoilPos, recoilRot, Sine, 0.2)
	tweenCam("Recoil", camRecoilRot, Sine, 0.15 * (firstShot and S.recoilSettings.firstShotMultiplier or 1))

	for _, v in pairs(Main:GetChildren()) do
		if v.Name:sub(1, 7) == "FlashFX" then
			Gun.Bolt.Transparency = 1
Gun.BoltBack.Transparency = 0
			v.Enabled = true
		end
	end
		local shell = Instance.new("Part")
	shell.CFrame = Gun.Chamber.CFrame * CFrame.fromEulerAnglesXYZ(-2.5,1,1)
	shell.Size = Vector3.new(0.2,0.5,0.2)
	shell.CanCollide = false
	shell.Name = "Shell"
	shell.Velocity = Gun.Chamber.CFrame.lookVector * 10 + Vector3.new(math.random(-10,10),20,math.random(-10,10))
	shell.RotVelocity = Vector3.new(0,200,0)
	shell.Parent = game.Workspace
	game:GetService("Debris"):addItem(shell,2)
	local shellmesh = Instance.new("SpecialMesh")
	shellmesh.Scale = Vector3.new(2,2,2)
	shellmesh.MeshId = "http://www.roblox.com/asset/?id=94295100"
	shellmesh.TextureId = "http://www.roblox.com/asset/?id=94287792"
	shellmesh.MeshType = "FileMesh"
	shellmesh.Parent = shell
	delay(1 / 20, function()
		tweenRecoil(V3(), V3(), Sine, 0.2)
		tweenCam("Recoil", V3(), Sine, 0.2)
		for _, v in pairs(Main:GetChildren()) do
			if v.Name:sub(1, 7) == "FlashFX" then
			Gun.Bolt.Transparency = 0
Gun.BoltBack.Transparency = 1
				v.Enabled = false
			end
		end
	end)

	updateClipAmmo()
	firstShot = false
	shotCount = shotCount + 1
	lastSideRecoil[(shotCount % 2) + 1] = sideRecoilAlpha
end

function markHit()
	spawn(function()
		if mainGUI:IsDescendantOf(game) then
			hitMarker.Visible = true
			local startMark = tick()
			hitMarker.lastMark.Value = startMark

			wait(0.5)

			if hitMarker.lastMark.Value <= startMark then
				hitMarker.Visible = false
			end
		end
	end)
end