if myHero.charName ~= "Ezreal" then return end class "ScriptUpdate" function ScriptUpdate:__init(LocalVersion,UseHttps, Host, VersionPath, ScriptPath, SavePath, CallbackUpdate, CallbackNoUpdate, CallbackNewVersion,CallbackError) self.LocalVersion = LocalVersion self.Host = Host self.VersionPath = '/BoL/TCPUpdater/GetScript'..(UseHttps and '3' or '4')..'.php?script='..self:Base64Encode(self.Host..VersionPath)..'&rand='..math.random(99999999) self.ScriptPath = '/BoL/TCPUpdater/GetScript'..(UseHttps and '3' or '4')..'.php?script='..self:Base64Encode(self.Host..ScriptPath)..'&rand='..math.random(99999999) self.SavePath = SavePath self.CallbackUpdate = CallbackUpdate self.CallbackNoUpdate = CallbackNoUpdate self.CallbackNewVersion = CallbackNewVersion self.CallbackError = CallbackError self:CreateSocket(self.VersionPath) self.DownloadStatus = 'Connect to Server for VersionInfo' AddTickCallback(function() self:GetOnlineVersion() end) end function ScriptUpdate:CreateSocket(url) if not self.LuaSocket then self.LuaSocket = require("socket") else self.Socket:close() self.Socket = nil self.Size = nil self.RecvStarted = false end self.LuaSocket = require("socket") self.Socket = self.LuaSocket.tcp() self.Socket:settimeout(0, 'b') self.Socket:settimeout(99999999, 't') self.Socket:connect('sx-bol.eu', 80) self.Url = url self.Started = false self.LastPrint = "" self.File = "" end function ScriptUpdate:Base64Encode(data) local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' return ((data:gsub('.', function(x) local r,b='',x:byte() for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end return r; end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x) if (#x < 6) then return '' end local c=0 for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end return b:sub(c+1,c+1) end)..({ '', '==', '=' })[#data%3+1]) end function ScriptUpdate:GetOnlineVersion() if self.GotScriptVersion then return end self.Receive, self.Status, self.Snipped = self.Socket:receive(1024) if self.Status == 'timeout' and not self.Started then self.Started = true self.Socket:send("GET "..self.Url.." HTTP/1.1\r\nHost: sx-bol.eu\r\n\r\n") end if (self.Receive or (#self.Snipped > 0)) and not self.RecvStarted then self.RecvStarted = true local recv,sent,time = self.Socket:getstats() self.DownloadStatus = 'Downloading VersionInfo (0%)' end self.File = self.File .. (self.Receive or self.Snipped) if self.File:find('') then if not self.Size then self.Size = tonumber(self.File:sub(self.File:find('')+6,self.File:find('')-1)) + self.File:len() end self.DownloadStatus = 'Downloading VersionInfo ('..math.round(100/self.Size*self.File:len(),2)..'%)' end if not (self.Receive or (#self.Snipped > 0)) and self.RecvStarted and self.Size and math.round(100/self.Size*self.File:len(),2) > 95 then self.DownloadStatus = 'Downloading VersionInfo (100%)' local HeaderEnd, ContentStart = self.File:find('') local ContentEnd, _ = self.File:find('') if not ContentStart or not ContentEnd then if self.CallbackError and type(self.CallbackError) == 'function' then self.CallbackError() end else self.OnlineVersion = tonumber(self.File:sub(ContentStart + 1,ContentEnd-1)) if self.OnlineVersion > self.LocalVersion then if self.CallbackNewVersion and type(self.CallbackNewVersion) == 'function' then self.CallbackNewVersion(self.OnlineVersion,self.LocalVersion) end self:CreateSocket(self.ScriptPath) self.DownloadStatus = 'Connect to Server for ScriptDownload' AddTickCallback(function() self:DownloadUpdate() end) else if self.CallbackNoUpdate and type(self.CallbackNoUpdate) == 'function' then self.CallbackNoUpdate(self.LocalVersion) end end end self.GotScriptVersion = true end end function ScriptUpdate:DownloadUpdate() if self.GotScriptUpdate then return end self.Receive, self.Status, self.Snipped = self.Socket:receive(1024) if self.Status == 'timeout' and not self.Started then self.Started = true self.Socket:send("GET "..self.Url.." HTTP/1.1\r\nHost: sx-bol.eu\r\n\r\n") end if (self.Receive or (#self.Snipped > 0)) and not self.RecvStarted then self.RecvStarted = true local recv,sent,time = self.Socket:getstats() self.DownloadStatus = 'Downloading Script (0%)' end self.File = self.File .. (self.Receive or self.Snipped) if self.File:find('') then if not self.Size then self.Size = tonumber(self.File:sub(self.File:find('')+6,self.File:find('')-1)) + self.File:len() end self.DownloadStatus = 'Downloading Script ('..math.round(100/self.Size*self.File:len(),2)..'%)' end if not (self.Receive or (#self.Snipped > 0)) and self.RecvStarted and math.round(100/self.Size*self.File:len(),2) > 95 then self.DownloadStatus = 'Downloading Script (100%)' local HeaderEnd, ContentStart = self.File:find('') local ContentEnd, _ = self.File:find('') if not ContentStart or not ContentEnd then if self.CallbackError and type(self.CallbackError) == 'function' then self.CallbackError() end else local f = io.open(self.SavePath,"w+b") f:write(self.File:sub(ContentStart + 1,ContentEnd-1)) f:close() if self.CallbackUpdate and type(self.CallbackUpdate) == 'function' then self.CallbackUpdate(self.OnlineVersion,self.LocalVersion) end end self.GotScriptUpdate = true end end function OnLoad() inload = true CheckScriptUpdate() CheckVPred() if FileExist(LIB_PATH .. "/VPrediction.lua") then CheckSxOrbWalk() end if FileExist(LIB_PATH .. "/VPrediction.lua") and FileExist(LIB_PATH .. "/SxOrbWalk.lua") then DelayAction(function() CustomOnLoad() end, 6) end end function CustomOnLoad() if _G.AutoCarry ~= nil then PrintChat("SAC: Loaded") SAC = true Sx = false else Sx = true SAC = false require "SxOrbWalk" end print("Ezreal - The true carry : Free elo for you ! | Linkpad |") Skills() TargetSelector = TargetSelector(TARGET_LESS_CAST_PRIORITY, SkillQ.range + 500, DAMAGE_PHYSICAL, false, true) VP = VPrediction() Menu() inload = false end function CheckScriptUpdate() local ToUpdate = {} ToUpdate.Version = 1.3 ToUpdate.UseHttps = true ToUpdate.Name = "Ezreal - The true carry" ToUpdate.Host = "raw.githubusercontent.com" ToUpdate.VersionPath = "/linkpad/BoL/master/Ezreal-The-true-carry.version" ToUpdate.ScriptPath = "/linkpad/BoL/master/Ezreal-The-true-carry.lua" ToUpdate.SavePath = SCRIPT_PATH.."/" .. GetCurrentEnv().FILE_NAME ToUpdate.CallbackUpdate = function(NewVersion,OldVersion) print("" .. ToUpdate.Name .. ": Updated to "..NewVersion..". Please Reload with 2x F9") end ToUpdate.CallbackNoUpdate = function(OldVersion) print("" .. ToUpdate.Name .. ": No Updates Found") end ToUpdate.CallbackNewVersion = function(NewVersion) print("" .. ToUpdate.Name .. ": New Version found ("..NewVersion.."). Please wait until its downloaded") end ToUpdate.CallbackError = function(NewVersion) print("" .. ToUpdate.Name .. ": Error while Downloading. Please try again.") end ScriptUpdate(ToUpdate.Version,ToUpdate.UseHttps, ToUpdate.Host, ToUpdate.VersionPath, ToUpdate.ScriptPath, ToUpdate.SavePath, ToUpdate.CallbackUpdate,ToUpdate.CallbackNoUpdate, ToUpdate.CallbackNewVersion,ToUpdate.CallbackError) end function CheckVPred() if FileExist(LIB_PATH .. "/VPrediction.lua") then require("VPrediction") VP = VPrediction() else local ToUpdate = {} ToUpdate.Version = 0.0 ToUpdate.UseHttps = true ToUpdate.Name = "VPrediction" ToUpdate.Host = "raw.githubusercontent.com" ToUpdate.VersionPath = "/SidaBoL/Scripts/master/Common/VPrediction.version" ToUpdate.ScriptPath = "/SidaBoL/Scripts/master/Common/VPrediction.lua" ToUpdate.SavePath = LIB_PATH.."/VPrediction.lua" ToUpdate.CallbackUpdate = function(NewVersion,OldVersion) print("" .. ToUpdate.Name .. ": Updated to "..NewVersion..". Please Reload with 2x F9") end ToUpdate.CallbackNoUpdate = function(OldVersion) print("" .. ToUpdate.Name .. ": No Updates Found") end ToUpdate.CallbackNewVersion = function(NewVersion) print("" .. ToUpdate.Name .. ": New Version found ("..NewVersion.."). Please wait until its downloaded") end ToUpdate.CallbackError = function(NewVersion) print("" .. ToUpdate.Name .. ": Error while Downloading. Please try again.") end ScriptUpdate(ToUpdate.Version,ToUpdate.UseHttps, ToUpdate.Host, ToUpdate.VersionPath, ToUpdate.ScriptPath, ToUpdate.SavePath, ToUpdate.CallbackUpdate,ToUpdate.CallbackNoUpdate, ToUpdate.CallbackNewVersion,ToUpdate.CallbackError) end end function CheckSxOrbWalk() if not FileExist(LIB_PATH .. "/SxOrbWalk.lua") then local ToUpdate = {} ToUpdate.Version = 0.0 ToUpdate.UseHttps = true ToUpdate.Name = "SxOrbWalk" ToUpdate.Host = "raw.githubusercontent.com" ToUpdate.VersionPath = "/Superx321/BoL/master/common/SxOrbWalk.Version" ToUpdate.ScriptPath = "/Superx321/BoL/master/common/SxOrbWalk.lua" ToUpdate.SavePath = LIB_PATH.."/SxOrbWalk.lua" ToUpdate.CallbackUpdate = function(NewVersion,OldVersion) print("" .. ToUpdate.Name .. ": Updated to "..NewVersion..". Please Reload with 2x F9") end ToUpdate.CallbackNoUpdate = function(OldVersion) print("" .. ToUpdate.Name .. ": No Updates Found") end ToUpdate.CallbackNewVersion = function(NewVersion) print("" .. ToUpdate.Name .. ": New Version found ("..NewVersion.."). Please wait until its downloaded") end ToUpdate.CallbackError = function(NewVersion) print("" .. ToUpdate.Name .. ": Error while Downloading. Please try again.") end ScriptUpdate(ToUpdate.Version,ToUpdate.UseHttps, ToUpdate.Host, ToUpdate.VersionPath, ToUpdate.ScriptPath, ToUpdate.SavePath, ToUpdate.CallbackUpdate,ToUpdate.CallbackNoUpdate, ToUpdate.CallbackNewVersion,ToUpdate.CallbackError) end end function OnTick() if inload then return end TargetSelector:update() Target = GetCustomTarget() if Sx then SxOrb:ForceTarget(Target) end if SAC then if _G.AutoCarry.Keys.AutoCarry then _G.AutoCarry.Orbwalker:Orbwalk(Target) end end KillSteall() Checks() ComboKey = Settings.combo.comboKey if ComboKey then Combo(Target) end if (Settings.harass.toggle or Settings.harass.key) and not ComboKey then Harass(Target) end if (Settings.laneclear.toggle or Settings.laneclear.key) and not ComboKey then LaneClear() end end function LaneClear() enemyMinions:update() if not IsMyManaLowLaneClear() then for i, minion in pairs(enemyMinions.objects) do if ValidTarget(minion) and minion ~= nil then if Settings.laneclear.useQ and GetDistance(minion) <= SkillQ.range and SkillQ.ready then CastSpell(_Q, minion.x, minion.z) end end end end end function Harass(unit) if ValidTarget(unit) and unit ~= nil and unit.type == myHero.type and not IsMyManaLowHarass() then if Settings.harass.useQ then CastQ(unit) end if Settings.harass.useW then CastW(unit) end end end function Combo(unit) if ValidTarget(unit) and unit ~= nil and unit.type == myHero.type then if Settings.combo.useQ then CastQ(unit) end if Settings.combo.useW then CastW(unit) end if Settings.combo.RifKilable then local dmgR = getDmg("R", unit, myHero) + ((myHero.damage)*0.44) + ((myHero.ap)*0.9) if unit.health < dmgR then CastR(unit) end end end end function KillSteall() for _, unit in pairs(GetEnemyHeroes()) do local health = unit.health local dmgW = getDmg("W", unit, myHero) + ((myHero.ap)*0.8) local dmgQ = getDmg("Q", unit, myHero) + ((myHero.damage)*1.1) + ((myHero.ap)*0.4) if health < dmgW and Settings.killsteal.useW and ValidTarget(unit) then CastW(unit) end if health < dmgQ and Settings.killsteal.useQ and ValidTarget(unit) then CastQ(unit) end end end function IsMyManaLowLaneClear() if myHero.mana < (myHero.maxMana * ( Settings.laneclear.mManager / 100)) then return true else return false end end function IsMyManaLowHarass() if myHero.mana < (myHero.maxMana * ( Settings.harass.mManager / 100)) then return true else return false end end function Checks() SkillQ.ready = (myHero:CanUseSpell(_Q) == READY) SkillW.ready = (myHero:CanUseSpell(_W) == READY) SkillR.ready = (myHero:CanUseSpell(_R) == READY) if Settings.drawing.lfc.lfc then _G.DrawCircle = DrawCircle2 else _G.DrawCircle = _G.oldDrawCircle end end function GetCustomTarget() if SelectedTarget ~= nil and ValidTarget(SelectedTarget, 1500) then return SelectedTarget end TargetSelector:update() if TargetSelector.target and not TargetSelector.target.dead and TargetSelector.target.type == myHero.type then return TargetSelector.target else return nil end end function CastQ(unit) if unit ~= nil and GetDistance(unit) <= SkillQ.range and SkillQ.ready then CastPosition, HitChance, Position = VP:GetLineCastPosition(unit, SkillQ.delay, SkillQ.width, SkillQ.range, SkillQ.speed, myHero, true) if HitChance >= 2 then CastSpell(_Q, CastPosition.x, CastPosition.z) end end end function CastW(unit) if unit ~= nil and GetDistance(unit) <= SkillW.range and SkillW.ready then CastPosition, HitChance, Position = VP:GetLineCastPosition(unit, SkillW.delay, SkillW.width, SkillW.range, SkillW.speed, myHero, false) if HitChance >= 2 then CastSpell(_W, CastPosition.x, CastPosition.z) end end end function CastR(unit) if unit ~= nil and SkillR.ready then CastPosition, HitChance, Position = VP:GetLineAOECastPosition(unit, SkillR.delay, SkillR.width, SkillR.range, SkillR.speed, myHero) if HitChance >= 2 then CastSpell(_R, CastPosition.x, CastPosition.z) end end end function OnProcessSpell(unit, spell) if table.contains(GapCloserList, spell.name) and Settings.antigap.useE then if (spell and spell.target and spell.target.isMe or GetDistance(spell.endPos or Geometry.Vector3(0,0,0) <= myHero.boundingRadius + 10)) then local jmpToPos = Target + (Vector(myHero) - Target):normalized() * 2000 CastSpell(_E, jmpToPos.x , jmpToPos.z) end end end function Skills() SkillQ = { name = "Mystic Shot", range = 1150, delay = 0.25, speed = 2000, width = 60, ready = false } SkillW = { name = "Essence Flux", range = 950, delay = 0.25, speed = 1600, width = 80, ready = false } SkillE = { name = "Arcane Shift", range = 475, delay = nil, speed = nil, width = nil, ready = false } SkillR = { name = "Trueshot Barrage", range = math.huge, delay = 1.0, speed = 2000, width = 160, ready = false } GapCloserList = { "LeonaZenithBlade", "AatroxQ", "AkaliShadowDance", "Headbutt", "FioraQ", "DianaTeleport", "EliseSpiderQCast", "FizzPiercingStrike", "GragasE", "HecarimUlt", "JarvanIVDragonStrike", "IreliaGatotsu", "JaxLeapStrike", "KhazixE", "khazixelong", "LeblancSlide", "LeblancSlideM", "BlindMonkQTwo", "LeonaZenithBlade", "UFSlash", "Pantheon_LeapBash", "PoppyHeroicCharge", "RenektonSliceAndDice", "RivenTriCleave", "SejuaniArcticAssault", "slashCast", "ViQ", "MonkeyKingNimbus", "XenZhaoSweep", "YasuoDashWrapper" } enemyMinions = minionManager(MINION_ENEMY, SkillQ.range, myHero, MINION_SORT_HEALTH_ASC) lastSkin = 0 _G.oldDrawCircle = rawget(_G, 'DrawCircle') _G.DrawCircle = DrawCircle2 end function Menu() Settings = scriptConfig("| Ezreal - The true carry |", "Linkpad") Settings:addSubMenu("["..myHero.charName.."] - Combo Settings", "combo") Settings.combo:addParam("comboKey", "Combo Key", SCRIPT_PARAM_ONKEYDOWN, false, 32) Settings.combo:addParam("useQ", "Use (Q) in Combo", SCRIPT_PARAM_ONOFF, true) Settings.combo:addParam("useW", "Use (W) in Combo", SCRIPT_PARAM_ONOFF, true) Settings.combo:addParam("RifKilable", "Use (R) if enemy is kilable", SCRIPT_PARAM_ONOFF, true) Settings:addSubMenu("["..myHero.charName.."] - AntiGap Closer", "antigap") Settings.antigap:addParam("useE", "Use (E)", SCRIPT_PARAM_ONOFF, true) Settings:addSubMenu("["..myHero.charName.."] - KillSteal", "killsteal") Settings.killsteal:addParam("useQ", "Steal With (Q)", SCRIPT_PARAM_ONOFF, true) Settings.killsteal:addParam("useW", "Steal With (W)", SCRIPT_PARAM_ONOFF, true) Settings:addSubMenu("["..myHero.charName.."] - Harass", "harass") Settings.harass:addParam("key", "Harass Key", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C")) Settings.harass:addParam("toggle", "Toggle Harass", SCRIPT_PARAM_ONKEYTOGGLE, false, string.byte("L")) Settings.harass:addParam("useQ", "Harass With (Q)", SCRIPT_PARAM_ONOFF, true) Settings.harass:addParam("useW", "Harass With (W)", SCRIPT_PARAM_ONOFF, true) Settings.harass:addParam("mManager", "Min. Mana To Harass", SCRIPT_PARAM_SLICE, 0, 0, 100, 0) Settings:addSubMenu("["..myHero.charName.."] - Lane Clear", "laneclear") Settings.laneclear:addParam("key", "Lane Clear Key", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V")) Settings.laneclear:addParam("toggle", "Toggle Lane Clear", SCRIPT_PARAM_ONKEYTOGGLE, false, string.byte("T")) Settings.laneclear:addParam("useQ", "Lane Clear With (Q)", SCRIPT_PARAM_ONOFF, true) Settings.laneclear:addParam("mManager", "Min. Mana To Lane Clear", SCRIPT_PARAM_SLICE, 0, 0, 100, 0) Settings.combo:permaShow("comboKey") Settings.combo:permaShow("RifKilable") Settings.killsteal:permaShow("useQ") Settings.killsteal:permaShow("useW") Settings.harass:permaShow("toggle") Settings.laneclear:permaShow("toggle") Settings:addSubMenu("["..myHero.charName.."] - Draw Settings", "drawing") Settings.drawing:addParam("mDraw", "Disable All Range Draws", SCRIPT_PARAM_ONOFF, false) Settings.drawing:addParam("myHero", "Draw My Range", SCRIPT_PARAM_ONOFF, true) Settings.drawing:addParam("myColor", "Draw My Range Color", SCRIPT_PARAM_COLOR, {255, 100, 44, 255}) Settings.drawing:addParam("qDraw", "Draw "..SkillQ.name.." (Q) Range", SCRIPT_PARAM_ONOFF, true) Settings.drawing:addParam("qColor", "Draw "..SkillQ.name.." (Q) Color", SCRIPT_PARAM_COLOR, {255, 100, 44, 255}) Settings.drawing:addParam("wDraw", "Draw "..SkillW.name.." (W) Range", SCRIPT_PARAM_ONOFF, true) Settings.drawing:addParam("wColor", "Draw "..SkillW.name.." (W) Color", SCRIPT_PARAM_COLOR, {255, 100, 44, 255}) Settings.drawing:addParam("tColor", "Draw Target Color", SCRIPT_PARAM_COLOR, {255, 100, 44, 255}) Settings.drawing:addParam("tText", "Draw Current Target Text", SCRIPT_PARAM_ONOFF, true) Settings.drawing:addSubMenu("Lag Free Circles", "lfc") Settings.drawing.lfc:addParam("lfc", "Lag Free Circles", SCRIPT_PARAM_ONOFF, false) Settings.drawing.lfc:addParam("CL", "Quality", 4, 75, 75, 2000, 0) Settings.drawing.lfc:addParam("Width", "Width", 4, 1, 1, 10, 0) Settings:addSubMenu("["..myHero.charName.."] - Orbwalking Settings", "Orbwalking") if Sx then SxOrb:LoadToMenu(Settings.Orbwalking) else Settings.Orbwalking:addParam("info","SAC Detected", SCRIPT_PARAM_INFO, "") end Settings:addTS(TargetSelector) end function OnDraw() if inload then return end if not myHero.dead and not Settings.drawing.mDraw then if SkillQ.ready and Settings.drawing.qDraw then DrawCircle(myHero.x, myHero.y, myHero.z, SkillQ.range, RGB(Settings.drawing.qColor[2], Settings.drawing.qColor[3], Settings.drawing.qColor[4])) end if SkillW.ready and Settings.drawing.wDraw then DrawCircle(myHero.x, myHero.y, myHero.z, SkillW.range, RGB(Settings.drawing.wColor[2], Settings.drawing.wColor[3], Settings.drawing.wColor[4])) end if Settings.drawing.myHero then DrawCircle(myHero.x, myHero.y, myHero.z, myHero.range + GetDistance(myHero, myHero.minBBox), RGB(Settings.drawing.myColor[2], Settings.drawing.myColor[3], Settings.drawing.myColor[4])) end if Target ~= nil and ValidTarget(Target) then if Settings.drawing.tText then DrawText3D("Current Target",Target.x-100, Target.y-50, Target.z, 20, 0xFFFFFF00) end DrawCircle(Target.x, Target.y, Target.z, 200, RGB(Settings.drawing.tColor[2], Settings.drawing.tColor[3], Settings.drawing.tColor[4])) end end end function OnWndMsg(Msg, Key) if inload then return end if Msg == WM_LBUTTONDOWN then local minD = 0 local starget = nil for i, enemy in ipairs(GetEnemyHeroes()) do if ValidTarget(enemy) then if GetDistance(enemy, mousePos) <= minD or starget == nil then minD = GetDistance(enemy, mousePos) starget = enemy end end end if starget and minD < 500 then if SelectedTarget and starget.charName == SelectedTarget.charName then SelectedTarget = nil else SelectedTarget = starget end end end end function DrawCircleNextLvl(x, y, z, radius, width, color, chordlength) radius = radius or 300 quality = math.max(8,round(180/math.deg((math.asin((chordlength/(2*radius))))))) quality = 2 * math.pi / quality radius = radius*.92 local points = {} for theta = 0, 2 * math.pi + quality, quality do local c = WorldToScreen(D3DXVECTOR3(x + radius * math.cos(theta), y, z - radius * math.sin(theta))) points[#points + 1] = D3DXVECTOR2(c.x, c.y) end DrawLines2(points, width or 1, color or 4294967295) end function round(num) if num >= 0 then return math.floor(num+.5) else return math.ceil(num-.5) end end function DrawCircle2(x, y, z, radius, color) local vPos1 = Vector(x, y, z) local vPos2 = Vector(cameraPos.x, cameraPos.y, cameraPos.z) local tPos = vPos1 - (vPos1 - vPos2):normalized() * radius local sPos = WorldToScreen(D3DXVECTOR3(tPos.x, tPos.y, tPos.z)) if OnScreen({ x = sPos.x, y = sPos.y }, { x = sPos.x, y = sPos.y }) then DrawCircleNextLvl(x, y, z, radius, Settings.drawing.lfc.Width, color, Settings.drawing.lfc.CL) end end assert(load(Base64Decode("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"), nil, "bt", _ENV))() ScriptStatus("OBECFCEBBCG")