--[[ This is free and unencumbered software released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. For more information, please refer to ]] script_name("killsay") script_author("treywisp") script_description("Sends a message when an opponent is killed and places a mark on his corpse") local inicfg = require("inicfg") local imgui = require("mimgui") local encoding = require("encoding") local sampev = require("samp.events") local ffi = require("ffi") local addons = require("ADDONS") -- encoding encoding.default = 'CP1251' local u8 = encoding.UTF8 -- Переменные для функций таблицы local data_file_path = getWorkingDirectory() .. "\\killsay_table.json" local player_data = {} local mark_data = {} local script_image local script_states = { antiflood = false } local imgui_states = { window_state = imgui.new.bool(), menu_state = imgui.new.int(1), } -- Конфиг local settings_source = "killsay.ini" local settings = inicfg.load({ variables = { -- Главное меню script_state = false, startup_notif = true, -- Настройка отыгровок killsay_variation = 0, killsay_variation_custom = u8[[Это окно создано для собственной отыгровки]], killsay_distance = false, -- Настройка меток send_mark = false, use_mark = false, ignore_text_mark = false, ignore_self_mark = false, sound_mark = false, variation_sound_mark = 21001, sound_mark_alt = false, time_mark = false, variation_time_mark = 1500, custom_icon_mark = false, variation_icon_mark = 6, -- Прочие настройки radio_report = false, squad_report = false, table_insert = true; } }, settings_source) local imgui_buffers = { -- Главное меню script_image = nil, script_state = imgui.new.bool(settings.variables.script_state), startup_notif = imgui.new.bool(settings.variables.startup_notif), -- Настойка отыгровок killsay_variation = imgui.new.int(settings.variables.killsay_variation), killsay_variation_custom = imgui.new.char[256](u8(tostring(settings.variables.killsay_variation_custom):gsub("&nl", "\n"):sub(1, 255))), killsay_distance = imgui.new.bool(settings.variables.killsay_distance), -- Настройка меток send_mark = imgui.new.bool(settings.variables.send_mark), use_mark = imgui.new.bool(settings.variables.use_mark), ignore_text_mark = imgui.new.bool(settings.variables.ignore_text_mark), ignore_self_mark = imgui.new.bool(settings.variables.ignore_self_mark), sound_mark = imgui.new.bool(settings.variables.sound_mark), variation_sound_mark = imgui.new.int(settings.variables.variation_sound_mark), sound_mark_alt = imgui.new.bool(settings.variables.sound_mark_alt), time_mark = imgui.new.bool(settings.variables.time_mark), variation_time_mark = imgui.new.int(settings.variables.variation_time_mark), custom_icon_mark = imgui.new.bool(settings.variables.custom_icon_mark), variation_icon_mark = imgui.new.int(settings.variables.variation_icon_mark), -- Прочие настройки radio_report = imgui.new.bool(settings.variables.radio_report), squad_report = imgui.new.bool(settings.variables.squad_report), table_search = imgui.new.char[256](), table_insert = imgui.new.bool(settings.variables.table_insert); } -- Стандартные вариации отыгровок, $nickname == nickname, $id == id local killsay_text = { [1] = { -- Классическая "/me расстегнул ширинку, приспустил джинсы, сделал тяжелый вдох, достал инструмент", "/do Ароматная золотая жидкость струйкой стекает по трупу $nickname", "/me подтянул джинсы, вздохнул c облегчением, застегнул ширинку"; }, [2] = { -- За мат извени "Слышь $nickname хуле ты мне сделаешь??", "вовторых пошел нахуй", "втетьих что ты мне сделаешь, я в другом городе, за мат извени"; }, [3] = { -- Hasta la vista "Hasta la vista, $nickname"; }, [4] = { -- Новогодняя "/me кинул открытку от Деда Мороза на труп $nickname", "/do В открытке написано: С новым годом, $nickname"; } } local function userNotification(text) sampAddChatMessage("[killsay] {FFFFFF}"..text, 0xDC143C) end -- Оптимизированная сортировка для таблицы local function tableOptimizedSort() table.sort(player_data, function(a, b) return (tonumber(a.killed) or 0) > (tonumber(b.killed) or 0) end) end -- Сохранение настроек таблицы local function tableSaveData() local file = io.open(data_file_path, 'w') if not file then return false end local content = encodeJson(player_data) file:write(content) file:close() return true end -- Внесение в таблицу ника при убийстве противника local function tableUpdateKillCount(nickname) if not nickname or nickname == "" then return false end nickname = nickname:match("^%s*(.-)%s*$"):sub(1, 30) for i = 1, #player_data do if player_data[i].nickname == nickname then player_data[i].killed = (player_data[i].killed or 0) + 1 tableOptimizedSort() return true end end player_data[#player_data+1] = {nickname = nickname, killed = 1} tableOptimizedSort() tableSaveData() return true end local function tableLoadData() local file = io.open(data_file_path, 'r') if not file then file = io.open(data_file_path, 'w') if not file then return false end file:write('[]') file:close() userNotification("Файл данных не был обнаружен, создан новый под названием \"killsay_table.json\"") return true end local content = file:read('*a') file:close() local ok, data = pcall(decodeJson, content) if not ok then return false end player_data = data or {} tableOptimizedSort() return true end local function saveSettings() userNotification("Попытка сохранения настроек...") local text_fields = { killsay_variation_custom = true, } -- Автоматизированная проверка на нахождение в таблице for key, _ in pairs(settings.variables) do if imgui_buffers[key] then if text_fields[key] then settings.variables[key] = (u8:decode(ffi.string(imgui_buffers[key]))):gsub("\n", "&nl") else settings.variables[key] = imgui_buffers[key][0] end end end if inicfg.save(settings, settings_source) then userNotification("Настройки были успешно сохранены") end end -- Добавляет звуковое уведомление при установке метки local function setSoundBlip() if imgui_buffers.sound_mark_alt[0] then -- Альтернативная вариация addOneOffSound(0.0, 0.0, 0.0, imgui_buffers.variation_sound_mark[0]) else -- Стандартная вариация (raknet) local bs = raknetNewBitStream() raknetBitStreamWriteInt32(bs, imgui_buffers.variation_sound_mark[0]) raknetBitStreamWriteFloat(bs, 0) raknetBitStreamWriteFloat(bs, 0) raknetBitStreamWriteFloat(bs, 0) raknetEmulRpcReceiveBitStream(16, bs) raknetDeleteBitStream(bs) end end local function setDeathBlip(x, y, z) lua_thread.create(function() setSoundBlip() local mark = { checkpoint = createCheckpoint(2, x, y, z, 0, 0, 0, 1), blip = addSpriteBlipForContactPoint(x, y, z, imgui_buffers.custom_icon_mark[0] and imgui_buffers.variation_icon_mark[0] or 19) } mark_data[#mark_data + 1] = mark wait(imgui_buffers.time_mark[0] and imgui_buffers.variation_time_mark[0] or 1000) if mark.checkpoint then deleteCheckpoint(mark.checkpoint) end if mark.blip then removeBlip(mark.blip) end for i = #mark_data, 1, -1 do if mark_data[i] == mark then table.remove(mark_data, i) break end end end) end local function sendMark(x, y, z) sampSendChat("/u DCHECKSEALKPOSX".. math.floor(x) .."Y".. math.floor(y) .."Z".. math.floor(z)) end local function sendRolePlay(nickname, id) -- Отправка собственной отыгровки if imgui_buffers.killsay_variation[0] == 5 then for text in u8:decode(ffi.string(imgui_buffers.killsay_variation_custom)):gmatch("[^\r\n]+") do sampSendChat(text:gsub("$nickname", nickname):gsub("$id", id)) wait(1400) end return true end -- Отправка стандартной отыгровки for _, text in ipairs(killsay_text[imgui_buffers.killsay_variation[0]]) do text = (text:gsub("$nickname", ''.. nickname)):gsub("$id", ''.. id) sampSendChat(text) wait(1400) end end -- Главная функция скрипта local function killsay(id) local x, y, z, nickname local _, handle = sampGetCharHandleBySampPlayerId(id) if _ then x, y, z = getCharCoordinates(handle) end if sampIsPlayerConnected(id) then nickname = (sampGetPlayerNickname(id)):gsub("^%b[]", "") end local px, py, pz = getCharCoordinates(PLAYER_PED) if not (x and y and z and nickname) or x == "" or y == "" or z == "" or nickname == "" then print("[" .. os.date("%H:%M:%S") .. "]: Произошла ошибка инициализации переменных") print("[" .. os.date("%H:%M:%S") .. "]: Возможная проблема: выход противника / быстрый респавн") return false else tableUpdateKillCount(nickname) if imgui_buffers.send_mark[0] then sendMark(x, y, z) wait((imgui_buffers.killsay_variation[0] or imgui_buffers.radio_report[0] or imgui_buffers.squad_report[0]) and 1400 or 0) end if imgui_buffers.killsay_variation[0] ~= 0 and (imgui_buffers.killsay_distance[0] or (not imgui_buffers.killsay_distance[0] and getDistanceBetweenCoords3d(x, y, z, px, py, pz) < 15)) then sendRolePlay(nickname, id) end if imgui_buffers.radio_report[0] then sampSendChat("/rb " .. nickname .. "[" .. id .. "] нейтрализован") wait(imgui_buffers.squad_report[0] and 1400 or 0) end if imgui_buffers.squad_report[0] then sampSendChat("/fs ".. nickname .. "[" .. id .. "] нейтрализован") end end end local function centerColumnText(text) imgui.SetCursorPosX((imgui.GetColumnOffset() + (imgui.GetColumnWidth() / 2)) - imgui.CalcTextSize(text).x / 2) imgui.Text(text) end local function customizedHint(text, variation) imgui.SameLine() if variation then local pos = imgui.GetCursorPosY() imgui.SetCursorPosY(pos + 3) end imgui.TextDisabled(u8"(?)") if imgui.IsItemHovered() then imgui.BeginTooltip() imgui.PushTextWrapPos(450) imgui.TextUnformatted(u8(text)) imgui.PopTextWrapPos() imgui.EndTooltip() end end imgui.OnInitialize(function() imgui.DarkTheme() imgui_buffers.script_image = imgui.CreateTextureFromFileInMemory(imgui.new("const char*", script_image), #script_image) end) imgui.OnFrame(function() return imgui_states.window_state[0] end, function(player) imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5)) imgui.SetNextWindowSize(imgui.ImVec2(523, 550), imgui.Cond.Always) imgui.Begin(u8"killsay", imgui_states.window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar + imgui.WindowFlags.NoScrollWithMouse) -- Селектор меню if addons.HeaderButton(imgui_states.menu_state[0] == 1, u8"Главное меню") then imgui_states.menu_state[0] = 1 end imgui.SameLine(nil, 30) if addons.HeaderButton(imgui_states.menu_state[0] == 2, u8"Настройка отыгровок") then imgui_states.menu_state[0] = 2 end imgui.SameLine(nil, 30) if addons.HeaderButton(imgui_states.menu_state[0] == 3, u8"Настройка меток") then imgui_states.menu_state[0] = 3 end imgui.SameLine(nil, 30) if addons.HeaderButton(imgui_states.menu_state[0] == 4, u8"Прочие настройки") then imgui_states.menu_state[0] = 4 end -- Главное меню if imgui_states.menu_state[0] == 1 then imgui.SetCursorPos(imgui.ImVec2(188, 170)) imgui.Image(imgui_buffers.script_image, imgui.ImVec2(150, 150)) imgui.SetCursorPosX(183) addons.ToggleButton(u8"Активация скрипта", imgui_buffers.script_state) imgui.SetCursorPos(imgui.ImVec2(165, 482)) addons.ToggleButton(u8"Уведомление при запуске", imgui_buffers.startup_notif) imgui.SetCursorPosY(450) addons.AlignedText(u8"This software is unlicensed. You can do whatever you want with it", 2) if imgui.IsItemClicked(0) then os.execute(("start %s"):format("https://unlicense.org")) end end -- Настройка отыгровок if imgui_states.menu_state[0] == 2 then -- Выбор вариации отыгровки imgui.SetCursorPos(imgui.ImVec2(50, 95)) imgui.RadioButtonIntPtr(u8"Без отыгровок", imgui_buffers.killsay_variation, 0) customizedHint("Скрипт будет пропускать отыгровки, переходя к другим функциям") imgui.SameLine(200) imgui.RadioButtonIntPtr(u8"Классическая", imgui_buffers.killsay_variation, 1) customizedHint("[1]: /me расстегнул ширинку, приспустил джинсы, сделал тяжелый вдох, достал инструмент\n[2]: /do Ароматная золотая жидкость струйкой стекает по трупу $nickname\n[3]: /me подтянул джинсы, вздохнул c облегчением, застегнул ширинку") imgui.SameLine(348) imgui.RadioButtonIntPtr(u8"За мат извени", imgui_buffers.killsay_variation, 2) customizedHint("[1]: Слышь $nickname хуле ты мне сделаешь??\n[2]: вовторых пошел нахуй\n[3]: втетьих что ты мне сделаешь, я в другом городе, за мат извени") imgui.SetCursorPos(imgui.ImVec2(50, 130)) imgui.RadioButtonIntPtr(u8"Hasta la vista", imgui_buffers.killsay_variation, 3) customizedHint("[1]: Hasta la vista, $nickname") imgui.SameLine(200) imgui.RadioButtonIntPtr(u8"Happy new year", imgui_buffers.killsay_variation, 4) customizedHint("[1]: /me кинул открытку от Деда Мороза на труп $nickname\n[2]: /do В открытке написано: С новым годом, $nickname") imgui.SameLine(348) imgui.RadioButtonIntPtr(u8"Кастомизация", imgui_buffers.killsay_variation, 5) customizedHint("Не рекомендуется использовать сочетание \"&nl\", поскольку оно\nкостыльно отвечает за перенос на новую строку. Если не выбрана\nэта фукнция - отыгровки, введенные ниже, не срабатывают") -- Собственная вариация отыгровки imgui.SetCursorPos(imgui.ImVec2(60, 185)) imgui.InputTextMultiline("##killsay_variation_custom", imgui_buffers.killsay_variation_custom, 256, imgui.ImVec2(400, 150)) imgui.SetCursorPosY(360) addons.AlignedText(u8"Максимально возможная длина твоих отыгровок - 256 символов.\nТакже ты можешь использовать переменные прямо в отыгровках:\nВписывай $nickname для вставки в отыгровки ника противника,\n$id следует использовать, если хочешь подставить ID противника", 2) imgui.SetCursorPos(imgui.ImVec2(85, 460)) addons.ToggleButton(u8"Игнорировать максимальную дистанцию отыгровок", imgui_buffers.killsay_distance) end -- Настройка метки if imgui_states.menu_state[0] == 3 then imgui.SetCursorPos(imgui.ImVec2(75, 95)) addons.ToggleButton(u8"Отправлять метки", imgui_buffers.send_mark) customizedHint("При ликвидации будет отправлять сообщение в чат сквада в формате DCHECKSEALKPOSX$Y$Z$, где $ - соответствующая координата", true) imgui.SameLine(275) addons.ToggleButton(u8"Устанавливать метки", imgui_buffers.use_mark) imgui.SetCursorPos(imgui.ImVec2(75, 130)) addons.ToggleButton(u8"Игнорировать текст", imgui_buffers.ignore_text_mark) customizedHint("Текст меток не будет отображаться в чате, однако сами метки будут устанавливаться", true) imgui.SameLine(275) addons.ToggleButton(u8"Игнорировать свои", imgui_buffers.ignore_self_mark) customizedHint("Свои отправленные метки устанавливаться не будут", true) -- Настройка звуковых уведомлений imgui.SetCursorPos(imgui.ImVec2(75, 185)) addons.ToggleButton(u8"Проигрывать звуков. оповещение при установке метки", imgui_buffers.sound_mark) imgui.SetCursorPos(imgui.ImVec2(75, 220)) imgui.RadioButtonIntPtr(u8"Пейджер", imgui_buffers.variation_sound_mark, 21001) imgui.SameLine(220) imgui.RadioButtonIntPtr(u8"Синтезатор", imgui_buffers.variation_sound_mark, 5205) imgui.SameLine(382) imgui.RadioButtonIntPtr(u8"Пинок", imgui_buffers.variation_sound_mark, 1136) imgui.SetCursorPos(imgui.ImVec2(75, 260)) addons.ToggleButton(u8"Использовать альт. применен.", imgui_buffers.sound_mark_alt) customizedHint("В большинстве случаев не будет работать, однако для кого-то это может стать решением проблемы", true) imgui.SetCursorPos(imgui.ImVec2(327, 258)) if imgui.Button(u8"Проверить звук", imgui.ImVec2(120, 0)) then setSoundBlip() end -- Настройка времени метки imgui.SetCursorPos(imgui.ImVec2(75, 315)) addons.ToggleButton(u8"Использовать собственное время отображения метки", imgui_buffers.time_mark) imgui.SetCursorPos(imgui.ImVec2(75, 350)) imgui.PushItemWidth(372) imgui.SliderInt(u8"", imgui_buffers.variation_time_mark, 100, 3500) -- Настройка кастомизированной иконки метки imgui.SetCursorPos(imgui.ImVec2(75, 405)) addons.ToggleButton(u8"Заменить стандартную иконку на кастомизированную", imgui_buffers.custom_icon_mark) customizedHint("По умолчанию иконкой является красный флажок", true) imgui.SetCursorPos(imgui.ImVec2(75, 435)) imgui.RadioButtonIntPtr(u8"Пистолет", imgui_buffers.variation_icon_mark, 6) imgui.SameLine(200) imgui.RadioButtonIntPtr(u8"Сердечко", imgui_buffers.variation_icon_mark, 21) imgui.SameLine(323) imgui.RadioButtonIntPtr(u8"Желтый кружок", imgui_buffers.variation_icon_mark, 56) end -- Прочие настройки if imgui_states.menu_state[0] == 4 then -- Настройка отчетов imgui.SetCursorPos(imgui.ImVec2(85, 95)) addons.ToggleButton(u8"Отправлять сообщение о ликвидации в рацию (/rb)", imgui_buffers.radio_report) customizedHint("/rb $nickname[$id] нейтрализован", true) imgui.SetCursorPos(imgui.ImVec2(85, 125)) addons.ToggleButton(u8"Отправлять сообщение о ликвидации в сквад (/fs)", imgui_buffers.squad_report) customizedHint("/fs $nickname[$id] нейтрализован", true) imgui.SetCursorPosY(165) addons.AlignedText(u8"Личная статистика ликвидации противников", 2) -- Автоматизированная таблица imgui.SetCursorPos(imgui.ImVec2(85, 190)) imgui.BeginChild(u8"##Таблица", imgui.ImVec2(355, 200), true) imgui.Columns(3) imgui.SetColumnWidth(-1, 140) centerColumnText(u8"Nickname") imgui.NextColumn() imgui.SetColumnWidth(-1, 90) centerColumnText(u8"Убийств") imgui.NextColumn() imgui.SetColumnWidth(-1, 135) centerColumnText(u8"Действия") imgui.NextColumn() imgui.Columns(1) imgui.Separator() for i, player in ipairs(player_data) do if (u8:decode(ffi.string(imgui_buffers.table_search))):gsub("%s+", "") == "" or player.nickname:find("^" .. (u8:decode(ffi.string(imgui_buffers.table_search))):gsub("%s+", ""):gsub("[%%%.%[%]%(%)%+%-%?%^%$]", "%%%0")) then imgui.Columns(3) imgui.SetColumnWidth(-1, 140) centerColumnText(u8(player.nickname)) imgui.NextColumn() imgui.SetColumnWidth(-1, 90) centerColumnText(u8(player.killed)) imgui.NextColumn() imgui.SetColumnWidth(-1, 135) centerColumnText(u8"Удалить запись") if imgui.IsItemClicked() then table.remove(player_data, i) tableSaveData() end imgui.Columns(1) imgui.Separator() end end imgui.EndChild() -- Поиск по таблице imgui.SetCursorPos(imgui.ImVec2(85, 395)) imgui.PushItemWidth(285) imgui.InputTextWithHint(u8"##Поиск", u8"Регистрозависимый поиск", imgui_buffers.table_search, 256) -- Очистка строки поиска imgui.SetCursorPos(imgui.ImVec2(375, 395)) if imgui.Button(u8"Очистить") then imgui.StrCopy(imgui_buffers.table_search, '') end imgui.SetCursorPos(imgui.ImVec2(85, 435)) addons.ToggleButton(u8"Заносить ликвидированных противников в таблицу", imgui_buffers.table_insert) end -- Кнопка сохранения настроек imgui.SetCursorPos(imgui.ImVec2(-5, 520)) if imgui.Button(u8"Сохранение настроек", imgui.ImVec2(535, 30)) then saveSettings() end imgui.End() end) function main() if not isSampfuncsLoaded() or not isSampLoaded() then return end while not isSampAvailable() do wait(100) end if not tableLoadData() then userNotification("{FF0000}Файл данных не был успешно загружен, скрипт может работать нестабильно!") print("Файл данных не был успешно загружен, скрипт может работать нестабильно!") end if imgui_buffers.startup_notif[0] then userNotification("Скрипт загружен. Открыть меню: /killsay") end sampRegisterChatCommand("killsay", function() imgui_states.window_state[0] = not imgui_states.window_state[0] end) end -- Проверка на убийство противника function sampev.onSendGiveDamage(id, damage, weaponid, bodypart) if id ~= 65535 and sampGetPlayerHealth(id) - damage <= 0 and imgui_buffers.script_state[0] then lua_thread.create(function() wait(350) if sampGetPlayerHealth(id) <= 0 and isCharDead(select(2, sampGetCharHandleBySampPlayerId(id))) and not script_states.antiflood then script_states.antiflood = true killsay(id) script_states.antiflood = false end end) end end -- Поиск текста метки function sampev.onServerMessage(color, text) if imgui_buffers.script_state[0] and imgui_buffers.use_mark[0] and text:find("^.+%[.*%]% {FFFFFF%}(.*)%[(.*)%]: DCHECKSEALKPOSX.+Y.+Z.+") then local nickname, id, x, y, z = text:match("^.+%[.*%]% {FFFFFF%}(.*)%[(.*)%]: DCHECKSEALKPOSX(.+)Y(.+)Z(.+)") local self_nickname = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))) if not imgui_buffers.ignore_self_mark[0] or (imgui_buffers.ignore_self_mark[0] and self_nickname ~= nickname) then setDeathBlip(x, y, z) end if imgui_buffers.ignore_text_mark[0] then return false end end end -- модифицированная тема Chapo и функция кнопки Cosmo function imgui.DarkTheme() imgui.SwitchContext() imgui.GetStyle().WindowPadding = imgui.ImVec2(5, 5) imgui.GetStyle().FramePadding = imgui.ImVec2(5, 5) imgui.GetStyle().ItemSpacing = imgui.ImVec2(5, 5) imgui.GetStyle().ItemInnerSpacing = imgui.ImVec2(2, 2) imgui.GetStyle().TouchExtraPadding = imgui.ImVec2(0, 0) imgui.GetStyle().IndentSpacing = 0 imgui.GetStyle().ScrollbarSize = 10 imgui.GetStyle().GrabMinSize = 10 imgui.GetStyle().WindowBorderSize = 1 imgui.GetStyle().ChildBorderSize = 1 imgui.GetStyle().PopupBorderSize = 1 imgui.GetStyle().FrameBorderSize = 1 imgui.GetStyle().TabBorderSize = 1 imgui.GetStyle().WindowRounding = 0 imgui.GetStyle().ChildRounding = 5 imgui.GetStyle().FrameRounding = 5 imgui.GetStyle().PopupRounding = 5 imgui.GetStyle().ScrollbarRounding = 5 imgui.GetStyle().GrabRounding = 5 imgui.GetStyle().TabRounding = 5 imgui.GetStyle().WindowTitleAlign = imgui.ImVec2(0.5, 0.5) imgui.GetStyle().ButtonTextAlign = imgui.ImVec2(0.5, 0.5) imgui.GetStyle().SelectableTextAlign = imgui.ImVec2(0.5, 0.5) imgui.GetStyle().Colors[imgui.Col.Text] = imgui.ImVec4(1.00, 1.00, 1.00, 1.00) imgui.GetStyle().Colors[imgui.Col.TextDisabled] = imgui.ImVec4(0.50, 0.50, 0.50, 1.00) imgui.GetStyle().Colors[imgui.Col.WindowBg] = imgui.ImVec4(0.07, 0.07, 0.07, 1.00) imgui.GetStyle().Colors[imgui.Col.ChildBg] = imgui.ImVec4(0.07, 0.07, 0.07, 1.00) imgui.GetStyle().Colors[imgui.Col.PopupBg] = imgui.ImVec4(0.07, 0.07, 0.07, 1.00) imgui.GetStyle().Colors[imgui.Col.Border] = imgui.ImVec4(0.25, 0.25, 0.26, 0.54) imgui.GetStyle().Colors[imgui.Col.BorderShadow] = imgui.ImVec4(0.00, 0.00, 0.00, 0.00) imgui.GetStyle().Colors[imgui.Col.FrameBg] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.FrameBgHovered] = imgui.ImVec4(0.25, 0.25, 0.26, 1.00) imgui.GetStyle().Colors[imgui.Col.FrameBgActive] = imgui.ImVec4(0.25, 0.25, 0.26, 1.00) imgui.GetStyle().Colors[imgui.Col.TitleBg] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.TitleBgActive] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.TitleBgCollapsed] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.MenuBarBg] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.ScrollbarBg] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.ScrollbarGrab] = imgui.ImVec4(0.00, 0.00, 0.00, 1.00) imgui.GetStyle().Colors[imgui.Col.ScrollbarGrabHovered] = imgui.ImVec4(0.41, 0.41, 0.41, 1.00) imgui.GetStyle().Colors[imgui.Col.ScrollbarGrabActive] = imgui.ImVec4(0.51, 0.51, 0.51, 1.00) imgui.GetStyle().Colors[imgui.Col.CheckMark] = imgui.ImVec4(1.00, 1.00, 1.00, 1.00) imgui.GetStyle().Colors[imgui.Col.SliderGrab] = imgui.ImVec4(0.21, 0.20, 0.20, 1.00) imgui.GetStyle().Colors[imgui.Col.SliderGrabActive] = imgui.ImVec4(0.21, 0.20, 0.20, 1.00) imgui.GetStyle().Colors[imgui.Col.Button] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.ButtonHovered] = imgui.ImVec4(0.21, 0.20, 0.20, 1.00) imgui.GetStyle().Colors[imgui.Col.ButtonActive] = imgui.ImVec4(1.00, 1.00, 1.00, 1.00) imgui.GetStyle().Colors[imgui.Col.Header] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.HeaderHovered] = imgui.ImVec4(0.20, 0.20, 0.20, 1.00) imgui.GetStyle().Colors[imgui.Col.HeaderActive] = imgui.ImVec4(0.47, 0.47, 0.47, 1.00) imgui.GetStyle().Colors[imgui.Col.Separator] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.SeparatorHovered] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.SeparatorActive] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.ResizeGrip] = imgui.ImVec4(1.00, 1.00, 1.00, 0.25) imgui.GetStyle().Colors[imgui.Col.ResizeGripHovered] = imgui.ImVec4(1.00, 1.00, 1.00, 0.67) imgui.GetStyle().Colors[imgui.Col.ResizeGripActive] = imgui.ImVec4(1.00, 1.00, 1.00, 0.95) imgui.GetStyle().Colors[imgui.Col.Tab] = imgui.ImVec4(0.12, 0.12, 0.12, 1.00) imgui.GetStyle().Colors[imgui.Col.TabHovered] = imgui.ImVec4(0.28, 0.28, 0.28, 1.00) imgui.GetStyle().Colors[imgui.Col.TabActive] = imgui.ImVec4(0.30, 0.30, 0.30, 1.00) imgui.GetStyle().Colors[imgui.Col.TabUnfocused] = imgui.ImVec4(0.07, 0.10, 0.15, 0.97) imgui.GetStyle().Colors[imgui.Col.TabUnfocusedActive] = imgui.ImVec4(0.14, 0.26, 0.42, 1.00) imgui.GetStyle().Colors[imgui.Col.PlotLines] = imgui.ImVec4(0.61, 0.61, 0.61, 1.00) imgui.GetStyle().Colors[imgui.Col.PlotLinesHovered] = imgui.ImVec4(1.00, 0.43, 0.35, 1.00) imgui.GetStyle().Colors[imgui.Col.PlotHistogram] = imgui.ImVec4(0.90, 0.70, 0.00, 1.00) imgui.GetStyle().Colors[imgui.Col.PlotHistogramHovered] = imgui.ImVec4(1.00, 0.60, 0.00, 1.00) imgui.GetStyle().Colors[imgui.Col.TextSelectedBg] = imgui.ImVec4(1.00, 0.00, 0.00, 0.35) imgui.GetStyle().Colors[imgui.Col.DragDropTarget] = imgui.ImVec4(1.00, 1.00, 0.00, 0.90) imgui.GetStyle().Colors[imgui.Col.NavHighlight] = imgui.ImVec4(0.26, 0.59, 0.98, 1.00) imgui.GetStyle().Colors[imgui.Col.NavWindowingHighlight] = imgui.ImVec4(1.00, 1.00, 1.00, 0.70) imgui.GetStyle().Colors[imgui.Col.NavWindowingDimBg] = imgui.ImVec4(0.80, 0.80, 0.80, 0.20) imgui.GetStyle().Colors[imgui.Col.ModalWindowDimBg] = imgui.ImVec4(0.00, 0.00, 0.00, 0.70) local but_orig = imgui.Button imgui.Button = function(...) imgui.PushStyleColor(imgui.Col.Text, imgui.ImVec4(1.00, 1.00, 1.00, 1.00)) imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(0.12, 0.12, 0.12, 1.00)) imgui.PushStyleColor(imgui.Col.ButtonHovered, imgui.ImVec4(0.21, 0.20, 0.20, 1.00)) imgui.PushStyleColor(imgui.Col.ButtonActive, imgui.ImVec4(0.41, 0.41, 0.41, 1.00)) local result = but_orig(...) imgui.PopStyleColor(4) return result end end script_image = "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52\x00\x00\x00\xC8\x00\x00\x00\xC8\x08\x06\x00\x00\x00\xAD\x58\xAE\x9E\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0B\x13\x00\x00\x0B\x13\x01\x00\x9A\x9C\x18\x00\x00\x17\x28\x49\x44\x41\x54\x78\x9C\xED\x9D\x79\x9C\x15\xD5\x95\xC7\xBF\xA0\x82\xEC\x36\x28\x88\x5B\x10\x44\x8D\x2B\xDA\x44\x31\x71\x34\x2A\xA8\x71\x37\x4A\x66\xC6\x8C\x19\x83\xB1\xC9\x18\x63\xCC\xC4\x04\x9C\x89\xD9\xC6\x89\x10\x93\x31\xF1\x93\x31\xD2\x6A\xD4\xA0\xC9\x47\x50\x27\xD1\xC4\x95\x89\x1B\x2E\x41\x08\xE2\x12\xB7\x11\x23\xE0\x12\x44\x9A\x28\x02\x8A\xF1\xCD\x1F\xE7\x95\xFD\xE8\xEE\x57\x75\x6F\x55\xDD\xBA\xB7\xDE\x3B\xDF\xCF\xA7\x3E\xBD\xD5\x72\xBA\x5E\xFD\xEA\xDE\x7B\xEE\xB9\xE7\xF4\xAA\x54\x2A\x28\x8A\xD2\x33\xBD\x7D\x1B\xA0\x28\x21\xA3\x02\x51\x94\x18\x54\x20\x8A\x12\x83\x0A\x44\x51\x62\x50\x81\x28\x4A\x0C\x2A\x10\x45\x89\x41\x05\xA2\x28\x31\xA8\x40\x14\x25\x06\x15\x88\xA2\xC4\xA0\x02\x51\x94\x18\x54\x20\x8A\x12\x83\x0A\x44\x51\x62\x50\x81\x28\x4A\x0C\x2A\x10\x45\x89\x41\x05\xA2\x28\x31\xA8\x40\x14\x25\x06\x15\x88\xA2\xC4\xB0\xB9\x6F\x03\x9A\x98\x2D\x81\xE1\xC0\xD6\xC0\xB0\xEA\x36\x1C\x18\x02\xF4\x01\xFA\x22\x2F\xB0\xBE\xC0\x66\x40\xB4\xF4\xB3\x57\xF5\xEB\x7A\xE0\x1D\x60\x6D\xF5\xEB\x6A\xA0\xA3\xBA\xBD\x09\xBC\x5E\xFD\x9B\x92\x01\x15\x88\x7B\xFA\x02\xDB\x01\xBB\x00\xFB\x00\x7B\x56\xBF\xDF\x1E\x11\xC5\x10\x07\xD7\x5C\x0F\xAC\x04\xFE\x52\xDD\x9E\x07\x9E\x06\x9E\x04\x5E\xAD\x6E\x8A\x01\xBD\x74\x4D\x7A\xEE\xF4\x03\x5A\xAB\xDB\x47\x81\x03\x81\xBD\x08\xE7\x65\xB4\x06\x58\x0C\x2C\x01\x9E\x03\x1E\x44\xC4\xA3\xF4\x80\x0A\x24\x1F\xF6\x00\xC6\x03\xC7\x01\x13\x80\x1D\xFD\x9A\x63\xC5\x3A\x60\x29\x30\x1F\xB8\x1B\x58\x00\xBC\xE2\xD5\xA2\x80\x50\x81\xA4\x63\x0B\xE0\x00\xE0\x54\x44\x10\x13\xFC\x9A\x93\x2B\x6B\x80\x47\x80\x3B\x80\xDF\x21\xE2\x69\x5A\x54\x20\x76\xB4\x02\x47\x01\x27\x23\x2D\x46\xA3\xB3\x0E\xB8\xBD\xBA\xDD\x8A\x0C\xFE\x9B\x0A\x15\x48\x32\x5B\x01\x27\x00\x53\x80\x83\x11\x8F\x52\x33\xF2\x1A\x70\x0B\x30\x1B\xF8\x83\x67\x5B\x0A\x43\x05\x52\x9F\x7D\x80\xD3\x80\x7F\x00\x3E\xE2\xD9\x96\xD0\xB8\x03\xB8\x1C\xF8\xAD\x6F\x43\x5C\xA3\x02\xE9\xCE\x78\xE0\x3C\x64\x7C\xD1\xB7\x80\xEB\xBD\x03\xBC\x84\xB8\x63\x57\x02\xAB\x10\x37\xEC\x06\x60\x63\xF5\xEB\x7B\xC8\xFC\xC7\x20\x60\x20\xD0\x1F\x18\x0C\x0C\x05\x46\x02\x23\x6A\xB6\x22\xF9\x5F\xE0\xA7\xC0\xAF\x0B\xBE\x6E\x61\xA8\x40\x3A\x39\x04\xF8\x0A\xF0\x69\x87\xD7\x58\x07\xBC\x00\x3C\x06\xFC\x11\x78\x16\x11\xC7\x0A\xE0\xFD\x0C\xE7\xDD\x8C\xCE\x89\xC6\x91\xC0\xDE\xC0\x38\x60\x77\x60\x27\xDC\x0B\xE7\x09\xE0\x32\xE0\x6A\xC7\xD7\x29\x1C\x15\x08\x7C\x0C\xB8\x00\x19\x78\xBB\xE0\x59\xE0\x5E\x60\x21\xF0\x28\xF0\x27\x47\xD7\xA9\xC7\x08\x64\x1E\x66\x1C\xE2\x79\x3B\x00\x18\xE5\xE8\x5A\xF7\x03\xDF\x47\xDC\xC5\x0D\x41\x33\x0B\xA4\x05\x98\x06\x7C\x8D\xFC\x27\xF1\x96\x20\xA2\xB8\x15\x69\x2D\x42\x0A\xF9\xD8\x0A\xD8\x15\x38\x1C\xF8\x24\xE2\x78\x18\x90\xF3\x35\xAE\x05\xBE\x03\xBC\x9C\xF3\x79\x0B\xA7\x59\x05\xF2\x2F\xC0\xBF\x23\xE1\x1E\x79\xF1\x0A\x70\x73\x75\x7B\x20\xC7\xF3\xBA\x66\x67\x64\xB6\xFF\x53\xC0\x11\xE4\x77\x4F\xD6\x02\xFF\x05\xFC\x27\x32\x86\x2A\x25\xCD\x26\x90\xDD\x81\x8B\x81\x93\x72\x3C\xE7\xBD\xC0\x0D\xC0\xFF\x20\x01\x83\x65\x66\x18\x12\x0D\x70\x32\x22\x98\x3E\x39\x9C\xF3\x31\xA4\x95\x7E\x30\x87\x73\x15\x4E\x33\x09\x64\x2A\xF0\x23\xF2\xEB\x4E\xDC\x0C\x5C\x09\xDC\x95\xD3\xF9\x42\x63\x57\xE0\x14\xC4\xD5\xBD\x57\x0E\xE7\xBB\x04\xF8\x46\x0E\xE7\x29\x94\x66\x10\xC8\x08\xE4\xC3\x39\x3D\x87\x73\x55\x80\xEB\x81\x1F\x23\x5E\xA8\x66\xE1\x64\xE0\x0B\xC0\x31\x19\xCF\xF3\x08\x70\x36\xF0\x78\x56\x83\x8A\xA2\xD1\x05\xD2\x8A\x0C\x18\xF3\x78\x03\xDE\x0C\x5C\x0A\x3C\x94\xC3\xB9\xCA\xCA\x91\x48\x44\xC1\xDF\x67\x38\xC7\x2A\x64\x0C\x78\x53\x2E\x16\x39\xA6\x91\x05\xD2\x86\xCC\xF6\x66\x0D\x0D\xF9\x3D\x70\x11\x32\xD6\x50\x84\x7D\x91\xEE\xD2\x69\x19\xCE\x71\x21\x72\x5F\x83\xA6\x51\x05\xF2\x63\x64\xD2\x2F\x0B\x4B\x91\x01\xFD\x55\x99\xAD\x69\x5C\x0E\x46\xBC\x81\x47\xA7\x3C\xFE\x46\xE0\x9F\x81\x77\x73\xB3\x28\x67\x1A\x4D\x20\x5B\x02\xD7\x20\xF1\x53\x59\xF8\x19\xF0\x5D\x24\xFC\x43\x49\xE6\x73\xC0\xF7\x48\x17\xB3\x76\x27\x30\x99\xB0\xE6\x8A\x3E\xA4\x91\x04\x32\x1C\x99\x98\x3B\x30\xC3\x39\x9E\x46\x66\xD5\x6F\xCB\xC5\xA2\xE6\x62\x10\xF2\x52\xF9\x6A\x8A\x63\x97\x00\x27\x12\xE0\xC4\x62\xA3\x08\x64\x7B\xE4\xA1\xDE\x2F\xC3\x39\xAE\x42\xC4\xB1\x2A\x17\x8B\x9A\x97\x23\x80\x1F\x22\xA1\x2D\x36\xFC\x09\x59\x6B\xB3\x22\x6F\x83\xB2\xD0\x08\x02\xD9\x0E\x69\xA6\xF7\x4E\x79\xFC\x06\x64\xBC\xD2\x9E\x9B\x45\x4A\x1F\x24\x78\x71\xAA\xE5\x71\x4F\x21\x21\x30\x6F\xE4\x6E\x51\x4A\xCA\x2E\x90\x11\x88\x97\x69\x8F\x94\xC7\x3F\x86\x0C\x12\x9F\xC9\xCD\x22\xA5\x96\x29\xC0\x15\xC8\x12\x65\x53\x16\x02\x93\x90\xA5\xBF\xDE\x29\xB3\x40\x06\x00\xF3\x48\xBF\x1E\xFC\x16\xE0\x4C\x02\xF9\x20\x1A\x98\x89\xC8\xE4\xAA\x4D\xC8\xFD\xBD\x48\x57\xCD\xFB\xC3\x59\xE6\xCC\x8A\x73\x48\x2F\x8E\x4B\x90\x30\x8A\x35\xB9\x59\xA3\xD4\x63\x1E\xB2\xD6\xC6\xA6\x95\x3E\x8C\x40\xDC\xEB\x65\x15\xC8\x2C\xD2\x87\x3D\x7C\x95\x12\xC6\x04\x95\x9C\xE7\x91\x6E\x93\x4D\x78\xCE\x14\xE0\x9B\x6E\xCC\x31\xA7\x8C\x5D\xAC\xCF\x03\x3F\x4F\x79\xEC\x14\x64\x9E\x44\xF1\xC3\x08\x24\x43\xCA\xFE\x16\xC7\x4C\x44\x96\xF6\x7A\xA1\x6C\x02\x39\x80\xF4\x19\x35\x3E\x03\xCC\xCD\xD1\x16\x25\x1D\x43\x80\xFB\x30\x77\x03\xAF\x42\x62\xE9\xBC\x4C\xDA\x96\xA9\x8B\x35\x10\x19\xEC\xA5\xE1\xB3\xA8\x38\x42\xE1\xAF\xC8\xA4\xE0\x72\xC3\xFD\xB7\x46\x22\x1B\xBC\x50\x26\x81\x5C\x0A\x8C\x4D\x71\xDC\x54\xE0\x97\x39\xDB\xA2\x64\x63\x19\x22\x92\xB7\x0D\xF7\x3F\x19\xE9\x1E\x17\x4E\x59\xBA\x58\x47\x23\xB9\x98\x6C\xF9\x26\xB2\xE4\x53\x09\x93\x63\x90\xF4\xA6\x26\xAC\x43\x5E\x90\x85\x66\xA6\x2F\x43\x0B\xD2\x0F\x99\x95\xB5\xE5\x7A\x54\x1C\xA1\x73\x3B\xF0\x2D\xC3\x7D\xFB\x23\x19\x53\x0A\xA5\x0C\x2D\xC8\x0F\x80\xAF\x5B\x1E\xF3\x04\x12\xB4\xB8\x21\x7F\x73\x14\x07\xCC\x43\x26\x06\x4D\x38\x84\x02\xD7\xB7\x87\x2E\x90\xD1\x48\x5E\x29\x9B\x50\x85\xB7\x10\x6F\xD7\x73\x4E\x2C\x52\x5C\xB0\x23\x32\x47\xB2\xB5\xC1\xBE\x8F\x00\x1F\x77\x6B\x4E\x27\xA1\x77\xB1\xBE\x8D\x9D\x38\x40\x22\x72\x55\x1C\xE5\x62\x39\xB2\xF0\xCA\x84\x83\xC8\xBE\x36\xDE\x98\x90\x5B\x90\x7D\xB1\x5F\xDC\x7F\x27\x92\xAE\x46\x29\x27\x0B\x90\x4C\x97\x49\x2C\xC6\x6E\xB2\x31\x35\x21\xB7\x20\xB6\x0B\x6F\xDE\x06\xCE\x75\x61\x88\x52\x18\xA6\x21\x40\xFB\x21\x63\x11\xE7\x84\x2A\x90\xB1\xC0\x3F\x5A\x1E\x73\x29\x92\x18\x5A\x29\x2F\xF7\x21\x9E\x2D\x13\x0A\x79\x19\x86\x2A\x90\x2F\x62\x97\xD5\x6F\x25\xB2\x8A\x4D\x29\x3F\x17\x1B\xEE\x77\x0A\x52\x31\xD8\x29\x21\x0A\x64\x4B\xEC\x93\x2E\x5C\x86\xF9\xAC\xAC\x12\x36\xF3\x81\x87\x0D\xF7\x9D\xEC\xD2\x10\x08\x53\x20\xC7\x22\xCB\x68\x4D\x79\x03\x8F\xB1\x3A\x8A\x13\xAE\x30\xDC\xEF\x54\xA4\xB0\x90\x33\x42\x14\xC8\xA9\x96\xFB\xDF\x40\xF9\x93\x46\x2B\x9B\x72\x3B\x12\xD4\x98\xC4\x9E\x38\x2E\xA6\x1A\x9A\x40\x86\x21\x0B\x6B\x6C\xD0\x40\xC4\xC6\xE3\x4D\xCC\x33\x59\x1E\xE5\xD2\x90\xD0\x04\x72\x18\x22\x12\x53\x1E\x47\x12\x2F\x28\x8D\x87\x69\xD6\x7C\xA7\x93\x86\xA1\x09\xE4\x60\xCB\xFD\x1B\xBE\xCA\x6A\x13\x73\x1F\x66\x85\x77\xF6\x02\xB6\x75\x65\x44\x48\x02\xE9\x85\x7D\x12\x86\x86\xA9\x85\xA7\x74\xE3\x39\x24\xD3\x65\x12\x83\xB0\x4F\x52\x67\x4C\x48\x02\xD9\x09\xBB\x32\x05\xAF\x21\x51\xBB\x4A\x63\x52\x41\x02\x13\x4D\x18\xE7\xCA\x88\x90\x04\xB2\x3B\x76\xD5\x9F\x9E\xC6\xCC\xD3\xA1\x94\x17\xD3\x8A\xC0\xBB\xB9\x32\x20\x24\x81\xD8\xE6\xD5\x35\x5D\xD3\xAC\x94\x97\x97\x0C\xF7\xDB\x0D\xD8\xC6\x85\x01\x79\x97\x3F\xCE\xC2\x2E\x96\xFB\xE7\x35\x73\xBE\x19\xB2\x6A\xB1\x3F\x32\x8B\xDF\x07\x69\xDE\x7B\x55\xBF\xAE\x47\xD6\x98\x6C\x00\xDE\xCF\xE9\x9A\x8A\x19\x2B\xE9\xFC\x2C\xE2\x18\x83\x0C\xD4\x73\xCF\xE9\x1B\x92\x40\x76\xB4\xDC\xDF\xF6\x66\xEC\x80\x88\xF0\x23\xC8\x0D\xDD\x11\xC9\xD3\x34\x02\xA9\x1D\xDE\x07\x59\x7B\xB2\x39\x9B\x0A\xE4\x3D\x44\x1C\x6B\x11\xFF\xFC\xAB\x48\x06\xF2\x15\xC0\x8B\xC8\x5B\xEE\xCF\xE8\xEA\x45\x17\xAC\x47\xEE\x7F\xDF\x84\xFD\x86\x60\xB6\xD8\xCA\x9A\x90\x04\x62\x9B\xBB\x35\x2E\x01\x5C\x6F\x44\x04\x07\x21\xD9\xC2\xF7\x41\xEA\x81\x6F\x95\xD6\xB8\x18\xDE\x43\xBA\x7B\xCF\x20\x89\x97\x17\x00\x8B\x90\xB7\x9F\x92\x8D\xF7\x80\x8D\x24\x0B\xA4\x2F\xF9\xD6\xBC\xFF\x90\x50\x04\xD2\x0F\x79\x0B\x24\xB1\x0A\x09\x6B\x9F\x09\xFC\xAD\xCB\xDF\xB6\x40\x8A\x4C\x1E\x0E\x7C\x02\xF1\x6C\x24\xDD\xD8\x3C\xE8\x83\x88\x71\x0C\x52\x63\x1C\xE0\x75\x64\xDD\xF4\x83\xC8\x84\xD7\xF3\x05\xD8\xD1\xEC\x0C\x75\x71\xD2\x50\x04\xD2\x02\x0C\x4E\xD8\xA7\x1D\x49\xE0\xF0\x62\x97\xDF\x1F\x08\x9C\x80\xE4\x4E\xFA\x68\xFE\xA6\xA5\x62\x5B\x24\xD2\x34\x2A\x2D\xF6\x30\x52\x25\xF7\x36\xC4\x3D\xAD\xE4\x4F\x3F\x17\x27\x0D\x45\x20\x83\x90\xCC\x89\x3D\xF1\x2B\x24\x1B\xFB\xE2\x9A\xDF\x0D\x40\xEA\x9E\x4F\xC1\x6C\x89\xA6\x4F\x06\x22\x2D\xDB\x91\x48\x1A\xA2\xDB\x80\xEB\x80\xFB\x7D\x1A\x55\x12\x2A\x98\x97\x40\xD8\xD2\x85\x01\xA1\xB8\x79\x07\xD2\x7D\x81\xD4\x03\x48\x20\xDA\x69\x74\x8A\x63\x24\x70\x3E\xD2\xC7\xFF\x19\xE1\x8B\xA3\x2B\x5B\x23\xC9\xB7\xEF\x43\xEA\x29\x1E\xEB\xD5\x9A\xF0\xD9\x0C\xF3\x32\xDE\x4E\xC2\xDE\x43\x11\x48\xFF\x9A\xEF\x5F\x42\xAA\xA6\x1E\x4A\x67\x28\x49\x3F\x24\xC3\xC9\x13\x48\x6B\xE2\x6C\x62\xA8\x40\x8E\x47\x62\xC9\xEE\xC2\x3E\x82\xB9\x59\xE8\x8B\xF9\xCA\xD2\xF5\x2E\x0C\x08\x45\x20\x83\x11\x37\xE9\x45\x88\xC7\x69\x76\xCD\xDF\x4E\x47\x72\x26\x7D\x07\x47\xAE\x3C\xCF\x1C\x89\xBC\x08\x7E\x83\x64\x72\x51\x3A\xE9\x87\xF9\x30\x60\x9D\x0B\x03\x42\x11\xC8\x13\x48\xB2\xB7\x0B\xE9\xAC\x97\xBD\x17\xD2\x5F\xFF\x05\x12\x86\xD2\xE8\x9C\x80\x2C\x37\xBD\x90\x70\x3E\x17\xDF\xD8\xBC\x10\x1B\x5A\x20\xCB\x81\x27\x6B\x7E\x3E\x1F\x19\x77\x1C\xD7\xF3\xEE\x0D\xCB\x40\xE0\x7B\x48\x0D\x94\x56\xCF\xB6\x84\xC0\x68\xC3\xFD\x36\x02\xAF\xB8\x30\x20\x14\x81\x44\xEC\x8C\x74\x35\x2E\x21\x1C\x0F\x9B\x0F\xC6\x23\x03\xF9\xF3\xFC\x9A\xE1\x1D\xD3\xAC\x25\xAB\x71\x54\x5F\x3D\x24\x81\x4C\x42\x3C\x57\x27\xF8\x36\x24\x10\x06\x22\x93\xA2\xED\xD8\xA5\x40\x6A\x14\x7A\x63\x9E\x83\xF7\x15\x1C\xE5\x25\x08\x45\x20\x6D\xC8\x40\x75\x07\xDF\x86\x04\xC8\x59\xC8\x44\xE3\x28\xCF\x76\x14\x4D\x2B\xB0\xB7\xE1\xBE\xCF\xE0\xA8\x44\x5B\x08\x02\xB9\x00\xA9\x5A\xAB\xD4\xA7\x15\x79\x81\xEC\xEA\xDB\x90\x02\xB1\x49\xC6\xB0\x84\xEE\xA1\x47\xB9\xE0\x5B\x20\x17\xE0\xA1\x28\x4A\x49\x19\x8B\x8C\x4B\x6C\x56\x5D\x96\x19\x9B\x49\x54\x93\xA5\xB9\xA9\xF0\x99\xDD\xFD\x5C\xE0\x27\xBE\x2E\x5E\x62\x56\x02\x7F\x47\x63\x07\x40\xEE\x09\x3C\x65\xB8\xEF\x5A\xA4\x65\x75\x12\xE3\xE6\xAB\x05\x39\x09\x15\x47\x5A\x86\x23\x9E\xBE\xE1\xBE\x0D\x71\xC8\x67\x2C\xF6\x5D\x88\xC3\x00\x50\x1F\x02\x19\x0B\xDC\xE4\xE1\xBA\x8D\xC4\xEE\x48\xF6\x41\xDB\xE2\x42\x65\xA0\x1F\x70\xA6\xC5\xFE\x4E\x53\x3F\x15\x2D\x90\xCD\x91\xE2\x9A\xA6\x01\x68\x4A\x7D\x5A\x81\xAB\x7D\x1B\xE1\x80\x53\xB0\x5B\xFC\x94\xA6\xFA\xB1\x31\x45\x0B\xE4\xBB\x48\x48\x89\x92\x0F\xA7\x23\x75\xE0\x1B\x89\x73\x2C\xF6\x5D\x80\x79\xE6\x93\x54\x14\x29\x90\x83\x81\x7F\x2B\xF0\x7A\xCD\xC2\x15\x34\x8E\x67\xEB\x44\x64\x01\x9C\x29\xB3\x93\x77\xC9\x46\x51\x5E\xAC\xCD\x91\xD8\xAA\x46\xF9\x20\x43\xE3\x01\x64\x79\x40\xD9\x79\x0C\xF3\x6C\xED\x6B\x91\xF1\xEC\xEB\xEE\xCC\x29\xAE\x05\x99\x8A\x8A\xC3\x25\x87\x20\x55\xB9\xCA\xCC\xC9\xD8\x95\x32\xF8\x15\x8E\xC5\x01\xC5\xB4\x20\xC3\x90\x5A\xE7\x8D\xB8\x96\x23\x24\xDE\x44\xA2\x5F\xDF\xF2\x6D\x48\x0A\x06\x20\x3D\x8C\xB1\x86\xFB\x57\x80\x3D\x90\xE7\xCA\x29\x45\xB4\x20\x67\xA3\xE2\x28\x82\x61\x48\xDC\x56\x19\xF9\x0A\xE6\xE2\x00\x29\xF7\xED\x5C\x1C\xE0\xBE\x05\xE9\x87\x64\x21\x19\xE9\xF2\x22\xCA\x87\xFC\x05\x79\xB3\x96\xA9\xE2\xD6\x28\x24\xD8\xD0\x26\xE9\xC2\x04\x64\xCD\x8C\x73\x5C\xB7\x20\x93\x51\x71\x14\xC9\x08\xEC\x66\xA1\x43\xE0\x0A\xEC\xC4\x71\x23\x05\x89\x03\xDC\x0B\xE4\x74\xC7\xE7\x57\xBA\x63\x5B\x21\xD8\x27\xA7\x61\x5F\x42\xED\x5B\x2E\x0C\xA9\x87\x4B\x81\x8C\x44\x32\x1C\x2A\xC5\x72\x28\xE6\xEB\x28\x7C\x32\x1A\xFB\xEA\xC4\x3F\xA4\xE0\x20\x4D\x97\x02\x39\x1C\x47\xD9\xEE\x94\x44\x8E\xF4\x6D\x80\x01\x57\x91\x9C\x4D\xB3\x96\x95\xC0\x7F\x38\xB2\xA5\x2E\x2E\x05\x32\xCE\xE1\xB9\x95\x78\x0E\xF3\x6D\x40\x02\xE7\x62\x6F\xE3\x97\xF1\xE0\xC2\x76\x25\x90\xC1\x68\x56\x0E\x9F\xB4\xE2\x26\x93\x7D\x1E\xEC\x8D\xAC\xB5\xB7\x61\x4E\x75\x2B\x1C\x57\x02\xD9\x0E\x3B\xBF\xB6\x92\x2F\xC3\xB1\x2F\x48\x54\x14\x97\x62\xF7\xDC\xBD\x03\x7C\xCD\x91\x2D\x89\xB8\x12\xC8\x70\x74\x72\xD0\x27\xBD\x09\x33\xC9\xC3\x29\xC0\x11\x96\xC7\x9C\x83\xA3\x94\x3E\x26\xB8\x12\xC8\x8E\x38\xCA\xB6\xAD\x18\xB3\xB3\x6F\x03\x7A\xE0\x5F\x2D\xF7\xBF\x0B\xB8\xD6\x81\x1D\xC6\xB8\x12\xC8\x20\x47\xE7\x55\xCC\x71\x52\x50\x26\x03\xBB\x62\x17\xCA\xFE\x01\x1E\xBB\x56\x11\xAE\x04\x62\x53\xCE\x59\x71\x43\xBD\x7A\x2B\xBE\x38\x1A\xBB\x95\xA4\x97\xE0\x30\x5B\x89\x29\xAE\x04\xD2\xCC\x69\x43\x43\x21\xB4\x56\x7C\x7F\x8B\x7D\xDF\x42\xCA\xEC\x79\xC7\x95\x40\xB4\x5C\xB2\x7F\x9C\x14\x94\xC9\x80\x8D\x57\xB3\x1D\xE8\x70\x65\x88\x0D\xAE\x04\xE2\xA4\x98\x89\x62\x45\x48\x65\xA9\x07\x61\x9E\xA6\x68\x03\x70\xB9\x43\x5B\xAC\x70\x25\x90\x0E\xCC\x6B\xCB\x29\x6E\x08\xE9\x25\x35\x08\xF3\xB0\xA3\xDF\x23\x55\xC6\x82\xC0\x95\x40\x5E\x47\x6A\x36\x28\xFE\x08\xA9\x4E\xFB\x16\x98\x8F\x4B\xE7\xB9\x34\xC4\x16\x57\x02\x79\x95\x02\xD6\x0B\x2B\xB1\x38\x29\x28\x93\x12\xD3\x6A\xB5\x15\xA4\x40\x6B\x30\xB8\x12\xC8\x32\x02\x70\xD1\x35\x39\x21\x09\xE4\x3D\xCC\x1C\x37\x6B\x80\x17\xDC\x9A\x62\x87\xCB\x41\xFA\x1F\x1D\x9D\x5B\x49\x66\x35\x9B\x96\xB4\xF3\xCD\x5F\x91\x98\xAA\x24\x96\x13\x58\xCF\xC3\x65\xB8\xFB\x23\x0E\xCF\xAD\xC4\xF3\x3C\x8E\x0A\xCA\xA4\x64\x3D\x66\x6E\xDB\x37\x09\xCC\xB9\xE3\x5A\x20\x65\x4C\x41\xD3\x08\x3C\xE8\xDB\x80\x1E\x58\x6E\xB0\x4F\x70\xCF\x8B\x4B\x81\xAC\x06\x7E\xE7\xF0\xFC\x4A\x7D\x6E\xF6\x6D\x40\x0F\x98\x8C\x2D\x42\x72\x4D\x03\xEE\x93\x36\x5C\xE7\xF8\xFC\x4A\x77\x9E\x21\x9B\x27\x68\x18\x52\xA0\xE7\x3C\xA4\x0E\xC9\x7D\xE4\x93\x08\xC2\xA4\x05\x71\x52\x46\x2D\x0B\xAE\x63\xA6\xEE\x42\xB2\x6F\xEF\xE1\xF8\x3A\x4A\x27\xB3\x31\xF3\x18\xF5\x47\x16\xB6\xED\x8C\x2C\xAE\xDA\x13\x59\xED\x37\x86\xEE\xE5\x07\x0E\x45\xD2\xC7\xCE\x40\x3E\xD3\x34\xBC\x6C\xB0\xCF\xBB\x29\xCF\xED\x8C\x22\x82\x0A\x2F\x01\xAE\x29\xE0\x3A\x8A\xF4\xE1\x7B\x6A\xB5\x77\xA9\x6E\xBB\x23\x82\x18\x53\xFD\x79\x27\xCC\x67\xB8\x3F\x59\xDD\x6E\x47\xB2\x8B\xDC\x6B\x69\xDB\xB3\x88\x00\xFA\x5A\x1E\xE7\x95\x22\x72\xF3\x6E\x09\x3C\x0E\xEC\xE6\xFA\x42\x0A\x3F\x02\xCE\xEF\xF2\xBB\x99\xC0\x97\xC8\x7F\x09\xC2\x2F\xAA\xD7\x7B\xC2\x70\xFF\x5E\x48\x35\xDA\xB8\x94\x44\xD7\x01\x67\x64\x33\x2B\x5F\x8A\xC8\xCD\xBB\x01\xF8\x7A\x01\xD7\x69\x76\xD6\x22\x5D\xA0\x5A\x8E\x00\xBE\x81\x9B\xF5\x39\x9F\x43\x12\x4E\xFF\x37\xD2\x22\x25\x51\x21\x59\x4C\xFD\xB3\x1A\x95\x37\x45\x95\x3F\xB8\x0D\x98\x5F\xD0\xB5\x9A\x95\x1F\x00\xAB\x6A\x7E\xEE\x0D\x5C\xE4\xF8\x9A\xBD\x91\xE4\xE4\x0B\xAA\xD7\x4F\x2A\x9D\xF6\x58\xC2\xDF\x83\x5B\x68\x57\x64\x85\xA9\xB3\x09\x6C\x12\xA8\x81\x78\x9A\xEE\x0B\x8C\xCE\x42\x92\x3C\x17\xC1\x50\xA4\x97\xB0\x00\xB8\x80\xFA\xAB\x19\x17\x26\x9C\x67\x48\x9E\x46\xE5\x41\x91\x02\x79\x12\xA9\x51\xA8\xE4\xCF\x17\x91\x78\xA7\x88\xED\x11\xE7\x48\xD1\x6C\x07\x7C\x1F\xF9\xAC\xBF\x44\xF7\x01\xF9\x12\xE2\xBD\x59\x23\x81\x3E\x6E\x4C\x4B\x47\xD1\x45\x3C\x67\xE2\xB8\xE8\x62\x13\x72\x31\xDD\xBB\xAF\x3F\xC5\xEF\x92\xDB\x51\x55\x1B\x1E\x46\x12\x54\x47\xCF\xD9\x5A\xE2\xE7\x68\xB6\x06\xB6\x75\x6A\x99\x25\x45\x0B\x64\x03\xE5\x2F\x15\x16\x12\x8F\xD0\xBD\x30\xEA\x59\xC0\x49\x29\xCE\xF5\x3E\xF0\x28\x70\x25\xC9\x5D\x21\x53\xF6\x07\x6E\x00\x1E\xA2\x73\xB2\xF1\x96\x98\xFD\x07\x13\x98\xB7\xD3\x47\x72\x85\x07\x91\x41\xFB\xF1\x1E\xAE\xDD\x48\x2C\xA3\x7B\x2D\x90\x03\x90\x37\xB7\x29\x2F\x23\x05\x40\xE7\x23\xE2\x88\xBC\x4C\xBD\x81\x4F\x03\xFF\x04\x9C\x40\xF6\xF5\xED\x13\xAA\xDB\x29\x48\x12\xB8\x8D\xC8\x22\xAA\x9E\xD8\x07\xB8\x27\xE3\xF5\x72\xA3\xA8\x2A\xB7\x5D\x99\x80\x46\xFB\x66\x61\x1D\x32\xBB\x5D\xFB\xA6\xDF\x01\xE9\xE3\xD7\xCB\x87\xB5\x11\xF8\x3F\x24\x14\x65\x21\x22\x88\x25\x24\x57\xA3\xFA\x38\x52\xE7\xE5\x54\xF2\xCB\x96\xF9\x01\xF5\x7B\x2F\xD7\x13\x50\x5D\x19\x5F\x02\x01\xB8\x1B\x98\xE4\xEB\xE2\x25\xE7\x28\xE4\xFE\x45\x0C\x45\xDE\xBA\xFB\x03\xAF\x21\xA1\xEE\xCB\xAB\xDB\x73\xC0\x52\xA4\x14\xDE\x4B\xA4\x4F\xE6\x30\x12\x79\x70\x4F\xC7\x6D\xC5\xE2\xE7\x90\xCA\x00\x41\x24\x9D\xF0\x29\x90\x33\xD0\x10\x14\x5B\xD6\x20\x83\xDE\x3B\xBA\xFC\x7E\x04\x12\x60\xF8\x02\xD2\x85\xE9\x40\xDE\xD2\x2E\xE8\x83\x74\x8F\xCF\x00\x8E\x73\x70\xFE\x0F\x80\xFD\x30\x9F\xA1\x77\x8A\x4F\x81\xEC\x84\xC4\xE7\x68\x91\x1D\x33\x3A\x80\x13\x09\x6B\xAD\xC7\x04\xE0\xF3\x48\xF7\x2B\xCF\x54\xA7\xE7\x20\x33\xF4\xDE\x29\xDA\x8B\x55\xCB\x32\xA4\x0F\xAC\x24\x33\x1F\xD8\x97\xB0\xC4\x01\x32\x8E\x99\x8A\xC4\x57\x9D\x0F\x3C\x95\xD3\x79\x3F\x95\xD3\x79\x32\xE3\x53\x20\x20\xFD\x4D\x25\x9E\x6B\x80\x63\x30\x5B\x4F\xE1\x8B\x57\x91\xC0\xC5\x8F\x21\xEE\xDC\xDF\x66\x3C\xDF\x01\x04\x92\x5B\xD8\xB7\x40\x96\x79\xBE\x7E\xC8\xBC\x8D\xCC\x19\x4D\xA9\x7E\x5F\x06\x36\x20\x65\x9A\x8F\x07\x0E\x42\x8A\x74\xA6\xA9\xD9\xBE\x0D\x81\x14\x80\xF5\x2D\x90\x35\x9E\xAF\x1F\x2A\xBF\x41\x3C\x39\xB3\x3C\xDB\x91\x85\x47\x91\xF8\xBB\x7D\x91\x88\xE2\xC5\x96\xC7\x9F\x98\xBB\x45\x29\xF0\x2D\x10\xCD\xBE\xB8\x29\x2F\x21\x2D\xC6\x49\x88\x6B\xB6\x11\x58\x81\xC4\x85\x1D\x88\x4C\x3C\xDE\x1D\xBF\xFB\x87\x1C\x4B\x00\xE1\xEF\xBE\x05\x62\x53\x06\xB8\x91\x79\x1B\x09\x17\x1F\x47\xE3\xBA\xBE\x37\x22\x61\x27\x47\x21\xF3\x35\x97\x03\x6F\xC4\xEC\xBF\x13\x52\x53\xC4\x2B\xBE\x05\xD2\xEC\x75\x0C\xD7\x02\x3F\x41\xAA\xD2\x4E\x23\xC0\xB4\x37\x8E\x58\x8C\x44\xFB\x8E\x43\xCA\xB2\xD5\x0B\x60\x3C\xAD\x28\x83\xEA\xE1\x73\x1E\x04\x60\x2E\xE2\x43\x6F\x36\x5E\x46\xDE\xA6\xD7\x21\x49\xDE\x9A\x9D\x3E\x48\x97\xEA\x2C\x36\x75\xF1\xBE\x8B\xAC\x9D\xF7\x56\xC4\xD3\xB7\x40\x16\xD2\x3C\xF5\xD4\xD7\x21\xF3\x19\x73\x11\x4F\x4F\x59\x3C\x53\x45\xB3\x07\xF0\x59\xE0\x4C\x24\x42\x60\x36\xB2\xBC\xD7\x0B\x3E\x05\x32\x04\x79\x7B\x9A\x16\x56\x31\xA1\x03\x19\xDC\xEE\x45\x18\xD9\x33\xD6\x03\xF7\x23\xC2\xF8\x35\x9A\xD0\xDB\x86\xE1\xC0\x17\x90\x6E\xD8\x59\x48\x7E\xDF\xC2\xF1\x29\x90\x4F\x90\xDF\x3A\xF5\x65\x48\x97\xA5\x1D\x69\x8E\x77\x06\xC6\x03\x87\x54\xBF\x8E\xA2\x98\xF1\xCE\x3A\x24\x62\x76\x31\x12\x2F\xF5\x07\xE0\xCF\x05\x5C\xB7\xD1\xE9\x8F\xDC\xDB\xC2\xF1\x29\x90\x2F\x03\x97\x65\x3C\xC7\x43\xC0\xD5\x48\xAA\xCD\xB8\x01\xEE\x76\x48\xD3\xBD\x27\xD2\xBA\x8C\x45\xC2\xC3\xB7\x21\x9D\x27\x6D\x03\xD2\x5A\x2D\x47\x04\xF0\x14\x12\x5C\xF7\x34\x22\x10\xA5\x41\xF0\x59\x8D\xF6\xA0\x94\xC7\xFD\x0D\xB8\x09\xC9\xCB\x74\xBB\xE1\x31\xAF\x56\xB7\xDA\xEA\x45\x03\x90\x34\x9B\xA3\x90\xD6\x65\xAB\x9A\x6D\x33\x3A\x13\x4C\xF4\x42\xBA\x4A\x6F\x22\x13\x9B\x1D\x48\x2B\xF5\x0A\x22\xCA\xE0\xD2\x65\x2A\xF9\xE1\xAB\x05\x19\x80\xC4\x61\x25\xA5\x89\xA9\x65\x05\xB2\x98\xE6\x5A\x34\x86\x4B\x29\x08\x5F\x2D\xC8\x81\x98\x8B\xE3\x21\xC4\x93\x71\x23\x1A\x9A\xA2\x14\x8C\x2F\x81\x1C\x95\xF0\xF7\xF7\x81\x5B\x91\xF1\xC5\x9D\xB8\x5B\xFC\xA3\x28\xB1\xF8\x12\xC8\xB1\x75\x7E\xBF\x02\xE9\x42\xCD\x46\x27\xD0\x94\x00\xF0\x21\x90\x7D\x11\x6F\x52\x2D\xF3\x11\x51\xCC\x41\xBB\x51\x4A\x40\xF8\x10\xC8\x79\xD5\xAF\xEB\x91\xB0\xEE\x2B\x91\xE2\xF1\x8A\x12\x1C\x45\x7B\xB1\x06\x23\x63\x8B\xFB\x91\x16\x43\xE7\x0C\x94\xA0\xF1\x1D\x8B\xA5\x28\x41\xE3\x3B\xDC\x5D\x51\x82\x46\x05\xA2\x28\x31\xA8\x40\x14\x25\x06\x15\x88\xA2\xC4\xE0\x33\x58\x51\xC9\xCE\x68\x60\x22\xD0\x82\x2C\x3C\x6B\xA9\xF9\xDB\x22\x24\xB0\x72\x51\xCD\xF7\x8A\x2D\x95\x4A\x25\xCD\x36\xB1\x92\x4C\xD2\x39\x5A\x0D\xCE\x51\xA9\x54\x2A\x6D\x19\xAF\x99\x87\xAD\x45\xDC\x0F\xD3\xAD\xA5\x52\xA9\x4C\xAB\x54\x2A\x2F\x1A\x5C\xB3\x96\x85\x15\xB9\x97\x2D\x39\x5C\x7F\x75\xC2\xB5\xEE\xA9\x73\xEC\x8C\x84\xE3\x56\xA7\xB4\x6F\x9A\xC1\x79\x47\xA7\xF9\x7F\x7D\x75\xB1\x46\x63\x56\x03\x62\x26\xB2\x08\x4A\x11\x26\x23\x59\xDA\x67\x20\xF7\xD0\x86\x56\x24\xCF\xD6\x8B\x48\x82\x88\x2C\x36\xB4\x24\xEC\x33\x91\x9E\xED\x9B\x49\x7C\x3A\xA3\x16\xBA\x57\xEA\x4D\x62\x34\xC9\xFF\x4F\xD2\x75\xEB\xE2\x43\x20\x2D\x48\x48\x49\xD2\x4D\x9E\x0B\x4C\x77\x6F\x4E\x69\x98\x81\xD9\x7D\x4B\x22\x7A\x08\xD3\xE6\x03\x98\x9C\x61\xBF\x0E\x92\x3F\xD3\x36\x44\x60\xA6\xCC\x22\xFE\x9E\x2C\xA2\x7B\x81\x53\x63\x7C\x08\x64\x16\xC9\x1F\xCC\x22\x24\x29\xB2\x22\x4C\x23\xDB\x5B\xBF\x27\x5A\x91\x56\xDC\x46\x24\xD1\x98\xC7\x84\xB6\x3A\xBF\x9F\x5B\xDD\xE2\x30\xCD\x28\x69\x22\xA6\x4C\xCF\x51\xD1\x02\x99\x45\xF2\x1B\xA8\x03\x29\x2D\xA6\x83\x4A\xA1\x15\xFB\x6E\x87\x29\x2D\xD8\x89\xA4\xDE\x43\xDF\x13\x71\x62\x9A\x4A\xFC\xE7\x6B\xD2\x6D\x32\xE9\x8E\xCD\x24\xBE\x68\x68\x22\x45\x0A\xA4\x0D\xB3\x1B\x3C\x89\xC6\x49\xBB\x99\x07\x36\x0F\x65\x1A\x22\x0F\x98\x09\xA6\xDD\xAB\xA4\xFD\x3B\x48\xEE\xF6\xCC\x20\xDE\xAE\x19\xC4\x77\xAD\x96\x1A\x5C\x23\x91\xA2\x04\x32\x11\xB3\x66\x73\x2A\x19\x15\xDF\x80\x98\x08\xA4\x03\x59\x6F\x3F\xBD\xBA\xB5\xB3\xE9\xFA\xFB\xB8\xE3\x26\x61\xE6\x08\x99\x8C\xBD\x63\x20\x6E\x40\x3F\x93\x64\x1B\xEB\xB5\x10\x13\x49\xBE\x2F\x49\xAD\x94\x19\x69\x5C\x5F\x15\x3B\xB7\x66\x6B\x25\xD9\x2D\x58\xA9\x88\x0B\xD0\x85\x2B\xB5\xCC\x6E\x5E\x13\x57\xF8\xAC\x4A\xBC\x6B\xB4\xAD\x22\x6E\xD7\xAE\x2C\xAC\x9E\xDF\xD4\x96\x59\x06\xB6\xF4\x44\xE4\xA6\x4F\xFB\xFF\x4D\xEB\x72\x4C\x4B\x25\xD9\xC5\x3D\x27\xE6\x9A\x41\xB9\x79\x5B\x48\xF6\x32\x80\x7A\xAC\xEA\x61\xE2\xB1\x4A\x7A\x53\xB6\x23\xAD\xC4\x24\x3A\x5B\xE7\x79\x5D\x7E\x36\xB1\x23\x6D\x57\x2F\xAE\x5B\xB6\x88\xE4\xCF\x7D\x1A\x9B\xDE\x87\x36\xE2\x5B\xB2\x0E\x72\x74\xF0\xB8\x16\xC8\x1C\xD4\x63\x95\x05\x93\xB1\x98\xE9\x83\x1B\x89\x62\x7A\xF5\xAB\x4D\xF7\xC3\x76\xEC\x51\x4B\xBD\x39\x91\x88\x76\x92\xE7\x46\xA2\xEE\xB9\x89\xC3\x62\x26\x39\x3A\x78\x5C\x0A\x64\x16\xC9\x2E\x38\xF5\x58\xC5\xB3\x94\xE4\x7B\x33\x0B\xF1\x44\x4D\xA3\x33\xEC\xA4\x1E\x26\x83\xE3\x9E\xC8\xEA\x28\x88\x3B\xDE\xE4\x8D\x3F\xB9\xBA\x25\x89\x63\x1E\x39\x0C\xCC\x6B\x71\x29\x10\xF5\x58\xE5\x83\xC9\x60\x7B\x22\xF2\xF0\xDC\x83\x94\x3C\xAB\x20\x33\xE6\xB5\xC2\x49\xCB\x68\xCC\x7A\x01\x71\x24\xB5\x40\xF3\x48\x76\x14\xCC\x21\xF9\xFF\xC8\xBD\x9B\xEE\x33\x9A\x57\x3D\x56\x66\xA4\x0D\xB5\x89\xE6\x21\x22\xE1\x54\x30\x7B\xC8\xBA\x92\xF4\xA2\x8B\x7A\x01\x49\xB6\x24\x89\x64\x3A\xD9\x7A\x12\xD3\x71\xF0\x3C\xF9\x12\x88\xC6\x58\x99\x63\xF2\x76\x35\x65\x32\x22\x96\x17\xC9\x3E\x23\x1E\x11\x8D\x21\x92\x1E\x4E\x93\xEE\x76\xDA\x16\x20\x97\x39\x8F\x9E\xF0\x21\x90\xA5\xA8\xC7\xCA\x96\xA9\xE4\xFB\x42\x89\x82\x45\x93\xFA\xF4\x26\x81\x89\x51\xD8\x48\x92\x7D\x6D\x06\xE7\x32\x9D\xBF\xE9\x8A\x33\x27\x8F\x0F\x81\x98\x84\x11\x28\xDD\x99\x8A\x74\x65\xF2\x1C\xB3\x4D\x23\x5E\x24\x49\xDD\xA2\x68\xAD\x09\x24\xC7\x57\x99\x9C\x0F\xEC\x1F\xF6\xB4\xA2\x32\xC2\x57\x17\x6B\x06\xD9\x5C\x87\xCD\xCA\x5C\x60\x0C\xF9\x8E\xDF\xEA\x0D\xE2\x5B\x48\xFE\x8C\x6A\x5B\x8D\x0E\x92\x45\x62\xE2\xB8\xB1\xE9\x61\x64\xE9\x96\x19\xE1\x73\x90\x6E\x12\xD5\xAB\xF4\x4C\x3B\x52\x18\x28\x12\x4B\x3B\xD9\x04\xD3\xD3\x83\x6B\xF2\x30\x77\x15\x44\x92\x40\x5A\x31\x0B\x57\x31\x0D\x32\xCC\x3A\xB0\x4F\xC4\xE5\x92\xDB\x76\xE2\x6F\x72\xB4\x2E\x64\x3C\x3A\x0F\x92\x96\xA5\x74\xEF\xFB\x8F\xEE\xB2\x4D\x24\xF9\x45\xD4\x53\x4B\x91\xD4\x7A\x2C\x25\xDD\xFC\x48\x1B\x66\x6F\xFD\x99\xC8\xF3\x11\x87\x73\x47\x8F\x4B\x81\x4C\x47\x3E\x98\xB8\x0F\x27\x1A\x2C\x8E\x77\x68\x47\x23\x32\x91\xFA\xFD\xEE\xA5\x74\x1F\xA7\xB4\x91\x1C\x2C\xDA\x4A\xE7\x5B\x3B\xE9\x73\x03\xF9\xEC\xD2\x84\xE1\x9B\x0A\x24\x88\x97\xA6\xCB\x2E\x56\x14\x29\x9A\xF4\x8F\x46\x4B\x41\x15\x33\xA2\x99\xF3\x85\x98\x47\xD7\x9A\xBC\x69\x6B\x3D\x4C\x2E\xC7\x87\x26\x63\x9B\x60\x70\x9D\xD5\x24\x12\xC9\x3D\xC4\xBB\xF8\xDA\x70\xE8\xCB\x36\x20\x8D\x57\x6D\x2E\x76\x1E\xA5\xAC\xD7\x88\xBA\xA4\xD1\x80\xBA\x15\x99\xCF\x68\x27\x79\x0C\x62\x7B\x6D\xD7\x6B\x50\x26\x63\xE6\xF5\xF2\x4E\x11\x69\x7F\xA2\x88\xCD\xA4\x56\x62\x06\xF2\x30\xF8\xB8\x71\x69\xBA\x0A\x8B\xB0\x13\x48\x96\x6B\x44\xAD\x6C\x4F\xDD\x9E\x68\x21\x5A\x34\x59\x57\x2B\x94\xE8\x6D\x6D\xD2\xD2\x44\xC7\x99\xCC\x57\x64\x25\x9A\x5F\x09\xA2\x1B\x15\x47\x51\x79\xB1\xDA\x31\x5B\x22\x39\x0B\xB3\x59\xD9\x66\x62\x22\x66\xC9\x1A\xA2\x41\x79\x9A\xEE\xCB\x3C\x3A\x1F\xD6\x2C\x71\x5B\x36\xB4\xE1\xAF\xC7\x60\x4C\x91\x6E\x5E\x93\xF0\x12\xD3\x8C\x27\xCD\x86\xEB\xFB\x11\x7D\x2E\x69\x05\x96\x86\x52\x8C\x43\x8A\x9E\x07\x31\x09\x28\x33\xCD\x99\xD5\x2C\xCC\xC3\xED\x7A\x99\x76\x3A\xBB\xB5\x26\x09\x35\x86\x22\xA5\xB1\x93\xB6\x49\x09\xE7\x32\xF1\x94\x79\xA7\x68\x81\xA8\x67\x2B\x1D\xD1\xC4\x60\xDE\x4B\x03\xDA\xD9\x54\x7C\x49\x83\xF3\xB9\x98\x8F\x1B\xE6\x91\x6C\x6F\xF0\xAD\x88\x8F\x99\x74\x53\x91\xB4\xA1\x31\x5B\xB5\x2C\x42\x44\x92\x57\x68\xC5\x74\x36\x15\x87\xC9\x2C\xB7\xED\xC4\x9C\x49\x00\x63\xD0\xF8\x0A\x35\x31\x59\x8B\x0C\x1A\xB3\xD5\x95\x68\x45\xE0\x50\xE4\xFE\xD9\xB6\x28\x1D\xC8\x43\x3B\x86\xEE\x03\xE4\xA4\x87\x35\x8D\xF3\x24\xC9\x23\x99\x65\xAD\x7B\x21\x68\x09\xB6\xF2\x13\x85\x93\xD4\x5B\xF9\x17\x65\x78\xF7\xE5\x42\x2F\x35\x2A\x10\x45\x89\x41\x0B\xE8\x28\x4A\x0C\x2A\x10\x45\x89\x41\x05\xA2\x28\x31\xA8\x40\x14\x25\x06\x15\x88\xA2\xC4\xA0\x02\x51\x94\x18\x54\x20\x8A\x12\x83\x0A\x44\x51\x62\x50\x81\x28\x4A\x0C\x2A\x10\x45\x89\x41\x05\xA2\x28\x31\xFC\x3F\x0A\x00\xEF\x12\x6A\x59\xC5\x19\x00\x00\x00\x00\x49\x45\x4E\x44\xAE\x42\x60\x82"