client=nil service=nil cPcall=nil Pcall=nil Routine=nil GetEnv=nil origEnv=nil logError=nil return function()local A=nil local J=client local X=nil local o=nil local l=nil local P=nil local u=nil local y=nil;(getfenv()).client=nil;(getfenv()).service=nil;(getfenv()).script=nil local k={Init=function()A=J.UI X=J.Anti o=J.Core l=J.Variables P=J.Functions u=J.Process y=J.Remote end;Returns={};PendingReturns={},EncodeCache={},DecodeCache={};Received=0,Sent=0}local N={}local Y=unpack function N.Test(A)return"\072\069\076\076\079 \070\082\079\077 \084\072\069 \067\076\073\069\078\084 \083\073\068\069 \058\041\033 ",Y(A)end function N.Ping(A)return y.Ping()end function N.ClientHooked(A)return o.Special end local f=next local z=service local s=os local O=tostring local h=table function N.TaskManager(A)if A[1]~="\071\101\116\084\097\115\107\115"then return end local J={}local X,o=z.GetTasks()while true do local A,l=f(X,o)if not A then break end o=A h.insert(J,{Status=l.Status;Name=l.Name,Index=l.Index;Created=l.Created;CurrentTime=s.time(),Function=O(l.Function)})end return J end function N.LoadCode(A)local J=o.LoadCode(A[1],GetEnv())if not J then return end return J()end local x=type function N.Function(A)local X=J.Functions[A[1]]if not X or x(X)~="\102\117\110\099\116\105\111\110"then return end return X(Y(A,2))end function N.Handler(A)local X=J.Handlers[A[1]]if not X or x(X)~="\102\117\110\099\116\105\111\110"then return end return X(Y(A,2))end function N.UIKeepAlive(X)if l.UIKeepAlive then for J,X in f,J.GUIs do if X.KeepAlive then if X.Class=="\083\099\114\101\101\110\071\117\105"or X.Class=="\071\117\105\077\097\105\110"then X.Object.Parent=z.Player.PlayerGui elseif X.Class=="\084\101\120\116\076\097\098\101\108"then X.Object.Parent=A.GetHolder()end X.KeepAlive=false end end end return true end function N.UI(J)return A.Make(J[1],J[3],J[2])end function N.InstanceList(A)local J={}for A,X in f,z.GetAdonisObjects()do h.insert(J,{Text=X:GetFullName(),Desc=X.ClassName})end return J end local g=Enum local R=Color3 function N.ClientLog(A)local J={}local function X(A,X,o)local l,P=z.ExtractLines(A)while true do local A,u=f(l,P)if not A then break end P=A h.insert(J,{Text=u;Desc=X..u,Color=o})end end local o,l=z.LogService:GetLogHistory()while true do local A,J=f(o,l)if not A then break end l=A if J.messageType==g.MessageType.MessageOutput then X(J.message,"\079\117\116\112\117\116\058 ")elseif J.messageType==g.MessageType.MessageWarning then X(J.message,"\087\097\114\110\105\110\103\058 ",R.new(1,1,0))elseif J.messageType==g.MessageType.MessageInfo then X(J.message,"\073\110\102\111\058 ",R.new(0,0,1))elseif J.messageType==g.MessageType.MessageError then X(J.message,"\069\114\114\111\114\058 ",R.new(1,0,0))end end return J end k.Returnables=N local d={}local a=print local V=wait function d.LightingChange(A,J)a(A,"\084\073\067\075\076\069 \077\069\033\063")l.LightingChanged=true z.Lighting[A]=J X.LastChanges.Lighting=A V(.1)l.LightingChanged=false a("\084\073\067\075\076\069\068 \058\041",l.LightingChanged)if X.LastChanges.Lighting==A then X.LastChanges.Lighting=nil end end k.UnEncrypted=d local t={}local U=pcall function t.GetReturn(A)a("\084\072\069 \083\069\082\086\069\082 \073\083 \065\083\075\073\078\071 \085\083 \070\079\082 \065 \082\069\084\085\082\078")local J=A[2]local X={Y(A,3)}local o=y.Returnables[A[1]]if o then local A={U(o,X)}or{}else v30={}end if v30[1]==true then a("\083\069\078\084 \082\069\084\085\082\078")y.Send("\071\105\118\101\082\101\116\117\114\110",J,Y(v30,2))return end logError(v30[2])y.Send("\071\105\118\101\082\101\116\117\114\110",J,"\095\095\065\068\079\078\073\083\095\082\069\084\085\082\078\095\069\082\082\079\082",v30[2])end function t.GiveReturn(A)a("\083\069\082\086\069\082 \071\065\086\069 \085\083 \065 \082\069\084\085\082\078")if y.PendingReturns[A[1]]then a("\086\065\076\073\068 \080\069\078\068\073\078\071 \082\069\084\085\082\078")y.PendingReturns[A[1]]=nil z.Events[A[1]]:fire(Y(A,2))end end function t.SetVariables(A)for A,J in f,A[1]do l[A]=J end end function t.Print(A)a(Y(A))end function t.FireEvent(A)z.FireEvent(Y(A))end function t.Test(A)a("\079\075 \087\069 \071\079\084 \067\079\077\077\085\078\073\067\065\084\073\079\078\033  \079\082\071\076\058 "..O(A[1]))end local C=error function t.TestError(A)C("\084\072\073\083 \073\083 \065 \084\069\083\084 \069\082\082\079\082")end function t.TestEvent(A)y.PlayerEvent(A[1],Y(A,2))end function t.LoadCode(A)local J=o.LoadCode(A[1],GetEnv())if not J then return end return J()end function t.LaunchAnti(A)X.Launch(A[1],A[2])end function t.UI(J)A.Make(J[1],J[3],J[2])end function t.RemoveUI(J)A.Remove(J[1],J[2])end function t.StartLoop(A)local J=A[1]local X=A[2]local l=A[3]local P=o.LoadCode(l,GetEnv())if J and(X and(l and P))then z.StartLoop(J,X,P)end end function t.StopLoop(A)z.StopLoop(A[1])end function t.Function(A)local X=J.Functions[A[1]]if X and x(X)=="\102\117\110\099\116\105\111\110"then Pcall(X,Y(A,2))end end function t.Handler(A)local X=J.Handlers[A[1]]if X and x(X)=="\102\117\110\099\116\105\111\110"then Pcall(X,Y(A,2))end end k.Commands=t function k.Fire(...)local A=u.RateLimits local X=o.RemoteEvent if X and X.Object then local o={...}local l=A and A.Remote or.01 z.Queue("\082\069\077\079\084\069\095\083\069\078\068",function()y.Sent=y.Sent+1 X.Object:FireServer({Mode="\070\105\114\101",Module=J.Module,Loader=J.Loader,Sent=y.Sent,Received=y.Received},Y(o))V(l)end)end end local w=tick function k.Send(A,...)o.LastUpdate=w()y.Fire(y.Encrypt(A,o.Key),...)end function k.GetFire(...)local A=o.RemoteEvent local X=u.RateLimits if A and A.Function then local o=nil local l={...}local P=z.New("\066\105\110\100\097\098\108\101\069\118\101\110\116")local u=X and X.Remote or.02 z.Queue("\082\069\077\079\084\069\095\083\069\078\068",function()y.Sent=y.Sent+1 spawn(function()o={A.Function:InvokeServer({Mode="\071\101\116",Module=J.Module,Loader=J.Loader;Sent=y.Sent;Received=y.Received},Y(l))}P:Fire()end)V(u)end)if not o then P.Event:Wait()P:Destroy()end if o then return Y(o)end end end function k.Get(A,...)o.LastUpdate=w()local J=y.GetFire(y.Encrypt(A,o.Key),...)if x(J)~="\116\097\098\108\101"then return J end return Y(J)end local v=string function k.OldGet(A,...)local J=P:GetRandom()local X=nil local o=z.New("\066\105\110\100\097\098\108\101\069\118\101\110\116")local l=z.Events[J]:Connect(function(...)a("\087\069 \065\082\069 \071\069\084\084\073\078\071 \065 \082\069\084\085\082\078\033")X={...}o:Fire()V()o:Fire()o:Destroy()end)y.PendingReturns[J]=true y.Send("\071\101\116\082\101\116\117\114\110",A,J,...)a(v.format("\071\069\084\084\073\078\071 \082\069\084\085\082\078\083\063 \037\115",O(X)))o.Event:Wait()a(v.format("\087\069 \071\079\084 \073\084\033 \037\115",O(X)))l:Disconnect()if not X then return nil end if X[1]~="\095\095\065\068\079\078\073\083\095\082\069\084\085\082\078\095\069\082\082\079\082"then return Y(X)end C(X[2])end local Z=math function k.Ping()if not y.Get("\080\105\110\103")then return false end return(Z.floor((w()-w())*1000+.5)/1000)*100 end function k.PlayerEvent(A,...)y.Send("\080\108\097\121\101\114\069\118\101\110\116",A,...)end function k.Encrypt(A,J,X)local o=X or y.EncodeCache or{}if not J or not A then return A end if o[J]and o[J][A]then return o[J][A]end local l=o[J]or{}local P=v.byte local u=Z.abs local k=v.sub local N=v.len local Y=v.char local f={}for X=1,N(A),1 do local o=X%N(J)+1 f[X]=v.char((P(k(A,X,X))+P(k(J,o,o)))%126+1)end local z=h.concat(f)o[J]=l l[A]=z return z end function k.Decrypt(A,J,X)local o=X or y.DecodeCache or{}if not J or not A then return A end if o[J]and o[J][A]then return o[J][A]end local l=o[J]or{}local P=v.byte local u=Z.abs local k=v.sub local N=v.len local Y=v.char local f={}for X=1,N(A),1 do local o=X%N(J)+1 f[X]=v.char((P(k(A,X,X))-P(k(J,o,o)))%126-1)end local z=h.concat(f)o[J]=l l[A]=z return z end J.Remote=k end


