Quantcast

Merge branch 'refs/heads/second_UIbuttons_bs'

Darthpred [05-14-15 - 21:23]
Merge branch 'refs/heads/second_UIbuttons_bs'
Filename
DafuqIBrokeInButtons.txt
ElvUI_SLE/core/core.lua
ElvUI_SLE/core/toolkit.lua
ElvUI_SLE/defaults/private.lua
ElvUI_SLE/defaults/profile.lua
ElvUI_SLE/libs/LibElv-UIButtons-1.0/LibElv-UIButtons-1.0.lua
ElvUI_SLE/libs/LibElv-UIButtons-1.0/LibElv-UIButtons-1.0.toc
ElvUI_SLE/libs/LibElv-UIButtons-1.0/load_uibuttons.xml
ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/english.lua
ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/load_locales.xml
ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/russian.lua
ElvUI_SLE/libs/LibRealmInfo/LibRealmInfo.lua
ElvUI_SLE/libs/load_libs.xml
ElvUI_SLE/locales/russian.lua
ElvUI_SLE/modules/uibuttons.lua
ElvUI_SLE/options/core_c.lua
ElvUI_SLE/options/uibuttons_c.lua
diff --git a/DafuqIBrokeInButtons.txt b/DafuqIBrokeInButtons.txt
new file mode 100644
index 0000000..5084a99
--- /dev/null
+++ b/DafuqIBrokeInButtons.txt
@@ -0,0 +1,4 @@
+Following settings will be lost:
+UIButtons mover position
+custom roll numbers
+quick actions for dropdown mode
diff --git a/ElvUI_SLE/core/core.lua b/ElvUI_SLE/core/core.lua
index 653b45c..3f359ef 100644
--- a/ElvUI_SLE/core/core.lua
+++ b/ElvUI_SLE/core/core.lua
@@ -232,6 +232,8 @@ end
 function SLE:FixDatabase() --For when we dramatically change some options
 	if E.db.sle.chat.combathide == true then E.db.sle.chat.combathide = "BOTH" end
 	if E.db.sle.chat.combathide == false then E.db.sle.chat.combathide = "NONE" end
+	if E.db.sle.uibuttons.position == "uib_vert" then E.db.sle.uibuttons.orientation = "vertical" end
+	if E.db.sle.uibuttons.position == "uib_hor" then E.db.sle.uibuttons.orientation = "horizontal" end
 end

 function SLE:Initialize()
diff --git a/ElvUI_SLE/core/toolkit.lua b/ElvUI_SLE/core/toolkit.lua
index 32b1fb8..d5618a9 100644
--- a/ElvUI_SLE/core/toolkit.lua
+++ b/ElvUI_SLE/core/toolkit.lua
@@ -13,7 +13,6 @@ local I = E:GetModule('SLE_InstDif')
 local S = E:GetModule("SLE_ScreenSaver")
 local G = E:GetModule("SLE_Garrison")
 local EF = E:GetModule('SLE_ErrorFrame');
-local lib = LibStub("LibRealmInfo")
 local LocTable = {}
 LocTable[1], LocTable[2], LocTable[3], LocTable[4], LocTable[5], LocTable[6], LocTable[7] = GetAvailableLocales()

@@ -66,7 +65,7 @@ local function UpdateAll()
 	end
 	LT:LootShow()
 	LT:Update()
-	UB:FrameSize()
+	UB.Holder:FrameSize()
 	RM:UpdateBar(true)
 	F:UpdateLayout()
 	CH:GMIconUpdate()
diff --git a/ElvUI_SLE/defaults/private.lua b/ElvUI_SLE/defaults/private.lua
index 229a75c..d6a06af 100644
--- a/ElvUI_SLE/defaults/private.lua
+++ b/ElvUI_SLE/defaults/private.lua
@@ -57,7 +57,7 @@ V['sle'] = {
 	},

 	['backgrounds'] = false,
-
+
 	['uiButtonStyle'] = "dropdown",
 }

