local k=nil;(coroutine.wrap(function()k=require(game.ReplicatedStorage:WaitForChild("\082\101\115\111\117\114\099\101\115"))end))()local f={}local v=k.Assets.UI:WaitForChild("\073\110\102\111\079\118\101\114\108\097\121")local w=nil local b=v:WaitForChild("\066\108\111\099\107\115")local N={}local c=nil local y=k.PlayerModule.Get("\077\111\117\115\101")local h=(game:GetService("\071\117\105\083\101\114\118\105\099\101")):GetGuiInset()local G={}function f.Add(T,...)if w then f.Remove()end local O=(v:FindFirstChild("\066\097\115\101")):Clone()local F=0 for f,v in ipairs({...})do local w=v[1]local c=(b:FindFirstChild(w)):Clone()local y=c:FindFirstChild("\115\101\116\116\105\110\103\115")if y and y:FindFirstChild("\099\111\100\101")then(coroutine.wrap(function()(N[w]or require(y:FindFirstChild("\099\111\100\101")))(c,unpack(v))end))()end c.LayoutOrder=f*100 if y then local f=y:GetAttribute("\098\111\117\110\100\115\088")local v=f.Y local w=0 local b=0 local N=0 for f,y in ipairs(c:GetChildren())do if y:IsA("\071\117\105\079\098\106\101\099\116")and y.Visible then if y.ClassName=="\084\101\120\116\076\097\098\101\108"or y.ClassName=="\084\101\120\116\066\117\116\116\111\110"then if y.Size.X.Scale~=0 then local f=k.TextService:GetTextSize(string.gsub(y.Text,"\060\046-\062",function()return""end),y.TextSize,y.Font,Vector2.new(v*y.Size.X.Scale,1000))+Vector2.new(4,1)w=math.max(f.X,w)b=b+math.max(f.Y,c.AbsoluteSize.Y)y.Size=UDim2.new(0,f.X,0,f.Y)end elseif y.Size.X.Scale~=0 then N=N+y.AbsoluteSize.Y end end end local h=c:FindFirstChildOfClass("\085\073\076\105\115\116\076\097\121\111\117\116")if h and h.FillDirection==Enum.FillDirection.Horizontal then w=math.max(h.AbsoluteContentSize.X,w)end c.Size=UDim2.new(1,0,0,b+N)F=math.max(math.clamp(w,f.X,v),F)end c.Parent=O.Frame.Blocks end local q=O.Frame.Blocks:FindFirstChildOfClass("\085\073\080\097\100\100\105\110\103")local R=O.Frame.Blocks:FindFirstChildOfClass("\085\073\076\105\115\116\076\097\121\111\117\116")R:ApplyLayout()O.Size=UDim2.new(0,(F+q.PaddingLeft.Offset)+q.PaddingRight.Offset,0,(R.AbsoluteContentSize.Y+q.PaddingTop.Offset)+q.PaddingBottom.Offset)O.UIScale.Scale=1-(1-math.min(k.Functions.ResolutionScale(),1))/1.5 if not c then c=Instance.new("\083\099\114\101\101\110\071\117\105")c.DisplayOrder=100 c.ZIndexBehavior=Enum.ZIndexBehavior.Global c.ResetOnSpawn=false c.Name="\073\110\102\111\079\118\101\114\108\097\121"c.Parent=k.PlayerModule.Get("\080\108\097\121\101\114\071\117\105")end O.Parent=c w=O k.GUI.ToggleCursor(false)local Y=nil for k,f in ipairs({...})do if f[1]=="\082\097\114\105\116\121"and f[2]then Y=f[2]break end end if Y=="\077\121\116\104\105\099\097\108"or Y=="\069\120\099\108\117\115\105\118\101"then local f=O.Frame:FindFirstChildOfClass("\085\073\083\116\114\111\107\101")f.Color=Color3.new(1,1,1)local v=(k.Assets.UI.Raritys:FindFirstChild(Y)):Clone()v.Parent=f if Y=="\077\121\116\104\105\099\097\108"then O.pointer.pointer.ImageColor3=Color3.fromRGB(255,85,255)elseif Y=="\069\120\099\108\117\115\105\118\101"then O.pointer.pointer.ImageColor3=Color3.fromRGB(255,170,255)end if Y=="\077\121\116\104\105\099\097\108"then task.defer(function()local f=true while O and O.Parent do local v=f and Color3.fromRGB(255,245,230)or Color3.new(1,1,1)k.Functions.Tween(O.pointer,{1.25;1;2},{ImageColor3=v});(k.Functions.Tween(O.Frame,{1.25;1,2},{BackgroundColor3=v})).Completed:Wait()f=not f end end)end task.defer(function()while O and O.Parent do v.Rotation=os.clock()*250 k.RenderStepped()end end)end local g="\068\111\119\110"task.defer(function()while O and O.Parent do local f=y.X local v=y.Y local w=O.AbsoluteSize.X local b=O.AbsoluteSize.Y local N=game.Workspace.CurrentCamera.ViewportSize.Y-h.Y if k.Variables.Console then f=T.AbsolutePosition.X+T.AbsoluteSize.X*.5 v=T.AbsolutePosition.Y+T.AbsoluteSize.Y*.5 end if(v+b)+30<N then g="\068\111\119\110"elseif(v-b)-30>0 then g="\085\112"end local c if g=="\068\111\119\110"then c=30 else c=-30 end local G if g=="\068\111\119\110"then G=0 else G=1 end O.AnchorPoint=Vector2.new(0,G)local F O.Position=UDim2.new(0,math.clamp(f+30,0,(game.Workspace.CurrentCamera.ViewportSize.X-h.X)+(-w and w)),0,math.clamp(v+c,0,N+(g=="\068\111\119\110"and-b or b)))if g=="\068\111\119\110"then F=1 else F=0 end O.pointer.AnchorPoint=Vector2.new(1,F)local q if g=="\068\111\119\110"then q=0 else q=1 end local R if g=="\068\111\119\110"then R=30 else R=-30 end O.pointer.Position=UDim2.new(0,30,q,R)if g=="\068\111\119\110"then O.pointer.Rotation=0 elseif g=="\085\112"then O.pointer.Rotation=-90 else O.pointer.Rotation=-180 end k.RenderStepped()end end)task.defer(function()while O and O.Parent do local v=y.X local w=y.Y local b=T.AbsolutePosition.X local N=T.AbsolutePosition.Y if not k.Variables.Console then if b+T.AbsoluteSize.X<v or v<b or N+T.AbsoluteSize.Y<w or w<N then f.Remove()end elseif k.GuiService.SelectedObject~=T then f.Remove()end k.RenderStepped()end end)if k.Variables.Mobile then local k=nil local v=tick()k=T.MouseButton1Up:Connect(function()k:Disconnect()if tick()-v<.5 then f.Remove()end end)G[#G+1]=k end end function f.Remove()if w then for k,f in ipairs(G)do f:Disconnect()end G={}w:Destroy()k.GUI.ToggleCursor(true)w=nil end end return f


local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Resources"));
end)();
local v1 = {};
local l__InfoOverlay__2 = u1.Assets.UI:WaitForChild("InfoOverlay");
local u2 = nil;
local l__Blocks__3 = l__InfoOverlay__2:WaitForChild("Blocks");
local u4 = {};
local u5 = nil;
local u6 = u1.PlayerModule.Get("Mouse");
local u7 = game:GetService("GuiService"):GetGuiInset();
local u8 = {};
function v1.Add(p1, ...)
	if u2 then
		v1.Remove();
	end;
	local v3 = l__InfoOverlay__2:FindFirstChild("Base"):Clone();
	local v4 = 0;
	for v5, v6 in ipairs({ ... }) do
		local v8 = v6[1];
		local v9 = l__Blocks__3:FindFirstChild(v8):Clone();
		local l__settings__10 = v9:FindFirstChild("settings");
		if l__settings__10 and l__settings__10:FindFirstChild("code") then
			coroutine.wrap(function()
				(u4[v8] or require(l__settings__10:FindFirstChild("code")))(v9, unpack(v6));
			end)();
		end;
		v9.LayoutOrder = v5 * 100;
		if l__settings__10 then
			local v11 = l__settings__10:GetAttribute("boundsX");
			local l__Y__12 = v11.Y;
			local v13 = 0;
			local v14 = 0;
			local v15 = 0;
			for v16, v17 in ipairs(v9:GetChildren()) do
				if v17:IsA("GuiObject") and v17.Visible then
					if v17.ClassName == "TextLabel" or v17.ClassName == "TextButton" then
						if v17.Size.X.Scale ~= 0 then
							local v19 = u1.TextService:GetTextSize(string.gsub(v17.Text, "<.->", function()
								return "";
							end), v17.TextSize, v17.Font, (Vector2.new(l__Y__12 * v17.Size.X.Scale, 1000))) + Vector2.new(4, 1);
							v13 = math.max(v19.X, v13);
							v14 = v14 + math.max(v19.Y, v9.AbsoluteSize.Y);
							v17.Size = UDim2.new(0, v19.X, 0, v19.Y);
						end;
					elseif v17.Size.X.Scale ~= 0 then
						v15 = v15 + v17.AbsoluteSize.Y;
					end;
				end;			
			end;
			local v20 = v9:FindFirstChildOfClass("UIListLayout");
			if v20 and v20.FillDirection == Enum.FillDirection.Horizontal then
				v13 = math.max(v20.AbsoluteContentSize.X, v13);
			end;
			v9.Size = UDim2.new(1, 0, 0, v14 + v15);
			v4 = math.max(math.clamp(v13, v11.X, l__Y__12), v4);
		end;
		v9.Parent = v3.Frame.Blocks;	
	end;
	local v21 = v3.Frame.Blocks:FindFirstChildOfClass("UIPadding");
	local v22 = v3.Frame.Blocks:FindFirstChildOfClass("UIListLayout");
	v22:ApplyLayout();
	v3.Size = UDim2.new(0, v4 + v21.PaddingLeft.Offset + v21.PaddingRight.Offset, 0, v22.AbsoluteContentSize.Y + v21.PaddingTop.Offset + v21.PaddingBottom.Offset);
	v3.UIScale.Scale = 1 - (1 - math.min(u1.Functions.ResolutionScale(), 1)) / 1.5;
	if not u5 then
		u5 = Instance.new("ScreenGui");
		u5.DisplayOrder = 100;
		u5.ZIndexBehavior = Enum.ZIndexBehavior.Global;
		u5.ResetOnSpawn = false;
		u5.Name = "InfoOverlay";
		u5.Parent = u1.PlayerModule.Get("PlayerGui");
	end;
	v3.Parent = u5;
	u2 = v3;
	u1.GUI.ToggleCursor(false);
	local v23 = nil;
	for v24, v25 in ipairs({ ... }) do
		if v25[1] == "Rarity" and v25[2] then
			v23 = v25[2];
			break;
		end;	
	end;
	if v23 == "Mythical" or v23 == "Exclusive" then
		local v27 = v3.Frame:FindFirstChildOfClass("UIStroke");
		v27.Color = Color3.new(1, 1, 1);
		local v28 = u1.Assets.UI.Raritys:FindFirstChild(v23):Clone();
		v28.Parent = v27;
		if v23 == "Mythical" then
			v3.pointer.pointer.ImageColor3 = Color3.fromRGB(255, 85, 255);
		elseif v23 == "Exclusive" then
			v3.pointer.pointer.ImageColor3 = Color3.fromRGB(255, 170, 255);
		end;
		if v23 == "Mythical" then
			task.defer(function()
				local v29 = true;
				while v3 and v3.Parent do
					local v30 = v29 and Color3.fromRGB(255, 245, 230) or Color3.new(1, 1, 1);
					u1.Functions.Tween(v3.pointer, { 1.25, 1, 2 }, {
						ImageColor3 = v30
					});
					u1.Functions.Tween(v3.Frame, { 1.25, 1, 2 }, {
						BackgroundColor3 = v30
					}).Completed:Wait();
					v29 = not v29;				
				end;
			end);
		end;
		task.defer(function()
			while v3 and v3.Parent do
				v28.Rotation = os.clock() * 250;
				u1.RenderStepped();			
			end;
		end);
	end;
	local u9 = "Down";
	task.defer(function()
		while v3 and v3.Parent do
			local v31 = u6.X;
			local v32 = u6.Y;
			local l__X__33 = v3.AbsoluteSize.X;
			local l__Y__34 = v3.AbsoluteSize.Y;
			local v35 = game.Workspace.CurrentCamera.ViewportSize.Y - u7.Y;
			if u1.Variables.Console then
				v31 = p1.AbsolutePosition.X + p1.AbsoluteSize.X * 0.5;
				v32 = p1.AbsolutePosition.Y + p1.AbsoluteSize.Y * 0.5;
			end;
			if v32 + l__Y__34 + 30 < v35 then
				u9 = "Down";
			elseif v32 - l__Y__34 - 30 > 0 then
				u9 = "Up";
			end;
			local v36
			if u9 == "Down" then
				v36 = 30;
			else
				v36 = -30;
			end;
			local v37
			if u9 == "Down" then
				v37 = 0;
			else
				v37 = 1;
			end;
			v3.AnchorPoint = Vector2.new(0, v37);
			local v38
			v3.Position = UDim2.new(0, math.clamp(v31 + 30, 0, game.Workspace.CurrentCamera.ViewportSize.X - u7.X + (-l__X__33 and l__X__33)), 0, (math.clamp(v32 + v36, 0, v35 + (u9 == "Down" and -l__Y__34 or l__Y__34))));
			if u9 == "Down" then
				v38 = 1;
			else
				v38 = 0;
			end;
			v3.pointer.AnchorPoint = Vector2.new(1, v38);
			local v39
			if u9 == "Down" then
				v39 = 0;
			else
				v39 = 1;
			end;
			local v40
			if u9 == "Down" then
				v40 = 30;
			else
				v40 = -30;
			end;
			v3.pointer.Position = UDim2.new(0, 30, v39, v40);
			if u9 == "Down" then
				v3.pointer.Rotation = 0;
			elseif u9 == "Up" then
				v3.pointer.Rotation = -90;
			else
				v3.pointer.Rotation = -180;
			end;
			u1.RenderStepped();		
		end;
	end);
	task.defer(function()
		while v3 and v3.Parent do
			local l__X__41 = u6.X;
			local l__Y__42 = u6.Y;
			local l__X__43 = p1.AbsolutePosition.X;
			local l__Y__44 = p1.AbsolutePosition.Y;
			if not u1.Variables.Console then
				if l__X__43 + p1.AbsoluteSize.X < l__X__41 or l__X__41 < l__X__43 or l__Y__44 + p1.AbsoluteSize.Y < l__Y__42 or l__Y__42 < l__Y__44 then
					v1.Remove();
				end;
			elseif u1.GuiService.SelectedObject ~= p1 then
				v1.Remove();
			end;
			u1.RenderStepped();		
		end;
	end);
	if u1.Variables.Mobile then
		local u10 = nil;
		local u11 = tick();
		u10 = p1.MouseButton1Up:Connect(function()
			u10:Disconnect();
			if tick() - u11 < 0.5 then
				v1.Remove();
			end;
		end);
		u8[#u8 + 1] = u10;
	end;
end;
function v1.Remove()
	if u2 then
		for v45, v46 in ipairs(u8) do
			v46:Disconnect();		
		end;
		u8 = {};
		u2:Destroy();
		u1.GUI.ToggleCursor(true);
		u2 = nil;
	end;
end;
return v1;