client = nil;
service = nil;
cPcall = nil;
Pcall = nil;
Routine = nil;
GetEnv = nil;
origEnv = nil;
logError = nil;
return function()
	local u1 = nil;
	local l__client__2 = client;
	local u3 = nil;
	local u4 = nil;
	local u5 = nil;
	local u6 = nil;
	local u7 = nil;
	local u8 = nil;
	getfenv().client = nil;
	getfenv().service = nil;
	getfenv().script = nil;
	local v1 = {
		Init = function()
			u1 = l__client__2.UI;
			u3 = l__client__2.Anti;
			u4 = l__client__2.Core;
			u5 = l__client__2.Variables;
			u6 = l__client__2.Functions;
			u7 = l__client__2.Process;
			u8 = l__client__2.Remote;
		end, 
		Returns = {}, 
		PendingReturns = {}, 
		EncodeCache = {}, 
		DecodeCache = {}, 
		Received = 0, 
		Sent = 0
	};
	local v2 = {};
	local l__unpack__9 = unpack;
	function v2.Test(p1)
		return "HELLO FROM THE CLIENT SIDE :)! ", l__unpack__9(p1);
	end;
	function v2.Ping(p2)
		return u8.Ping();
	end;
	function v2.ClientHooked(p3)
		return u4.Special;
	end;
	local l__next__10 = next;
	local l__service__11 = service;
	local l__os__12 = os;
	local l__tostring__13 = tostring;
	local l__table__14 = table;
	function v2.TaskManager(p4)
		if p4[1] ~= "GetTasks" then
			return;
		end;
		local v3 = {};
		local v4, v5 = l__service__11.GetTasks();
		while true do
			local v6, v7 = l__next__10(v4, v5);
			if not v6 then
				break;
			end;
			v5 = v6;
			l__table__14.insert(v3, {
				Status = v7.Status, 
				Name = v7.Name, 
				Index = v7.Index, 
				Created = v7.Created, 
				CurrentTime = l__os__12.time(), 
				Function = l__tostring__13(v7.Function)
			});		
		end;
		return v3;
	end;
	function v2.LoadCode(p5)
		local v8 = u4.LoadCode(p5[1], GetEnv());
		if not v8 then
			return;
		end;
		return v8();
	end;
	local l__type__15 = type;
	function v2.Function(p6)
		local v9 = l__client__2.Functions[p6[1]];
		if not v9 or l__type__15(v9) ~= "function" then
			return;
		end;
		return v9(l__unpack__9(p6, 2));
	end;
	function v2.Handler(p7)
		local v10 = l__client__2.Handlers[p7[1]];
		if not v10 or l__type__15(v10) ~= "function" then
			return;
		end;
		return v10(l__unpack__9(p7, 2));
	end;
	function v2.UIKeepAlive(p8)
		if u5.UIKeepAlive then
			for v11, v12 in l__next__10, l__client__2.GUIs do
				if v12.KeepAlive then
					if v12.Class == "ScreenGui" or v12.Class == "GuiMain" then
						v12.Object.Parent = l__service__11.Player.PlayerGui;
					elseif v12.Class == "TextLabel" then
						v12.Object.Parent = u1.GetHolder();
					end;
					v12.KeepAlive = false;
				end;
			end;
		end;
		return true;
	end;
	function v2.UI(p9)
		return u1.Make(p9[1], p9[3], p9[2]);
	end;
	function v2.InstanceList(p10)
		local v13 = {};
		for v14, v15 in l__next__10, l__service__11.GetAdonisObjects() do
			l__table__14.insert(v13, {
				Text = v15:GetFullName(), 
				Desc = v15.ClassName
			});
		end;
		return v13;
	end;
	local l__Enum__16 = Enum;
	local l__Color3__17 = Color3;
	function v2.ClientLog(p11)
		local u18 = {};
		local function v16(p12, p13, p14)
			local v17, v18 = l__service__11.ExtractLines(p12);
			while true do
				local v19, v20 = l__next__10(v17, v18);
				if not v19 then
					break;
				end;
				v18 = v19;
				l__table__14.insert(u18, {
					Text = v20, 
					Desc = p13 .. v20, 
					Color = p14
				});			
			end;
		end;
		local v21, v22 = l__service__11.LogService:GetLogHistory();
		while true do
			local v23, v24 = l__next__10(v21, v22);
			if not v23 then
				break;
			end;
			v22 = v23;
			if v24.messageType == l__Enum__16.MessageType.MessageOutput then
				v16(v24.message, "Output: ");
			elseif v24.messageType == l__Enum__16.MessageType.MessageWarning then
				v16(v24.message, "Warning: ", l__Color3__17.new(1, 1, 0));
			elseif v24.messageType == l__Enum__16.MessageType.MessageInfo then
				v16(v24.message, "Info: ", l__Color3__17.new(0, 0, 1));
			elseif v24.messageType == l__Enum__16.MessageType.MessageError then
				v16(v24.message, "Error: ", l__Color3__17.new(1, 0, 0));
			end;		
		end;
		return u18;
	end;
	v1.Returnables = v2;
	local v25 = {};
	local l__print__19 = print;
	local l__wait__20 = wait;
	function v25.LightingChange(p15, p16)
		l__print__19(p15, "TICKLE ME!?");
		u5.LightingChanged = true;
		l__service__11.Lighting[p15] = p16;
		u3.LastChanges.Lighting = p15;
		l__wait__20(0.1);
		u5.LightingChanged = false;
		l__print__19("TICKLED :)", u5.LightingChanged);
		if u3.LastChanges.Lighting == p15 then
			u3.LastChanges.Lighting = nil;
		end;
	end;
	v1.UnEncrypted = v25;
	local v26 = {};
	local l__pcall__21 = pcall;
	function v26.GetReturn(p17)
		l__print__19("THE SERVER IS ASKING US FOR A RETURN");
		local v27 = p17[2];
		local v28 = { l__unpack__9(p17, 3) };
		local v29 = u8.Returnables[p17[1]];
		if v29 then
			local v30 = { l__pcall__21(v29, v28) } or {};
		else
			v30 = {};
		end;
		if v30[1] == true then
			l__print__19("SENT RETURN");
			u8.Send("GiveReturn", v27, l__unpack__9(v30, 2));
			return;
		end;
		logError(v30[2]);
		u8.Send("GiveReturn", v27, "__ADONIS_RETURN_ERROR", v30[2]);
	end;
	function v26.GiveReturn(p18)
		l__print__19("SERVER GAVE US A RETURN");
		if u8.PendingReturns[p18[1]] then
			l__print__19("VALID PENDING RETURN");
			u8.PendingReturns[p18[1]] = nil;
			l__service__11.Events[p18[1]]:fire(l__unpack__9(p18, 2));
		end;
	end;
	function v26.SetVariables(p19)
		for v31, v32 in l__next__10, p19[1] do
			u5[v31] = v32;
		end;
	end;
	function v26.Print(p20)
		l__print__19(l__unpack__9(p20));
	end;
	function v26.FireEvent(p21)
		l__service__11.FireEvent(l__unpack__9(p21));
	end;
	function v26.Test(p22)
		l__print__19("OK WE GOT COMMUNICATION!  ORGL: " .. l__tostring__13(p22[1]));
	end;
	local l__error__22 = error;
	function v26.TestError(p23)
		l__error__22("THIS IS A TEST ERROR");
	end;
	function v26.TestEvent(p24)
		u8.PlayerEvent(p24[1], l__unpack__9(p24, 2));
	end;
	function v26.LoadCode(p25)
		local v33 = u4.LoadCode(p25[1], GetEnv());
		if not v33 then
			return;
		end;
		return v33();
	end;
	function v26.LaunchAnti(p26)
		u3.Launch(p26[1], p26[2]);
	end;
	function v26.UI(p27)
		u1.Make(p27[1], p27[3], p27[2]);
	end;
	function v26.RemoveUI(p28)
		u1.Remove(p28[1], p28[2]);
	end;
	function v26.StartLoop(p29)
		local v34 = p29[1];
		local v35 = p29[2];
		local v36 = p29[3];
		local v37 = u4.LoadCode(v36, GetEnv());
		if v34 and v35 and v36 and v37 then
			l__service__11.StartLoop(v34, v35, v37);
		end;
	end;
	function v26.StopLoop(p30)
		l__service__11.StopLoop(p30[1]);
	end;
	function v26.Function(p31)
		local v38 = l__client__2.Functions[p31[1]];
		if v38 and l__type__15(v38) == "function" then
			Pcall(v38, l__unpack__9(p31, 2));
		end;
	end;
	function v26.Handler(p32)
		local v39 = l__client__2.Handlers[p32[1]];
		if v39 and l__type__15(v39) == "function" then
			Pcall(v39, l__unpack__9(p32, 2));
		end;
	end;
	v1.Commands = v26;
	function v1.Fire(...)
		local l__RateLimits__40 = u7.RateLimits;
		local l__RemoteEvent__41 = u4.RemoteEvent;
		if l__RemoteEvent__41 and l__RemoteEvent__41.Object then
			local u23 = { ... };
			local u24 = l__RateLimits__40 and l__RateLimits__40.Remote or 0.01;
			l__service__11.Queue("REMOTE_SEND", function()
				u8.Sent = u8.Sent + 1;
				l__RemoteEvent__41.Object:FireServer({
					Mode = "Fire", 
					Module = l__client__2.Module, 
					Loader = l__client__2.Loader, 
					Sent = u8.Sent, 
					Received = u8.Received
				}, l__unpack__9(u23));
				l__wait__20(u24);
			end);
		end;
	end;
	local l__tick__25 = tick;
	function v1.Send(p33, ...)
		u4.LastUpdate = l__tick__25();
		u8.Fire(u8.Encrypt(p33, u4.Key), ...);
	end;
	function v1.GetFire(...)
		local l__RemoteEvent__42 = u4.RemoteEvent;
		local l__RateLimits__43 = u7.RateLimits;
		if l__RemoteEvent__42 and l__RemoteEvent__42.Function then
			local u26 = nil;
			local u27 = { ... };
			local u28 = l__service__11.New("BindableEvent");
			local u29 = l__RateLimits__43 and l__RateLimits__43.Remote or 0.02;
			l__service__11.Queue("REMOTE_SEND", function()
				u8.Sent = u8.Sent + 1;
				spawn(function()
					u26 = { l__RemoteEvent__42.Function:InvokeServer({
							Mode = "Get", 
							Module = l__client__2.Module, 
							Loader = l__client__2.Loader, 
							Sent = u8.Sent, 
							Received = u8.Received
						}, l__unpack__9(u27)) };
					u28:Fire();
				end);
				l__wait__20(u29);
			end);
			if not u26 then
				u28.Event:Wait();
				u28:Destroy();
			end;
			if u26 then
				return l__unpack__9(u26);
			end;
		end;
	end;
	function v1.Get(p34, ...)
		u4.LastUpdate = l__tick__25();
		local v44 = u8.GetFire(u8.Encrypt(p34, u4.Key), ...);
		if l__type__15(v44) ~= "table" then
			return v44;
		end;
		return l__unpack__9(v44);
	end;
	local l__string__30 = string;
	function v1.OldGet(p35, ...)
		local v45 = u6:GetRandom();
		local u31 = nil;
		local u32 = l__service__11.New("BindableEvent");
		local v46 = l__service__11.Events[v45]:Connect(function(...)
			l__print__19("WE ARE GETTING A RETURN!");
			u31 = { ... };
			u32:Fire();
			l__wait__20();
			u32:Fire();
			u32:Destroy();
		end);
		u8.PendingReturns[v45] = true;
		u8.Send("GetReturn", p35, v45, ...);
		l__print__19(l__string__30.format("GETTING RETURNS? %s", l__tostring__13(u31)));
		u32.Event:Wait();
		l__print__19(l__string__30.format("WE GOT IT! %s", l__tostring__13(u31)));
		v46:Disconnect();
		if not u31 then
			return nil;
		end;
		if u31[1] ~= "__ADONIS_RETURN_ERROR" then
			return l__unpack__9(u31);
		end;
		l__error__22(u31[2]);
	end;
	local l__math__33 = math;
	function v1.Ping()
		if not u8.Get("Ping") then
			return false;
		end;
		return l__math__33.floor((l__tick__25() - l__tick__25()) * 1000 + 0.5) / 1000 * 100;
	end;
	function v1.PlayerEvent(p36, ...)
		u8.Send("PlayerEvent", p36, ...);
	end;
	function v1.Encrypt(p37, p38, p39)
		local v47 = p39 or (u8.EncodeCache or {});
		if not p38 or not p37 then
			return p37;
		end;
		if v47[p38] and v47[p38][p37] then
			return v47[p38][p37];
		end;
		local v48 = v47[p38] or {};
		local l__byte__49 = l__string__30.byte;
		local l__abs__50 = l__math__33.abs;
		local l__sub__51 = l__string__30.sub;
		local l__len__52 = l__string__30.len;
		local l__char__53 = l__string__30.char;
		local v54 = {};
		for v55 = 1, l__len__52(p37) do
			local v56 = v55 % l__len__52(p38) + 1;
			v54[v55] = l__string__30.char((l__byte__49(l__sub__51(p37, v55, v55)) + l__byte__49(l__sub__51(p38, v56, v56))) % 126 + 1);
		end;
		local v57 = l__table__14.concat(v54);
		v47[p38] = v48;
		v48[p37] = v57;
		return v57;
	end;
	function v1.Decrypt(p40, p41, p42)
		local v58 = p42 or (u8.DecodeCache or {});
		if not p41 or not p40 then
			return p40;
		end;
		if v58[p41] and v58[p41][p40] then
			return v58[p41][p40];
		end;
		local v59 = v58[p41] or {};
		local l__byte__60 = l__string__30.byte;
		local l__abs__61 = l__math__33.abs;
		local l__sub__62 = l__string__30.sub;
		local l__len__63 = l__string__30.len;
		local l__char__64 = l__string__30.char;
		local v65 = {};
		for v66 = 1, l__len__63(p40) do
			local v67 = v66 % l__len__63(p41) + 1;
			v65[v66] = l__string__30.char((l__byte__60(l__sub__62(p40, v66, v66)) - l__byte__60(l__sub__62(p41, v67, v67))) % 126 - 1);
		end;
		local v68 = l__table__14.concat(v65);
		v58[p41] = v59;
		v59[p40] = v68;
		return v68;
	end;
	l__client__2.Remote = v1;
end;