diff --git a/ElvUI_SLE/defaults/profile.lua b/ElvUI_SLE/defaults/profile.lua
index 821435d..ceb6ec4 100644
--- a/ElvUI_SLE/defaults/profile.lua
+++ b/ElvUI_SLE/defaults/profile.lua
@@ -399,30 +399,31 @@ P['sle'] = {
 		['enable'] = false,
 		['size'] = 17,
 		['mouse'] = false,
+		['menuBackdrop'] = false,
 		['dropdownBackdrop'] = false,
-		['position'] = "uib_vert",
+		['orientation'] = "vertical",
 		['spacing'] = 3,
 		['point'] = "TOPLEFT",
 		['anchor'] = "TOPRIGHT",
 		['xoffset'] = 0,
 		['yoffset'] = 0,
-		['roll'] = {
+		['customroll'] = {
 			['min'] = "1",
 			['max'] = "50",
 		},
-		['cfunc'] = {
+		['Config'] = {
 			['enabled'] = false,
 			['called'] = "Reload",
 		},
-		['afunc'] = {
+		['Addon'] = {
 			['enabled'] = false,
 			['called'] = "Manager",
 		},
-		['sfunc'] = {
+		['Status'] = {
 			['enabled'] = false,
 			['called'] = "AFK",
 		},
-		['rfunc'] = {
+		['Roll'] = {
 			['enabled'] = false,
 			['called'] = "Hundred",
 		},
diff --git a/ElvUI_SLE/libs/LibElv-UIButtons-1.0/LibElv-UIButtons-1.0.lua b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/LibElv-UIButtons-1.0.lua
new file mode 100644
index 0000000..f4b405a
--- /dev/null
+++ b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/LibElv-UIButtons-1.0.lua
@@ -0,0 +1,522 @@
+local MAJOR, MINOR = "LibElv-UIButtons-1.0", 01
+local lib, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
+
+if not lib then return end
+local E, L, V, P, G = unpack(ElvUI)
+local S = E:GetModule("Skins")
+
+local function EqualizeDB(db, default)
+	for key, value in pairs(default) do
+		if not db[key] and type(default[key]) ~= "table" then
+			db[key] = default[key]
+		elseif type(default[key]) == "table" then
+			EqualizeDB(db[key], default[key])
+		end
+	end
+end
+
+local function MoverSize(menu)
+	local db = menu.db
+	if db.orientation == "vertical" then
+		menu:SetWidth(db.size + (E.PixelMode and 2 or 4))
+		menu:SetHeight((db.size*menu.NumBut)+((E.PixelMode and db.spacing or db.spacing+2)*(menu.NumBut-1))+2)
+	elseif db.orientation == "horizontal" then
+		menu:SetWidth((db.size*menu.NumBut)+((E.PixelMode and db.spacing or db.spacing+2)*(menu.NumBut-1))+2)
+		menu:SetHeight(db.size + (E.PixelMode and 2 or 4))
+	end
+end
+
+local function SetupMover(menu, name, own)
+	local exist = false
+	for i = 1, #E.ConfigModeLayouts do
+		if E.ConfigModeLayouts[i] == "UIButtons" then
+			exist = true
+			break
+		end
+	end
+	if not exist then
+		tinsert(E.ConfigModeLayouts, #(E.ConfigModeLayouts)+1, "UIButtons")
+		E.ConfigModeLocalizedStrings["UIButtons"] = L["UI Buttons"]
+	end
+	E:CreateMover(menu, menu:GetName().."Mover", name, nil, nil, nil, own or "ALL,UIButtons")
+end
+
+local function ToggleCats(menu)
+	for i = 1, #menu.ToggleTable do
+		if menu.ToggleTable[i].opened then
+			menu.HoldersTable[i]:Show()
+		else
+			menu.HoldersTable[i]:Hide()
+		end
+	end
+end
+
+local function OnEnter(menu)
+	menu:SetAlpha(1)
+end
+
+local function OnLeave(menu)
+	if menu.db.mouse then
+		menu:SetAlpha(0)
+	end
+end
+
+local function CreateCoreButton(menu, name, text)
+	if _G[menu:GetName().."_Core_"..name] then return end
+	local button, holder
+	if menu.style == "classic" then
+		menu[name] = CreateFrame("Button", menu:GetName().."_Core_"..name, menu)
+		button = menu[name]
+	elseif menu.style == "dropdown" then
+		menu[name] = CreateFrame("Frame", menu:GetName().."_Core_"..name, menu)
+		menu[name].Toggle = CreateFrame("Button", menu:GetName().."_Core_"..name.."Toggle", menu)
+		holder = menu[name]
+		holder.width = 0
+		holder:CreateBackdrop("Transparent")
+		button = menu[name].Toggle
+	else
+		lib:CustomStyleCoreButton(menu, name, text)
+	end
+	button:SetScript('OnEnter', function(self) menu:OnEnter() end)
+	button:SetScript('OnLeave', function(self) menu:OnLeave() end)
+	-- button:SetSize(17, 17) --For testing purposes
+	button.text = button:CreateFontString(nil, "OVERLAY")
+	button.text:SetPoint("CENTER", button, "CENTER", 0, 0)
+
+	S:HandleButton(button)
+
+	if text then
+		local t = button:CreateFontString(nil,"OVERLAY",button)
+		t:FontTemplate()
+		t:SetPoint("CENTER", button, 'CENTER', 0, -1)
+		t:SetJustifyH("CENTER")
+		t:SetText(text)
+		button:SetFontString(t)
+	end
+
+	tinsert(menu.ToggleTable, button)
+	if holder then tinsert(menu.HoldersTable, holder) end
+	if menu.style == "dropdown" then
+		if not menu[name.."Table"] then
+			menu[name.."Table"] = {}
+		end
+		menu:ToggleSetup(button, holder)
+		tinsert(menu.GroupsTable, name)
+	end
+
+	menu.NumBut = menu.NumBut + 1
+end
+
+local function CreateDropdownButton(menu, core, name, text, tooltip1, tooltip2, click, addon, always)
+	if addon then
+		local enabled = GetAddOnEnableState(menu.myname, addon)
+		if enabled == 0 then return end
+	end
+	if _G[menu:GetName().."_Core_"..core..name] or not menu[core.."Table"] then return end
+	menu[core][name] = CreateFrame("Button", menu:GetName().."_Core_"..core..name, menu[core])
+	local b = menu[core][name]
+	local toggle = menu[core].Toggle
+
+	b:SetScript("OnClick", function(self)
+		click()
+		toggle.opened = false
+		menu:ToggleCats()
+	end)
+
+	if tooltip1 then
+		b:SetScript("OnEnter", function(self)
+			menu:OnEnter()
+			GameTooltip:SetOwner(self)
+			GameTooltip:AddLine(tooltip1, 1, .96, .41, .6, .6, 1)
+			if tooltip2 then GameTooltip:AddLine(tooltip2, 1, 1, 1, 1, 1, 1) end
+			GameTooltip:Show()
+		end)
+		b:SetScript("OnLeave", function(self)
+			menu:OnLeave()
+			GameTooltip:Hide()
+		end)
+	else
+		b:SetScript('OnEnter', function(self) menu:OnEnter() end)
+		b:SetScript('OnLeave', function(self) menu:OnLeave() end)
+	end
+	S:HandleButton(b)
+
+	if text and type(text) == "string" then
+		b.text = b:CreateFontString(nil,"OVERLAY",b)
+		b.text:FontTemplate()
+		b.text:SetPoint("CENTER", b, 'CENTER', 0, -1)
+		b.text:SetJustifyH("CENTER")
+		b.text:SetText(text)
+		b:SetFontString(b.text)
+	end
+
+	tinsert(menu[core.."Table"], b)
+end
+
+local function CreateSeparator(menu, core, name, size, space)
+	if _G[menu:GetName().."_Core_"..core..name.."_Separator"] or not menu[core.."Table"] then return end
+	menu[core][name] = CreateFrame("Frame", menu:GetName().."_Core_"..core..name.."_Separator", menu[core])
+	local f = menu[core][name]
+	f.isSeparator = true
+	f.size = size or 1
+	f.space = space or 2
+	f:CreateBackdrop("Transparent")
+	f:SetScript('OnEnter', function(self) menu:OnEnter() end)
+	f:SetScript('OnLeave', function(self) menu:OnLeave() end)
+	tinsert(menu[core.."Table"], f)
+end
+
+local function ToggleSetup(menu, button, holder)
+	local db = menu.db
+	button.opened = false
+	holder:Hide()
+	button:SetScript("OnClick", function(self, button, down)
+		if button == "LeftButton" then
+			if self.opened then
+				self.opened = false
+			else
+				self.opened = true
+				for i = 1, #menu.ToggleTable do
+					if menu.ToggleTable[i] ~= self then menu.ToggleTable[i].opened = false end
+				end
+			end
+			menu:ToggleCats()
+		end
+	end)
+	holder:SetScript('OnEnter', function(self) menu:OnEnter() end)
+	holder:SetScript('OnLeave', function(self) menu:OnLeave() end)
+end
+
+local function UpdateDropdownLayout(menu, group)
+	local count = -1
+	local sepS, sepC = 0, 0
+	local header = menu[group]
+	local db = menu.db
+	header:ClearAllPoints()
+	header:Point(db.point, header.Toggle, db.anchor, db.xoffset, db.yoffset)
+	local T = menu[group.."Table"]
+	for i = 1, #T do
+		local button, prev, next = T[i], T[i-1], T[i+1]
+		local y_offset = prev and ((E.PixelMode and -db.spacing or -(db.spacing+2))-(prev.isSeparator and prev.space or 0)-(button.isSeparator and button.space or 0)) or 0
+		button:Point("TOP", (prev or header), (prev and "BOTTOM" or "TOP"), 0, y_offset)
+		count = button.isSeparator and count or count + 1
+		sepS = (button.isSeparator and sepS + ((prev and 2 or 1)*button.space + button.size)) or sepS
+		sepC = button.isSeparator and sepC + 1 or sepC
+	end
+	header:Size(header.width, (db.size * (count+1))+(db.spacing*(count))+sepS+(.5*sepC))
+	if menu.db.dropdownBackdrop then
+		header.backdrop:Show()
+	else
+		header.backdrop:Hide()
+	end
+end
+
+local function UpdateMouseOverSetting(menu)
+	if menu.db.mouse then
+		menu:SetAlpha(0)
+	else
+		menu:SetAlpha(1)
+	end
+end
+
+local function Positioning(menu)
+	local db = menu.db
+
+	--position check
+	local header = menu
+	if db.orientation == "vertical" then
+		for i = 1, #menu.ToggleTable do
+			local button, prev = menu.ToggleTable[i], menu.ToggleTable[i-1]
+			menu.ToggleTable[i]:ClearAllPoints()
+			menu.ToggleTable[i]:Point("TOP", (prev or header), prev and "BOTTOM" or "TOP", 0, prev and (E.PixelMode and -db.spacing or -(db.spacing+2)) or (E.PixelMode and -1 or -2))
+		end
+	elseif db.orientation == "horizontal" then
+		for i = 1, #menu.ToggleTable do
+			local button, prev = menu.ToggleTable[i], menu.ToggleTable[i-1]
+			menu.ToggleTable[i]:ClearAllPoints()
+			menu.ToggleTable[i]:Point("LEFT", (prev or header), prev and "RIGHT" or "LEFT", prev and (E.PixelMode and db.spacing or db.spacing+2) or (E.PixelMode and 1 or 2), 0)
+		end
+	end
+	if menu.style == "dropdown" then
+		for i = 1, #menu.GroupsTable do
+			menu:UpdateDropdownLayout(menu.GroupsTable[i])
+		end
+	end
+end
+
+local function FrameSize(menu)
+	local db = menu.db
+	if not db.size then return end
+	menu:MoverSize()
+
+	for i = 1, #menu.ToggleTable do
+		menu.ToggleTable[i]:Size(db.size)
+	end
+
+	if menu.style == "dropdown" then
+		for i = 1, #menu.GroupsTable do
+			local group = menu.GroupsTable[i]
+			local mass = menu[group.."Table"]
+			for w = 1, #mass do
+				if mass[w].text and mass[w].text:GetWidth() > menu.HoldersTable[i].width then
+					menu.HoldersTable[i].width = mass[w].text:GetWidth() + 10
+				end
+			end
+			for n = 1, #mass do
+				if mass[n].isSeparator then
+					mass[n]:Size(menu.HoldersTable[i].width - 2, mass[n].size)
+				else
+					mass[n]:Size(menu.HoldersTable[i].width, db.size)
+				end
+			end
+		end
+	end
+
+	menu:Positioning()
+end
+
+local function UpdateBackdrop(menu)
+	if menu.db.menuBackdrop then
+		menu.backdrop:Show()
+	else
+		menu.backdrop:Hide()
+	end
+end
+
+local function ToggleShow(menu)
+	if not menu.db.enable then
+		menu:Hide()
+	else
+		menu:Show()
+		menu:UpdateMouseOverSetting()
+		menu:UpdateBackdrop()
+	end
+end
+
+function lib:CreateFrame(name, db, default, style, styleDefault)
+	if _G[name] then return end
+	if not name then print("Sorry but you didn't set a name for this menu bar. Aborting creation"); return end
+	if not db then print("Sorry but you didn't set database for this menu bar. Aborting creation"); return end
+	if not default then print("Sorry but you didn't set defaults for this menu bar. Aborting creation"); return end
+	if not style and not styleDefault then print("Sorry but you didn't set defaults for this menu bar's style. Aborting creation"); return end
+	local menu = CreateFrame("Frame", name, E.UIParent)
+	menu.db = db
+	EqualizeDB(menu.db, default)
+	if not style and styleDefault then style = styleDefault end
+	menu.style = style
+
+	menu:SetFrameStrata("HIGH")
+	menu:SetFrameLevel(5)
+	menu:SetClampedToScreen(true)
+	menu:Point("LEFT", E.UIParent, "LEFT", -2, 0);
+	menu:Size(17, 17); --Cause the damn thing doesn't want to show up without default size lol
+	menu.myname = UnitName('player')
+	menu:CreateBackdrop()
+
+	menu.NumBut = 0
+	menu.ToggleTable = {}
+	menu.HoldersTable = {}
+	menu.GroupsTable = {}
+
+	--Setting API
+	menu.CreateCoreButton = CreateCoreButton
+	menu.CreateDropdownButton = CreateDropdownButton
+	menu.CreateSeparator = CreateSeparator
+	menu.ToggleSetup = ToggleSetup
+	menu.ToggleCats = ToggleCats
+	menu.UpdateDropdownLayout = UpdateDropdownLayout
+	menu.Positioning = Positioning
+	menu.MoverSize = MoverSize
+	menu.UpdateMouseOverSetting = UpdateMouseOverSetting
+	menu.FrameSize = FrameSize
+	menu.SetupMover = SetupMover
+	menu.ToggleShow = ToggleShow
+	menu.UpdateBackdrop = UpdateBackdrop
+	menu.OnEnter = OnEnter
+	menu.OnLeave = OnLeave
+
+
+	menu:SetScript('OnEnter', function(self) menu:OnEnter() end)
+	menu:SetScript('OnLeave', function(self) menu:OnLeave() end)
+
+	return menu
+end
+
+local function GenerateTable(menu, coreGroup, groupName, groupTitle)
+	local positionValues = {
+		TOPLEFT = 'TOPLEFT',
+		LEFT = 'LEFT',
+		BOTTOMLEFT = 'BOTTOMLEFT',
+		RIGHT = 'RIGHT',
+		TOPRIGHT = 'TOPRIGHT',
+		BOTTOMRIGHT = 'BOTTOMRIGHT',
+		CENTER = 'CENTER',
+		TOP = 'TOP',
+		BOTTOM = 'BOTTOM',
+	};
+
+	local isDefault = coreGroup == true and true or false
+	if isDefault and not E.Options.args.uibuttons then
+		E.Options.args.uibuttons = {
+			type = "group",
+			name = L["UI Buttons"],
+			order = 77,
+			childGroups = 'select',
+			args = {
+			},
+		}
+		coreGroup = E.Options.args.uibuttons
+	end
+	coreGroup.args[groupName] = {
+		type = "group",
+		name = groupTitle,
+		order = 1,
+		args = {
+			header = {
+				order = 1,
+				type = "header",
+				name = groupTitle,
+			},
+			enabled = {
+				order = 3,
+				type = "toggle",
+				name = L["Enable"],
+				desc = L["Show/Hide UI buttons."],
+				get = function(info) return menu.db.enable end,
+				set = function(info, value) menu.db.enable = value; menu:ToggleShow() end
+			},
+			style = {
+				order = 4,
+				name = L["UI Buttons Style"],
+				type = "select",
+				values = {
+					["classic"] = L['Classic'],
+					["dropdown"] = L['Dropdown'],
+				},
+				disabled = function() return not menu.db.enable end,
+				get = function(info) return E.private.sle.uiButtonStyle end,
+				set = function(info, value) E.private.sle.uiButtonStyle = value; E:StaticPopup_Show("PRIVATE_RL") end,
+			},
+			space = {
+				order = 5,
+				type = 'description',
+				name = "",
+			},
+			size = {
+				order = 6,
+				type = "range",
+				name = L['Size'],
+				desc = L["Sets size of buttons"],
+				min = 12, max = 25, step = 1,
+				disabled = function() return not menu.db.enable end,
+				get = function(info) return menu.db.size end,
+				set = function(info, value) menu.db.size = value; menu:FrameSize() end,
+			},
+			spacing = {
+				order = 7,
+				type = "range",
+				name = L['Button Spacing'],
+				desc = L['The spacing between buttons.'],
+				min = 1, max = 10, step = 1,
+				disabled = function() return not menu.db.enable end,
+				get = function(info) return menu.db.spacing end,
+				set = function(info, value) menu.db.spacing = value; menu:FrameSize() end,
+			},
+			mouse = {
+				order = 8,
+				type = "toggle",
+				name = L["Mouse Over"],
+				desc = L["Show on mouse over."],
+				disabled = function() return not menu.db.enable end,
+				get = function(info) return menu.db.mouse end,
+				set = function(info, value) menu.db.mouse = value; menu:UpdateMouseOverSetting() end
+			},
+			menuBackdrop = {
+				order = 9,
+				type = "toggle",
+				name = L["Backdrop"],
+				disabled = function() return not menu.db.enable or E.private.sle.uiButtonStyle == "classic" end,
+				get = function(info) return menu.db.menuBackdrop end,
+				set = function(info, value) menu.db.menuBackdrop = value; menu:UpdateBackdrop() end
+			},
+			dropdownBackdrop = {
+				order = 10,
+				type = "toggle",
+				name = L["Dropdown Backdrop"],
+				disabled = function() return not menu.db.enable or E.private.sle.uiButtonStyle == "classic" end,
+				get = function(info) return menu.db.dropdownBackdrop end,
+				set = function(info, value) menu.db.dropdownBackdrop = value; menu:FrameSize() end
+			},
+			orientation = {
+				order = 11,
+				name = L["Buttons position"],
+				desc = L["Layout for UI buttons."],
+				type = "select",
+				values = {
+					["horizontal"] = L['Horizontal'],
+					["vertical"] = L['Vertical'],
+				},
+				disabled = function() return not menu.db.enable end,
+				get = function(info) return menu.db.orientation end,
+				set = function(info, value) menu.db.orientation = value; menu:FrameSize() end,
+			},
+			point = {
+				type = 'select',
+				order = 13,
+				name = L['Anchor Point'],
+				desc = L['What point of dropdown will be attached to the toggle button.'],
+				disabled = function() return not menu.db.enable or E.private.sle.uiButtonStyle == "classic" end,
+				get = function(info) return menu.db.point end,
+				set = function(info, value) menu.db.point = value; menu:FrameSize() end,
+				values = positionValues,
+			},
+			anchor = {
+				type = 'select',
+				order = 14,
+				name = L['Attach To'],
+				desc = L['What point to anchor dropdown on the toggle button.'],
+				disabled = function() return not menu.db.enable or E.private.sle.uiButtonStyle == "classic" end,
+				get = function(info) return menu.db.anchor end,
+				set = function(info, value) menu.db.anchor = value; menu:FrameSize() end,
+				values = positionValues,
+			},
+			xoffset = {
+				order = 15,
+				type = "range",
+				name = L['X-Offset'],
+				desc = L["Horizontal offset of dropdown from the toggle button."],
+				min = -10, max = 10, step = 1,
+				disabled = function() return not menu.db.enable or E.private.sle.uiButtonStyle == "classic" end,
+				get = function(info) return menu.db.xoffset end,
+				set = function(info, value) menu.db.xoffset = value; menu:FrameSize() end,
+			},
+			yoffset = {
+				order = 16,
+				type = "range",
+				name = L['Y-Offset'],
+				desc = L["Vertical offset of dropdown from the toggle button."],
+				min = -10, max = 10, step = 1,
+				disabled = function() return not menu.db.enable or E.private.sle.uiButtonStyle == "classic" end,
+				get = function(info) return menu.db.yoffset end,
+				set = function(info, value) menu.db.yoffset = value; menu:FrameSize() end,
+			},
+		},
+	}
+end
+
+function lib:CreateOptions(menu, default, groupName, groupTitle)
+	menu:RegisterEvent("ADDON_LOADED")
+	menu:SetScript("OnEvent", function(self, event, addon)
+		if addon ~= "ElvUI_Config" then return end
+		self:UnregisterEvent("ADDON_LOADED")
+		GenerateTable(self, default, groupName, groupTitle)
+	end)
+end
+
+--This function is for creating own menu style. Replacing is not encouraged, hooking recommended.
+function lib:CustomStyleCoreButton(menu, name, text)
+end
+
+if not LibStub("LibElvUIPlugin-1.0").plugins[MAJOR] then
+	LibStub("LibElvUIPlugin-1.0"):RegisterPlugin(MAJOR, function() end, true)
+end
\ No newline at end of file
diff --git a/ElvUI_SLE/libs/LibElv-UIButtons-1.0/LibElv-UIButtons-1.0.toc b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/LibElv-UIButtons-1.0.toc
new file mode 100644
index 0000000..c8ba530
--- /dev/null
+++ b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/LibElv-UIButtons-1.0.toc
@@ -0,0 +1,7 @@
+## Interface: 40300
+## Author: Darth Predator
+## Version: 1.0
+## Title: Lib UIButtons 1.0
+## RequiredDeps: ElvUI
+
+LibElv-UIButtons-1.0.lua
\ No newline at end of file
diff --git a/ElvUI_SLE/libs/LibElv-UIButtons-1.0/load_uibuttons.xml b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/load_uibuttons.xml
new file mode 100644
index 0000000..1f3e540
--- /dev/null
+++ b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/load_uibuttons.xml
@@ -0,0 +1,4 @@
+<Ui xmlns="http://www.blizzard.com/wow/ui/">
+	<Include file="locales\load_locales.xml"/>
+	<Script file="LibElv-UIButtons-1.0.lua"/>
+</Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/english.lua b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/english.lua
new file mode 100644
index 0000000..124d0d3
--- /dev/null
+++ b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/english.lua
@@ -0,0 +1,8 @@
+--Russian localization
+local AceLocale = LibStub:GetLibrary("AceLocale-3.0")
+local L = AceLocale:NewLocale("ElvUI", "ruRU")
+
+if not L then return; end
+
+--UI buttons--
+L["LibUIButtons_DESC"] = "This adds a small bar with some useful buttons which acts as a small menu for common things.\nThe options below are provided by LibElv-UIButtons. If you see them that means one of your addons is using this library."
diff --git a/ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/load_locales.xml b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/load_locales.xml
new file mode 100644
index 0000000..c322415
--- /dev/null
+++ b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/load_locales.xml
@@ -0,0 +1,4 @@
+<Ui xmlns="http://www.blizzard.com/wow/ui/">
+	<Script file="english.lua"/>
+	<Script file="russian.lua"/>
+</Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/russian.lua b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/russian.lua
new file mode 100644
index 0000000..2a0df9a
--- /dev/null
+++ b/ElvUI_SLE/libs/LibElv-UIButtons-1.0/locales/russian.lua
@@ -0,0 +1,22 @@
+--Russian localization
+local AceLocale = LibStub:GetLibrary("AceLocale-3.0")
+local L = AceLocale:NewLocale("ElvUI", "ruRU")
+
+if not L then return; end
+
+--UI buttons--
+L["LibUIButtons_DESC"] = "Добавляет небольшую полосу с кнопками, дающими доступ к набору полезных функций.\nЭти опции выводятся библиотекой LibElv-UIButtons. Если вы их видите, то один из Ваших аддонов ее использует."
+L["UI Buttons"] = "Меню интерфейса"
+L["Show/Hide UI buttons."] = "Показать/скрыть меню"
+L["Mouse Over"] = "При наведении"
+L["Show on mouse over."] = "Отображать при наведении мыши."
+L["Dropdown Backdrop"] = "Фон выпадающего списка"
+L["Buttons position"] = "Положение кнопок"
+L["Layout for UI buttons."] = "Режим положения кнопок"
+L["UI Buttons Style"] = "Стиль меню"
+L['Dropdown'] = "Выпадающий список"
+L["Sets size of buttons"] = "Устанавливает размер кнопок"
+L['What point of dropdown will be attached to the toggle button.'] = "Какая точка выпадающего списка будет крепиться к кнопке его открытия."
+L['What point to anchor dropdown on the toggle button.'] = "К какой точке кнопки будет крепиться ее выпадающий список."
+L["Horizontal offset of dropdown from the toggle button."] = "Отступ выпадающего списка от кнопки его открытия по горизонтали."
+L["Vertical offset of dropdown from the toggle button."] = "Отступ выпадающего списка от кнопки его открытия по вертикали."
\ No newline at end of file
diff --git a/ElvUI_SLE/libs/LibRealmInfo/LibRealmInfo.lua b/ElvUI_SLE/libs/LibRealmInfo/LibRealmInfo.lua
deleted file mode 100644
index 5570e68..0000000
--- a/ElvUI_SLE/libs/LibRealmInfo/LibRealmInfo.lua
+++ /dev/null
@@ -1,1271 +0,0 @@
---[[--------------------------------------------------------------------
-	LibRealmInfo
-	World of Warcraft library for obtaining information about realms.
-	Copyright 2014 Phanx <addons@phanx.net>
-	Do not distribute as a standalone addon.
-	See accompanying LICENSE and README files for more details.
-	https://github.com/Phanx/LibRealmInfo
-	http://wow.curseforge.com/addons/librealminfo
-	http://www.wowinterface.com/downloads/info22987-LibRealmInfo
-----------------------------------------------------------------------]]
-
-local MAJOR, MINOR = "LibRealmInfo", 3
-assert(LibStub, MAJOR.." requires LibStub")
-local lib, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
-if not lib then return end
-
-local standalone = (...) == MAJOR
-local data, connections
-local Unpack
-
-local function debug(...)
-	if standalone then
-		print("|cffff7f7f["..MAJOR.."]|r", ...)
-	end
-end
-
-------------------------------------------------------------------------
-
-function lib:GetRealmInfo(realmID)
-	realmID = tonumber(realmID)
-	if not realmID then return end
-
-	if Unpack then
-		Unpack()
-	end
-
-	local info = data[realmID]
-	if info then
-		return info.name, info.apiName, info.rules, info.locale, info.battlegroup, info.region, info.timezone, info.connected, info.latinName
-	end
-
-	debug("No info found for realm", realmID)
-end
-
-------------------------------------------------------------------------
-
-local currentRegion
-local portalToRegion = { US = "US", EU = "EU", RU = "EU", KR = "KR", CN = "CN", TW = "TW" }
-local localeToRegion = { deDE = "EU", esES = "EU", esMX = "US", frFR = "EU", itIT = "EU", ruRU = "EU", koKR = "KR", enCN = "CN", zhCN = "CN", enTW = "TW", zhTW = "TW" }
--- enGB client returns enUS, ptPT client returns ptBR, no way to tell what's what
--- not actually sure if enCN and enTW return accurately
-
-local function GetCurrentRegion()
-	if not currentRegion then
-		local realmID, _ = tonumber(strmatch(UnitGUID("player"), "Player:(%d+)"))
-		if not realmID then
-			_, _, _, _, realmID = BNGetToonInfo(BNGetInfo() or 1)
-		end
-		if realmID then
-			_, _, _, _, _, currentRegion = lib:GetRealmInfo(realmID)
-		end
-		if not currentRegion then
-			local portal = GetCVar("portal")
-			if portal then
-				currentRegion = portalToRegion[strupper(portal)]
-			else
-				currentRegion = localeToRegion[GetLocale()]
-			end
-		end
-		if not currentRegion then
-			return debug("Could not determine current region.")
-		end
-	end
-	return currentRegion
-end
-
-function lib:GetRealmInfoByName(searchName, searchRegion)
-	searchName = gsub(searchName, "%s", "")
-	searchRegion = searchRegion or GetCurrentRegion()
-	debug("GetRealmInfoByName", searchName, searchRegion, GetCurrentRegion())
-
-	if Unpack then
-		Unpack()
-	end
-
-	for id, info in pairs(data) do
-		if info.region == searchRegion and info.apiName == searchName then
-			return id, info.name, info.apiName, info.rules, info.locale, info.battlegroup, info.region, info.timezone, info.connected, info.latinName
-		end
-	end
-end
-
-------------------------------------------------------------------------
-
-function lib:GetRealmInfoByUnit(unit)
-	local guid = unit and UnitGUID(unit)
-	if guid then
-		local realmID = tonumber(strmatch(guid, "Player:(%d+)"))
-		if realmID then
-			return self:GetRealmInfo(realmID)
-		end
-	end
-end
-
-------------------------------------------------------------------------
-
-function Unpack()
-	debug("Unpacking data...")
-
-	for id, info in pairs(data) do
-		local name, rules, locale, battlegroup, region, timezone = strsplit(",", info)
-		local name, translit = strsplit("|", name)
-		data[id] = {
-			name = name,
-			apiName = (gsub(name, "%s", "")),
-			latinName = translit, -- only for ruRU language realms
-			rules = rules,
-			locale = locale,
-			battlegroup = battlegroup,
-			region = region,
-			timezone = timezone, -- only for US region realms
-		}
-	end
-
-	for i = 1, #connections do
-		local t = { strsplit(",", connections[i]) }
-		for j = 1, #t do
-			local id = tonumber(t[j])
-			t[j] = id
-			local info = data[id]
-			if info then
-				info.connected = t
-			elseif standalone then
-				print("|cffff7f7f["..MAJOR.."]|r No data for connected realm", id, "from", connections[i])
-			end
-		end
-	end
-
-	connections = nil
-	Unpack = nil
-	collectgarbage()
-
-	debug("Done unpacking data.")
-
-	local auto = { GetAutoCompleteRealms() }
-	if #auto > 1 then
-		local id, _, _, _, _, _, _, _, connected = lib:GetRealmInfoByName(GetRealmName())
-		if not id then
-			return
-		end
-		if not connected then
-			print("|cffffff7fLibRealmInfo:|r Missing connected realm info for", id, GetRealmName())
-			return
-		end
-		for i = 1, #auto do
-			local name = auto[i]
-			auto[name] = true
-			auto[i] = nil
-		end
-		for i = 1, #connected do
-			local _, name = GetRealmInfo(connected[i])
-			if auto[name] then
-				auto[name] = nil
-			else
-				auto[name] = connected[i]
-			end
-		end
-		if next(auto) then
-			print("|cffffff7fLibRealmInfo:|r Incomplete connected realm info for", id, GetRealmName())
-			for name, id in pairs(auto) do
-				print(name, id == true and "MISSING" or "INCORRECT")
-			end
-		end
-	end
-end
-
-------------------------------------------------------------------------
-
-data = {
---{{ NORTH AMERICA
-[1136]="Aegwynn,PVP,enUS,Vengeance,US,CST",
-[1284]="Aerie Peak,PVE,enUS,Vindication,US,PST",
-[1129]="Agamaggan,PVP,enUS,Shadowburn,US,CST",
-[106]="Aggramar,PVE,enUS,Vindication,US,CST",
-[1137]="Akama,PVP,enUS,Reckoning,US,CST",
-[1070]="Alexstrasza,PVE,enUS,Rampage,US,CST",
-[52]="Alleria,PVE,enUS,Rampage,US,CST",
-[1282]="Altar of Storms,PVP,enUS,Ruin,US,EST",
-[1293]="Alterac Mountains,PVP,enUS,Ruin,US,EST",
-[1418]="Aman'Thul,PVE,enUS,Bloodlust,US,AEST",
-[1276]="Andorhal,PVP,enUS,Shadowburn,US,EST",
-[1264]="Anetheron,PVP,enUS,Ruin,US,EST",
-[1363]="Antonidas,PVE,enUS,Cyclone,US,PST",
-[1346]="Anub'arak,PVP,enUS,Vengeance,US,EST",
-[1288]="Anvilmar,PVE,enUS,Ruin,US,PST",
-[1165]="Arathor,PVE,enUS,Reckoning,US,PST",
-[56]="Archimonde,PVP,enUS,Shadowburn,US,CST",
-[1566]="Area 52,PVE,enUS,Vindication,US,EST",
-[75]="Argent Dawn,RP,enUS,Ruin,US,EST",
-[69]="Arthas,PVP,enUS,Ruin,US,EST",
-[1297]="Arygos,PVE,enUS,Vindication,US,EST",
-[1555]="Auchindoun,PVP,enUS,Vindication,US,EST",
-[77]="Azgalor,PVP,enUS,Ruin,US,CST",
-[121]="Azjol-Nerub,PVE,enUS,Cyclone,US,MST",
-[3209]="Azralon,PVP,ptBR,Shadowburn,US",
-[1128]="Azshara,PVP,enUS,Ruin,US,EST",
-[1549]="Azuremyst,PVE,enUS,Shadowburn,US,PST",
-[1190]="Baelgun,PVE,enUS,Shadowburn,US,PST",
-[1075]="Balnazzar,PVP,enUS,Ruin,US,CST",
-[1419]="Barthilas,PVP,enUS,Bloodlust,US,AEST",
-[1280]="Black Dragonflight,PVP,enUS,Ruin,US,EST",
-[54]="Blackhand,PVE,enUS,Rampage,US,CST",
-[10]="Blackrock,PVP,enUS,Bloodlust,US,PST",
-[1347]="Blackwater Raiders,RP,enUS,Reckoning,US,PST",
-[1296]="Blackwing Lair,PVP,enUS,Shadowburn,US,PST",
-[1564]="Blade's Edge,PVE,enUS,Vindication,US,PST",
-[1353]="Bladefist,PVE,enUS,Vengeance,US,PST",
-[73]="Bleeding Hollow,PVP,enUS,Ruin,US,EST",
-[1558]="Blood Furnace,PVP,enUS,Ruin,US,CST",
-[64]="Bloodhoof,PVE,enUS,Ruin,US,EST",
-[119]="Bloodscalp,PVP,enUS,Cyclone,US,MST",
-[83]="Bonechewer,PVP,enUS,Vengeance,US,PST",
-[1371]="Borean Tundra,PVE,enUS,Reckoning,US,CST",
-[112]="Boulderfist,PVP,enUS,Cyclone,US,PST",
-[117]="Bronzebeard,PVE,enUS,Cyclone,US,PST",
-[91]="Burning Blade,PVP,enUS,Vindication,US,EST",
-[102]="Burning Legion,PVP,enUS,Shadowburn,US,CST",
-[1430]="Caelestrasz,PVE,enUS,Bloodlust,US,AEST",
-[1361]="Cairne,PVE,enUS,Cyclone,US,CST",
-[88]="Cenarion Circle,RP,enUS,Cyclone,US,PST",
-[2]="Cenarius,PVE,enUS,Cyclone,US,PST",
-[1067]="Cho'gall,PVP,enUS,Vindication,US,CST",
-[1138]="Chromaggus,PVP,enUS,Vengeance,US,CST",
-[1556]="Coilfang,PVP,enUS,Shadowburn,US,PST",
-[107]="Crushridge,PVP,enUS,Vengeance,US,PST",
-[109]="Daggerspine,PVP,enUS,Vengeance,US,PST",
-[66]="Dalaran,PVE,enUS,Rampage,US,EST",
-[1278]="Dalvengyr,PVP,enUS,Shadowburn,US,EST",
-[157]="Dark Iron,PVP,enUS,Shadowburn,US,PST",
-[120]="Darkspear,PVP,enUS,Cyclone,US,MST",
-[1351]="Darrowmere,PVE,enUS,Reckoning,US,PST",
-[1434]="Dath'Remar,PVE,enUS,Bloodlust,US,AEST",
-[1582]="Dawnbringer,PVE,enUS,Ruin,US,CST",
-[15]="Deathwing,PVP,enUS,Shadowburn,US,MST",
-[1286]="Demon Soul,PVP,enUS,Shadowburn,US,EST",
-[1271]="Dentarg,PVE,enUS,Rampage,US,EST",
-[79]="Destromath,PVP,enUS,Ruin,US,PST",
-[81]="Dethecus,PVP,enUS,Shadowburn,US,PST",
-[154]="Detheroc,PVP,enUS,Shadowburn,US,CST",
-[13]="Doomhammer,PVE,enUS,Shadowburn,US,MST",
-[115]="Draenor,PVE,enUS,Cyclone,US,PST",
-[114]="Dragonblight,PVE,enUS,Cyclone,US,PST",
-[84]="Dragonmaw,PVP,enUS,Reckoning,US,PST",
-[1362]="Drak'Tharon,PVP,enUS,Reckoning,US,CST",
-[1140]="Drak'thul,PVE,enUS,Reckoning,US,CST",
-[1139]="Draka,PVE,enUS,Cyclone,US,CST",
-[1425]="Drakkari,PVP,esMX,Vindication,US,CST",
-[1429]="Dreadmaul,PVP,enUS,Bloodlust,US,AEST",
-[1377]="Drenden,PVE,enUS,Reckoning,US,EST",
-[111]="Dunemaul,PVP,enUS,Cyclone,US,PST",
-[63]="Durotan,PVE,enUS,Ruin,US,EST",
-[1258]="Duskwood,PVE,enUS,Ruin,US,EST",
-[100]="Earthen Ring,RP,enUS,Vindication,US,EST",
-[1342]="Echo Isles,PVE,enUS,Cyclone,US,PST",
-[47]="Eitrigg,PVE,enUS,Vengeance,US,CST",
-[123]="Eldre'Thalas,PVE,enUS,Reckoning,US,EST",
-[67]="Elune,PVE,enUS,Ruin,US,EST",
-[162]="Emerald Dream,RPPVP,enUS,Shadowburn,US,CST",
-[96]="Eonar,PVE,enUS,Vindication,US,EST",
-[93]="Eredar,PVP,enUS,Shadowburn,US,EST",
-[1277]="Executus,PVP,enUS,Shadowburn,US,EST",
-[1565]="Exodar,PVE,enUS,Ruin,US,EST",
-[1370]="Farstriders,RP,enUS,Bloodlust,US,CST",
-[118]="Feathermoon,RP,enUS,Reckoning,US,PST",
-[1345]="Fenris,PVE,enUS,Cyclone,US,EST",
-[127]="Firetree,PVP,enUS,Reckoning,US,EST",
-[1576]="Fizzcrank,PVE,enUS,Vindication,US,CST",
-[128]="Frostmane,PVP,enUS,Reckoning,US,CST",
-[1133]="Frostmourne,PVP,enUS,Bloodlust,US,AEST",
-[7]="Frostwolf,PVP,enUS,Bloodlust,US,PST",
-[1581]="Galakrond,PVE,enUS,Rampage,US,PST",
-[3234]="Gallywix,PVE,ptBR,Ruin,US",
-[1141]="Garithos,PVP,enUS,Vengeance,US,CST",
-[51]="Garona,PVE,enUS,Rampage,US,CST",
-[1373]="Garrosh,PVE,enUS,Vengeance,US,EST",
-[1578]="Ghostlands,PVE,enUS,Rampage,US,CST",
-[97]="Gilneas,PVE,enUS,Ruin,US,EST",
-[1287]="Gnomeregan,PVE,enUS,Shadowburn,US,PST",
-[3207]="Goldrinn,PVE,ptBR,Rampage,US",
-[92]="Gorefiend,PVP,enUS,Shadowburn,US,EST",
-[80]="Gorgonnash,PVP,enUS,Ruin,US,PST",
-[158]="Greymane,PVE,enUS,Shadowburn,US,CST",
-[1579]="Grizzly Hills,PVE,enUS,Ruin,US,EST",
-[1068]="Gul'dan,PVP,enUS,Ruin,US,CST",
-[1149]="Gundrak,PVP,enUS,Vengeance,US,AEST",
-[129]="Gurubashi,PVP,enUS,Vengeance,US,PST",
-[1142]="Hakkar,PVP,enUS,Vengeance,US,CST",
-[1266]="Haomarush,PVP,enUS,Shadowburn,US,EST",
-[53]="Hellscream,PVE,enUS,Rampage,US,CST",
-[1368]="Hydraxis,PVE,enUS,Reckoning,US,CST",
-[6]="Hyjal,PVE,enUS,Vengeance,US,PST",
-[14]="Icecrown,PVE,enUS,Vindication,US,MST",
-[57]="Illidan,PVP,enUS,Rampage,US,CST",
-[1291]="Jaedenar,PVP,enUS,Shadowburn,US,EST",
-[1144]="Jubei'Thos,PVP,enUS,Vengeance,US,AEST",
-[1069]="Kael'thas,PVE,enUS,Rampage,US,CST",
-[155]="Kalecgos,PVP,enUS,Shadowburn,US,PST",
-[98]="Kargath,PVE,enUS,Vindication,US,EST",
-[16]="Kel'Thuzad,PVP,enUS,Vindication,US,MST",
-[65]="Khadgar,PVE,enUS,Rampage,US,EST",
-[1143]="Khaz Modan,PVE,enUS,Cyclone,US,CST",
-[1134]="Khaz'goroth,PVE,enUS,Bloodlust,US,AEST",
-[9]="Kil'jaeden,PVP,enUS,Bloodlust,US,PST",
-[4]="Kilrogg,PVE,enUS,Bloodlust,US,PST",
-[1071]="Kirin Tor,RP,enUS,Rampage,US,CST",
-[1146]="Korgath,PVP,enUS,Vengeance,US,CST",
-[1349]="Korialstrasz,PVE,enUS,Reckoning,US,PST",
-[1147]="Kul Tiras,PVE,enUS,Vengeance,US,CST",
-[101]="Laughing Skull,PVP,enUS,Vindication,US,CST",
-[1295]="Lethon,PVP,enUS,Shadowburn,US,PST",
-[1]="Lightbringer,PVE,enUS,Cyclone,US,PST",
-[95]="Lightning's Blade,PVP,enUS,Vindication,US,EST",
-[1130]="Lightninghoof,RPPVP,enUS,Shadowburn,US,CST",
-[99]="Llane,PVE,enUS,Vindication,US,EST",
-[68]="Lothar,PVE,enUS,Ruin,US,EST",
-[1173]="Madoran,PVE,enUS,Ruin,US,CST",
-[163]="Maelstrom,RPPVP,enUS,Shadowburn,US,CST",
-[78]="Magtheridon,PVP,enUS,Ruin,US,EST",
-[1357]="Maiev,PVP,enUS,Cyclone,US,PST",
-[59]="Mal'Ganis,PVP,enUS,Vindication,US,CST",
-[1132]="Malfurion,PVE,enUS,Ruin,US,CST",
-[1148]="Malorne,PVP,enUS,Reckoning,US,CST",
-[104]="Malygos,PVE,enUS,Vindication,US,CST",
-[70]="Mannoroth,PVP,enUS,Ruin,US,EST",
-[62]="Medivh,PVE,enUS,Ruin,US,EST",
-[1350]="Misha,PVE,enUS,Vengeance,US,PST",
-[1374]="Mok'Nathal,PVE,enUS,Reckoning,US,CST",
-[1365]="Moon Guard,RP,enUS,Reckoning,US,CST",
-[153]="Moonrunner,PVE,enUS,Shadowburn,US,PST",
-[1145]="Mug'thol,PVP,enUS,Reckoning,US,CST",
-[1182]="Muradin,PVE,enUS,Vengeance,US,CST",
-[1432]="Nagrand,PVE,enUS,Bloodlust,US,AEST",
-[89]="Nathrezim,PVP,enUS,Vengeance,US,MST",
-[1367]="Nazgrel,PVE,enUS,Bloodlust,US,EST",
-[1131]="Nazjatar,PVP,enUS,Ruin,US,PST",
-[3208]="Nemesis,PVP,ptBR,Rampage,US",
-[8]="Ner'zhul,PVP,enUS,Reckoning,US,PST",
-[1375]="Nesingwary,PVE,enUS,Bloodlust,US,CST",
-[1359]="Nordrassil,PVE,enUS,Vengeance,US,PST",
-[1262]="Norgannon,PVE,enUS,Vindication,US,EST",
-[1285]="Onyxia,PVP,enUS,Vindication,US,PST",
-[122]="Perenolde,PVE,enUS,Cyclone,US,MST",
-[5]="Proudmoore,PVE,enUS,Bloodlust,US,PST",
-[1428]="Quel'Thalas,PVE,esMX,Vindication,US,CST",
-[1372]="Quel'dorei,PVE,enUS,Bloodlust,US,CST",
-[1427]="Ragnaros,PVP,esMX,Vindication,US,CST",
-[1072]="Ravencrest,PVE,enUS,Rampage,US,CST",
-[1352]="Ravenholdt,RPPVP,enUS,Shadowburn,US,EST",
-[1151]="Rexxar,PVE,enUS,Vengeance,US,CST",
-[1358]="Rivendare,PVP,enUS,Reckoning,US,PST",
-[151]="Runetotem,PVE,enUS,Vengeance,US,CST",
-[76]="Sargeras,PVP,enUS,Shadowburn,US,CST",
-[1153]="Saurfang,PVE,enUS,Vengeance,US,AEST",
-[126]="Scarlet Crusade,RP,enUS,Reckoning,US,CST",
-[1267]="Scilla,PVP,enUS,Shadowburn,US,EST",
-[1185]="Sen'jin,PVE,enUS,Bloodlust,US,CST",
-[1290]="Sentinels,RP,enUS,Rampage,US,PST",
-[125]="Shadow Council,RP,enUS,Reckoning,US,MST",
-[94]="Shadowmoon,PVP,enUS,Shadowburn,US,EST",
-[85]="Shadowsong,PVE,enUS,Reckoning,US,PST",
-[1364]="Shandris,PVE,enUS,Cyclone,US,EST",
-[1557]="Shattered Halls,PVP,enUS,Shadowburn,US,PST",
-[72]="Shattered Hand,PVP,enUS,Shadowburn,US,EST",
-[1354]="Shu'halo,PVE,enUS,Vengeance,US,PST",
-[12]="Silver Hand,RP,enUS,Bloodlust,US,PST",
-[86]="Silvermoon,PVE,enUS,Reckoning,US,PST",
-[1356]="Sisters of Elune,RP,enUS,Cyclone,US,CST",
-[74]="Skullcrusher,PVP,enUS,Ruin,US,EST",
-[131]="Skywall,PVE,enUS,Reckoning,US,PST",
-[130]="Smolderthorn,PVP,enUS,Vengeance,US,EST",
-[82]="Spinebreaker,PVP,enUS,Shadowburn,US,PST",
-[124]="Spirestone,PVP,enUS,Reckoning,US,PST",
-[160]="Staghelm,PVE,enUS,Shadowburn,US,CST",
-[1260]="Steamwheedle Cartel,RP,enUS,Rampage,US,EST",
-[108]="Stonemaul,PVP,enUS,Cyclone,US,PST",
-[60]="Stormrage,PVE,enUS,Ruin,US,EST",
-[58]="Stormreaver,PVP,enUS,Rampage,US,CST",
-[110]="Stormscale,PVP,enUS,Reckoning,US,PST",
-[113]="Suramar,PVE,enUS,Cyclone,US,PST",
-[1292]="Tanaris,PVE,enUS,Shadowburn,US,EST",
-[90]="Terenas,PVE,enUS,Reckoning,US,MST",
-[1563]="Terokkar,PVE,enUS,Rampage,US,CST",
-[1433]="Thaurissan,PVP,enUS,Bloodlust,US,AEST",
-[1344]="The Forgotten Coast,PVP,enUS,Ruin,US,EST",
-[1570]="The Scryers,RP,enUS,Ruin,US,PST",
-[1559]="The Underbog,PVP,enUS,Shadowburn,US,CST",
-[1289]="The Venture Co,RPPVP,enUS,Shadowburn,US,PST",
-[1154]="Thorium Brotherhood,RP,enUS,Bloodlust,US,CST",
-[1263]="Thrall,PVE,enUS,Rampage,US,EST",
-[105]="Thunderhorn,PVE,enUS,Vindication,US,CST",
-[103]="Thunderlord,PVP,enUS,Ruin,US,CST",
-[11]="Tichondrius,PVP,enUS,Bloodlust,US,PST",
-[3210]="Tol Barad,PVP,ptBR,Shadowburn,US",
-[1360]="Tortheldrin,PVP,enUS,Reckoning,US,EST",
-[1175]="Trollbane,PVE,enUS,Ruin,US,EST",
-[1265]="Turalyon,PVE,enUS,Vindication,US,EST",
-[164]="Twisting Nether,RPPVP,enUS,Shadowburn,US,CST",
-[1283]="Uldaman,PVE,enUS,Rampage,US,EST",
-[116]="Uldum,PVE,enUS,Cyclone,US,PST",
-[1294]="Undermine,PVE,enUS,Ruin,US,EST",
-[156]="Ursin,PVP,enUS,Shadowburn,US,PST",
-[3]="Uther,PVE,enUS,Vengeance,US,PST",
-[1348]="Vashj,PVP,enUS,Bloodlust,US,PST",
-[1184]="Vek'nilash,PVE,enUS,Bloodlust,US,CST",
-[1567]="Velen,PVE,enUS,Vindication,US,PST",
-[71]="Warsong,PVP,enUS,Ruin,US,EST",
-[55]="Whisperwind,PVE,enUS,Rampage,US,CST",
-[159]="Wildhammer,PVP,enUS,Shadowburn,US,CST",
-[87]="Windrunner,PVE,enUS,Reckoning,US,PST",
-[1355]="Winterhoof,PVE,enUS,Bloodlust,US,CST",
-[1369]="Wyrmrest Accord,RP,enUS,Cyclone,US,PST",
-[1270]="Ysera,PVE,enUS,Ruin,US,EST",
-[1268]="Ysondre,PVP,enUS,Ruin,US,EST",
-[1572]="Zangarmarsh,PVE,enUS,Rampage,US,MST",
-[61]="Zul'jin,PVE,enUS,Ruin,US,EST",
-[1259]="Zuluhed,PVP,enUS,Shadowburn,US,EST",
---}}
---{{ EUROPE
-[577]="Aegwynn,PVP,deDE,Misery,EU",
-[1312]="Aerie Peak,PVE,enGB,Reckoning / Abrechnung,EU",
-[518]="Agamaggan,PVP,enGB,Reckoning / Abrechnung,EU",
-[1413]="Aggra (Português),PVP,ptPT,Misery,EU",
-[500]="Aggramar,PVE,enGB,Vengeance / Rache,EU",
-[1093]="Ahn'Qiraj,PVP,enGB,Vindication,EU",
-[519]="Al'Akir,PVP,enGB,Glutsturm / Emberstorm,EU",
-[562]="Alexstrasza,PVE,deDE,Sturmangriff / Charge,EU",
-[563]="Alleria,PVE,deDE,Reckoning / Abrechnung,EU",
-[1391]="Alonsus,PVE,enGB,Reckoning / Abrechnung,EU",
-[601]="Aman'Thul,PVE,deDE,Reckoning / Abrechnung,EU",
-[1330]="Ambossar,PVE,deDE,Reckoning / Abrechnung,EU",
-[1394]="Anachronos,PVE,enGB,Reckoning / Abrechnung,EU",
-[1104]="Anetheron,PVP,deDE,Glutsturm / Emberstorm,EU",
-[564]="Antonidas,PVE,deDE,Vengeance / Rache,EU",
-[608]="Anub'arak,PVP,deDE,Glutsturm / Emberstorm,EU",
-[512]="Arak-arahm,PVP,frFR,Embuscade / Hinterhalt,EU",
-[1334]="Arathi,PVP,frFR,Sturmangriff / Charge,EU",
-[501]="Arathor,PVE,enGB,Vindication,EU",
-[539]="Archimonde,PVP,frFR,Misery,EU",
-[1404]="Area 52,PVE,deDE,Embuscade / Hinterhalt,EU",
-[536]="Argent Dawn,RP,enGB,Reckoning / Abrechnung,EU",
-[578]="Arthas,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1406]="Arygos,PVE,deDE,Embuscade / Hinterhalt,EU",
-[1923]="Ясеневый лес|Ashenvale,PVP,ruRU,Vindication,EU",
-[502]="Aszune,PVE,enGB,Reckoning / Abrechnung,EU",
-[1597]="Auchindoun,PVP,enGB,Vindication,EU",
-[503]="Azjol-Nerub,PVE,enGB,Cruelty / Crueldad,EU",
-[579]="Azshara,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1922]="Азурегос|Azuregos,PVE,ruRU,Vindication,EU",
-[1417]="Azuremyst,PVE,enGB,Glutsturm / Emberstorm,EU",
-[565]="Baelgun,PVE,deDE,Reckoning / Abrechnung,EU",
-[607]="Balnazzar,PVP,enGB,Vindication,EU",
-[3691]="Blackhand,PVE,deDE,Vengeance / Rache,EU",
-[580]="Blackmoore,PVP,deDE,Glutsturm / Emberstorm,EU",
-[581]="Blackrock,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1929]="Черный Шрам|Blackscar,PVP,ruRU,Vindication,EU",
-[1416]="Blade's Edge,PVE,enGB,Glutsturm / Emberstorm,EU",
-[521]="Bladefist,PVP,enGB,Cruelty / Crueldad,EU",
-[630]="Bloodfeather,PVP,enGB,Cruelty / Crueldad,EU",
-[504]="Bloodhoof,PVE,enGB,Reckoning / Abrechnung,EU",
-[522]="Bloodscalp,PVP,enGB,Reckoning / Abrechnung,EU",
-[1613]="Blutkessel,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1924]="Пиратская бухта|Booty Bay,PVP,ruRU,Vindication,EU",
-[1625]="Борейская тундра|Borean Tundra,PVE,ruRU,Sturmangriff / Charge,EU",
-[1299]="Boulderfist,PVP,enGB,Vindication,EU",
-[1393]="Bronze Dragonflight,PVE,enGB,Cruelty / Crueldad,EU",
-[1081]="Bronzebeard,PVE,enGB,Reckoning / Abrechnung,EU",
-[523]="Burning Blade,PVP,enGB,Reckoning / Abrechnung,EU",
-[524]="Burning Legion,PVP,enGB,Cruelty / Crueldad,EU",
-[1392]="Burning Steppes,PVP,enGB,Cruelty / Crueldad,EU",
-[1381]="C'Thun,PVP,esES,Cruelty / Crueldad,EU",
-[1307]="Chamber of Aspects,PVE,enGB,Misery,EU",
-[1620]="Chants éternels,PVE,frFR,Sturmangriff / Charge,EU",
-[545]="Cho'gall,PVP,frFR,Vengeance / Rache,EU",
-[1083]="Chromaggus,PVP,enGB,Vindication,EU",
-[1395]="Colinas Pardas,PVE,esES,Cruelty / Crueldad,EU",
-[1127]="Confrérie du Thorium,RP,frFR,Embuscade / Hinterhalt,EU",
-[644]="Conseil des Ombres,RPPVP,frFR,Embuscade / Hinterhalt,EU",
-[525]="Crushridge,PVP,enGB,Reckoning / Abrechnung,EU",
-[1337]="Culte de la Rive noire,RPPVP,frFR,Embuscade / Hinterhalt,EU",
-[526]="Daggerspine,PVP,enGB,Vindication,EU",
-[538]="Dalaran,PVE,frFR,Sturmangriff / Charge,EU",
-[1321]="Dalvengyr,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1317]="Darkmoon Faire,RP,enGB,Cruelty / Crueldad,EU",
-[631]="Darksorrow,PVP,enGB,Cruelty / Crueldad,EU",
-[1389]="Darkspear,PVE,enGB,Cruelty / Crueldad,EU",
-[1619]="Das Konsortium,RPPVP,deDE,Glutsturm / Emberstorm,EU",
-[614]="Das Syndikat,RPPVP,deDE,Glutsturm / Emberstorm,EU",
-[1605]="Страж Смерти|Deathguard,PVP,ruRU,Vindication,EU",
-[1617]="Ткач Смерти|Deathweaver,PVP,ruRU,Vindication,EU",
-[527]="Deathwing,PVP,enGB,Vindication,EU",
-[1609]="Подземье|Deepholm,PVP,ruRU,Sturmangriff / Charge,EU",
-[635]="Defias Brotherhood,RPPVP,enGB,Glutsturm / Emberstorm,EU",
-[1084]="Dentarg,PVP,enGB,Reckoning / Abrechnung,EU",
-[1327]="Der Mithrilorden,RP,deDE,Embuscade / Hinterhalt,EU",
-[617]="Der Rat von Dalaran,RP,deDE,Embuscade / Hinterhalt,EU",
-[1326]="Der abyssische Rat,RPPVP,deDE,Glutsturm / Emberstorm,EU",
-[582]="Destromath,PVP,deDE,Glutsturm / Emberstorm,EU",
-[531]="Dethecus,PVP,deDE,Embuscade / Hinterhalt,EU",
-[1618]="Die Aldor,RP,deDE,Sturmangriff / Charge,EU",
-[1121]="Die Arguswacht,RPPVP,deDE,Glutsturm / Emberstorm,EU",
-[1333]="Die Nachtwache,RP,deDE,Embuscade / Hinterhalt,EU",
-[576]="Die Silberne Hand,RP,deDE,Glutsturm / Emberstorm,EU",
-[1119]="Die Todeskrallen,RPPVP,deDE,Glutsturm / Emberstorm,EU",
-[1118]="Die ewige Wacht,RP,deDE,Glutsturm / Emberstorm,EU",
-[505]="Doomhammer,PVE,enGB,Embuscade / Hinterhalt,EU",
-[506]="Draenor,PVE,enGB,Embuscade / Hinterhalt,EU",
-[507]="Dragonblight,PVE,enGB,Vindication,EU",
-[528]="Dragonmaw,PVP,enGB,Reckoning / Abrechnung,EU",
-[1092]="Drak'thul,PVP,enGB,Reckoning / Abrechnung,EU",
-[641]="Drek'Thar,PVE,frFR,Embuscade / Hinterhalt,EU",
-[1378]="Dun Modr,PVP,esES,Cruelty / Crueldad,EU",
-[600]="Dun Morogh,PVE,deDE,Embuscade / Hinterhalt,EU",
-[529]="Dunemaul,PVP,enGB,Vindication,EU",
-[535]="Durotan,PVE,deDE,Glutsturm / Emberstorm,EU",
-[561]="Earthen Ring,RP,enGB,Cruelty / Crueldad,EU",
-[1612]="Echsenkessel,PVP,deDE,Sturmangriff / Charge,EU",
-[1123]="Eitrigg,PVE,frFR,Embuscade / Hinterhalt,EU",
-[1336]="Eldre'Thalas,PVP,frFR,Vengeance / Rache,EU",
-[540]="Elune,PVE,frFR,Misery,EU",
-[508]="Emerald Dream,PVE,enGB,Embuscade / Hinterhalt,EU",
-[1091]="Emeriss,PVP,enGB,Reckoning / Abrechnung,EU",
-[1310]="Eonar,PVE,enGB,Glutsturm / Emberstorm,EU",
-[583]="Eredar,PVP,deDE,Vengeance / Rache,EU",
-[1925]="Вечная Песня|Eversong,PVE,ruRU,Vindication,EU",
-[1087]="Executus,PVP,enGB,Cruelty / Crueldad,EU",
-[1385]="Exodar,PVE,esES,Cruelty / Crueldad,EU",
-[1611]="Festung der Stürme,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1623]="Дракономор|Fordragon,PVE,ruRU,Sturmangriff / Charge,EU",
-[516]="Forscherliga,RP,deDE,Embuscade / Hinterhalt,EU",
-[1300]="Frostmane,PVP,enGB,Misery,EU",
-[584]="Frostmourne,PVP,deDE,Glutsturm / Emberstorm,EU",
-[632]="Frostwhisper,PVP,enGB,Cruelty / Crueldad,EU",
-[585]="Frostwolf,PVP,deDE,Vengeance / Rache,EU",
-[1614]="Галакронд|Galakrond,PVE,ruRU,Sturmangriff / Charge,EU",
-[509]="Garona,PVP,frFR,Embuscade / Hinterhalt,EU",
-[1401]="Garrosh,PVE,deDE,Embuscade / Hinterhalt,EU",
-[606]="Genjuros,PVP,enGB,Cruelty / Crueldad,EU",
-[1588]="Ghostlands,PVE,enGB,Vindication,EU",
-[567]="Gilneas,PVE,deDE,Reckoning / Abrechnung,EU",
-[1928]="Голдринн|Goldrinn,PVE,ruRU,Vindication,EU",
-[1602]="Гордунни|Gordunni,PVP,ruRU,Vindication,EU",
-[586]="Gorgonnash,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1610]="Седогрив|Greymane,PVP,ruRU,Vindication,EU",
-[1303]="Grim Batol,PVP,enGB,Misery,EU",
-[1927]="Гром|Grom,PVP,ruRU,Vindication,EU",
-[587]="Gul'dan,PVP,deDE,Glutsturm / Emberstorm,EU",
-[646]="Hakkar,PVP,enGB,Reckoning / Abrechnung,EU",
-[638]="Haomarush,PVP,enGB,Reckoning / Abrechnung,EU",
-[1587]="Hellfire,PVE,enGB,Vindication,EU",
-[619]="Hellscream,PVE,enGB,Vengeance / Rache,EU",
-[1615]="Ревущий фьорд|Howling Fjord,PVP,ruRU,Sturmangriff / Charge,EU",
-[542]="Hyjal,PVE,frFR,Misery,EU",
-[541]="Illidan,PVP,frFR,Sturmangriff / Charge,EU",
-[1304]="Jaedenar,PVP,enGB,Vindication,EU",
-[543]="Kael'thas,PVP,frFR,Embuscade / Hinterhalt,EU",
-[1596]="Karazhan,PVP,enGB,Vindication,EU",
-[568]="Kargath,PVE,deDE,Reckoning / Abrechnung,EU",
-[1305]="Kazzak,PVP,enGB,Misery,EU",
-[588]="Kel'Thuzad,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1080]="Khadgar,PVE,enGB,Reckoning / Abrechnung,EU",
-[640]="Khaz Modan,PVE,frFR,Sturmangriff / Charge,EU",
-[569]="Khaz'goroth,PVE,deDE,Embuscade / Hinterhalt,EU",
-[589]="Kil'jaeden,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1311]="Kilrogg,PVE,enGB,Misery,EU",
-[537]="Kirin Tor,RP,frFR,Glutsturm / Emberstorm,EU",
-[633]="Kor'gall,PVP,enGB,Cruelty / Crueldad,EU",
-[616]="Krag'jin,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1332]="Krasus,PVE,frFR,Embuscade / Hinterhalt,EU",
-[1082]="Kul Tiras,PVE,enGB,Reckoning / Abrechnung,EU",
-[613]="Kult der Verdammten,RPPVP,deDE,Glutsturm / Emberstorm,EU",
-[1086]="La Croisade écarlate,RPPVP,frFR,Embuscade / Hinterhalt,EU",
-[621]="Laughing Skull,PVP,enGB,Vindication,EU",
-[1626]="Les Clairvoyants,RP,frFR,Embuscade / Hinterhalt,EU",
-[647]="Les Sentinelles,RP,frFR,Embuscade / Hinterhalt,EU",
-[1603]="Король-лич|Lich King,PVP,ruRU,Vindication,EU",
-[1388]="Lightbringer,PVE,enGB,Cruelty / Crueldad,EU",
-[637]="Lightning's Blade,PVP,enGB,Vindication,EU",
-[1409]="Lordaeron,PVE,deDE,Glutsturm / Emberstorm,EU",
-[1387]="Los Errantes,PVE,esES,Cruelty / Crueldad,EU",
-[570]="Lothar,PVE,deDE,Reckoning / Abrechnung,EU",
-[571]="Madmortem,PVE,deDE,Vengeance / Rache,EU",
-[3681]="Magtheridon,PVE,enGB,Cruelty / Crueldad,EU",
-[590]="Mal'Ganis,PVP,deDE,Sturmangriff / Charge,EU",
-[572]="Malfurion,PVE,deDE,Reckoning / Abrechnung,EU",
-[1324]="Malorne,PVE,deDE,Reckoning / Abrechnung,EU",
-[1098]="Malygos,PVE,deDE,Reckoning / Abrechnung,EU",
-[591]="Mannoroth,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1621]="Marécage de Zangar,PVE,frFR,Sturmangriff / Charge,EU",
-[1089]="Mazrigos,PVE,enGB,Cruelty / Crueldad,EU",
-[517]="Medivh,PVE,frFR,Vengeance / Rache,EU",
-[1386]="Minahonda,PVE,esES,Cruelty / Crueldad,EU",
-[1085]="Moonglade,RP,enGB,Reckoning / Abrechnung,EU",
-[1319]="Mug'thol,PVP,deDE,Embuscade / Hinterhalt,EU",
-[1589]="Nagrand,PVE,enGB,Misery,EU",
-[594]="Nathrezim,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1624]="Naxxramas,PVP,frFR,Sturmangriff / Charge,EU",
-[1105]="Nazjatar,PVP,deDE,Glutsturm / Emberstorm,EU",
-[612]="Nefarian,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1316]="Nemesis,PVP,itIT,Misery,EU",
-[624]="Neptulon,PVP,enGB,Cruelty / Crueldad,EU",
-[544]="Ner'zhul,PVP,frFR,Embuscade / Hinterhalt,EU",
-[611]="Nera'thor,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1607]="Nethersturm,PVE,deDE,Sturmangriff / Charge,EU",
-[618]="Nordrassil,PVE,enGB,Cruelty / Crueldad,EU",
-[1408]="Norgannon,PVE,deDE,Embuscade / Hinterhalt,EU",
-[574]="Nozdormu,PVE,deDE,Embuscade / Hinterhalt,EU",
-[610]="Onyxia,PVP,deDE,Embuscade / Hinterhalt,EU",
-[1301]="Outland,PVP,enGB,Misery,EU",
-[575]="Perenolde,PVE,deDE,Embuscade / Hinterhalt,EU",
-[1309]="Pozzo dell'Eternità,PVE,itIT,Misery,EU",
-[593]="Proudmoore,PVE,deDE,Vengeance / Rache,EU",
-[623]="Quel'Thalas,PVE,enGB,Cruelty / Crueldad,EU",
-[626]="Ragnaros,PVP,enGB,Sturmangriff / Charge,EU",
-[1322]="Rajaxx,PVP,deDE,Glutsturm / Emberstorm,EU",
-[642]="Rashgarroth,PVP,frFR,Embuscade / Hinterhalt,EU",
-[554]="Ravencrest,PVP,enGB,Vengeance / Rache,EU",
-[1308]="Ravenholdt,RPPVP,enGB,Glutsturm / Emberstorm,EU",
-[1616]="Разувий|Razuvious,PVP,ruRU,Sturmangriff / Charge,EU",
-[1099]="Rexxar,PVE,deDE,Reckoning / Abrechnung,EU",
-[547]="Runetotem,PVE,enGB,Misery,EU",
-[1382]="Sanguino,PVP,esES,Cruelty / Crueldad,EU",
-[546]="Sargeras,PVP,frFR,Embuscade / Hinterhalt,EU",
-[1314]="Saurfang,PVE,enGB,Cruelty / Crueldad,EU",
-[1096]="Scarshield Legion,RPPVP,enGB,Glutsturm / Emberstorm,EU",
-[602]="Sen'jin,PVE,deDE,Embuscade / Hinterhalt,EU",
-[548]="Shadowsong,PVE,enGB,Reckoning / Abrechnung,EU",
-[1598]="Shattered Halls,PVP,enGB,Vindication,EU",
-[556]="Shattered Hand,PVP,enGB,Cruelty / Crueldad,EU",
-[1608]="Shattrath,PVE,deDE,Embuscade / Hinterhalt,EU",
-[1383]="Shen'dralar,PVP,esES,Cruelty / Crueldad,EU",
-[549]="Silvermoon,PVE,enGB,Misery,EU",
-[533]="Sinstralis,PVP,frFR,Vengeance / Rache,EU",
-[557]="Skullcrusher,PVP,enGB,Glutsturm / Emberstorm,EU",
-[1604]="Свежеватель Душ|Soulflayer,PVP,ruRU,Vindication,EU",
-[558]="Spinebreaker,PVP,enGB,Reckoning / Abrechnung,EU",
-[1606]="Sporeggar,RPPVP,enGB,Glutsturm / Emberstorm,EU",
-[1117]="Steamwheedle Cartel,RP,enGB,Reckoning / Abrechnung,EU",
-[550]="Stormrage,PVE,enGB,Glutsturm / Emberstorm,EU",
-[559]="Stormreaver,PVP,enGB,Reckoning / Abrechnung,EU",
-[560]="Stormscale,PVP,enGB,Vengeance / Rache,EU",
-[511]="Sunstrider,PVP,enGB,Vindication,EU",
-[1331]="Suramar,PVE,frFR,Vengeance / Rache,EU",
-[3687]="Sylvanas,PVP,enGB,Sturmangriff / Charge,EU",
-[1320]="Taerar,PVP,deDE,Sturmangriff / Charge,EU",
-[1090]="Talnivarr,PVP,enGB,Vindication,EU",
-[1306]="Tarren Mill,PVP,enGB,Reckoning / Abrechnung,EU",
-[1407]="Teldrassil,PVE,deDE,Embuscade / Hinterhalt,EU",
-[1622]="Temple noir,PVP,frFR,Sturmangriff / Charge,EU",
-[551]="Terenas,PVE,enGB,Embuscade / Hinterhalt,EU",
-[1415]="Terokkar,PVE,enGB,Cruelty / Crueldad,EU",
-[615]="Terrordar,PVP,deDE,Embuscade / Hinterhalt,EU",
-[627]="The Maelstrom,PVP,enGB,Vindication,EU",
-[1595]="The Sha'tar,RP,enGB,Reckoning / Abrechnung,EU",
-[636]="The Venture Co,RPPVP,enGB,Glutsturm / Emberstorm,EU",
-[605]="Theradras,PVP,deDE,Embuscade / Hinterhalt,EU",
-[1926]="Термоштепсель|Thermaplugg,PVP,ruRU,Vindication,EU",
-[604]="Thrall,PVE,deDE,Glutsturm / Emberstorm,EU",
-[643]="Throk'Feroth,PVP,frFR,Embuscade / Hinterhalt,EU",
-[552]="Thunderhorn,PVE,enGB,Misery,EU",
-[1106]="Tichondrius,PVE,deDE,Glutsturm / Emberstorm,EU",
-[1328]="Tirion,PVE,deDE,Glutsturm / Emberstorm,EU",
-[1405]="Todeswache,RP,deDE,Embuscade / Hinterhalt,EU",
-[1088]="Trollbane,PVP,enGB,Vindication,EU",
-[553]="Turalyon,PVE,enGB,Embuscade / Hinterhalt,EU",
-[513]="Twilight's Hammer,PVP,enGB,Reckoning / Abrechnung,EU",
-[625]="Twisting Nether,PVP,enGB,Sturmangriff / Charge,EU",
-[1384]="Tyrande,PVE,esES,Cruelty / Crueldad,EU",
-[1122]="Uldaman,PVE,frFR,Embuscade / Hinterhalt,EU",
-[1323]="Ulduar,PVE,deDE,Reckoning / Abrechnung,EU",
-[1380]="Uldum,PVP,esES,Cruelty / Crueldad,EU",
-[1400]="Un'Goro,PVE,deDE,Embuscade / Hinterhalt,EU",
-[645]="Varimathras,PVE,frFR,Misery,EU",
-[629]="Vashj,PVP,enGB,Reckoning / Abrechnung,EU",
-[1318]="Vek'lor,PVP,deDE,Glutsturm / Emberstorm,EU",
-[1298]="Vek'nilash,PVE,enGB,Glutsturm / Emberstorm,EU",
-[510]="Vol'jin,PVE,frFR,Embuscade / Hinterhalt,EU",
-[1313]="Wildhammer,PVE,enGB,Misery,EU",
-[609]="Wrathbringer,PVP,deDE,Glutsturm / Emberstorm,EU",
-[639]="Xavius,PVP,enGB,Glutsturm / Emberstorm,EU",
-[1097]="Ysera,PVE,deDE,Reckoning / Abrechnung,EU",
-[1335]="Ysondre,PVP,frFR,Vengeance / Rache,EU",
-[515]="Zenedar,PVP,enGB,Cruelty / Crueldad,EU",
-[592]="Zirkel des Cenarius,RP,deDE,Embuscade / Hinterhalt,EU",
-[1379]="Zul'jin,PVP,esES,Cruelty / Crueldad,EU",
-[573]="Zuluhed,PVP,deDE,Glutsturm / Emberstorm,EU",
---}}
---[[ {{ KOREA
-[]="가로나,PVP,koKR,격노의 전장,KR",
-[]="굴단,PVP,koKR,징벌의 전장,KR",
-[]="노르간논,PVP,koKR,징벌의 전장,KR",
-[]="달라란,PVP,koKR,격노의 전장,KR",
-[]="데스윙,PVP,koKR,격노의 전장,KR",
-[]="듀로탄,PVP,koKR,징벌의 전장,KR",
-[]="렉사르,PVE,koKR,격노의 전장,KR",
-[]="말퓨리온,PVP,koKR,격노의 전장,KR",
-[]="불타는 군단,PVE,koKR,격노의 전장,KR",
-[]="세나리우스,PVP,koKR,격노의 전장,KR",
-[]="스톰레이지,PVE,koKR,징벌의 전장,KR",
-[]="아즈샤라,PVP,koKR,징벌의 전장,KR",
-[]="알렉스트라자,PVP,koKR,격노의 전장,KR",
-[]="와일드해머,PVE,koKR,격노의 전장,KR",
-[]="윈드러너,PVE,koKR,징벌의 전장,KR",
-[]="줄진,PVP,koKR,징벌의 전장,KR",
-[]="하이잘,PVP,koKR,격노의 전장,KR",
-[]="헬스크림,PVP,koKR,격노의 전장,KR",
---}} ]]
---{{ CHINA
-[925]="万色星辰,PVE,zhCN,Battle Group 9,CN",
-[922]="世界之树,PVE,zhCN,Battle Group 9,CN",
-[1494]="丹莫德,PVP,zhCN,Battle Group 13,CN",
-[794]="主宰之剑,PVP,zhCN,Battle Group 4,CN",
-[1696]="亚雷戈斯,PVE,zhCN,Battle Group 16,CN",
-[2124]="亡语者,PVP,zhCN,Battle Group 21,CN",
-[1663]="伊兰尼库斯,PVP,zhCN,Battle Group 15,CN",
-[790]="伊利丹,PVP,zhCN,Battle Group 4,CN",
-[940]="伊森利恩,PVP,zhCN,Battle Group 10,CN",
-[1694]="伊森德雷,PVP,zhCN,Battle Group 16,CN",
-[746]="伊瑟拉,PVE,zhCN,Battle Group 2,CN",
-[1502]="伊莫塔尔,PVP,zhCN,Battle Group 14,CN",
-[951]="伊萨里奥斯,PVP,zhCN,Battle Group 10,CN",
-[944]="元素之力,PVP,zhCN,Battle Group 10,CN",
-[864]="克尔苏加德,PVP,zhCN,Battle Group 8,CN",
-[1207]="克洛玛古斯,PVP,zhCN,Battle Group 11,CN",
-[1209]="克苏恩,PVP,zhCN,Battle Group 11,CN",
-[1809]="军团要塞,PVP,zhCN,Battle Group 17,CN",
-[2137]="冬拥湖,PVP,zhCN,Battle Group 21,CN",
-[1693]="冬泉谷,PVP,zhCN,Battle Group 16,CN",
-[1657]="冰川之拳,PVP,zhCN,Battle Group 15,CN",
-[758]="冰霜之刃,PVP,zhCN,Battle Group 3,CN",
-[852]="冰风岗,PVP,zhCN,Battle Group 7,CN",
-[1794]="凤凰之神,PVP,zhCN,Battle Group 17,CN",
-[863]="凯尔萨斯,PVP,zhCN,Battle Group 8,CN",
-[814]="凯恩血蹄,PVP,zhCN,Battle Group 5,CN",
-[867]="利刃之拳,PVP,zhCN,Battle Group 7,CN",
-[1658]="刺骨利刃,PVP,zhCN,Battle Group 15,CN",
-[927]="加兹鲁维,PVP,zhCN,Battle Group 9,CN",
-[1498]="加基森,PVP,zhCN,Battle Group 13,CN",
-[1944]="加尔,PVP,zhCN,Battle Group 19,CN",
-[1499]="加里索斯,PVP,zhCN,Battle Group 13,CN",
-[840]="勇士岛,PVP,zhCN,Battle Group 6,CN",
-[828]="千针石林,PVP,zhCN,Battle Group 6,CN",
-[771]="卡德加,PVP,zhCN,Battle Group 3,CN",
-[720]="卡德罗斯,PVP,zhCN,Battle Group 1,CN",
-[721]="卡扎克,PVP,zhCN,Battle Group 1,CN",
-[1216]="卡拉赞,PVP,zhCN,Battle Group 11,CN",
-[916]="卡珊德拉,PVP,zhCN,Battle Group 9,CN",
-[1692]="厄祖玛特,PVP,zhCN,Battle Group 16,CN",
-[1489]="古加尔,PVP,zhCN,Battle Group 13,CN",
-[857]="古尔丹,PVP,zhCN,Battle Group 7,CN",
-[1223]="古拉巴什,PVP,zhCN,Battle Group 12,CN",
-[2127]="古达克,PVP,zhCN,Battle Group 21,CN",
-[1808]="哈兰,PVP,zhCN,Battle Group 17,CN",
-[1224]="哈卡,PVP,zhCN,Battle Group 12,CN",
-[1971]="嚎风峡湾,PVP,zhCN,Battle Group 20,CN",
-[718]="回音山,PVE,zhCN,Battle Group 1,CN",
-[714]="国王之谷,PVP,zhCN,Battle Group 1,CN",
-[745]="图拉扬,PVE,zhCN,Battle Group 2,CN",
-[833]="圣火神殿,PVP,zhCN,Battle Group 6,CN",
-[762]="地狱之石,PVP,zhCN,Battle Group 3,CN",
-[761]="地狱咆哮,PVP,zhCN,Battle Group 3,CN",
-[1496]="埃克索图斯,PVP,zhCN,Battle Group 13,CN",
-[750]="埃加洛尔,PVP,zhCN,Battle Group 3,CN",
-[797]="埃德萨拉,PVP,zhCN,Battle Group 5,CN",
-[751]="埃苏雷格,PVP,zhCN,Battle Group 3,CN",
-[846]="埃雷达尔,PVP,zhCN,Battle Group 7,CN",
-[859]="基尔加丹,PVP,zhCN,Battle Group 7,CN",
-[719]="基尔罗格,PVP,zhCN,Battle Group 1,CN",
-[1512]="塔纳利斯,PVP,zhCN,Battle Group 14,CN",
-[1687]="塞拉摩,PVP,zhCN,Battle Group 16,CN",
-[1514]="塞拉赞恩,PVP,zhCN,Battle Group 14,CN",
-[1820]="塞泰克,PVP,zhCN,Battle Group 18,CN",
-[782]="塞纳里奥,PVE,zhCN,Battle Group 4,CN",
-[1949]="壁炉谷,PVP,zhCN,Battle Group 19,CN",
-[781]="夏维安,PVP,zhCN,Battle Group 4,CN",
-[1507]="外域,PVP,zhCN,Battle Group 14,CN",
-[930]="大地之怒,PVP,zhCN,Battle Group 10,CN",
-[1503]="大漩涡,PVP,zhCN,Battle Group 14,CN",
-[1508]="天空之墙,PVP,zhCN,Battle Group 14,CN",
-[1824]="太阳之井,PVP,zhCN,Battle Group 18,CN",
-[1682]="夺灵者,PVP,zhCN,Battle Group 16,CN",
-[1228]="奈法利安,PVP,zhCN,Battle Group 12,CN",
-[734]="奈萨里奥,PVP,zhCN,Battle Group 2,CN",
-[1965]="奎尔丹纳斯,PVP,zhCN,Battle Group 20,CN",
-[1229]="奎尔萨拉斯,PVP,zhCN,Battle Group 12,CN",
-[1505]="奥妮克希亚,PVP,zhCN,Battle Group 14,CN",
-[2120]="奥尔加隆,PVP,zhCN,Battle Group 21,CN",
-[757]="奥拉基尔,PVP,zhCN,Battle Group 3,CN",
-[1506]="奥斯里安,PVP,zhCN,Battle Group 14,CN",
-[850]="奥特兰克,PVP,zhCN,Battle Group 7,CN",
-[706]="奥蕾莉亚,PVE,zhCN,Battle Group 1,CN",
-[705]="奥达曼,PVP,zhCN,Battle Group 1,CN",
-[918]="守护之剑,PVP,zhCN,Battle Group 9,CN",
-[1198]="安其拉,PVP,zhCN,Battle Group 11,CN",
-[2122]="安加萨,PVP,zhCN,Battle Group 21,CN",
-[952]="安多哈尔,PVP,zhCN,Battle Group 10,CN",
-[704]="安威玛尔,PVP,zhCN,Battle Group 1,CN",
-[1517]="安戈洛,PVP,zhCN,Battle Group 14,CN",
-[2121]="安格博达,PVP,zhCN,Battle Group 21,CN",
-[1199]="安纳塞隆,PVP,zhCN,Battle Group 11,CN",
-[1933]="安苏,PVP,zhCN,Battle Group 19,CN",
-[938]="密林游侠,PVP,zhCN,Battle Group 10,CN",
-[858]="寒冰皇冠,PVP,zhCN,Battle Group 7,CN",
-[710]="尘风峡谷,PVP,zhCN,Battle Group 1,CN",
-[788]="屠魔山谷,PVP,zhCN,Battle Group 4,CN",
-[740]="山丘之王,PVP,zhCN,Battle Group 2,CN",
-[861]="巨龙之吼,PVP,zhCN,Battle Group 7,CN",
-[1670]="巫妖之王,PVP,zhCN,Battle Group 15,CN",
-[851]="巴尔古恩,PVP,zhCN,Battle Group 7,CN",
-[1486]="巴瑟拉斯,PVP,zhCN,Battle Group 13,CN",
-[1203]="巴纳扎尔,PVP,zhCN,Battle Group 11,CN",
-[921]="布兰卡德,PVP,zhCN,Battle Group 9,CN",
-[800]="布莱克摩,PVP,zhCN,Battle Group 5,CN",
-[1501]="布莱恩,PVE,zhCN,Battle Group 13,CN",
-[1937]="布鲁塔卢斯,PVP,zhCN,Battle Group 19,CN",
-[885]="希尔瓦娜斯,PVP,zhCN,Battle Group 8,CN",
-[1819]="希雷诺斯,PVP,zhCN,Battle Group 18,CN",
-[1676]="幽暗沼泽,PVP,zhCN,Battle Group 15,CN",
-[1226]="库尔提拉斯,PVP,zhCN,Battle Group 12,CN",
-[723]="库德兰,PVP,zhCN,Battle Group 1,CN",
-[766]="弗塞雷迦,PVP,zhCN,Battle Group 3,CN",
-[2133]="影之哀伤,PVP,zhCN,Battle Group 21,CN",
-[891]="影牙要塞,PVP,zhCN,Battle Group 8,CN",
-[1214]="德拉诺,PVP,zhCN,Battle Group 11,CN",
-[1488]="恐怖图腾,PVP,zhCN,Battle Group 13,CN",
-[924]="恶魔之翼,PVP,zhCN,Battle Group 9,CN",
-[1492]="恶魔之魂,PVP,zhCN,Battle Group 13,CN",
-[767]="戈古纳斯,PVP,zhCN,Battle Group 3,CN",
-[1947]="戈提克,PVP,zhCN,Battle Group 19,CN",
-[793]="战歌,PVP,zhCN,Battle Group 4,CN",
-[1695]="扎拉赞恩,PVP,zhCN,Battle Group 16,CN",
-[1515]="托塞德林,PVP,zhCN,Battle Group 14,CN",
-[1823]="托尔巴拉德,PVP,zhCN,Battle Group 18,CN",
-[772]="拉文凯斯,PVP,zhCN,Battle Group 4,CN",
-[1231]="拉文霍德,PVP,zhCN,Battle Group 12,CN",
-[865]="拉格纳洛斯,PVP,zhCN,Battle Group 7,CN",
-[1230]="拉贾克斯,PVP,zhCN,Battle Group 12,CN",
-[954]="提尔之手,PVP,zhCN,Battle Group 10,CN",
-[882]="提瑞斯法,PVP,zhCN,Battle Group 8,CN",
-[1815]="摩摩尔,PVP,zhCN,Battle Group 18,CN",
-[920]="斩魔者,PVP,zhCN,Battle Group 9,CN",
-[878]="斯坦索姆,PVP,zhCN,Battle Group 8,CN",
-[1240]="无尽之海,PVP,zhCN,Battle Group 12,CN",
-[1803]="无底海渊,PVP,zhCN,Battle Group 17,CN",
-[946]="日落沼泽,PVP,zhCN,Battle Group 10,CN",
-[737]="普瑞斯托,PVE,zhCN,Battle Group 2,CN",
-[827]="普罗德摩,PVP,zhCN,Battle Group 6,CN",
-[756]="暗影之月,PVP,zhCN,Battle Group 3,CN",
-[849]="暗影议会,PVP,zhCN,Battle Group 7,CN",
-[1821]="暗影迷宫,PVP,zhCN,Battle Group 18,CN",
-[943]="暮色森林,PVP,zhCN,Battle Group 10,CN",
-[708]="暴风祭坛,PVP,zhCN,Battle Group 1,CN",
-[791]="月光林地,PVE,zhCN,Battle Group 4,CN",
-[792]="月神殿,PVE,zhCN,Battle Group 4,CN",
-[1827]="末日祷告祭坛,PVP,zhCN,Battle Group 18,CN",
-[1939]="末日行者,PVP,zhCN,Battle Group 19,CN",
-[959]="朵丹尼尔,PVP,zhCN,Battle Group 10,CN",
-[802]="杜隆坦,PVP,zhCN,Battle Group 5,CN",
-[1222]="格瑞姆巴托,PVP,zhCN,Battle Group 12,CN",
-[1500]="格雷迈恩,PVP,zhCN,Battle Group 13,CN",
-[1807]="格鲁尔,PVP,zhCN,Battle Group 17,CN",
-[1212]="桑德兰,PVP,zhCN,Battle Group 11,CN",
-[775]="梅尔加尼,PVP,zhCN,Battle Group 4,CN",
-[776]="梦境之树,PVE,zhCN,Battle Group 4,CN",
-[1232]="森金,PVP,zhCN,Battle Group 12,CN",
-[741]="死亡之翼,PVP,zhCN,Battle Group 2,CN",
-[1802]="死亡熔炉,PVP,zhCN,Battle Group 17,CN",
-[769]="毁灭之锤,PVP,zhCN,Battle Group 3,CN",
-[928]="水晶之刺,PVP,zhCN,Battle Group 9,CN",
-[956]="永夜港,PVE,zhCN,Battle Group 10,CN",
-[1236]="永恒之井,PVP,zhCN,Battle Group 12,CN",
-[1970]="沙怒,PVP,zhCN,Battle Group 20,CN",
-[960]="法拉希姆,PVP,zhCN,Battle Group 10,CN",
-[787]="泰兰德,PVE,zhCN,Battle Group 4,CN",
-[1234]="泰拉尔,PVP,zhCN,Battle Group 12,CN",
-[1227]="洛丹伦,PVP,zhCN,Battle Group 12,CN",
-[2129]="洛肯,PVP,zhCN,Battle Group 21,CN",
-[730]="洛萨,PVP,zhCN,Battle Group 2,CN",
-[1225]="海克泰尔,PVP,zhCN,Battle Group 12,CN",
-[768]="海加尔,PVP,zhCN,Battle Group 4,CN",
-[1237]="海达希亚,PVE,zhCN,Battle Group 12,CN",
-[936]="浸毒之骨,PVP,zhCN,Battle Group 9,CN",
-[1793]="深渊之喉,PVP,zhCN,Battle Group 17,CN",
-[1659]="深渊之巢,PVP,zhCN,Battle Group 15,CN",
-[926]="激流之傲,PVP,zhCN,Battle Group 9,CN",
-[860]="激流堡,PVP,zhCN,Battle Group 7,CN",
-[1664]="火喉,PVP,zhCN,Battle Group 15,CN",
-[1662]="火烟之谷,PVP,zhCN,Battle Group 15,CN",
-[770]="火焰之树,PVP,zhCN,Battle Group 3,CN",
-[810]="火羽山,PVP,zhCN,Battle Group 5,CN",
-[1484]="灰谷,PVP,zhCN,Battle Group 13,CN",
-[727]="烈焰峰,PVP,zhCN,Battle Group 2,CN",
-[1681]="烈焰荆棘,PVP,zhCN,Battle Group 16,CN",
-[838]="熊猫酒仙,PVP,zhCN,Battle Group 6,CN",
-[1221]="熔火之心,PVP,zhCN,Battle Group 11,CN",
-[1941]="熵魔,PVP,zhCN,Battle Group 19,CN",
-[829]="燃烧之刃,PVP,zhCN,Battle Group 6,CN",
-[1206]="燃烧军团,PVP,zhCN,Battle Group 11,CN",
-[738]="燃烧平原,PVP,zhCN,Battle Group 2,CN",
-[755]="爱斯特纳,PVP,zhCN,Battle Group 3,CN",
-[915]="狂热之刃,PVP,zhCN,Battle Group 9,CN",
-[815]="狂风峭壁,PVP,zhCN,Battle Group 5,CN",
-[731]="玛多兰,PVE,zhCN,Battle Group 2,CN",
-[773]="玛法里奥,PVP,zhCN,Battle Group 4,CN",
-[2130]="玛洛加尔,PVP,zhCN,Battle Group 21,CN",
-[732]="玛瑟里顿,PVP,zhCN,Battle Group 2,CN",
-[869]="玛诺洛斯,PVP,zhCN,Battle Group 8,CN",
-[822]="玛里苟斯,PVP,zhCN,Battle Group 6,CN",
-[874]="瑞文戴尔,PVP,zhCN,Battle Group 8,CN",
-[1513]="瑟莱德丝,PVP,zhCN,Battle Group 14,CN",
-[1829]="瓦丝琪,PVP,zhCN,Battle Group 18,CN",
-[1235]="瓦拉斯塔兹,PVP,zhCN,Battle Group 12,CN",
-[1202]="瓦里玛萨斯,PVE,zhCN,Battle Group 11,CN",
-[835]="甜水绿洲,PVP,zhCN,Battle Group 6,CN",
-[1934]="生态船,PVP,zhCN,Battle Group 19,CN",
-[707]="白银之手,PVE,zhCN,Battle Group 1,CN",
-[1936]="白骨荒野,PVP,zhCN,Battle Group 19,CN",
-[1948]="盖斯,PVP,zhCN,Battle Group 19,CN",
-[786]="石爪峰,PVP,zhCN,Battle Group 4,CN",
-[1685]="石锤,PVP,zhCN,Battle Group 16,CN",
-[1208]="破碎岭,PVP,zhCN,Battle Group 11,CN",
-[1519]="祖尔金,PVP,zhCN,Battle Group 14,CN",
-[1830]="祖阿曼,PVP,zhCN,Battle Group 18,CN",
-[941]="神圣之歌,PVE,zhCN,Battle Group 10,CN",
-[1813]="穆戈尔,PVP,zhCN,Battle Group 18,CN",
-[803]="符文图腾,PVP,zhCN,Battle Group 5,CN",
-[1672]="米奈希尔,PVP,zhCN,Battle Group 15,CN",
-[742]="索拉丁,PVP,zhCN,Battle Group 2,CN",
-[807]="红云台地,PVP,zhCN,Battle Group 5,CN",
-[717]="红龙军团,PVP,zhCN,Battle Group 1,CN",
-[806]="红龙女王,PVP,zhCN,Battle Group 5,CN",
-[1239]="纳克萨玛斯,PVP,zhCN,Battle Group 12,CN",
-[825]="纳沙塔尔,PVP,zhCN,Battle Group 6,CN",
-[2123]="织亡者,PVP,zhCN,Battle Group 21,CN",
-[729]="罗宁,PVP,zhCN,Battle Group 2,CN",
-[841]="羽月,PVE,zhCN,Battle Group 6,CN",
-[1832]="翡翠梦境,PVE,zhCN,Battle Group 18,CN",
-[872]="耐奥祖,PVP,zhCN,Battle Group 8,CN",
-[778]="耐普图隆,PVP,zhCN,Battle Group 4,CN",
-[856]="耳语海岸,PVE,zhCN,Battle Group 7,CN",
-[1942]="能源舰,PVP,zhCN,Battle Group 19,CN",
-[843]="自由之风,PVP,zhCN,Battle Group 6,CN",
-[754]="艾森娜,PVE,zhCN,Battle Group 3,CN",
-[847]="艾欧纳尔,PVP,zhCN,Battle Group 7,CN",
-[1485]="艾维娜,PVE,zhCN,Battle Group 13,CN",
-[703]="艾苏恩,PVP,zhCN,Battle Group 1,CN",
-[1495]="艾莫莉丝,PVP,zhCN,Battle Group 13,CN",
-[753]="艾萨拉,PVP,zhCN,Battle Group 3,CN",
-[1812]="艾露恩,PVE,zhCN,Battle Group 17,CN",
-[949]="芬里斯,PVP,zhCN,Battle Group 10,CN",
-[929]="苏塔恩,PVP,zhCN,Battle Group 9,CN",
-[1828]="范克里夫,PVP,zhCN,Battle Group 18,CN",
-[1233]="范达尔鹿盔,PVP,zhCN,Battle Group 12,CN",
-[1510]="荆棘谷,PVP,zhCN,Battle Group 14,CN",
-[2131]="莫德雷萨,PVP,zhCN,Battle Group 21,CN",
-[1241]="莱索恩,PVP,zhCN,Battle Group 12,CN",
-[1497]="菲拉斯,PVP,zhCN,Battle Group 13,CN",
-[1943]="菲米丝,PVP,zhCN,Battle Group 19,CN",
-[2132]="萨塔里奥,PVP,zhCN,Battle Group 21,CN",
-[830]="萨尔,PVP,zhCN,Battle Group 6,CN",
-[739]="萨格拉斯,PVP,zhCN,Battle Group 2,CN",
-[1969]="萨洛拉丝,PVP,zhCN,Battle Group 20,CN",
-[1238]="萨菲隆,PVP,zhCN,Battle Group 12,CN",
-[725]="蓝龙军团,PVP,zhCN,Battle Group 2,CN",
-[709]="藏宝海湾,PVP,zhCN,Battle Group 1,CN",
-[842]="蜘蛛王国,PVP,zhCN,Battle Group 6,CN",
-[1946]="血吼,PVP,zhCN,Battle Group 19,CN",
-[839]="血牙魔王,PVP,zhCN,Battle Group 6,CN",
-[799]="血环,PVP,zhCN,Battle Group 5,CN",
-[1205]="血羽,PVP,zhCN,Battle Group 11,CN",
-[886]="血色十字军,PVP,zhCN,Battle Group 8,CN",
-[1487]="血顶,PVP,zhCN,Battle Group 13,CN",
-[1817]="试炼之环,PVP,zhCN,Battle Group 18,CN",
-[826]="诺兹多姆,PVE,zhCN,Battle Group 6,CN",
-[1504]="诺森德,PVP,zhCN,Battle Group 14,CN",
-[736]="诺莫瑞根,PVP,zhCN,Battle Group 2,CN",
-[1950]="贫瘠之地,PVE,zhCN,Battle Group 19,CN",
-[933]="踏梦者,PVP,zhCN,Battle Group 10,CN",
-[780]="轻风之语,PVE,zhCN,Battle Group 4,CN",
-[2125]="达克萨隆,PVP,zhCN,Battle Group 21,CN",
-[1940]="达基萨斯,PVP,zhCN,Battle Group 19,CN",
-[1938]="达尔坎,PVP,zhCN,Battle Group 19,CN",
-[1490]="达文格尔,PVP,zhCN,Battle Group 13,CN",
-[760]="达斯雷玛,PVP,zhCN,Battle Group 3,CN",
-[711]="达纳斯,PVP,zhCN,Battle Group 1,CN",
-[855]="达隆米尔,PVP,zhCN,Battle Group 7,CN",
-[917]="迅捷微风,PVP,zhCN,Battle Group 9,CN",
-[2135]="远古海滩,PVP,zhCN,Battle Group 21,CN",
-[2118]="迦拉克隆,PVE,zhCN,Battle Group 21,CN",
-[1667]="迦玛兰,PVP,zhCN,Battle Group 15,CN",
-[812]="迦罗娜,PVP,zhCN,Battle Group 5,CN",
-[1945]="迦顿,PVP,zhCN,Battle Group 19,CN",
-[712]="迪托马斯,PVP,zhCN,Battle Group 1,CN",
-[1493]="迪瑟洛克,PVP,zhCN,Battle Group 13,CN",
-[1511]="逐日者,PVE,zhCN,Battle Group 14,CN",
-[883]="通灵学院,PVP,zhCN,Battle Group 8,CN",
-[887]="遗忘海岸,PVE,zhCN,Battle Group 8,CN",
-[1668]="金度,PVP,zhCN,Battle Group 15,CN",
-[962]="金色平原,rppvp,zhCN,Battle Group 10,CN",
-[744]="铜龙军团,PVP,zhCN,Battle Group 2,CN",
-[889]="银月,PVE,zhCN,Battle Group 8,CN",
-[888]="银松森林,PVE,zhCN,Battle Group 8,CN",
-[784]="闪电之刃,PVP,zhCN,Battle Group 4,CN",
-[749]="阿克蒙德,PVP,zhCN,Battle Group 3,CN",
-[1200]="阿努巴拉克,PVP,zhCN,Battle Group 11,CN",
-[1482]="阿卡玛,PVP,zhCN,Battle Group 13,CN",
-[1795]="阿古斯,PVP,zhCN,Battle Group 17,CN",
-[844]="阿尔萨斯,PVP,zhCN,Battle Group 7,CN",
-[1483]="阿扎达斯,PVP,zhCN,Battle Group 13,CN",
-[1201]="阿拉希,PVP,zhCN,Battle Group 11,CN",
-[845]="阿拉索,PVP,zhCN,Battle Group 7,CN",
-[1935]="阿斯塔洛,PVP,zhCN,Battle Group 19,CN",
-[1932]="阿曼尼,PVP,zhCN,Battle Group 19,CN",
-[700]="阿格拉玛,PVP,zhCN,Battle Group 1,CN",
-[1931]="阿比迪斯,PVP,zhCN,Battle Group 19,CN",
-[1210]="阿纳克洛斯,PVP,zhCN,Battle Group 11,CN",
-[748]="阿迦玛甘,PVP,zhCN,Battle Group 3,CN",
-[931]="雏龙之翼,PVP,zhCN,Battle Group 9,CN",
-[817]="雷克萨,PVP,zhCN,Battle Group 6,CN",
-[816]="雷斧堡垒,PVP,zhCN,Battle Group 5,CN",
-[1211]="雷霆之怒,PVP,zhCN,Battle Group 11,CN",
-[726]="雷霆之王,PVP,zhCN,Battle Group 2,CN",
-[818]="雷霆号角,PVP,zhCN,Battle Group 5,CN",
-[1955]="霍格,PVP,zhCN,Battle Group 20,CN",
-[877]="霜之哀伤,PVE,zhCN,Battle Group 8,CN",
-[876]="霜狼,PVP,zhCN,Battle Group 8,CN",
-[764]="风暴之怒,PVP,zhCN,Battle Group 3,CN",
-[953]="风暴之眼,PVP,zhCN,Battle Group 10,CN",
-[1509]="风暴之鳞,PVP,zhCN,Battle Group 14,CN",
-[2134]="风暴峭壁,PVP,zhCN,Battle Group 21,CN",
-[765]="风行者,PVP,zhCN,Battle Group 3,CN",
-[804]="鬼雾峰,PVP,zhCN,Battle Group 5,CN",
-[1798]="鲜血熔炉,PVP,zhCN,Battle Group 17,CN",
-[890]="鹰巢山,PVP,zhCN,Battle Group 8,CN",
-[1810]="麦姆,PVP,zhCN,Battle Group 17,CN",
-[774]="麦维影歌,PVP,zhCN,Battle Group 4,CN",
-[870]="麦迪文,PVE,zhCN,Battle Group 8,CN",
-[808]="黄金之路,PVE,zhCN,Battle Group 5,CN",
-[1204]="黑手军团,PVP,zhCN,Battle Group 11,CN",
-[805]="黑暗之矛,PVP,zhCN,Battle Group 5,CN",
-[1801]="黑暗之门,PVP,zhCN,Battle Group 17,CN",
-[1516]="黑暗虚空,PVP,zhCN,Battle Group 14,CN",
-[932]="黑暗魅影,PVP,zhCN,Battle Group 9,CN",
-[716]="黑石尖塔,PVP,zhCN,Battle Group 1,CN",
-[1213]="黑翼之巢,PVP,zhCN,Battle Group 11,CN",
-[1491]="黑铁,PVP,zhCN,Battle Group 13,CN",
-[2126]="黑锋哨站,PVP,zhCN,Battle Group 21,CN",
-[715]="黑龙军团,PVP,zhCN,Battle Group 1,CN",
-[1215]="龙骨平原,PVP,zhCN,Battle Group 11,CN",
---}}
---{{ TAIWAN
-[982]="世界之樹,PVE,zhTW,嗜血,TW",
-[1038]="亞雷戈斯,PVE,zhTW,嗜血,TW",
-[977]="冰霜之刺,PVP,zhTW,嗜血,TW",
-[1001]="冰風崗哨,PVP,zhTW,嗜血,TW",
-[979]="地獄吼,PVP,zhTW,嗜血,TW",
-[1043]="夜空之歌,PVP,zhTW,嗜血,TW",
-[980]="天空之牆,PVE,zhTW,嗜血,TW",
-[1057]="寒冰皇冠,PVP,zhTW,嗜血,TW",
-[964]="尖石,PVP,zhTW,嗜血,TW",
-[1023]="屠魔山谷,PVP,zhTW,嗜血,TW",
-[966]="巨龍之喉,PVP,zhTW,嗜血,TW",
-[1049]="憤怒使者,PVP,zhTW,嗜血,TW",
-[978]="日落沼澤,PVP,zhTW,嗜血,TW",
-[963]="暗影之月,PVE,zhTW,嗜血,TW",
-[985]="水晶之刺,PVP,zhTW,嗜血,TW",
-[999]="狂熱之刃,PVP,zhTW,嗜血,TW",
-[1056]="眾星之子,PVE,zhTW,嗜血,TW",
-[1006]="米奈希爾,PVP,zhTW,嗜血,TW",
-[1046]="聖光之願,PVE,zhTW,嗜血,TW",
-[1037]="血之谷,PVP,zhTW,嗜血,TW",
-[1033]="語風,PVE,zhTW,嗜血,TW",
-[1048]="銀翼要塞,PVP,zhTW,嗜血,TW",
-[1054]="阿薩斯,PVP,zhTW,嗜血,TW",
-[965]="雷鱗,PVP,zhTW,嗜血,TW",
---}}
-}
-
-------------------------------------------------------------------------
-
-connections = {
---{{ NORTH AMERICA
--- http://us.battle.net/wow/en/blog/11393305
-"1136,83,109,129,1142", -- Aegwynn, Bonechewer, Daggerspine, Gurubashi, Hakkar
-"1129,56,1291,1559", -- Agamaggan, Archimonde, Jaedenar, The Underbog
-"106,1576", -- Aggramar, Fizzcrank
-"1137,84,1145", -- Akama, Dragonmaw, Mug'thol
-"1070,1563", -- Alexstrasza, Terokkar
-"52,65", -- Alleria, Khadgar
-"1282,1264,78,1268", -- Altar of Storms, Anetheron, Magtheridon, Ysondre
-"1293,1075,80,1344,71", -- Alterac Mountains, Balnazzar, Gorgonnash, The Forgotten Coast, Warsong
-"1276,1267,156,1259", -- Andorhal, Scilla, Ursin, Zuluhed
-"1363,116", -- Antonidas, Uldum
-"1346,1138,107,1141,130", -- Anub'arak, Chromaggus, Crushridge, Garithos, Nathrezim, Smolderthorn
-"1288,1294", -- Anvilmar, Undermine
-"1165,1377", -- Arathor, Drenden
-"75,1570", -- Argent Dawn, The Scryers
-"1297,99", -- Arygos, Llane
-"1555,1067,101", -- Auchindoun, Cho'gall, Laughing Skull
-"77,1128,79,103", -- Azgalor, Azshara, Destromath, Thunderlord
-"121,1143", -- Azjol-Nerub, Khaz Modan
-"1549,160", -- Azuremyst, Staghelm
-"1190,13", -- Baelgun, Doomhammer
-"1280,1068,74", -- Black Dragonflight, Gul'dan, Skullcrusher
-"54,1581", -- Blackhand, Galakrond
-"1347,125", -- Blackwater Raiders, Shadow Council
-"1296,81,154,1266,1295", -- Blackwing Lair, Dethecus, Detheroc, Haomarush, Lethon
-"1353,1147", -- Bladefist, Kul Tiras
-"1564,105", -- Blade's Edge, Thunderhorn
-"1558,70,1131", -- Blood Furnace, Mannoroth, Nazjatar
-"64,1258", -- Bloodhoof, Duskwood
-"119,112,111,1357,108", -- Bloodscalp, Boulderfist, Dunemaul, Maiev, Stonemaul
-"1371,85", -- Borean Tundra, Shadowsong
-"117,1364", -- Bronzebeard, Shandris
-"91,95,1285", -- Burning Blade, Lightning's Blade, Onyxia
-"1430,1432", -- Caelestrasz, Nagrand
-"1361,122", -- Cairne, Perenolde
-"88,1356", -- Cenarion Circle, Sisters of Elune
-"1556,1278,157,1286,72", -- Coilfang, Dalvengyr, Dark Iron, Demon Soul, Shattered Hand
-"1351,87", -- Darrowmere, Windrunner
-"1434,1134", -- Dath'Remar, Khaz'goroth
-"1582,1173", -- Dawnbringer, Madoran
-"15,1277,155,1557", -- Deathwing, Executus, Kalecgos, Shattered Halls
-"1271,55", -- Dentarg, Whisperwind
-"115,1342", -- Draenor, Echo Isles
-"114,1345", -- Dragonblight, Fenris
-"1139,113", -- Draka, Suramar
-"1362,127,1148,1358,124,110", -- Drak'Tharon, Firetree, Malorne, Rivendare, Spirestone, Stormscale
-"1140,131", -- Drak'thul, Skywall
-"1429,1433", -- Dreadmaul, Thaurissan
-"63,1270", -- Durotan, Ysera
-"58,1354", -- Eitrigg, Shu'halo
-"123,1349", -- Eldre'Thalas, Korialstrasz
-"67,97", -- Elune, Gilneas
-"96,1567", -- Eonar, Velen
-"93,92,82,159", -- Eredar, Gorefiend, Spinebreaker, Wildhammer
-"1565,62", -- Exodar, Medivh
-"1370,12,1154", -- Farstriders, Silver Hand, Thorium Brotherhood
-"118,126", -- Feathermoon, Scarlet Crusade
-"128,8,1360", -- Frostmane, Ner'zhul, Tortheldrin
-"7,1348", -- Frostwolf, Vashj
-"1578,1069", -- Ghostlands, Kael'thas
-"1287,153", -- Gnomeregan, Moonrunner
-"158,1292", -- Greymane, Tanaris
-"1579,68", -- Grizzly Hills, Lothar
-"1149,1144", -- Gundrak, Jubei'Thos
-"53,1572", -- Hellscream, Zangarmarsh
-"1368,90", -- Hydraxis, Terenas
-"14,104", -- Icecrown, Malygos
-"98,1262", -- Kargath, Norgannon
-"4,1355", -- Kilrogg, Winterhoof
-"1071,1290,1260", -- Kirin Tor, Sentinels, Steamwheedle Cartel
-"1130,163,1289", -- Lightninghoof, Maelstrom, The Venture Co
-"1132,1175", -- Malfurion, Trollbane
-"1350,1151", -- Misha, Rexxar
-"1374,86", -- Mok'Nathal, Silvermoon
-"1182,1359", -- Muradin, Nordrassil
-"1367,1375,1184", -- Nazgrel, Nesingwary, Vek'nilash
-"1372,1185", -- Quel'dorei, Sen'jin
-"1072,1283", -- Ravencrest, Uldaman
-"1352,164", -- Ravenholdt, Twisting Nether
-"151,3", -- Runetotem, Uther
---}}
-
---{{ EUROPE
--- Current:  http://eu.battle.net/wow/en/forum/topic/8715582685
--- Upcoming: http://eu.battle.net/wow/en/forum/topic/9582578502
-
--- ENGLISH
-"1312,1081", -- Aerie Peak / Bronzebeard
-"518,522,525,1091,646,513", -- Agamaggan / Bloodscalp / Crushridge / Emeriss / Hakkar / Twilight's Hammer
-"1413,1303", -- Aggra / Grim Batol
-"500,619", -- Aggramar / Hellscream
-"1093,607,1299,1083,526,621,1598,511,1090,1088", -- Ahn'Qiraj / Balnazzar / Boulderfist / Chromaggus / Daggerspine / Laughing Skull / Shattered Halls / Sunstrider / Talnivarr / Trollbane
-"519,557,639", -- Al'Akir / Skullcrusher / Xavius
-"1391,1394,1082", -- Alonsus / Anachronos / Kul Tiras
-"501,1587", -- Arathor / Hellfire
-"502,548", -- Aszune / Shadowsong
-"1597,529,1304", -- Auchindoun / Dunemaul / Jaedenar
-"503,623", -- Azjol-Nerub / Quel'Thalas
-"1417,550", -- Azuremyst / Stormrage
-"521,632,515", -- Bladefist / Frostwhisper / Zenedar
-"1416,1298", -- Blade's Edge / Vek'nilash
--- OCT 8: add 1310 Eonar
-"630,1392,1087,633,556", -- Bloodfeather / Burning Steppes / Executus / Kor'gall / Shattered Hand
-"504,1080", -- Bloodhoof / Khadgar
-"1393,618", -- Bronze Dragonflight / Nordrassil
-"523,1092", -- Burning Blade / Drak'thul
-"1317,561", -- Darkmoon Faire / Earthen Ring
-"631,606,624", -- Darksorrow / Genjuros / Neptulon
-"1389,1314,1415", -- Darkspear / Saurfang / Terokkar
-"527,1596,637,627", -- Deathwing / Karazhan / Lightning's Blade / The Maelstrom
-"635,1308,1096,1606,636", -- Defias Brotherhood / Ravenholdt / Scarshield Legion / Sporeggar / The Venture Co
-"1084,1306", -- Dentarg / Tarren Mill
-"505,553", -- Doomhammer / Turalyon
-"507,1588", -- Dragonblight / Ghostlands
-"528,638,558,559,629", -- Dragonmaw / Haomarush / Spinebreaker / Stormreaver / Vashj
-"508,551", -- Emerald Dream / Terenas
-"1311,1589,547", -- Kilrogg / Nagrand / Runetotem
-"1388,1089", -- Lightbringer / Mazrigos
-"1085,1595", -- Moonglade / The Sha'tar
--- OCT 8: add 1117 Steamwheedle Cartel
-"552,1313", -- Thunderhorn / Wildhammer
-
--- FRENCH
-"512,642,543,643", -- Arak-arahm / Rashgarroth / Kael'Thas / Throk'Feroth
-"1334,541,1624,1622", -- Arathi / Illidan / Naxxramas / Temple noir
-"1620,510", -- Chants éternels / Vol'jin
-"545,1336,533", -- Cho'gall / Eldre'Thalas / Sinstralis
-"1127,1626,647", -- Confrérie du Thorium / Les Clairvoyants / Les Sentinelles
-"644,1337,1086", -- Conseil des Ombres / Culte de la Rive noire / La Croisade écarlate
-"538,1621", -- Dalaran / Marécage de Zangar
-"641,1122", -- Drek'Thar / Uldaman
-"1123,1332", -- Eitrigg / Krasus
-"540,645", -- Elune / Varimathras
-"509,544,546", -- Garona / Ner'zhul / Sargeras
-"517,1331", -- Medivh / Suramar
-
--- GERMAN
-"563,1099", -- Alleria / Rexxar
-"562,1607", -- Alexstrasza / Nethersturm
-"1330,568", -- Ambossar / Kargath
-"1104,1611,587,589,594,1322", -- Anetheron / Festung der Stürme / Gul'dan / Kil'jaeden / Nathrezim / Rajaxx
-"608,1321,584,1105,573", -- Anub'arak / Dalvengyr / Frostmourne / Nazjatar / Zuluhed
-"1404,602,1400", -- Area 52 / Sen'jin / Un'Goro
-"578,1613,588,1318,609", -- Arthas / Blutkessel / Kel'Thuzad / Vek'lor / Wrathbringer
-"1406,569", -- Arygos / Khaz'goroth
-"579,616", -- Azshara / Krag'jin
-"565,570", -- Baelgun / Lothar
-"1327,617", -- Der Mithrilorden / Der Rat von Dalaran
-"582,586,591,612,611", -- Destromath / Gorgonnash / Mannoroth / Nefarian / Nera'thor
-"531,1319,610,615,605", -- Dethecus / Mug'thol / Onyxia / Terrordar / Theradras
-"614,1326,1121,1119,613", -- Das Syndikat / Der abyssische Rat / Die Arguswacht / Die Todeskrallen / Kult der Verdammten
--- OCT 8: add 1619 Das Konsortium
-"1118,576", -- Die ewige Wacht / Die Silberne Hand
-"1333,516", -- Die Nachtwache / Forscherliga
-"535,1328", -- Durotan / Tirion
-"600,1408", -- Dun Morogh / Norgannon
-"1612,590,1320", -- Echsenkessel / Mal'Ganis / Taerar
-"1401,574,1608", -- Garrosh / Nozdormu / Shattrath
-"567,1323", -- Gilneas / Ulduar
-"1409,1106", -- Lordaeron / Tichondrius
-"571,593", -- Madmortem / Proudmoore
-"572,1098", -- Malfurion / Malygos
-"1324,1097", -- Malorne / Ysera
-"575,1407", -- Perenolde / Teldrassil
-"1405,592", -- Todeswache / Zirkel des Cenarius
-
--- SPANISH
-"1395,1387,1384", -- Colinas Pardas / Los Errantes / Tyrande
-"1385,1386", -- Exodar / Minahonda
-"1382,1383,1380,1379", -- Sanguino / Shen'dralar / Uldum / Zul'jin
-
--- RUSSIAN
-"1924,1617", -- Booty Bay (RU) / Deathweaver (RU)
-"1609,1616", -- Deepholm (RU) / Razuvious (RU)
-"1927,1926", -- Grom (RU) / Thermaplugg (RU)
-"1603,1610", -- Lich King (RU) / Greymane (RU)
---}}
-}
---_G.LRI_RealmInfo=data
---_G.LRI_ConnectedRealms=connection
\ No newline at end of file
diff --git a/ElvUI_SLE/libs/load_libs.xml b/ElvUI_SLE/libs/load_libs.xml
index 2c3125d..9c721fe 100644
--- a/ElvUI_SLE/libs/load_libs.xml
+++ b/ElvUI_SLE/libs/load_libs.xml
@@ -1 +1 @@
-<Ui xmlns="http://www.blizzard.com/wow/ui/">
	<Script file="AceAddon-3.0\AceAddon-3.0.lua"/>
	<Script file="AceConsole-3.0\AceConsole-3.0.lua"/>
	<Script file="AceDB-3.0\AceDB-3.0.lua"/>
	<Script file="AceDBOptions-3.0\AceDBOptions-3.0.lua"/>
	<Include file="AceGUI-3.0\AceGUI-3.0.xml"/>
	<Include file="AceConfig-3.0\AceConfig-3.0.xml"/>
	<Include file="LibBabble-SubZone-3.0\lib.xml"/>
	<Script file="oUF_NecroStrike\oUF_NecroStrike.lua"/>
	<Script file="LibQTip-1.0\LibQTip-1.0.lua"/>
	<Script file="LibRangeCheck-2.0\LibRangeCheck-2.0.lua"/>
	<Script file="LibRealmInfo\LibRealmInfo.lua"/>
</Ui>
\ No newline at end of file
+<Ui xmlns="http://www.blizzard.com/wow/ui/">
	<Script file="AceAddon-3.0\AceAddon-3.0.lua"/>
	<Script file="AceConsole-3.0\AceConsole-3.0.lua"/>
	<Script file="AceDB-3.0\AceDB-3.0.lua"/>
	<Script file="AceDBOptions-3.0\AceDBOptions-3.0.lua"/>
	<Include file="AceGUI-3.0\AceGUI-3.0.xml"/>
	<Include file="AceConfig-3.0\AceConfig-3.0.xml"/>
	<Include file="LibBabble-SubZone-3.0\lib.xml"/>
	<Script file="oUF_NecroStrike\oUF_NecroStrike.lua"/>
	<Script file="LibQTip-1.0\LibQTip-1.0.lua"/>
	<Script file="LibRangeCheck-2.0\LibRangeCheck-2.0.lua"/>
	<Include file="LibElv-UIButtons-1.0\load_uibuttons.xml"/>
</Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/locales/russian.lua b/ElvUI_SLE/locales/russian.lua
index bf11ebd..f8b36be 100644
--- a/ElvUI_SLE/locales/russian.lua
+++ b/ElvUI_SLE/locales/russian.lua
@@ -421,15 +421,8 @@ L["Tooltip Y-offset"] = "Смещение подсказки по Y"
 L["Offset the tooltip on the Y-axis."] = "Смещает подсказку по оси Y относительно выбранной точки крепления."

 --UI buttons--
+L["S&L UI Buttons"] = "Меню S&L"
 L["UB_DESC"] = "Добавляет небольшую полосу с кнопками, дающими доступ к набору полезных функций."
-L["UI Buttons"] = "Меню интерфейса"
-L["Additional menu with useful buttons"] = "Дополнительное меню с полезными кнопками"
-L["Show/Hide UI buttons."] = "Показать/скрыть меню"
-L["Mouse Over"] = "При наведении"
-L["Show on mouse over."] = "Отображать при наведении мыши."
-L["Dropdown Backdrop"] = "Фон выпадающего списка"
-L["Buttons position"] = "Положение кнопок"
-L["Layout for UI buttons."] = "Режим положения кнопок"
 L["Click to reload your interface"] = "Нажмите для перезагрузки интерфейса"
 L["Click to toggle config window"] = "Нажмите для отображения окна настроек"
 L["Click to toggle the AddOn Manager frame."] = "Нажмите для отображения окна менеджера аддонов."
@@ -440,22 +433,15 @@ L["Move UI"] = "Разблокировать элементы"
 L["Reload UI"] = "Перезагрузить интерфейс"
 L["AddOns Manager"] = "Менеджер аддонов"
 L["Boss Mod"] = "Босс мод"
-L["BenikUI Config"] = "Настройки BenikUI"
-L["Click to toggle BenikUI config group"] = "Нажмите, чтобы открыть группу настроек BenikUI"
 L["AddOns"] = "Аддоны"
 L["S&L Config"] = "Настройки Shadow & Light"
 L["Click to toggle Shadow & Light config group"] = "Нажмите, чтобы открыть группу настроек Shadow & Light"
 L["Do a roll with custom limits. Those limits can be set in S&L config."] = "Сделать бросок с собственными пределами. Они могут быть выставлены в настройках S&L."
-L['What point of dropdown will be attached to the toggle button.'] = "Какая точка выпадающего списка будет крепиться к кнопке его открытия."
-L['What point to anchor dropdown on the toggle button.'] = "К какой точке кнопки будет крепиться ее выпадающий список."
-L["Horizontal offset of dropdown from the toggle button."] = "Отступ выпадающего списка от кнопки его открытия по горизонтали."
-L["Vertical offset of dropdown from the toggle button."] = "Отступ выпадающего списка от кнопки его открытия по вертикали."
 L["Minimum Roll Value"] = "Минимальное значение броска"
 L["The lower limit for custom roll button."] = "Нижняя граница броска при использовании собственных установок."
 L["Maximum Roll Value"] = "Масимальное значение броска"
 L["The higher limit for custom roll button."] = "Верхняя граница броска при использовании собственных установок."
 L["Custom roll limits are set incorrectly! Minimum should be smaller then or equial to maximum."] = "Пределы для броска указаны некорректно! Минимальное значение должно быть меньше максимального."
-L["Sets size of buttons"] = "Устанавливает размер кнопок"
 L["Quick Action"] = "Быстрое действие"
 L["Use quick access (on right click) for this button."] = "Функция для быстрого действия. Вызывается нажатием ПКМ на кнопке открытия списка."
 L["UI Buttons Style"] = "Стиль меню"
diff --git a/ElvUI_SLE/modules/uibuttons.lua b/ElvUI_SLE/modules/uibuttons.lua
index f94eaa6..a0292a0 100644
--- a/ElvUI_SLE/modules/uibuttons.lua
+++ b/ElvUI_SLE/modules/uibuttons.lua
@@ -1,19 +1,12 @@
 local E, L, V, P, G = unpack(ElvUI);
 local UB = E:GetModule('SLE_UIButtons');
 local ACD = LibStub("AceConfigDialog-3.0")
+local lib = LibStub("LibElv-UIButtons-1.0")
 local SLE = E:GetModule("SLE")
-local Sk = E:GetModule("Skins")
-
-local BorderColor = E['media'].bordercolor
-UB.NumBut = 4
-UB.ToggleTable = {}
-UB.ConfigTable = {}
-UB.AddonTable = {}
-UB.StatusTable = {}
-UB.RollTable = {}
+local S = E:GetModule("Skins")

 local function CustomRollCall()
-	local min, max = tonumber(E.db.sle.uibuttons.roll.min), tonumber(E.db.sle.uibuttons.roll.max)
+	local min, max = tonumber(E.db.sle.uibuttons.customroll.min), tonumber(E.db.sle.uibuttons.customroll.max)
 	if min <= max then
 		RandomRoll(min, max)
 	else
@@ -21,558 +14,154 @@ local function CustomRollCall()
 	end
 end

-function UB:OnEnter(self)
-	UB.menuHolder:SetAlpha(1)
-end
-
-function UB:OnLeave(self)
-	if E.db.sle.uibuttons.mouse then
-		UB.menuHolder:SetAlpha(0)
-	end
-end
-
-function UB:UpdateMouseOverSetting()
-	if E.db.sle.uibuttons.mouse then
-		UB.menuHolder:SetAlpha(0)
-	else
-		UB.menuHolder:SetAlpha(1)
-	end
-end
-
-function UB:CreateFrame()
-	UB.menuHolder = CreateFrame("Frame", "SLEUIButtonHolder", E.UIParent)
-	UB.menuHolder:SetFrameStrata("HIGH")
-	UB.menuHolder:SetFrameLevel(5)
-	UB.menuHolder:SetClampedToScreen(true)
-	UB.menuHolder:Point("LEFT", E.UIParent, "LEFT", -2, 0);
-	UB.menuHolder:HookScript('OnEnter', UB.OnEnter)
-	UB.menuHolder:HookScript('OnLeave', UB.OnLeave)
-
-	if E.private.sle.uiButtonStyle == "classic" then
-		UB:CreateCoreButton("Config", "C")
-		UB:CreateCoreButton("Reload", "R")
-		UB:CreateCoreButton("MoveUI", "M")
-		UB:CreateCoreButton("Boss", "B")
-		UB:CreateCoreButton("Addon", "A")
-		UB.NumBut = 5
-
-		UB:ClassicSetup()
-
-		UB.ToggleTable = {
-			UB.menuHolder.Config,
-			UB.menuHolder.Reload,
-			UB.menuHolder.MoveUI,
-			UB.menuHolder.Boss,
-			UB.menuHolder.Addon,
-		}
-	else
-		UB.menuHolder.Config = CreateFrame("Frame", "SLEUIConfigHolder", UB.menuHolder)
-		UB.menuHolder.Config:CreateBackdrop("Transparent")
-		UB:CreateCoreButton("Config", "C")
-		UB:ConfigSetup()
-
-		UB.menuHolder.Addon = CreateFrame("Frame", "SLEUIAddonHolder", UB.menuHolder)
-		UB.menuHolder.Addon:CreateBackdrop("Transparent")
-		UB:CreateCoreButton("Addon", "A")
-		UB:AddonSetup()
-
-		UB.menuHolder.Status = CreateFrame("Frame", "SLEUIStatusHolder", UB.menuHolder)
-		UB.menuHolder.Status:CreateBackdrop("Transparent")
-		UB:CreateCoreButton("Status", "S")
-		UB:StatusSetup()
-
-		UB.menuHolder.Roll = CreateFrame("Frame", "SLEUIRollHolder", UB.menuHolder)
-		UB.menuHolder.Roll:CreateBackdrop("Transparent")
-		UB:CreateCoreButton("Roll", "R")
-		UB:RollSetup()
-
-		UB.ToggleTable = {
-			UB.menuHolder.Config.Toggle,
-			UB.menuHolder.Addon.Toggle,
-			UB.menuHolder.Status.Toggle,
-			UB.menuHolder.Roll.Toggle,
-		}
-	end
-end
-
-function UB:CreateCoreButton(name, text)
-	local button
-	if E.private.sle.uiButtonStyle == "classic" then
-		UB.menuHolder[name] = CreateFrame("Button", "SLEUI"..name, UB.menuHolder)
-		button = UB.menuHolder[name]
-	else
-		UB.menuHolder[name].Toggle = CreateFrame("Button", "SLEUI"..name.."Toggle", UB.menuHolder)
-		button = UB.menuHolder[name].Toggle
-	end
-	button.text = button:CreateFontString(nil, "OVERLAY")
-	button.text:SetPoint("CENTER", button, "CENTER", 0, 0)
-	UB.menuHolder[name]:HookScript('OnEnter', UB.OnEnter)
-	UB.menuHolder[name]:HookScript('OnLeave', UB.OnLeave)
-	Sk:HandleButton(button)
-
-	if text then
-		local t = button:CreateFontString(nil,"OVERLAY",button)
-		t:FontTemplate()
-		t:SetPoint("CENTER", button, 'CENTER', 0, -1)
-		t:SetJustifyH("CENTER")
-		t:SetText(text)
-		button:SetFontString(t)
-	end
-end
-
---[[
-A function to create a dropdown button for pretty much anything in any UB's dropdown.
-UB:CreateDropdownButton(always, parent, name, text, tooltip1, tooltip2, click, addon)
-
-always - (boolean) true if the button should be shown no matter what
-parent - (string) a group the button will be in: Config, Addon, Status, Roll
-name - (string) unique button's name used for table reference and actual name creation
-text - (string) a string that will be shown on button
-tooltip1 (string) - upper line of button's tooltip shown in yellow-ish color. Mandatory for creating a tooltip. If tooltip is not needed set to nil
-tooltip2 (string) - lower line of the tooltip shown in white color. If not needed set to nil
-click - (function) a function executed on button click. Preferably in the form of function() <your stuff here> end
-addon (string) - if button's function requires an addon to function should be addon's name for IsAddOnLoaded check. the button will not be shown if check is failed.
-
-To hook your button into UB dropdown use this method:
-
-local E = ElvUI[1]
-local UB = E:GetModule('SLE_UIButtons');
-local function MyButtonInsert()
-	UB:CreateDropdownButton(always, parent, name, text, tooltip1, tooltip2, click, addon)
-end
-hooksecurefunc(UB, "InsertButtons", MyButtonInsert)
-
-You can have as many buttons created inside your function as you want.
-]]
-
-function UB:CreateDropdownButton(always, parent, name, text, tooltip1, tooltip2, click, addon)
-	if type(always) ~= "boolean" then
-		SLE:Print(format("You function contains unappropriate type for 1st argument \""..E["media"].hexvaluecolor.."always|r\" in function "..E["media"].hexvaluecolor.."UB:CreateDropdownButton|r. Your type is "..E["media"].hexvaluecolor.."%s|r (should be \"boolean\"). Parent: "..E["media"].hexvaluecolor.."%s|r. Name: "..E["media"].hexvaluecolor.."%s|r", type(always), parent, name))
-		return
-	elseif not UB.menuHolder[parent] then
-		SLE:Print(format("You function contains unappropriate type for 2nd argument \""..E["media"].hexvaluecolor.."parent|r\" in function "..E["media"].hexvaluecolor.."UB:CreateDropdownButton|r. Parent frame: "..E["media"].hexvaluecolor.."UB.menuHolder.%s|r doesn't exist.", parent))
-		return
-	elseif not name or type(name) ~= "string" then
-		SLE:Print(format("You function contains unappropriate type for 3rd argument \""..E["media"].hexvaluecolor.."name|r\" in function "..E["media"].hexvaluecolor.."UB:CreateDropdownButton|r. Your type is "..E["media"].hexvaluecolor.."%s|r (should be \"strigh\"). Parent: "..E["media"].hexvaluecolor.."%s|r.", type(name), parent))
-		return
-	elseif type(click) ~= "function" then
-		SLE:Print(format("You function contains unappropriate type for 7th argument \""..E["media"].hexvaluecolor.."click|r\" in function "..E["media"].hexvaluecolor.."UB:CreateDropdownButton|r. Your type is "..E["media"].hexvaluecolor.."%s|r (should be \"function\"). Parent: "..E["media"].hexvaluecolor.."%s|r. Name: "..E["media"].hexvaluecolor.."%s|r", type(click), parent, name))
-		return
-	elseif (tooltip1 and type(tooltip1) ~= "string") or (tooltip2 and type(tooltip2) ~= "string") then
-		SLE:Print(format("You function contains unappropriate type for 5th or 6th argument \""..E["media"].hexvaluecolor.."tooltip|r\" in function "..E["media"].hexvaluecolor.."UB:CreateDropdownButton|r. Parent: "..E["media"].hexvaluecolor.."%s|r. Name: "..E["media"].hexvaluecolor.."%s|r", parent, name))
-		return
-	elseif (addon and type(addon) ~= "string" and type(addon) ~= nil and name ~= "Boss") then
-		SLE:Print(format("You function contains unappropriate type for 8rd argument \""..E["media"].hexvaluecolor.."addon|r\" in function "..E["media"].hexvaluecolor.."UB:CreateDropdownButton|r. Your type is "..E["media"].hexvaluecolor.."%s|r (should be \"strigh\"). Parent: "..E["media"].hexvaluecolor.."%s|r. Name: "..E["media"].hexvaluecolor.."%s|r", type(addon), parent, name))
-		return
-	end
-	UB.menuHolder[parent][name] = CreateFrame("Button", "SLEUI"..parent..name, UB.menuHolder[parent])
-	local b = UB.menuHolder[parent][name]
-	local toggle = UB.menuHolder[parent].Toggle
-	if addon and name == "Boss" then
-		b.shown = true
-		b.bossmode = function() end
-		if IsAddOnLoaded("DBM-Core") then
-			b.bossmode = function() DBM:LoadGUI() end
-		-- elseif IsAddOnLoaded("Bigwigs") then
-			-- b.bossmode = function() end
-		elseif IsAddOnLoaded("VEM-Core") then
-			b.bossmode = function() VEM:LoadGUI() end
-		-- elseif IsAddOnLoaded("DXE_Loader") then
-			-- b.bossmode = function() end
-		-- elseif IsAddOnLoaded("") then
-			-- b.bossmode = function() end
-		else
-			b.shown = false
-		end
-	elseif always and type(always) == "boolean" then
-		b.shown = true
-	elseif addon then
-		if IsAddOnLoaded(addon) then
-			b.shown = true
-		else
-			b.shown = false
-		end
-	end
-	if not b.shown then return end
-
-	b:SetScript("OnClick", function(self)
-		click()
-		toggle.opened = false
-		UB:ToggleCats()
-	end)
-
-	if tooltip1 then
-		b:SetScript("OnEnter", function(self)
-			UB:OnEnter()
-			GameTooltip:SetOwner(self)
-			GameTooltip:AddLine(tooltip1, 1, .96, .41, .6, .6, 1)
-			if tooltip2 then GameTooltip:AddLine(tooltip2, 1, 1, 1, 1, 1, 1) end
-			GameTooltip:Show()
-		end)
-		b:SetScript("OnLeave", function(self)
-			UB:OnLeave()
-			GameTooltip:Hide()
-		end)
-	else
-		b:HookScript('OnEnter', UB.OnEnter)
-		b:HookScript('OnEnter', UB.OnEnter)
-	end
-	Sk:HandleButton(b)
-
-	if text and type(text) == "string" then
-		b.text = b:CreateFontString(nil,"OVERLAY",b)
-		b.text:FontTemplate()
-		b.text:SetPoint("CENTER", b, 'CENTER', 0, -1)
-		b.text:SetJustifyH("CENTER")
-		b.text:SetText(text)
-		b:SetFontString(b.text)
-	end
-
-	tinsert(UB[parent.."Table"], b)
-end
-
-function UB:CreateSeparator(parent, name, size, space)
-	UB.menuHolder[parent][name] = CreateFrame("Frame", "SLEUI"..parent..name, UB.menuHolder[parent])
-	local f = UB.menuHolder[parent][name]
-	f.isSeparator = true
-	f.shown = true
-	f.size = size or 1
-	f.space = space or 2
-	f:CreateBackdrop("Transparent")
-
-	tinsert(UB[parent.."Table"], f)
-end
-
-function UB:ToggleCats()
-	if UB.menuHolder.Config.Toggle.opened then
-		UB.menuHolder.Config:Show()
-	else
-		UB.menuHolder.Config:Hide()
-	end
-	if UB.menuHolder.Addon.Toggle.opened then
-		UB.menuHolder.Addon:Show()
-	else
-		UB.menuHolder.Addon:Hide()
-	end
-	if UB.menuHolder.Status.Toggle.opened then
-		UB.menuHolder.Status:Show()
-	else
-		UB.menuHolder.Status:Hide()
-	end
-	if UB.menuHolder.Roll.Toggle.opened then
-		UB.menuHolder.Roll:Show()
-	else
-		UB.menuHolder.Roll:Hide()
-	end
-end
-
-function UB:ClassicSetup()
+function UB:ClassicSetup(menu)
 	local button
-	local db = E.db.sle.uibuttons

-	button = UB.menuHolder.Config
+	button = menu.Config
 	button:SetScript("OnClick", function(self)
 		E:ToggleConfig()
 	end)
-	button:HookScript('OnEnter', UB.OnEnter)
-	button:HookScript('OnLeave', UB.OnLeave)
+	button:HookScript('OnEnter', function(self) menu:OnEnter() end)
+	button:HookScript('OnLeave', function(self) menu:OnLeave() end)

-	button = UB.menuHolder.Reload
+	button = menu.Reload
 	button:SetScript("OnClick", function(self)
 		ReloadUI()
 	end)
-	button:HookScript('OnEnter', UB.OnEnter)
-	button:HookScript('OnLeave', UB.OnLeave)
+	button:HookScript('OnEnter', function(self) menu:OnEnter() end)
+	button:HookScript('OnLeave', function(self) menu:OnLeave() end)

-	button = UB.menuHolder.MoveUI
+	button = menu.MoveUI
 	button:SetScript("OnClick", function(self)
 		E:ToggleConfigMode()
 	end)
-	button:HookScript('OnEnter', UB.OnEnter)
-	button:HookScript('OnLeave', UB.OnLeave)
+	button:HookScript('OnEnter', function(self) menu:OnEnter() end)
+	button:HookScript('OnLeave', function(self) menu:OnLeave() end)

-	button = UB.menuHolder.Boss
+	button = menu.Boss
 	button:SetScript("OnClick", function(self)
 		if IsAddOnLoaded("DBM-Core") then
 			DBM:LoadGUI()
-		-- elseif IsAddOnLoaded("Bigwigs") then
-			-- b.bossmode = function() end
 		elseif IsAddOnLoaded("VEM-Core") then
 			VEM:LoadGUI()
-		-- elseif IsAddOnLoaded("DXE_Loader") then
-			-- b.bossmode = function() end
-		-- elseif IsAddOnLoaded("") then
-			-- b.bossmode = function() end
 		end
 	end)
-	button:HookScript('OnEnter', UB.OnEnter)
-	button:HookScript('OnLeave', UB.OnLeave)
+	button:HookScript('OnEnter', function(self) menu:OnEnter() end)
+	button:HookScript('OnLeave', function(self) menu:OnLeave() end)

-	button = UB.menuHolder.Addon
+	button = menu.Addon
 	button:SetScript("OnClick", function(self)
 		GameMenuButtonAddons:Click()
 	end)
-	button:HookScript('OnEnter', UB.OnEnter)
-	button:HookScript('OnLeave', UB.OnLeave)
+	button:HookScript('OnEnter', function(self) menu:OnEnter() end)
+	button:HookScript('OnLeave', function(self) menu:OnLeave() end)
 end

-function UB:ConfigSetup()
-	local button = UB.menuHolder.Config.Toggle
-	local db = E.db.sle.uibuttons
-	button.opened = false
-
-	UB.menuHolder.Config:Hide()
-	button:RegisterForClicks("LeftButtonDown", "RightButtonDown");
-	button:SetScript("OnClick", function(self, button, down)
-		if button == "LeftButton" then
-			if self.opened then
-				self.opened = false
-			else
-				self.opened = true
-				UB.menuHolder.Addon.Toggle.opened = false
-				UB.menuHolder.Status.Toggle.opened = false
-				UB.menuHolder.Roll.Toggle.opened = false
-			end
-			UB:ToggleCats()
-		elseif button == "RightButton" and E.db.sle.uibuttons.cfunc.enable then
-			UB.menuHolder.Config[E.db.sle.uibuttons.cfunc.called]:Click()
-		end
-	end)
-	button:HookScript('OnEnter', UB.OnEnter)
-	button:HookScript('OnLeave', UB.OnLeave)
-
+function UB:ConfigSetup(menu)
 	--UB:CreateSeparator("Config", "SLE_StartSeparator", 1, 2)
-	UB:CreateDropdownButton(true, "Config", "Elv", "ElvUI", L["ElvUI Config"], L["Click to toggle config window"],  function() E:ToggleConfig() end)
-	UB:CreateDropdownButton(true, "Config", "SLE", "S&L", L["S&L Config"], L["Click to toggle Shadow & Light config group"],  function() E:ToggleConfig(); ACD:SelectGroup("ElvUI", "sle", "options") end)
-	UB:CreateSeparator("Config", "SLE_FirstSeparator", 4, 2)
-	UB:CreateDropdownButton(true, "Config", "Reload", "/reloadui", L["Reload UI"], L["Click to reload your interface"],  function() ReloadUI() end)
-	UB:CreateDropdownButton(true, "Config", "MoveUI", "/moveui", L["Move UI"], L["Click to unlock moving ElvUI elements"],  function() E:ToggleConfigMode() end)
+	menu:CreateDropdownButton("Config", "Elv", "ElvUI", L["ElvUI Config"], L["Click to toggle config window"],  function() E:ToggleConfig() end, nil, true)
+	menu:CreateDropdownButton("Config", "SLE", "S&L", L["S&L Config"], L["Click to toggle Shadow & Light config group"],  function() E:ToggleConfig(); ACD:SelectGroup("ElvUI", "sle", "options") end, nil, true)
+	menu:CreateSeparator("Config", "First", 4, 2)
+	menu:CreateDropdownButton( "Config", "Reload", "/reloadui", L["Reload UI"], L["Click to reload your interface"],  function() ReloadUI() end, nil, true)
+	menu:CreateDropdownButton("Config", "MoveUI", "/moveui", L["Move UI"], L["Click to unlock moving ElvUI elements"],  function() E:ToggleConfigMode() end, nil, true)
 	--UB:CreateSeparator("Config", "SLE_EndSeparator", 1, 2)
 end

-function UB:AddonSetup()
-	local button = UB.menuHolder.Addon.Toggle
-	button.opened = false
-	UB.menuHolder.Addon:Hide()
-
-	button:RegisterForClicks("LeftButtonDown", "RightButtonDown");
-	button:SetScript("OnClick", function(self, button, down)
-		if button == "LeftButton" then
-			if self.opened then
-				self.opened = false
-			else
-				self.opened = true
-				UB.menuHolder.Config.Toggle.opened = false
-				UB.menuHolder.Status.Toggle.opened = false
-				UB.menuHolder.Roll.Toggle.opened = false
-			end
-			UB:ToggleCats()
-		elseif button == "RightButton" and E.db.sle.uibuttons.afunc.enable then
-			UB.menuHolder.Addon[E.db.sle.uibuttons.afunc.called]:Click()
-		end
-	end)
-	button:HookScript('OnEnter', UB.OnEnter)
-	button:HookScript('OnLeave', UB.OnLeave)
-
+function UB:AddonSetup(menu)
 	--UB:CreateSeparator("Addon", "SLE_StartSeparator", 1, 2)
-	UB:CreateDropdownButton(true, "Addon", "Manager", L["AddOns"], L["AddOns Manager"], L["Click to toggle the AddOn Manager frame."],  function() GameMenuButtonAddons:Click() end)
-	UB:CreateDropdownButton(false, "Addon", "Boss", L["Boss Mod"], L["Boss Mod"], L["Click to toggle the Configuration/Option Window from the Bossmod you have enabled."], function() UB.menuHolder.Addon.Boss.bossmode() end, true)
-	UB:CreateSeparator("Addon", "SLE_FirstSeparator", 4, 2)
-	UB:CreateDropdownButton(false, "Addon", "Altoholic", "Altoholic", nil, nil, function() Altoholic:ToggleUI() end, "Altoholic")
-	UB:CreateDropdownButton(false, "Addon", "AtlasLoot", "AtlasLoot", nil, nil, function() AtlasLoot.GUI:Toggle() end, "AtlasLoot")
-	UB:CreateDropdownButton(false, "Addon", "WeakAuras", "WeakAuras", nil, nil, function() SlashCmdList.WEAKAURAS() end, "WeakAuras")
-	UB:CreateDropdownButton(false, "Addon", "xCT", "xCT+", nil, nil, function() xCT_Plus:ToggleConfigTool() end, "xCT+")
-	UB:CreateDropdownButton(false, "Addon", "Swatter", "Swatter", nil, nil, function() Swatter.ErrorShow() end, "!Swatter")
+	menu:CreateDropdownButton("Addon", "Manager", L["AddOns"], L["AddOns Manager"], L["Click to toggle the AddOn Manager frame."],  function() GameMenuButtonAddons:Click() end, nil, true)
+
+	menu:CreateDropdownButton("Addon", "DBM", L["Boss Mod"], L["Boss Mod"], L["Click to toggle the Configuration/Option Window from the Bossmod you have enabled."], function() DBM:LoadGUI() end, "DBM-Core")
+	menu:CreateDropdownButton("Addon", "VEM", L["Boss Mod"], L["Boss Mod"], L["Click to toggle the Configuration/Option Window from the Bossmod you have enabled."], function() VEM:LoadGUI() end, "VEM-Core")
+	menu:CreateSeparator("Addon", "First", 4, 2)
+	menu:CreateDropdownButton("Addon", "Altoholic", "Altoholic", nil, nil, function() Altoholic:ToggleUI() end, "Altoholic")
+	menu:CreateDropdownButton("Addon", "AtlasLoot", "AtlasLoot", nil, nil, function() AtlasLoot.GUI:Toggle() end, "AtlasLoot")
+	menu:CreateDropdownButton("Addon", "WeakAuras", "WeakAuras", nil, nil, function() SlashCmdList.WEAKAURAS() end, "WeakAuras")
+	menu:CreateDropdownButton("Addon", "xCT", "xCT+", nil, nil, function() xCT_Plus:ToggleConfigTool() end, "xCT+")
+	menu:CreateDropdownButton("Addon", "Swatter", "Swatter", nil, nil, function() Swatter.ErrorShow() end, "!Swatter")


 	--Always keep at the bottom--
-	UB:CreateDropdownButton(false, "Addon", "WowLua", "WowLua", nil, nil, function() SlashCmdList["WOWLUA"]("") end, "WowLua")
+	menu:CreateDropdownButton("Addon", "WowLua", "WowLua", nil, nil, function() SlashCmdList["WOWLUA"]("") end, "WowLua", false)
 	--UB:CreateSeparator("Addon", "SLE_EndSeparator", 1, 2)
 end

-function UB:StatusSetup()
-	local button = UB.menuHolder.Status.Toggle
-	local db = E.db.sle.uibuttons
-	button.opened = false
-	UB.menuHolder.Status:Point("TOP", button, "BOTTOM", 0, -4)
-	UB.menuHolder.Status:Hide()
-	button:RegisterForClicks("LeftButtonDown", "RightButtonDown");
-	button:SetScript("OnClick", function(self, button, down)
-		if button == "LeftButton" then
-			if self.opened then
-				self.opened = false
-			else
-				self.opened = true
-				UB.menuHolder.Config.Toggle.opened = false
-				UB.menuHolder.Addon.Toggle.opened = false
-				UB.menuHolder.Roll.Toggle.opened = false
-			end
-			UB:ToggleCats()
-		elseif button == "RightButton" and E.db.sle.uibuttons.sfunc.enable then
-			UB.menuHolder.Status[E.db.sle.uibuttons.sfunc.called]:Click()
-		end
-	end)
-	button:HookScript('OnEnter', UB.OnEnter)
-	button:HookScript('OnLeave', UB.OnLeave)
-
-	UB:CreateDropdownButton(true, "Status", "AFK", L["AFK"], nil, nil,  function() SendChatMessage("" ,"AFK" ) end)
-	UB:CreateDropdownButton(true, "Status", "DND", L["DND"], nil, nil,  function() SendChatMessage("" ,"DND" ) end)
+function UB:StatusSetup(menu)
+	menu:CreateDropdownButton("Status", "AFK", L["AFK"], nil, nil,  function() SendChatMessage("" ,"AFK" ) end)
+	menu:CreateDropdownButton("Status", "DND", L["DND"], nil, nil,  function() SendChatMessage("" ,"DND" ) end)
 end

-function UB:RollSetup()
-	local button = UB.menuHolder.Roll.Toggle
-	local db = E.db.sle.uibuttons
-	button.opened = false
-	UB.menuHolder.Roll:Point("TOP", button, "BOTTOM", 0, -4)
-	UB.menuHolder.Roll:Hide()
-	button:RegisterForClicks("LeftButtonDown", "RightButtonDown");
-	button:SetScript("OnClick", function(self, button, down)
-		if button == "LeftButton" then
-			if self.opened then
-				self.opened = false
-			else
-				self.opened = true
-				UB.menuHolder.Config.Toggle.opened = false
-				UB.menuHolder.Addon.Toggle.opened = false
-				UB.menuHolder.Status.Toggle.opened = false
-			end
-			UB:ToggleCats()
-		elseif button == "RightButton" and E.db.sle.uibuttons.rfunc.enable then
-			UB.menuHolder.Roll[E.db.sle.uibuttons.rfunc.called]:Click()
-		end
-	end)
-	button:HookScript('OnEnter', UB.OnEnter)
-	button:HookScript('OnLeave', UB.OnLeave)
-
-	UB:CreateDropdownButton(true, "Roll", "Ten", "1-10", nil, nil,  function() RandomRoll(1, 10) end)
-	UB:CreateDropdownButton(true, "Roll", "Twenty", "1-20", nil, nil,  function() RandomRoll(1, 20) end)
-	UB:CreateDropdownButton(true, "Roll", "Thirty", "1-30", nil, nil,  function() RandomRoll(1, 30) end)
-	UB:CreateDropdownButton(true, "Roll", "Forty", "1-40", nil, nil,  function() RandomRoll(1, 40) end)
-	UB:CreateDropdownButton(true, "Roll", "Hundred", "1-100", nil, nil,  function() RandomRoll(1, 100) end)
-	UB:CreateDropdownButton(true, "Roll", "Custom", L["Custom"], nil, nil,  function() CusomRollCall() end)
+function UB:RollSetup(menu)
+	menu:CreateDropdownButton("Roll", "Ten", "1-10", nil, nil,  function() RandomRoll(1, 10) end)
+	menu:CreateDropdownButton("Roll", "Twenty", "1-20", nil, nil,  function() RandomRoll(1, 20) end)
+	menu:CreateDropdownButton("Roll", "Thirty", "1-30", nil, nil,  function() RandomRoll(1, 30) end)
+	menu:CreateDropdownButton("Roll", "Forty", "1-40", nil, nil,  function() RandomRoll(1, 40) end)
+	menu:CreateDropdownButton("Roll", "Hundred", "1-100", nil, nil,  function() RandomRoll(1, 100) end)
+	menu:CreateDropdownButton("Roll", "Custom", L["Custom"], nil, nil,  function() CustomRollCall() end)
 end

-function UB:MoverSize()
-	local db = E.db.sle.uibuttons
-	if db.position == "uib_vert" then
-		UB.menuHolder:SetWidth(db.size + (E.PixelMode and 2 or 4))
-		UB.menuHolder:SetHeight((db.size*UB.NumBut)+((E.PixelMode and db.spacing or db.spacing+2)*(UB.NumBut-1))+2)
+function UB:SetupBar(menu)
+	if E.private.sle.uiButtonStyle == "classic" then
+		menu:CreateCoreButton("Config", "C")
+		menu:CreateCoreButton("Reload", "R")
+		menu:CreateCoreButton("MoveUI", "M")
+		menu:CreateCoreButton("Boss", "B")
+		menu:CreateCoreButton("Addon", "A")
+		UB:ClassicSetup(menu)
 	else
-		UB.menuHolder:SetWidth((db.size*UB.NumBut)+((E.PixelMode and db.spacing or db.spacing+2)*(UB.NumBut-1))+2)
-		UB.menuHolder:SetHeight(db.size + (E.PixelMode and 2 or 4))
-	end
-end
+		menu:CreateCoreButton("Config", "C")
+		UB:ConfigSetup(menu)

-function UB:FrameSize()
-	local db = E.db.sle.uibuttons
-	if not db.size then return end
-	UB:MoverSize()
+		menu:CreateCoreButton("Addon", "A")
+		UB:AddonSetup(menu)

-	for i = 1, #UB.ToggleTable do
-		UB.ToggleTable[i]:Size(db.size)
-	end
+		menu:CreateCoreButton("Status", "S")
+		UB:StatusSetup(menu)

-	if E.private.sle.uiButtonStyle == "dropdown" then
-		for i = 1, #UB.MetaTable do
-			local group = UB.MetaTable[i]
-			local mass = UB[group.."Table"]
-			for n = 1, #mass do
-				if mass[n].isSeparator then
-					mass[n]:Size((db.size * 3.1) - 2, mass[n].size)
-				else
-					mass[n]:Size(db.size * 3.1, db.size)
-				end
-			end
-		end
+		menu:CreateCoreButton("Roll", "R")
+		UB:RollSetup(menu)
 	end
-
-	UB:Positioning()
 end

-function UB:UpdateDropdownLayout(group, backdrop)
-	local count = -1
-	local sepS, sepC = 0, 0
-	local header = UB.menuHolder[group]
-	local db = E.db.sle.uibuttons
-	header:ClearAllPoints()
-	header:Point(db.point, header.Toggle, db.anchor, db.xoffset, db.yoffset)
-	local T = UB[group.."Table"]
-	for i = 1, #T do
-		local button, prev, next = T[i], T[i-1], T[i+1]
-		local y_offset = prev and ((E.PixelMode and -db.spacing or -(db.spacing+2))-(prev.isSeparator and prev.space or 0)-(button.isSeparator and button.space or 0)) or 0
-		button:Point("TOP", (prev or header), (prev and "BOTTOM" or "TOP"), 0, y_offset)
-		count = button.isSeparator and count or count + 1
-		sepS = (button.isSeparator and sepS + ((prev and 2 or 1)*button.space + button.size)) or sepS
-		sepC = button.isSeparator and sepC + 1 or sepC
+function UB:RightClicks(menu)
+	for i = 1, #menu.ToggleTable do
+		menu.ToggleTable[i]:RegisterForClicks("LeftButtonDown", "RightButtonDown")
 	end
-	header:Size(db.size * 3.1, (db.size * (count+1))+(db.spacing*(count))+sepS+(.5*sepC))
-	if backdrop then
-		header.backdrop:Show()
-	else
-		header.backdrop:Hide()
-	end
-end
-
-function UB:Positioning()
-	local db = E.db.sle.uibuttons
-
-	--position check
-	local header = UB.menuHolder
-	if db.position == "uib_vert" then
-		for i = 1, #UB.ToggleTable do
-			local button, prev = UB.ToggleTable[i], UB.ToggleTable[i-1]
-			UB.ToggleTable[i]:ClearAllPoints()
-			UB.ToggleTable[i]:Point("TOP", (prev or header), prev and "BOTTOM" or "TOP", 0, prev and (E.PixelMode and -db.spacing or -(db.spacing+2)) or (E.PixelMode and -1 or -2))
+	menu.Config.Toggle:HookScript("OnClick", function(self, button, down)
+		if button == "RightButton" and E.db.sle.uibuttons.Config.enable then
+			menu.Config[menu.db.Config.called]:Click()
 		end
-	else
-		for i = 1, #UB.ToggleTable do
-			local button, prev = UB.ToggleTable[i], UB.ToggleTable[i-1]
-			UB.ToggleTable[i]:ClearAllPoints()
-			UB.ToggleTable[i]:Point("LEFT", (prev or header), prev and "RIGHT" or "LEFT", prev and (E.PixelMode and db.spacing or db.spacing+2) or (E.PixelMode and 1 or 2), 0)
+	end)
+	menu.Addon.Toggle:HookScript("OnClick", function(self, button, down)
+		if button == "RightButton" and E.db.sle.uibuttons.Addon.enable then
+			menu.Addon[menu.db.Addon.called]:Click()
 		end
-	end
-	if E.private.sle.uiButtonStyle == "dropdown" then
-		for i = 1, #UB.MetaTable do
-			UB:UpdateDropdownLayout(UB.MetaTable[i], E.db.sle.uibuttons.dropdownBackdrop)
+	end)
+	menu.Status.Toggle:HookScript("OnClick", function(self, button, down)
+		if button == "RightButton" and E.db.sle.uibuttons.Status.enable then
+			menu.Status[menu.db.Status.called]:Click()
 		end
-	end
+	end)
+	menu.Roll.Toggle:HookScript("OnClick", function(self, button, down)
+		if button == "RightButton" and E.db.sle.uibuttons.Roll.enable then
+			menu.Roll[menu.db.Roll.called]:Click()
+		end
+	end)
 end

-function UB:Toggle()
-	if not E.db.sle.uibuttons.enable then
-		UB.menuHolder:Hide()
-	else
-		UB.menuHolder:Show()
-		UB:UpdateMouseOverSetting()
-	end
-end
+function UB:Initialize()
+	UB.Holder = lib:CreateFrame("SLE_UIButtons", E.db.sle.uibuttons, P.sle.uibuttons, E.private.sle.uiButtonStyle, "dropdown")
+	local menu = UB.Holder
+	menu:SetupMover(L["S&L UI Buttons"], "ALL,S&L,S&L MISC,UIButtons")

-function UB:CreateMetaTable()
-	if E.private.sle.uiButtonStyle ~= "dropdown" then return end
-	UB.MetaTable = {
-		"Config",
-		"Addon",
-		"Status",
-		"Roll",
-	}
-end
+	UB:SetupBar(menu)

-function UB:InsertButtons()
-	--This function is purely cosmetic and used only for hooking other button creating funct to it by any external addon
-end
+	menu:FrameSize()
+	menu:ToggleShow()

-function UB:Initialize()
-	UB:CreateFrame()
-
-	UB:InsertButtons() --For external buttons
-
-	UB:CreateMetaTable()
-
-	UB:FrameSize()
-	UB:Toggle()
-
-	E.FrameLocks['SLEUIButtonHolder'] = true
-
-	E:CreateMover(UB.menuHolder, "UIBFrameMover", L["UI Buttons"], nil, nil, nil, "ALL,S&L,S&L MISC")
-	UB:MoverSize()
+	UB.FrameSize = menu.FrameSize
+
+	UB:RightClicks(menu)
+
+	-- lib:CreateOptions(menu, true, "slebuttons", "SLE Buttons")
 end
\ No newline at end of file
diff --git a/ElvUI_SLE/options/core_c.lua b/ElvUI_SLE/options/core_c.lua
index af3d191..386cac4 100644
--- a/ElvUI_SLE/options/core_c.lua
+++ b/ElvUI_SLE/options/core_c.lua
@@ -1,6 +1,7 @@
 local E, L, V, P, G = unpack(ElvUI)
 local SLE = E:GetModule('SLE')
 local LT = E:GetModule('SLE_Loot')
+local ACD = LibStub("AceConfigDialog-3.0")

 local function configTable()
 	E.Options.args.ElvUI_Header.name = E.Options.args.ElvUI_Header.name.." + Shadow & Light"..format(": |cff99ff33%s|r",SLE.version)
@@ -23,7 +24,7 @@ local function configTable()
 				type = 'description',
 				name = '',
 				order = 2,
-				image = function() return 'Interface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Title', 650, 410 end,
+				image = function() return 'Interface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Title', 555, 350 end,
 			},
 			--[[info = {
 				order = 3,
@@ -37,6 +38,72 @@ local function configTable()
 				desc = L['Run the installation process.'],
 				func = function() SLE:Install(); E:ToggleConfig() end,
 			},
+			SettingsButton = {
+				order = 5,
+				type = 'execute',
+				name = L["General"].." "..SETTINGS,
+				func = function() ACD:SelectGroup("ElvUI", "sle", "options", "general") end,
+			},
+			MinimapButton = {
+				order = 6,
+				type = 'execute',
+				name = L["Minimap"],
+				func = function() ACD:SelectGroup("ElvUI", "sle", "options", "minimap") end,
+			},
+			MarkersButton = {
+				order = 7,
+				type = 'execute',
+				name = L["Raid Markers"],
+				func = function() ACD:SelectGroup("ElvUI", "sle", "options", "raidmarkerbars") end,
+			},
+			EquipButton = {
+				order = 8,
+				type = 'execute',
+				name = L['Equipment Manager'],
+				func = function() ACD:SelectGroup("ElvUI", "sle", "options", "equipmanager") end,
+			},
+			FarmButton = {
+				order = 9,
+				type = 'execute',
+				name = L['Farm'],
+				func = function() ACD:SelectGroup("ElvUI", "sle", "options", "farm") end,
+			},
+			LootButton = {
+				order = 10,
+				type = 'execute',
+				name = L['Loot'],
+				func = function() ACD:SelectGroup("ElvUI", "sle", "options", "loot") end,
+			},
+			MediaButton = {
+				order = 11,
+				type = 'execute',
+				name = L["Media"],
+				func = function() ACD:SelectGroup("ElvUI", "sle", "media") end,
+			},
+			ScreensaverButton = {
+				order = 12,
+				type = 'execute',
+				name = L["Screensaver"],
+				func = function() ACD:SelectGroup("ElvUI", "sle", "screensaver") end,
+			},
+			ArmoryButton = {
+				order = 13,
+				type = 'execute',
+				name = L["Armory Mode"],
+				func = function() ACD:SelectGroup("ElvUI", "sle", "armory") end,
+			},
+			DatatextButton = {
+				order = 14,
+				type = 'execute',
+				name = L["Panels & Dashboard"],
+				func = function() ACD:SelectGroup("ElvUI", "sle", "datatext") end,
+			},
+			HelpButton = {
+				order = 15,
+				type = 'execute',
+				name = L['About/Help'],
+				func = function() ACD:SelectGroup("ElvUI", "sle", "help") end,
+			},
 			options = {
 				order = 1,
 				type = "group",
diff --git a/ElvUI_SLE/options/uibuttons_c.lua b/ElvUI_SLE/options/uibuttons_c.lua
index 50266d5..63792e6 100644
--- a/ElvUI_SLE/options/uibuttons_c.lua
+++ b/ElvUI_SLE/options/uibuttons_c.lua
@@ -14,6 +14,7 @@ local positionValues = {
 };

 local function configTable()
+	local Bar = UB.Holder
 	E.Options.args.sle.args.options.args.general.args.uibuttons = {
 		type = "group",
 		name = L["UI Buttons"],
@@ -35,7 +36,7 @@ local function configTable()
 				name = L["Enable"],
 				desc = L["Show/Hide UI buttons."],
 				get = function(info) return E.db.sle.uibuttons.enable end,
-				set = function(info, value) E.db.sle.uibuttons.enable = value; UB:Toggle() end
+				set = function(info, value) E.db.sle.uibuttons.enable = value; Bar:ToggleShow() end
 			},
 			style = {
 				order = 4,
@@ -62,7 +63,7 @@ local function configTable()
 				min = 12, max = 25, step = 1,
 				disabled = function() return not E.db.sle.uibuttons.enable end,
 				get = function(info) return E.db.sle.uibuttons.size end,
-				set = function(info, value) E.db.sle.uibuttons.size = value; UB:FrameSize() end,
+				set = function(info, value) E.db.sle.uibuttons.size = value; Bar:FrameSize() end,
 			},
 			spacing = {
 				order = 7,
@@ -72,7 +73,7 @@ local function configTable()
 				min = 1, max = 10, step = 1,
 				disabled = function() return not E.db.sle.uibuttons.enable end,
 				get = function(info) return E.db.sle.uibuttons.spacing end,
-				set = function(info, value) E.db.sle.uibuttons.spacing = value; UB:FrameSize() end,
+				set = function(info, value) E.db.sle.uibuttons.spacing = value; Bar:FrameSize() end,
 			},
 			mouse = {
 				order = 8,
@@ -81,28 +82,36 @@ local function configTable()
 				desc = L["Show on mouse over."],
 				disabled = function() return not E.db.sle.uibuttons.enable end,
 				get = function(info) return E.db.sle.uibuttons.mouse end,
-				set = function(info, value) E.db.sle.uibuttons.mouse = value; UB:UpdateMouseOverSetting() end
+				set = function(info, value) E.db.sle.uibuttons.mouse = value; Bar:UpdateMouseOverSetting() end
+			},
+			menuBackdrop = {
+				order = 9,
+				type = "toggle",
+				name = L["Backdrop"],
+				disabled = function() return not E.db.sle.uibuttons.enable or E.private.sle.uiButtonStyle == "classic" end,
+				get = function(info) return E.db.sle.uibuttons.menuBackdrop end,
+				set = function(info, value) E.db.sle.uibuttons.menuBackdrop = value; Bar:UpdateBackdrop() end
 			},
 			dropdownBackdrop = {
-				order = 8,
+				order = 10,
 				type = "toggle",
 				name = L["Dropdown Backdrop"],
 				disabled = function() return not E.db.sle.uibuttons.enable or E.private.sle.uiButtonStyle == "classic" end,
 				get = function(info) return E.db.sle.uibuttons.dropdownBackdrop end,
-				set = function(info, value) E.db.sle.uibuttons.dropdownBackdrop = value; UB:FrameSize() end
+				set = function(info, value) E.db.sle.uibuttons.dropdownBackdrop = value; Bar:FrameSize() end
 			},
-			position = {
-				order = 10,
+			orientation = {
+				order = 11,
 				name = L["Buttons position"],
 				desc = L["Layout for UI buttons."],
 				type = "select",
 				values = {
-					["uib_hor"] = L['Horizontal'],
-					["uib_vert"] = L['Vertical'],
+					["horizontal"] = L['Horizontal'],
+					["vertical"] = L['Vertical'],
 				},
 				disabled = function() return not E.db.sle.uibuttons.enable end,
-				get = function(info) return E.db.sle.uibuttons.position end,
-				set = function(info, value) E.db.sle.uibuttons.position = value; UB:FrameSize() end,
+				get = function(info) return E.db.sle.uibuttons.orientation end,
+				set = function(info, value) E.db.sle.uibuttons.orientation = value; Bar:FrameSize() end,
 			},
 			point = {
 				type = 'select',
@@ -111,7 +120,7 @@ local function configTable()
 				desc = L['What point of dropdown will be attached to the toggle button.'],
 				disabled = function() return not E.db.sle.uibuttons.enable or E.private.sle.uiButtonStyle == "classic" end,
 				get = function(info) return E.db.sle.uibuttons.point end,
-				set = function(info, value) E.db.sle.uibuttons.point = value; UB:FrameSize() end,
+				set = function(info, value) E.db.sle.uibuttons.point = value; Bar:FrameSize() end,
 				values = positionValues,
 			},
 			anchor = {
@@ -121,7 +130,7 @@ local function configTable()
 				desc = L['What point to anchor dropdown on the toggle button.'],
 				disabled = function() return not E.db.sle.uibuttons.enable or E.private.sle.uiButtonStyle == "classic" end,
 				get = function(info) return E.db.sle.uibuttons.anchor end,
-				set = function(info, value) E.db.sle.uibuttons.anchor = value; UB:FrameSize() end,
+				set = function(info, value) E.db.sle.uibuttons.anchor = value; Bar:FrameSize() end,
 				values = positionValues,
 			},
 			xoffset = {
@@ -132,7 +141,7 @@ local function configTable()
 				min = -10, max = 10, step = 1,
 				disabled = function() return not E.db.sle.uibuttons.enable or E.private.sle.uiButtonStyle == "classic" end,
 				get = function(info) return E.db.sle.uibuttons.xoffset end,
-				set = function(info, value) E.db.sle.uibuttons.xoffset = value; UB:FrameSize() end,
+				set = function(info, value) E.db.sle.uibuttons.xoffset = value; Bar:FrameSize() end,
 			},
 			yoffset = {
 				order = 16,
@@ -142,7 +151,7 @@ local function configTable()
 				min = -10, max = 10, step = 1,
 				disabled = function() return not E.db.sle.uibuttons.enable or E.private.sle.uiButtonStyle == "classic" end,
 				get = function(info) return E.db.sle.uibuttons.yoffset end,
-				set = function(info, value) E.db.sle.uibuttons.yoffset = value; UB:FrameSize() end,
+				set = function(info, value) E.db.sle.uibuttons.yoffset = value; Bar:FrameSize() end,
 			},
 			minroll = {
 				order = 17,
@@ -150,8 +159,8 @@ local function configTable()
 				name = L["Minimum Roll Value"],
 				desc = L["The lower limit for custom roll button."],
 				disabled = function() return not E.db.sle.uibuttons.enable or E.private.sle.uiButtonStyle == "classic" end,
-				get = function(info) return E.db.sle.uibuttons.roll.min end,
-				set = function(info, value) E.db.sle.uibuttons.roll.min = value; end,
+				get = function(info) return E.db.sle.uibuttons.customroll.min end,
+				set = function(info, value) E.db.sle.uibuttons.customroll.min = value; end,
 			},
 			maxroll = {
 				order = 18,
@@ -159,10 +168,10 @@ local function configTable()
 				name = L["Maximum Roll Value"],
 				desc = L["The higher limit for custom roll button."],
 				disabled = function() return not E.db.sle.uibuttons.enable or E.private.sle.uiButtonStyle == "classic" end,
-				get = function(info) return E.db.sle.uibuttons.roll.max end,
-				set = function(info, value) E.db.sle.uibuttons.roll.max = value; end,
+				get = function(info) return E.db.sle.uibuttons.customroll.max end,
+				set = function(info, value) E.db.sle.uibuttons.customroll.max = value; end,
 			},
-			cFunc = {
+			Config = {
 				order = 19,
 				name = "\"C\" "..L["Quick Action"],
 				type = "group",
@@ -174,8 +183,8 @@ local function configTable()
 						type = "toggle",
 						name = L["Enable"],
 						desc = L["Use quick access (on right click) for this button."],
-						get = function(info) return E.db.sle.uibuttons.cfunc.enable end,
-						set = function(info, value) E.db.sle.uibuttons.cfunc.enable = value end
+						get = function(info) return E.db.sle.uibuttons.Config.enable end,
+						set = function(info, value) E.db.sle.uibuttons.Config.enable = value end
 					},
 					called = {
 						order = 2,
@@ -188,12 +197,12 @@ local function configTable()
 							["Reload"] = L["Reload UI"],
 							["MoveUI"] = L["Move UI"],
 						},
-						get = function(info) return E.db.sle.uibuttons.cfunc.called end,
-						set = function(info, value) E.db.sle.uibuttons.cfunc.called = value; end,
+						get = function(info) return E.db.sle.uibuttons.Config.called end,
+						set = function(info, value) E.db.sle.uibuttons.Config.called = value; end,
 					},
 				},
 			},
-			aFunc = {
+			Addon = {
 				order = 20,
 				name = "\"A\" "..L["Quick Action"],
 				type = "group",
@@ -205,8 +214,8 @@ local function configTable()
 						type = "toggle",
 						name = L["Enable"],
 						desc = L["Use quick access (on right click) for this button."],
-						get = function(info) return E.db.sle.uibuttons.afunc.enable end,
-						set = function(info, value) E.db.sle.uibuttons.afunc.enable = value end
+						get = function(info) return E.db.sle.uibuttons.Addon.enable end,
+						set = function(info, value) E.db.sle.uibuttons.Addon.enable = value end
 					},
 					called = {
 						order = 2,
@@ -214,15 +223,15 @@ local function configTable()
 						desc = L["Function called by quick access."],
 						type = "select",
 						values = {
-							["Manager"] = L["Addons"],
+							["Manager"] = L["AddOns"],
 							["Boss"] = L["Boss Mod"],
 						},
-						get = function(info) return E.db.sle.uibuttons.afunc.called end,
-						set = function(info, value) E.db.sle.uibuttons.afunc.called = value; end,
+						get = function(info) return E.db.sle.uibuttons.Addon.called end,
+						set = function(info, value) E.db.sle.uibuttons.Addon.called = value; end,
 					},
 				},
 			},
-			sFunc = {
+			Status = {
 				order = 21,
 				name = "\"S\" "..L["Quick Action"],
 				type = "group",
@@ -234,8 +243,8 @@ local function configTable()
 						type = "toggle",
 						name = L["Enable"],
 						desc = L["Use quick access (on right click) for this button."],
-						get = function(info) return E.db.sle.uibuttons.sfunc.enable end,
-						set = function(info, value) E.db.sle.uibuttons.sfunc.enable = value end
+						get = function(info) return E.db.sle.uibuttons.Status.enable end,
+						set = function(info, value) E.db.sle.uibuttons.Status.enable = value end
 					},
 					called = {
 						order = 2,
@@ -246,12 +255,12 @@ local function configTable()
 							["AFK"] = L["AFK"],
 							["DND"] = L["DND"],
 						},
-						get = function(info) return E.db.sle.uibuttons.sfunc.called end,
-						set = function(info, value) E.db.sle.uibuttons.sfunc.called = value; end,
+						get = function(info) return E.db.sle.uibuttons.Status.called end,
+						set = function(info, value) E.db.sle.uibuttons.Status.called = value; end,
 					},
 				},
 			},
-			rFunc = {
+			Roll = {
 				order = 22,
 				name = "\"R\" "..L["Quick Action"],
 				type = "group",
@@ -263,8 +272,8 @@ local function configTable()
 						type = "toggle",
 						name = L["Enable"],
 						desc = L["Use quick access (on right click) for this button."],
-						get = function(info) return E.db.sle.uibuttons.rfunc.enable end,
-						set = function(info, value) E.db.sle.uibuttons.rfunc.enable = value end
+						get = function(info) return E.db.sle.uibuttons.Roll.enable end,
+						set = function(info, value) E.db.sle.uibuttons.Roll.enable = value end
 					},
 					called = {
 						order = 2,
@@ -280,18 +289,13 @@ local function configTable()
 							["Custom"] = L["Custom"],

 						},
-						get = function(info) return E.db.sle.uibuttons.rfunc.called end,
-						set = function(info, value) E.db.sle.uibuttons.rfunc.called = value; end,
+						get = function(info) return E.db.sle.uibuttons.Roll.called end,
+						set = function(info, value) E.db.sle.uibuttons.Roll.called = value; end,
 					},
 				},
 			},
 		},
 	}
-	if E.private.sle.uiButtonStyle == "dropdown" then
-		if IsAddOnLoaded("ElvUI_BenikUI") then
-			E.Options.args.sle.args.options.args.general.args.uibuttons.args.cFunc.args.called.values["Benik"] = "BenikUI"
-		end
-	end
 end

 table.insert(E.SLEConfigs, configTable)
\ No newline at end of file