diff --git a/.gitignore b/.gitignore index 9491a2f..2ef9cb1 100644 --- a/.gitignore +++ b/.gitignore @@ -360,4 +360,6 @@ MigrationBackup/ .ionide/ # Fody - auto-generated XML schema -FodyWeavers.xsd \ No newline at end of file +FodyWeavers.xsd + +enc_temp_folder/ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..eada14b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,21 @@ +[submodule "cheat-base/vendor/simpleIni"] + path = cheat-base/vendor/simpleIni + url = https://github.com/brofield/simpleini.git +[submodule "cheat-base/vendor/fmt"] + path = cheat-base/vendor/fmt + url = https://github.com/fmtlib/fmt.git +[submodule "cheat-base/vendor/magic_enum"] + path = cheat-base/vendor/magic_enum + url = https://github.com/Neargye/magic_enum.git +[submodule "cheat-library/vendor/protobuf"] + path = cheat-library/vendor/protobuf + url = https://github.com/protocolbuffers/protobuf.git +[submodule "cheat-library/vendor/json"] + path = cheat-base/vendor/json + url = https://github.com/nlohmann/json.git +[submodule "cheat-base/vendor/stb"] + path = cheat-base/vendor/stb + url = https://github.com/nothings/stb.git +[submodule "cheat-base/vendor/imgui"] + path = cheat-base/vendor/imgui + url = https://github.com/CallowBlack/imgui-brightness-fix.git diff --git a/README.md b/README.md new file mode 100644 index 0000000..f4f776a --- /dev/null +++ b/README.md @@ -0,0 +1,137 @@ +

Akebi GC

+The great software for some game that exploiting anime girls (and boys). +
+ +

Getting Started

+ +### Building from source +It is reccomended to use [Visual Studio 2022.](https://visualstudio.microsoft.com/) +As well as setting up **`cheat-library`** as startup project. +**The following is a recommended procedure, but others may be used.** +1. Clone repository with `git clone --recurse-submodules https://github.com/Akebi-Group/Akebi-GC.git` +1. Open `Akebi-GC/akebi-gc.sln` +1. Build solution `akebi-gc.sln`. + +### Release +1. Head over to the releases page +1. Download the latest binaries + +### Usage +(1-2 are optional if you didn't build from source) +1. Open `/bin` +1. Open Compiled version (debug, release) + + +1. Insure that `CLibrary.dll` is in the same folder that `injector.exe`. +1. Run `injector.exe`. + +

Features

+ +#### General +- Protection Bypass +- In-Game GUI +- Hotkeys + +#### Player +- God Mode +- Unlimited Stamina +- Dumb Enemies (Enemies don't attack) +- Player +- Multiply Attacks +- No Cooldown Skill/Ultimate +- No Cooldown Sprint + +#### World +- Auto Loot +- Auto Talk +- Killaura +- Auto Tree Farm +- Mob Vacuum +- Auto Fish + +#### Teleport +- Chest/Oculi Teleport (Teleports to nearest) +- Map Teleport (Teleport to mark on map) + +#### Visuals +- ESP +- Interactive Map +- Elemental Sight + +#### Debugging +- Entity List +- Position Info +- FPS Graph +- Packet Sniffer + + +

Demo

+ +
+ Map Teleportation + +
+
+ Noclip + +
+
+ TP to Oculi + +
+
+ TP to Chests + +
+
+ Rapid Fire + +
+
+ Auto Talk + +
+ +

Roadmap

+ +- [ ] Cutscene Skipping +- [ ] Create database for chests, oculi, etc. + +

Contributing

+ +## Adding a feature +1. Fork the Project +1. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) +1. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) +1. Push to the Branch (`git push origin feature/AmazingFeature`) +1. Open a Pull Request + +## Suggestions + +Open an issue with the title of the suggesstion you want to make. +In the description, make sure it is descriptive enough so our devs can understand what you want and how you want it. + +## Bugs +Welcome to the short explanation for bug reporting, as well as the bug report template. + +1. Find a bug and write down what happened, as well as your first thoughts on what you think caused it. + +2. Try to reproduce the bug. For this you need to understand what actually happened, leading up to the bug and when the actual bug happened. To make sure you get all this information correctly taking various forms of documentations, such as video, screenshots etc is essential. These steps makes it a lot easier to try and figure out what actually happened. Try to replicate the scenario where the bug appeared, as close to the original as possible. What we would recommend for this step is using the bug reporting template which can be found on page 2 and simply adding the information you have / find in there. + +3. can it be reproduced? Yes or no. If yes: Explain in as much detail as possible what happens when the bug occurs and why it occurs. Try and explain it as cleanly and as concise as possible to make sure that the coders don’t have to read an essay to understand what could be a simple bug with a simple fix. For this, remember that information is very subjective so it is much better to over communicate than to risk confusion. If no: Try to provide as much information about the bug as possible, so that the testers will be able to replicate the scenario in which the bug occurred more easily so we can try to reproduce the bug. + +4. Tell us which version you are using. Otherwise we would be getting bug reports on the same issue, that has been infact fixed in the latest commits. copy the SHA / Version Number of the latest commit when you built the mod. For example: `bd17a00ec388f3b93624280cde9e1c66e740edf9` / Release 0.7 + +Notes: Please remember to always record your testing sessions on your local hard drive and then upload them unlisted to youtube to conserve memory space on your computer and to give us easy access to your replays. This is to ensure that the optimal amount of documentation is available for the bug testers and coders to use as a guideline for either replicating scenarios, reproducing bugs or fixing them. + +TL:DR Record all your stuff while playing the mod and report any bugs to the issues section of this repository. + +### Bug reporting template +Title: e.g. “Instantly kill enemy with Shackles“ +Description: “Game crashed if x, y, z“ + +-- Footer -- +Date Occured: 5 / 3 / 2022 +Is it reproducible: Yes / Occasionally / No +Latest Commit used: `bd17a00ec388f3b93624280cde9e1c66e740edf9` +Release Version: 0.7 diff --git a/akebi-gc.sln b/akebi-gc.sln new file mode 100644 index 0000000..1915763 --- /dev/null +++ b/akebi-gc.sln @@ -0,0 +1,65 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.32014.148 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "injector", "injector\injector.vcxproj", "{F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cheat-base", "cheat-base\cheat-base.vcxproj", "{ADB35022-823B-4DC0-B495-3EFEFBD3A82F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cheat-library", "cheat-library\cheat-library.vcxproj", "{CE178784-CB96-45CA-AE16-FC0DA1126970}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release_WithScanner|x64 = Release_WithScanner|x64 + Release_WithScanner|x86 = Release_WithScanner|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug|x64.ActiveCfg = Debug|x64 + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug|x64.Build.0 = Debug|x64 + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug|x86.ActiveCfg = Debug|x64 + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug|x86.Build.0 = Debug|x64 + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release_WithScanner|x64.ActiveCfg = Release_WS|x64 + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release_WithScanner|x64.Build.0 = Release_WS|x64 + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release_WithScanner|x86.ActiveCfg = Release_WithScanner|x64 + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release_WithScanner|x86.Build.0 = Release_WithScanner|x64 + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release|x64.ActiveCfg = Release|x64 + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release|x64.Build.0 = Release|x64 + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release|x86.ActiveCfg = Release|x64 + {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release|x86.Build.0 = Release|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Debug|x64.ActiveCfg = Debug|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Debug|x64.Build.0 = Debug|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Debug|x86.ActiveCfg = Debug|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Debug|x86.Build.0 = Debug|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Release_WithScanner|x64.ActiveCfg = Release_WS|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Release_WithScanner|x64.Build.0 = Release_WS|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Release_WithScanner|x86.ActiveCfg = Release_WithScanner|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Release_WithScanner|x86.Build.0 = Release_WithScanner|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Release|x64.ActiveCfg = Release|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Release|x64.Build.0 = Release|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Release|x86.ActiveCfg = Release|x64 + {ADB35022-823B-4DC0-B495-3EFEFBD3A82F}.Release|x86.Build.0 = Release|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Debug|x64.ActiveCfg = Debug|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Debug|x64.Build.0 = Debug|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Debug|x86.ActiveCfg = Debug|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Debug|x86.Build.0 = Debug|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Release_WithScanner|x64.ActiveCfg = Release_WS|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Release_WithScanner|x64.Build.0 = Release_WS|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Release_WithScanner|x86.ActiveCfg = Release_WithScanner|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Release_WithScanner|x86.Build.0 = Release_WithScanner|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Release|x64.ActiveCfg = Release|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Release|x64.Build.0 = Release|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Release|x86.ActiveCfg = Release|x64 + {CE178784-CB96-45CA-AE16-FC0DA1126970}.Release|x86.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0F485A89-A340-4742-97E7-923E14A929A1} + EndGlobalSection +EndGlobal diff --git a/cheat-base/cheat-base.vcxproj b/cheat-base/cheat-base.vcxproj new file mode 100644 index 0000000..f1a225e --- /dev/null +++ b/cheat-base/cheat-base.vcxproj @@ -0,0 +1,282 @@ + + + + + Debug + x64 + + + Release_WS + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {adb35022-823b-4dc0-b495-3efefbd3a82f} + cheat-base + 10.0 + cheat-base + + + + StaticLibrary + true + v143 + MultiByte + + + StaticLibrary + false + v143 + true + MultiByte + + + StaticLibrary + false + v143 + true + MultiByte + + + + + + + + + + + + + + + + + + true + $(SolutionDir)bin\$(Configuration)\ + $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + + + false + $(SolutionDir)bin\$(Configuration)\ + $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + + + false + $(SolutionDir)bin\$(Configuration)\ + $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + + + + Level3 + true + _AMD64_;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_CRT_SECURE_NO_WARNINGS;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + Use + pch.h + stdcpp17 + $(ProjectDir)framework\;$(ProjectDir)src\;$(ProjectDir)vendor\detours\;$(ProjectDir)vendor\fmt\include\;$(ProjectDir)vendor\imgui\;$(ProjectDir)vendor\magic_enum\include\;$(ProjectDir)vendor\simpleIni\;$(ProjectDir)vendor\json\single_include\;$(ProjectDir)vendor\imgui-notify-v2\;$(ProjectDir)vendor\stb\ + + + + + true + + + + + + + detours-x64.lib;%(AdditionalDependencies) + + + $(ProjectDir)/vendor/detours/;%(AdditionalLibraryDirectories) + + + + + Level3 + true + false + true + _AMD64_;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_CRT_SECURE_NO_WARNINGS;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + Use + pch.h + stdcpp17 + $(ProjectDir)framework\;$(ProjectDir)src\;$(ProjectDir)vendor\detours\;$(ProjectDir)vendor\fmt\include\;$(ProjectDir)vendor\imgui\;$(ProjectDir)vendor\magic_enum\include\;$(ProjectDir)vendor\simpleIni\;$(ProjectDir)vendor\json\single_include\;$(ProjectDir)vendor\imgui-notify-v2\;$(ProjectDir)vendor\stb\ + Disabled + false + + + + + true + true + true + + + + + + + detours-x64.lib;%(AdditionalDependencies) + + + $(ProjectDir)/vendor/detours/;%(AdditionalLibraryDirectories) + + + + + Level3 + true + false + true + _AMD64_;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_CRT_SECURE_NO_WARNINGS;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + Use + pch.h + stdcpp17 + $(ProjectDir)framework\;$(ProjectDir)src\;$(ProjectDir)vendor\detours\;$(ProjectDir)vendor\fmt\include\;$(ProjectDir)vendor\imgui\;$(ProjectDir)vendor\magic_enum\include\;$(ProjectDir)vendor\simpleIni\;$(ProjectDir)vendor\json\single_include\;$(ProjectDir)vendor\imgui-notify-v2\;$(ProjectDir)vendor\stb\ + Disabled + false + + + + + true + true + true + + + + + + + detours-x64.lib;%(AdditionalDependencies) + + + $(ProjectDir)/vendor/detours/;%(AdditionalLibraryDirectories) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NotUsing + NotUsing + NotUsing + + + NotUsing + NotUsing + NotUsing + + + + + + + + + + + + + + + Create + Create + Create + + + + NotUsing + NotUsing + NotUsing + + + NotUsing + NotUsing + NotUsing + + + + + + \ No newline at end of file diff --git a/cheat-base/cheat-base.vcxproj.filters b/cheat-base/cheat-base.vcxproj.filters new file mode 100644 index 0000000..55bc8c5 --- /dev/null +++ b/cheat-base/cheat-base.vcxproj.filters @@ -0,0 +1,279 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/cheat-base/framework/framework.h b/cheat-base/framework/framework.h new file mode 100644 index 0000000..3209b4a --- /dev/null +++ b/cheat-base/framework/framework.h @@ -0,0 +1,3 @@ +#pragma once + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers diff --git a/cheat-base/framework/pch.cpp b/cheat-base/framework/pch.cpp new file mode 100644 index 0000000..64b7eef --- /dev/null +++ b/cheat-base/framework/pch.cpp @@ -0,0 +1,5 @@ +// pch.cpp: source file corresponding to the pre-compiled header + +#include "pch.h" + +// When you are using pre-compiled headers, this source file is necessary for compilation to succeed. diff --git a/cheat-base/framework/pch.h b/cheat-base/framework/pch.h new file mode 100644 index 0000000..2cfc048 --- /dev/null +++ b/cheat-base/framework/pch.h @@ -0,0 +1,47 @@ +// pch.h: This is a precompiled header file. +// Files listed below are compiled only once, improving build performance for future builds. +// This also affects IntelliSense performance, including code completion and many code browsing features. +// However, files listed here are ALL re-compiled if any one of them is updated between builds. +// Do not add files here that you will be updating frequently as this negates the performance advantage. + +#ifndef PCH_H +#define PCH_H + +// add headers that you want to pre-compile here +#include "framework.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include +#endif //PCH_H diff --git a/cheat-base/src/cheat-base/HookManager.h b/cheat-base/src/cheat-base/HookManager.h new file mode 100644 index 0000000..41b3f85 --- /dev/null +++ b/cheat-base/src/cheat-base/HookManager.h @@ -0,0 +1,78 @@ +#pragma once + +#include +#include + +#define CALL_ORIGIN(function, ...) \ + HookManager::call(function, __func__, __VA_ARGS__) + +class HookManager +{ +public: + template + static void install(Fn func, Fn handler) + { + enable(func, handler); + holderMap[reinterpret_cast(handler)] = reinterpret_cast(func); + } + + template + [[nodiscard]] static Fn getOrigin(Fn handler, const char* callerName = nullptr) noexcept + { + if (holderMap.count(reinterpret_cast(handler)) == 0) { + LOG_WARNING("Origin not found for handler: %s. Maybe racing bug.", callerName == nullptr ? "" : callerName); + return nullptr; + } + return reinterpret_cast(holderMap[reinterpret_cast(handler)]); + } + + template + [[nodiscard]] static void detach(Fn handler) noexcept + { + disable(handler); + holderMap.erase(reinterpret_cast(handler)); + } + + template + [[nodiscard]] static RType call(RType(*handler)(Params...), const char* callerName = nullptr, Params... params) + { + auto origin = getOrigin(handler, callerName); + if (origin != nullptr) + return origin(params...); + + return RType(); + } + + static void detachAll() noexcept + { + for (const auto &[key, value] : holderMap) + { + disable(key); + } + holderMap.clear(); + } + +private: + inline static std::map holderMap{}; + + template + static void disable(Fn handler) + { + Fn origin = getOrigin(handler); + DetourTransactionBegin(); + DetourUpdateThread(GetCurrentThread()); + DetourDetach(&(PVOID&)origin, handler); + DetourTransactionCommit(); + } + + template + static void enable(Fn& func, Fn handler) + { + DetourTransactionBegin(); + DetourUpdateThread(GetCurrentThread()); + DetourAttach(&(PVOID&)func, handler); + DetourTransactionCommit(); + } +}; + + diff --git a/cheat-base/src/cheat-base/Hotkey.cpp b/cheat-base/src/cheat-base/Hotkey.cpp new file mode 100644 index 0000000..fbec295 --- /dev/null +++ b/cheat-base/src/cheat-base/Hotkey.cpp @@ -0,0 +1,395 @@ +#include +#include "Hotkey.h" + +#define IM_VK_KEYPAD_ENTER (VK_RETURN + 256) + +static ImGuiKey LegacyToInput(short key) +{ + switch (key) + { + case VK_TAB: return ImGuiKey_Tab; + case VK_LEFT: return ImGuiKey_LeftArrow; + case VK_RIGHT: return ImGuiKey_RightArrow; + case VK_UP: return ImGuiKey_UpArrow; + case VK_DOWN: return ImGuiKey_DownArrow; + case VK_PRIOR: return ImGuiKey_PageUp; + case VK_NEXT: return ImGuiKey_PageDown; + case VK_HOME: return ImGuiKey_Home; + case VK_END: return ImGuiKey_End; + case VK_INSERT: return ImGuiKey_Insert; + case VK_DELETE: return ImGuiKey_Delete; + case VK_BACK: return ImGuiKey_Backspace; + case VK_SPACE: return ImGuiKey_Space; + case VK_RETURN: return ImGuiKey_Enter; + case VK_ESCAPE: return ImGuiKey_Escape; + case VK_OEM_7: return ImGuiKey_Apostrophe; + case VK_OEM_COMMA: return ImGuiKey_Comma; + case VK_OEM_MINUS: return ImGuiKey_Minus; + case VK_OEM_PERIOD: return ImGuiKey_Period; + case VK_OEM_2: return ImGuiKey_Slash; + case VK_OEM_1: return ImGuiKey_Semicolon; + case VK_OEM_PLUS: return ImGuiKey_Equal; + case VK_OEM_4: return ImGuiKey_LeftBracket; + case VK_OEM_5: return ImGuiKey_Backslash; + case VK_OEM_6: return ImGuiKey_RightBracket; + case VK_OEM_3: return ImGuiKey_GraveAccent; + case VK_CAPITAL: return ImGuiKey_CapsLock; + case VK_SCROLL: return ImGuiKey_ScrollLock; + case VK_NUMLOCK: return ImGuiKey_NumLock; + case VK_SNAPSHOT: return ImGuiKey_PrintScreen; + case VK_PAUSE: return ImGuiKey_Pause; + case VK_NUMPAD0: return ImGuiKey_Keypad0; + case VK_NUMPAD1: return ImGuiKey_Keypad1; + case VK_NUMPAD2: return ImGuiKey_Keypad2; + case VK_NUMPAD3: return ImGuiKey_Keypad3; + case VK_NUMPAD4: return ImGuiKey_Keypad4; + case VK_NUMPAD5: return ImGuiKey_Keypad5; + case VK_NUMPAD6: return ImGuiKey_Keypad6; + case VK_NUMPAD7: return ImGuiKey_Keypad7; + case VK_NUMPAD8: return ImGuiKey_Keypad8; + case VK_NUMPAD9: return ImGuiKey_Keypad9; + case VK_DECIMAL: return ImGuiKey_KeypadDecimal; + case VK_DIVIDE: return ImGuiKey_KeypadDivide; + case VK_MULTIPLY: return ImGuiKey_KeypadMultiply; + case VK_SUBTRACT: return ImGuiKey_KeypadSubtract; + case VK_ADD: return ImGuiKey_KeypadAdd; + case IM_VK_KEYPAD_ENTER: return ImGuiKey_KeypadEnter; + case VK_LSHIFT: return ImGuiKey_LeftShift; + case VK_LCONTROL: return ImGuiKey_LeftCtrl; + case VK_LMENU: return ImGuiKey_LeftAlt; + case VK_LWIN: return ImGuiKey_LeftSuper; + case VK_RSHIFT: return ImGuiKey_RightShift; + case VK_RCONTROL: return ImGuiKey_RightCtrl; + case VK_RMENU: return ImGuiKey_RightAlt; + case VK_RWIN: return ImGuiKey_RightSuper; + case VK_APPS: return ImGuiKey_Menu; + case '0': return ImGuiKey_0; + case '1': return ImGuiKey_1; + case '2': return ImGuiKey_2; + case '3': return ImGuiKey_3; + case '4': return ImGuiKey_4; + case '5': return ImGuiKey_5; + case '6': return ImGuiKey_6; + case '7': return ImGuiKey_7; + case '8': return ImGuiKey_8; + case '9': return ImGuiKey_9; + case 'A': return ImGuiKey_A; + case 'B': return ImGuiKey_B; + case 'C': return ImGuiKey_C; + case 'D': return ImGuiKey_D; + case 'E': return ImGuiKey_E; + case 'F': return ImGuiKey_F; + case 'G': return ImGuiKey_G; + case 'H': return ImGuiKey_H; + case 'I': return ImGuiKey_I; + case 'J': return ImGuiKey_J; + case 'K': return ImGuiKey_K; + case 'L': return ImGuiKey_L; + case 'M': return ImGuiKey_M; + case 'N': return ImGuiKey_N; + case 'O': return ImGuiKey_O; + case 'P': return ImGuiKey_P; + case 'Q': return ImGuiKey_Q; + case 'R': return ImGuiKey_R; + case 'S': return ImGuiKey_S; + case 'T': return ImGuiKey_T; + case 'U': return ImGuiKey_U; + case 'V': return ImGuiKey_V; + case 'W': return ImGuiKey_W; + case 'X': return ImGuiKey_X; + case 'Y': return ImGuiKey_Y; + case 'Z': return ImGuiKey_Z; + case VK_F1: return ImGuiKey_F1; + case VK_F2: return ImGuiKey_F2; + case VK_F3: return ImGuiKey_F3; + case VK_F4: return ImGuiKey_F4; + case VK_F5: return ImGuiKey_F5; + case VK_F6: return ImGuiKey_F6; + case VK_F7: return ImGuiKey_F7; + case VK_F8: return ImGuiKey_F8; + case VK_F9: return ImGuiKey_F9; + case VK_F10: return ImGuiKey_F10; + case VK_F11: return ImGuiKey_F11; + case VK_F12: return ImGuiKey_F12; + case VK_LBUTTON: return ImGuiMouseButton_Left; + case VK_RBUTTON: return ImGuiMouseButton_Right; + case VK_MBUTTON: return ImGuiMouseButton_Middle; + case VK_XBUTTON1: return 3; + case VK_XBUTTON2: return 4; + default: return ImGuiKey_None; + } +} + +static short InputToLegacy(ImGuiKey inputkey) +{ + auto& io = ImGui::GetIO(); + if (inputkey > 4) + return io.KeyMap[inputkey]; + + switch (inputkey) + { + case ImGuiMouseButton_Left: + return VK_LBUTTON; + case ImGuiMouseButton_Right: + return VK_RBUTTON; + case ImGuiMouseButton_Middle: + return VK_MBUTTON; + case 3: + return VK_XBUTTON1; + case 4: + return VK_XBUTTON2; + } + + LOG_CRIT("Failed to find legacy input"); + return -1; +} + +static bool IsKeyDown(ImGuiKey key) +{ + if (key > 6) + return ImGui::IsKeyDown(key); + + switch (key) + { + case 1: + case 2: + return ImGui::IsMouseDown(key - 1); + case 4: + case 5: + case 6: + return ImGui::IsMouseDown(key - 2); + } + return false; +} + +static bool IsKeyReleased(ImGuiKey key) +{ + if (key > 6) + return ImGui::IsKeyReleased(key); + + switch (key) + { + case 1: + case 2: + return ImGui::IsMouseReleased(key - 1); + case 4: + case 5: + case 6: + return ImGui::IsMouseReleased(key - 2); + } + return false; +} + +void FixModKey(short& legacyKey) +{ + // Can cause incorrect input when both keys pressed, need to fix! + switch (legacyKey) + { + + case VK_CONTROL: + { + if (IsKeyDown(ImGuiKey_LeftCtrl)) + legacyKey = VK_LCONTROL; + else if (IsKeyDown(ImGuiKey_RightCtrl)) + legacyKey = VK_RCONTROL; + + return; + } + case VK_SHIFT: + { + if (IsKeyDown(ImGuiKey_LeftShift)) + legacyKey = VK_LSHIFT; + else if (IsKeyDown(ImGuiKey_RightShift)) + legacyKey = VK_RSHIFT; + + return; + } + + } +} + +Hotkey::Hotkey() : PressedEvent(m_PressedEvent), m_PressedEvent() +{ + events::KeyUpEvent += MY_METHOD_HANDLER(Hotkey::OnKeyUp); +} + +Hotkey::Hotkey(std::vector legacyKeys) : Hotkey() +{ + for (short legacyKey : legacyKeys) + { + this->m_Keys.insert(legacyKey); + } +} + +Hotkey::Hotkey(short key) : Hotkey() +{ + this->m_Keys.insert(key); +} + +Hotkey::Hotkey(const Hotkey& other) : Hotkey() +{ + m_Keys = {other.m_Keys}; +} + +Hotkey::~Hotkey() +{ + events::KeyUpEvent -= MY_METHOD_HANDLER(Hotkey::OnKeyUp); +} + +Hotkey& Hotkey::operator=(Hotkey&& hotkey) noexcept +{ + m_Keys = std::move(hotkey.m_Keys); + return *this; +} + +Hotkey& Hotkey::operator=(Hotkey& hotkey) noexcept +{ + m_Keys = hotkey.m_Keys; + return *this; +} + +bool Hotkey::operator-(const Hotkey& c2) +{ + for (short key : m_Keys) + { + if (c2.m_Keys.count(key) == 0) + return true; + } + return false; +} + +bool Hotkey::operator!=(const Hotkey& c2) const +{ + return !(*this == c2); +} + +bool Hotkey::operator==(const Hotkey& c2) const +{ + return m_Keys == c2.m_Keys; +} + +std::string GetKeyName(short key) +{ + if (key > 5) + return ImGui::GetKeyName(key); + + switch (key) + { + case ImGuiMouseButton_Left: + return "LMB"; + case ImGuiMouseButton_Right: + return "RMB"; + case ImGuiMouseButton_Middle: + return "MMB"; + case 3: + return "Mouse X1"; + case 4: + return "Mouse X2"; + } + + return "Unknown"; +} + +Hotkey::operator std::string() const +{ + if (IsEmpty()) + return "None"; + + std::stringstream hotkeyNameStream; + + for (auto it = m_Keys.begin(); it != m_Keys.end(); it++) + { + if (it != m_Keys.begin()) + hotkeyNameStream << " + "; + + hotkeyNameStream << GetKeyName(LegacyToInput(*it)); + } + return hotkeyNameStream.str(); +} + +bool Hotkey::IsPressed() const +{ + for (short key : m_Keys) + { + if (!IsKeyDown(key)) + return false; + } + + return true; +} + +bool Hotkey::IsPressed(short legacyKey) const +{ + FixModKey(legacyKey); + + if (m_Keys.count(legacyKey) == 0) + return false; + + std::unordered_set keysClone = m_Keys; + keysClone.erase(legacyKey); + + for (short key : keysClone) + { + bool result = IsKeyDown(key); + if (!result) + return false; + } + + return true; +} + +bool Hotkey::IsReleased() const +{ + bool released = false; + for (short key : m_Keys) + { + if (IsKeyReleased(key)) + { + released = true; + continue; + } + + if (!IsKeyDown(key)) + return false; + } + + return released; +} + +bool Hotkey::IsEmpty() const +{ + return m_Keys.size() == 0; +} + +std::vector Hotkey::GetKeys() const +{ + return std::vector(m_Keys.begin(), m_Keys.end()); +} + +Hotkey Hotkey::GetPressedHotkey() +{ + Hotkey hotkey{}; + + auto& io = ImGui::GetIO(); + + for (ImGuiKey i = ImGuiKey_NamedKey_BEGIN; i < ImGuiKey_NamedKey_END - 4; i++) + { + bool isKeyDown = io.KeysDown[i]; + if (isKeyDown) + hotkey.m_Keys.insert(InputToLegacy(i)); + } + + for (ImGuiKey i = 0; i < ImGuiMouseButton_COUNT; i++) + { + bool isMouseButtonDown = io.MouseDown[i]; + if (isMouseButtonDown) + hotkey.m_Keys.insert(InputToLegacy(i)); + } + return hotkey; +} + +void Hotkey::OnKeyUp(short key, bool& canceled) +{ + if (IsPressed(key)) + m_PressedEvent(); +} diff --git a/cheat-base/src/cheat-base/Hotkey.h b/cheat-base/src/cheat-base/Hotkey.h new file mode 100644 index 0000000..d9cefb4 --- /dev/null +++ b/cheat-base/src/cheat-base/Hotkey.h @@ -0,0 +1,43 @@ +#pragma once + +#include +#include + +#include + +class Hotkey +{ +public: + + Hotkey(); + Hotkey(const Hotkey& other); + Hotkey(short key); + Hotkey(std::vector keys); + ~Hotkey(); + + Hotkey& operator=(Hotkey& hotkey) noexcept; + Hotkey& operator=(Hotkey&& hotkey) noexcept; + + bool operator== (const Hotkey& c2) const; + bool operator!= (const Hotkey& c2) const; + bool operator-(const Hotkey& c2); + + bool IsPressed() const; + bool IsPressed(short keyDown) const; + bool IsReleased() const; + + bool IsEmpty() const; + + std::vector GetKeys() const; + + operator std::string() const; + + static Hotkey GetPressedHotkey(); + + IEvent<>& PressedEvent; +private: + TEvent<> m_PressedEvent; + std::unordered_set m_Keys; + + void OnKeyUp(short key, bool& canceled); +}; \ No newline at end of file diff --git a/cheat-base/src/cheat-base/Logger.cpp b/cheat-base/src/cheat-base/Logger.cpp new file mode 100644 index 0000000..a2ca152 --- /dev/null +++ b/cheat-base/src/cheat-base/Logger.cpp @@ -0,0 +1,143 @@ +#include +#include "Logger.h" + +#include +#include +#include +#include +#include +#include + +#include + +Logger::Level Logger::s_FileLogLevel = Logger::Level::None; +Logger::Level Logger::s_ConsoleLogLevel = Logger::Level::None; + +std::string Logger::directory = ""; +std::string Logger::logfilepath = ""; +std::mutex Logger::_mutex{}; + +void Logger::SetLevel(Level level, LoggerType type) +{ + switch (type) + { + case Logger::LoggerType::Any: + s_FileLogLevel = level; + s_ConsoleLogLevel = level; + break; + case Logger::LoggerType::ConsoleLogger: + s_ConsoleLogLevel = level; + break; + case Logger::LoggerType::FileLogger: + s_FileLogLevel = level; + break; + default: + break; + } +} + +Logger::Level Logger::GetLevel(Logger::LoggerType type) +{ + switch (type) + { + case Logger::LoggerType::Any: + return s_FileLogLevel < s_ConsoleLogLevel ? s_FileLogLevel : s_ConsoleLogLevel; + case Logger::LoggerType::ConsoleLogger: + return s_ConsoleLogLevel; + case Logger::LoggerType::FileLogger: + return s_FileLogLevel; + default: + return Logger::Level::None; + } +} + +void LogToFile(std::string& filepath, std::string& msg) +{ + std::ofstream myfile; + myfile.open(filepath, std::ios::out | std::ios::app | std::ios::binary); + myfile << msg << std::endl; + myfile.close(); +} + +struct Prefix +{ + char color; + const char* text; +}; + +Prefix GetLevelPrefix(Logger::Level level) +{ + switch (level) + { + case Logger::Level::Critical: + return { 0x04, "Critical" }; + case Logger::Level::Error: + return { 0x0C, "Error" }; + case Logger::Level::Warning: + return { 0x06, "Warning" }; + case Logger::Level::Info: + return { 0x02, "Info" }; + case Logger::Level::Debug: + return { 0x0B, "Debug" }; + case Logger::Level::Trace: + return { 0x08, "Trace" }; + default: + return { 0x00, "" }; + } +} + +void Logger::Log(Logger::Level logLevel, const char* filepath, int line, const char* fmt, ...) +{ + if (Logger::s_ConsoleLogLevel == Logger::Level::None && Logger::s_FileLogLevel == Logger::Level::None) + return; + + auto filename = std::filesystem::path(filepath).filename().string(); + auto prefix = GetLevelPrefix(logLevel); + char buffer[1024]; + + va_list args; + va_start(args, fmt); + vsprintf_s(buffer, fmt, args); + va_end(args); + + if (Logger::s_ConsoleLogLevel != Logger::Level::None && Logger::s_ConsoleLogLevel >= logLevel) + { + const std::lock_guard lock(_mutex); + + auto logLineConsole = util::string_format("[%s:%d] %s", filename.c_str(), line, buffer); + std::cout << "["; + + HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); + SetConsoleTextAttribute(hConsole, prefix.color); + std::cout << prefix.text; + SetConsoleTextAttribute(hConsole, 15); + + std::cout << "] " << logLineConsole << std::endl; + } + + if (Logger::s_FileLogLevel != Logger::Level::None && Logger::s_FileLogLevel >= logLevel) + { + const std::lock_guard lock(_mutex); + + auto rawTime = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); + struct tm gmtm; + gmtime_s(&gmtm, &rawTime); + auto logLineFile = util::string_format("[%02d:%02d:%02d] [%s] [%s:%d] %s", gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec, + prefix.text, filename.c_str(), line, buffer); + LogToFile(Logger::logfilepath, logLineFile); + } +} + +void Logger::PrepareFileLogging(std::string directory) +{ + auto rawTime = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); + struct tm gmtm; + gmtime_s(&gmtm, &rawTime); + + Logger::directory = directory; + if (!std::filesystem::is_directory(directory)) + std::filesystem::create_directories(directory); + + Logger::logfilepath = util::string_format("%s\\log_%04d-%02d-%02d_%02d-%02d.txt", directory.c_str(), + 1900 + gmtm.tm_year, gmtm.tm_mon, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min); +} diff --git a/cheat-base/src/cheat-base/Logger.h b/cheat-base/src/cheat-base/Logger.h new file mode 100644 index 0000000..37fc6e9 --- /dev/null +++ b/cheat-base/src/cheat-base/Logger.h @@ -0,0 +1,48 @@ +#pragma once +#include +#include +#define EXTLOG(level, fmt, ...) Logger::Log(level, __FILE__, __LINE__, fmt, __VA_ARGS__) +#define LOG_CRIT(fmt, ...) EXTLOG(Logger::Level::Critical, fmt, __VA_ARGS__) +#define LOG_ERROR(fmt, ...) EXTLOG(Logger::Level::Error, fmt, __VA_ARGS__) +#define LOG_WARNING(fmt, ...) EXTLOG(Logger::Level::Warning, fmt, __VA_ARGS__) +#define LOG_INFO(fmt, ...) EXTLOG(Logger::Level::Info, fmt, __VA_ARGS__) +#define LOG_DEBUG(fmt, ...) EXTLOG(Logger::Level::Debug, fmt, __VA_ARGS__) +#define LOG_TRACE(fmt, ...) EXTLOG(Logger::Level::Trace, fmt, __VA_ARGS__) + +class Logger +{ +public: + enum class Level + { + None, + Critical, + Error, + Warning, + Info, + Debug, + Trace + }; + + enum class LoggerType + { + Any, + ConsoleLogger, + FileLogger + }; + + static void SetLevel(Level level, LoggerType type = LoggerType::Any); + static Level GetLevel(LoggerType type); + + static void Log(Level logLevel, const char* filename, int line, const char* fmt, ...); + + static void PrepareFileLogging(std::string directory); + +private: + static Level s_FileLogLevel; + static Level s_ConsoleLogLevel; + + static std::mutex _mutex; + + static std::string directory; + static std::string logfilepath; +}; \ No newline at end of file diff --git a/cheat-base/src/cheat-base/Patch.cpp b/cheat-base/src/cheat-base/Patch.cpp new file mode 100644 index 0000000..7542493 --- /dev/null +++ b/cheat-base/src/cheat-base/Patch.cpp @@ -0,0 +1,95 @@ +#include +#include "Patch.h" + +#include + +bool Patch::Install(uint64_t address, std::vector value) +{ + if (patches.count(address) > 0) + { + LOG_ERROR("Failed to install patch: patch already installed."); + return false; + } + + auto oldValue = WriteMemory(address, value); + if (oldValue == nullptr) + return false; + + patches[address] = oldValue; + return true; +} + +bool Patch::Restore(uint64_t address) +{ + if (patches.count(address) == 0) + { + LOG_ERROR("Failed to restore patch: not found patch to target address 0x%016X", address); + return false; + } + + auto restoreValue = patches[address]; + auto oldValue = WriteMemory(address, *restoreValue); + if (oldValue == nullptr) + return false; + + patches.erase(address); + delete restoreValue; + delete oldValue; + + return true; +} + +std::vector* Patch::WriteMemory(uint64_t address, std::vector value) +{ + MEMORY_BASIC_INFORMATION information{}; + auto size = VirtualQuery(reinterpret_cast(address), &information, sizeof(information)); + if (size < sizeof(information)) + { + LOG_LAST_ERROR("Failed to get page information"); + return nullptr; + } + + if (information.State != MEM_COMMIT) + { + LOG_ERROR("Page at target address isn't MEM_COMMIT (0x%016X)", address); + return nullptr; + } + + + DWORD oldProtection = -1; + if ((information.AllocationProtect & PAGE_READWRITE) == 0 && (information.AllocationProtect & PAGE_EXECUTE_READWRITE) == 0) + { + if (VirtualProtect(reinterpret_cast(address), value.size(), PAGE_EXECUTE_READWRITE, &oldProtection) == FALSE) + { + LOG_LAST_ERROR("Failed to change page protection"); + return nullptr; + } + } + + auto oldValue = new std::vector(value.size()); + auto errorCode = memcpy_s(oldValue->data(), value.size(), reinterpret_cast(address), value.size()); + if (errorCode != 0) + { + LOG_ERROR("Failed to get origin value from memory at 0x%016X. Error code: %d", address, errorCode); + delete oldValue; + return nullptr; + } + + errorCode = memcpy_s(reinterpret_cast(address), value.size(), value.data(), value.size()); + if (errorCode != 0) + { + LOG_ERROR("Failed to rewrite target memory at 0x%016X. Error code: %d", address, errorCode); + delete oldValue; + return nullptr; + } + + if (oldProtection != -1) + { + DWORD temp = 0; + if (VirtualProtect(reinterpret_cast(address), value.size(), oldProtection, &temp) == FALSE) + { + LOG_LAST_ERROR("Failed to restore page protection"); + } + } + return oldValue; +} diff --git a/cheat-base/src/cheat-base/Patch.h b/cheat-base/src/cheat-base/Patch.h new file mode 100644 index 0000000..41c1e99 --- /dev/null +++ b/cheat-base/src/cheat-base/Patch.h @@ -0,0 +1,31 @@ +#pragma once + +#include +#include + +#define OPatch(offset, value) Patch::Install(il2cppi_get_base_address() + offset, value) +#define OUnpatch(offset) Patch::Restore(il2cppi_get_base_address() + offset) +#define TogglePatch(field, targetField, offset, patchBytes) if (field == &targetField) { if (targetField.GetValue()) OPatch(offset, patchBytes); else OUnpatch(offset); return; } + +class Patch +{ +public: + + // Installing patch to target address. + // In detail: replaces memory in target address with specified in 'value' + // saves old memory for future restore + // Return true if successfull. + static bool Install(uint64_t address, std::vector value); + + // Restoring old memory in this address, if it was patched. + // Return true if successfull. + static bool Restore(uint64_t address); + +private: + + inline static std::map*> patches{}; + + static std::vector* WriteMemory(uint64_t address, std::vector value); + +}; + diff --git a/cheat-base/src/cheat-base/PatternScanner.cpp b/cheat-base/src/cheat-base/PatternScanner.cpp new file mode 100644 index 0000000..c435b41 --- /dev/null +++ b/cheat-base/src/cheat-base/PatternScanner.cpp @@ -0,0 +1,908 @@ +#include "pch.h" +#include "PatternScanner.h" + +#include + +#include +#include +#include + +PatternScanner::PatternScanner() : + m_CacheChanged(false) +{ +} + +void PatternScanner::ParseSignatureFile(const std::string& signaturesContent) +{ + nlohmann::json siganturesJson; + try + { + siganturesJson = nlohmann::json::parse(signaturesContent); + } + catch (nlohmann::json::parse_error* e) + { + LOG_ERROR("Failed to parse siganature json content. Error byte %d", e->byte); + return; + } + + ParseSignatureJson(&siganturesJson); +} + +bool PatternScanner::IsUpdated() +{ + return m_CacheChanged; +} + +void PatternScanner::ParseSignatureJson(void* signatureJson) +{ + nlohmann::json& jsonContent = *reinterpret_cast(signatureJson); + for (auto& moduleEntry : jsonContent.items()) + { + std::string moduleName = moduleEntry.key(); + + if (m_ModulePatterns.count(moduleName) == 0) + m_ModulePatterns[moduleName] = {}; + + auto& functionPatterns = m_ModulePatterns[moduleName]; + for (auto& functionEntry : moduleEntry.value().items()) + { + std::string functionName = functionEntry.key(); + functionPatterns[functionName] = {}; + + auto& container = functionPatterns[functionName]; + auto& patternInfo = functionEntry.value(); + + for (auto& xref : patternInfo["xref"]) + container.xrefs.push_back({ xref["sig"], xref["offset"] }); + + for (auto& pattern : patternInfo["signatures"]) + container.signatures.push_back(pattern); + } + } +} + +uintptr_t PatternScanner::GetOffsetInt(const nlohmann::json& value) +{ + std::uintptr_t offset = 0; + if (value.is_string()) + { + std::string strValue = value; + offset = strtoul(strValue.c_str(), nullptr, 16); + } + else if (value.is_number_unsigned()) + { + offset = value; + } + return offset; +} + + +std::string PatternScanner::GetOffsetStr(uintptr_t offset) +{ + std::stringstream ss; + ss << std::hex << offset; + return ss.str(); +} + +void PatternScanner::Save(const std::filesystem::path& filename) +{ + std::ofstream outputStream(filename, std::ios::out); + if (!outputStream.is_open()) + { + LOG_ERROR("Failed to open file '%s' to save offsets.", filename.c_str()); + return; + } + + std::string output; + Save(output); + outputStream << output; + outputStream.close(); +} + +void PatternScanner::Save(std::string& outContent) +{ + if (!m_CacheChanged) + outContent = m_LoadCache; + + nlohmann::json modulesInfo{}; + + SaveJson(modulesInfo); + + outContent = modulesInfo.dump(); +} + +void PatternScanner::SaveJson(nlohmann::json& outObject) +{ + for (auto& [moduleName, functionsOffsets] : m_CacheOffsets) + { + SaveModuleHash(moduleName, outObject[moduleName]["hash"]); + + auto& functionsObject = outObject[moduleName]["functions"]; + for (auto& [functionName, offset] : functionsOffsets) + { + functionsObject[functionName] = GetOffsetStr(offset); + } + } +} + +bool PatternScanner::Load(const std::filesystem::path& filename) +{ + std::ifstream inputStream(filename, std::ios::in); + if (!inputStream.is_open()) + { + LOG_ERROR("Failed to open file '%s' for load offsets.", filename.c_str()); + return false; + } + + std::stringstream buffer; + buffer << inputStream.rdbuf(); + return Load(buffer.str()); +} + +bool PatternScanner::Load(const std::string& content) +{ + nlohmann::json contentJson; + try + { + contentJson = nlohmann::json::parse(content); + } + catch (nlohmann::json::parse_error* e) + { + LOG_ERROR("Failed to parse siganature json content. Error byte %d", e->byte); + return false; + } + + return LoadJson(contentJson); + + m_LoadCache = content; +} + +bool PatternScanner::LoadJson(const nlohmann::json& object) +{ + bool result = true; + for (auto& moduleEntry : object.items()) + { + std::string moduleName = moduleEntry.key(); + auto& moduleJson = moduleEntry.value(); + + if (!IsValidModuleHash(moduleName, moduleJson["hash"])) + { + LOG_WARNING("Module '%s' hash don't match with saved one. Seems module was updated.", moduleName.c_str()); + result = false; + continue; + } + + if (m_CacheOffsets.count(moduleName) == 0) + m_CacheOffsets[moduleName] = {}; + + auto& functionsOffsets = m_CacheOffsets[moduleName]; + for (auto& funcOffsetEntry : moduleJson["functions"].items()) + { + functionsOffsets[funcOffsetEntry.key()] = GetOffsetInt(funcOffsetEntry.value()); + } + } + return result; +} + +PatternScanner::ModuleInfo& PatternScanner::GetModuleInfo(const std::string& modulePath) +{ + static std::map s_ModuleInfoCache; + std::string moduleName = std::filesystem::path(modulePath).filename().string(); + + if (s_ModuleInfoCache.count(moduleName) > 0) + return s_ModuleInfoCache[moduleName]; + + HMODULE hModule = GetModuleHandle(moduleName.c_str()); + if (hModule == NULL) + { + LOG_LAST_ERROR("Failed to find module '%s'.", moduleName.c_str()); + std::system("pause"); + exit(0); + } + + s_ModuleInfoCache[moduleName] = GetModuleInfo(hModule); + return s_ModuleInfoCache[moduleName]; +} + +PatternScanner::ModuleInfo& PatternScanner::GetModuleInfo(HMODULE hModule) +{ + static std::map s_ModuleInfoCache; + + if (hModule == NULL) + { + LOG_CRIT("hModule is NULL."); + std::system("pause"); + exit(0); + } + + if (s_ModuleInfoCache.count(hModule) > 0) + return s_ModuleInfoCache[hModule]; + + MODULEINFO nativeInfo{}; + BOOL result = GetModuleInformation(GetCurrentProcess(), hModule, &nativeInfo, sizeof(nativeInfo)); + if (result == FALSE) + { + LOG_LAST_ERROR("Failed get info about module at 0x%p.", hModule); + std::system("pause"); + exit(0); + } + + s_ModuleInfoCache[hModule] = {}; + auto& moduleInfo = s_ModuleInfoCache[hModule]; + moduleInfo.handle = hModule; + moduleInfo.base = (uintptr_t)hModule; + moduleInfo.size = (uintptr_t)nativeInfo.SizeOfImage; + + char buffer[MAX_PATH] = {}; + result = GetModuleFileNameA(hModule, buffer, sizeof(buffer)); + if (result == FALSE) + { + LOG_LAST_ERROR("Failed get filename module at 0x%p.", hModule); + std::system("pause"); + exit(0); + } + + moduleInfo.filePath = buffer; + + LOG_DEBUG("Module %s bound 0x%p-0x%p.", moduleInfo.filePath.c_str(), + moduleInfo.base, moduleInfo.base + moduleInfo.size); + + uintptr_t currentAddress = moduleInfo.base; + uintptr_t endAddress = moduleInfo.base + moduleInfo.size; + while (currentAddress <= endAddress) + { + MEMORY_BASIC_INFORMATION memoryInfo{}; + auto byteCount = VirtualQuery((LPCVOID)currentAddress, &memoryInfo, sizeof(memoryInfo)); + if (byteCount == 0) + { + LOG_LAST_ERROR("Failed get memory info for address 0x%p.", currentAddress); + break; + } + + currentAddress = (uintptr_t)memoryInfo.BaseAddress + memoryInfo.RegionSize; + + auto protection = memoryInfo.AllocationProtect; + + if (protection != PAGE_EXECUTE && protection != PAGE_EXECUTE_READ && + protection != PAGE_EXECUTE_READWRITE && protection != PAGE_EXECUTE_WRITECOPY) + continue; + + moduleInfo.execRegions.push_back({ (uintptr_t)memoryInfo.BaseAddress, memoryInfo.RegionSize }); + } + + return moduleInfo; +} + +void PatternScanner::AddOffset(const std::string& moduleName, const std::string& name, uintptr_t offset) +{ + if (m_CacheOffsets.count(moduleName) == 0) + m_CacheOffsets[moduleName] = {}; + + m_CacheOffsets[moduleName][name] = offset; + m_CacheChanged = true; +} + +size_t ComputeChecksum(const std::string& filename) +{ + std::ifstream file(filename, std::ios::in | std::ios::binary); + if (!file.is_open()) + { + LOG_ERROR("Failed to compute file json: %s", filename.c_str()); + return 0; + } + + size_t sum = 0; + size_t word = 0; + while (file.read(reinterpret_cast(&word), sizeof(word))) { + sum += word; + } + + if (file.gcount()) { + word &= (~0U >> ((sizeof(size_t) - file.gcount()) * 8)); + sum += word; + } + + return sum; +} + +int64_t PatternScanner::GetModuleTimestamp(const std::string& moduleName) +{ + auto& moduleInfo = GetModuleInfo(moduleName); + auto write_time = std::filesystem::last_write_time(moduleInfo.filePath); + return write_time.time_since_epoch().count(); +} + +int64_t PatternScanner::GetModuleTimestamp(HMODULE hModule) +{ + auto& moduleInfo = GetModuleInfo(hModule); + auto write_time = std::filesystem::last_write_time(moduleInfo.filePath); + return write_time.time_since_epoch().count(); +} + +bool PatternScanner::IsValidModuleHash(const std::string& moduleName, const nlohmann::json& hashObject) +{ + auto& info = GetModuleInfo(moduleName); + return IsValidModuleHash(info.handle, hashObject); +} + +bool PatternScanner::IsValidModuleHash(HMODULE hModule, const nlohmann::json& hashObject) +{ + if (!hashObject.contains("timestamp") || !hashObject.contains("checksum")) + return false; + + int64_t currTimestamp = GetModuleTimestamp(hModule); + + int64_t timestamp = hashObject["timestamp"]; + size_t checksum = hashObject["checksum"]; + + // To increase speed, we don't check checksum if timestamp matches + if (timestamp == currTimestamp) + { + m_ComputedHashes[hModule] = checksum; + return true; + } + + size_t currChecksum = m_ComputedHashes.count(hModule) > 0 ? m_ComputedHashes[hModule] : ComputeChecksum(GetModuleInfo(hModule).filePath); + m_ComputedHashes[hModule] = currChecksum; + + return checksum == currChecksum; +} + +void PatternScanner::SaveModuleHash(const std::string& moduleName, nlohmann::json& outObject) +{ + auto& info = GetModuleInfo(moduleName); + SaveModuleHash(info.handle, outObject); +} + +void PatternScanner::SaveModuleHash(HMODULE hModule, nlohmann::json& outObject) +{ + auto& moduleInfo = GetModuleInfo(hModule); + auto write_time = std::filesystem::last_write_time(moduleInfo.filePath); + int64_t timestamp = write_time.time_since_epoch().count(); + + size_t checksum = m_ComputedHashes.count(hModule) > 0 ? m_ComputedHashes[hModule] : ComputeChecksum(moduleInfo.filePath); + + outObject["timestamp"] = timestamp; + outObject["checksum"] = checksum; + + m_ComputedHashes[hModule] = checksum; +} + +void PatternScanner::SearchAll() +{ + for (auto& [moduleName, methodsSignatures] : m_ModulePatterns) + { + for (auto& [methodName, sigInfo] : methodsSignatures) + { + LOG_DEBUG("Searching %s::%s", moduleName.c_str(), methodName.c_str()); + auto searchResult = Search(moduleName, methodName); + if (searchResult == 0) + LOG_WARNING("Not found"); + else + LOG_DEBUG("Found function at %s + %p", moduleName.c_str(), searchResult); + } + } +} + +uintptr_t PatternScanner::Search(const std::string& name) +{ + for (auto& [moduleName, modulePatternsData] : m_ModulePatterns) + { + if (modulePatternsData.count(name) > 0) + return Search(moduleName, name, modulePatternsData[name]); + } + + return 0; +} + +uintptr_t PatternScanner::Search(const std::string& moduleName, const std::string& name) +{ + uintptr_t moduleBase = GetModuleInfo(moduleName).base; + + if (m_CacheOffsets.count(moduleName) > 0 && m_CacheOffsets[moduleName].count(name) > 0) + { + uintptr_t offset = m_CacheOffsets[moduleName][name]; + return offset != 0 ? moduleBase + offset : 0; + } + + if (m_ModulePatterns.count(moduleName) > 0 && m_ModulePatterns[moduleName].count(name) > 0) + return Search(moduleName, name, m_ModulePatterns[moduleName][name]); + + AddOffset(moduleName, name, 0); + return 0; +} + +uintptr_t PatternScanner::Search(const std::string& moduleName, const std::string& name, const PatternInfo& info) +{ + AddressCounter counter; + uintptr_t moduleBase = GetModuleInfo(moduleName).base; + + for (auto& pattern : info.signatures) + { + auto address = SearchFunction(moduleName, pattern); + if (address == 0) + continue; + + counter.Add(address); + } + + for (auto& xrefPattern : info.xrefs) + { + auto address = SearchXref(moduleName, xrefPattern); + if (address == 0) + continue; + + counter.Add(address); + } + + uintptr_t address = counter.GetMax(); + AddOffset(moduleName, name, address == 0 ? 0 : address - moduleBase); + return address; +} + +uintptr_t PatternScanner::SearchFunction(const std::string& moduleName, const std::string& pattern) +{ + auto address = SearchInModule(moduleName, pattern); + if (address == 0) + return 0; + + return FindFunctionEntry(address); +} + +uintptr_t PatternScanner::SearchXref(const std::string& moduleName, const OffsetSignature& xrefPattern) +{ + HMODULE hModule = GetModuleInfo(moduleName).handle; + return SearchXref(hModule, xrefPattern); +} + +uintptr_t PatternScanner::SearchXref(HMODULE hModule, const OffsetSignature& xrefPattern) +{ + auto address = SearchInModule(hModule, xrefPattern.pattern); + if (!address) + return 0; + + uint8_t callOpcode = util::ReadMapped((void*)address, xrefPattern.offset, true); + int opcodeOffset = 0; + switch (callOpcode) + { + case 0xE8: + case 0xE9: + opcodeOffset = 1; + break; + case 0x48: + case 0x4C: + opcodeOffset = 3; + break; + default: + LOG_WARNING("Trying find xref to not supported long call (opcode 0x%x)", callOpcode); + return 0; + } + + int callOffset = util::ReadMapped((void*)address, xrefPattern.offset + opcodeOffset, true); + uintptr_t dataAddress = address + xrefPattern.offset + 4 + opcodeOffset + callOffset; + + //if (!IsFunctionEntry(functionAddress)) + //{ + // LOG_WARNING("Xref calc function address failed. There is no function at 0x%p.", functionAddress); + // return {}; + //} + + return dataAddress; +} + +uintptr_t PatternScanner::SearchInModule(const std::string& moduleName, const std::string& pattern) +{ + auto& moduleInfo = GetModuleInfo(moduleName); + + auto tokens = util::StringSplit(" ", pattern); + + std::vector> bytePattern; + bytePattern.reserve(tokens.size()); + for (auto& token : tokens) + { + std::optional value = token == "??" ? std::optional() : std::stoi(token, 0, 16); + bytePattern.push_back(value); + } + + uint8_t countFound = 0; + uint64_t address = 0; + for (auto& region : moduleInfo.execRegions) + { + auto regionSearchResult = SearchInRange(region.base, region.base + region.size, bytePattern); + if (regionSearchResult.status == SRStatus::NotFound) + continue; + + if (regionSearchResult.status == SRStatus::NotUnique) + { + LOG_WARNING("Pattern ununique '%s'.", pattern.c_str()); + return {}; + } + + countFound++; + if (countFound > 1) + { + LOG_WARNING("Pattern ununique '%s'.", pattern.c_str()); + return {}; + } + + address = regionSearchResult.value; + } + + if (countFound == 0) + LOG_WARNING("Pattern not found '%s'.", pattern.c_str()); + + return address; +} + +uintptr_t PatternScanner::SearchInModule(HMODULE hModule, const std::string& pattern) +{ + char buffer[MAX_PATH] = {}; + auto count = GetModuleFileNameA(hModule, buffer, sizeof(buffer)); + if (count == 0) + { + LOG_ERROR("Failed to get module name for handle 0x%p.", hModule); + return {}; + } + return SearchInModule(buffer, pattern); +} + +UINT32 get_first_bit_set(UINT32 x) +{ + // Generates a single BSF instruction + unsigned long ret; + _BitScanForward(&ret, x); + return (UINT32)ret; +} + +UINT32 clear_leftmost_set(UINT32 value) +{ + // Generates a single BLSR instruction + return value & (value - 1); +} + +int memcmp_mask(const BYTE* buffer1, const BYTE* buffer2, const BYTE* mask2, size_t count) +{ + while (count--) + { + if (*mask2) + { + if (*buffer1 != *buffer2) + return -1; + } + + buffer1++, buffer2++, mask2++; + }; + return 0; +} + +struct Signature +{ + std::vector bytes; + std::vector mask; + bool hasWildcards = false; + + Signature(const std::vector>& sig) + { + for (auto& item : sig) + { + if (!item) + { + bytes.push_back(0xCC); + mask.push_back(0x00); + hasWildcards = true; + continue; + } + + bytes.push_back(*item); + mask.push_back(0xFF); + } + } +}; + +// Find signiture pattern in memory +PBYTE FindSignatureAVX2(PBYTE data, size_t size, const Signature& sig) +{ + const auto* pat = sig.bytes.data(); + size_t patLen = sig.bytes.size(); + size_t patLen1 = (patLen - 1); + size_t patLen2 = (patLen - 2); + + // Fill 'first' and 'last' with the first and last pattern byte respectively + const __m256i first = _mm256_set1_epi8(pat[0]); + const __m256i last = _mm256_set1_epi8(pat[patLen1]); + + if (!sig.hasWildcards) + { + // A little faster without wildcards + + // Scan 32 bytes at the time.. + for (size_t i = 0; i + 32 + patLen1 < size; i += 32) + { + // Load in the next 32 bytes of input first and last + // Can use align 32 bit read for first since the input is page aligned + const __m256i block_first = _mm256_load_si256((const __m256i*) (data + i)); + const __m256i block_last = _mm256_loadu_si256((const __m256i*) (data + i + patLen1)); + + // Compare first and last data to get 32byte masks + const __m256i eq_first = _mm256_cmpeq_epi8(first, block_first); + const __m256i eq_last = _mm256_cmpeq_epi8(last, block_last); + + // AND the equality masks and into a 32 bit mask + UINT32 mask = _mm256_movemask_epi8(_mm256_and_si256(eq_first, eq_last)); + + // Do pattern compare between first and last position if we got our first and last at this data position + while (mask != 0) + { + UINT32 bitpos = get_first_bit_set(mask); + if (memcmp(data + i + bitpos + 1, pat + 1, patLen2) == 0) + return data + i + bitpos; + + mask = clear_leftmost_set(mask); + }; + } + + } + else + { + // Pattern scan with wildcards mask + const BYTE* msk = sig.mask.data(); + + for (size_t i = 0; i + patLen1 + 32 < size; i += 32) + { + const __m256i block_first = _mm256_load_si256((const __m256i*) (data + i)); + const __m256i block_last = _mm256_loadu_si256((const __m256i*) (data + i + patLen1)); + + const __m256i eq_first = _mm256_cmpeq_epi8(first, block_first); + const __m256i eq_last = _mm256_cmpeq_epi8(last, block_last); + + UINT32 mask = _mm256_movemask_epi8(_mm256_and_si256(eq_first, eq_last)); + + // Do a byte pattern w/mask compare between first and last position if we got our first and last + while (mask != 0) + { + UINT32 bitpos = get_first_bit_set(mask); + if (memcmp_mask(data + i + bitpos + 1, pat + 1, msk + 1, patLen2) == 0) + return data + i + bitpos; + + mask = clear_leftmost_set(mask); + }; + } + } + return NULL; +} + +PBYTE FindSignature(PBYTE input, size_t inputLen, const Signature& sig) +{ + if (!sig.hasWildcards) + { + // If no wildcards, faster to use a memcmp() type + const BYTE* pat = sig.bytes.data(); + const BYTE* end = (input + inputLen); + const BYTE first = *pat; + size_t sigLen = sig.bytes.size(); + + // Setup last in the pattern length byte quick for rejection test + size_t lastIdx = (sigLen - 1); + BYTE last = pat[lastIdx]; + + for (PBYTE ptr = input; ptr < end; ++ptr) + { + if ((ptr[0] == first) && (ptr[lastIdx] == last)) + { + if (memcmp(ptr + 1, pat + 1, sigLen - 2) == 0) + return ptr; + } + } + } + else + { + const BYTE* pat = sig.bytes.data(); + const BYTE* msk = sig.mask.data(); + const BYTE* end = (input + inputLen); + const BYTE first = *pat; + size_t sigLen = sig.bytes.size(); + size_t lastIdx = (sigLen - 1); + BYTE last = pat[lastIdx]; + + for (PBYTE ptr = input; ptr < end; ++ptr) + { + if ((ptr[0] == first) && (ptr[lastIdx] == last)) + { + const BYTE* patPtr = pat + 1; + const BYTE* mskPtr = msk + 1; + const BYTE* memPtr = ptr + 1; + BOOL found = TRUE; + + for (int i = 0; (i < sigLen - 2) && (memPtr < end); ++mskPtr, ++patPtr, ++memPtr, i++) + { + if (!*mskPtr) + continue; + + if (*memPtr != *patPtr) + { + found = FALSE; + break; + } + } + + if (found) + return ptr; + } + } + } + + return 0; +} + +PatternScanner::SearchResult PatternScanner::SearchSignatureAVX2(PBYTE input, size_t inputLen, const std::vector>& pattern) +{ + Signature sig = Signature(pattern); + + size_t sigSize = sig.bytes.size(); + size_t len = inputLen; + size_t count = 0; + + inputLen -= sigSize; + + PBYTE match = FindSignatureAVX2(input, len, sig); + uintptr_t firstMatch = (uintptr_t)match; + while (match) + { + if (++count >= 2) + break; + + ++match; + len = (inputLen - (int)(match - input)); + if (len < sigSize) + break; + + match = FindSignatureAVX2(match, len, sig); + }; + + SearchResult result {}; + result.value = (uintptr_t)firstMatch; + switch (count) + { + case 0: result.status = SRStatus::NotFound; break; + case 1: result.status = SRStatus::Unique; break; + default: result.status = SRStatus::NotUnique; break; + }; + return result; +} + +PatternScanner::SearchResult PatternScanner::SearchSignature(PBYTE input, size_t inputLen, const std::vector>& pattern) +{ + Signature sig = Signature(pattern); + + size_t sigSize = sig.bytes.size(); + size_t len = inputLen; + size_t count = 0; + + inputLen -= sigSize; + + // Search for signature match.. + PBYTE match = FindSignature(input, len, sig); + uintptr_t firstMatch = (uintptr_t)match; + while (match) + { + // Stop now if we've hit two matches + if (++count >= 2) + break; + + ++match; + len = (inputLen - (int)(match - input)); + if (len < sigSize) + break; + + // Next search + match = FindSignature(match, len, sig); + }; + + SearchResult result{}; + result.value = (uintptr_t)firstMatch; + switch (count) + { + case 0: result.status = SRStatus::NotFound; break; + case 1: result.status = SRStatus::Unique; break; + default: result.status = SRStatus::NotUnique; break; + }; + return result; +} + +bool TestAVX2Support() +{ + enum { EAX, EBX, ECX, EDX }; + int regs[4]; + + // Highest Function Parameter + __cpuid(regs, 0); + if (regs[EAX] >= 7) + { + // Extended Features + __cpuid(regs, 7); + return (regs[EBX] & /*AVX2*/ (1 << 5)) != 0; + } + return false; +} + +PatternScanner::SearchResult PatternScanner::SearchInRange(uintptr_t start, uintptr_t end, const std::vector>& pattern) +{ + bool hasAVX2 = TestAVX2Support(); + + if (hasAVX2) + { + auto result = SearchSignatureAVX2((PBYTE)start, end - start, pattern); + return result; + } + + static bool warnOnce = true; + if (warnOnce) + { + warnOnce = false; + LOG_WARNING("Using non-AVX2 reference search *\n"); + } + + return SearchSignature((PBYTE)start, end - start, pattern); + + + /*const uint8_t* rStart = (const uint8_t*)start; + const uint8_t* rEnd = (const uint8_t*)end; + + auto comparer = [](uint8_t val1, std::optional val2) + { + return (!val2 || val1 == *val2); + }; + + SearchResult sResult = { SRStatus::NotFound, 0 }; + while (true) + { + const uint8_t* res = std::search(rStart, rEnd, pattern.begin(), pattern.end(), comparer); + if (res >= rEnd) + break; + + if (sResult.status != SRStatus::NotFound) + return { SRStatus::NotUnique, 0 }; + + sResult = { SRStatus::Unique, (uint64_t)res }; + rStart = res + pattern.size(); + } + return sResult;*/ +} + +bool PatternScanner::IsFunctionEntry(uintptr_t functionAddress) +{ + auto address = FindFunctionEntry(functionAddress); + if (functionAddress == 0) + return false; + return functionAddress == functionAddress; +} + +uintptr_t PatternScanner::FindFunctionEntry(uintptr_t address) +{ + // TODO: Implement function asm head find. Maybe with use Zydis. + return 0; +} + +PatternScanner::AddressCounter::AddressCounter() {} + +void PatternScanner::AddressCounter::Add(uintptr_t address) +{ + if (m_Counts.count(address) == 0) + m_Counts[address] = 0; + m_Counts[address]++; +} + +uintptr_t PatternScanner::AddressCounter::GetMax() +{ + if (m_Counts.size() == 0) + return 0; + + using pair_type = decltype(m_Counts)::value_type; + auto maxEntry = std::max_element(m_Counts.begin(), m_Counts.end(), + [](const pair_type& a, const pair_type& b) + { + return a.second < b.second; + }); + + return maxEntry->first; +} diff --git a/cheat-base/src/cheat-base/PatternScanner.h b/cheat-base/src/cheat-base/PatternScanner.h new file mode 100644 index 0000000..e6801bc --- /dev/null +++ b/cheat-base/src/cheat-base/PatternScanner.h @@ -0,0 +1,138 @@ +#pragma once + +#include +#include +#include +#include +#include +class PatternScanner +{ +public: + PatternScanner(); + + uintptr_t Search(const std::string& name); + virtual uintptr_t Search(const std::string& moduleName, const std::string& name); + + virtual void SearchAll(); + + void Save(const std::filesystem::path& filename); + void Save(std::string& outContent); + + bool Load(const std::filesystem::path& filename); + bool Load(const std::string& content); + + virtual void SaveJson(nlohmann::json& outObject); + virtual bool LoadJson(const nlohmann::json& object); + + void ParseSignatureFile(const std::string& signaturesContent); + + bool IsUpdated(); + + bool IsValidModuleHash(HMODULE HMODULE, const nlohmann::json& hashObject); + bool IsValidModuleHash(const std::string& moduleName, const nlohmann::json& hashObject); + + int64_t GetModuleTimestamp(const std::string& moduleName); + int64_t GetModuleTimestamp(HMODULE hModule); + +protected: + + class AddressCounter + { + public: + AddressCounter(); + void Add(uintptr_t address); + uintptr_t GetMax(); + + private: + std::map m_Counts; + }; + + struct OffsetSignature + { + std::string pattern; + uint32_t offset; + }; + + struct PatternInfo + { + std::vector signatures; + std::vector xrefs; + }; + + std::map> m_ModulePatterns; + std::map> m_CacheOffsets; + bool m_CacheChanged; + std::string m_LoadCache; + + std::map m_ComputedHashes; + + + struct RegionInfo + { + uintptr_t base; + size_t size; + }; + + struct ModuleInfo + { + HMODULE handle = 0; + uintptr_t base = 0; + size_t size = 0; + std::string filePath; + std::vector execRegions; + }; + + void AddOffset(const std::string& moduleName, const std::string& name, uintptr_t offset); + + void SaveModuleHash(HMODULE hModule, nlohmann::json& outObject); + void SaveModuleHash(const std::string& moduleName, nlohmann::json& outObject); + + ModuleInfo& GetModuleInfo(HMODULE hModule); + ModuleInfo& GetModuleInfo(const std::string& moduleName); + + virtual void ParseSignatureJson(void* signatureJson); + + virtual uintptr_t Search(const std::string& moduleName, const std::string& name, const PatternInfo& info); + uintptr_t SearchFunction(const std::string& moduleName, const std::string& pattern); + + uintptr_t SearchXref(const std::string& moduleName, const OffsetSignature& xrefPattern); + uintptr_t SearchXref(HMODULE hModule, const OffsetSignature& xrefPattern); + + uintptr_t SearchInModule(const std::string& moduleName, const std::string& pattern); + uintptr_t SearchInModule(HMODULE hModule, const std::string& pattern); + + uintptr_t GetOffsetInt(const nlohmann::json& value); + std::string GetOffsetStr(uintptr_t offset); + + template + std::optional SearchValue(HMODULE hModule, const std::string& pattern, uint32_t codeOffset) + { + auto address = SearchInModule(hModule, pattern); + if (address == 0) + return {}; + + int offset = util::ReadMapped((void*)address, codeOffset, true); + return reinterpret_cast(address + offset + codeOffset + sizeof(int)); + } + + enum class SRStatus + { + Unique, + NotUnique, + NotFound + }; + + struct SearchResult + { + SRStatus status; + uintptr_t value; + }; + + SearchResult SearchSignature(PBYTE input, size_t inputLen, const std::vector>& sig); + SearchResult SearchSignatureAVX2(PBYTE input, size_t inputLen, const std::vector>& sig); + SearchResult SearchInRange(uintptr_t start, uintptr_t end, const std::vector>& pattern); + + virtual bool IsFunctionEntry(uintptr_t address); + virtual uintptr_t FindFunctionEntry(uintptr_t address); +}; + diff --git a/cheat-base/src/cheat-base/PipeTransfer.cpp b/cheat-base/src/cheat-base/PipeTransfer.cpp new file mode 100644 index 0000000..e4ef042 --- /dev/null +++ b/cheat-base/src/cheat-base/PipeTransfer.cpp @@ -0,0 +1,87 @@ +#include +#include "PipeTransfer.h" + +#include +#include + +#include + +PipeTransfer::PipeTransfer(const std::string& name) +{ + std::stringstream ss; + ss << "\\\\.\\pipe\\" << name; + this->m_Name = ss.str(); + this->m_Pipe = 0; +} + +PipeTransfer::~PipeTransfer() +{ + if (m_Pipe) + CloseHandle(m_Pipe); +} + +bool PipeTransfer::Create() +{ + if (m_Pipe) + CloseHandle(m_Pipe); + m_Pipe = CreateNamedPipe(m_Name.c_str(), PIPE_ACCESS_DUPLEX, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT, 1, 256 * 1024, 16, INFINITE, NULL); + return IsPipeOpened(); +} + +bool PipeTransfer::IsPipeOpened() +{ + return m_Pipe && m_Pipe != INVALID_HANDLE_VALUE; +} + +bool PipeTransfer::Connect() +{ + if (IsPipeOpened()) + CloseHandle(m_Pipe); + + m_Pipe = CreateFile(m_Name.c_str(), GENERIC_READ | GENERIC_WRITE, 0, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + + return IsPipeOpened(); +} + +bool PipeTransfer::WaitForConnection() +{ + return ConnectNamedPipe(m_Pipe, nullptr); +} + +void PipeTransfer::ReadBytes(void* buffer, size_t size) +{ + if (size == 0 || !IsPipeOpened()) return; + + DWORD readCount = 0; + auto result = ReadFile(m_Pipe, buffer, size, &readCount, nullptr); + if (!result || readCount < size) + { + LOG_LAST_ERROR("Failed read from pipe."); + CloseHandle(m_Pipe); + m_Pipe = 0; + } +} + +void PipeTransfer::WriteBytes(void* buffer, size_t size) +{ + if (size == 0 || !IsPipeOpened()) return; + + DWORD writenCount = 0; + auto result = WriteFile(m_Pipe, buffer, size, &writenCount, nullptr); + if (!result || writenCount < size) + { + LOG_LAST_ERROR("Failed write to pipe."); + CloseHandle(m_Pipe); + m_Pipe = 0; + } +} + +void PipeTransfer::ReadObject(PipeSerializedObject& object) +{ + object.Read(this); +} + +void PipeTransfer::WriteObject(PipeSerializedObject& object) +{ + object.Write(this); +} diff --git a/cheat-base/src/cheat-base/PipeTransfer.h b/cheat-base/src/cheat-base/PipeTransfer.h new file mode 100644 index 0000000..8b91386 --- /dev/null +++ b/cheat-base/src/cheat-base/PipeTransfer.h @@ -0,0 +1,82 @@ +#pragma once + +#include +#include + +typedef unsigned char byte; + +class PipeTransfer; +class PipeSerializedObject +{ +public: + virtual void Write(PipeTransfer* transfer) = 0; + virtual void Read(PipeTransfer* transfer) = 0; +}; + +class PipeTransfer +{ +public: + PipeTransfer(const std::string& name); + ~PipeTransfer(); + + bool Create(); + bool Connect(); + bool WaitForConnection(); + bool IsPipeOpened(); + + void ReadBytes(void* buffer, size_t size); + void WriteBytes(void* buffer, size_t size); + + void ReadObject(PipeSerializedObject& object); + void WriteObject(PipeSerializedObject& object); + + template + void Read(T& value) + { + ReadBytes(&value, sizeof(T)); + } + + template + void Write(const T& val) + { + WriteBytes(const_cast(&val), sizeof(T)); + } + + template<> + void Read(std::vector& vector) + { + size_t size; Read(size); + vector.clear(); + vector.resize(size); + ReadBytes(vector.data(), size); + } + + template<> + void Write(const std::vector& value) + { + Write(value.size()); + WriteBytes(const_cast(value.data()), value.size()); + } + + template<> + void Read(std::string& value) + { + size_t size; Read(size); + value.clear(); + value.resize(size); + ReadBytes(value.data(), size); + } + + template<> + void Write(const std::string& value) + { + Write(value.length()); + WriteBytes(const_cast(value.data()), value.length()); + } + +private: + + std::string m_Name; + HANDLE m_Pipe; +}; + diff --git a/cheat-base/src/cheat-base/ResourceLoader.cpp b/cheat-base/src/cheat-base/ResourceLoader.cpp new file mode 100644 index 0000000..9f40d05 --- /dev/null +++ b/cheat-base/src/cheat-base/ResourceLoader.cpp @@ -0,0 +1,49 @@ +#include "pch.h" +#include "ResourceLoader.h" +#include "util.h" + +std::string ResourceLoader::Load(const char* name, const char* type) +{ + LPBYTE pData = nullptr; + DWORD size = 0; + if (!LoadEx(name, type, pData, size)) + { + LOG_LAST_ERROR("Failed to load resource %s", name); + return {}; + } + + return std::string(reinterpret_cast(pData), size); +} + +std::string ResourceLoader::Load(int resID, const char* type) +{ + return ResourceLoader::Load(MAKEINTRESOURCE(resID), type); +} + +bool ResourceLoader::LoadEx(const char* name, const char* type, LPBYTE& pDest, DWORD& size) +{ + if (s_Handle == nullptr) + return false; + + HRSRC hResource = FindResource(s_Handle, name, type); + if (hResource) { + HGLOBAL hGlob = LoadResource(s_Handle, hResource); + if (hGlob) { + size = SizeofResource(s_Handle, hResource); + pDest = static_cast(LockResource(hGlob)); + if (size > 0 && pDest) + return true; + } + } + return false; +} + +bool ResourceLoader::LoadEx(int resId, const char* type, LPBYTE& pDest, DWORD& size) +{ + return ResourceLoader::LoadEx(MAKEINTRESOURCE(resId), type, pDest, size); +} + +void ResourceLoader::SetModuleHandle(HMODULE handle) +{ + s_Handle = handle; +} diff --git a/cheat-base/src/cheat-base/ResourceLoader.h b/cheat-base/src/cheat-base/ResourceLoader.h new file mode 100644 index 0000000..bd41926 --- /dev/null +++ b/cheat-base/src/cheat-base/ResourceLoader.h @@ -0,0 +1,16 @@ +#pragma once +class ResourceLoader +{ +public: + static std::string Load(const char* name, const char* type); + static std::string Load(int resID, const char* type); + + static bool LoadEx(const char* name, const char* type, LPBYTE& pDest, DWORD& size); + static bool LoadEx(int resId, const char* type, LPBYTE& pDest, DWORD& size); + + static void SetModuleHandle(HMODULE handle); + +private: + inline static HMODULE s_Handle = nullptr; +}; + diff --git a/cheat-base/src/cheat-base/cheat/CheatManagerBase.cpp b/cheat-base/src/cheat-base/cheat/CheatManagerBase.cpp new file mode 100644 index 0000000..aa55871 --- /dev/null +++ b/cheat-base/src/cheat-base/cheat/CheatManagerBase.cpp @@ -0,0 +1,551 @@ +#include +#include "CheatManagerBase.h" + +#include + +#include +#include +#include + +namespace cheat +{ + + void CheatManagerBase::Init(LPBYTE pFontData, DWORD dFontDataSize) + { + renderer::Init(pFontData, dFontDataSize); + + events::RenderEvent += MY_METHOD_HANDLER(CheatManagerBase::OnRender); + events::KeyUpEvent += MY_METHOD_HANDLER(CheatManagerBase::OnKeyUp); + events::WndProcEvent += MY_METHOD_HANDLER(CheatManagerBase::OnWndProc); + } + + CheatManagerBase::CheatManagerBase(): + NF(m_SelectedSection, "", "General", 0), + m_IsBlockingInput(true), + m_IsPrevCursorActive(false) + { + } + + void CheatManagerBase::DrawExternal() const + { + for (auto& feature : m_Features) + { + ImGui::PushID(&feature); + feature->DrawExternal(); + ImGui::PopID(); + } + } + + void CheatManagerBase::DrawMenu() + { + if (m_ModuleOrder.empty()) + return; + + static std::string* current = &m_ModuleOrder[m_SelectedSection]; + + ImGui::SetNextWindowSize(ImVec2(600, 300), ImGuiCond_FirstUseEver); + + if (!ImGui::Begin("CCGenshin (By Callow)")) + { + ImGui::End(); + return; + } + + ImGui::BeginGroup(); + + if (ImGui::Checkbox("Block key/mouse", &m_IsBlockingInput)) + { + renderer::SetInputLock(this, m_IsBlockingInput); + } + + if (ImGui::BeginListBox("##listbox 2", ImVec2(175, -FLT_MIN))) + { + size_t index = 0; + for (auto& moduleName : m_ModuleOrder) + { + const bool is_selected = (current == &moduleName); + if (ImGui::Selectable(moduleName.c_str(), is_selected)) + { + current = &moduleName; + m_SelectedSection = index; + } + + if (is_selected) + ImGui::SetItemDefaultFocus(); + index++; + } + ImGui::EndListBox(); + } + + ImGui::EndGroup(); + + ImGui::SameLine(); + + ImGui::BeginGroup(); + + DrawProfileLine(); + + ImGuiWindowFlags window_flags = ImGuiWindowFlags_None; + ImGui::PushStyleVar(ImGuiStyleVar_ChildRounding, 5.0f); + ImGui::BeginChild("ChildR", ImVec2(0, 0), true, window_flags); + + auto& sections = m_FeatureMap[*current]; + auto emptyName = std::string(); + if (sections.count(emptyName) > 0) + DrawMenuSection(emptyName, sections[""]); + + for (auto& [sectionName, features] : sections) + { + if (sectionName.empty()) + continue; + + DrawMenuSection(sectionName, features); + } + + ImGui::EndChild(); + ImGui::PopStyleVar(); + + ImGui::EndGroup(); + + ImGui::End(); + } + + void CheatManagerBase::DrawMenuSection(const std::string& sectionName, const std::vector& features) const + { + if (!sectionName.empty()) + BeginGroupPanel(sectionName.c_str(), ImVec2(-1, 0)); + + for (auto& feature : features) + { + ImGui::PushID(&feature); + feature->DrawMain(); + ImGui::PopID(); + } + + if (!sectionName.empty()) + EndGroupPanel(); + } + + void CheatManagerBase::DrawProfileGlobalActivities() + { + if (ImGui::Button("Add new profile")) + { + std::unordered_set profileNameSet = { config::GetProfiles().begin(), config::GetProfiles().end() }; + size_t index = 0; + std::string name {}; + do + { + index++; + std::string newName = fmt::format("Profile #{}", index); + if (profileNameSet.count(newName) == 0) + name = newName; + + } while (name.empty()); + + config::CreateProfile(name, false); + } + } + + void CheatManagerBase::DrawProfileEntryActivities(const std::string& profileName) + { + bool isPopupOpen = ImGui::IsRenamePopupOpened(); + + if (isPopupOpen) + ImGui::BeginDisabled(); + + if (ImGui::SmallButton("Rnm")) + ImGui::OpenRenamePopup(profileName); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Rename"); + + if (isPopupOpen) + ImGui::EndDisabled(); + + std::string nameBuffer; + if (ImGui::DrawRenamePopup(nameBuffer)) + { + config::RenameProfile(profileName, nameBuffer); + } + + ImGui::SameLine(); + + if (ImGui::SmallButton("Del")) + config::RemoveProfile(profileName); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Delete"); + } + + void CheatManagerBase::DrawProfileEntry(const std::string& profileName) + { + ImGui::Text(profileName.c_str()); + } + + void CheatManagerBase::DrawProfileTableHeader() + { + ImGui::TableSetupColumn("Name"); + } + + int CheatManagerBase::GetProfileTableColumnCount() + { + return 1; + } + + void CheatManagerBase::DrawProfileConfiguration() + { + static ImGuiTableFlags flags = + ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable | ImGuiTableFlags_Hideable + | ImGuiTableFlags_RowBg | ImGuiTableFlags_BordersOuter | ImGuiTableFlags_BordersV | ImGuiTableFlags_NoBordersInBody + | ImGuiTableFlags_ScrollY; + if (ImGui::BeginTable("ProfileTable", GetProfileTableColumnCount() + 1, flags, + ImVec2(0.0f, ImGui::GetTextLineHeightWithSpacing() * 10), 0.0f)) + { + DrawProfileTableHeader(); + ImGui::TableSetupColumn("Actions"); + ImGui::TableSetupScrollFreeze(0, 1); + ImGui::TableHeadersRow(); + + // Copy profiles names + auto profiles = config::GetProfiles(); + for (auto& profile : profiles) + { + ImGui::TableNextRow(); + ImGui::TableNextColumn(); + + ImGui::PushID(profile.c_str()); + DrawProfileEntry(profile); + ImGui::TableNextColumn(); + + DrawProfileEntryActivities(profile); + ImGui::PopID(); + } + + ImGui::EndTable(); + } + + DrawProfileGlobalActivities(); + } + + void CheatManagerBase::DrawProfileLine() + { + if (m_IsProfileConfigurationShowed) + ImGui::BeginDisabled(); + + bool buttonPressed = ImGui::Button("Configure..."); + + if (m_IsProfileConfigurationShowed) + ImGui::EndDisabled(); + + if (buttonPressed) + m_IsProfileConfigurationShowed = !m_IsProfileConfigurationShowed; + + ImGui::SameLine(); + + auto& profiles = config::GetProfiles(); + auto& currentProfile = config::CurrentProfileName(); + + constexpr float width = 200.0f; + ImGui::SetNextItemWidth(width); + if (ImGui::BeginCombo("Profile", currentProfile.c_str())) + { + for (auto& name : profiles) + { + bool is_selected = (currentProfile == name); + if (ImGui::Selectable(name.c_str(), is_selected)) + config::ChangeProfile(name); + + if (ImGui::IsItemHovered() && CalcWidth(name) > width) + ShowHelpText(name.c_str()); + + if (is_selected) + ImGui::SetItemDefaultFocus(); + } + ImGui::EndCombo(); + } + } + + void CheatManagerBase::DrawStatus() const + { + // Drawing status window + ImGuiWindowFlags flags = ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoBackground | + ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoBringToFrontOnFocus | + ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse; + + auto& settings = feature::Settings::GetInstance(); + if (!settings.f_StatusMove) + flags |= ImGuiWindowFlags_NoInputs | ImGuiWindowFlags_NoMove; + + ImGui::Begin("Cheat status", nullptr, flags); + + static ImGuiTableFlags tabFlags = ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg; + + if (ImGui::BeginTable("activesTable", 1, tabFlags)) + { + ImGui::TableSetupColumn("Active features"); + ImGui::TableHeadersRow(); + + int row = 0; + + for (auto& feature : m_Features) + { + if (feature->NeedStatusDraw()) + { + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); + + feature->DrawStatus(); + + ImU32 row_bg_color = ImGui::GetColorU32( + ImVec4(0.2f + row * 0.1f, 0.1f + row * 0.05f, 0.1f + row * 0.03f, 0.85f)); + ImGui::TableSetBgColor(ImGuiTableBgTarget_RowBg0, row_bg_color); + row++; + } + } + ImGui::EndTable(); + } + + ImGui::End(); + } + + void CheatManagerBase::DrawInfo() + { + auto& settings = feature::Settings::GetInstance(); + + // Drawing status window + ImGuiWindowFlags flags = ImGuiWindowFlags_NoDecoration | + ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoBringToFrontOnFocus | + ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse; + + if (!settings.f_InfoMove) + flags |= ImGuiWindowFlags_NoInputs | ImGuiWindowFlags_NoMove; + + auto checkLambda = [](const Feature* feat) { return feat->NeedInfoDraw(); }; + bool showAny = std::any_of(m_Features.begin(), m_Features.end(), checkLambda); + if (!showAny && !settings.f_StatusMove) + return; + + ImGui::PushStyleColor(ImGuiCol_WindowBg, ImVec4(0.04f, 0.05f, 0.05f, 0.90f)); + ImGui::Begin("Info window", nullptr, flags); + ImGui::PopStyleColor(); + + if (!showAny) + { + ImGui::Text("Nothing here"); + ImGui::End(); + return; + } + + for (auto& moduleName : m_ModuleOrder) + { + auto& sections = m_FeatureMap[moduleName]; + bool moduleShowAny = std::any_of(sections.begin(), sections.end(), + [](const auto& iter) + { + return std::any_of(iter.second.begin(), iter.second.end(), + [](const auto feat) + { + return feat->NeedInfoDraw(); + }); + } + ); + if (!moduleShowAny) + continue; + + BeginGroupPanel(moduleName.c_str(), ImVec2(-1, 0)); + + for (auto& [sectionName, features] : sections) + { + for (auto& feature : features) + { + if (!feature->NeedInfoDraw()) + continue; + + ImGui::PushID(&feature); + feature->DrawInfo(); + ImGui::PopID(); + } + } + + EndGroupPanel(); + } + + ImGui::End(); + } + + void CheatManagerBase::DrawFps() + { + auto& settings = feature::Settings::GetInstance(); + + ImGuiWindowFlags flags = ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoFocusOnAppearing + | ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_AlwaysAutoResize; + + if (!settings.f_FpsMove) + flags |= ImGuiWindowFlags_NoInputs | ImGuiWindowFlags_NoMove; + + if (ImGui::Begin("FPS", nullptr, flags)) + { + ImGui::Text("FPS: %.1f", ImGui::GetIO().Framerate); + ImGui::End(); + } + } + + void CheatManagerBase::DrawNotifications() + { + ImGui::RenderNotifications(); + } + + + void CheatManagerBase::OnRender() + { + auto& settings = feature::Settings::GetInstance(); + + DrawExternal(); + + if (s_IsMenuShowed) + DrawMenu(); + + if (m_IsProfileConfigurationShowed) + { + ImGui::SetNextWindowSize({ 0, ImGui::GetTextLineHeightWithSpacing() * 11 }, ImGuiCond_FirstUseEver); + if (ImGui::Begin("Config profile configuration", &m_IsProfileConfigurationShowed)) + DrawProfileConfiguration(); + + ImGui::End(); + } + + if (settings.f_StatusShow) + DrawStatus(); + + if (settings.f_InfoShow) + DrawInfo(); + + if (settings.f_FpsShow) + DrawFps(); + + if (settings.f_NotificationsShow) + DrawNotifications(); + + if (settings.f_MenuKey.value().IsReleased() && !ImGui::IsAnyItemActive()) + ToggleMenuShow(); + } + + void CheatManagerBase::CheckToggles(short key) const + { + if (s_IsMenuShowed || renderer::IsInputLocked()) + return; + + auto& settings = feature::Settings::GetInstance(); + if (!settings.f_HotkeysEnabled) + return; + + for (auto& field : config::GetFields>()) + { + auto& toggle = field.value(); + if (toggle.value.IsPressed(key)) + { + toggle.enabled = !toggle.enabled; + field.FireChanged(); + + std::string title = fmt::format("{}: {}", field.friendName(), (toggle ? "Enabled" : "Disabled")); + ImGuiToast toast(ImGuiToastType_None, settings.f_NotificationsDelay); + toast.set_title(title.c_str()); + ImGui::InsertNotification(toast); + } + } + } + + bool menuToggled = false; + + void CheatManagerBase::ToggleMenuShow() + { + s_IsMenuShowed = !s_IsMenuShowed; + renderer::SetInputLock(this, s_IsMenuShowed && m_IsBlockingInput); + menuToggled = true; + } + + void CheatManagerBase::OnKeyUp(short key, bool& cancelled) + { + auto& settings = feature::Settings::GetInstance(); + if (!settings.f_MenuKey.value().IsPressed(key)) + { + CheckToggles(key); + return; + } + } + + void CheatManagerBase::OnWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, bool& canceled) + { + if (!menuToggled) + return; + + menuToggled = false; + + if (s_IsMenuShowed) + { + m_IsPrevCursorActive = CursorGetVisibility(); + if (!m_IsPrevCursorActive) + CursorSetVisibility(true); + } + else if (!m_IsPrevCursorActive) + CursorSetVisibility(false); + } + + bool CheatManagerBase::IsMenuShowed() + { + return s_IsMenuShowed; + } + + void CheatManagerBase::PushFeature(Feature* feature) + { + m_Features.push_back(feature); + + auto& info = feature->GetGUIInfo(); + if (m_FeatureMap.count(info.moduleName) == 0) + { + m_FeatureMap[info.moduleName] = {}; + m_ModuleOrder.push_back(info.moduleName); + } + + auto& sectionMap = m_FeatureMap[info.moduleName]; + std::string sectionName = info.isGroup ? info.name : std::string(); + if (sectionMap.count(sectionName) == 0) + sectionMap[sectionName] = {}; + + auto& featureList = sectionMap[sectionName]; + featureList.push_back(feature); + } + + void CheatManagerBase::AddFeature(Feature* feature) + { + PushFeature(feature); + } + + void CheatManagerBase::AddFeatures(std::vector features) + { + for (auto& feature : features) + { + PushFeature(feature); + } + } + + void CheatManagerBase::SetModuleOrder(std::vector moduleOrder) + { + std::unordered_set moduleSet; + moduleSet.insert(m_ModuleOrder.begin(), m_ModuleOrder.end()); + + m_ModuleOrder.clear(); + + for (auto& moduleName : moduleOrder) + { + if (m_FeatureMap.count(moduleName) == 0) + continue; + + m_ModuleOrder.push_back(moduleName); + moduleSet.erase(moduleName); + } + + for (auto& moduleName : moduleSet) + { + m_ModuleOrder.push_back(moduleName); + } + } +} diff --git a/cheat-base/src/cheat-base/cheat/CheatManagerBase.h b/cheat-base/src/cheat-base/cheat/CheatManagerBase.h new file mode 100644 index 0000000..fd8f2dc --- /dev/null +++ b/cheat-base/src/cheat-base/cheat/CheatManagerBase.h @@ -0,0 +1,76 @@ +#pragma once +#include +#include +#include + +#include +#include +#include + +#include + +namespace cheat +{ + class CheatManagerBase + { + public: + + static bool IsMenuShowed(); + + //static CheatManagerBase& GetInstance(); + CheatManagerBase(CheatManagerBase const&) = delete; + void operator=(CheatManagerBase const&) = delete; + + void AddFeature(Feature* feature); + void AddFeatures(std::vector features); + + void SetModuleOrder(std::vector moduleOrder); + + void OnKeyUp(short key, bool& cancelled); + void OnWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, bool& cancelled); + void OnRender(); + + void Init(LPBYTE pFontData, DWORD dFontDataSize); + + virtual void CursorSetVisibility(bool visibility) = 0; + virtual bool CursorGetVisibility() = 0; + + protected: + config::Field m_SelectedSection; + + std::vector m_Features; + std::vector m_ModuleOrder; + std::map>> m_FeatureMap; + + inline static bool s_IsMenuShowed = false; + bool m_IsBlockingInput; + bool m_IsPrevCursorActive; + bool m_IsProfileConfigurationShowed; + + explicit CheatManagerBase(); + + void DrawExternal() const; + + void DrawMenu(); + void DrawMenuSection(const std::string& sectionName, const std::vector& features) const; + + virtual void DrawProfileGlobalActivities(); + virtual void DrawProfileEntryActivities(const std::string&profileName); + virtual void DrawProfileEntry(const std::string& profileName); + virtual void DrawProfileTableHeader(); + virtual int GetProfileTableColumnCount(); + virtual void DrawProfileConfiguration(); + virtual void DrawProfileLine(); + + virtual void DrawStatus() const; + virtual void DrawInfo(); + void DrawFps(); + static void DrawNotifications(); + void PushFeature(Feature* feature); + void CheckToggles(short key) const; + + void ToggleMenuShow(); + }; +} + + diff --git a/cheat-base/src/cheat-base/cheat/Feature.h b/cheat-base/src/cheat-base/cheat/Feature.h new file mode 100644 index 0000000..44160ed --- /dev/null +++ b/cheat-base/src/cheat-base/cheat/Feature.h @@ -0,0 +1,38 @@ +#pragma once + +#include + +namespace cheat +{ + struct FeatureGUIInfo + { + std::string name; + std::string moduleName; + bool isGroup; + }; + + class Feature + { + public: + Feature(Feature const&) = delete; + void operator=(Feature const&) = delete; + + // GUI handlers + virtual const FeatureGUIInfo& GetGUIInfo() const = 0; + + virtual void DrawMain() = 0; + + virtual bool NeedStatusDraw() const { return false; }; + virtual void DrawStatus() { }; + + virtual bool NeedInfoDraw() const { return false; }; + virtual void DrawInfo() { }; + + virtual void DrawExternal() { }; + + protected: + Feature() { }; + }; +} + + diff --git a/cheat-base/src/cheat-base/cheat/misc/Settings.cpp b/cheat-base/src/cheat-base/cheat/misc/Settings.cpp new file mode 100644 index 0000000..d44fcf0 --- /dev/null +++ b/cheat-base/src/cheat-base/cheat/misc/Settings.cpp @@ -0,0 +1,140 @@ +#include +#include "Settings.h" + +#include +#include +#include + +namespace cheat::feature +{ + Settings::Settings() : Feature(), + NF(f_MenuKey, "Show Cheat Menu Key", "General", Hotkey(VK_F1)), + NF(f_HotkeysEnabled, "Hotkeys Enabled", "General", true), + NF(f_FontSize, "Font size", "General", 16.0f), + + NF(f_StatusMove, "Move Status Window", "General::StatusWindow", true), + NF(f_StatusShow, "Show Status Window", "General::StatusWindow", true), + + NF(f_InfoMove, "Move Info Window", "General::InfoWindow", true), + NF(f_InfoShow, "Show Info Window", "General::InfoWindow", true), + + NF(f_FpsMove, "Move FPS Indicator", "General::FPS", false), + NF(f_FpsShow, "Show FPS Indicator", "General::FPS", true), + + NF(f_NotificationsShow, "Show Notifications", "General::Notify", true), + NF(f_NotificationsDelay, "Notifications Delay", "General::Notify", 500), + + NF(f_FileLogging, "File Logging", "General::Logging", false), + NF(f_ConsoleLogging, "Console Logging", "General::Logging", true), + + NF(f_FastExitEnable, "Fast Exit", "General::FastExit", false), + NF(f_HotkeyExit, "Hotkeys", "General::FastExit", Hotkey(VK_F12)) + + { + renderer::SetGlobalFontSize(f_FontSize); + f_HotkeyExit.value().PressedEvent += MY_METHOD_HANDLER(Settings::OnExitKeyPressed); + } + + const FeatureGUIInfo& Settings::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "", "Settings", false }; + return info; + } + + void Settings::DrawMain() + { + + BeginGroupPanel("General", ImVec2(-1, 0)); + { + ConfigWidget(f_MenuKey, false, + "Key to toggle main menu visibility. Cannot be empty.\n"\ + "If you forget this key, you can see or set it in your config file."); + ConfigWidget(f_HotkeysEnabled, "Enable hotkeys."); + if (ConfigWidget(f_FontSize, 1, 8, 64, "Font size for cheat interface.")) + { + f_FontSize = std::clamp(f_FontSize.value(), 8, 64); + renderer::SetGlobalFontSize(f_FontSize); + } + } + EndGroupPanel(); + + BeginGroupPanel("Logging", ImVec2(-1, 0)); + { + bool consoleChanged = ConfigWidget(f_ConsoleLogging, + "Enable console for logging information (changes will take effect after relaunch)"); + if (consoleChanged && !f_ConsoleLogging) + { + Logger::SetLevel(Logger::Level::None, Logger::LoggerType::ConsoleLogger); + } + + bool fileLogging = ConfigWidget(f_FileLogging, + "Enable file logging (changes will take effect after relaunch).\n" \ + "A folder in the app directory will be created for logs."); + if (fileLogging && !f_FileLogging) + { + Logger::SetLevel(Logger::Level::None, Logger::LoggerType::FileLogger); + } + } + EndGroupPanel(); + + BeginGroupPanel("Status Window", ImVec2(-1, 0)); + { + ConfigWidget(f_StatusShow); + ConfigWidget(f_StatusMove, "Allow moving of 'Status' window."); + } + EndGroupPanel(); + + BeginGroupPanel("Info Window", ImVec2(-1, 0)); + { + ConfigWidget(f_InfoShow); + ConfigWidget(f_InfoMove, "Allow moving of 'Info' window."); + } + EndGroupPanel(); + + BeginGroupPanel("FPS indicator", ImVec2(-1, 0)); + { + ConfigWidget(f_FpsShow); + ConfigWidget(f_FpsMove, "Allow moving of 'FPS Indicator' window."); + } + EndGroupPanel(); + + BeginGroupPanel("Show Notifications", ImVec2(-1, 0)); + { + ConfigWidget(f_NotificationsShow, "Notifications on the bottom-right corner of the window will be displayed."); + ConfigWidget(f_NotificationsDelay, 1,1,10000, "Delay in milliseconds between notifications."); + } + EndGroupPanel(); + + BeginGroupPanel("Fast Exit", ImVec2(-1, 0)); + { + ConfigWidget("Enabled", + f_FastExitEnable, + "Enable Fast Exit.\n" + ); + if (!f_FastExitEnable) + ImGui::BeginDisabled(); + + ConfigWidget("Key", f_HotkeyExit, true, + "Key to exit the game."); + + if (!f_FastExitEnable) + ImGui::EndDisabled(); + } + EndGroupPanel(); + } + + Settings& Settings::GetInstance() + { + static Settings instance; + return instance; + } + + void Settings::OnExitKeyPressed() + { + if (!f_FastExitEnable || CheatManagerBase::IsMenuShowed()) + return; + + ExitProcess(0); + } +} + diff --git a/cheat-base/src/cheat-base/cheat/misc/Settings.h b/cheat-base/src/cheat-base/cheat/misc/Settings.h new file mode 100644 index 0000000..1a00653 --- /dev/null +++ b/cheat-base/src/cheat-base/cheat/misc/Settings.h @@ -0,0 +1,44 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class Settings : public Feature + { + public: + config::Field f_MenuKey; + config::Field f_HotkeysEnabled; + config::Field f_FontSize; + + config::Field f_StatusMove; + config::Field f_StatusShow; + + config::Field f_InfoMove; + config::Field f_InfoShow; + + config::Field f_FpsShow; + config::Field f_FpsMove; + + config::Field f_NotificationsShow; + config::Field f_NotificationsDelay; + + config::Field f_ConsoleLogging; + config::Field f_FileLogging; + + config::Field f_FastExitEnable; + config::Field f_HotkeyExit; + + static Settings& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + private: + + void OnExitKeyPressed(); + Settings(); + }; +} + diff --git a/cheat-base/src/cheat-base/config/Config.cpp b/cheat-base/src/cheat-base/config/Config.cpp new file mode 100644 index 0000000..0b7b75b --- /dev/null +++ b/cheat-base/src/cheat-base/config/Config.cpp @@ -0,0 +1,383 @@ +#include +#include "config.h" + +#include +#include + +#include +#include + +namespace config +{ + TEvent<> ProfileChanged; + + static std::filesystem::path s_Filepath; + static nlohmann::json s_ConfigRoot; + static nlohmann::json s_EmptyJObject = nlohmann::json::object(); + + // Little speed-up + static nlohmann::json* s_ProfileRoot = nullptr; + static nlohmann::json* s_Profiles = nullptr; + static nlohmann::json* s_SharedRoot = nullptr; + + static std::mutex s_ProfileMutex; + static std::string s_ProfileName; + static std::vector s_ProfilesNames; + + static const int c_SaveDelay = 2000; + static TEvent<>* s_UpdateEvent = nullptr; + static std::atomic s_NextSaveTimestamp = 0; + + static std::vector> s_Entries; + + void LoadFile() + { + std::ifstream fileInput(s_Filepath, std::ios::in); + if (!fileInput.is_open()) + { + LOG_DEBUG("Failed to open config file, maybe it's first launch."); + return; + } + + try + { + s_ConfigRoot = nlohmann::json::parse(fileInput); + } + catch (nlohmann::json::parse_error& ex) + { + LOG_ERROR("Parse error at byte %llu", ex.byte); + return; + } + } + + void UpdateProfilesNames() + { + std::lock_guard _lock(s_ProfileMutex); + s_ProfilesNames.clear(); + for (auto& [name, _] : s_Profiles->items()) + { + s_ProfilesNames.push_back(name); + } + } + + void Initialize(const std::string& filePath) + { + s_ConfigRoot = {}; + s_Filepath = filePath; + LoadFile(); + + if (!s_ConfigRoot.contains("current_profile")) + { + s_ConfigRoot = { + { "shared", {} }, + { "profiles", {} }, + { "current_profile", ""} + }; + } + + s_Profiles = &s_ConfigRoot["profiles"]; + s_SharedRoot = &s_ConfigRoot["shared"]; + + if (s_ConfigRoot["current_profile"] == "") + CreateProfile("default"); + else + ChangeProfile(s_ConfigRoot["current_profile"]); + + UpdateProfilesNames(); + } + + void OnUpdate(); + + void SetupUpdate(TEvent<>* updateEvent) + { + s_UpdateEvent = updateEvent; + (*s_UpdateEvent) += FUNCTION_HANDLER(OnUpdate); + } + + void UpdateSaveTimestamp() + { + if (!s_UpdateEvent) + return; + + if (s_NextSaveTimestamp != 0) + return; + + s_NextSaveTimestamp = util::GetCurrentTimeMillisec() + c_SaveDelay; + } + + void ResetNotShared() + { + for (auto& entry : s_Entries) + { + if (!entry->IsShared()) + entry->Reset(); + } + } + + nlohmann::json& GetFieldJsonContainer(internal::FieldEntry* field, bool create = false) + { + if (field->GetContainer() != nullptr) + return *field->GetContainer(); + + nlohmann::json* rootContainer = s_ProfileRoot; + if (field->IsShared()) + rootContainer = s_SharedRoot; + + auto sectionParts = util::StringSplit("::", field->GetSection()); + for (auto& part : sectionParts) + { + if (!rootContainer->contains(part)) + { + if (!create) + return s_EmptyJObject; + + (*rootContainer)[part] = {}; + } + + rootContainer = &(*rootContainer)[part]; + } + + auto& sectionContainer = *rootContainer; + if (!sectionContainer.contains(field->GetName())) + { + if (!create) + return s_EmptyJObject; + + sectionContainer[field->GetName()] = {}; + } + + auto& fieldContainer = sectionContainer[field->GetName()]; + field->SetContainer(&fieldContainer); + return fieldContainer; + } + + void RemoveFieldContainer(internal::FieldEntry* field, const std::string& section, const std::string& name, bool shared) + { + field->SetContainer(nullptr); + + nlohmann::json* rootContainer = s_ProfileRoot; + if (shared) + rootContainer = s_SharedRoot; + + auto sectionParts = util::StringSplit("::", section); + std::list> nodePath; + for (auto& part : sectionParts) + { + if (!(*rootContainer).contains(part)) + return; + + nodePath.push_front({ part, rootContainer }); + rootContainer = &(*rootContainer)[part]; + } + + if (!rootContainer->contains(name)) + return; + + rootContainer->erase(name); + for (auto& [key, node] : nodePath) + { + if (!(*node)[key].empty()) + break; + + node->erase(key); + } + } + + void UpdateField(internal::FieldEntry* field) + { + auto& fieldContainer = GetFieldJsonContainer(field); + field->FromJson(fieldContainer); + } + + void UpdateNotShared() + { + ResetNotShared(); + for (auto& entry : s_Entries) + { + if (!entry->IsShared()) + UpdateField(entry.get()); + } + } + + void LoadField(internal::FieldEntry* field) + { + auto& fieldContainer = GetFieldJsonContainer(field, true); + + auto jObject = field->ToJson(); + if (jObject.empty()) + RemoveFieldContainer(field, field->GetSection(), field->GetName(), field->IsShared()); + else + fieldContainer = jObject; + } + + void LoadAll() + { + for (auto& entry : s_Entries) + { + LoadField(entry.get()); + } + } + + void OnFieldChanged(internal::FieldEntry* field) + { + LoadField(field); + Save(); + } + + void OnFieldMoved(internal::FieldEntry* field, const std::string& oldSection, bool oldShared) + { + RemoveFieldContainer(field, oldSection, field->GetName(), oldShared); + OnFieldChanged(field); + } + + void OnFieldReposition(internal::FieldEntry* field, const std::string& oldSection, bool oldShared) + { + field->SetContainer(nullptr); + UpdateField(field); + } + + void internal::AddField(std::shared_ptr field) + { + s_Entries.push_back(field); + UpdateField(field.get()); + field->ChangedEvent += FUNCTION_HANDLER(OnFieldChanged); + field->MovedEvent += FUNCTION_HANDLER(OnFieldMoved); + field->RepositionEvent += FUNCTION_HANDLER(OnFieldReposition); + } + + void Refresh() + { + LoadAll(); + Save(); + } + + void SaveInternal() + { + std::ofstream fileOutput(s_Filepath, std::ios::out); + if (!fileOutput.is_open()) + { + LOG_DEBUG("Failed to open config file for writing."); + UpdateSaveTimestamp(); + return; + } + + fileOutput << s_ConfigRoot.dump(4); + fileOutput.close(); + } + + void Save() + { + if (s_UpdateEvent) + { + UpdateSaveTimestamp(); + return; + } + SaveInternal(); + } + + void OnUpdate() + { + if (s_NextSaveTimestamp > 0 && util::GetCurrentTimeMillisec() > s_NextSaveTimestamp) + { + s_NextSaveTimestamp = 0; + SaveInternal(); + } + } + + void CreateProfile(const std::string& profileName, bool moveAfterCreate) + { + if (s_Profiles->contains(profileName)) + { + if (moveAfterCreate) + ChangeProfile(profileName); + return; + } + + (*s_Profiles)[profileName] = {}; + UpdateProfilesNames(); + + if (moveAfterCreate) + ChangeProfile(profileName); + Save(); + } + + void RemoveProfile(const std::string& profileName) + { + if (!s_Profiles->contains(profileName)) + return; + + if (s_Profiles->size() == 1) + return; + + if (s_ProfileName == profileName) + { + for (auto& [name, value] : s_Profiles->items()) + { + if (name != profileName) + { + ChangeProfile(name); + break; + } + } + } + + s_Profiles->erase(profileName); + UpdateProfilesNames(); + Save(); + } + + void RenameProfile(const std::string& oldProfileName, const std::string& newProfileName) + { + if (!s_Profiles->contains(oldProfileName) || s_Profiles->contains(newProfileName)) + return; + + if (s_ProfileName == oldProfileName) + s_ProfileRoot = nullptr; + + (*s_Profiles)[newProfileName] = (*s_Profiles)[oldProfileName]; + s_Profiles->erase(oldProfileName); + + if (s_ProfileRoot == nullptr) + { + for (auto& entry : s_Entries) + { + if (!entry->IsShared()) + entry->SetContainer(nullptr); + } + + ChangeProfile(newProfileName); + } + UpdateProfilesNames(); + Save(); + } + + void ChangeProfile(const std::string& profileName) + { + if (s_ProfileName == profileName) + return; + + if (!s_Profiles->contains(profileName)) + return; + + std::lock_guard _lock(s_ProfileMutex); + + s_ProfileRoot = &(*s_Profiles)[profileName]; + s_ProfileName = profileName; + + s_ConfigRoot["current_profile"] = profileName; + UpdateNotShared(); + Save(); + + ProfileChanged(); + } + + std::vector const& GetProfiles() + { + return s_ProfilesNames; + } + + std::string const& CurrentProfileName() + { + return s_ProfileName; + } +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/config/Config.h b/cheat-base/src/cheat-base/config/Config.h new file mode 100644 index 0000000..4b2a054 --- /dev/null +++ b/cheat-base/src/cheat-base/config/Config.h @@ -0,0 +1,66 @@ +#pragma once + +#include "Field.h" +#include +#include +#include "fields/Toggle.h" +#include "fields/Enum.h" + +#define NFEX(field, friendName, name, section, defaultValue, shared) field##(config::CreateField(friendName, name, section, shared, defaultValue)) +#define NFEXUP(field, friendName, name, section, shared, ...) field##(config::CreateField(friendName, name, section, shared, __VA_ARGS__)) + +#define NFB(field, name, section, defaultValue, shared) NFEX(field, name, config::internal::FixFieldName(#field), section, defaultValue, shared) +#define NFS(field, name, section, defaultValue) NFB(field, name, section, defaultValue, true) +#define NF(field, name, section, defaultValue) NFB(field, name, section, defaultValue, false) + +#define NFPB(field, name, section, shared, ...) NFEXUP(field, name, config::internal::FixFieldName(#field), section, shared, __VA_ARGS__) +#define NFPS(field, name, section, ...) NFPB(field, name, section, true, __VA_ARGS__) +#define NFP(field, name, section, ...) NFPB(field, name, section, false, __VA_ARGS__) + +namespace config +{ + namespace internal + { + template + std::vector s_Fields; + + void AddField(std::shared_ptr field); + + inline std::string FixFieldName(const std::string& fieldName) + { + if (fieldName.substr(1, 1) == "_") + return fieldName.substr(2); + return fieldName; + } + } + + template + Field CreateField(const std::string& friendName, const std::string& name, const std::string& section, bool multiProfile, Args... args) + { + auto newField = Field(friendName, name, section, T(args...), multiProfile); + internal::s_Fields>.push_back(newField); + internal::AddField(newField.entry()); + return newField; + } + + template + std::vector>& GetFields() + { + return internal::s_Fields>; + } + + void Initialize(const std::string& filePath); + void SetupUpdate(TEvent<>*); + + void Refresh(); + void Save(); + + void CreateProfile(const std::string& profileName, bool moveAfterCreate = true); + void RemoveProfile(const std::string& profileName); + void RenameProfile(const std::string& oldProfileName, const std::string& newProfileName); + void ChangeProfile(const std::string& profileName); + std::vector const& GetProfiles(); + std::string const& CurrentProfileName(); + + extern TEvent<> ProfileChanged; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/config/Field.h b/cheat-base/src/cheat-base/config/Field.h new file mode 100644 index 0000000..2e48a6e --- /dev/null +++ b/cheat-base/src/cheat-base/config/Field.h @@ -0,0 +1,15 @@ +#pragma once + +#include "internal/FieldSerialize.h" +#include "internal/FieldBase.h" +namespace config +{ + template + class Field : public internal::FieldBase + { + public: + using base = internal::FieldBase; + using base::operator=; + using base::base; + }; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/config/converters.h b/cheat-base/src/cheat-base/config/converters.h new file mode 100644 index 0000000..7882b20 --- /dev/null +++ b/cheat-base/src/cheat-base/config/converters.h @@ -0,0 +1,68 @@ +#pragma once + +#include +#include +#include + +namespace config::converters +{ + + template + inline nlohmann::json ToJson(const T& value) + { + return nlohmann::json(value); + } + + template + inline void FromJson(T& value, const nlohmann::json& jObject) + { + value = jObject.get(); + } + + // Here is storing all simple converters json<->class + + // ImColor + template<> + inline nlohmann::json ToJson(const ImColor& value) + { + return nlohmann::json((ImU32)value); + } + + template<> + inline void FromJson(ImColor& value, const nlohmann::json& jObject) + { + value = { (ImU32)jObject }; + } + + // Hotkey + template<> + inline nlohmann::json ToJson(const Hotkey& value) + { + auto keys = value.GetKeys(); + if (keys.empty()) + return {}; + + if (keys.size() == 1) + return keys[0]; + + return nlohmann::json(value.GetKeys()); + } + + template<> + inline void FromJson(Hotkey& value, const nlohmann::json& jObject) + { + if (jObject.is_null() || jObject.empty()) + return; + + if (jObject.is_number()) + { + value = { jObject.get() }; + return; + } + + value = { jObject.get>() }; + } + + // Enum + +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/config/fields/Enum.h b/cheat-base/src/cheat-base/config/fields/Enum.h new file mode 100644 index 0000000..96a29a4 --- /dev/null +++ b/cheat-base/src/cheat-base/config/fields/Enum.h @@ -0,0 +1,100 @@ +#pragma once + +#include + +namespace config +{ + + template + class Enum + { + public: + Enum() + { + static_assert(std::is_enum::value, "Must be an enum type"); + m_Value = T(); + } + + Enum(T enumValue) + { + static_assert(std::is_enum::value, "Must be an enum type"); + m_Value = enumValue; + } + + inline T value() const + { + return m_Value; + } + + inline T* pointer() const + { + return const_cast(&m_Value); + } + + inline operator T() + { + return value(); + } + + inline T* operator&() + { + return pointer(); + } + + inline uint32_t raw() const + { + return static_cast(m_Value); + } + + inline Enum& operator=(const T& other) + { + static_assert(std::is_enum::value, "Must be an enum type"); + m_Value = other; + return *this; + } + + inline Enum& operator=(const uint32_t& other) + { + m_Value = static_cast(other); + return *this; + } + + private: + T m_Value; + }; + + + //// Okay, close your eyes and don't look at this mess. (Please) + //template + //class Field> : public internal::FieldBase> + //{ + //public: + // using base = internal::FieldBase>; + // using base::operator=; + // using base::base; + + // operator T() const + // { + // return base::value(); + // } + //}; +} + +namespace nlohmann +{ + template + struct adl_serializer> { + static void to_json(json& j, const config::Enum& enumValue) + { + j = { + { "name", magic_enum::enum_name(enumValue.value()) }, + { "value", enumValue.raw() } + }; + } + + static void from_json(const json& j, config::Enum& value) + { + value = j["value"].get(); + } + }; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/config/fields/Toggle.h b/cheat-base/src/cheat-base/config/fields/Toggle.h new file mode 100644 index 0000000..558b8ab --- /dev/null +++ b/cheat-base/src/cheat-base/config/fields/Toggle.h @@ -0,0 +1,83 @@ +#pragma once + +#include +#include + +namespace config +{ + template + class Toggle + { + public: + bool enabled; + T value; + + Toggle(const T& value) : enabled(false), value(value) { } + + Toggle(bool enabled) : enabled(enabled), value() { } + + Toggle() : enabled(false), value() { } + + inline operator bool&() + { + return enabled; + } + + inline operator T&() + { + return value; + } + + inline bool operator==(const Toggle& rhs) + { + return rhs.enabled == enabled && rhs.value == value; + } + }; + + // Okay, close your eyes and don't look at this mess. (Please) + template + class Field> : public internal::FieldBase> + { + public: + using base = internal::FieldBase>; + using base::operator=; + using base::base; + + operator bool() const + { + return base::value(); + } + + operator T&() const + { + return base::value().value; + } + }; +} + +namespace nlohmann +{ + template + struct adl_serializer> { + static void to_json(json& j, const config::Toggle& toggle) + { + j = { + { "toggled", toggle.enabled }, + { "value", config::converters::ToJson(toggle.value) } + }; + } + + static void from_json(const json& j, config::Toggle& toggle) + { + if (j.is_boolean()) + { + toggle.enabled = j; + toggle.value = {}; + return; + } + + toggle.enabled = j["toggled"].get(); + config::converters::FromJson(toggle.value, j.contains("value") ? j["value"] : j["hotkey"]); // Support previously version + } + }; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/config/internal/FieldBase.h b/cheat-base/src/cheat-base/config/internal/FieldBase.h new file mode 100644 index 0000000..a1dfe90 --- /dev/null +++ b/cheat-base/src/cheat-base/config/internal/FieldBase.h @@ -0,0 +1,105 @@ +#pragma once + +#include "FieldEntry.h" +#include "FieldSerialize.h" + +namespace config::internal +{ + template + class FieldBase + { + public: + using _ValueType = T; + + explicit FieldBase() : p_Container(nullptr) {} + + explicit FieldBase(FieldSerialize* serializeFieldPtr) : p_Container(serializeFieldPtr) { } + + explicit FieldBase(const std::shared_ptr>& serializeField) : p_Container(serializeField) { } + + explicit FieldBase(const std::string friendlyName, const std::string name, const std::string section, T defaultValue, bool multiProfile = false) + : p_Container(std::make_shared>(friendlyName, name, section, defaultValue, multiProfile)) { } + + std::string name() const + { + return p_Container->GetName(); + } + + std::string friendName() const + { + return p_Container->GetFriendName(); + } + + std::string section() const + { + return p_Container->GetSection(); + } + + bool shared() const + { + return p_Container->IsShared(); + } + + T& value() const + { + return p_Container->m_Value; + } + + T* pointer() const + { + return &p_Container->m_Value; + } + + std::shared_ptr entry() const + { + return std::static_pointer_cast(p_Container); + } + + operator T& () const + { + return value(); + } + + operator T* () const + { + return pointer(); + } + + void FireChanged() const + { + p_Container->FireChanged(); + } + + void repos(const std::string& newSection, bool shared = false) + { + p_Container->Reposition(newSection, shared); + } + + void move(const std::string& newSection, bool shared = false) + { + p_Container->Move(newSection, shared); + } + + FieldBase& operator=(const T& other) + { + p_Container->m_Value = other; + p_Container->FireChanged(); + return *this; + } + + FieldBase& operator=(std::shared_ptr>& other) + { + p_Container = other; + return *this; + } + + FieldBase& operator=(FieldSerialize* other) + { + p_Container = std::make_shared>(other); + return *this; + } + + protected: + std::shared_ptr> p_Container; + }; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/config/internal/FieldEntry.h b/cheat-base/src/cheat-base/config/internal/FieldEntry.h new file mode 100644 index 0000000..942ee7b --- /dev/null +++ b/cheat-base/src/cheat-base/config/internal/FieldEntry.h @@ -0,0 +1,87 @@ +#pragma once +#include +#include +#include + +namespace config::internal +{ + class FieldEntry + { + public: + FieldEntry(const std::string& friendlyName, const std::string& name, const std::string& sectionName, bool multiProfile = false) + : m_FriendName(friendlyName), m_Name(name), m_Section(sectionName), m_MultiProfile(multiProfile), m_Container(nullptr) {} + + TEvent ChangedEvent; + TEvent MovedEvent; + TEvent RepositionEvent; + + inline virtual void FireChanged() + { + ChangedEvent(this); + } + + virtual nlohmann::json ToJson() = 0; + virtual void FromJson(const nlohmann::json& value) = 0; + virtual void Reset() = 0; + + inline bool IsShared() const + { + return m_MultiProfile; + } + + inline std::string GetName() const + { + return m_Name; + } + + inline std::string GetFriendName() const + { + return m_FriendName; + } + + inline std::string GetSection() const + { + return m_Section; + } + + inline nlohmann::json* GetContainer() const + { + return m_Container; + } + + inline void Reposition(const std::string& newSection, bool shared = false) + { + std::string oldSection = m_Section; + bool oldMultiProfile = m_MultiProfile; + + m_Section = newSection; + m_MultiProfile = shared; + + RepositionEvent(this, newSection, shared); + } + + inline void Move(const std::string& newSection, bool shared = false) + { + std::string oldSection = m_Section; + bool oldMultiProfile = m_MultiProfile; + + m_Section = newSection; + m_MultiProfile = shared; + + MovedEvent(this, oldSection, oldMultiProfile); + } + + inline void SetContainer(nlohmann::json* newContainer) + { + m_Container = nullptr; + } + + protected: + std::string m_Name; + std::string m_FriendName; + std::string m_Section; + bool m_MultiProfile; + + nlohmann::json* m_Container; + }; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/config/internal/FieldSerialize.h b/cheat-base/src/cheat-base/config/internal/FieldSerialize.h new file mode 100644 index 0000000..3f82e51 --- /dev/null +++ b/cheat-base/src/cheat-base/config/internal/FieldSerialize.h @@ -0,0 +1,42 @@ +#pragma once + +#include "FieldEntry.h" +#include + +namespace config::internal +{ + template + class FieldSerialize : public FieldEntry + { + public: + FieldSerialize(const std::string& friendlyName, const std::string& name, const std::string& sectionName, const T& defaultValue, bool multiProfile = false) : + FieldEntry(friendlyName, name, sectionName, multiProfile), m_Value(defaultValue), m_DefaultValue(defaultValue) { } + + nlohmann::json ToJson() override + { + if (m_Value == m_DefaultValue) + return {}; + + return converters::ToJson(m_Value); + } + + void FromJson(const nlohmann::json& jObject) override + { + if (jObject.empty()) + { + m_Value = m_DefaultValue; + return; + } + + converters::FromJson(m_Value, jObject); + } + + void Reset() override + { + m_Value = m_DefaultValue; + } + + T m_Value; + T m_DefaultValue; + }; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/events/event.hpp b/cheat-base/src/cheat-base/events/event.hpp new file mode 100644 index 0000000..b3e1483 --- /dev/null +++ b/cheat-base/src/cheat-base/events/event.hpp @@ -0,0 +1,211 @@ +// Taken from https://github.com/ZolotovPavel/EventHandling + +#pragma once + +#include +#include +#include +#include +#include +#include +#include "handlers/abstracteventhandler.hpp" +#include "handlers/eventhandlerptr.h" +#include "handlers/handlercast.hpp" +#include "joins/eventjoinwrapper.hpp" + +template +struct TypeHelper +{ + using TEventHandlerPtr = ::events::handlers::TEventHandlerPtr; + using TEventHandlerIt = typename std::list::const_iterator; +}; + + +namespace joins +{ + template class HandlerEventJoin; +} + +template +class IEvent +{ + public: + + template + ::events::EventJoin operator+=( TSome&& some ) + { + ::events::EventJoin result( *this, std::forward( some ) ); + result.join(); + return result; + } + + template + bool operator-=( TSome&& some ) + { + return removeHandler(::events::handlers::HandlerCast::template cast( some ) ); + } + + protected: + + using TMyEventHandlerPtr = typename TypeHelper::TEventHandlerPtr; + + IEvent() {} + + virtual bool isHandlerAdded( const TMyEventHandlerPtr& eventHandler ) const = 0; + virtual bool addHandler( TMyEventHandlerPtr eventHandler ) = 0; + virtual bool removeHandler( TMyEventHandlerPtr eventHandler ) = 0; + + friend class ::events::joins::HandlerEventJoin; +}; + +template +struct EventCore +{ + using TMyHandlerPtr = typename TypeHelper::TEventHandlerPtr; + + std::list handlers; + mutable std::shared_mutex coreMutex; +}; + + +template +class HandlerRunner +{ + using TMyEventCore = EventCore; + using TMyHandlerIt = typename TypeHelper::TEventHandlerIt; + + public: + + HandlerRunner( TMyEventCore& eventCore ) : + m_eventCore( eventCore ), + currentIt(), + wasRemoving( false ) + { + } + + void run( TParams... params ) + { + m_eventCore.coreMutex.lock_shared(); + + currentIt = m_eventCore.handlers.begin(); + wasRemoving = false; + while( currentIt != m_eventCore.handlers.end() ) + { + m_eventCore.coreMutex.unlock_shared(); + ( *currentIt )->call( params... ); + m_eventCore.coreMutex.lock_shared(); + + if( wasRemoving ) + wasRemoving = false; + else + ++currentIt; + } + + m_eventCore.coreMutex.unlock_shared(); + } + + TMyHandlerIt currentIt; + mutable bool wasRemoving; + + private: + + TMyEventCore& m_eventCore; +}; + +template +class TEvent : public IEvent +{ + using TMyEventHandlerPtr = typename TypeHelper::TEventHandlerPtr; + using TMyEventHandlerIt = typename TypeHelper::TEventHandlerIt; + using TMyHandlerRunner = HandlerRunner; + + public: + + TEvent() : + m_core() + { + } + + virtual void operator()( TParams... params ) + { + TMyHandlerRunner newHandlerRunner( m_core ); + + m_core.coreMutex.lock_shared(); + auto it = m_handlerRunners.insert( m_handlerRunners.end(), &newHandlerRunner ); + m_core.coreMutex.unlock_shared(); + + newHandlerRunner.run( params... ); + + m_core.coreMutex.lock_shared(); + m_handlerRunners.erase( it ); + m_core.coreMutex.unlock_shared(); + } + + protected: + + virtual bool isHandlerAdded( const TMyEventHandlerPtr& eventHandler ) const override + { + std::shared_lock _coreMutexLock( m_core.coreMutex ); + + return ( findEventHandler( eventHandler ) != m_core.handlers.end() ); + + } + virtual bool addHandler( TMyEventHandlerPtr eventHandler ) override + { + std::unique_lock _coreMutexLock( m_core.coreMutex ); + + if( findEventHandler( eventHandler ) == m_core.handlers.end() ) + { + m_core.handlers.push_back( std::move( eventHandler ) ); + return true; + } + return false; + } + virtual bool removeHandler( TMyEventHandlerPtr eventHandler ) override + { + std::unique_lock _coreMutexLock( m_core.coreMutex ); + + auto it = findEventHandler( eventHandler ); + if( it != m_core.handlers.end() ) + { + for( TMyHandlerRunner* oneHandlerRunner : m_handlerRunners ) + { + if( it == oneHandlerRunner->currentIt ) + { + ++oneHandlerRunner->currentIt; + oneHandlerRunner->wasRemoving = true; + } + } + m_core.handlers.erase( it ); + return true; + } + return false; + } + + private: + + inline TMyEventHandlerIt findEventHandler( const TMyEventHandlerPtr& eventHandler ) const noexcept + { + return std::find_if( m_core.handlers.cbegin(), m_core.handlers.cend(), [ &eventHandler ]( const TMyEventHandlerPtr& oneHandler ) + { + return ( *oneHandler == *eventHandler ); + } ); + } + + EventCore m_core; + std::list m_handlerRunners; +}; + +template +class TCancelableEvent : public TEvent +{ + using TEventBase = TEvent; + +public: + bool operator()(TParams... params) + { + bool canceled = false; + TEventBase::operator ()(params..., canceled); + return !canceled; + } +}; \ No newline at end of file diff --git a/cheat-base/src/cheat-base/events/handlers/abstracteventhandler.hpp b/cheat-base/src/cheat-base/events/handlers/abstracteventhandler.hpp new file mode 100644 index 0000000..47d14c5 --- /dev/null +++ b/cheat-base/src/cheat-base/events/handlers/abstracteventhandler.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include "eventhandlerptr.h" + + +namespace events::handlers +{ + template + class AbstractEventHandler + { + using MyType = AbstractEventHandler; + + public: + + virtual ~AbstractEventHandler() {} + + virtual void call(TParams... params) = 0; + + bool operator==(const MyType& other) const noexcept + { + return isEquals(other); + } + bool operator!=(const MyType& other) const noexcept + { + return !(*this == other); + } + + protected: + + AbstractEventHandler() {} + + virtual bool isEquals(const MyType& other) const noexcept = 0; + }; +} diff --git a/cheat-base/src/cheat-base/events/handlers/eventhandlerptr.h b/cheat-base/src/cheat-base/events/handlers/eventhandlerptr.h new file mode 100644 index 0000000..f1bfdd0 --- /dev/null +++ b/cheat-base/src/cheat-base/events/handlers/eventhandlerptr.h @@ -0,0 +1,12 @@ +#pragma once + +#include + + +namespace events::handlers +{ + template class AbstractEventHandler; + + template + using TEventHandlerPtr = std::shared_ptr>; +} diff --git a/cheat-base/src/cheat-base/events/handlers/functoreventhandler.hpp b/cheat-base/src/cheat-base/events/handlers/functoreventhandler.hpp new file mode 100644 index 0000000..5e94878 --- /dev/null +++ b/cheat-base/src/cheat-base/events/handlers/functoreventhandler.hpp @@ -0,0 +1,151 @@ +#pragma once + +#include +#include +#include "abstracteventhandler.hpp" +#include "helpers/innerholder.hpp" +#include "../helpers/is_equatable.hpp" + + +namespace events::handlers +{ + template + struct IsFunctorParamsCompatible + { + private: + + template + static constexpr std::true_type exists( decltype( std::declval()( std::declval()... ) )* = nullptr ) noexcept; + + template + static constexpr std::false_type exists( ... ) noexcept; + + public: + + static constexpr bool value = decltype( exists( nullptr ) )::value; + }; + + + template class FunctorHolder; + + template + class FunctorEventHandler : public AbstractEventHandler + { + using MyType = FunctorEventHandler; + using TFunctorHolderPtr = std::shared_ptr>; + + public: + + FunctorEventHandler( TFunctorHolderPtr functorHolder ) : + AbstractEventHandler(), + m_functorHolder( functorHolder ) + { + assert( m_functorHolder != nullptr ); + } + + virtual void call( TParams... params ) override + { + static_assert( IsFunctorParamsCompatible::value, "Event and functor arguments are not compatible" ); + + m_functorHolder->m_innerHolder.get()( params... ); + } + + protected: + + virtual bool isEquals( const AbstractEventHandler& other ) const noexcept override + { + const MyType* _other = dynamic_cast( &other ); + return ( _other != nullptr && *m_functorHolder == *_other->m_functorHolder ); + } + + private: + + TFunctorHolderPtr m_functorHolder; + }; + + template + struct EqualityChecker; + + template + struct EqualityChecker::value>::type> + { + static constexpr bool isEquals( const TEquatable& operand1, const TEquatable& operand2 ) noexcept + { + return ( operand1 == operand2 ); + } + }; + + template + struct EqualityChecker::value>::type> + { + static constexpr bool isEquals( const TNonEquatable& operand1, const TNonEquatable& operand2 ) noexcept + { + return ( &operand1 == &operand2 ); + } + }; + + template + class FunctorHolder + { + using MyType = FunctorHolder; + + public: + + ~FunctorHolder() + { + delete &m_innerHolder; + } + + template + operator TEventHandlerPtr() + { + return TEventHandlerPtr( new FunctorEventHandler( m_me.lock() ) ); + } + + bool operator==( const MyType& other ) const noexcept + { + return EqualityChecker::isEquals( m_innerHolder.get(), other.m_innerHolder.get() ); + } + bool operator!=( const MyType& other ) const noexcept + { + return !( *this == other ); + } + + // TFunctor typename is reserved by the enclosing template so need something different + template + static std::shared_ptr create( TArgFunctor&& functor ) + { + std::shared_ptr result( new MyType( std::forward( functor ) ) ); + result->m_me = result; + return result; + } + + private: + + template + FunctorHolder( TArgFunctor&& functor ) : + m_innerHolder( createInnerHolder( std::forward( functor ) ) ), + m_me() + { + } + + AbstractInnerHolder& m_innerHolder; + + std::weak_ptr m_me; + + template friend class FunctorEventHandler; + }; + + + template + std::shared_ptr::type>> createFunctorEventHandler( TFunctor&& functor ) + { + return FunctorHolder::type>::create( std::forward( functor ) ); + } +} + + +#define FUNCTOR_HANDLER( Functor ) ::events::handlers::createFunctorEventHandler( Functor ) +#define LAMBDA_HANDLER( Lambda ) FUNCTOR_HANDLER( Lambda ) +#define STD_FUNCTION_HANDLER( StdFunction ) FUNCTOR_HANDLER( StdFunction ) +#define FUNCTION_HANDLER( Function ) FUNCTOR_HANDLER( &Function ) diff --git a/cheat-base/src/cheat-base/events/handlers/handlercast.hpp b/cheat-base/src/cheat-base/events/handlers/handlercast.hpp new file mode 100644 index 0000000..663db40 --- /dev/null +++ b/cheat-base/src/cheat-base/events/handlers/handlercast.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include +#include "eventhandlerptr.h" + + +namespace events::handlers +{ + template + struct HandlerCast + { + template + static constexpr TEventHandlerPtr cast(TSome& some) + { + return static_cast>(some); + } + }; + + template + struct HandlerCast> + { + template + static constexpr TEventHandlerPtr cast(std::shared_ptr some) + { + return HandlerCast::template cast(*some); + } + }; +} diff --git a/cheat-base/src/cheat-base/events/handlers/helpers/innerholder.hpp b/cheat-base/src/cheat-base/events/handlers/helpers/innerholder.hpp new file mode 100644 index 0000000..ef54a49 --- /dev/null +++ b/cheat-base/src/cheat-base/events/handlers/helpers/innerholder.hpp @@ -0,0 +1,46 @@ +#pragma once + +#include "objectsaver.hpp" + + +namespace events::handlers +{ + template + struct AbstractInnerHolder + { + virtual ~AbstractInnerHolder() {} + + virtual inline TBase& get() = 0; + inline const TBase& get() const + { + return const_cast&>(*this).get(); + } + }; + + + template + struct TInnerHolder : public AbstractInnerHolder + { + using TInnerObject = typename ObjectSaver::TObject; + + TInnerHolder(TInner _inner) : + AbstractInnerHolder(), + inner(std::forward(_inner)) + { } + + virtual inline TBase& get() override + { + return static_cast(inner); + } + + TInnerObject inner; + }; + + + template + AbstractInnerHolder& createInnerHolder(TArgInner&& inner) + { + using TAssignInner = decltype(inner); + return *new TInnerHolder(std::forward(inner)); + } +} diff --git a/cheat-base/src/cheat-base/events/handlers/helpers/objectsaver.hpp b/cheat-base/src/cheat-base/events/handlers/helpers/objectsaver.hpp new file mode 100644 index 0000000..eed7a9d --- /dev/null +++ b/cheat-base/src/cheat-base/events/handlers/helpers/objectsaver.hpp @@ -0,0 +1,20 @@ +#pragma once + + +namespace events::handlers +{ + template + struct ObjectSaver; + + template + struct ObjectSaver + { + using TObject = LValue&; + }; + + template + struct ObjectSaver + { + using TObject = RValue; + }; +} diff --git a/cheat-base/src/cheat-base/events/handlers/methodeventhandler.hpp b/cheat-base/src/cheat-base/events/handlers/methodeventhandler.hpp new file mode 100644 index 0000000..93c7d7c --- /dev/null +++ b/cheat-base/src/cheat-base/events/handlers/methodeventhandler.hpp @@ -0,0 +1,130 @@ +#pragma once + +#include +#include +#include "abstracteventhandler.hpp" +#include "helpers/innerholder.hpp" + + +namespace events::handlers +{ + template + struct IsMethodParamsCompatible + { + private: + + template + static constexpr std::true_type exists( decltype( ( std::declval().m_innerHolder.get().*std::declval().m_method )( std::declval()... ) )* = nullptr ) noexcept; + + template + static constexpr std::false_type exists( ... ) noexcept; + + public: + + static constexpr bool value = decltype( exists( nullptr ) )::value; + }; + + + template + class MethodEventHandler : public AbstractEventHandler + { + using MyType = MethodEventHandler; + using TMethodHolderPtr = std::shared_ptr; + + public: + + MethodEventHandler( TMethodHolderPtr methodHolder ) : + AbstractEventHandler(), + m_methodHolder( methodHolder ) + { + assert( m_methodHolder != nullptr ); + } + + virtual void call( TParams... params ) override + { + static_assert( IsMethodParamsCompatible::value, "Event and method arguments are not compatible" ); + + ( m_methodHolder->m_innerHolder.get().*m_methodHolder->m_method )( params... ); + } + + protected: + + virtual bool isEquals( const AbstractEventHandler& other ) const noexcept override + { + const MyType* _other = dynamic_cast( &other ); + return ( _other != nullptr && *m_methodHolder == *_other->m_methodHolder ); + } + + private: + + TMethodHolderPtr m_methodHolder; + }; + + + template + class MethodHolder + { + using MyType = MethodHolder; + using TMethod = TResult( TObject::* )( TParams... ); + + public: + + ~MethodHolder() + { + delete &m_innerHolder; + } + + template + operator TEventHandlerPtr() + { + return TEventHandlerPtr( new MethodEventHandler( m_me.lock() ) ); + } + + bool operator==( const MyType& other ) const noexcept + { + return ( &m_innerHolder.get() == &other.m_innerHolder.get() && m_method == other.m_method ); + } + bool operator!=( const MyType& other ) const noexcept + { + return !( *this == other ); + } + + // TObject typename is reserved by the enclosing template so need something different + template + static std::shared_ptr create( TArgObject&& object, TMethod method ) + { + std::shared_ptr result( new MyType( std::forward( object ), method ) ); + result->m_me = result; + return result; + } + + private: + + template + MethodHolder( TArgObject&& object, TMethod method ) : + m_innerHolder( createInnerHolder( std::forward( object ) ) ), + m_method( method ) + { + assert( m_method != nullptr ); + } + + AbstractInnerHolder& m_innerHolder; + TMethod m_method; + + std::weak_ptr m_me; + + template friend class MethodEventHandler; + template friend struct IsMethodParamsCompatible; + }; + + + template + std::shared_ptr, TResult, TParams...>> createMethodEventHandler( TObject&& object, TResult( std::decay::type::*method )( TParams... ) ) + { + return MethodHolder, TResult, TParams...>::create( std::forward( object ), method ); + } +} + + +#define METHOD_HANDLER( Object, Method ) ::events::handlers::createMethodEventHandler( Object, &Method ) +#define MY_METHOD_HANDLER( Method ) METHOD_HANDLER( *this, Method ) diff --git a/cheat-base/src/cheat-base/events/helpers/is_equatable.hpp b/cheat-base/src/cheat-base/events/helpers/is_equatable.hpp new file mode 100644 index 0000000..3ce4b99 --- /dev/null +++ b/cheat-base/src/cheat-base/events/helpers/is_equatable.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include + + +template +class is_equatable +{ + private: + + template + static constexpr std::true_type exists( decltype( std::declval() == std::declval() )* = nullptr ) noexcept; + + template + static constexpr std::false_type exists( ... ) noexcept; + + public: + + static constexpr bool value = decltype( exists( nullptr ) )::value; +}; diff --git a/cheat-base/src/cheat-base/events/joins/abstracteventjoin.cpp b/cheat-base/src/cheat-base/events/joins/abstracteventjoin.cpp new file mode 100644 index 0000000..959b32b --- /dev/null +++ b/cheat-base/src/cheat-base/events/joins/abstracteventjoin.cpp @@ -0,0 +1,9 @@ +#include "abstracteventjoin.h" + + +namespace events::joins +{ + AbstractEventJoin::AbstractEventJoin() {} + + AbstractEventJoin::~AbstractEventJoin() {} +} diff --git a/cheat-base/src/cheat-base/events/joins/abstracteventjoin.h b/cheat-base/src/cheat-base/events/joins/abstracteventjoin.h new file mode 100644 index 0000000..0fd0523 --- /dev/null +++ b/cheat-base/src/cheat-base/events/joins/abstracteventjoin.h @@ -0,0 +1,20 @@ +#pragma once + + +namespace events::joins +{ + class AbstractEventJoin + { + public: + + virtual ~AbstractEventJoin(); + + virtual bool isJoined() const = 0; + virtual bool join() = 0; + virtual bool unjoin() = 0; + + protected: + + AbstractEventJoin(); + }; +} diff --git a/cheat-base/src/cheat-base/events/joins/eventjoinwrapper.cpp b/cheat-base/src/cheat-base/events/joins/eventjoinwrapper.cpp new file mode 100644 index 0000000..0e23351 --- /dev/null +++ b/cheat-base/src/cheat-base/events/joins/eventjoinwrapper.cpp @@ -0,0 +1,62 @@ +#include "eventjoinwrapper.h" + +#include +#include "abstracteventjoin.h" + + +namespace events::joins +{ + constexpr EventJoinWrapper::EventJoinWrapper() noexcept : + m_eventJoin( nullptr ) + { } + + EventJoinWrapper::EventJoinWrapper( EventJoinWrapper&& other ) noexcept : + m_eventJoin( std::move( other.m_eventJoin ) ) + { } + + EventJoinWrapper::EventJoinWrapper( EventJoinWrapper& other ) noexcept : + m_eventJoin( other.m_eventJoin ) + { } + + EventJoinWrapper& EventJoinWrapper::operator=( EventJoinWrapper&& other ) noexcept + { + m_eventJoin = std::move( other.m_eventJoin ); + + return *this; + } + + EventJoinWrapper& EventJoinWrapper::operator=( const EventJoinWrapper& other ) noexcept + { + m_eventJoin = other.m_eventJoin; + + return *this; + } + + + EventJoinWrapper::operator bool() const + { + return isJoined(); + } + + + bool EventJoinWrapper::isAssigned() const + { + return ( m_eventJoin != nullptr ); + } + + + bool EventJoinWrapper::isJoined() const + { + return ( m_eventJoin != nullptr && m_eventJoin->isJoined() ); + } + + bool EventJoinWrapper::join() + { + return ( m_eventJoin != nullptr ? m_eventJoin->join() : false ); + } + + bool EventJoinWrapper::unjoin() + { + return ( m_eventJoin != nullptr ? m_eventJoin->unjoin() : false ); + } +} // events diff --git a/cheat-base/src/cheat-base/events/joins/eventjoinwrapper.h b/cheat-base/src/cheat-base/events/joins/eventjoinwrapper.h new file mode 100644 index 0000000..fa54b88 --- /dev/null +++ b/cheat-base/src/cheat-base/events/joins/eventjoinwrapper.h @@ -0,0 +1,44 @@ +#pragma once + +#include +#include "../handlers/eventhandlerptr.h" + + +template class IEvent; + +namespace events::joins +{ + class AbstractEventJoin; + + class EventJoinWrapper + { + public: + + template + inline EventJoinWrapper(IEvent& _event, TSome&& handler); + + constexpr EventJoinWrapper() noexcept; + EventJoinWrapper(EventJoinWrapper&& other) noexcept; + EventJoinWrapper(EventJoinWrapper& other) noexcept; + + EventJoinWrapper& operator=(EventJoinWrapper&& other) noexcept; + EventJoinWrapper& operator=(const EventJoinWrapper& other) noexcept; + + operator bool() const; + + bool isAssigned() const; + + bool isJoined() const; + bool join(); + bool unjoin(); + + private: + + std::shared_ptr m_eventJoin; + }; +} + +namespace events +{ + using EventJoin = joins::EventJoinWrapper; +} diff --git a/cheat-base/src/cheat-base/events/joins/eventjoinwrapper.hpp b/cheat-base/src/cheat-base/events/joins/eventjoinwrapper.hpp new file mode 100644 index 0000000..3387749 --- /dev/null +++ b/cheat-base/src/cheat-base/events/joins/eventjoinwrapper.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include "eventjoinwrapper.h" +#include "handlereventjoin.h" +#include "../handlers/handlercast.hpp" + + +namespace events::joins +{ + template + EventJoinWrapper::EventJoinWrapper( IEvent& _event, TSome&& handler ) : + m_eventJoin( std::make_shared>( _event, ::events::handlers::HandlerCast::template cast( handler ) ) ) + { } +} diff --git a/cheat-base/src/cheat-base/events/joins/handlereventjoin.h b/cheat-base/src/cheat-base/events/joins/handlereventjoin.h new file mode 100644 index 0000000..9847916 --- /dev/null +++ b/cheat-base/src/cheat-base/events/joins/handlereventjoin.h @@ -0,0 +1,31 @@ +#pragma once + +#include "abstracteventjoin.h" +#include "../handlers/eventhandlerptr.h" + + +template class IEvent; + +namespace events::joins +{ + template + class HandlerEventJoin : public AbstractEventJoin + { + public: + + HandlerEventJoin(IEvent& _event, ::events::handlers::TEventHandlerPtr handler) : + AbstractEventJoin(), + m_event(_event), + m_handler(handler) + { } + + virtual inline bool isJoined() const override; + virtual inline bool join() override; + virtual inline bool unjoin() override; + + private: + + IEvent& m_event; + ::events::handlers::TEventHandlerPtr m_handler; + }; +} diff --git a/cheat-base/src/cheat-base/events/joins/handlereventjoin.hpp b/cheat-base/src/cheat-base/events/joins/handlereventjoin.hpp new file mode 100644 index 0000000..bd0df99 --- /dev/null +++ b/cheat-base/src/cheat-base/events/joins/handlereventjoin.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include "handlereventjoin.h" +#include "../event.hpp" + + +namespace events::joins +{ + template + bool HandlerEventJoin::isJoined() const + { + return m_event.isHandlerAdded(m_handler); + } + + template + bool HandlerEventJoin::join() + { + return m_event.addHandler(m_handler); + } + + template + bool HandlerEventJoin::unjoin() + { + return m_event.removeHandler(m_handler); + } +} diff --git a/cheat-base/src/cheat-base/globals.cpp b/cheat-base/src/cheat-base/globals.cpp new file mode 100644 index 0000000..c31f08b --- /dev/null +++ b/cheat-base/src/cheat-base/globals.cpp @@ -0,0 +1,10 @@ +#include + +#include "globals.h" + +namespace events +{ + TCancelableEvent KeyUpEvent{}; + TCancelableEvent WndProcEvent {}; + TEvent<> RenderEvent {}; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/globals.h b/cheat-base/src/cheat-base/globals.h new file mode 100644 index 0000000..1e2f5f9 --- /dev/null +++ b/cheat-base/src/cheat-base/globals.h @@ -0,0 +1,12 @@ +#pragma once + +#include + +#include + +namespace events +{ + extern TCancelableEvent KeyUpEvent; + extern TCancelableEvent WndProcEvent; + extern TEvent<> RenderEvent; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/render/ImageLoader.cpp b/cheat-base/src/cheat-base/render/ImageLoader.cpp new file mode 100644 index 0000000..73c9e5b --- /dev/null +++ b/cheat-base/src/cheat-base/render/ImageLoader.cpp @@ -0,0 +1,54 @@ +#include +#include "ImageLoader.h" + +#define STB_IMAGE_IMPLEMENTATION +#include + +#include +#include +#include + +std::optional ImageLoader::GetImage(const std::string& imageName, const char* type) +{ + if (s_Textures.count(imageName) > 0) + return s_Textures[imageName]; + + LPBYTE pDestination; + DWORD size; + + bool loadResult = ResourceLoader::LoadEx(imageName.c_str(), type, pDestination, size); + if (!loadResult) + { + // LOG_WARNING("Failed to load image: %s from resources", imageName); + return {}; + } + + // Load from disk into a raw RGBA buffer + int image_width = 0; + int image_height = 0; + unsigned char* image_data = stbi_load_from_memory(pDestination, size, &image_width, &image_height, NULL, 4); + if (image_data == NULL) + { + // LOG_WARNING("Failed to convert image '%s' to RGBA by 'stb_image.h'", imageName.c_str()); + return {}; + } + + ImageLoader::ImageData imageData = {}; + + ID3D11ShaderResourceView* new_texture = NULL; + int width, height; + bool textureResult = backend::LoadTextureFromMemory(image_data, image_width, image_height, + reinterpret_cast(&imageData.textureID), &width, &height); + stbi_image_free(image_data); + + if (!textureResult) + { + // LOG_WARNING("Failed to load texture by DX11 for image: %s", imageName.c_str()); + return {}; + } + + imageData.size.x = width; + imageData.size.y = height; + s_Textures[imageName] = imageData; + return imageData; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/render/ImageLoader.h b/cheat-base/src/cheat-base/render/ImageLoader.h new file mode 100644 index 0000000..d0ae49b --- /dev/null +++ b/cheat-base/src/cheat-base/render/ImageLoader.h @@ -0,0 +1,24 @@ +#pragma once + +#include +#include +#include + +#include + +#include + +class ImageLoader +{ +public: + struct ImageData + { + ImTextureID textureID; + ImVec2 size; + }; + + static std::optional GetImage(const std::string& imageName, const char* imageType = "PNG"); + +private: + inline static std::map s_Textures {}; +}; \ No newline at end of file diff --git a/cheat-base/src/cheat-base/render/backend/dx11-hook.cpp b/cheat-base/src/cheat-base/render/backend/dx11-hook.cpp new file mode 100644 index 0000000..55ca669 --- /dev/null +++ b/cheat-base/src/cheat-base/render/backend/dx11-hook.cpp @@ -0,0 +1,141 @@ +#include +#include "dx11-hook.h" + +#include + +#include + +#pragma comment(lib, "D3dcompiler.lib") +#pragma comment(lib, "d3d11.lib") +#pragma comment(lib, "winmm.lib") + +// D3X HOOK DEFINITIONS +typedef HRESULT(__stdcall* IDXGISwapChainPresent)(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags); + +// Definition of WndProc Hook. Its here to avoid dragging dependencies on types. +extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); + +static IDXGISwapChainPresent fnIDXGISwapChainPresent; +static ID3D11Device* pDevice = nullptr; + +static HRESULT __stdcall Present(IDXGISwapChain* pChain, const UINT SyncInterval, const UINT Flags) +{ + static BOOL g_bInitialised = false; + + // Main D3D11 Objects + static ID3D11DeviceContext* pContext = nullptr; + + if (!g_bInitialised) { + pChain->GetDevice(__uuidof(pDevice), reinterpret_cast(&pDevice)); + pDevice->GetImmediateContext(&pContext); + + DXGI_SWAP_CHAIN_DESC sd; + pChain->GetDesc(&sd); + + backend::DX11Events::InitializeEvent(sd.OutputWindow, pDevice, pContext, pChain); + + g_bInitialised = true; + } + + // render function + backend::DX11Events::RenderEvent(pContext); + + return CALL_ORIGIN(Present, pChain, SyncInterval, Flags); +} + +static IDXGISwapChainPresent findDirect11Present() +{ + const HWND hWnd = GetForegroundWindow(); + IDXGISwapChain* pSwapChain; + + constexpr D3D_FEATURE_LEVEL featureLevel = D3D_FEATURE_LEVEL_11_0; + DXGI_SWAP_CHAIN_DESC swapChainDesc; + ZeroMemory(&swapChainDesc, sizeof(swapChainDesc)); + swapChainDesc.BufferCount = 1; + swapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.OutputWindow = hWnd; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.Windowed = TRUE; //((GetWindowLong(hWnd, GWL_STYLE) & WS_POPUP) != 0) ? FALSE : TRUE; + swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED; + swapChainDesc.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; + + // Main D3D11 Objects + ID3D11DeviceContext* pContext = nullptr; + ID3D11Device* pDevice = nullptr; + if (FAILED(D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_WARP, NULL, NULL, &featureLevel, 1, + D3D11_SDK_VERSION, &swapChainDesc, &pSwapChain, &pDevice, NULL, &pContext)) && + FAILED(D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, NULL, &featureLevel, 1, + D3D11_SDK_VERSION, &swapChainDesc, &pSwapChain, &pDevice, NULL, &pContext))) + { + return nullptr; + } + + const DWORD_PTR* pSwapChainVtable = reinterpret_cast(pSwapChain); + pSwapChainVtable = reinterpret_cast(pSwapChainVtable[0]); + + auto swapChainPresent = reinterpret_cast(pSwapChainVtable[8]); + + pDevice->Release(); + pContext->Release(); + pSwapChain->Release(); + + return swapChainPresent; +} + +void backend::InitializeDX11Hooks() +{ + LOG_DEBUG("Initializing D3D11 hook: started."); + fnIDXGISwapChainPresent = findDirect11Present(); + if (fnIDXGISwapChainPresent == nullptr) + { + LOG_ERROR("Failed to find 'Present' function for D3D11."); + return; + } + LOG_DEBUG("SwapChain Present: %p", fnIDXGISwapChainPresent); + + HookManager::install(fnIDXGISwapChainPresent, Present); + LOG_DEBUG("Initializing D3D11 hook: done."); +} + +bool backend::LoadTextureFromMemory(LPBYTE image_data, int image_width, int image_height, ID3D11ShaderResourceView** out_srv, int* out_width, int* out_height) +{ + if (pDevice == nullptr) + return false; + + // Create texture + D3D11_TEXTURE2D_DESC desc; + ZeroMemory(&desc, sizeof(desc)); + desc.Width = image_width; + desc.Height = image_height; + desc.MipLevels = 1; + desc.ArraySize = 1; + desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + desc.SampleDesc.Count = 1; + desc.Usage = D3D11_USAGE_DEFAULT; + desc.BindFlags = D3D11_BIND_SHADER_RESOURCE; + desc.CPUAccessFlags = 0; + + ID3D11Texture2D* pTexture = NULL; + D3D11_SUBRESOURCE_DATA subResource; + subResource.pSysMem = image_data; + subResource.SysMemPitch = desc.Width * 4; + subResource.SysMemSlicePitch = 0; + pDevice->CreateTexture2D(&desc, &subResource, &pTexture); + + // Create texture view + D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc; + ZeroMemory(&srvDesc, sizeof(srvDesc)); + srvDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; + srvDesc.Texture2D.MipLevels = desc.MipLevels; + srvDesc.Texture2D.MostDetailedMip = 0; + pDevice->CreateShaderResourceView(pTexture, &srvDesc, out_srv); + pTexture->Release(); + + *out_width = image_width; + *out_height = image_height; + + return true; +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/render/backend/dx11-hook.h b/cheat-base/src/cheat-base/render/backend/dx11-hook.h new file mode 100644 index 0000000..2385d40 --- /dev/null +++ b/cheat-base/src/cheat-base/render/backend/dx11-hook.h @@ -0,0 +1,22 @@ +#pragma once +#include + +#include +#include + +#include + +namespace backend +{ + void InitializeDX11Hooks(); + + // Thanks to https://github.com/ocornut/imgui/wiki/Image-Loading-and-Displaying-Examples#example-for-directx11-users + bool LoadTextureFromMemory(LPBYTE image_data, int image_width, int image_height, ID3D11ShaderResourceView** out_srv, int* out_width, int* out_height); + + class DX11Events + { + public: + inline static TEvent RenderEvent{}; + inline static TEvent InitializeEvent{}; + }; +} diff --git a/cheat-base/src/cheat-base/render/gui-util.cpp b/cheat-base/src/cheat-base/render/gui-util.cpp new file mode 100644 index 0000000..70150d1 --- /dev/null +++ b/cheat-base/src/cheat-base/render/gui-util.cpp @@ -0,0 +1,740 @@ +#include +#include "gui-util.h" + +#define IMGUI_DEFINE_MATH_OPERATORS +#include "imgui_internal.h" + +#include +#include +#include +#include + + +void ShowHelpText(const char* text) +{ + ImGui::BeginTooltip(); + ImGui::PushTextWrapPos(ImGui::GetFontSize() * 35.0f); + ImGui::TextUnformatted(text); + ImGui::PopTextWrapPos(); + ImGui::EndTooltip(); +} + +void HelpMarker(const char* desc) +{ + ImGui::TextDisabled("(?)"); + if (ImGui::IsItemHovered()) + ShowHelpText(desc); +} + +bool InputHotkey(const char* label, Hotkey* hotkey, bool clearable) +{ + char hotkeyBuffer[50]; + + auto hotkeyString = std::string(*hotkey); + memcpy(hotkeyBuffer, hotkeyString.c_str(), hotkeyString.size() + 1); + + bool changed = false; + + if (clearable) { + char labelBuffer[128]; + std::snprintf(labelBuffer, 128, "Clear ## %s_1", label); + + if (ImGui::Button(labelBuffer, ImVec2(75, 0))) + { + *hotkey = Hotkey(); + changed = true; + } + ImGui::SameLine(); + } + + changed = ImGui::HotkeyWidget(label, *hotkey, ImVec2(200, 0)) || changed; + + return changed; +} + +float CalcWidth(const std::string_view& view) +{ + ImGuiContext& g = *GImGui; + return ImGui::CalcTextSize(view.data()).x + g.Style.FramePadding.x * 2.0f + 25.0f; +} + + +#define END_TYPE_WIDGET() \ + if (desc != nullptr) { ImGui::SameLine(); HelpMarker(desc); } \ + return result; + +#define END_CONFIG_WIDGET() if (result) field.FireChanged(); return result; + +bool TypeWidget(const char* label, bool& value, const char* desc) +{ + bool result = ImGui::Checkbox(label, &value); + END_TYPE_WIDGET(); +} + +bool TypeWidget(const char* label, int& value, int step, int start, int end, const char* desc) +{ + bool result = false; + + if (start == end) + result = ImGui::InputInt(label, &value, step); + else + result = ImGui::DragInt(label, &value, (float)step, start, end); + + END_TYPE_WIDGET(); +} + +bool TypeWidget(const char* label, float& value, float step, float start, float end, const char* desc) +{ + bool result = false; + + if (start == end) + result = ImGui::InputFloat(label, &value, step); + else + result = ImGui::DragFloat(label, &value, step, start, end); + + END_TYPE_WIDGET(); +} + +bool TypeWidget(const char* label, Hotkey& value, bool clearable, const char* desc) +{ + bool result = InputHotkey(label, &value, clearable); + END_TYPE_WIDGET(); +} + +bool TypeWidget(const char* label, std::string& value, const char* desc) +{ + bool result = ImGui::InputText(label, &value); + END_TYPE_WIDGET(); +} + +bool TypeWidget(const char* label, ImColor& value, const char* desc) +{ + bool result = ImGui::ColorEdit4(label, reinterpret_cast(&value)); + END_TYPE_WIDGET(); +} + +bool TypeWidget(const char* label, config::Toggle& value, const char* desc, bool hotkey) +{ + bool result = hotkey ? InputHotkey(label, &value.value, true) : ImGui::Checkbox(label, &value.enabled); + END_TYPE_WIDGET(); +} + +bool ConfigWidget(const char* label, config::Field& field, const char* desc) +{ + bool result = TypeWidget(label, field.value(), desc); + END_CONFIG_WIDGET(); +} + +bool ConfigWidget(const char* label, config::Field& field, int step, int start, int end, const char* desc) +{ + bool result = TypeWidget(label, field.value(), step, start, end, desc); + END_CONFIG_WIDGET(); +} + +bool ConfigWidget(const char* label, config::Field& field, float step, float start, float end, const char* desc) +{ + bool result = TypeWidget(label, field.value(), step, start, end, desc); + END_CONFIG_WIDGET(); +} + +bool ConfigWidget(const char* label, config::Field& field, bool clearable, const char* desc) +{ + bool result = TypeWidget(label, field.value(), clearable, desc); + END_CONFIG_WIDGET(); +} + +bool ConfigWidget(const char* label, config::Field& field, const char* desc) +{ + bool result = TypeWidget(label, field.value(), desc); + END_CONFIG_WIDGET(); +} + +bool ConfigWidget(const char* label, config::Field& field, const char* desc /*= nullptr*/) +{ + bool result = TypeWidget(label, field.value(), desc); + END_CONFIG_WIDGET(); +} + +bool ConfigWidget(const char* label, config::Field>& field, float step, float start, float end, + const char* desc, bool hotkey) +{ + ImGui::PushID(&label); + bool result = TypeWidget("", field.value().enabled); + ImGui::SameLine(); + result |= TypeWidget(label, field.value().value, step, start, end, desc); + ImGui::PopID(); + END_CONFIG_WIDGET(); +} + +bool ConfigWidget(const char* label, config::Field>& field, const char* desc /*= nullptr*/, bool hotkey /*= false*/) +{ + bool result = TypeWidget(label, field.value(), desc, hotkey); + END_CONFIG_WIDGET(); +} + +bool ConfigWidget(config::Field& field, const char* desc) +{ + return ConfigWidget(field.friendName().c_str(), field, desc); +} + +bool ConfigWidget(config::Field& field, int step, int start, int end, const char* desc) +{ + return ConfigWidget(field.friendName().c_str(), field, step, start, end, desc); +} + +bool ConfigWidget(config::Field& field, float step, float start, float end, const char* desc) +{ + return ConfigWidget(field.friendName().c_str(), field, step, start, end, desc); +} + +bool ConfigWidget(config::Field& field, bool clearable, const char* desc) +{ + return ConfigWidget(field.friendName().c_str(), field, clearable, desc); +} + +bool ConfigWidget(config::Field& field, const char* desc) +{ + return ConfigWidget(field.friendName().c_str(), field, desc); +} + +bool ConfigWidget(config::Field& field, const char* desc /*= nullptr*/) +{ + return ConfigWidget(field.friendName().c_str(), field, desc); +} + +bool ConfigWidget(config::Field>& field, float step, float start, float end, const char* desc) +{ + return ConfigWidget(field.friendName().c_str(), field, step, start, end, desc); +} + +bool ConfigWidget(config::Field>& field, const char* desc /*= nullptr*/, bool hotkey /*= false*/) +{ + return ConfigWidget(field.friendName().c_str(), field, desc, hotkey); +} + +#undef ShowDesc + +// https://github.com/ocornut/imgui/issues/1496#issuecomment-655048353 + +struct GroupPanelInfo +{ + ImRect labelRect; + ImRect selectRect; +}; +static ImVector s_GroupPanelLabelStack; + +bool GroupPanelIsOpen(ImGuiID id) +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + ImGuiStorage* storage = window->DC.StateStorage; + + return storage->GetInt(id, 1) != 0; +} + +void GroupPanelSetOpen(ImGuiID id, bool open) +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + ImGuiStorage* storage = window->DC.StateStorage; + + storage->SetInt(id, open ? 1 : 0); +} + +bool BeginGroupPanel(const char* name, const ImVec2& size, bool node, SelectData* selectData) +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + + ImGui::PushID(name); + ImGui::BeginGroup(); + auto cursorPos = ImGui::GetCursorScreenPos(); + + auto itemSpacing = ImGui::GetStyle().ItemSpacing; + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0.0f, 0.0f)); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0.0f, 0.0f)); + + auto frameHeight = ImGui::GetFrameHeight(); + ImGui::BeginGroup(); + + ImVec2 effectiveSize = size; + if (size.x < 0.0f) + effectiveSize.x = ImGui::GetContentRegionAvail().x; + else + effectiveSize.x = size.x; + ImGui::Dummy(ImVec2(effectiveSize.x, 0.0f)); + + ImVec2 startPos = window->DC.CursorPos; + ImGui::Dummy(ImVec2(frameHeight * 0.5f, 0.0f)); + ImGui::SameLine(0.0f, 0.0f); + ImGui::BeginGroup(); + ImGui::Dummy(ImVec2(frameHeight * 0.5f, 0.0f)); + ImGui::SameLine(0.0f, 0.0f); + ImGui::TextUnformatted(name); + + auto labelMin = ImGui::GetItemRectMin(); + auto labelMax = ImGui::GetItemRectMax(); + ImGui::SameLine(0.0f, 0.0f); + + ImVec2 selectMin = {}; + ImVec2 selectMax = {}; + if (selectData != nullptr) + { + bool useText = true; + const char* selectAll = "Select all"; + auto textSize = ImGui::CalcTextSize(selectAll); + auto spaceSize = ImVec2(effectiveSize.x - textSize.x - 35.0f - labelMax.x + startPos.x, 0.0f); + if (spaceSize.x <= 0) + { + spaceSize = ImVec2(effectiveSize.x - 35.0f - labelMax.x + startPos.x, 0.0f); + useText = false; + } + ImGui::Dummy(spaceSize); + ImGui::SameLine(0.0f, 0.0f); + + selectData->changed = ImGui::Checkbox(useText ? selectAll : "", &selectData->toggle); + + selectMin = ImGui::GetItemRectMin(); + selectMax = ImGui::GetItemRectMax(); + } + + ImGui::SameLine(0.0f, 0.0f); + ImGui::Dummy(ImVec2(0.0, frameHeight + itemSpacing.y)); + + if (node) + { + labelMin.x = startPos.x; + + const ImVec2 text_size = ImGui::CalcTextSize(name); + const ImGuiID id = window->GetID(name); + + bool isOpen = GroupPanelIsOpen(id); + + bool hovered; + bool toggled = ImGui::ButtonBehavior({ labelMin, labelMax }, id, &hovered, nullptr, ImGuiButtonFlags_PressedOnClick); + if (toggled) + { + isOpen = !isOpen; + GroupPanelSetOpen(id, isOpen); + } + + const ImU32 text_col = ImGui::GetColorU32(ImGuiCol_Text); + ImGui::RenderArrow(window->DrawList, { cursorPos.x, cursorPos.y + text_size.y * 0.15f }, text_col, + isOpen ? ImGuiDir_Down : ImGuiDir_Right, 0.7f); + + if (!isOpen) + { + ImGui::PopStyleVar(2); + ImGui::EndGroup(); + ImGui::EndGroup(); + ImGui::EndGroup(); + ImGui::PopID(); + return false; + } + } + + ImGui::BeginGroup(); + + //ImGui::GetWindowDrawList()->AddRect(labelMin, labelMax, IM_COL32(255, 0, 255, 255)); + + ImGui::PopStyleVar(2); + +#if IMGUI_VERSION_NUM >= 17301 + ImGui::GetCurrentWindow()->ContentRegionRect.Max.x -= frameHeight * 0.5f; + ImGui::GetCurrentWindow()->WorkRect.Max.x -= frameHeight * 0.5f; + ImGui::GetCurrentWindow()->InnerRect.Max.x -= frameHeight * 0.5f; +#else + ImGui::GetCurrentWindow()->ContentsRegionRect.Max.x -= frameHeight * 0.5f; +#endif + ImGui::GetCurrentWindow()->Size.x -= frameHeight; + + auto itemWidth = ImGui::CalcItemWidth(); + ImGui::PushItemWidth(ImMax(0.0f, itemWidth - frameHeight)); + + s_GroupPanelLabelStack.push_back({ ImRect(labelMin, labelMax) , ImRect(selectMin, selectMax)}); + + return true; +} + +void EndGroupPanel() +{ + ImGui::PopItemWidth(); + + auto itemSpacing = ImGui::GetStyle().ItemSpacing; + + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0.0f, 0.0f)); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0.0f, 0.0f)); + + auto frameHeight = ImGui::GetFrameHeight(); + + ImGui::EndGroup(); + + //ImGui::GetWindowDrawList()->AddRectFilled(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), IM_COL32(0, 255, 0, 64), 4.0f); + + ImGui::EndGroup(); + + ImGui::SameLine(0.0f, 0.0f); + ImGui::Dummy(ImVec2(frameHeight * 0.5f, 0.0f)); + ImGui::Dummy(ImVec2(0.0, frameHeight - frameHeight * 0.5f - itemSpacing.y)); + + ImGui::EndGroup(); + + auto itemMin = ImGui::GetItemRectMin(); + auto itemMax = ImGui::GetItemRectMax(); + //ImGui::GetWindowDrawList()->AddRectFilled(itemMin, itemMax, IM_COL32(255, 0, 0, 64), 4.0f); + + auto& info = s_GroupPanelLabelStack.back(); + s_GroupPanelLabelStack.pop_back(); + + ImVec2 halfFrame = ImVec2(frameHeight * 0.25f, frameHeight) * 0.5f; + ImRect frameRect = ImRect(itemMin + halfFrame, itemMax - ImVec2(halfFrame.x, 0.0f)); + + auto& labelRect = info.labelRect; + labelRect.Min.x -= itemSpacing.x; + labelRect.Max.x += itemSpacing.x; + + bool hasSelect = info.selectRect.Min.x != 0; + + if (!hasSelect) + { + for (int i = 0; i < 3; ++i) + { + switch (i) + { + // left half-plane + case 0: ImGui::PushClipRect(ImVec2(-FLT_MAX, -FLT_MAX), ImVec2(labelRect.Min.x, FLT_MAX), true); break; + // right half-plane + case 1: ImGui::PushClipRect(ImVec2(labelRect.Max.x, -FLT_MAX), ImVec2(FLT_MAX, FLT_MAX), true); break; + // bottom + case 2: ImGui::PushClipRect(ImVec2(labelRect.Min.x, labelRect.Max.y), ImVec2(labelRect.Max.x, FLT_MAX), true); break; + } + + ImGui::GetWindowDrawList()->AddRect( + frameRect.Min, frameRect.Max, + ImColor(ImGui::GetStyleColorVec4(ImGuiCol_Border)), + halfFrame.x); + + ImGui::PopClipRect(); + } + } + else + { + auto& selectRect = info.selectRect; + selectRect.Min.x -= itemSpacing.x; + selectRect.Max.x += itemSpacing.x; + for (int i = 0; i < 5; ++i) + { + switch (i) + { + // left half-plane + case 0: ImGui::PushClipRect(ImVec2(-FLT_MAX, -FLT_MAX), ImVec2(labelRect.Min.x, FLT_MAX), true); break; + // label - select + case 1: ImGui::PushClipRect(ImVec2(labelRect.Max.x, -FLT_MAX), ImVec2(selectRect.Min.x, FLT_MAX), true); break; + // bottom label + case 2: ImGui::PushClipRect(ImVec2(labelRect.Min.x, labelRect.Max.y), ImVec2(labelRect.Max.x, FLT_MAX), true); break; + // bottom select + case 3: ImGui::PushClipRect(ImVec2(selectRect.Min.x, selectRect.Max.y), ImVec2(selectRect.Max.x, FLT_MAX), true); break; + // right hand-plane + case 4: ImGui::PushClipRect(ImVec2(selectRect.Max.x, -FLT_MAX), ImVec2(FLT_MAX, FLT_MAX), true); break; + } + + ImGui::GetWindowDrawList()->AddRect( + frameRect.Min, frameRect.Max, + ImColor(ImGui::GetStyleColorVec4(ImGuiCol_Border)), + halfFrame.x); + + ImGui::PopClipRect(); + } + } + + + ImGui::PopStyleVar(2); + +#if IMGUI_VERSION_NUM >= 17301 + ImGui::GetCurrentWindow()->ContentRegionRect.Max.x += frameHeight * 0.5f; + ImGui::GetCurrentWindow()->WorkRect.Max.x += frameHeight * 0.5f; + ImGui::GetCurrentWindow()->InnerRect.Max.x += frameHeight * 0.5f; +#else + ImGui::GetCurrentWindow()->ContentsRegionRect.Max.x += frameHeight * 0.5f; +#endif + ImGui::GetCurrentWindow()->Size.x += frameHeight; + + ImGui::Dummy(ImVec2(0.0f, 0.0f)); + + ImGui::EndGroup(); + ImGui::PopID(); +} + +void AddUnderLine(ImColor col_) +{ + ImVec2 min = ImGui::GetItemRectMin(); + ImVec2 max = ImGui::GetItemRectMax(); + min.y = max.y; + ImGui::GetWindowDrawList()->AddLine(min, max, col_, 1.0f); +} + +void TextURL(const char* name_, const char* URL_, bool SameLineBefore_, bool SameLineAfter_) +{ + if (SameLineBefore_) { ImGui::SameLine(0.0f, ImGui::GetStyle().ItemInnerSpacing.x); } + ImGui::PushStyleColor(ImGuiCol_Text, ImGui::GetStyle().Colors[ImGuiCol_ButtonHovered]); + ImGui::Text(name_); + ImGui::PopStyleColor(); + if (ImGui::IsItemHovered()) + { + if (ImGui::IsMouseClicked(0)) + { + ShellExecute(0, 0, URL_, 0, 0, SW_SHOW); + } + AddUnderLine(ImGui::GetStyle().Colors[ImGuiCol_ButtonHovered]); + ImGui::SetTooltip("Open in browser\n%s", URL_); + } + else + { + AddUnderLine(ImGui::GetStyle().Colors[ImGuiCol_Button]); + } + if (SameLineAfter_) { ImGui::SameLine(0.0f, ImGui::GetStyle().ItemInnerSpacing.x); } +} + +bool operator&(OutlineSide lhs, OutlineSide rhs) { + return + static_cast::type>(lhs) & + static_cast::type>(rhs); +} + +void DrawTextWithOutline(ImDrawList* drawList, ImFont* font, float fontSize, const ImVec2& screenPos, + const char* text, const ImColor& textColor, float outlineThickness, OutlineSide sides, const ImColor& outlineColor) +{ + if (outlineThickness == 0.0f) + { + drawList->AddText(font, fontSize, screenPos, outlineColor, text); + } + else + { + if (sides & OutlineSide::Left) + drawList->AddText(font, fontSize, + { screenPos.x - outlineThickness, screenPos.y }, outlineColor, text); + + if (sides & OutlineSide::Right) + drawList->AddText(font, fontSize, + { screenPos.x + outlineThickness, screenPos.y }, outlineColor, text); + + if (sides & OutlineSide::Bottom) + drawList->AddText(font, fontSize, + { screenPos.x, screenPos.y - outlineThickness }, outlineColor, text); + + if (sides & OutlineSide::Top) + drawList->AddText(font, fontSize, + { screenPos.x, screenPos.y + outlineThickness }, outlineColor, text); + } + + drawList->AddText(font, fontSize, screenPos, textColor, text); +} + +void DrawTextWithOutline(ImDrawList* drawList, const ImVec2& screenPos, const char* text, const ImColor& textColor, + float outlineThickness, OutlineSide sides, const ImColor& outlineColor) +{ + DrawTextWithOutline(drawList, nullptr, 0.0f, screenPos, text, textColor, outlineThickness, sides, outlineColor); +} + +// Modified version of: https://github.com/spirthack/CSGOSimple/blob/master/CSGOSimple/UI.cpp#L287 +bool ImGui::HotkeyWidget(const char* label, Hotkey& hotkey, const ImVec2& size) +{ + // Init ImGui + ImGuiWindow* window = ImGui::GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiContext& g = *GImGui; + ImGuiIO& io = g.IO; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + + const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + const ImVec2 item_size = ImGui::CalcItemSize(size, ImGui::CalcItemWidth(), label_size.y + style.FramePadding.y * 2.0f); + + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + item_size); + const ImRect total_bb(window->DC.CursorPos, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); + + ImGui::ItemSize(total_bb, style.FramePadding.y); + if (!ImGui::ItemAdd(total_bb, id)) + return false; + + + const bool focus_requested = (ImGui::GetItemStatusFlags() & ImGuiItemStatusFlags_FocusedByTabbing) != 0 || g.NavActivateInputId == id; + const bool hovered = ImGui::ItemHoverable(frame_bb, id); + if (hovered) + { + ImGui::SetHoveredID(id); + g.MouseCursor = ImGuiMouseCursor_TextInput; + } + + static Hotkey _initHotkey; + static Hotkey _currHotkey; + static Hotkey _prevHotkey; + + const bool user_clicked = hovered && io.MouseClicked[0]; + if (focus_requested || user_clicked) + { + if (g.ActiveId != id) + { + memset(io.MouseDown, 0, sizeof(io.MouseDown)); + memset(io.KeysDown, 0, sizeof(io.KeysDown)); + + _initHotkey = hotkey; + _currHotkey = Hotkey(); + _prevHotkey = Hotkey(); + } + + ImGui::SetActiveID(id, window); + ImGui::FocusWindow(window); + } + else if (io.MouseClicked[0] && g.ActiveId == id) + { + ImGui::ClearActiveID(); + } + + bool valueChanged = false; + + if (g.ActiveId == id) + { + if (ImGui::IsKeyPressed(ImGuiKey_Escape)) + { + ImGui::ClearActiveID(); + if (hotkey != _initHotkey) + { + hotkey = _initHotkey; + valueChanged = true; + } + } + else + { + ImGui::NavMoveRequestCancel(); + + auto newHotkey = Hotkey::GetPressedHotkey(); + + if (newHotkey.IsEmpty() && !_currHotkey.IsEmpty()) + { + ImGui::ClearActiveID(); + valueChanged = false; + } + else if (newHotkey - _prevHotkey) + { + _currHotkey = newHotkey; + hotkey = newHotkey; + valueChanged = true; + } + + _prevHotkey = newHotkey; + } + + } + + // Render + // Select which buffer we are going to display. When ImGuiInputTextFlags_NoLiveEdit is Set 'buf' might still be the old value. We Set buf to NULL to prevent accidental usage from now on. + + char buf_display[128] = "Empty"; + + const ImU32 frame_col = ImGui::GetColorU32(g.ActiveId == id ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg); + ImGui::RenderFrame(frame_bb.Min, frame_bb.Max, frame_col, true, style.FrameRounding); + + if ((g.ActiveId == id && !_currHotkey.IsEmpty()) || g.ActiveId != id) + strcpy_s(buf_display, static_cast(hotkey).c_str()); + else if (g.ActiveId == id) + strcpy_s(buf_display, ""); + + const ImRect clip_rect(frame_bb.Min.x, frame_bb.Min.y, frame_bb.Min.x + item_size.x, frame_bb.Min.y + item_size.y); // Not using frame_bb.Max because we have adjusted size + ImVec2 render_pos = frame_bb.Min + style.FramePadding; + ImGui::RenderTextClipped(frame_bb.Min + style.FramePadding, frame_bb.Max - style.FramePadding, buf_display, NULL, NULL, style.ButtonTextAlign, &clip_rect); + //RenderTextClipped(frame_bb.Min + style.FramePadding, frame_bb.Max - style.FramePadding, buf_display, NULL, NULL, GetColorU32(ImGuiCol_Text), style.ButtonTextAlign, &clip_rect); + //draw_window->DrawList->AddText(g.Font, g.FontSize, render_pos, GetColorU32(ImGuiCol_Text), buf_display, NULL, 0.0f, &clip_rect); + if (label_size.x > 0) + ImGui::RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); + + return valueChanged; +} + +// https://github.com/ocornut/imgui/issues/3798 +float ImGui::CalcContrastRatio(const ImU32& backgroundColor, const ImU32& foreGroundColor) +{ + // real code https://www.w3.org/TR/WCAG20/#relativeluminancedef + /*const auto colBG = ImGui::ColorConvertU32ToFloat4(backgroundColor); + const auto colFG = ImGui::ColorConvertU32ToFloat4(foreGroundColor); + float lumBG = 0.2126 * colBG.x + 0.7152 * colBG.y + 0.0722 * colBG.z; + float lumFG = 0.2126 * colFG.x + 0.7152 * colFG.y + 0.0722 * colFG.z; + return (ImMax(lumBG, lumFG) + 0.05) / (ImMin(lumBG, lumFG) + 0.05);*/ + + float sa0 = ((backgroundColor >> IM_COL32_A_SHIFT) & 0xFF); + float sa1 = ((foreGroundColor >> IM_COL32_A_SHIFT) & 0xFF); + static float sr = 0.2126f / 255.0f; + static float sg = 0.7152f / 255.0f; + static float sb = 0.0722f / 255.0f; + const float contrastRatio = + (sr * sa0 * ((backgroundColor >> IM_COL32_R_SHIFT) & 0xFF) + + sg * sa0 * ((backgroundColor >> IM_COL32_G_SHIFT) & 0xFF) + + sb * sa0 * ((backgroundColor >> IM_COL32_B_SHIFT) & 0xFF) + 0.05f) / + (sr * sa1 * ((foreGroundColor >> IM_COL32_R_SHIFT) & 0xFF) + + sg * sa1 * ((foreGroundColor >> IM_COL32_G_SHIFT) & 0xFF) + + sb * sa1 * ((foreGroundColor >> IM_COL32_B_SHIFT) & 0xFF) + 0.05f); + if (contrastRatio < 1.0f) + return 1.0f / contrastRatio; + return contrastRatio; +} + +ImColor ImGui::CalcContrastColor(const ImColor& foreground, float maxContrastRatio, const ImColor& background, const ImColor& inverted) +{ + return ImGui::CalcContrastRatio(background, foreground) < maxContrastRatio ? inverted : background; +} + +bool ImGui::PushStyleColorWithContrast(ImU32 backGroundColor, ImGuiCol foreGroundColor, ImU32 invertedColor, float maxContrastRatio) +{ + const float contrastRatio = CalcContrastRatio(backGroundColor, GetColorU32(foreGroundColor)); + if (contrastRatio < maxContrastRatio) + { + ImGui::PushStyleColor(foreGroundColor, invertedColor); + return true; + } + return false; +} + +static std::string nameBuffer; +void ImGui::OpenRenamePopup(const std::string& initName) +{ + ImGui::OpenPopup("RenamePopup"); + if (IsRenamePopupOpened()) + nameBuffer = initName; +} + +bool ImGui::IsRenamePopupOpened() +{ + return ImGui::IsPopupOpen("RenamePopup"); +} + +bool ImGui::DrawRenamePopup(std::string& out) +{ + if (ImGui::BeginPopup("RenamePopup", ImGuiWindowFlags_AlwaysAutoResize)) + { + ImGui::Text("To save press `Enter`.\nTo close without saving press `Esc`."); + + if (!ImGui::IsAnyItemActive() && !ImGui::IsMouseClicked(0)) + ImGui::SetKeyboardFocusHere(0); + + ImGui::InputText("Name", &nameBuffer); + + bool changed = false; + if (ImGui::IsKeyPressed(ImGuiKey_Enter, false)) + { + changed = true; + out = nameBuffer; + ImGui::CloseCurrentPopup(); + } + + if (ImGui::IsKeyPressed(ImGuiKey_Escape, false)) + { + ImGui::CloseCurrentPopup(); + } + + ImGui::EndPopup(); + return changed; + } + return false; +} diff --git a/cheat-base/src/cheat-base/render/gui-util.h b/cheat-base/src/cheat-base/render/gui-util.h new file mode 100644 index 0000000..27334a7 --- /dev/null +++ b/cheat-base/src/cheat-base/render/gui-util.h @@ -0,0 +1,163 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +#define BLOCK_FOCUS() + +bool TypeWidget(const char* label, bool& value, const char* desc = nullptr); +bool TypeWidget(const char* label, int& value, int step = 1, int start = 0, int end = 0, const char* desc = nullptr); +bool TypeWidget(const char* label, float& value, float step = 1.0F, float start = 0, float end = 0, const char* desc = nullptr); +bool TypeWidget(const char* label, Hotkey& value, bool clearable = true, const char* desc = nullptr); +bool TypeWidget(const char* label, std::string& value, const char* desc = nullptr); +bool TypeWidget(const char* label, ImColor& value, const char* desc = nullptr); +bool TypeWidget(const char* label, config::Toggle& value, const char* desc = nullptr, bool hotkey = false); + +bool ConfigWidget(const char* label, config::Field& field, const char* desc = nullptr); +bool ConfigWidget(const char* label, config::Field& field, int step = 1, int start = 0, int end = 0, const char* desc = nullptr); +bool ConfigWidget(const char* label, config::Field& field, float step = 1.0F, float start = 0, float end = 0, const char* desc = nullptr); +bool ConfigWidget(const char* label, config::Field& field, bool clearable = true, const char* desc = nullptr); +bool ConfigWidget(const char* label, config::Field& field, const char* desc = nullptr); +bool ConfigWidget(const char* label, config::Field& field, const char* desc = nullptr); + +template +bool ConfigWidget(const char* label, config::Field>& field, const char* desc = nullptr) +{ + ImGui::PushID(&field); + bool result = TypeWidget("", field.value().enabled); + ImGui::SameLine(); + result |= TypeWidget(label, field.value().value, desc); + ImGui::PopID(); + if (result) + field.FireChanged(); + + return result; +} +bool ConfigWidget(const char* label, config::Field>& field, float step = 1.0F, float start = 0, float end = 0, const char* desc = nullptr, bool hotkey = false); +bool ConfigWidget(const char* label, config::Field>& field, const char* desc = nullptr, bool hotkey = false); + +bool ConfigWidget(config::Field& field, const char* desc = nullptr); +bool ConfigWidget(config::Field& field, int step = 1, int start = 0, int end = 0, const char* desc = nullptr); +bool ConfigWidget(config::Field& field, float step = 1.0F, float start = 0, float end = 0, const char* desc = nullptr); +bool ConfigWidget(config::Field& field, bool clearable = true, const char* desc = nullptr); +bool ConfigWidget(config::Field& field, const char* desc = nullptr); +bool ConfigWidget(config::Field& field, const char* desc = nullptr); + +template +bool ConfigWidget(config::Field>& field, const char* desc = nullptr) +{ + return ConfigWidget(field.friendName().c_str(), field, desc); +} + +bool ConfigWidget(config::Field>& field, float step = 1.0F, float start = 0, float end = 0, const char* desc = nullptr); +bool ConfigWidget(config::Field>& field, const char* desc = nullptr, bool hotkey = false); + +void ShowHelpText(const char* text); +void HelpMarker(const char* desc); + +bool InputHotkey(const char* label, Hotkey* hotkey, bool clearable); + +// Thanks to https://gist.github.com/dougbinks/ef0962ef6ebe2cadae76c4e9f0586c69 +void AddUnderLine(ImColor col_); +void TextURL(const char* name_, const char* URL_, bool SameLineBefore_, bool SameLineAfter_); + +enum class OutlineSide : uint32_t +{ + Left = 1, + Right = 2, + Top = 4, + Bottom = 8, + All = Left | Right | Top | Bottom +}; + +bool operator&(OutlineSide lhs, OutlineSide rhs); + +void DrawTextWithOutline(ImDrawList* drawList, ImFont* font, float fontSize, const ImVec2& screenPos, const char* text, const ImColor& textColor, + float outlineThickness = 0.0f, OutlineSide sides = OutlineSide::All, const ImColor& outlineColor = ImColor(0.0f, 0.0f, 0.0f)); +void DrawTextWithOutline(ImDrawList* drawList, const ImVec2& screenPos, const char* text, const ImColor& textColor, + float outlineThickness = 0.0f, OutlineSide sides = OutlineSide::All, const ImColor& outlineColor = ImColor(0.0f, 0.0f, 0.0f)); + + +struct SelectData +{ + bool toggle; + bool changed; +}; + +bool BeginGroupPanel(const char* name, const ImVec2& size = ImVec2(-1, 0), bool node = false, SelectData* selectData = nullptr); +void EndGroupPanel(); + +namespace ImGui +{ + bool HotkeyWidget(const char* label, Hotkey& hotkey, const ImVec2& size = ImVec2(0, 0)); + + float CalcContrastRatio(const ImU32& backgroundColor, const ImU32& foreGroundColor); + ImColor CalcContrastColor(const ImColor& foreground, float maxContrastRatio = 2.0f, const ImColor& background = ImColor(1.0f, 1.0f, 1.0f), const ImColor& inverted = ImColor(0.0f, 0.0f, 0.0f)); + bool PushStyleColorWithContrast(ImU32 backGroundColor, ImGuiCol foreGroundColor, ImU32 invertedColor, float maxContrastRatio); + + void OpenRenamePopup(const std::string& initName); + bool IsRenamePopupOpened(); + bool DrawRenamePopup(std::string& out); +} + +float CalcWidth(const std::string_view& view); + +template +float GetMaxEnumWidth() +{ + constexpr auto names = magic_enum::enum_names(); + auto maxComboName = std::max_element(names.begin(), names.end(), + [](const auto& a, const auto& b) { return CalcWidth(a) < CalcWidth(b); }); + return CalcWidth(*maxComboName); +} + +template +bool ComboEnum(const char* label, T* currentValue) +{ + auto name = magic_enum::enum_name(*currentValue); + auto& current = *currentValue; + bool result = false; + static auto width = GetMaxEnumWidth(); + + ImGui::SetNextItemWidth(width); + if (ImGui::BeginCombo(label, name.data())) + { + for (auto& entry : magic_enum::enum_entries()) + { + bool is_selected = (name == entry.second); + if (ImGui::Selectable(entry.second.data(), is_selected)) + { + current = entry.first; + result = true; + } + if (is_selected) + ImGui::SetItemDefaultFocus(); + } + ImGui::EndCombo(); + } + return result; +} + +template +bool ConfigWidget(const char* label, config::Field>& field, const char* desc = nullptr) +{ + bool result = false; + if (ComboEnum(label, &field.value())) + { + field.FireChanged(); + result = true; + } + + if (desc != nullptr) { ImGui::SameLine(); HelpMarker(desc); }; + return result; +} + +template +bool ConfigWidget(config::Field>& field, const char* desc = nullptr) +{ + return ConfigWidget(field.friendName().c_str(), field, desc); +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/render/renderer.cpp b/cheat-base/src/cheat-base/render/renderer.cpp new file mode 100644 index 0000000..caf7bdc --- /dev/null +++ b/cheat-base/src/cheat-base/render/renderer.cpp @@ -0,0 +1,291 @@ +#include +#include "renderer.h" + +#include +#include + +#include +#include +#include + +extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); + +namespace renderer +{ + struct Data + { + LPBYTE data; + DWORD size; + }; + + static std::unordered_set _inputLockers; + + static float _globalFontSize = 16.0f; + static bool _isCustomFontLoaded = false; + + static constexpr int _fontSizeStep = 1; + static constexpr int _fontSizeMax = 64; + static constexpr int _fontsCount = _fontSizeMax / _fontSizeStep; + static std::array _fonts; + + static Data _customFontData {}; + + static WNDPROC OriginalWndProcHandler; + static ID3D11RenderTargetView* mainRenderTargetView; + + static void OnRender(ID3D11DeviceContext* pContext); + static void OnDX11Initialize(HWND window, ID3D11Device* pDevice, ID3D11DeviceContext* pContext, IDXGISwapChain* pChain); + + void Init(LPBYTE fontData, DWORD fontDataSize) + { + _customFontData = { fontData, fontDataSize }; + + LOG_DEBUG("Initialize IMGui..."); + + backend::DX11Events::RenderEvent += FUNCTION_HANDLER(OnRender); + backend::DX11Events::InitializeEvent += FUNCTION_HANDLER(OnDX11Initialize); + + backend::InitializeDX11Hooks(); + } + + void SetInputLock(void* id, bool value) + { + if (value) + AddInputLocker(id); + else + RemoveInputLocker(id); + } + + void AddInputLocker(void* id) + { + if (_inputLockers.count(id) == 0) + _inputLockers.insert(id); + } + + void RemoveInputLocker(void* id) + { + if (_inputLockers.count(id) > 0) + _inputLockers.erase(id); + } + + bool IsInputLocked() + { + return _inputLockers.size() > 0; + } + + ImFont* GetFontBySize(float fontSize) + { + if (!_isCustomFontLoaded) + { + ImGuiIO& io = ImGui::GetIO(); + return io.FontDefault; + } + int fontSizeInt = static_cast(fontSize); + int fontIndex = fontSizeInt / _fontSizeStep + + (fontSizeInt % _fontSizeStep > (_fontSizeStep / 2) ? 1 : 0) - 1; + fontIndex = std::clamp(fontIndex, 0, _fontsCount - 1); + return _fonts[fontIndex]; + } + + float GetScaleByFontSize(float fontSize) + { + if (!_isCustomFontLoaded) + { + ImGuiIO& io = ImGui::GetIO(); + return fontSize / io.FontDefault->FontSize; + } + + int fontSizeInt = static_cast(fontSize); + int fontIndex = fontSizeInt / _fontSizeStep; + int fontAligned = fontIndex * _fontSizeStep + + ((fontSizeInt % _fontSizeStep) > _fontSizeStep / 2 ? _fontSizeStep : 0); + fontAligned = std::clamp(fontAligned, _fontSizeStep, _fontSizeMax); + + return fontSize / static_cast(fontAligned); + } + + void SetGlobalFontSize(float globalFontSize) + { + _globalFontSize = globalFontSize; + } + + float GetGlobalFontSize() + { + return _globalFontSize; + } + + static void LoadCustomFont() + { + if (_customFontData.data == nullptr) + return; + + for (int i = 0; i < _fontsCount; i++) + { + ImGuiIO& io = ImGui::GetIO(); + auto newFont = io.Fonts->AddFontFromMemoryTTF(_customFontData.data, _customFontData.size, (i + 1) * _fontSizeStep); + if (newFont == nullptr) + return; + + _fonts[i] = newFont; + } + _isCustomFontLoaded = true; + } + + static void SetupImGuiStyle(); + static LRESULT CALLBACK hWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); + + static void OnDX11Initialize(HWND window, ID3D11Device* pDevice, ID3D11DeviceContext* pContext, IDXGISwapChain* pChain) + { + + LOG_DEBUG("ImGUI: DirectX11 backend initialized successfully."); + + ImGui::CreateContext(); + ImGuiIO& io = ImGui::GetIO(); (void)io; + io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; + + LoadCustomFont(); + SetupImGuiStyle(); + + //Set OriginalWndProcHandler to the Address of the Original WndProc function + OriginalWndProcHandler = reinterpret_cast(SetWindowLongPtr(window, GWLP_WNDPROC, + reinterpret_cast(hWndProc))); + + ImGui_ImplWin32_Init(window); + ImGui_ImplDX11_Init(pDevice, pContext); + + ID3D11Texture2D* pBackBuffer; + pChain->GetBuffer(0, __uuidof(ID3D11Texture2D), reinterpret_cast(&pBackBuffer)); + pDevice->CreateRenderTargetView(pBackBuffer, nullptr, &mainRenderTargetView); + pBackBuffer->Release(); + + io.SetPlatformImeDataFn = nullptr; // F**king bug take 4 hours of my life + } + + static void OnRender(ID3D11DeviceContext* pContext) + { + ImGui_ImplDX11_NewFrame(); + ImGui_ImplWin32_NewFrame(); + + ImGuiIO& io = ImGui::GetIO(); (void)io; + io.FontDefault = GetFontBySize(_globalFontSize); + ImGui::NewFrame(); + + events::RenderEvent(); + + ImGui::EndFrame(); + ImGui::Render(); + + pContext->OMSetRenderTargets(1, &mainRenderTargetView, nullptr); + ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData()); + } + + static LRESULT CALLBACK hWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) + { + ImGuiIO& io = ImGui::GetIO(); + POINT mPos; + GetCursorPos(&mPos); + ScreenToClient(hWnd, &mPos); + ImGui::GetIO().MousePos.x = mPos.x; + ImGui::GetIO().MousePos.y = mPos.y; + + ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam); + + if (!events::WndProcEvent(hWnd, uMsg, wParam, lParam)) + return true; + + short key; + bool keyUpEvent = true; + switch (uMsg) + { + case WM_LBUTTONUP: + key = VK_LBUTTON; + break; + case WM_RBUTTONUP: + key = VK_RBUTTON; + break; + case WM_MBUTTONUP: + key = VK_MBUTTON; + break; + case WM_XBUTTONUP: + key = GET_XBUTTON_WPARAM(wParam); + break; + case WM_KEYUP: + key = wParam; + break; + default: + keyUpEvent = false; + break; + } + + bool canceled = false; + if (keyUpEvent) + canceled = !events::KeyUpEvent(key); + + if (IsInputLocked() || canceled) + return true; + + return CallWindowProc(OriginalWndProcHandler, hWnd, uMsg, wParam, lParam); + } + + + static void SetupImGuiStyle() + { + ImGui::GetStyle().FrameRounding = 4.0f; + ImGui::GetStyle().GrabRounding = 4.0f; + + ImVec4* colors = ImGui::GetStyle().Colors; + colors[ImGuiCol_Text] = ImVec4(0.95f, 0.96f, 0.98f, 1.00f); + colors[ImGuiCol_TextDisabled] = ImVec4(0.17f, 0.21f, 0.24f, 1.00f); + colors[ImGuiCol_WindowBg] = ImVec4(0.12f, 0.15f, 0.14f, 1.00f); + colors[ImGuiCol_ChildBg] = ImVec4(0.12f, 0.15f, 0.17f, 1.00f); + colors[ImGuiCol_PopupBg] = ImVec4(0.08f, 0.09f, 0.11f, 0.94f); + colors[ImGuiCol_Border] = ImVec4(0.15f, 0.22f, 0.25f, 1.00f); + colors[ImGuiCol_BorderShadow] = ImVec4(0.20f, 0.20f, 0.20f, 0.00f); + colors[ImGuiCol_FrameBg] = ImVec4(0.18f, 0.25f, 0.27f, 1.00f); + colors[ImGuiCol_FrameBgHovered] = ImVec4(0.15f, 0.19f, 0.24f, 1.00f); + colors[ImGuiCol_FrameBgActive] = ImVec4(0.19f, 0.22f, 0.24f, 1.00f); + colors[ImGuiCol_TitleBg] = ImVec4(0.14f, 0.18f, 0.22f, 0.65f); + colors[ImGuiCol_TitleBgActive] = ImVec4(0.13f, 0.16f, 0.19f, 1.00f); + colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.15f, 0.15f, 0.15f, 0.51f); + colors[ImGuiCol_MenuBarBg] = ImVec4(0.12f, 0.14f, 0.18f, 1.00f); + colors[ImGuiCol_ScrollbarBg] = ImVec4(0.11f, 0.11f, 0.11f, 0.39f); + colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.53f, 0.37f, 0.37f, 1.00f); + colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.49f, 0.23f, 0.23f, 1.00f); + colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.56f, 0.10f, 0.10f, 1.00f); + colors[ImGuiCol_CheckMark] = ImVec4(0.65f, 0.74f, 0.86f, 1.00f); + colors[ImGuiCol_SliderGrab] = ImVec4(0.35f, 0.47f, 0.68f, 1.00f); + colors[ImGuiCol_SliderGrabActive] = ImVec4(0.68f, 0.80f, 1.00f, 1.00f); + colors[ImGuiCol_Button] = ImVec4(0.14f, 0.19f, 0.24f, 1.00f); + colors[ImGuiCol_ButtonHovered] = ImVec4(0.27f, 0.30f, 0.44f, 1.00f); + colors[ImGuiCol_ButtonActive] = ImVec4(0.28f, 0.29f, 0.41f, 1.00f); + colors[ImGuiCol_Header] = ImVec4(0.00f, 0.00f, 0.00f, 0.24f); + colors[ImGuiCol_HeaderHovered] = ImVec4(0.12f, 0.16f, 0.20f, 0.80f); + colors[ImGuiCol_HeaderActive] = ImVec4(0.00f, 0.44f, 0.92f, 1.00f); + colors[ImGuiCol_Separator] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f); + colors[ImGuiCol_SeparatorHovered] = ImVec4(0.31f, 0.45f, 0.60f, 0.78f); + colors[ImGuiCol_SeparatorActive] = ImVec4(0.42f, 0.57f, 0.75f, 1.00f); + colors[ImGuiCol_ResizeGrip] = ImVec4(0.64f, 0.79f, 0.98f, 0.25f); + colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.65f, 0.75f, 0.87f, 0.67f); + colors[ImGuiCol_ResizeGripActive] = ImVec4(0.43f, 0.55f, 0.70f, 0.95f); + colors[ImGuiCol_Tab] = ImVec4(0.11f, 0.15f, 0.17f, 1.00f); + colors[ImGuiCol_TabHovered] = ImVec4(0.59f, 0.59f, 0.59f, 0.80f); + colors[ImGuiCol_TabActive] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f); + colors[ImGuiCol_TabUnfocused] = ImVec4(0.11f, 0.15f, 0.17f, 1.00f); + colors[ImGuiCol_TabUnfocusedActive] = ImVec4(0.11f, 0.15f, 0.17f, 1.00f); + colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f); + colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f); + colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); + colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f); + colors[ImGuiCol_TableHeaderBg] = ImVec4(0.19f, 0.19f, 0.20f, 1.00f); + colors[ImGuiCol_TableBorderStrong] = ImVec4(0.31f, 0.31f, 0.35f, 1.00f); + colors[ImGuiCol_TableBorderLight] = ImVec4(0.23f, 0.23f, 0.25f, 1.00f); + colors[ImGuiCol_TableRowBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); + colors[ImGuiCol_TableRowBgAlt] = ImVec4(1.00f, 1.00f, 1.00f, 0.06f); + colors[ImGuiCol_TextSelectedBg] = ImVec4(0.26f, 0.59f, 0.98f, 0.35f); + colors[ImGuiCol_DragDropTarget] = ImVec4(1.00f, 1.00f, 0.00f, 0.90f); + colors[ImGuiCol_NavHighlight] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f); + colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f); + colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f); + colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f); + } +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/render/renderer.h b/cheat-base/src/cheat-base/render/renderer.h new file mode 100644 index 0000000..17301b1 --- /dev/null +++ b/cheat-base/src/cheat-base/render/renderer.h @@ -0,0 +1,22 @@ +#pragma once +#include +#include +#include + +namespace renderer +{ + void Init(LPBYTE pFontData, DWORD dFontDataSize); + + // Font sizing + ImFont* GetFontBySize(float fontSize); + float GetScaleByFontSize(float fontSize); + + void SetGlobalFontSize(float globalFontSize); + float GetGlobalFontSize(); + + // Input lock + void SetInputLock(void* id, bool value); + void AddInputLocker(void* id); + void RemoveInputLocker(void* id); + bool IsInputLocked(); +} diff --git a/cheat-base/src/cheat-base/thread-safe.h b/cheat-base/src/cheat-base/thread-safe.h new file mode 100644 index 0000000..8693d3b --- /dev/null +++ b/cheat-base/src/cheat-base/thread-safe.h @@ -0,0 +1,87 @@ +#pragma once + +#include +#include +#include + +template +class SafeQueue +{ +public: + SafeQueue() = default; + SafeQueue(const SafeQueue&) = delete; + SafeQueue& operator=(const SafeQueue&) = delete; + + SafeQueue(SafeQueue&& other) { + std::lock_guard lock(mutex_); + queue_ = std::move(other.queue_); + } + + virtual ~SafeQueue() { } + + unsigned long size() const { + std::lock_guard lock(mutex_); + return queue_.size(); + } + + std::optional pop() + { + std::lock_guard lock(mutex_); + if (queue_.empty()) { + return {}; + } + T tmp = queue_.front(); + queue_.pop(); + return tmp; + } + + void push(const T& item) { + std::lock_guard lock(mutex_); + queue_.push(item); + } + +private: + std::queue queue_; + mutable std::mutex mutex_; + + bool empty() const { + return queue_.empty(); + } +}; + +template +class SafeValue +{ +public: + SafeValue(T initValue) : value(initValue) {} + + SafeValue(const SafeValue&) = delete; + SafeValue& operator=(const SafeValue&) = delete; + + T GetValue() const + { + std::lock_guard lock(mutex_); + return value; + } + + void SetValue(const T& newValue) + { + std::lock_guard lock(mutex_); + value = newValue; + } + + SafeValue& operator=(const T& newValue) + { + SetValue(newValue); + return *this; + } + + operator T() const + { + return GetValue(); + } + +private: + T value; + mutable std::mutex mutex_; +}; \ No newline at end of file diff --git a/cheat-base/src/cheat-base/util.cpp b/cheat-base/src/cheat-base/util.cpp new file mode 100644 index 0000000..cacbad3 --- /dev/null +++ b/cheat-base/src/cheat-base/util.cpp @@ -0,0 +1,264 @@ +#include +#include +#include "util.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +namespace util +{ + + std::string GetLastErrorAsString(DWORD errorId /*= 0*/) + { + //Get the error message ID, if any. + DWORD errorMessageID = errorId == 0 ? ::GetLastError() : errorId; + if (errorMessageID == 0) + { + return std::string(); //No error message has been recorded + } + + LPSTR messageBuffer = nullptr; + + //Ask Win32 to give us the string version of that message ID. + //The parameters we pass in, tell Win32 to create the buffer that holds the message for us (because we don't yet know how long the message string will be). + size_t size = FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, errorMessageID, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&messageBuffer, 0, NULL); + + //Copy the error message into a std::string. + std::string message(messageBuffer, size); + + //Free the Win32's string's buffer. + LocalFree(messageBuffer); + + return message; + } + + std::string to_hex_string(uint8_t* barray, int length) + { + if (barray == nullptr || length == 0) + return std::string(); + + std::stringstream stream; + for (size_t i = 0; i < length; i++) + stream << std::setfill('0') << std::setw(2) << std::hex << (int)barray[i]; + + return stream.str(); + } + + bool IsLittleEndian() + { + unsigned int i = 1; + char* c = (char*)&i; + return (*c); + } + + std::optional SelectDirectory(const char* title) + { + auto currPath = std::filesystem::current_path(); + + if (!SUCCEEDED(CoInitialize(nullptr))) + return {}; + + IFileDialog* pfd; + if (!SUCCEEDED(CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pfd)))) + return {}; + + const size_t titleSize = strlen(title) + 1; + wchar_t* wcTitle = new wchar_t[titleSize]; + mbstowcs(wcTitle, title, titleSize); + + DWORD dwOptions; + IShellItem* psi; + if (!SUCCEEDED(pfd->GetOptions(&dwOptions)) || + !SUCCEEDED(pfd->SetOptions(dwOptions | FOS_PICKFOLDERS)) || + !SUCCEEDED(pfd->SetTitle(wcTitle)) || + !SUCCEEDED(pfd->Show(NULL)) || + !SUCCEEDED(pfd->GetResult(&psi))) + { + pfd->Release(); + return {}; + } + + WCHAR* folderName; + if (!SUCCEEDED(psi->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, &folderName))) + { + pfd->Release(); + psi->Release(); + return {}; + } + + pfd->Release(); + psi->Release(); + + std::filesystem::current_path(currPath); + + std::u16string u16(reinterpret_cast(folderName)); + return std::wstring_convert, char16_t>{}.to_bytes(u16); + } + + std::optional SelectFile(const char* filter, const char* title) + { + auto currPath = std::filesystem::current_path(); + + // common dialog box structure, setting all fields to 0 is important + OPENFILENAME ofn = { 0 }; + TCHAR szFile[260] = { 0 }; + + // Initialize remaining fields of OPENFILENAME structure + ofn.lStructSize = sizeof(ofn); + ofn.hwndOwner = NULL; + ofn.lpstrFile = szFile; + ofn.nMaxFile = sizeof(szFile); + ofn.lpstrFilter = filter; + ofn.lpstrTitle = title; + ofn.nFilterIndex = 1; + ofn.lpstrFileTitle = NULL; + ofn.nMaxFileTitle = 0; + ofn.lpstrInitialDir = NULL; + ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; + + std::optional result = {}; + if (GetOpenFileName(&ofn) == TRUE) + result = std::string(szFile); + + std::filesystem::current_path(currPath); + return result; + } + + std::optional GetOrSelectPath(CSimpleIni& ini, const char* section, const char* name, const char* friendName, const char* filter) + { + auto savedPath = ini.GetValue(section, name); + if (savedPath != nullptr) + return std::string(savedPath); + + LOG_DEBUG("%s path not found. Please point to it manually.", friendName); + + auto titleStr = string_format("Select %s", friendName); + auto selectedPath = filter == nullptr ? SelectDirectory(titleStr.c_str()) : SelectFile(filter, titleStr.c_str()); + if (!selectedPath) + return {}; + + ini.SetValue(section, name, selectedPath->c_str()); + return selectedPath; + } + + int64_t GetCurrentTimeMillisec() + { + return std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); + } + + std::vector StringSplit(const std::string& delimiter, const std::string& content) + { + std::vector tokens; + size_t pos = 0; + size_t prevPos = 0; + std::string token; + while ((pos = content.find(delimiter, prevPos)) != std::string::npos) { + token = content.substr(prevPos, pos - prevPos); + tokens.push_back(token); + prevPos = pos + delimiter.length(); + } + tokens.push_back(content.substr(prevPos)); + return tokens; + } + + static const std::string base64_chars = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + + static inline bool is_base64(BYTE c) { + return (isalnum(c) || (c == '+') || (c == '/')); + } + + std::string base64_encode(BYTE const* buf, unsigned int bufLen) { + std::string ret; + int i = 0; + int j = 0; + BYTE char_array_3[3]; + BYTE char_array_4[4]; + + while (bufLen--) { + char_array_3[i++] = *(buf++); + if (i == 3) { + char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; + char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); + char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); + char_array_4[3] = char_array_3[2] & 0x3f; + + for (i = 0; (i < 4); i++) + ret += base64_chars[char_array_4[i]]; + i = 0; + } + } + + if (i) + { + for (j = i; j < 3; j++) + char_array_3[j] = '\0'; + + char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; + char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); + char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); + char_array_4[3] = char_array_3[2] & 0x3f; + + for (j = 0; (j < i + 1); j++) + ret += base64_chars[char_array_4[j]]; + + while ((i++ < 3)) + ret += '='; + } + + return ret; + } + + std::vector base64_decode(std::string const& encoded_string) { + int in_len = encoded_string.size(); + int i = 0; + int j = 0; + int in_ = 0; + BYTE char_array_4[4], char_array_3[3]; + std::vector ret; + + while (in_len-- && (encoded_string[in_] != '=') && is_base64(encoded_string[in_])) { + char_array_4[i++] = encoded_string[in_]; in_++; + if (i == 4) { + for (i = 0; i < 4; i++) + char_array_4[i] = base64_chars.find(char_array_4[i]); + + char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4); + char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2); + char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3]; + + for (i = 0; (i < 3); i++) + ret.push_back(char_array_3[i]); + i = 0; + } + } + + if (i) { + for (j = i; j < 4; j++) + char_array_4[j] = 0; + + for (j = 0; j < 4; j++) + char_array_4[j] = base64_chars.find(char_array_4[j]); + + char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4); + char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2); + char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3]; + + for (j = 0; (j < i - 1); j++) ret.push_back(char_array_3[j]); + } + + return ret; + } +} \ No newline at end of file diff --git a/cheat-base/src/cheat-base/util.h b/cheat-base/src/cheat-base/util.h new file mode 100644 index 0000000..1ffc634 --- /dev/null +++ b/cheat-base/src/cheat-base/util.h @@ -0,0 +1,79 @@ +#pragma once +#include +#include +#include +#include +#include +#include + +#include + + +#define LOG_LAST_ERROR(fmt, ...) util::LogLastError(__FILE__, __LINE__, fmt, __VA_ARGS__) + +#define UPDATE_DELAY(delay) \ + static ULONGLONG s_LastUpdate = 0; \ + ULONGLONG currentTime = GetTickCount64();\ + if (s_LastUpdate + (delay) > currentTime) \ + return; \ + s_LastUpdate = currentTime; + +#define UPDATE_DELAY_VAR(type, name, delay) \ + static type name = {}; \ + static ULONGLONG s_LastUpdate = 0; \ + ULONGLONG currentTime = GetTickCount64();\ + if (s_LastUpdate + (delay) > currentTime) \ + return name; \ + s_LastUpdate = currentTime; + +namespace util +{ + std::optional SelectFile(const char* filter, const char* title); + std::optional SelectDirectory(const char* title); + std::optional GetOrSelectPath(CSimpleIni& ini, const char* section, const char* name, const char* friendName, const char* filter); + + std::string GetLastErrorAsString(DWORD errorId = 0); + int64_t GetCurrentTimeMillisec(); + + std::vector StringSplit(const std::string& delimiter, const std::string& content); + std::string to_hex_string(uint8_t* barray, int length); + bool IsLittleEndian(); + + std::string base64_encode(BYTE const* buf, unsigned int bufLen); + std::vector base64_decode(std::string const&); + + + template + std::string string_format(const std::string& format, Args ... args) + { + int size_s = std::snprintf(nullptr, 0, format.c_str(), args ...) + 1; // Extra space for '\0' + if (size_s <= 0) { throw std::runtime_error("Error during formatting."); } + auto size = static_cast(size_s); + auto buf = std::make_unique(size); + std::snprintf(buf.get(), size, format.c_str(), args ...); + return std::string(buf.get(), buf.get() + size - 1); // We don't want the '\0' inside + } + + template + void LogLastError(const char* filepath, int line, const char* fmt, Args ... args) + { + auto errorId = ::GetLastError(); + auto newFmt = string_format("%s. Error: %d %s", fmt, errorId, GetLastErrorAsString(errorId).c_str()); + Logger::Log(Logger::Level::Error, filepath, line, newFmt.c_str(), args ...); + } + + template + static T ReadMapped(void* data, int offset, bool littleEndian = false) + { + char* cData = (char*)data; + T result = {}; + if (IsLittleEndian() != littleEndian) + { + for (int i = 0; i < sizeof(T); i++) + ((char*)&result)[i] = cData[offset + sizeof(T) - i - 1]; + return result; + } + memcpy_s(&result, sizeof(result), cData + offset, sizeof(result)); + return result; + } +} diff --git a/cheat-base/vendor/detours/detours-x64.lib b/cheat-base/vendor/detours/detours-x64.lib new file mode 100644 index 0000000..7fda12a Binary files /dev/null and b/cheat-base/vendor/detours/detours-x64.lib differ diff --git a/cheat-base/vendor/detours/detours.h b/cheat-base/vendor/detours/detours.h new file mode 100644 index 0000000..140da7a --- /dev/null +++ b/cheat-base/vendor/detours/detours.h @@ -0,0 +1,1227 @@ +///////////////////////////////////////////////////////////////////////////// +// +// Core Detours Functionality (detours.h of detours.lib) +// +// Microsoft Research Detours Package, Version 4.0.1 +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// + +#pragma once +#ifndef _DETOURS_H_ +#define _DETOURS_H_ + +#define DETOURS_VERSION 0x4c0c1 // 0xMAJORcMINORcPATCH + +////////////////////////////////////////////////////////////////////////////// +// + +#ifdef DETOURS_INTERNAL + +#define _CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS 1 +#define _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 1 + +#pragma warning(disable:4068) // unknown pragma (suppress) + +#if _MSC_VER >= 1900 +#pragma warning(push) +#pragma warning(disable:4091) // empty typedef +#endif + +// Suppress declspec(dllimport) for the sake of Detours +// users that provide kernel32 functionality themselves. +// This is ok in the mainstream case, it will just cost +// an extra instruction calling some functions, which +// LTCG optimizes away. +// +#define _KERNEL32_ 1 +#define _USER32_ 1 + +#include +#if (_MSC_VER < 1310) +#else +#pragma warning(push) +#if _MSC_VER > 1400 +#pragma warning(disable:6102 6103) // /analyze warnings +#endif +#include +#include +#pragma warning(pop) +#endif +#include + +// Allow Detours to cleanly compile with the MingW toolchain. +// +#ifdef __GNUC__ +#define __try +#define __except(x) if (0) +#include +#include +#endif + +// From winerror.h, as this error isn't found in some SDKs: +// +// MessageId: ERROR_DYNAMIC_CODE_BLOCKED +// +// MessageText: +// +// The operation was blocked as the process prohibits dynamic code generation. +// +#define ERROR_DYNAMIC_CODE_BLOCKED 1655L + +#endif // DETOURS_INTERNAL + +////////////////////////////////////////////////////////////////////////////// +// + +#undef DETOURS_X64 +#undef DETOURS_X86 +#undef DETOURS_IA64 +#undef DETOURS_ARM +#undef DETOURS_ARM64 +#undef DETOURS_BITS +#undef DETOURS_32BIT +#undef DETOURS_64BIT + +#if defined(_X86_) +#define DETOURS_X86 +#define DETOURS_OPTION_BITS 64 + +#elif defined(_AMD64_) +#define DETOURS_X64 +#define DETOURS_OPTION_BITS 32 + +#elif defined(_IA64_) +#define DETOURS_IA64 +#define DETOURS_OPTION_BITS 32 + +#elif defined(_ARM_) +#define DETOURS_ARM + +#elif defined(_ARM64_) +#define DETOURS_ARM64 + +#else +#error Unknown architecture (x86, amd64, ia64, arm, arm64) +#endif + +#ifdef _WIN64 +#undef DETOURS_32BIT +#define DETOURS_64BIT 1 +#define DETOURS_BITS 64 +// If all 64bit kernels can run one and only one 32bit architecture. +//#define DETOURS_OPTION_BITS 32 +#else +#define DETOURS_32BIT 1 +#undef DETOURS_64BIT +#define DETOURS_BITS 32 +// If all 64bit kernels can run one and only one 32bit architecture. +//#define DETOURS_OPTION_BITS 32 +#endif + +/////////////////////////////////////////////////////////////// Helper Macros. +// +#define DETOURS_STRINGIFY_(x) #x +#define DETOURS_STRINGIFY(x) DETOURS_STRINGIFY_(x) + +#define VER_DETOURS_BITS DETOURS_STRINGIFY(DETOURS_BITS) + +////////////////////////////////////////////////////////////////////////////// +// + +#if (_MSC_VER < 1299) && !defined(__MINGW32__) +typedef LONG LONG_PTR; +typedef ULONG ULONG_PTR; +#endif + +///////////////////////////////////////////////// SAL 2.0 Annotations w/o SAL. +// +// These definitions are include so that Detours will build even if the +// compiler doesn't have full SAL 2.0 support. +// +#ifndef DETOURS_DONT_REMOVE_SAL_20 + +#ifdef DETOURS_TEST_REMOVE_SAL_20 +#undef _Analysis_assume_ +#undef _Benign_race_begin_ +#undef _Benign_race_end_ +#undef _Field_range_ +#undef _Field_size_ +#undef _In_ +#undef _In_bytecount_ +#undef _In_count_ +#undef __in_ecount +#undef _In_opt_ +#undef _In_opt_bytecount_ +#undef _In_opt_count_ +#undef _In_opt_z_ +#undef _In_range_ +#undef _In_reads_ +#undef _In_reads_bytes_ +#undef _In_reads_opt_ +#undef _In_reads_opt_bytes_ +#undef _In_reads_or_z_ +#undef _In_z_ +#undef _Inout_ +#undef _Inout_opt_ +#undef _Inout_z_count_ +#undef _Out_ +#undef _Out_opt_ +#undef _Out_writes_ +#undef _Outptr_result_maybenull_ +#undef _Readable_bytes_ +#undef _Success_ +#undef _Writable_bytes_ +#undef _Pre_notnull_ +#endif + +#if defined(_Deref_out_opt_z_) && !defined(_Outptr_result_maybenull_) +#define _Outptr_result_maybenull_ _Deref_out_opt_z_ +#endif + +#if defined(_In_count_) && !defined(_In_reads_) +#define _In_reads_(x) _In_count_(x) +#endif + +#if defined(_In_opt_count_) && !defined(_In_reads_opt_) +#define _In_reads_opt_(x) _In_opt_count_(x) +#endif + +#if defined(_In_opt_bytecount_) && !defined(_In_reads_opt_bytes_) +#define _In_reads_opt_bytes_(x) _In_opt_bytecount_(x) +#endif + +#if defined(_In_bytecount_) && !defined(_In_reads_bytes_) +#define _In_reads_bytes_(x) _In_bytecount_(x) +#endif + +#ifndef _In_ +#define _In_ +#endif + +#ifndef _In_bytecount_ +#define _In_bytecount_(x) +#endif + +#ifndef _In_count_ +#define _In_count_(x) +#endif + +#ifndef __in_ecount +#define __in_ecount(x) +#endif + +#ifndef _In_opt_ +#define _In_opt_ +#endif + +#ifndef _In_opt_bytecount_ +#define _In_opt_bytecount_(x) +#endif + +#ifndef _In_opt_count_ +#define _In_opt_count_(x) +#endif + +#ifndef _In_opt_z_ +#define _In_opt_z_ +#endif + +#ifndef _In_range_ +#define _In_range_(x,y) +#endif + +#ifndef _In_reads_ +#define _In_reads_(x) +#endif + +#ifndef _In_reads_bytes_ +#define _In_reads_bytes_(x) +#endif + +#ifndef _In_reads_opt_ +#define _In_reads_opt_(x) +#endif + +#ifndef _In_reads_opt_bytes_ +#define _In_reads_opt_bytes_(x) +#endif + +#ifndef _In_reads_or_z_ +#define _In_reads_or_z_ +#endif + +#ifndef _In_z_ +#define _In_z_ +#endif + +#ifndef _Inout_ +#define _Inout_ +#endif + +#ifndef _Inout_opt_ +#define _Inout_opt_ +#endif + +#ifndef _Inout_z_count_ +#define _Inout_z_count_(x) +#endif + +#ifndef _Out_ +#define _Out_ +#endif + +#ifndef _Out_opt_ +#define _Out_opt_ +#endif + +#ifndef _Out_writes_ +#define _Out_writes_(x) +#endif + +#ifndef _Outptr_result_maybenull_ +#define _Outptr_result_maybenull_ +#endif + +#ifndef _Writable_bytes_ +#define _Writable_bytes_(x) +#endif + +#ifndef _Readable_bytes_ +#define _Readable_bytes_(x) +#endif + +#ifndef _Success_ +#define _Success_(x) +#endif + +#ifndef _Pre_notnull_ +#define _Pre_notnull_ +#endif + +#ifdef DETOURS_INTERNAL + +#pragma warning(disable:4615) // unknown warning type (suppress with older compilers) + +#ifndef _Benign_race_begin_ +#define _Benign_race_begin_ +#endif + +#ifndef _Benign_race_end_ +#define _Benign_race_end_ +#endif + +#ifndef _Field_size_ +#define _Field_size_(x) +#endif + +#ifndef _Field_range_ +#define _Field_range_(x,y) +#endif + +#ifndef _Analysis_assume_ +#define _Analysis_assume_(x) +#endif + +#endif // DETOURS_INTERNAL +#endif // DETOURS_DONT_REMOVE_SAL_20 + +////////////////////////////////////////////////////////////////////////////// +// +#ifndef GUID_DEFINED +#define GUID_DEFINED +typedef struct _GUID +{ + DWORD Data1; + WORD Data2; + WORD Data3; + BYTE Data4[ 8 ]; +} GUID; + +#ifdef INITGUID +#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + const GUID name \ + = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } } +#else +#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + const GUID name +#endif // INITGUID +#endif // !GUID_DEFINED + +#if defined(__cplusplus) +#ifndef _REFGUID_DEFINED +#define _REFGUID_DEFINED +#define REFGUID const GUID & +#endif // !_REFGUID_DEFINED +#else // !__cplusplus +#ifndef _REFGUID_DEFINED +#define _REFGUID_DEFINED +#define REFGUID const GUID * const +#endif // !_REFGUID_DEFINED +#endif // !__cplusplus + +#ifndef ARRAYSIZE +#define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0])) +#endif + +// +////////////////////////////////////////////////////////////////////////////// + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +/////////////////////////////////////////////////// Instruction Target Macros. +// +#define DETOUR_INSTRUCTION_TARGET_NONE ((PVOID)0) +#define DETOUR_INSTRUCTION_TARGET_DYNAMIC ((PVOID)(LONG_PTR)-1) +#define DETOUR_SECTION_HEADER_SIGNATURE 0x00727444 // "Dtr\0" + +extern const GUID DETOUR_EXE_RESTORE_GUID; +extern const GUID DETOUR_EXE_HELPER_GUID; + +#define DETOUR_TRAMPOLINE_SIGNATURE 0x21727444 // Dtr! +typedef struct _DETOUR_TRAMPOLINE DETOUR_TRAMPOLINE, *PDETOUR_TRAMPOLINE; + +/////////////////////////////////////////////////////////// Binary Structures. +// +#pragma pack(push, 8) +typedef struct _DETOUR_SECTION_HEADER +{ + DWORD cbHeaderSize; + DWORD nSignature; + DWORD nDataOffset; + DWORD cbDataSize; + + DWORD nOriginalImportVirtualAddress; + DWORD nOriginalImportSize; + DWORD nOriginalBoundImportVirtualAddress; + DWORD nOriginalBoundImportSize; + + DWORD nOriginalIatVirtualAddress; + DWORD nOriginalIatSize; + DWORD nOriginalSizeOfImage; + DWORD cbPrePE; + + DWORD nOriginalClrFlags; + DWORD reserved1; + DWORD reserved2; + DWORD reserved3; + + // Followed by cbPrePE bytes of data. +} DETOUR_SECTION_HEADER, *PDETOUR_SECTION_HEADER; + +typedef struct _DETOUR_SECTION_RECORD +{ + DWORD cbBytes; + DWORD nReserved; + GUID guid; +} DETOUR_SECTION_RECORD, *PDETOUR_SECTION_RECORD; + +typedef struct _DETOUR_CLR_HEADER +{ + // Header versioning + ULONG cb; + USHORT MajorRuntimeVersion; + USHORT MinorRuntimeVersion; + + // Symbol table and startup information + IMAGE_DATA_DIRECTORY MetaData; + ULONG Flags; + + // Followed by the rest of the IMAGE_COR20_HEADER +} DETOUR_CLR_HEADER, *PDETOUR_CLR_HEADER; + +typedef struct _DETOUR_EXE_RESTORE +{ + DWORD cb; + DWORD cbidh; + DWORD cbinh; + DWORD cbclr; + + PBYTE pidh; + PBYTE pinh; + PBYTE pclr; + + IMAGE_DOS_HEADER idh; + union { + IMAGE_NT_HEADERS inh; // all environments have this +#ifdef IMAGE_NT_OPTIONAL_HDR32_MAGIC // some environments do not have this + IMAGE_NT_HEADERS32 inh32; +#endif +#ifdef IMAGE_NT_OPTIONAL_HDR64_MAGIC // some environments do not have this + IMAGE_NT_HEADERS64 inh64; +#endif +#ifdef IMAGE_NT_OPTIONAL_HDR64_MAGIC // some environments do not have this + BYTE raw[sizeof(IMAGE_NT_HEADERS64) + + sizeof(IMAGE_SECTION_HEADER) * 32]; +#else + BYTE raw[0x108 + sizeof(IMAGE_SECTION_HEADER) * 32]; +#endif + }; + DETOUR_CLR_HEADER clr; + +} DETOUR_EXE_RESTORE, *PDETOUR_EXE_RESTORE; + +#ifdef IMAGE_NT_OPTIONAL_HDR64_MAGIC +C_ASSERT(sizeof(IMAGE_NT_HEADERS64) == 0x108); +#endif + +// The size can change, but assert for clarity due to the muddying #ifdefs. +#ifdef _WIN64 +C_ASSERT(sizeof(DETOUR_EXE_RESTORE) == 0x688); +#else +C_ASSERT(sizeof(DETOUR_EXE_RESTORE) == 0x678); +#endif + +typedef struct _DETOUR_EXE_HELPER +{ + DWORD cb; + DWORD pid; + DWORD nDlls; + CHAR rDlls[4]; +} DETOUR_EXE_HELPER, *PDETOUR_EXE_HELPER; + +#pragma pack(pop) + +#define DETOUR_SECTION_HEADER_DECLARE(cbSectionSize) \ +{ \ + sizeof(DETOUR_SECTION_HEADER),\ + DETOUR_SECTION_HEADER_SIGNATURE,\ + sizeof(DETOUR_SECTION_HEADER),\ + (cbSectionSize),\ + \ + 0,\ + 0,\ + 0,\ + 0,\ + \ + 0,\ + 0,\ + 0,\ + 0,\ +} + +///////////////////////////////////////////////////////////// Binary Typedefs. +// +typedef BOOL (CALLBACK *PF_DETOUR_BINARY_BYWAY_CALLBACK)( + _In_opt_ PVOID pContext, + _In_opt_ LPCSTR pszFile, + _Outptr_result_maybenull_ LPCSTR *ppszOutFile); + +typedef BOOL (CALLBACK *PF_DETOUR_BINARY_FILE_CALLBACK)( + _In_opt_ PVOID pContext, + _In_ LPCSTR pszOrigFile, + _In_ LPCSTR pszFile, + _Outptr_result_maybenull_ LPCSTR *ppszOutFile); + +typedef BOOL (CALLBACK *PF_DETOUR_BINARY_SYMBOL_CALLBACK)( + _In_opt_ PVOID pContext, + _In_ ULONG nOrigOrdinal, + _In_ ULONG nOrdinal, + _Out_ ULONG *pnOutOrdinal, + _In_opt_ LPCSTR pszOrigSymbol, + _In_opt_ LPCSTR pszSymbol, + _Outptr_result_maybenull_ LPCSTR *ppszOutSymbol); + +typedef BOOL (CALLBACK *PF_DETOUR_BINARY_COMMIT_CALLBACK)( + _In_opt_ PVOID pContext); + +typedef BOOL (CALLBACK *PF_DETOUR_ENUMERATE_EXPORT_CALLBACK)(_In_opt_ PVOID pContext, + _In_ ULONG nOrdinal, + _In_opt_ LPCSTR pszName, + _In_opt_ PVOID pCode); + +typedef BOOL (CALLBACK *PF_DETOUR_IMPORT_FILE_CALLBACK)(_In_opt_ PVOID pContext, + _In_opt_ HMODULE hModule, + _In_opt_ LPCSTR pszFile); + +typedef BOOL (CALLBACK *PF_DETOUR_IMPORT_FUNC_CALLBACK)(_In_opt_ PVOID pContext, + _In_ DWORD nOrdinal, + _In_opt_ LPCSTR pszFunc, + _In_opt_ PVOID pvFunc); + +// Same as PF_DETOUR_IMPORT_FUNC_CALLBACK but extra indirection on last parameter. +typedef BOOL (CALLBACK *PF_DETOUR_IMPORT_FUNC_CALLBACK_EX)(_In_opt_ PVOID pContext, + _In_ DWORD nOrdinal, + _In_opt_ LPCSTR pszFunc, + _In_opt_ PVOID* ppvFunc); + +typedef VOID * PDETOUR_BINARY; +typedef VOID * PDETOUR_LOADED_BINARY; + +//////////////////////////////////////////////////////////// Transaction APIs. +// +LONG WINAPI DetourTransactionBegin(VOID); +LONG WINAPI DetourTransactionAbort(VOID); +LONG WINAPI DetourTransactionCommit(VOID); +LONG WINAPI DetourTransactionCommitEx(_Out_opt_ PVOID **pppFailedPointer); + +LONG WINAPI DetourUpdateThread(_In_ HANDLE hThread); + +LONG WINAPI DetourAttach(_Inout_ PVOID *ppPointer, + _In_ PVOID pDetour); + +LONG WINAPI DetourAttachEx(_Inout_ PVOID *ppPointer, + _In_ PVOID pDetour, + _Out_opt_ PDETOUR_TRAMPOLINE *ppRealTrampoline, + _Out_opt_ PVOID *ppRealTarget, + _Out_opt_ PVOID *ppRealDetour); + +LONG WINAPI DetourDetach(_Inout_ PVOID *ppPointer, + _In_ PVOID pDetour); + +BOOL WINAPI DetourSetIgnoreTooSmall(_In_ BOOL fIgnore); +BOOL WINAPI DetourSetRetainRegions(_In_ BOOL fRetain); +PVOID WINAPI DetourSetSystemRegionLowerBound(_In_ PVOID pSystemRegionLowerBound); +PVOID WINAPI DetourSetSystemRegionUpperBound(_In_ PVOID pSystemRegionUpperBound); + +////////////////////////////////////////////////////////////// Code Functions. +// +PVOID WINAPI DetourFindFunction(_In_ LPCSTR pszModule, + _In_ LPCSTR pszFunction); +PVOID WINAPI DetourCodeFromPointer(_In_ PVOID pPointer, + _Out_opt_ PVOID *ppGlobals); +PVOID WINAPI DetourCopyInstruction(_In_opt_ PVOID pDst, + _Inout_opt_ PVOID *ppDstPool, + _In_ PVOID pSrc, + _Out_opt_ PVOID *ppTarget, + _Out_opt_ LONG *plExtra); +BOOL WINAPI DetourSetCodeModule(_In_ HMODULE hModule, + _In_ BOOL fLimitReferencesToModule); +PVOID WINAPI DetourAllocateRegionWithinJumpBounds(_In_ LPCVOID pbTarget, + _Out_ PDWORD pcbAllocatedSize); + +///////////////////////////////////////////////////// Loaded Binary Functions. +// +HMODULE WINAPI DetourGetContainingModule(_In_ PVOID pvAddr); +HMODULE WINAPI DetourEnumerateModules(_In_opt_ HMODULE hModuleLast); +PVOID WINAPI DetourGetEntryPoint(_In_opt_ HMODULE hModule); +ULONG WINAPI DetourGetModuleSize(_In_opt_ HMODULE hModule); +BOOL WINAPI DetourEnumerateExports(_In_ HMODULE hModule, + _In_opt_ PVOID pContext, + _In_ PF_DETOUR_ENUMERATE_EXPORT_CALLBACK pfExport); +BOOL WINAPI DetourEnumerateImports(_In_opt_ HMODULE hModule, + _In_opt_ PVOID pContext, + _In_opt_ PF_DETOUR_IMPORT_FILE_CALLBACK pfImportFile, + _In_opt_ PF_DETOUR_IMPORT_FUNC_CALLBACK pfImportFunc); + +BOOL WINAPI DetourEnumerateImportsEx(_In_opt_ HMODULE hModule, + _In_opt_ PVOID pContext, + _In_opt_ PF_DETOUR_IMPORT_FILE_CALLBACK pfImportFile, + _In_opt_ PF_DETOUR_IMPORT_FUNC_CALLBACK_EX pfImportFuncEx); + +_Writable_bytes_(*pcbData) +_Readable_bytes_(*pcbData) +_Success_(return != NULL) +PVOID WINAPI DetourFindPayload(_In_opt_ HMODULE hModule, + _In_ REFGUID rguid, + _Out_opt_ DWORD *pcbData); + +_Writable_bytes_(*pcbData) +_Readable_bytes_(*pcbData) +_Success_(return != NULL) +PVOID WINAPI DetourFindPayloadEx(_In_ REFGUID rguid, + _Out_opt_ DWORD *pcbData); + +DWORD WINAPI DetourGetSizeOfPayloads(_In_opt_ HMODULE hModule); + +BOOL WINAPI DetourFreePayload(_In_ PVOID pvData); +///////////////////////////////////////////////// Persistent Binary Functions. +// + +PDETOUR_BINARY WINAPI DetourBinaryOpen(_In_ HANDLE hFile); + +_Writable_bytes_(*pcbData) +_Readable_bytes_(*pcbData) +_Success_(return != NULL) +PVOID WINAPI DetourBinaryEnumeratePayloads(_In_ PDETOUR_BINARY pBinary, + _Out_opt_ GUID *pGuid, + _Out_ DWORD *pcbData, + _Inout_ DWORD *pnIterator); + +_Writable_bytes_(*pcbData) +_Readable_bytes_(*pcbData) +_Success_(return != NULL) +PVOID WINAPI DetourBinaryFindPayload(_In_ PDETOUR_BINARY pBinary, + _In_ REFGUID rguid, + _Out_ DWORD *pcbData); + +PVOID WINAPI DetourBinarySetPayload(_In_ PDETOUR_BINARY pBinary, + _In_ REFGUID rguid, + _In_reads_opt_(cbData) PVOID pData, + _In_ DWORD cbData); +BOOL WINAPI DetourBinaryDeletePayload(_In_ PDETOUR_BINARY pBinary, _In_ REFGUID rguid); +BOOL WINAPI DetourBinaryPurgePayloads(_In_ PDETOUR_BINARY pBinary); +BOOL WINAPI DetourBinaryResetImports(_In_ PDETOUR_BINARY pBinary); +BOOL WINAPI DetourBinaryEditImports(_In_ PDETOUR_BINARY pBinary, + _In_opt_ PVOID pContext, + _In_opt_ PF_DETOUR_BINARY_BYWAY_CALLBACK pfByway, + _In_opt_ PF_DETOUR_BINARY_FILE_CALLBACK pfFile, + _In_opt_ PF_DETOUR_BINARY_SYMBOL_CALLBACK pfSymbol, + _In_opt_ PF_DETOUR_BINARY_COMMIT_CALLBACK pfCommit); +BOOL WINAPI DetourBinaryWrite(_In_ PDETOUR_BINARY pBinary, _In_ HANDLE hFile); +BOOL WINAPI DetourBinaryClose(_In_ PDETOUR_BINARY pBinary); + +/////////////////////////////////////////////////// Create Process & Load Dll. +// +_Success_(return != NULL) +PVOID WINAPI DetourFindRemotePayload(_In_ HANDLE hProcess, + _In_ REFGUID rguid, + _Out_opt_ DWORD *pcbData); + +typedef BOOL (WINAPI *PDETOUR_CREATE_PROCESS_ROUTINEA)( + _In_opt_ LPCSTR lpApplicationName, + _Inout_opt_ LPSTR lpCommandLine, + _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, + _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, + _In_ BOOL bInheritHandles, + _In_ DWORD dwCreationFlags, + _In_opt_ LPVOID lpEnvironment, + _In_opt_ LPCSTR lpCurrentDirectory, + _In_ LPSTARTUPINFOA lpStartupInfo, + _Out_ LPPROCESS_INFORMATION lpProcessInformation); + +typedef BOOL (WINAPI *PDETOUR_CREATE_PROCESS_ROUTINEW)( + _In_opt_ LPCWSTR lpApplicationName, + _Inout_opt_ LPWSTR lpCommandLine, + _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, + _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, + _In_ BOOL bInheritHandles, + _In_ DWORD dwCreationFlags, + _In_opt_ LPVOID lpEnvironment, + _In_opt_ LPCWSTR lpCurrentDirectory, + _In_ LPSTARTUPINFOW lpStartupInfo, + _Out_ LPPROCESS_INFORMATION lpProcessInformation); + +BOOL WINAPI DetourCreateProcessWithDllA(_In_opt_ LPCSTR lpApplicationName, + _Inout_opt_ LPSTR lpCommandLine, + _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, + _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, + _In_ BOOL bInheritHandles, + _In_ DWORD dwCreationFlags, + _In_opt_ LPVOID lpEnvironment, + _In_opt_ LPCSTR lpCurrentDirectory, + _In_ LPSTARTUPINFOA lpStartupInfo, + _Out_ LPPROCESS_INFORMATION lpProcessInformation, + _In_ LPCSTR lpDllName, + _In_opt_ PDETOUR_CREATE_PROCESS_ROUTINEA pfCreateProcessA); + +BOOL WINAPI DetourCreateProcessWithDllW(_In_opt_ LPCWSTR lpApplicationName, + _Inout_opt_ LPWSTR lpCommandLine, + _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, + _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, + _In_ BOOL bInheritHandles, + _In_ DWORD dwCreationFlags, + _In_opt_ LPVOID lpEnvironment, + _In_opt_ LPCWSTR lpCurrentDirectory, + _In_ LPSTARTUPINFOW lpStartupInfo, + _Out_ LPPROCESS_INFORMATION lpProcessInformation, + _In_ LPCSTR lpDllName, + _In_opt_ PDETOUR_CREATE_PROCESS_ROUTINEW pfCreateProcessW); + +#ifdef UNICODE +#define DetourCreateProcessWithDll DetourCreateProcessWithDllW +#define PDETOUR_CREATE_PROCESS_ROUTINE PDETOUR_CREATE_PROCESS_ROUTINEW +#else +#define DetourCreateProcessWithDll DetourCreateProcessWithDllA +#define PDETOUR_CREATE_PROCESS_ROUTINE PDETOUR_CREATE_PROCESS_ROUTINEA +#endif // !UNICODE + +BOOL WINAPI DetourCreateProcessWithDllExA(_In_opt_ LPCSTR lpApplicationName, + _Inout_opt_ LPSTR lpCommandLine, + _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, + _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, + _In_ BOOL bInheritHandles, + _In_ DWORD dwCreationFlags, + _In_opt_ LPVOID lpEnvironment, + _In_opt_ LPCSTR lpCurrentDirectory, + _In_ LPSTARTUPINFOA lpStartupInfo, + _Out_ LPPROCESS_INFORMATION lpProcessInformation, + _In_ LPCSTR lpDllName, + _In_opt_ PDETOUR_CREATE_PROCESS_ROUTINEA pfCreateProcessA); + +BOOL WINAPI DetourCreateProcessWithDllExW(_In_opt_ LPCWSTR lpApplicationName, + _Inout_opt_ LPWSTR lpCommandLine, + _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, + _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, + _In_ BOOL bInheritHandles, + _In_ DWORD dwCreationFlags, + _In_opt_ LPVOID lpEnvironment, + _In_opt_ LPCWSTR lpCurrentDirectory, + _In_ LPSTARTUPINFOW lpStartupInfo, + _Out_ LPPROCESS_INFORMATION lpProcessInformation, + _In_ LPCSTR lpDllName, + _In_opt_ PDETOUR_CREATE_PROCESS_ROUTINEW pfCreateProcessW); + +#ifdef UNICODE +#define DetourCreateProcessWithDllEx DetourCreateProcessWithDllExW +#else +#define DetourCreateProcessWithDllEx DetourCreateProcessWithDllExA +#endif // !UNICODE + +BOOL WINAPI DetourCreateProcessWithDllsA(_In_opt_ LPCSTR lpApplicationName, + _Inout_opt_ LPSTR lpCommandLine, + _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, + _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, + _In_ BOOL bInheritHandles, + _In_ DWORD dwCreationFlags, + _In_opt_ LPVOID lpEnvironment, + _In_opt_ LPCSTR lpCurrentDirectory, + _In_ LPSTARTUPINFOA lpStartupInfo, + _Out_ LPPROCESS_INFORMATION lpProcessInformation, + _In_ DWORD nDlls, + _In_reads_(nDlls) LPCSTR *rlpDlls, + _In_opt_ PDETOUR_CREATE_PROCESS_ROUTINEA pfCreateProcessA); + +BOOL WINAPI DetourCreateProcessWithDllsW(_In_opt_ LPCWSTR lpApplicationName, + _Inout_opt_ LPWSTR lpCommandLine, + _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, + _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, + _In_ BOOL bInheritHandles, + _In_ DWORD dwCreationFlags, + _In_opt_ LPVOID lpEnvironment, + _In_opt_ LPCWSTR lpCurrentDirectory, + _In_ LPSTARTUPINFOW lpStartupInfo, + _Out_ LPPROCESS_INFORMATION lpProcessInformation, + _In_ DWORD nDlls, + _In_reads_(nDlls) LPCSTR *rlpDlls, + _In_opt_ PDETOUR_CREATE_PROCESS_ROUTINEW pfCreateProcessW); + +#ifdef UNICODE +#define DetourCreateProcessWithDlls DetourCreateProcessWithDllsW +#else +#define DetourCreateProcessWithDlls DetourCreateProcessWithDllsA +#endif // !UNICODE + +BOOL WINAPI DetourProcessViaHelperA(_In_ DWORD dwTargetPid, + _In_ LPCSTR lpDllName, + _In_ PDETOUR_CREATE_PROCESS_ROUTINEA pfCreateProcessA); + +BOOL WINAPI DetourProcessViaHelperW(_In_ DWORD dwTargetPid, + _In_ LPCSTR lpDllName, + _In_ PDETOUR_CREATE_PROCESS_ROUTINEW pfCreateProcessW); + +#ifdef UNICODE +#define DetourProcessViaHelper DetourProcessViaHelperW +#else +#define DetourProcessViaHelper DetourProcessViaHelperA +#endif // !UNICODE + +BOOL WINAPI DetourProcessViaHelperDllsA(_In_ DWORD dwTargetPid, + _In_ DWORD nDlls, + _In_reads_(nDlls) LPCSTR *rlpDlls, + _In_ PDETOUR_CREATE_PROCESS_ROUTINEA pfCreateProcessA); + +BOOL WINAPI DetourProcessViaHelperDllsW(_In_ DWORD dwTargetPid, + _In_ DWORD nDlls, + _In_reads_(nDlls) LPCSTR *rlpDlls, + _In_ PDETOUR_CREATE_PROCESS_ROUTINEW pfCreateProcessW); + +#ifdef UNICODE +#define DetourProcessViaHelperDlls DetourProcessViaHelperDllsW +#else +#define DetourProcessViaHelperDlls DetourProcessViaHelperDllsA +#endif // !UNICODE + +BOOL WINAPI DetourUpdateProcessWithDll(_In_ HANDLE hProcess, + _In_reads_(nDlls) LPCSTR *rlpDlls, + _In_ DWORD nDlls); + +BOOL WINAPI DetourUpdateProcessWithDllEx(_In_ HANDLE hProcess, + _In_ HMODULE hImage, + _In_ BOOL bIs32Bit, + _In_reads_(nDlls) LPCSTR *rlpDlls, + _In_ DWORD nDlls); + +BOOL WINAPI DetourCopyPayloadToProcess(_In_ HANDLE hProcess, + _In_ REFGUID rguid, + _In_reads_bytes_(cbData) LPCVOID pvData, + _In_ DWORD cbData); +_Success_(return != NULL) +PVOID WINAPI DetourCopyPayloadToProcessEx(_In_ HANDLE hProcess, + _In_ REFGUID rguid, + _In_reads_bytes_(cbData) LPCVOID pvData, + _In_ DWORD cbData); + +BOOL WINAPI DetourRestoreAfterWith(VOID); +BOOL WINAPI DetourRestoreAfterWithEx(_In_reads_bytes_(cbData) PVOID pvData, + _In_ DWORD cbData); +BOOL WINAPI DetourIsHelperProcess(VOID); +VOID CALLBACK DetourFinishHelperProcess(_In_ HWND, + _In_ HINSTANCE, + _In_ LPSTR, + _In_ INT); + +// +////////////////////////////////////////////////////////////////////////////// +#ifdef __cplusplus +} +#endif // __cplusplus + +/////////////////////////////////////////////////// Type-safe overloads for C++ +// +#if __cplusplus >= 201103L || _MSVC_LANG >= 201103L +#include + +template +struct DetoursIsFunctionPointer : std::false_type {}; + +template +struct DetoursIsFunctionPointer : std::is_function::type> {}; + +template< + typename T, + typename std::enable_if::value, int>::type = 0> +LONG DetourAttach(_Inout_ T *ppPointer, + _In_ T pDetour) noexcept +{ + return DetourAttach( + reinterpret_cast(ppPointer), + reinterpret_cast(pDetour)); +} + +template< + typename T, + typename std::enable_if::value, int>::type = 0> +LONG DetourAttachEx(_Inout_ T *ppPointer, + _In_ T pDetour, + _Out_opt_ PDETOUR_TRAMPOLINE *ppRealTrampoline, + _Out_opt_ T *ppRealTarget, + _Out_opt_ T *ppRealDetour) noexcept +{ + return DetourAttachEx( + reinterpret_cast(ppPointer), + reinterpret_cast(pDetour), + ppRealTrampoline, + reinterpret_cast(ppRealTarget), + reinterpret_cast(ppRealDetour)); +} + +template< + typename T, + typename std::enable_if::value, int>::type = 0> +LONG DetourDetach(_Inout_ T *ppPointer, + _In_ T pDetour) noexcept +{ + return DetourDetach( + reinterpret_cast(ppPointer), + reinterpret_cast(pDetour)); +} + +#endif // __cplusplus >= 201103L || _MSVC_LANG >= 201103L +// +////////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////// Detours Internal Definitions. +// +#ifdef __cplusplus +#ifdef DETOURS_INTERNAL + +#define NOTHROW +// #define NOTHROW (nothrow) + +////////////////////////////////////////////////////////////////////////////// +// +#if (_MSC_VER < 1299) && !defined(__GNUC__) +#include +typedef IMAGEHLP_MODULE IMAGEHLP_MODULE64; +typedef PIMAGEHLP_MODULE PIMAGEHLP_MODULE64; +typedef IMAGEHLP_SYMBOL SYMBOL_INFO; +typedef PIMAGEHLP_SYMBOL PSYMBOL_INFO; + +static inline +LONG InterlockedCompareExchange(_Inout_ LONG *ptr, _In_ LONG nval, _In_ LONG oval) +{ + return (LONG)::InterlockedCompareExchange((PVOID*)ptr, (PVOID)nval, (PVOID)oval); +} +#else +#pragma warning(push) +#pragma warning(disable:4091) // empty typedef +#include +#pragma warning(pop) +#endif + +#ifdef IMAGEAPI // defined by DBGHELP.H +typedef LPAPI_VERSION (NTAPI *PF_ImagehlpApiVersionEx)(_In_ LPAPI_VERSION AppVersion); + +typedef BOOL (NTAPI *PF_SymInitialize)(_In_ HANDLE hProcess, + _In_opt_ LPCSTR UserSearchPath, + _In_ BOOL fInvadeProcess); +typedef DWORD (NTAPI *PF_SymSetOptions)(_In_ DWORD SymOptions); +typedef DWORD (NTAPI *PF_SymGetOptions)(VOID); +typedef DWORD64 (NTAPI *PF_SymLoadModule64)(_In_ HANDLE hProcess, + _In_opt_ HANDLE hFile, + _In_ LPSTR ImageName, + _In_opt_ LPSTR ModuleName, + _In_ DWORD64 BaseOfDll, + _In_opt_ DWORD SizeOfDll); +typedef BOOL (NTAPI *PF_SymGetModuleInfo64)(_In_ HANDLE hProcess, + _In_ DWORD64 qwAddr, + _Out_ PIMAGEHLP_MODULE64 ModuleInfo); +typedef BOOL (NTAPI *PF_SymFromName)(_In_ HANDLE hProcess, + _In_ LPSTR Name, + _Out_ PSYMBOL_INFO Symbol); + +typedef struct _DETOUR_SYM_INFO +{ + HANDLE hProcess; + HMODULE hDbgHelp; + PF_ImagehlpApiVersionEx pfImagehlpApiVersionEx; + PF_SymInitialize pfSymInitialize; + PF_SymSetOptions pfSymSetOptions; + PF_SymGetOptions pfSymGetOptions; + PF_SymLoadModule64 pfSymLoadModule64; + PF_SymGetModuleInfo64 pfSymGetModuleInfo64; + PF_SymFromName pfSymFromName; +} DETOUR_SYM_INFO, *PDETOUR_SYM_INFO; + +PDETOUR_SYM_INFO DetourLoadImageHlp(VOID); + +#endif // IMAGEAPI + +#if defined(_INC_STDIO) && !defined(_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS) +#error detours.h must be included before stdio.h (or at least define _CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS earlier) +#endif +#define _CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS 1 + +#ifdef _DEBUG + +int Detour_AssertExprWithFunctionName(int reportType, const char* filename, int linenumber, const char* FunctionName, const char* msg); + +#define DETOUR_ASSERT_EXPR_WITH_FUNCTION(expr, msg) \ + (void) ((expr) || \ + (1 != Detour_AssertExprWithFunctionName(_CRT_ASSERT, __FILE__, __LINE__,__FUNCTION__, msg)) || \ + (_CrtDbgBreak(), 0)) + +#define DETOUR_ASSERT(expr) DETOUR_ASSERT_EXPR_WITH_FUNCTION((expr), #expr) + +#else// _DEBUG +#define DETOUR_ASSERT(expr) +#endif// _DEBUG + +#ifndef DETOUR_TRACE +#if DETOUR_DEBUG +#define DETOUR_TRACE(x) printf x +#define DETOUR_BREAK() __debugbreak() +#include +#include +#else +#define DETOUR_TRACE(x) +#define DETOUR_BREAK() +#endif +#endif + +#if 1 || defined(DETOURS_IA64) + +// +// IA64 instructions are 41 bits, 3 per bundle, plus 5 bit bundle template => 128 bits per bundle. +// + +#define DETOUR_IA64_INSTRUCTIONS_PER_BUNDLE (3) + +#define DETOUR_IA64_TEMPLATE_OFFSET (0) +#define DETOUR_IA64_TEMPLATE_SIZE (5) + +#define DETOUR_IA64_INSTRUCTION_SIZE (41) +#define DETOUR_IA64_INSTRUCTION0_OFFSET (DETOUR_IA64_TEMPLATE_SIZE) +#define DETOUR_IA64_INSTRUCTION1_OFFSET (DETOUR_IA64_TEMPLATE_SIZE + DETOUR_IA64_INSTRUCTION_SIZE) +#define DETOUR_IA64_INSTRUCTION2_OFFSET (DETOUR_IA64_TEMPLATE_SIZE + DETOUR_IA64_INSTRUCTION_SIZE + DETOUR_IA64_INSTRUCTION_SIZE) + +C_ASSERT(DETOUR_IA64_TEMPLATE_SIZE + DETOUR_IA64_INSTRUCTIONS_PER_BUNDLE * DETOUR_IA64_INSTRUCTION_SIZE == 128); + +__declspec(align(16)) struct DETOUR_IA64_BUNDLE +{ + public: + union + { + BYTE data[16]; + UINT64 wide[2]; + }; + + enum { + A_UNIT = 1u, + I_UNIT = 2u, + M_UNIT = 3u, + B_UNIT = 4u, + F_UNIT = 5u, + L_UNIT = 6u, + X_UNIT = 7u, + }; + struct DETOUR_IA64_METADATA + { + ULONG nTemplate : 8; // Instruction template. + ULONG nUnit0 : 4; // Unit for slot 0 + ULONG nUnit1 : 4; // Unit for slot 1 + ULONG nUnit2 : 4; // Unit for slot 2 + }; + + protected: + static const DETOUR_IA64_METADATA s_rceCopyTable[33]; + + UINT RelocateBundle(_Inout_ DETOUR_IA64_BUNDLE* pDst, _Inout_opt_ DETOUR_IA64_BUNDLE* pBundleExtra) const; + + bool RelocateInstruction(_Inout_ DETOUR_IA64_BUNDLE* pDst, + _In_ BYTE slot, + _Inout_opt_ DETOUR_IA64_BUNDLE* pBundleExtra) const; + + // 120 112 104 96 88 80 72 64 56 48 40 32 24 16 8 0 + // f. e. d. c. b. a. 9. 8. 7. 6. 5. 4. 3. 2. 1. 0. + + // 00 + // f.e. d.c. b.a. 9.8. 7.6. 5.4. 3.2. 1.0. + // 0000 0000 0000 0000 0000 0000 0000 001f : Template [4..0] + // 0000 0000 0000 0000 0000 03ff ffff ffe0 : Zero [ 41.. 5] + // 0000 0000 0000 0000 0000 3c00 0000 0000 : Zero [ 45.. 42] + // 0000 0000 0007 ffff ffff c000 0000 0000 : One [ 82.. 46] + // 0000 0000 0078 0000 0000 0000 0000 0000 : One [ 86.. 83] + // 0fff ffff ff80 0000 0000 0000 0000 0000 : Two [123.. 87] + // f000 0000 0000 0000 0000 0000 0000 0000 : Two [127..124] + BYTE GetTemplate() const; + // Get 4 bit opcodes. + BYTE GetInst0() const; + BYTE GetInst1() const; + BYTE GetInst2() const; + BYTE GetUnit(BYTE slot) const; + BYTE GetUnit0() const; + BYTE GetUnit1() const; + BYTE GetUnit2() const; + // Get 37 bit data. + UINT64 GetData0() const; + UINT64 GetData1() const; + UINT64 GetData2() const; + + // Get/set the full 41 bit instructions. + UINT64 GetInstruction(BYTE slot) const; + UINT64 GetInstruction0() const; + UINT64 GetInstruction1() const; + UINT64 GetInstruction2() const; + void SetInstruction(BYTE slot, UINT64 instruction); + void SetInstruction0(UINT64 instruction); + void SetInstruction1(UINT64 instruction); + void SetInstruction2(UINT64 instruction); + + // Get/set bitfields. + static UINT64 GetBits(UINT64 Value, UINT64 Offset, UINT64 Count); + static UINT64 SetBits(UINT64 Value, UINT64 Offset, UINT64 Count, UINT64 Field); + + // Get specific read-only fields. + static UINT64 GetOpcode(UINT64 instruction); // 4bit opcode + static UINT64 GetX(UINT64 instruction); // 1bit opcode extension + static UINT64 GetX3(UINT64 instruction); // 3bit opcode extension + static UINT64 GetX6(UINT64 instruction); // 6bit opcode extension + + // Get/set specific fields. + static UINT64 GetImm7a(UINT64 instruction); + static UINT64 SetImm7a(UINT64 instruction, UINT64 imm7a); + static UINT64 GetImm13c(UINT64 instruction); + static UINT64 SetImm13c(UINT64 instruction, UINT64 imm13c); + static UINT64 GetSignBit(UINT64 instruction); + static UINT64 SetSignBit(UINT64 instruction, UINT64 signBit); + static UINT64 GetImm20a(UINT64 instruction); + static UINT64 SetImm20a(UINT64 instruction, UINT64 imm20a); + static UINT64 GetImm20b(UINT64 instruction); + static UINT64 SetImm20b(UINT64 instruction, UINT64 imm20b); + + static UINT64 SignExtend(UINT64 Value, UINT64 Offset); + + BOOL IsMovlGp() const; + + VOID SetInst(BYTE Slot, BYTE nInst); + VOID SetInst0(BYTE nInst); + VOID SetInst1(BYTE nInst); + VOID SetInst2(BYTE nInst); + VOID SetData(BYTE Slot, UINT64 nData); + VOID SetData0(UINT64 nData); + VOID SetData1(UINT64 nData); + VOID SetData2(UINT64 nData); + BOOL SetNop(BYTE Slot); + BOOL SetNop0(); + BOOL SetNop1(); + BOOL SetNop2(); + + public: + BOOL IsBrl() const; + VOID SetBrl(); + VOID SetBrl(UINT64 target); + UINT64 GetBrlTarget() const; + VOID SetBrlTarget(UINT64 target); + VOID SetBrlImm(UINT64 imm); + UINT64 GetBrlImm() const; + + UINT64 GetMovlGp() const; + VOID SetMovlGp(UINT64 gp); + + VOID SetStop(); + + UINT Copy(_Out_ DETOUR_IA64_BUNDLE *pDst, _Inout_opt_ DETOUR_IA64_BUNDLE* pBundleExtra = NULL) const; +}; +#endif // DETOURS_IA64 + +#ifdef DETOURS_ARM + +#define DETOURS_PFUNC_TO_PBYTE(p) ((PBYTE)(((ULONG_PTR)(p)) & ~(ULONG_PTR)1)) +#define DETOURS_PBYTE_TO_PFUNC(p) ((PBYTE)(((ULONG_PTR)(p)) | (ULONG_PTR)1)) + +#endif // DETOURS_ARM + +////////////////////////////////////////////////////////////////////////////// + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +#define DETOUR_OFFLINE_LIBRARY(x) \ +PVOID WINAPI DetourCopyInstruction##x(_In_opt_ PVOID pDst, \ + _Inout_opt_ PVOID *ppDstPool, \ + _In_ PVOID pSrc, \ + _Out_opt_ PVOID *ppTarget, \ + _Out_opt_ LONG *plExtra); \ + \ +BOOL WINAPI DetourSetCodeModule##x(_In_ HMODULE hModule, \ + _In_ BOOL fLimitReferencesToModule); \ + +DETOUR_OFFLINE_LIBRARY(X86) +DETOUR_OFFLINE_LIBRARY(X64) +DETOUR_OFFLINE_LIBRARY(ARM) +DETOUR_OFFLINE_LIBRARY(ARM64) +DETOUR_OFFLINE_LIBRARY(IA64) + +#undef DETOUR_OFFLINE_LIBRARY + +////////////////////////////////////////////////////////////////////////////// +// +// Helpers for manipulating page protection. +// + +_Success_(return != FALSE) +BOOL WINAPI DetourVirtualProtectSameExecuteEx(_In_ HANDLE hProcess, + _In_ PVOID pAddress, + _In_ SIZE_T nSize, + _In_ DWORD dwNewProtect, + _Out_ PDWORD pdwOldProtect); + +_Success_(return != FALSE) +BOOL WINAPI DetourVirtualProtectSameExecute(_In_ PVOID pAddress, + _In_ SIZE_T nSize, + _In_ DWORD dwNewProtect, + _Out_ PDWORD pdwOldProtect); + +// Detours must depend only on kernel32.lib, so we cannot use IsEqualGUID +BOOL WINAPI DetourAreSameGuid(_In_ REFGUID left, _In_ REFGUID right); +#ifdef __cplusplus +} +#endif // __cplusplus + +////////////////////////////////////////////////////////////////////////////// + +#define MM_ALLOCATION_GRANULARITY 0x10000 + +////////////////////////////////////////////////////////////////////////////// + +#endif // DETOURS_INTERNAL +#endif // __cplusplus + +#endif // _DETOURS_H_ +// +//////////////////////////////////////////////////////////////// End of File. diff --git a/cheat-base/vendor/detours/detver.h b/cheat-base/vendor/detours/detver.h new file mode 100644 index 0000000..3d4f544 --- /dev/null +++ b/cheat-base/vendor/detours/detver.h @@ -0,0 +1,27 @@ +////////////////////////////////////////////////////////////////////////////// +// +// Common version parameters. +// +// Microsoft Research Detours Package, Version 4.0.1 +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// + +#define _USING_V110_SDK71_ 1 +#include "winver.h" +#if 0 +#include +#include +#else +#ifndef DETOURS_STRINGIFY +#define DETOURS_STRINGIFY_(x) #x +#define DETOURS_STRINGIFY(x) DETOURS_STRINGIFY_(x) +#endif + +#define VER_FILEFLAGSMASK 0x3fL +#define VER_FILEFLAGS 0x0L +#define VER_FILEOS 0x00040004L +#define VER_FILETYPE 0x00000002L +#define VER_FILESUBTYPE 0x00000000L +#endif +#define VER_DETOURS_BITS DETOURS_STRINGIFY(DETOURS_BITS) diff --git a/cheat-base/vendor/fmt b/cheat-base/vendor/fmt new file mode 160000 index 0000000..86e27cc --- /dev/null +++ b/cheat-base/vendor/fmt @@ -0,0 +1 @@ +Subproject commit 86e27ccb41c2708e17ba264359223ef664d9bb78 diff --git a/cheat-base/vendor/imgui b/cheat-base/vendor/imgui new file mode 160000 index 0000000..af916cd --- /dev/null +++ b/cheat-base/vendor/imgui @@ -0,0 +1 @@ +Subproject commit af916cdf1aa41243b493c217c8d4256c04aa8921 diff --git a/cheat-base/vendor/imgui-notify-v2/fa_solid_900.h b/cheat-base/vendor/imgui-notify-v2/fa_solid_900.h new file mode 100644 index 0000000..25246b7 --- /dev/null +++ b/cheat-base/vendor/imgui-notify-v2/fa_solid_900.h @@ -0,0 +1,8115 @@ +#pragma once + +const unsigned char fa_solid_900[] = +{ + 0x00, 0x01, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x80, 0x00, 0x03, 0x00, 0x50, 0x46, 0x46, 0x54, 0x4D, 0x94, 0xC5, 0x5D, 0xF1, 0x00, 0x03, 0x17, 0xDC, 0x00, + 0x00, 0x00, 0x1C, 0x47, 0x44, 0x45, 0x46, 0x00, 0x2A, 0x03, 0xF2, 0x00, 0x03, 0x17, 0xBC, 0x00, 0x00, 0x00, 0x1E, 0x4F, 0x53, 0x2F, 0x32, 0x33, 0x87, + 0x56, 0x60, 0x00, 0x00, 0x01, 0x58, 0x00, 0x00, 0x00, 0x60, 0x63, 0x6D, 0x61, 0x70, 0xF1, 0x6A, 0xFE, 0x34, 0x00, 0x00, 0x11, 0x68, 0x00, 0x00, 0x0C, + 0xCE, 0x67, 0x61, 0x73, 0x70, 0xFF, 0xFF, 0x00, 0x03, 0x00, 0x03, 0x17, 0xB4, 0x00, 0x00, 0x00, 0x08, 0x67, 0x6C, 0x79, 0x66, 0x54, 0xC9, 0x94, 0xB9, + 0x00, 0x00, 0x2D, 0xEC, 0x00, 0x02, 0xB3, 0x6C, 0x68, 0x65, 0x61, 0x64, 0x1B, 0xD7, 0xBD, 0x7E, 0x00, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0x36, 0x68, + 0x68, 0x65, 0x61, 0x04, 0x43, 0x06, 0x2D, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x24, 0x68, 0x6D, 0x74, 0x78, 0xC4, 0xD5, 0x03, 0x09, 0x00, 0x00, + 0x01, 0xB8, 0x00, 0x00, 0x0F, 0xB0, 0x6C, 0x6F, 0x63, 0x61, 0x05, 0x03, 0x6A, 0x44, 0x00, 0x00, 0x1E, 0x38, 0x00, 0x00, 0x0F, 0xB4, 0x6D, 0x61, 0x78, + 0x70, 0x04, 0x4E, 0x01, 0x5D, 0x00, 0x00, 0x01, 0x38, 0x00, 0x00, 0x00, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x25, 0xB2, 0x31, 0x1E, 0x00, 0x02, 0xE1, 0x58, + 0x00, 0x00, 0x05, 0x2B, 0x70, 0x6F, 0x73, 0x74, 0x02, 0xF0, 0x46, 0x61, 0x00, 0x02, 0xE6, 0x84, 0x00, 0x00, 0x31, 0x2E, 0x00, 0x01, 0x00, 0x00, 0x01, + 0x4B, 0x85, 0xE3, 0x65, 0x7B, 0x2B, 0xEB, 0x5F, 0x0F, 0x3C, 0xF5, 0x00, 0x0B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x76, 0x7B, 0x8A, 0x00, 0x00, + 0x00, 0x00, 0xDC, 0x76, 0x7B, 0x92, 0xFF, 0xEC, 0xFF, 0xB4, 0x02, 0x95, 0x01, 0xCD, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0xC0, 0xFF, 0xC0, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xEC, 0x00, 0x00, 0x02, 0x95, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xEC, 0x00, 0x01, 0x00, 0x00, 0x03, 0xEC, 0x01, 0x5A, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0xFB, 0x03, 0x84, + 0x00, 0x05, 0x00, 0x00, 0x01, 0x4C, 0x01, 0x66, 0x00, 0x00, 0x00, 0x47, 0x01, 0x4C, 0x01, 0x66, 0x00, 0x00, 0x00, 0xF5, 0x00, 0x19, 0x00, 0x84, 0x00, + 0x00, 0x02, 0x00, 0x05, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0x66, 0x45, 0x64, 0x00, 0x80, 0xE0, 0x05, 0xF8, 0xFF, 0x01, 0xC0, 0xFF, 0xC0, 0x00, 0x2E, 0x01, 0xCC, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3A, 0x01, 0xA5, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x20, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, + 0x02, 0x00, 0xFF, 0xFD, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, + 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0F, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, + 0x00, 0x0D, 0x02, 0x80, 0xFF, 0xFB, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0xFF, + 0xFA, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFB, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x00, 0xFF, 0xFE, 0x02, 0x40, 0x00, 0x0F, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x07, 0x02, 0x80, + 0x00, 0x18, 0x02, 0x00, 0x00, 0x10, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x02, 0x40, 0xFF, 0xFC, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, + 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x80, + 0x00, 0x12, 0x01, 0x40, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, + 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x01, 0x60, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x40, 0x02, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, + 0x00, 0x40, 0x01, 0xC0, 0xFF, 0xF8, 0x01, 0x40, 0x00, 0x1B, 0x01, 0x40, 0x00, 0x1B, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, + 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x01, 0xC0, 0x00, 0x00, + 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x05, 0x01, 0xC0, 0x00, 0x05, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, + 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x13, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0xFF, 0xFE, 0x01, 0x80, + 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x40, 0xFF, 0xF9, 0x02, 0x40, 0xFF, 0xFF, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x05, 0x01, 0xC0, 0x00, 0x05, 0x02, 0x80, 0x00, 0x03, 0x02, 0x40, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFB, 0x02, + 0x40, 0xFF, 0xFF, 0x02, 0x40, 0x00, 0x0F, 0x01, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFD, 0x02, 0x00, + 0xFF, 0xFD, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x40, 0x00, + 0x00, 0x02, 0x00, 0xFF, 0xFE, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, + 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, + 0x00, 0xFF, 0xFC, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, + 0xFF, 0xF5, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFD, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0x40, 0x00, 0x07, 0x01, 0x40, 0x00, 0x07, 0x00, 0xC0, 0x00, 0x17, 0x00, 0xC0, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x0D, 0x01, 0x40, 0x00, 0x0D, 0x01, 0x40, 0x00, 0x0D, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x01, 0x40, 0xFF, 0xFF, 0x02, 0x80, 0x00, 0x00, 0x02, 0x40, 0xFF, 0xFF, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x01, 0xC0, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFA, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x18, 0x01, + 0xC0, 0x00, 0x18, 0x01, 0x40, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x18, 0x01, 0x40, 0x00, 0x00, 0x01, 0x40, + 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, + 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFB, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFC, 0x02, + 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x18, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x10, 0x02, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFA, 0x01, 0xC0, 0x00, + 0x00, 0x01, 0xC0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, + 0x02, 0x40, 0xFF, 0xFF, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, 0xC0, 0x00, 0x18, 0x01, 0xC0, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x08, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xC0, + 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x20, 0xFF, 0xFD, 0x01, 0x40, 0x00, + 0x00, 0x01, 0x80, 0x00, 0x13, 0x01, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0xC0, 0xFF, 0xFE, + 0x01, 0xC0, 0xFF, 0xFE, 0x02, 0x00, 0xFF, 0xFE, 0x02, 0x00, 0xFF, 0xFE, 0x01, 0xC0, 0xFF, 0xFE, 0x01, 0xC0, 0xFF, 0xFE, 0x02, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x05, 0x00, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x1B, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x10, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, + 0x02, 0x00, 0xFF, 0xFC, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFD, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x01, + 0x80, 0xFF, 0xFC, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, + 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, + 0x07, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x10, 0x01, 0xC0, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, + 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, + 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFA, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, + 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x20, 0xFF, 0xFD, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, + 0x02, 0x40, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x02, + 0x00, 0xFF, 0xFF, 0x01, 0x20, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x01, 0x20, 0x00, + 0x00, 0x01, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, + 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, + 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, + 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0xFF, + 0xFE, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0xFF, 0xFE, 0x01, 0xC0, 0xFF, 0xFD, 0x02, 0x80, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x08, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFA, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, + 0x00, 0x08, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0xFF, 0xFD, 0x02, 0x00, 0x00, 0x08, 0x01, 0x80, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x80, 0xFF, 0xF5, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFB, 0x02, 0x00, 0xFF, 0xFC, + 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0xFF, 0xF9, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, + 0xF0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0xFF, 0xFB, 0x02, 0x00, 0x00, 0x00, 0x01, 0xA0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, + 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x01, 0xC0, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x07, 0x02, + 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x0D, 0x01, 0xC0, + 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0D, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x0D, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x40, 0xFF, 0xFE, 0x01, 0x40, 0xFF, 0xFE, 0x02, + 0x40, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFA, 0x01, 0x80, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x10, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0xFF, 0xFA, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xA0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFE, 0x01, 0xC0, 0xFF, 0xFE, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, + 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, + 0x40, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x40, + 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0xFF, + 0xFD, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xE0, 0xFF, 0xFE, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x80, 0xFF, 0xFA, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, + 0x00, 0xFF, 0xFF, 0x02, 0x40, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, + 0xFF, 0xFE, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFE, 0x02, 0x40, 0xFF, 0xFE, 0x01, 0xC0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFF, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFA, + 0x01, 0x20, 0xFF, 0xFC, 0x02, 0x80, 0xFF, 0xFA, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, + 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, + 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFA, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, + 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, + 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, + 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x80, 0xFF, 0xFE, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFF, 0x02, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, + 0x01, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFA, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, + 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xF8, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x80, + 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFE, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x68, 0xFF, 0xF5, + 0x02, 0x80, 0xFF, 0xFB, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFF, 0x01, 0x40, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x80, 0xFF, 0xFE, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, + 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0xFF, + 0xFC, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, + 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x80, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x40, 0xFF, 0xFF, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, + 0x00, 0x02, 0x00, 0xFF, 0xFB, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, + 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, + 0xF0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xC0, + 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, + 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, + 0x00, 0xFF, 0xFE, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFF, 0x01, 0x80, 0x00, + 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFA, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, + 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xF5, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x18, 0xFF, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x01, + 0xF0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFA, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xC0, + 0xFF, 0xF6, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFC, 0x01, 0x20, 0xFF, 0xFC, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0xFF, + 0xFD, 0x01, 0xC0, 0xFF, 0xED, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x80, 0xFF, 0xFF, 0x02, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xE0, + 0xFF, 0xFF, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFE, 0x01, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x40, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, + 0x80, 0xFF, 0xFB, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFE, 0x02, 0x40, 0x00, 0x10, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, + 0x00, 0x00, 0x02, 0x00, 0xFF, 0xF4, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x80, 0xFF, 0xFF, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, + 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFB, 0x02, 0x40, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x01, 0xD0, 0xFF, 0xFB, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFF, 0x02, 0x00, + 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0xFF, + 0xFD, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xE0, 0xFF, 0xFF, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x20, 0x02, 0x80, 0xFF, 0xFD, + 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, + 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x80, 0xFF, 0xFF, 0x02, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x40, 0xFF, 0xFA, 0x01, 0x80, + 0x00, 0x00, 0x02, 0x80, 0xFF, 0xF2, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFA, 0x02, 0x00, 0x00, 0x00, 0x01, 0xA0, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0xFF, 0xFF, 0x02, 0x80, 0xFF, 0xFA, 0x02, 0x40, 0xFF, 0xFA, 0x02, 0x40, 0xFF, 0xFF, 0x02, 0x80, 0x00, 0x00, + 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFB, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, + 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x80, 0xFF, 0xFE, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, + 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFE, 0x02, 0x00, 0xFF, 0xFE, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, + 0x40, 0xFF, 0xFF, 0x02, 0x80, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFE, 0x02, 0x00, 0xFF, 0xFF, 0x01, 0xF0, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x02, 0x00, 0xFF, 0xFC, 0x02, 0x00, 0xFF, 0xFF, 0x01, 0xC0, 0xFF, 0xFF, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x00, 0xFF, 0xFD, 0x02, 0x40, 0x00, 0x00, 0x01, 0xC0, 0xFF, 0xF7, 0x02, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, + 0x02, 0x80, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xF9, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0xC0, 0xFF, 0xFA, 0x02, + 0x00, 0xFF, 0xFF, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x80, + 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, + 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x00, 0xFF, 0xF5, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, + 0x00, 0xFF, 0xFF, 0x01, 0xC0, 0x00, 0x20, 0x02, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, + 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, + 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, + 0x02, 0x80, 0x00, 0x00, 0x01, 0xC0, 0xFF, 0xFE, 0x01, 0xC0, 0xFF, 0xFE, 0x02, 0x00, 0xFF, 0xFE, 0x02, 0x00, 0xFF, 0xFE, 0x01, 0xC0, 0xFF, 0xFE, 0x01, + 0xC0, 0xFF, 0xFE, 0x02, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0xFF, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x08, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0A, + 0xC4, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x0A, 0xA8, 0x00, 0x00, 0x02, 0xA6, 0x02, 0x00, 0x00, 0x08, 0x00, 0xA6, 0xE0, 0x05, + 0xE0, 0x41, 0xE0, 0x76, 0xE0, 0x86, 0xF0, 0x02, 0xF0, 0x05, 0xF0, 0x0E, 0xF0, 0x13, 0xF0, 0x15, 0xF0, 0x19, 0xF0, 0x1C, 0xF0, 0x1E, 0xF0, 0x3E, 0xF0, + 0x44, 0xF0, 0x4E, 0xF0, 0x5B, 0xF0, 0x5E, 0xF0, 0x6E, 0xF0, 0x7C, 0xF0, 0x80, 0xF0, 0x86, 0xF0, 0x89, 0xF0, 0x8D, 0xF0, 0x91, 0xF0, 0x95, 0xF0, 0x98, + 0xF0, 0x9E, 0xF0, 0xA1, 0xF0, 0xAE, 0xF0, 0xB2, 0xF0, 0xCE, 0xF0, 0xD1, 0xF0, 0xDE, 0xF0, 0xE0, 0xF0, 0xE3, 0xF0, 0xEB, 0xF0, 0xF4, 0xF0, 0xFE, 0xF1, + 0x0B, 0xF1, 0x0E, 0xF1, 0x11, 0xF1, 0x1C, 0xF1, 0x1E, 0xF1, 0x22, 0xF1, 0x2E, 0xF1, 0x31, 0xF1, 0x35, 0xF1, 0x3A, 0xF1, 0x3E, 0xF1, 0x44, 0xF1, 0x46, + 0xF1, 0x4B, 0xF1, 0x4E, 0xF1, 0x59, 0xF1, 0x5E, 0xF1, 0x65, 0xF1, 0x83, 0xF1, 0x88, 0xF1, 0x93, 0xF1, 0x95, 0xF1, 0x97, 0xF1, 0x99, 0xF1, 0x9D, 0xF1, + 0xAE, 0xF1, 0xB0, 0xF1, 0xB3, 0xF1, 0xBB, 0xF1, 0xC9, 0xF1, 0xCE, 0xF1, 0xD8, 0xF1, 0xDA, 0xF1, 0xDE, 0xF1, 0xE6, 0xF1, 0xEC, 0xF1, 0xF6, 0xF1, 0xFE, + 0xF2, 0x01, 0xF2, 0x07, 0xF2, 0x0B, 0xF2, 0x18, 0xF2, 0x1E, 0xF2, 0x2D, 0xF2, 0x36, 0xF2, 0x39, 0xF2, 0x49, 0xF2, 0x4E, 0xF2, 0x5D, 0xF2, 0x6C, 0xF2, + 0x77, 0xF2, 0x7A, 0xF2, 0x8B, 0xF2, 0x8D, 0xF2, 0x92, 0xF2, 0x95, 0xF2, 0x9A, 0xF2, 0x9E, 0xF2, 0xA4, 0xF2, 0xA8, 0xF2, 0xB6, 0xF2, 0xB9, 0xF2, 0xBB, + 0xF2, 0xBD, 0xF2, 0xC2, 0xF2, 0xCE, 0xF2, 0xD2, 0xF2, 0xDC, 0xF2, 0xE5, 0xF2, 0xE7, 0xF2, 0xEA, 0xF2, 0xED, 0xF2, 0xF2, 0xF2, 0xF6, 0xF2, 0xF9, 0xF2, + 0xFE, 0xF3, 0x05, 0xF3, 0x0C, 0xF3, 0x1E, 0xF3, 0x28, 0xF3, 0x38, 0xF3, 0x5B, 0xF3, 0x5D, 0xF3, 0x60, 0xF3, 0x62, 0xF3, 0x82, 0xF3, 0xA5, 0xF3, 0xBF, + 0xF3, 0xC1, 0xF3, 0xC5, 0xF3, 0xC9, 0xF3, 0xCD, 0xF3, 0xD1, 0xF3, 0xDD, 0xF3, 0xE0, 0xF3, 0xE5, 0xF3, 0xED, 0xF3, 0xFA, 0xF3, 0xFD, 0xF3, 0xFF, 0xF4, + 0x06, 0xF4, 0x10, 0xF4, 0x22, 0xF4, 0x24, 0xF4, 0x34, 0xF4, 0x36, 0xF4, 0x3A, 0xF4, 0x3C, 0xF4, 0x3F, 0xF4, 0x41, 0xF4, 0x43, 0xF4, 0x45, 0xF4, 0x47, + 0xF4, 0x4B, 0xF4, 0x4E, 0xF4, 0x50, 0xF4, 0x53, 0xF4, 0x58, 0xF4, 0x5D, 0xF4, 0x5F, 0xF4, 0x62, 0xF4, 0x66, 0xF4, 0x6D, 0xF4, 0x72, 0xF4, 0x74, 0xF4, + 0x79, 0xF4, 0x7F, 0xF4, 0x82, 0xF4, 0x87, 0xF4, 0x8B, 0xF4, 0x8E, 0xF4, 0x94, 0xF4, 0x97, 0xF4, 0x9E, 0xF4, 0xAD, 0xF4, 0xB3, 0xF4, 0xBA, 0xF4, 0xBE, + 0xF4, 0xC2, 0xF4, 0xC4, 0xF4, 0xCE, 0xF4, 0xD3, 0xF4, 0xDB, 0xF4, 0xDF, 0xF4, 0xE3, 0xF5, 0x09, 0xF5, 0x91, 0xF5, 0x9D, 0xF5, 0xA2, 0xF5, 0xA7, 0xF5, + 0xB1, 0xF5, 0xB4, 0xF5, 0xB8, 0xF5, 0xBD, 0xF5, 0xC5, 0xF5, 0xCB, 0xF5, 0xCE, 0xF5, 0xD2, 0xF5, 0xD7, 0xF5, 0xDA, 0xF5, 0xDC, 0xF5, 0xDF, 0xF5, 0xE1, + 0xF5, 0xE4, 0xF5, 0xE7, 0xF5, 0xEB, 0xF5, 0xEE, 0xF5, 0xFD, 0xF6, 0x04, 0xF6, 0x10, 0xF6, 0x13, 0xF6, 0x19, 0xF6, 0x1F, 0xF6, 0x21, 0xF6, 0x30, 0xF6, + 0x37, 0xF6, 0x3C, 0xF6, 0x41, 0xF6, 0x44, 0xF6, 0x47, 0xF6, 0x4A, 0xF6, 0x4F, 0xF6, 0x51, 0xF6, 0x55, 0xF6, 0x58, 0xF6, 0x5E, 0xF6, 0x62, 0xF6, 0x66, + 0xF6, 0x6B, 0xF6, 0x6D, 0xF6, 0x6F, 0xF6, 0x74, 0xF6, 0x76, 0xF6, 0x79, 0xF6, 0x7C, 0xF6, 0x7F, 0xF6, 0x84, 0xF6, 0x89, 0xF6, 0x96, 0xF6, 0x9B, 0xF6, + 0xA1, 0xF6, 0xA7, 0xF6, 0xA9, 0xF6, 0xAD, 0xF6, 0xB7, 0xF6, 0xBB, 0xF6, 0xBE, 0xF6, 0xC0, 0xF6, 0xC4, 0xF6, 0xCF, 0xF6, 0xD1, 0xF6, 0xD3, 0xF6, 0xD5, + 0xF6, 0xD7, 0xF6, 0xD9, 0xF6, 0xDE, 0xF6, 0xE3, 0xF6, 0xE6, 0xF6, 0xE8, 0xF6, 0xED, 0xF6, 0xF2, 0xF6, 0xFA, 0xF6, 0xFC, 0xF7, 0x00, 0xF7, 0x0C, 0xF7, + 0x0E, 0xF7, 0x15, 0xF7, 0x17, 0xF7, 0x1E, 0xF7, 0x22, 0xF7, 0x29, 0xF7, 0x2F, 0xF7, 0x3D, 0xF7, 0x40, 0xF7, 0x43, 0xF7, 0x47, 0xF7, 0x4D, 0xF7, 0x53, + 0xF7, 0x56, 0xF7, 0x5B, 0xF7, 0x5F, 0xF7, 0x69, 0xF7, 0x6B, 0xF7, 0x73, 0xF7, 0x7D, 0xF7, 0x81, 0xF7, 0x84, 0xF7, 0x88, 0xF7, 0x8C, 0xF7, 0x94, 0xF7, + 0x96, 0xF7, 0x9C, 0xF7, 0xA0, 0xF7, 0xA2, 0xF7, 0xA6, 0xF7, 0xAB, 0xF7, 0xAE, 0xF7, 0xB6, 0xF7, 0xBA, 0xF7, 0xBD, 0xF7, 0xC0, 0xF7, 0xC2, 0xF7, 0xC5, + 0xF7, 0xCA, 0xF7, 0xCE, 0xF7, 0xD0, 0xF7, 0xD2, 0xF7, 0xDA, 0xF7, 0xE6, 0xF7, 0xEC, 0xF7, 0xEF, 0xF7, 0xF2, 0xF7, 0xF5, 0xF7, 0xF7, 0xF7, 0xFB, 0xF8, + 0x07, 0xF8, 0x0D, 0xF8, 0x10, 0xF8, 0x12, 0xF8, 0x16, 0xF8, 0x18, 0xF8, 0x2A, 0xF8, 0x2F, 0xF8, 0x3E, 0xF8, 0x4A, 0xF8, 0x4C, 0xF8, 0x50, 0xF8, 0x53, + 0xF8, 0x63, 0xF8, 0x6D, 0xF8, 0x79, 0xF8, 0x7D, 0xF8, 0x82, 0xF8, 0x87, 0xF8, 0x91, 0xF8, 0x97, 0xF8, 0xC1, 0xF8, 0xCC, 0xF8, 0xD9, 0xF8, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0xE0, 0x05, 0xE0, 0x41, 0xE0, 0x59, 0xE0, 0x85, 0xF0, 0x00, 0xF0, 0x04, 0xF0, 0x07, 0xF0, 0x10, 0xF0, 0x15, 0xF0, 0x17, 0xF0, 0x1C, + 0xF0, 0x1E, 0xF0, 0x21, 0xF0, 0x41, 0xF0, 0x48, 0xF0, 0x50, 0xF0, 0x5E, 0xF0, 0x60, 0xF0, 0x70, 0xF0, 0x80, 0xF0, 0x83, 0xF0, 0x89, 0xF0, 0x8D, 0xF0, + 0x91, 0xF0, 0x93, 0xF0, 0x98, 0xF0, 0x9C, 0xF0, 0xA0, 0xF0, 0xA3, 0xF0, 0xB0, 0xF0, 0xC0, 0xF0, 0xD0, 0xF0, 0xD6, 0xF0, 0xE0, 0xF0, 0xE2, 0xF0, 0xE7, + 0xF0, 0xF0, 0xF0, 0xF8, 0xF1, 0x00, 0xF1, 0x0D, 0xF1, 0x10, 0xF1, 0x18, 0xF1, 0x1E, 0xF1, 0x20, 0xF1, 0x24, 0xF1, 0x30, 0xF1, 0x33, 0xF1, 0x37, 0xF1, + 0x3D, 0xF1, 0x40, 0xF1, 0x46, 0xF1, 0x4A, 0xF1, 0x4D, 0xF1, 0x50, 0xF1, 0x5B, 0xF1, 0x60, 0xF1, 0x82, 0xF1, 0x85, 0xF1, 0x91, 0xF1, 0x95, 0xF1, 0x97, + 0xF1, 0x99, 0xF1, 0x9C, 0xF1, 0xAB, 0xF1, 0xB0, 0xF1, 0xB2, 0xF1, 0xB8, 0xF1, 0xC0, 0xF1, 0xCD, 0xF1, 0xD8, 0xF1, 0xDA, 0xF1, 0xDC, 0xF1, 0xE0, 0xF1, + 0xEA, 0xF1, 0xF6, 0xF1, 0xF8, 0xF2, 0x00, 0xF2, 0x04, 0xF2, 0x0A, 0xF2, 0x17, 0xF2, 0x1A, 0xF2, 0x21, 0xF2, 0x33, 0xF2, 0x38, 0xF2, 0x40, 0xF2, 0x4D, + 0xF2, 0x51, 0xF2, 0x6C, 0xF2, 0x71, 0xF2, 0x79, 0xF2, 0x8B, 0xF2, 0x8D, 0xF2, 0x90, 0xF2, 0x95, 0xF2, 0x9A, 0xF2, 0x9D, 0xF2, 0xA0, 0xF2, 0xA7, 0xF2, + 0xB5, 0xF2, 0xB9, 0xF2, 0xBB, 0xF2, 0xBD, 0xF2, 0xC1, 0xF2, 0xC7, 0xF2, 0xD0, 0xF2, 0xDB, 0xF2, 0xE5, 0xF2, 0xE7, 0xF2, 0xEA, 0xF2, 0xED, 0xF2, 0xF1, + 0xF2, 0xF5, 0xF2, 0xF9, 0xF2, 0xFE, 0xF3, 0x02, 0xF3, 0x09, 0xF3, 0x1E, 0xF3, 0x28, 0xF3, 0x37, 0xF3, 0x58, 0xF3, 0x5D, 0xF3, 0x60, 0xF3, 0x62, 0xF3, + 0x81, 0xF3, 0xA5, 0xF3, 0xBE, 0xF3, 0xC1, 0xF3, 0xC5, 0xF3, 0xC9, 0xF3, 0xCD, 0xF3, 0xD1, 0xF3, 0xDD, 0xF3, 0xE0, 0xF3, 0xE5, 0xF3, 0xED, 0xF3, 0xFA, + 0xF3, 0xFD, 0xF3, 0xFF, 0xF4, 0x06, 0xF4, 0x10, 0xF4, 0x22, 0xF4, 0x24, 0xF4, 0x33, 0xF4, 0x36, 0xF4, 0x39, 0xF4, 0x3C, 0xF4, 0x3F, 0xF4, 0x41, 0xF4, + 0x43, 0xF4, 0x45, 0xF4, 0x47, 0xF4, 0x4B, 0xF4, 0x4E, 0xF4, 0x50, 0xF4, 0x53, 0xF4, 0x58, 0xF4, 0x5C, 0xF4, 0x5F, 0xF4, 0x61, 0xF4, 0x66, 0xF4, 0x68, + 0xF4, 0x70, 0xF4, 0x74, 0xF4, 0x77, 0xF4, 0x7D, 0xF4, 0x81, 0xF4, 0x84, 0xF4, 0x8B, 0xF4, 0x8D, 0xF4, 0x90, 0xF4, 0x96, 0xF4, 0x9E, 0xF4, 0xAD, 0xF4, + 0xB3, 0xF4, 0xB8, 0xF4, 0xBD, 0xF4, 0xC0, 0xF4, 0xC4, 0xF4, 0xCD, 0xF4, 0xD3, 0xF4, 0xD6, 0xF4, 0xDE, 0xF4, 0xE2, 0xF4, 0xFA, 0xF5, 0x15, 0xF5, 0x93, + 0xF5, 0x9F, 0xF5, 0xA4, 0xF5, 0xAA, 0xF5, 0xB3, 0xF5, 0xB6, 0xF5, 0xBA, 0xF5, 0xBF, 0xF5, 0xC7, 0xF5, 0xCD, 0xF5, 0xD0, 0xF5, 0xD7, 0xF5, 0xDA, 0xF5, + 0xDC, 0xF5, 0xDE, 0xF5, 0xE1, 0xF5, 0xE4, 0xF5, 0xE7, 0xF5, 0xEB, 0xF5, 0xEE, 0xF5, 0xFC, 0xF6, 0x04, 0xF6, 0x10, 0xF6, 0x13, 0xF6, 0x19, 0xF6, 0x1F, + 0xF6, 0x21, 0xF6, 0x2E, 0xF6, 0x37, 0xF6, 0x3B, 0xF6, 0x41, 0xF6, 0x44, 0xF6, 0x47, 0xF6, 0x4A, 0xF6, 0x4F, 0xF6, 0x51, 0xF6, 0x53, 0xF6, 0x58, 0xF6, + 0x5D, 0xF6, 0x62, 0xF6, 0x64, 0xF6, 0x69, 0xF6, 0x6D, 0xF6, 0x6F, 0xF6, 0x74, 0xF6, 0x76, 0xF6, 0x78, 0xF6, 0x7B, 0xF6, 0x7F, 0xF6, 0x81, 0xF6, 0x87, + 0xF6, 0x96, 0xF6, 0x98, 0xF6, 0xA0, 0xF6, 0xA7, 0xF6, 0xA9, 0xF6, 0xAD, 0xF6, 0xB6, 0xF6, 0xBB, 0xF6, 0xBE, 0xF6, 0xC0, 0xF6, 0xC3, 0xF6, 0xCF, 0xF6, + 0xD1, 0xF6, 0xD3, 0xF6, 0xD5, 0xF6, 0xD7, 0xF6, 0xD9, 0xF6, 0xDD, 0xF6, 0xE2, 0xF6, 0xE6, 0xF6, 0xE8, 0xF6, 0xEC, 0xF6, 0xF0, 0xF6, 0xFA, 0xF6, 0xFC, + 0xF6, 0xFF, 0xF7, 0x0B, 0xF7, 0x0E, 0xF7, 0x14, 0xF7, 0x17, 0xF7, 0x1E, 0xF7, 0x22, 0xF7, 0x28, 0xF7, 0x2E, 0xF7, 0x3B, 0xF7, 0x40, 0xF7, 0x43, 0xF7, + 0x47, 0xF7, 0x4D, 0xF7, 0x53, 0xF7, 0x56, 0xF7, 0x5A, 0xF7, 0x5E, 0xF7, 0x69, 0xF7, 0x6B, 0xF7, 0x72, 0xF7, 0x7C, 0xF7, 0x80, 0xF7, 0x83, 0xF7, 0x86, + 0xF7, 0x8C, 0xF7, 0x93, 0xF7, 0x96, 0xF7, 0x9C, 0xF7, 0x9F, 0xF7, 0xA2, 0xF7, 0xA4, 0xF7, 0xA9, 0xF7, 0xAD, 0xF7, 0xB5, 0xF7, 0xB9, 0xF7, 0xBD, 0xF7, + 0xBF, 0xF7, 0xC2, 0xF7, 0xC4, 0xF7, 0xC9, 0xF7, 0xCC, 0xF7, 0xD0, 0xF7, 0xD2, 0xF7, 0xD7, 0xF7, 0xE4, 0xF7, 0xEC, 0xF7, 0xEF, 0xF7, 0xF2, 0xF7, 0xF5, + 0xF7, 0xF7, 0xF7, 0xFA, 0xF8, 0x05, 0xF8, 0x0D, 0xF8, 0x0F, 0xF8, 0x12, 0xF8, 0x15, 0xF8, 0x18, 0xF8, 0x29, 0xF8, 0x2F, 0xF8, 0x3E, 0xF8, 0x4A, 0xF8, + 0x4C, 0xF8, 0x50, 0xF8, 0x53, 0xF8, 0x63, 0xF8, 0x6D, 0xF8, 0x79, 0xF8, 0x7B, 0xF8, 0x81, 0xF8, 0x84, 0xF8, 0x91, 0xF8, 0x97, 0xF8, 0xC0, 0xF8, 0xCC, + 0xF8, 0xD9, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xFE, 0x1F, 0xC3, 0x1F, 0xAC, 0x1F, 0x9E, 0x10, 0x25, 0x10, 0x24, 0x10, 0x23, 0x10, 0x22, 0x10, 0x21, 0x10, + 0x20, 0x10, 0x1E, 0x10, 0x1D, 0x10, 0x1B, 0x10, 0x19, 0x10, 0x16, 0x10, 0x15, 0x10, 0x13, 0x10, 0x12, 0x10, 0x11, 0x10, 0x0E, 0x10, 0x0C, 0x10, 0x0A, + 0x10, 0x07, 0x10, 0x04, 0x10, 0x03, 0x10, 0x01, 0x0F, 0xFE, 0x0F, 0xFD, 0x0F, 0xFC, 0x0F, 0xFB, 0x0F, 0xEE, 0x0F, 0xED, 0x0F, 0xE9, 0x0F, 0xE8, 0x0F, + 0xE7, 0x0F, 0xE4, 0x0F, 0xE0, 0x0F, 0xDD, 0x0F, 0xDC, 0x0F, 0xDB, 0x0F, 0xDA, 0x0F, 0xD4, 0x0F, 0xD3, 0x0F, 0xD2, 0x0F, 0xD1, 0x0F, 0xD0, 0x0F, 0xCF, + 0x0F, 0xCE, 0x0F, 0xCC, 0x0F, 0xCB, 0x0F, 0xCA, 0x0F, 0xC7, 0x0F, 0xC6, 0x0F, 0xC5, 0x0F, 0xC4, 0x0F, 0xC3, 0x0F, 0xA7, 0x0F, 0xA6, 0x0F, 0x9E, 0x0F, + 0x9D, 0x0F, 0x9C, 0x0F, 0x9B, 0x0F, 0x99, 0x0F, 0x8C, 0x0F, 0x8B, 0x0F, 0x8A, 0x0F, 0x86, 0x0F, 0x82, 0x0F, 0x7F, 0x0F, 0x76, 0x0F, 0x75, 0x0F, 0x74, + 0x0F, 0x73, 0x0F, 0x70, 0x0F, 0x67, 0x0F, 0x66, 0x0F, 0x65, 0x0F, 0x63, 0x0F, 0x61, 0x0F, 0x56, 0x0F, 0x55, 0x0F, 0x53, 0x0F, 0x4E, 0x0F, 0x4D, 0x0F, + 0x47, 0x0F, 0x44, 0x0F, 0x42, 0x0F, 0x34, 0x0F, 0x30, 0x0F, 0x2F, 0x0F, 0x1F, 0x0F, 0x1E, 0x0F, 0x1C, 0x0F, 0x1A, 0x0F, 0x16, 0x0F, 0x14, 0x0F, 0x13, + 0x0F, 0x11, 0x0F, 0x05, 0x0F, 0x03, 0x0F, 0x02, 0x0F, 0x01, 0x0E, 0xFE, 0x0E, 0xFA, 0x0E, 0xF9, 0x0E, 0xF1, 0x0E, 0xE9, 0x0E, 0xE8, 0x0E, 0xE6, 0x0E, + 0xE4, 0x0E, 0xE1, 0x0E, 0xDF, 0x0E, 0xDD, 0x0E, 0xD9, 0x0E, 0xD6, 0x0E, 0xD3, 0x0E, 0xC2, 0x0E, 0xB9, 0x0E, 0xAB, 0x0E, 0x8C, 0x0E, 0x8B, 0x0E, 0x89, + 0x0E, 0x88, 0x0E, 0x6A, 0x0E, 0x48, 0x0E, 0x30, 0x0E, 0x2F, 0x0E, 0x2C, 0x0E, 0x29, 0x0E, 0x26, 0x0E, 0x23, 0x0E, 0x18, 0x0E, 0x16, 0x0E, 0x12, 0x0E, + 0x0B, 0x0D, 0xFF, 0x0D, 0xFD, 0x0D, 0xFC, 0x0D, 0xF6, 0x0D, 0xED, 0x0D, 0xDC, 0x0D, 0xDB, 0x0D, 0xCD, 0x0D, 0xCC, 0x0D, 0xCA, 0x0D, 0xC9, 0x0D, 0xC7, + 0x0D, 0xC6, 0x0D, 0xC5, 0x0D, 0xC4, 0x0D, 0xC3, 0x0D, 0xC0, 0x0D, 0xBE, 0x0D, 0xBD, 0x0D, 0xBB, 0x0D, 0xB7, 0x0D, 0xB4, 0x0D, 0xB3, 0x0D, 0xB2, 0x0D, + 0xAF, 0x0D, 0xAE, 0x0D, 0xAC, 0x0D, 0xAB, 0x0D, 0xA9, 0x0D, 0xA6, 0x0D, 0xA5, 0x0D, 0xA4, 0x0D, 0xA1, 0x0D, 0xA0, 0x0D, 0x9F, 0x0D, 0x9E, 0x0D, 0x98, + 0x0D, 0x8A, 0x0D, 0x85, 0x0D, 0x81, 0x0D, 0x7F, 0x0D, 0x7E, 0x0D, 0x7D, 0x0D, 0x75, 0x0D, 0x71, 0x0D, 0x6F, 0x0D, 0x6D, 0x0D, 0x6B, 0x0D, 0x55, 0x0D, + 0x4A, 0x0D, 0x49, 0x0D, 0x48, 0x0D, 0x47, 0x0D, 0x45, 0x0D, 0x44, 0x0D, 0x43, 0x0D, 0x42, 0x0D, 0x41, 0x0D, 0x40, 0x0D, 0x3F, 0x0D, 0x3E, 0x0D, 0x3A, + 0x0D, 0x38, 0x0D, 0x37, 0x0D, 0x36, 0x0D, 0x35, 0x0D, 0x33, 0x0D, 0x31, 0x0D, 0x2E, 0x0D, 0x2C, 0x0D, 0x1F, 0x0D, 0x19, 0x0D, 0x0E, 0x0D, 0x0C, 0x0D, + 0x07, 0x0D, 0x02, 0x0D, 0x01, 0x0C, 0xF5, 0x0C, 0xEF, 0x0C, 0xEC, 0x0C, 0xE8, 0x0C, 0xE6, 0x0C, 0xE4, 0x0C, 0xE2, 0x0C, 0xDE, 0x0C, 0xDD, 0x0C, 0xDC, + 0x0C, 0xDA, 0x0C, 0xD6, 0x0C, 0xD3, 0x0C, 0xD2, 0x0C, 0xD0, 0x0C, 0xCF, 0x0C, 0xCE, 0x0C, 0xCA, 0x0C, 0xC9, 0x0C, 0xC8, 0x0C, 0xC7, 0x0C, 0xC5, 0x0C, + 0xC4, 0x0C, 0xC2, 0x0C, 0xB6, 0x0C, 0xB5, 0x0C, 0xB1, 0x0C, 0xAC, 0x0C, 0xAB, 0x0C, 0xA8, 0x0C, 0xA0, 0x0C, 0x9D, 0x0C, 0x9B, 0x0C, 0x9A, 0x0C, 0x98, + 0x0C, 0x8E, 0x0C, 0x8D, 0x0C, 0x8C, 0x0C, 0x8B, 0x0C, 0x8A, 0x0C, 0x89, 0x0C, 0x86, 0x0C, 0x83, 0x0C, 0x81, 0x0C, 0x80, 0x0C, 0x7D, 0x0C, 0x7B, 0x0C, + 0x74, 0x0C, 0x73, 0x0C, 0x71, 0x0C, 0x67, 0x0C, 0x66, 0x0C, 0x61, 0x0C, 0x60, 0x0C, 0x5A, 0x0C, 0x57, 0x0C, 0x52, 0x0C, 0x4E, 0x0C, 0x43, 0x0C, 0x41, + 0x0C, 0x3F, 0x0C, 0x3C, 0x0C, 0x37, 0x0C, 0x32, 0x0C, 0x30, 0x0C, 0x2D, 0x0C, 0x2B, 0x0C, 0x22, 0x0C, 0x21, 0x0C, 0x1B, 0x0C, 0x13, 0x0C, 0x11, 0x0C, + 0x10, 0x0C, 0x0F, 0x0C, 0x0C, 0x0C, 0x06, 0x0C, 0x05, 0x0C, 0x00, 0x0B, 0xFE, 0x0B, 0xFD, 0x0B, 0xFC, 0x0B, 0xFA, 0x0B, 0xF9, 0x0B, 0xF3, 0x0B, 0xF1, + 0x0B, 0xEF, 0x0B, 0xEE, 0x0B, 0xED, 0x0B, 0xEC, 0x0B, 0xE9, 0x0B, 0xE8, 0x0B, 0xE7, 0x0B, 0xE6, 0x0B, 0xE2, 0x0B, 0xD9, 0x0B, 0xD4, 0x0B, 0xD2, 0x0B, + 0xD0, 0x0B, 0xCE, 0x0B, 0xCD, 0x0B, 0xCB, 0x0B, 0xC2, 0x0B, 0xBD, 0x0B, 0xBC, 0x0B, 0xBB, 0x0B, 0xB9, 0x0B, 0xB8, 0x0B, 0xA8, 0x0B, 0xA4, 0x0B, 0x96, + 0x0B, 0x8B, 0x0B, 0x8A, 0x0B, 0x87, 0x0B, 0x85, 0x0B, 0x76, 0x0B, 0x6D, 0x0B, 0x62, 0x0B, 0x61, 0x0B, 0x5E, 0x0B, 0x5D, 0x0B, 0x54, 0x0B, 0x4F, 0x0B, + 0x27, 0x0B, 0x1D, 0x0B, 0x11, 0x0A, 0xEC, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x02, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x01, 0x98, 0x00, 0x00, 0x05, 0x30, 0x00, 0x00, 0x07, 0x10, 0x00, 0x00, 0x07, 0x9C, 0x00, 0x00, 0x08, + 0x64, 0x00, 0x00, 0x09, 0xD4, 0x00, 0x00, 0x0B, 0x94, 0x00, 0x00, 0x0C, 0x70, 0x00, 0x00, 0x0D, 0x7C, 0x00, 0x00, 0x0E, 0x74, 0x00, 0x00, 0x0F, 0x68, + 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x11, 0x54, 0x00, 0x00, 0x12, 0x14, 0x00, 0x00, 0x12, 0xEC, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x1C, 0x00, + 0x00, 0x16, 0xD4, 0x00, 0x00, 0x17, 0xA4, 0x00, 0x00, 0x18, 0x44, 0x00, 0x00, 0x19, 0x8C, 0x00, 0x00, 0x1A, 0x58, 0x00, 0x00, 0x1B, 0x1C, 0x00, 0x00, + 0x1C, 0x28, 0x00, 0x00, 0x1C, 0xD8, 0x00, 0x00, 0x1D, 0xA8, 0x00, 0x00, 0x1E, 0x70, 0x00, 0x00, 0x1F, 0x74, 0x00, 0x00, 0x20, 0x90, 0x00, 0x00, 0x21, + 0xA8, 0x00, 0x00, 0x23, 0x98, 0x00, 0x00, 0x24, 0x60, 0x00, 0x00, 0x25, 0x80, 0x00, 0x00, 0x25, 0xCC, 0x00, 0x00, 0x26, 0x2C, 0x00, 0x00, 0x26, 0x94, + 0x00, 0x00, 0x26, 0xDC, 0x00, 0x00, 0x27, 0x38, 0x00, 0x00, 0x27, 0x90, 0x00, 0x00, 0x28, 0xE0, 0x00, 0x00, 0x29, 0x8C, 0x00, 0x00, 0x2A, 0xFC, 0x00, + 0x00, 0x2B, 0xFC, 0x00, 0x00, 0x2C, 0x48, 0x00, 0x00, 0x2C, 0xBC, 0x00, 0x00, 0x2D, 0x60, 0x00, 0x00, 0x2D, 0xE4, 0x00, 0x00, 0x2E, 0x80, 0x00, 0x00, + 0x2F, 0x58, 0x00, 0x00, 0x30, 0x2C, 0x00, 0x00, 0x30, 0xE8, 0x00, 0x00, 0x31, 0x44, 0x00, 0x00, 0x31, 0xF8, 0x00, 0x00, 0x32, 0xA4, 0x00, 0x00, 0x33, + 0x00, 0x00, 0x00, 0x33, 0x94, 0x00, 0x00, 0x34, 0x70, 0x00, 0x00, 0x35, 0x3C, 0x00, 0x00, 0x35, 0x98, 0x00, 0x00, 0x36, 0x0C, 0x00, 0x00, 0x36, 0x90, + 0x00, 0x00, 0x36, 0xCC, 0x00, 0x00, 0x37, 0x40, 0x00, 0x00, 0x38, 0x30, 0x00, 0x00, 0x38, 0xB0, 0x00, 0x00, 0x39, 0x7C, 0x00, 0x00, 0x39, 0xD0, 0x00, + 0x00, 0x3A, 0x54, 0x00, 0x00, 0x3A, 0xF0, 0x00, 0x00, 0x3B, 0x1C, 0x00, 0x00, 0x3B, 0xBC, 0x00, 0x00, 0x3C, 0x3C, 0x00, 0x00, 0x3C, 0xC0, 0x00, 0x00, + 0x3D, 0x44, 0x00, 0x00, 0x3D, 0xAC, 0x00, 0x00, 0x3E, 0x74, 0x00, 0x00, 0x3F, 0x38, 0x00, 0x00, 0x3F, 0xE8, 0x00, 0x00, 0x40, 0x98, 0x00, 0x00, 0x41, + 0x48, 0x00, 0x00, 0x41, 0xF8, 0x00, 0x00, 0x42, 0xF8, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x44, 0x98, 0x00, 0x00, 0x44, 0xF0, 0x00, 0x00, 0x45, 0x64, + 0x00, 0x00, 0x45, 0xAC, 0x00, 0x00, 0x45, 0xE0, 0x00, 0x00, 0x46, 0x48, 0x00, 0x00, 0x46, 0xF4, 0x00, 0x00, 0x47, 0x38, 0x00, 0x00, 0x47, 0x94, 0x00, + 0x00, 0x47, 0xE8, 0x00, 0x00, 0x48, 0x1C, 0x00, 0x00, 0x48, 0x7C, 0x00, 0x00, 0x48, 0xB4, 0x00, 0x00, 0x49, 0x08, 0x00, 0x00, 0x49, 0x68, 0x00, 0x00, + 0x49, 0xB0, 0x00, 0x00, 0x4A, 0x0C, 0x00, 0x00, 0x4A, 0x58, 0x00, 0x00, 0x4A, 0xA4, 0x00, 0x00, 0x4B, 0x04, 0x00, 0x00, 0x4B, 0x44, 0x00, 0x00, 0x4B, + 0xC0, 0x00, 0x00, 0x4C, 0x18, 0x00, 0x00, 0x4C, 0xAC, 0x00, 0x00, 0x4D, 0x1C, 0x00, 0x00, 0x4D, 0xFC, 0x00, 0x00, 0x4E, 0x50, 0x00, 0x00, 0x4E, 0xB4, + 0x00, 0x00, 0x4F, 0x18, 0x00, 0x00, 0x4F, 0x78, 0x00, 0x00, 0x4F, 0xDC, 0x00, 0x00, 0x50, 0x40, 0x00, 0x00, 0x50, 0xE8, 0x00, 0x00, 0x51, 0x90, 0x00, + 0x00, 0x51, 0xF0, 0x00, 0x00, 0x52, 0x28, 0x00, 0x00, 0x52, 0xD4, 0x00, 0x00, 0x53, 0x34, 0x00, 0x00, 0x53, 0xEC, 0x00, 0x00, 0x54, 0x64, 0x00, 0x00, + 0x54, 0xC8, 0x00, 0x00, 0x55, 0x50, 0x00, 0x00, 0x56, 0x1C, 0x00, 0x00, 0x56, 0x88, 0x00, 0x00, 0x57, 0x04, 0x00, 0x00, 0x58, 0x14, 0x00, 0x00, 0x58, + 0xC0, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x59, 0xA8, 0x00, 0x00, 0x59, 0xF4, 0x00, 0x00, 0x5A, 0x40, 0x00, 0x00, 0x5B, 0x04, 0x00, 0x00, 0x5B, 0x8C, + 0x00, 0x00, 0x5B, 0xC8, 0x00, 0x00, 0x5C, 0x28, 0x00, 0x00, 0x5D, 0x04, 0x00, 0x00, 0x5D, 0xD8, 0x00, 0x00, 0x5E, 0x50, 0x00, 0x00, 0x60, 0xD0, 0x00, + 0x00, 0x61, 0x50, 0x00, 0x00, 0x61, 0x8C, 0x00, 0x00, 0x62, 0x08, 0x00, 0x00, 0x62, 0xC8, 0x00, 0x00, 0x63, 0x78, 0x00, 0x00, 0x64, 0x20, 0x00, 0x00, + 0x64, 0x78, 0x00, 0x00, 0x65, 0x04, 0x00, 0x00, 0x65, 0x70, 0x00, 0x00, 0x65, 0xEC, 0x00, 0x00, 0x66, 0x78, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x67, + 0x94, 0x00, 0x00, 0x68, 0x58, 0x00, 0x00, 0x69, 0x0C, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x00, 0x6A, 0x74, 0x00, 0x00, 0x6B, 0x28, 0x00, 0x00, 0x6B, 0x9C, + 0x00, 0x00, 0x6C, 0x10, 0x00, 0x00, 0x6C, 0x84, 0x00, 0x00, 0x6C, 0xF8, 0x00, 0x00, 0x6D, 0xC4, 0x00, 0x00, 0x6E, 0x44, 0x00, 0x00, 0x6F, 0x60, 0x00, + 0x00, 0x6F, 0xA0, 0x00, 0x00, 0x70, 0x18, 0x00, 0x00, 0x70, 0xC0, 0x00, 0x00, 0x71, 0x8C, 0x00, 0x00, 0x72, 0x78, 0x00, 0x00, 0x72, 0xCC, 0x00, 0x00, + 0x73, 0x38, 0x00, 0x00, 0x73, 0xE0, 0x00, 0x00, 0x74, 0x60, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x75, 0x7C, 0x00, 0x00, 0x75, 0xB4, 0x00, 0x00, 0x76, + 0x3C, 0x00, 0x00, 0x77, 0x08, 0x00, 0x00, 0x78, 0x84, 0x00, 0x00, 0x79, 0x58, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x7A, 0x68, 0x00, 0x00, 0x7B, 0x04, + 0x00, 0x00, 0x7B, 0xB0, 0x00, 0x00, 0x7C, 0x38, 0x00, 0x00, 0x7C, 0x6C, 0x00, 0x00, 0x7C, 0xA0, 0x00, 0x00, 0x7C, 0xD4, 0x00, 0x00, 0x7D, 0x04, 0x00, + 0x00, 0x7D, 0x58, 0x00, 0x00, 0x7D, 0xAC, 0x00, 0x00, 0x7D, 0xDC, 0x00, 0x00, 0x7E, 0x0C, 0x00, 0x00, 0x7E, 0xB0, 0x00, 0x00, 0x7F, 0x2C, 0x00, 0x00, + 0x7F, 0xD8, 0x00, 0x00, 0x80, 0x2C, 0x00, 0x00, 0x81, 0x04, 0x00, 0x00, 0x81, 0xC8, 0x00, 0x00, 0x82, 0x68, 0x00, 0x00, 0x82, 0xF4, 0x00, 0x00, 0x83, + 0xE8, 0x00, 0x00, 0x84, 0xB8, 0x00, 0x00, 0x85, 0x24, 0x00, 0x00, 0x85, 0xA0, 0x00, 0x00, 0x86, 0x1C, 0x00, 0x00, 0x87, 0x28, 0x00, 0x00, 0x88, 0x0C, + 0x00, 0x00, 0x88, 0xD4, 0x00, 0x00, 0x89, 0x50, 0x00, 0x00, 0x89, 0xF4, 0x00, 0x00, 0x8A, 0x80, 0x00, 0x00, 0x8A, 0xF4, 0x00, 0x00, 0x8B, 0x78, 0x00, + 0x00, 0x8B, 0xFC, 0x00, 0x00, 0x8C, 0x80, 0x00, 0x00, 0x8D, 0x04, 0x00, 0x00, 0x8D, 0x4C, 0x00, 0x00, 0x8D, 0x94, 0x00, 0x00, 0x8D, 0xE0, 0x00, 0x00, + 0x8E, 0x28, 0x00, 0x00, 0x8E, 0x98, 0x00, 0x00, 0x8F, 0x10, 0x00, 0x00, 0x8F, 0x60, 0x00, 0x00, 0x8F, 0xB0, 0x00, 0x00, 0x90, 0x44, 0x00, 0x00, 0x90, + 0xDC, 0x00, 0x00, 0x91, 0x88, 0x00, 0x00, 0x91, 0xAC, 0x00, 0x00, 0x92, 0x28, 0x00, 0x00, 0x92, 0xA4, 0x00, 0x00, 0x93, 0x08, 0x00, 0x00, 0x93, 0xA8, + 0x00, 0x00, 0x95, 0x28, 0x00, 0x00, 0x96, 0x28, 0x00, 0x00, 0x96, 0x9C, 0x00, 0x00, 0x97, 0x38, 0x00, 0x00, 0x97, 0xC4, 0x00, 0x00, 0x98, 0x00, 0x00, + 0x00, 0x98, 0x98, 0x00, 0x00, 0x99, 0x7C, 0x00, 0x00, 0x9A, 0x48, 0x00, 0x00, 0x9A, 0xD8, 0x00, 0x00, 0x9B, 0x44, 0x00, 0x00, 0x9B, 0x90, 0x00, 0x00, + 0x9C, 0x6C, 0x00, 0x00, 0x9D, 0x44, 0x00, 0x00, 0x9D, 0xA0, 0x00, 0x00, 0x9E, 0x60, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0x9F, 0xC0, 0x00, 0x00, 0xA0, + 0x38, 0x00, 0x00, 0xA0, 0xE8, 0x00, 0x00, 0xA1, 0x80, 0x00, 0x00, 0xA1, 0xE0, 0x00, 0x00, 0xA2, 0x40, 0x00, 0x00, 0xA2, 0xA0, 0x00, 0x00, 0xA3, 0x04, + 0x00, 0x00, 0xA3, 0xD8, 0x00, 0x00, 0xA4, 0x60, 0x00, 0x00, 0xA4, 0xC8, 0x00, 0x00, 0xA5, 0x18, 0x00, 0x00, 0xA5, 0x68, 0x00, 0x00, 0xA6, 0x14, 0x00, + 0x00, 0xA6, 0x5C, 0x00, 0x00, 0xA6, 0xB4, 0x00, 0x00, 0xA7, 0x20, 0x00, 0x00, 0xA7, 0xA8, 0x00, 0x00, 0xA8, 0x64, 0x00, 0x00, 0xA8, 0xCC, 0x00, 0x00, + 0xA9, 0x28, 0x00, 0x00, 0xA9, 0x80, 0x00, 0x00, 0xA9, 0xDC, 0x00, 0x00, 0xAA, 0x98, 0x00, 0x00, 0xAB, 0x18, 0x00, 0x00, 0xAB, 0xD0, 0x00, 0x00, 0xAC, + 0x5C, 0x00, 0x00, 0xAC, 0xF4, 0x00, 0x00, 0xAD, 0x74, 0x00, 0x00, 0xAE, 0x90, 0x00, 0x00, 0xAE, 0xE4, 0x00, 0x00, 0xAF, 0x88, 0x00, 0x00, 0xB0, 0x6C, + 0x00, 0x00, 0xB1, 0x50, 0x00, 0x00, 0xB2, 0x38, 0x00, 0x00, 0xB3, 0x20, 0x00, 0x00, 0xB4, 0x0C, 0x00, 0x00, 0xB4, 0xF4, 0x00, 0x00, 0xB5, 0xB8, 0x00, + 0x00, 0xB6, 0x7C, 0x00, 0x00, 0xB6, 0xE4, 0x00, 0x00, 0xB7, 0x4C, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0xB8, 0x4C, 0x00, 0x00, 0xB8, 0xB8, 0x00, 0x00, + 0xB9, 0x78, 0x00, 0x00, 0xB9, 0xD4, 0x00, 0x00, 0xBA, 0x10, 0x00, 0x00, 0xBA, 0xD0, 0x00, 0x00, 0xBB, 0x70, 0x00, 0x00, 0xBC, 0x10, 0x00, 0x00, 0xBC, + 0xC4, 0x00, 0x00, 0xBD, 0x5C, 0x00, 0x00, 0xBD, 0xF4, 0x00, 0x00, 0xBF, 0x14, 0x00, 0x00, 0xC0, 0x34, 0x00, 0x00, 0xC1, 0x24, 0x00, 0x00, 0xC1, 0xA0, + 0x00, 0x00, 0xC2, 0x44, 0x00, 0x00, 0xC2, 0xAC, 0x00, 0x00, 0xC3, 0x60, 0x00, 0x00, 0xC4, 0x60, 0x00, 0x00, 0xC5, 0x60, 0x00, 0x00, 0xC6, 0x30, 0x00, + 0x00, 0xC6, 0xB8, 0x00, 0x00, 0xC7, 0x1C, 0x00, 0x00, 0xC8, 0x0C, 0x00, 0x00, 0xC8, 0xD0, 0x00, 0x00, 0xC9, 0x84, 0x00, 0x00, 0xCA, 0x28, 0x00, 0x00, + 0xCA, 0xB4, 0x00, 0x00, 0xCB, 0x80, 0x00, 0x00, 0xCC, 0x54, 0x00, 0x00, 0xCC, 0xEC, 0x00, 0x00, 0xCD, 0xF8, 0x00, 0x00, 0xCE, 0x84, 0x00, 0x00, 0xCE, + 0xF0, 0x00, 0x00, 0xCF, 0x48, 0x00, 0x00, 0xCF, 0xEC, 0x00, 0x00, 0xD0, 0xA8, 0x00, 0x00, 0xD1, 0x08, 0x00, 0x00, 0xD2, 0x14, 0x00, 0x00, 0xD2, 0x84, + 0x00, 0x00, 0xD3, 0x20, 0x00, 0x00, 0xD4, 0x10, 0x00, 0x00, 0xD4, 0xA0, 0x00, 0x00, 0xD6, 0x50, 0x00, 0x00, 0xD7, 0x00, 0x00, 0x00, 0xD7, 0x7C, 0x00, + 0x00, 0xD8, 0x58, 0x00, 0x00, 0xD8, 0xEC, 0x00, 0x00, 0xDA, 0x10, 0x00, 0x00, 0xDA, 0xB4, 0x00, 0x00, 0xDB, 0x20, 0x00, 0x00, 0xDB, 0xB4, 0x00, 0x00, + 0xDC, 0x7C, 0x00, 0x00, 0xDC, 0xF4, 0x00, 0x00, 0xDD, 0x74, 0x00, 0x00, 0xDE, 0x58, 0x00, 0x00, 0xDE, 0xB4, 0x00, 0x00, 0xDF, 0x2C, 0x00, 0x00, 0xDF, + 0xC8, 0x00, 0x00, 0xE0, 0x28, 0x00, 0x00, 0xE0, 0x6C, 0x00, 0x00, 0xE1, 0x94, 0x00, 0x00, 0xE2, 0x74, 0x00, 0x00, 0xE3, 0x38, 0x00, 0x00, 0xE3, 0xD4, + 0x00, 0x00, 0xE4, 0xBC, 0x00, 0x00, 0xE5, 0x80, 0x00, 0x00, 0xE6, 0x3C, 0x00, 0x00, 0xE7, 0x3C, 0x00, 0x00, 0xE8, 0x70, 0x00, 0x00, 0xE9, 0x20, 0x00, + 0x00, 0xE9, 0xA8, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x00, 0xEA, 0x84, 0x00, 0x00, 0xEB, 0x3C, 0x00, 0x00, 0xEB, 0xD8, 0x00, 0x00, 0xEC, 0xC8, 0x00, 0x00, + 0xED, 0xA8, 0x00, 0x00, 0xEE, 0x80, 0x00, 0x00, 0xEF, 0x58, 0x00, 0x00, 0xEF, 0xF4, 0x00, 0x00, 0xF0, 0x88, 0x00, 0x00, 0xF1, 0x10, 0x00, 0x00, 0xF1, + 0x64, 0x00, 0x00, 0xF1, 0xA0, 0x00, 0x00, 0xF2, 0xB0, 0x00, 0x00, 0xF3, 0x5C, 0x00, 0x00, 0xF4, 0x08, 0x00, 0x00, 0xF4, 0x80, 0x00, 0x00, 0xF5, 0x10, + 0x00, 0x00, 0xF5, 0xDC, 0x00, 0x00, 0xF6, 0x4C, 0x00, 0x00, 0xF6, 0xBC, 0x00, 0x00, 0xF7, 0x2C, 0x00, 0x00, 0xF7, 0x98, 0x00, 0x00, 0xF7, 0xFC, 0x00, + 0x00, 0xF8, 0x4C, 0x00, 0x00, 0xF9, 0x00, 0x00, 0x00, 0xF9, 0xB0, 0x00, 0x00, 0xFA, 0x84, 0x00, 0x00, 0xFA, 0xD8, 0x00, 0x00, 0xFB, 0x40, 0x00, 0x00, + 0xFC, 0x44, 0x00, 0x00, 0xFC, 0xD0, 0x00, 0x00, 0xFD, 0x70, 0x00, 0x00, 0xFD, 0xF8, 0x00, 0x00, 0xFE, 0x70, 0x00, 0x00, 0xFF, 0x10, 0x00, 0x00, 0xFF, + 0x9C, 0x00, 0x01, 0x00, 0x1C, 0x00, 0x01, 0x00, 0x88, 0x00, 0x01, 0x01, 0x54, 0x00, 0x01, 0x01, 0xF8, 0x00, 0x01, 0x02, 0x78, 0x00, 0x01, 0x03, 0x3C, + 0x00, 0x01, 0x03, 0xB8, 0x00, 0x01, 0x04, 0x2C, 0x00, 0x01, 0x04, 0xE0, 0x00, 0x01, 0x05, 0x74, 0x00, 0x01, 0x06, 0x44, 0x00, 0x01, 0x06, 0xF0, 0x00, + 0x01, 0x07, 0x44, 0x00, 0x01, 0x07, 0xA4, 0x00, 0x01, 0x08, 0x48, 0x00, 0x01, 0x08, 0x9C, 0x00, 0x01, 0x08, 0xE4, 0x00, 0x01, 0x09, 0x58, 0x00, 0x01, + 0x09, 0xA4, 0x00, 0x01, 0x0A, 0x20, 0x00, 0x01, 0x0A, 0xFC, 0x00, 0x01, 0x0B, 0xC8, 0x00, 0x01, 0x0C, 0x58, 0x00, 0x01, 0x0D, 0x34, 0x00, 0x01, 0x0D, + 0xFC, 0x00, 0x01, 0x0E, 0xC0, 0x00, 0x01, 0x0F, 0xC0, 0x00, 0x01, 0x10, 0xDC, 0x00, 0x01, 0x11, 0xEC, 0x00, 0x01, 0x13, 0x6C, 0x00, 0x01, 0x14, 0x54, + 0x00, 0x01, 0x15, 0x88, 0x00, 0x01, 0x16, 0x58, 0x00, 0x01, 0x17, 0x60, 0x00, 0x01, 0x18, 0x24, 0x00, 0x01, 0x18, 0xD4, 0x00, 0x01, 0x19, 0xA4, 0x00, + 0x01, 0x1A, 0x0C, 0x00, 0x01, 0x1A, 0xAC, 0x00, 0x01, 0x1B, 0x88, 0x00, 0x01, 0x1C, 0x3C, 0x00, 0x01, 0x1C, 0xEC, 0x00, 0x01, 0x1D, 0x9C, 0x00, 0x01, + 0x1E, 0x4C, 0x00, 0x01, 0x1E, 0xEC, 0x00, 0x01, 0x20, 0xC0, 0x00, 0x01, 0x21, 0x8C, 0x00, 0x01, 0x22, 0x90, 0x00, 0x01, 0x22, 0xE0, 0x00, 0x01, 0x23, + 0x18, 0x00, 0x01, 0x23, 0x94, 0x00, 0x01, 0x24, 0xE4, 0x00, 0x01, 0x26, 0xCC, 0x00, 0x01, 0x27, 0x1C, 0x00, 0x01, 0x27, 0xCC, 0x00, 0x01, 0x28, 0x40, + 0x00, 0x01, 0x29, 0x08, 0x00, 0x01, 0x29, 0xB0, 0x00, 0x01, 0x2A, 0x38, 0x00, 0x01, 0x2A, 0xC0, 0x00, 0x01, 0x2B, 0x44, 0x00, 0x01, 0x2B, 0xB8, 0x00, + 0x01, 0x2C, 0x8C, 0x00, 0x01, 0x2D, 0x2C, 0x00, 0x01, 0x2D, 0xBC, 0x00, 0x01, 0x2E, 0x08, 0x00, 0x01, 0x2E, 0x78, 0x00, 0x01, 0x2E, 0xB8, 0x00, 0x01, + 0x2E, 0xF8, 0x00, 0x01, 0x2F, 0x3C, 0x00, 0x01, 0x2F, 0x80, 0x00, 0x01, 0x30, 0x2C, 0x00, 0x01, 0x30, 0xA4, 0x00, 0x01, 0x31, 0x00, 0x00, 0x01, 0x31, + 0x58, 0x00, 0x01, 0x31, 0xB0, 0x00, 0x01, 0x32, 0x04, 0x00, 0x01, 0x32, 0x58, 0x00, 0x01, 0x32, 0xAC, 0x00, 0x01, 0x33, 0x44, 0x00, 0x01, 0x33, 0xB8, + 0x00, 0x01, 0x34, 0x3C, 0x00, 0x01, 0x34, 0xC8, 0x00, 0x01, 0x35, 0x54, 0x00, 0x01, 0x35, 0xC4, 0x00, 0x01, 0x36, 0x18, 0x00, 0x01, 0x36, 0x6C, 0x00, + 0x01, 0x36, 0xD8, 0x00, 0x01, 0x37, 0x38, 0x00, 0x01, 0x38, 0x08, 0x00, 0x01, 0x38, 0x74, 0x00, 0x01, 0x39, 0x44, 0x00, 0x01, 0x39, 0xD4, 0x00, 0x01, + 0x3A, 0x54, 0x00, 0x01, 0x3A, 0xB4, 0x00, 0x01, 0x3B, 0x14, 0x00, 0x01, 0x3B, 0x84, 0x00, 0x01, 0x3C, 0x6C, 0x00, 0x01, 0x3C, 0xF4, 0x00, 0x01, 0x3D, + 0x4C, 0x00, 0x01, 0x3D, 0xDC, 0x00, 0x01, 0x3E, 0x5C, 0x00, 0x01, 0x3E, 0xD8, 0x00, 0x01, 0x3F, 0x70, 0x00, 0x01, 0x40, 0x18, 0x00, 0x01, 0x40, 0x80, + 0x00, 0x01, 0x41, 0xE4, 0x00, 0x01, 0x42, 0x78, 0x00, 0x01, 0x43, 0xF4, 0x00, 0x01, 0x44, 0x80, 0x00, 0x01, 0x45, 0x30, 0x00, 0x01, 0x45, 0xBC, 0x00, + 0x01, 0x46, 0x8C, 0x00, 0x01, 0x47, 0x30, 0x00, 0x01, 0x48, 0x04, 0x00, 0x01, 0x49, 0x14, 0x00, 0x01, 0x49, 0xCC, 0x00, 0x01, 0x4A, 0x0C, 0x00, 0x01, + 0x4A, 0xB0, 0x00, 0x01, 0x4A, 0xCC, 0x00, 0x01, 0x4B, 0x50, 0x00, 0x01, 0x4C, 0x10, 0x00, 0x01, 0x4D, 0x48, 0x00, 0x01, 0x4D, 0xF4, 0x00, 0x01, 0x4E, + 0x4C, 0x00, 0x01, 0x4E, 0xF4, 0x00, 0x01, 0x4F, 0x88, 0x00, 0x01, 0x4F, 0xCC, 0x00, 0x01, 0x50, 0x60, 0x00, 0x01, 0x50, 0xF0, 0x00, 0x01, 0x51, 0xE0, + 0x00, 0x01, 0x52, 0xF0, 0x00, 0x01, 0x53, 0xD8, 0x00, 0x01, 0x54, 0x94, 0x00, 0x01, 0x55, 0x44, 0x00, 0x01, 0x55, 0xD4, 0x00, 0x01, 0x56, 0x70, 0x00, + 0x01, 0x56, 0xFC, 0x00, 0x01, 0x58, 0x28, 0x00, 0x01, 0x58, 0x88, 0x00, 0x01, 0x59, 0x2C, 0x00, 0x01, 0x59, 0xE0, 0x00, 0x01, 0x5A, 0x8C, 0x00, 0x01, + 0x5B, 0x0C, 0x00, 0x01, 0x5B, 0x90, 0x00, 0x01, 0x5C, 0x20, 0x00, 0x01, 0x5C, 0xE4, 0x00, 0x01, 0x5D, 0xD4, 0x00, 0x01, 0x5E, 0xBC, 0x00, 0x01, 0x5F, + 0x88, 0x00, 0x01, 0x60, 0x1C, 0x00, 0x01, 0x60, 0xA4, 0x00, 0x01, 0x61, 0x04, 0x00, 0x01, 0x61, 0xAC, 0x00, 0x01, 0x62, 0x5C, 0x00, 0x01, 0x62, 0xF4, + 0x00, 0x01, 0x64, 0x28, 0x00, 0x01, 0x64, 0xC0, 0x00, 0x01, 0x65, 0x44, 0x00, 0x01, 0x65, 0xC0, 0x00, 0x01, 0x66, 0x5C, 0x00, 0x01, 0x67, 0x74, 0x00, + 0x01, 0x68, 0x10, 0x00, 0x01, 0x68, 0x80, 0x00, 0x01, 0x69, 0x2C, 0x00, 0x01, 0x6A, 0x50, 0x00, 0x01, 0x6A, 0xE0, 0x00, 0x01, 0x6B, 0xAC, 0x00, 0x01, + 0x6C, 0x64, 0x00, 0x01, 0x6C, 0xF4, 0x00, 0x01, 0x6E, 0x3C, 0x00, 0x01, 0x6F, 0x24, 0x00, 0x01, 0x6F, 0xB4, 0x00, 0x01, 0x70, 0x74, 0x00, 0x01, 0x70, + 0xC4, 0x00, 0x01, 0x71, 0x38, 0x00, 0x01, 0x71, 0xC8, 0x00, 0x01, 0x72, 0x30, 0x00, 0x01, 0x72, 0xCC, 0x00, 0x01, 0x73, 0x98, 0x00, 0x01, 0x74, 0x1C, + 0x00, 0x01, 0x74, 0x74, 0x00, 0x01, 0x74, 0xE4, 0x00, 0x01, 0x75, 0xE8, 0x00, 0x01, 0x76, 0x70, 0x00, 0x01, 0x77, 0x00, 0x00, 0x01, 0x78, 0x5C, 0x00, + 0x01, 0x78, 0xF4, 0x00, 0x01, 0x79, 0x94, 0x00, 0x01, 0x7A, 0x3C, 0x00, 0x01, 0x7A, 0xF8, 0x00, 0x01, 0x7B, 0x74, 0x00, 0x01, 0x7B, 0xF8, 0x00, 0x01, + 0x7C, 0x9C, 0x00, 0x01, 0x7D, 0x0C, 0x00, 0x01, 0x7D, 0xAC, 0x00, 0x01, 0x7E, 0x0C, 0x00, 0x01, 0x7F, 0xB0, 0x00, 0x01, 0x80, 0xBC, 0x00, 0x01, 0x81, + 0xC8, 0x00, 0x01, 0x82, 0x78, 0x00, 0x01, 0x82, 0xE8, 0x00, 0x01, 0x84, 0x1C, 0x00, 0x01, 0x84, 0xA8, 0x00, 0x01, 0x85, 0x10, 0x00, 0x01, 0x85, 0xA8, + 0x00, 0x01, 0x86, 0x50, 0x00, 0x01, 0x86, 0xF8, 0x00, 0x01, 0x87, 0x5C, 0x00, 0x01, 0x87, 0xF0, 0x00, 0x01, 0x88, 0x9C, 0x00, 0x01, 0x89, 0x88, 0x00, + 0x01, 0x8A, 0x30, 0x00, 0x01, 0x8A, 0xC4, 0x00, 0x01, 0x8B, 0x14, 0x00, 0x01, 0x8B, 0xD4, 0x00, 0x01, 0x8C, 0x50, 0x00, 0x01, 0x8C, 0xB4, 0x00, 0x01, + 0x8D, 0x14, 0x00, 0x01, 0x8D, 0x78, 0x00, 0x01, 0x8D, 0xF8, 0x00, 0x01, 0x8E, 0x58, 0x00, 0x01, 0x8E, 0xD0, 0x00, 0x01, 0x8F, 0x88, 0x00, 0x01, 0x90, + 0x44, 0x00, 0x01, 0x91, 0x58, 0x00, 0x01, 0x91, 0xAC, 0x00, 0x01, 0x92, 0x28, 0x00, 0x01, 0x92, 0xD4, 0x00, 0x01, 0x93, 0x44, 0x00, 0x01, 0x93, 0xF8, + 0x00, 0x01, 0x94, 0x4C, 0x00, 0x01, 0x94, 0xC8, 0x00, 0x01, 0x95, 0x88, 0x00, 0x01, 0x96, 0x70, 0x00, 0x01, 0x97, 0x30, 0x00, 0x01, 0x97, 0xA4, 0x00, + 0x01, 0x98, 0x64, 0x00, 0x01, 0x99, 0x84, 0x00, 0x01, 0x9A, 0x18, 0x00, 0x01, 0x9A, 0xBC, 0x00, 0x01, 0x9B, 0x38, 0x00, 0x01, 0x9B, 0xA4, 0x00, 0x01, + 0x9C, 0x34, 0x00, 0x01, 0x9D, 0x00, 0x00, 0x01, 0x9D, 0xCC, 0x00, 0x01, 0x9E, 0x88, 0x00, 0x01, 0x9F, 0x38, 0x00, 0x01, 0x9F, 0xC0, 0x00, 0x01, 0xA0, + 0x34, 0x00, 0x01, 0xA0, 0xE8, 0x00, 0x01, 0xA1, 0x3C, 0x00, 0x01, 0xA1, 0xDC, 0x00, 0x01, 0xA2, 0x78, 0x00, 0x01, 0xA3, 0x48, 0x00, 0x01, 0xA3, 0xE4, + 0x00, 0x01, 0xA4, 0x5C, 0x00, 0x01, 0xA4, 0xE4, 0x00, 0x01, 0xA7, 0x18, 0x00, 0x01, 0xA7, 0xDC, 0x00, 0x01, 0xA8, 0x58, 0x00, 0x01, 0xA9, 0x3C, 0x00, + 0x01, 0xA9, 0xAC, 0x00, 0x01, 0xAA, 0x7C, 0x00, 0x01, 0xAB, 0x04, 0x00, 0x01, 0xAB, 0xE8, 0x00, 0x01, 0xAD, 0x54, 0x00, 0x01, 0xAD, 0xEC, 0x00, 0x01, + 0xAE, 0xE8, 0x00, 0x01, 0xAF, 0x98, 0x00, 0x01, 0xB0, 0x04, 0x00, 0x01, 0xB1, 0x08, 0x00, 0x01, 0xB2, 0x00, 0x00, 0x01, 0xB2, 0x88, 0x00, 0x01, 0xB3, + 0x0C, 0x00, 0x01, 0xB3, 0x84, 0x00, 0x01, 0xB4, 0x34, 0x00, 0x01, 0xB4, 0xE0, 0x00, 0x01, 0xB5, 0x68, 0x00, 0x01, 0xB6, 0x6C, 0x00, 0x01, 0xB7, 0x3C, + 0x00, 0x01, 0xB8, 0x0C, 0x00, 0x01, 0xB8, 0xDC, 0x00, 0x01, 0xB9, 0x7C, 0x00, 0x01, 0xB9, 0xE8, 0x00, 0x01, 0xBA, 0xE4, 0x00, 0x01, 0xBB, 0x70, 0x00, + 0x01, 0xBC, 0x04, 0x00, 0x01, 0xBC, 0x98, 0x00, 0x01, 0xBD, 0x70, 0x00, 0x01, 0xBE, 0x90, 0x00, 0x01, 0xBF, 0x6C, 0x00, 0x01, 0xC0, 0x50, 0x00, 0x01, + 0xC0, 0xDC, 0x00, 0x01, 0xC1, 0x60, 0x00, 0x01, 0xC2, 0x00, 0x00, 0x01, 0xC3, 0x98, 0x00, 0x01, 0xC4, 0x04, 0x00, 0x01, 0xC4, 0x94, 0x00, 0x01, 0xC5, + 0x10, 0x00, 0x01, 0xC5, 0x68, 0x00, 0x01, 0xC6, 0x8C, 0x00, 0x01, 0xC7, 0xCC, 0x00, 0x01, 0xC8, 0xF8, 0x00, 0x01, 0xC9, 0xD0, 0x00, 0x01, 0xCA, 0x4C, + 0x00, 0x01, 0xCA, 0xF0, 0x00, 0x01, 0xCB, 0x9C, 0x00, 0x01, 0xCC, 0x84, 0x00, 0x01, 0xCD, 0x44, 0x00, 0x01, 0xCD, 0xE4, 0x00, 0x01, 0xCF, 0x08, 0x00, + 0x01, 0xCF, 0xEC, 0x00, 0x01, 0xD1, 0x20, 0x00, 0x01, 0xD1, 0xEC, 0x00, 0x01, 0xD2, 0xDC, 0x00, 0x01, 0xD3, 0xD8, 0x00, 0x01, 0xD4, 0x6C, 0x00, 0x01, + 0xD5, 0x60, 0x00, 0x01, 0xD6, 0x5C, 0x00, 0x01, 0xD6, 0xFC, 0x00, 0x01, 0xD7, 0xB4, 0x00, 0x01, 0xD8, 0x1C, 0x00, 0x01, 0xD9, 0x50, 0x00, 0x01, 0xDA, + 0xC8, 0x00, 0x01, 0xDB, 0x98, 0x00, 0x01, 0xDC, 0x3C, 0x00, 0x01, 0xDD, 0x10, 0x00, 0x01, 0xDE, 0x28, 0x00, 0x01, 0xDE, 0xA0, 0x00, 0x01, 0xDF, 0x4C, + 0x00, 0x01, 0xDF, 0xE8, 0x00, 0x01, 0xE0, 0x7C, 0x00, 0x01, 0xE1, 0x54, 0x00, 0x01, 0xE1, 0xDC, 0x00, 0x01, 0xE2, 0x78, 0x00, 0x01, 0xE2, 0xE8, 0x00, + 0x01, 0xE3, 0x94, 0x00, 0x01, 0xE3, 0xE4, 0x00, 0x01, 0xE4, 0x78, 0x00, 0x01, 0xE4, 0xFC, 0x00, 0x01, 0xE5, 0x80, 0x00, 0x01, 0xE6, 0x04, 0x00, 0x01, + 0xE6, 0xE4, 0x00, 0x01, 0xE7, 0x50, 0x00, 0x01, 0xE7, 0xC4, 0x00, 0x01, 0xE8, 0x7C, 0x00, 0x01, 0xE9, 0x0C, 0x00, 0x01, 0xE9, 0xA4, 0x00, 0x01, 0xEA, + 0x40, 0x00, 0x01, 0xEB, 0x0C, 0x00, 0x01, 0xEB, 0x9C, 0x00, 0x01, 0xEC, 0x44, 0x00, 0x01, 0xEC, 0xF8, 0x00, 0x01, 0xED, 0xA0, 0x00, 0x01, 0xEE, 0x60, + 0x00, 0x01, 0xEE, 0xEC, 0x00, 0x01, 0xEF, 0x64, 0x00, 0x01, 0xF0, 0x50, 0x00, 0x01, 0xF0, 0xCC, 0x00, 0x01, 0xF1, 0x50, 0x00, 0x01, 0xF2, 0x08, 0x00, + 0x01, 0xF2, 0x70, 0x00, 0x01, 0xF3, 0x18, 0x00, 0x01, 0xF4, 0x1C, 0x00, 0x01, 0xF5, 0x30, 0x00, 0x01, 0xF5, 0xA0, 0x00, 0x01, 0xF6, 0x40, 0x00, 0x01, + 0xF6, 0xE4, 0x00, 0x01, 0xF7, 0x84, 0x00, 0x01, 0xF8, 0x64, 0x00, 0x01, 0xF8, 0xD0, 0x00, 0x01, 0xF9, 0x38, 0x00, 0x01, 0xFA, 0x7C, 0x00, 0x01, 0xFB, + 0x28, 0x00, 0x01, 0xFC, 0x48, 0x00, 0x01, 0xFD, 0x18, 0x00, 0x01, 0xFD, 0x9C, 0x00, 0x01, 0xFE, 0x6C, 0x00, 0x01, 0xFF, 0x4C, 0x00, 0x02, 0x00, 0x08, + 0x00, 0x02, 0x01, 0xCC, 0x00, 0x02, 0x02, 0x78, 0x00, 0x02, 0x03, 0x8C, 0x00, 0x02, 0x04, 0x04, 0x00, 0x02, 0x05, 0x14, 0x00, 0x02, 0x05, 0xF0, 0x00, + 0x02, 0x06, 0x90, 0x00, 0x02, 0x07, 0x7C, 0x00, 0x02, 0x08, 0x38, 0x00, 0x02, 0x08, 0xF0, 0x00, 0x02, 0x09, 0x78, 0x00, 0x02, 0x09, 0xE8, 0x00, 0x02, + 0x0A, 0x8C, 0x00, 0x02, 0x0B, 0xDC, 0x00, 0x02, 0x0D, 0x54, 0x00, 0x02, 0x0E, 0x90, 0x00, 0x02, 0x0F, 0x4C, 0x00, 0x02, 0x11, 0xB4, 0x00, 0x02, 0x12, + 0x80, 0x00, 0x02, 0x13, 0x50, 0x00, 0x02, 0x13, 0xD0, 0x00, 0x02, 0x14, 0x84, 0x00, 0x02, 0x15, 0x38, 0x00, 0x02, 0x16, 0xD8, 0x00, 0x02, 0x17, 0xC4, + 0x00, 0x02, 0x18, 0xDC, 0x00, 0x02, 0x19, 0x40, 0x00, 0x02, 0x1A, 0xF0, 0x00, 0x02, 0x1B, 0xD0, 0x00, 0x02, 0x1C, 0x34, 0x00, 0x02, 0x1C, 0xC4, 0x00, + 0x02, 0x1D, 0xB8, 0x00, 0x02, 0x1E, 0xD8, 0x00, 0x02, 0x1F, 0x9C, 0x00, 0x02, 0x20, 0x74, 0x00, 0x02, 0x21, 0xD8, 0x00, 0x02, 0x23, 0x6C, 0x00, 0x02, + 0x24, 0x74, 0x00, 0x02, 0x25, 0xD8, 0x00, 0x02, 0x26, 0x70, 0x00, 0x02, 0x27, 0x44, 0x00, 0x02, 0x29, 0x14, 0x00, 0x02, 0x29, 0xF0, 0x00, 0x02, 0x2B, + 0x50, 0x00, 0x02, 0x2D, 0x3C, 0x00, 0x02, 0x2D, 0xA8, 0x00, 0x02, 0x2E, 0x2C, 0x00, 0x02, 0x2E, 0xDC, 0x00, 0x02, 0x2F, 0x8C, 0x00, 0x02, 0x30, 0x10, + 0x00, 0x02, 0x30, 0xF0, 0x00, 0x02, 0x31, 0xDC, 0x00, 0x02, 0x32, 0xD8, 0x00, 0x02, 0x33, 0x78, 0x00, 0x02, 0x34, 0x14, 0x00, 0x02, 0x34, 0xCC, 0x00, + 0x02, 0x35, 0x78, 0x00, 0x02, 0x36, 0x28, 0x00, 0x02, 0x36, 0xF4, 0x00, 0x02, 0x38, 0x14, 0x00, 0x02, 0x38, 0xB4, 0x00, 0x02, 0x39, 0x84, 0x00, 0x02, + 0x3A, 0x18, 0x00, 0x02, 0x3A, 0x8C, 0x00, 0x02, 0x3B, 0x6C, 0x00, 0x02, 0x3C, 0x7C, 0x00, 0x02, 0x3C, 0xF0, 0x00, 0x02, 0x3D, 0xB0, 0x00, 0x02, 0x3E, + 0x48, 0x00, 0x02, 0x3E, 0xF8, 0x00, 0x02, 0x3F, 0xEC, 0x00, 0x02, 0x40, 0xE0, 0x00, 0x02, 0x41, 0x58, 0x00, 0x02, 0x42, 0x00, 0x00, 0x02, 0x42, 0xD4, + 0x00, 0x02, 0x43, 0x54, 0x00, 0x02, 0x45, 0x3C, 0x00, 0x02, 0x46, 0x58, 0x00, 0x02, 0x47, 0x7C, 0x00, 0x02, 0x48, 0x10, 0x00, 0x02, 0x48, 0x98, 0x00, + 0x02, 0x4A, 0xB4, 0x00, 0x02, 0x4B, 0x3C, 0x00, 0x02, 0x4C, 0x24, 0x00, 0x02, 0x4C, 0xD8, 0x00, 0x02, 0x4D, 0xB4, 0x00, 0x02, 0x4E, 0x54, 0x00, 0x02, + 0x4F, 0x48, 0x00, 0x02, 0x4F, 0xD8, 0x00, 0x02, 0x50, 0x28, 0x00, 0x02, 0x51, 0x08, 0x00, 0x02, 0x51, 0xDC, 0x00, 0x02, 0x52, 0x3C, 0x00, 0x02, 0x53, + 0x0C, 0x00, 0x02, 0x53, 0x84, 0x00, 0x02, 0x54, 0x64, 0x00, 0x02, 0x54, 0x9C, 0x00, 0x02, 0x56, 0x14, 0x00, 0x02, 0x56, 0xEC, 0x00, 0x02, 0x58, 0x3C, + 0x00, 0x02, 0x58, 0xF4, 0x00, 0x02, 0x59, 0x78, 0x00, 0x02, 0x5A, 0x74, 0x00, 0x02, 0x5A, 0xE8, 0x00, 0x02, 0x5B, 0xE0, 0x00, 0x02, 0x5D, 0x1C, 0x00, + 0x02, 0x5D, 0xEC, 0x00, 0x02, 0x5F, 0x18, 0x00, 0x02, 0x60, 0x9C, 0x00, 0x02, 0x62, 0x3C, 0x00, 0x02, 0x63, 0x90, 0x00, 0x02, 0x64, 0x50, 0x00, 0x02, + 0x65, 0x58, 0x00, 0x02, 0x66, 0x2C, 0x00, 0x02, 0x67, 0x18, 0x00, 0x02, 0x68, 0x88, 0x00, 0x02, 0x69, 0x4C, 0x00, 0x02, 0x6A, 0x08, 0x00, 0x02, 0x6A, + 0xC4, 0x00, 0x02, 0x6B, 0x6C, 0x00, 0x02, 0x6C, 0xE4, 0x00, 0x02, 0x6D, 0xA8, 0x00, 0x02, 0x6E, 0x68, 0x00, 0x02, 0x6F, 0xB8, 0x00, 0x02, 0x70, 0x84, + 0x00, 0x02, 0x71, 0x1C, 0x00, 0x02, 0x71, 0xB4, 0x00, 0x02, 0x72, 0x98, 0x00, 0x02, 0x73, 0x2C, 0x00, 0x02, 0x74, 0xD8, 0x00, 0x02, 0x75, 0xD8, 0x00, + 0x02, 0x76, 0x9C, 0x00, 0x02, 0x77, 0xB0, 0x00, 0x02, 0x78, 0x34, 0x00, 0x02, 0x79, 0x7C, 0x00, 0x02, 0x7A, 0x54, 0x00, 0x02, 0x7A, 0xA4, 0x00, 0x02, + 0x7C, 0x24, 0x00, 0x02, 0x7C, 0x84, 0x00, 0x02, 0x7C, 0xE4, 0x00, 0x02, 0x7D, 0x8C, 0x00, 0x02, 0x7D, 0xE8, 0x00, 0x02, 0x7F, 0x24, 0x00, 0x02, 0x7F, + 0xCC, 0x00, 0x02, 0x80, 0x2C, 0x00, 0x02, 0x80, 0xD8, 0x00, 0x02, 0x81, 0x40, 0x00, 0x02, 0x82, 0x00, 0x00, 0x02, 0x82, 0x9C, 0x00, 0x02, 0x83, 0x60, + 0x00, 0x02, 0x84, 0x50, 0x00, 0x02, 0x85, 0x20, 0x00, 0x02, 0x85, 0xEC, 0x00, 0x02, 0x86, 0x40, 0x00, 0x02, 0x86, 0xD8, 0x00, 0x02, 0x87, 0xC0, 0x00, + 0x02, 0x88, 0x9C, 0x00, 0x02, 0x89, 0x88, 0x00, 0x02, 0x8A, 0x34, 0x00, 0x02, 0x8B, 0x60, 0x00, 0x02, 0x8C, 0x60, 0x00, 0x02, 0x8D, 0xD0, 0x00, 0x02, + 0x8E, 0xFC, 0x00, 0x02, 0x8F, 0x54, 0x00, 0x02, 0x8F, 0xF4, 0x00, 0x02, 0x90, 0xC4, 0x00, 0x02, 0x91, 0x7C, 0x00, 0x02, 0x91, 0xE4, 0x00, 0x02, 0x92, + 0xD4, 0x00, 0x02, 0x93, 0x70, 0x00, 0x02, 0x93, 0xB0, 0x00, 0x02, 0x93, 0xF4, 0x00, 0x02, 0x94, 0xB8, 0x00, 0x02, 0x95, 0x3C, 0x00, 0x02, 0x95, 0xD8, + 0x00, 0x02, 0x96, 0x94, 0x00, 0x02, 0x96, 0xC4, 0x00, 0x02, 0x97, 0x80, 0x00, 0x02, 0x98, 0x18, 0x00, 0x02, 0x98, 0x84, 0x00, 0x02, 0x99, 0xD0, 0x00, + 0x02, 0x9A, 0xC4, 0x00, 0x02, 0x9B, 0x20, 0x00, 0x02, 0x9B, 0xD0, 0x00, 0x02, 0x9C, 0x64, 0x00, 0x02, 0x9C, 0xF0, 0x00, 0x02, 0x9D, 0x90, 0x00, 0x02, + 0x9E, 0x30, 0x00, 0x02, 0x9E, 0xD0, 0x00, 0x02, 0x9F, 0x80, 0x00, 0x02, 0x9F, 0xF8, 0x00, 0x02, 0xA0, 0xC8, 0x00, 0x02, 0xA1, 0x30, 0x00, 0x02, 0xA4, + 0x6C, 0x00, 0x02, 0xA5, 0xC0, 0x00, 0x02, 0xA6, 0x4C, 0x00, 0x02, 0xA7, 0x70, 0x00, 0x02, 0xA7, 0xD4, 0x00, 0x02, 0xA8, 0x60, 0x00, 0x02, 0xA9, 0x5C, + 0x00, 0x02, 0xAA, 0x10, 0x00, 0x02, 0xAA, 0xF0, 0x00, 0x02, 0xAB, 0xD4, 0x00, 0x02, 0xAC, 0xB8, 0x00, 0x02, 0xAD, 0xA0, 0x00, 0x02, 0xAE, 0x8C, 0x00, + 0x02, 0xAF, 0x78, 0x00, 0x02, 0xB0, 0x74, 0x00, 0x02, 0xB0, 0xE4, 0x00, 0x02, 0xB1, 0x74, 0x00, 0x02, 0xB1, 0xF8, 0x00, 0x02, 0xB2, 0x44, 0x00, 0x02, + 0xB2, 0xAC, 0x00, 0x02, 0xB3, 0x6C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x23, 0x00, 0x3E, 0x00, 0x00, 0x25, 0x32, 0x16, + 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x26, 0x2B, 0x01, 0x0E, 0x01, 0x22, 0x26, 0x27, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, + 0x36, 0x37, 0x35, 0x37, 0x17, 0x15, 0x16, 0x17, 0x27, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, 0x01, 0x60, 0x42, 0x5E, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x0D, 0x10, 0x3D, 0x4C, + 0x3D, 0x10, 0x5D, 0x07, 0x09, 0x09, 0x07, 0x77, 0x17, 0x22, 0x20, 0x20, 0x21, 0x18, 0xE7, 0x07, 0x0B, 0x0B, 0x07, 0x6E, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x6E, 0x07, 0x0B, 0x0B, 0x07, 0x8E, 0xC0, 0x5E, 0x42, 0x0D, 0x13, 0x13, 0x1A, 0x13, 0x1D, 0x23, 0x23, 0x1D, 0x09, 0x07, 0x60, 0x07, 0x09, 0x14, 0x08, + 0x30, 0x03, 0x03, 0x30, 0x08, 0x14, 0x60, 0x01, 0x0A, 0x08, 0x1E, 0x08, 0x0A, 0x01, 0x0C, 0x1C, 0x07, 0x09, 0x09, 0x07, 0x1C, 0x0C, 0x01, 0x0A, 0x08, + 0x1E, 0x08, 0x0A, 0x01, 0x0F, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0x80, 0x00, 0x1A, 0x00, 0x23, 0x00, 0x2D, 0x00, 0x36, + 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4E, 0x00, 0x56, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x23, + 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x25, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x36, 0x37, 0x35, 0x34, 0x2B, + 0x01, 0x22, 0x1D, 0x01, 0x36, 0x32, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x16, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x33, 0x35, + 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x20, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x70, 0x07, + 0x09, 0x09, 0x07, 0xFE, 0xAE, 0x06, 0x3E, 0x54, 0x3E, 0x06, 0x32, 0x07, 0x09, 0x09, 0x07, 0x02, 0x00, 0x07, 0x09, 0xFE, 0x40, 0x08, 0x10, 0x08, 0x0F, + 0x71, 0x08, 0x10, 0x08, 0x0C, 0x08, 0x6C, 0x08, 0x10, 0x08, 0x11, 0x6F, 0x08, 0x10, 0x08, 0x80, 0x08, 0x10, 0x08, 0xFE, 0xCF, 0x42, 0x2F, 0x2F, 0x42, + 0x2F, 0x43, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x29, 0x37, 0x37, 0x29, 0x09, 0x07, 0x01, 0x20, 0x07, 0x09, 0x09, 0x07, + 0xF0, 0x4C, 0x6C, 0x08, 0x08, 0x80, 0x0C, 0x1B, 0x59, 0x08, 0x08, 0x59, 0x01, 0x28, 0x80, 0x08, 0x08, 0x6C, 0x08, 0x44, 0xB8, 0x08, 0x08, 0xB8, 0xB8, + 0x08, 0x08, 0xB8, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x41, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x80, 0x01, 0xC1, 0x00, + 0xA0, 0x00, 0xA8, 0x00, 0xB0, 0x01, 0x51, 0x01, 0x59, 0x00, 0x00, 0x25, 0x06, 0x23, 0x31, 0x22, 0x2F, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, + 0x06, 0x07, 0x14, 0x06, 0x31, 0x17, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x06, 0x07, 0x06, 0x07, 0x17, 0x16, 0x14, 0x06, 0x22, 0x2F, 0x01, + 0x06, 0x23, 0x30, 0x22, 0x23, 0x07, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x26, 0x27, 0x07, 0x22, 0x23, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, + 0x34, 0x35, 0x34, 0x37, 0x36, 0x37, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x36, 0x37, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, + 0x1F, 0x01, 0x36, 0x37, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x36, 0x37, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x1F, 0x01, + 0x36, 0x37, 0x36, 0x33, 0x32, 0x33, 0x37, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x16, 0x17, 0x37, 0x32, 0x33, 0x32, 0x16, 0x15, 0x14, 0x0F, + 0x01, 0x16, 0x15, 0x14, 0x07, 0x17, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x06, 0x07, 0x06, 0x07, 0x17, 0x16, 0x15, 0x14, 0x06, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x05, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x14, 0x15, 0x14, 0x07, 0x06, 0x07, + 0x17, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x06, 0x07, 0x17, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x06, 0x07, 0x17, 0x16, 0x15, + 0x14, 0x07, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x06, 0x07, 0x17, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x23, 0x07, + 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x26, 0x27, 0x07, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x26, 0x35, 0x34, 0x37, 0x27, 0x26, + 0x35, 0x34, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x36, 0x37, 0x36, 0x37, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x34, 0x36, 0x37, 0x36, + 0x37, 0x36, 0x37, 0x36, 0x37, 0x34, 0x36, 0x31, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x36, 0x37, 0x36, 0x37, 0x27, 0x26, 0x34, 0x36, + 0x32, 0x1F, 0x01, 0x36, 0x33, 0x30, 0x32, 0x33, 0x37, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x16, 0x17, 0x37, 0x32, 0x33, 0x31, 0x32, 0x06, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x10, 0x03, 0x04, 0x0B, 0x05, 0x04, 0x03, 0x01, 0x05, 0x05, 0x06, 0x05, 0x04, 0x04, 0x02, 0x09, 0x0A, + 0x0A, 0x08, 0x04, 0x03, 0x09, 0x03, 0x01, 0x03, 0x09, 0x09, 0x05, 0x0B, 0x0E, 0x06, 0x08, 0x15, 0x19, 0x02, 0x01, 0x03, 0x03, 0x0E, 0x07, 0x0B, 0x01, + 0x03, 0x18, 0x0D, 0x0B, 0x03, 0x02, 0x08, 0x0A, 0x0D, 0x0B, 0x01, 0x02, 0x06, 0x0B, 0x0C, 0x0B, 0x07, 0x03, 0x03, 0x0A, 0x0A, 0x0D, 0x08, 0x08, 0x04, + 0x05, 0x09, 0x06, 0x05, 0x08, 0x10, 0x13, 0x06, 0x04, 0x07, 0x05, 0x06, 0x09, 0x05, 0x07, 0x15, 0x17, 0x04, 0x01, 0x0B, 0x07, 0x0D, 0x04, 0x03, 0x16, + 0x0B, 0x07, 0x07, 0x01, 0x02, 0x03, 0x03, 0x0E, 0x07, 0x0B, 0x01, 0x03, 0x18, 0x0D, 0x0B, 0x03, 0x02, 0x08, 0x0A, 0x0D, 0x0C, 0x01, 0x0C, 0x09, 0x06, + 0x0A, 0x07, 0x07, 0x05, 0x0A, 0x10, 0x12, 0x06, 0x07, 0x04, 0x02, 0xA8, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x69, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0xBF, + 0x01, 0x0D, 0x0B, 0x01, 0x02, 0x06, 0x0B, 0x0C, 0x0B, 0x07, 0x03, 0x03, 0x0A, 0x0A, 0x0D, 0x08, 0x08, 0x0A, 0x08, 0x06, 0x05, 0x08, 0x10, 0x13, 0x06, + 0x04, 0x07, 0x05, 0x06, 0x09, 0x05, 0x07, 0x15, 0x17, 0x04, 0x01, 0x0B, 0x07, 0x0D, 0x04, 0x03, 0x16, 0x0B, 0x07, 0x07, 0x01, 0x02, 0x03, 0x03, 0x0E, + 0x07, 0x0B, 0x01, 0x03, 0x18, 0x0D, 0x0B, 0x03, 0x02, 0x08, 0x0A, 0x0D, 0x0C, 0x01, 0x0C, 0x0A, 0x06, 0x0B, 0x07, 0x07, 0x05, 0x0A, 0x10, 0x12, 0x06, + 0x07, 0x04, 0x02, 0x0B, 0x03, 0x04, 0x0B, 0x05, 0x04, 0x03, 0x01, 0x05, 0x05, 0x06, 0x05, 0x04, 0x04, 0x02, 0x09, 0x0A, 0x0A, 0x08, 0x04, 0x03, 0x09, + 0x03, 0x01, 0x03, 0x09, 0x09, 0x05, 0x0B, 0x0E, 0x06, 0x08, 0x15, 0x19, 0x02, 0x01, 0x03, 0x04, 0x0D, 0x07, 0x0B, 0x01, 0x03, 0x18, 0x0D, 0x0B, 0x03, + 0x02, 0x0D, 0xE8, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xDE, 0x02, 0x0B, 0x09, 0x01, 0x01, 0x01, 0x03, 0x04, 0x06, 0x06, 0x04, 0x05, 0x01, 0x02, 0x04, 0x05, + 0x0B, 0x08, 0x0A, 0x02, 0x04, 0x08, 0x08, 0x11, 0x0E, 0x09, 0x05, 0x0F, 0x0A, 0x05, 0x09, 0x0E, 0x0B, 0x0D, 0x0B, 0x07, 0x02, 0x02, 0x0B, 0x0C, 0x18, + 0x04, 0x0A, 0x07, 0x0E, 0x03, 0x04, 0x03, 0x03, 0x06, 0x07, 0x08, 0x16, 0x04, 0x04, 0x0C, 0x08, 0x0A, 0x01, 0x04, 0x17, 0x15, 0x07, 0x05, 0x09, 0x06, + 0x05, 0x07, 0x04, 0x06, 0x13, 0x10, 0x09, 0x05, 0x06, 0x09, 0x05, 0x03, 0x07, 0x08, 0x0E, 0x09, 0x0A, 0x03, 0x03, 0x07, 0x0B, 0x0C, 0x09, 0x06, 0x02, + 0x01, 0x0B, 0x0D, 0x0A, 0x08, 0x02, 0x02, 0x0B, 0x0C, 0x18, 0x04, 0x0A, 0x07, 0x0D, 0x04, 0x04, 0x02, 0x03, 0x17, 0x14, 0x09, 0x05, 0x08, 0x07, 0x0B, + 0x05, 0x09, 0x0B, 0x03, 0x01, 0x02, 0x09, 0x03, 0x04, 0x0C, 0x22, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x4D, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x36, 0x03, 0x02, + 0x0E, 0x03, 0x04, 0x03, 0x03, 0x06, 0x07, 0x08, 0x16, 0x04, 0x04, 0x0C, 0x08, 0x0A, 0x01, 0x04, 0x17, 0x15, 0x07, 0x05, 0x09, 0x08, 0x0A, 0x04, 0x06, + 0x13, 0x10, 0x09, 0x05, 0x06, 0x09, 0x05, 0x03, 0x07, 0x08, 0x0E, 0x09, 0x0A, 0x03, 0x03, 0x08, 0x0A, 0x0C, 0x09, 0x06, 0x02, 0x01, 0x0B, 0x0D, 0x0A, + 0x08, 0x02, 0x02, 0x0B, 0x0C, 0x18, 0x04, 0x01, 0x0B, 0x07, 0x0D, 0x04, 0x04, 0x02, 0x03, 0x17, 0x14, 0x09, 0x05, 0x08, 0x07, 0x0B, 0x05, 0x09, 0x0B, + 0x03, 0x01, 0x02, 0x09, 0x03, 0x04, 0x0C, 0x04, 0x02, 0x0B, 0x09, 0x01, 0x01, 0x01, 0x03, 0x04, 0x06, 0x06, 0x04, 0x05, 0x01, 0x02, 0x04, 0x05, 0x0B, + 0x08, 0x0A, 0x02, 0x04, 0x08, 0x08, 0x11, 0x0E, 0x09, 0x05, 0x0F, 0x0A, 0x05, 0x09, 0x0E, 0x0B, 0x0D, 0x0B, 0x07, 0x02, 0x02, 0x0B, 0x0C, 0x18, 0x04, + 0xDF, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x9F, 0x00, 0xA7, 0x00, 0xAF, + 0x00, 0x00, 0x01, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x14, 0x15, 0x14, 0x07, 0x17, 0x16, 0x15, 0x14, 0x06, 0x22, 0x2F, 0x01, 0x06, 0x07, 0x06, 0x07, 0x17, + 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x22, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x0E, 0x01, 0x15, 0x17, 0x16, 0x15, 0x14, 0x06, + 0x23, 0x22, 0x2F, 0x01, 0x06, 0x07, 0x06, 0x07, 0x17, 0x16, 0x15, 0x14, 0x06, 0x22, 0x2F, 0x01, 0x06, 0x23, 0x2A, 0x01, 0x23, 0x07, 0x06, 0x23, 0x22, + 0x27, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x26, 0x27, 0x07, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x34, 0x35, 0x34, 0x37, 0x36, 0x37, 0x27, 0x26, + 0x35, 0x34, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x36, 0x37, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x36, 0x37, 0x27, 0x26, 0x35, 0x34, 0x37, + 0x36, 0x33, 0x32, 0x1F, 0x01, 0x36, 0x37, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x33, 0x37, 0x36, 0x33, + 0x32, 0x16, 0x15, 0x14, 0x15, 0x07, 0x16, 0x17, 0x37, 0x36, 0x33, 0x32, 0x00, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x01, 0xFF, 0x01, 0x11, 0x10, 0x0F, 0x0D, 0x08, 0x0E, 0x13, 0x07, 0x0E, 0x14, 0x19, 0x08, 0x08, 0x05, 0x02, 0x0E, 0x0A, 0x0F, 0x06, + 0x05, 0x01, 0x03, 0x01, 0x07, 0x06, 0x09, 0x07, 0x05, 0x05, 0x01, 0x02, 0x0C, 0x0E, 0x0E, 0x0A, 0x05, 0x05, 0x0C, 0x04, 0x02, 0x03, 0x0D, 0x0D, 0x06, + 0x0E, 0x14, 0x07, 0x0B, 0x1C, 0x21, 0x01, 0x02, 0x01, 0x04, 0x04, 0x13, 0x03, 0x03, 0x12, 0x01, 0x04, 0x20, 0x10, 0x0F, 0x04, 0x03, 0x0A, 0x0E, 0x11, + 0x0F, 0x01, 0x04, 0x06, 0x0D, 0x11, 0x0E, 0x0A, 0x04, 0x04, 0x0D, 0x0D, 0x12, 0x0B, 0x0A, 0x0E, 0x09, 0x09, 0x06, 0x0B, 0x15, 0x1A, 0x08, 0x05, 0x0A, + 0x06, 0x08, 0x0C, 0x07, 0x08, 0x1C, 0x1E, 0x04, 0x01, 0x0E, 0x0A, 0x10, 0x06, 0x04, 0x16, 0x17, 0x09, 0x09, 0x02, 0x02, 0x04, 0x04, 0x13, 0x09, 0x0E, + 0x04, 0x20, 0x10, 0x0F, 0x04, 0x03, 0x12, 0xFE, 0x92, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x76, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x01, 0x59, 0x03, 0x04, 0x11, + 0x05, 0x05, 0x03, 0x04, 0x1F, 0x1A, 0x0C, 0x07, 0x0B, 0x0A, 0x0E, 0x07, 0x0C, 0x0E, 0x04, 0x02, 0x03, 0x0C, 0x04, 0x05, 0x0A, 0x0E, 0x0E, 0x0C, 0x02, + 0x01, 0x05, 0x05, 0x07, 0x09, 0x05, 0x07, 0x01, 0x02, 0x01, 0x06, 0x06, 0x0F, 0x0A, 0x0E, 0x03, 0x05, 0x0A, 0x0A, 0x17, 0x13, 0x0C, 0x07, 0x09, 0x0A, + 0x0E, 0x07, 0x0B, 0x12, 0x0E, 0x12, 0x01, 0x04, 0x13, 0x03, 0x03, 0x0E, 0x10, 0x20, 0x05, 0x01, 0x0E, 0x0A, 0x11, 0x05, 0x05, 0x04, 0x04, 0x09, 0x08, + 0x15, 0x14, 0x04, 0x06, 0x11, 0x0A, 0x0E, 0x02, 0x04, 0x1E, 0x1C, 0x08, 0x07, 0x0D, 0x0A, 0x0E, 0x05, 0x08, 0x19, 0x16, 0x0B, 0x06, 0x08, 0x0C, 0x07, + 0x04, 0x09, 0x0B, 0x13, 0x0D, 0x0C, 0x04, 0x04, 0x0A, 0x0E, 0x10, 0x0C, 0x07, 0x03, 0x02, 0x0E, 0x12, 0x0E, 0x0A, 0x03, 0x03, 0x0E, 0x10, 0x1F, 0x04, + 0x01, 0xFE, 0xE6, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x6C, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC1, 0x00, + 0x09, 0x00, 0x13, 0x00, 0x2D, 0x00, 0x00, 0x25, 0x21, 0x03, 0x33, 0x32, 0x1E, 0x02, 0x3B, 0x01, 0x01, 0x35, 0x21, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x21, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x17, 0x23, 0x22, 0x06, 0x14, 0x16, 0x33, 0x21, 0x32, 0x36, 0x34, 0x26, 0x2B, + 0x01, 0x37, 0x01, 0x80, 0xFF, 0x00, 0x40, 0x8D, 0x17, 0x25, 0x0E, 0x25, 0x16, 0x6E, 0xFE, 0x40, 0x02, 0x00, 0x13, 0x0D, 0xFE, 0x40, 0x0D, 0x13, 0x01, + 0xE0, 0x0D, 0x13, 0xFE, 0x00, 0x13, 0x0D, 0x31, 0x0E, 0x0F, 0x07, 0x09, 0x09, 0x07, 0x01, 0x60, 0x07, 0x09, 0x09, 0x07, 0x0E, 0x15, 0xA0, 0x01, 0x20, + 0x1B, 0x2A, 0x1B, 0xFE, 0x80, 0x40, 0x40, 0x0D, 0x13, 0x13, 0x01, 0x0D, 0x13, 0x0D, 0x80, 0x80, 0x0D, 0x13, 0x40, 0x09, 0x0D, 0x0A, 0x0A, 0x0D, 0x09, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC1, 0x00, 0x23, 0x00, 0x4B, 0x00, 0x00, 0x13, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x05, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x15, 0x14, 0x07, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x37, 0x36, 0x33, 0x32, 0xA0, 0x07, 0x09, 0x09, + 0x07, 0x40, 0x09, 0x07, 0x40, 0x07, 0x09, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x09, 0x07, 0x40, 0x07, 0x09, 0x01, 0x58, 0x08, 0x10, 0x87, 0x1C, 0x22, + 0xFE, 0xA5, 0x07, 0x09, 0x09, 0x07, 0x37, 0x2F, 0x20, 0x2A, 0xA0, 0x0D, 0x13, 0x01, 0x01, 0x14, 0x0C, 0x4E, 0x07, 0x09, 0x09, 0x07, 0x78, 0x78, 0x0B, + 0x0D, 0x14, 0x01, 0x10, 0x0A, 0x06, 0x40, 0x07, 0x09, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x09, 0x07, 0x40, 0x06, 0x0A, 0x40, 0x06, 0x0A, 0x0A, 0x06, + 0x40, 0xA0, 0x0B, 0x0D, 0x14, 0x0C, 0x64, 0x14, 0x0A, 0x06, 0x60, 0x07, 0x09, 0x26, 0x1A, 0x13, 0x0D, 0x03, 0x02, 0x0C, 0x0F, 0x09, 0x0D, 0x0A, 0x58, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x5F, 0x00, 0x73, 0x00, 0x8B, 0x00, 0x00, 0x13, + 0x07, 0x06, 0x22, 0x2F, 0x02, 0x26, 0x35, 0x34, 0x3F, 0x02, 0x36, 0x32, 0x1F, 0x02, 0x16, 0x15, 0x14, 0x07, 0x01, 0x17, 0x06, 0x2B, 0x01, 0x22, 0x2F, + 0x01, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x36, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, + 0x1D, 0x01, 0x1C, 0x01, 0x15, 0x06, 0x07, 0x15, 0x0F, 0x03, 0x23, 0x06, 0x14, 0x1F, 0x01, 0x27, 0x36, 0x34, 0x2F, 0x02, 0x26, 0x22, 0x0F, 0x02, 0x06, + 0x14, 0x1F, 0x02, 0x16, 0x32, 0x3F, 0x01, 0x05, 0x31, 0x14, 0x0F, 0x01, 0x31, 0x07, 0x06, 0x22, 0x2F, 0x02, 0x26, 0x35, 0x34, 0x3F, 0x02, 0x36, 0x32, + 0x1F, 0x02, 0x16, 0x6B, 0x15, 0x02, 0x08, 0x02, 0x15, 0x31, 0x04, 0x04, 0x31, 0x15, 0x02, 0x08, 0x02, 0x15, 0x31, 0x04, 0x04, 0x01, 0x3B, 0x26, 0x0D, + 0x1E, 0xC6, 0x18, 0x0F, 0x7D, 0x08, 0x17, 0x11, 0x14, 0x0C, 0x18, 0x13, 0x1A, 0x13, 0x08, 0x10, 0x08, 0x13, 0x1A, 0x13, 0x08, 0x10, 0x08, 0x13, 0x1A, + 0x13, 0x08, 0x10, 0x08, 0x13, 0x1A, 0x13, 0x0D, 0x06, 0x01, 0x0F, 0x26, 0x01, 0x01, 0x15, 0x15, 0x01, 0x78, 0x02, 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x02, + 0x0C, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x02, 0x0C, 0x01, 0x40, 0x04, 0x31, 0x15, 0x02, 0x08, 0x02, 0x15, 0x31, 0x04, 0x04, 0x31, 0x15, 0x02, + 0x08, 0x02, 0x15, 0x31, 0x04, 0x01, 0x15, 0x31, 0x04, 0x04, 0x31, 0x15, 0x02, 0x04, 0x04, 0x02, 0x15, 0x31, 0x04, 0x04, 0x31, 0x15, 0x02, 0x04, 0x04, + 0x02, 0xFE, 0xC3, 0x10, 0x1D, 0x14, 0xAC, 0x0B, 0x0D, 0x11, 0x17, 0x11, 0x20, 0xF1, 0x0D, 0x13, 0x13, 0x0D, 0x98, 0x08, 0x08, 0xB8, 0x0D, 0x13, 0x13, + 0x0D, 0xB8, 0x08, 0x08, 0x98, 0x0D, 0x13, 0x13, 0x0D, 0x98, 0x08, 0x08, 0x48, 0x0D, 0x13, 0x13, 0x0D, 0xB0, 0x01, 0x02, 0x01, 0x06, 0x0B, 0x01, 0x01, + 0x26, 0x0F, 0x01, 0x0B, 0x30, 0x0A, 0x01, 0x7F, 0x02, 0x05, 0x01, 0x0C, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x01, 0x05, 0x02, 0x0C, 0x1E, 0x02, 0x02, 0x1E, + 0x50, 0x04, 0x02, 0x15, 0x31, 0x04, 0x04, 0x31, 0x15, 0x02, 0x04, 0x04, 0x02, 0x15, 0x31, 0x04, 0x04, 0x31, 0x15, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x20, 0xFF, 0xC0, 0x02, 0x21, 0x01, 0xC1, 0x00, 0x07, 0x00, 0x16, 0x00, 0x52, 0x00, 0x97, 0x00, 0x9F, 0x00, 0xA7, 0x00, 0x00, 0x24, 0x22, 0x26, 0x34, + 0x36, 0x32, 0x16, 0x14, 0x27, 0x07, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x15, 0x14, 0x0F, 0x01, 0x26, 0x23, 0x22, 0x07, 0x2E, 0x01, 0x3D, 0x01, 0x34, + 0x36, 0x32, 0x16, 0x15, 0x17, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x15, 0x14, 0x0F, 0x01, 0x14, 0x15, 0x14, 0x33, 0x32, 0x3F, 0x01, 0x3E, 0x01, 0x17, + 0x1E, 0x01, 0x15, 0x14, 0x0F, 0x01, 0x14, 0x15, 0x14, 0x33, 0x32, 0x3F, 0x01, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x15, 0x14, 0x0F, 0x02, 0x0E, 0x01, 0x1D, + 0x01, 0x30, 0x22, 0x25, 0x32, 0x16, 0x17, 0x14, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x14, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x14, 0x15, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x14, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x14, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x36, 0x35, 0x34, 0x26, 0x27, 0x35, 0x34, 0x36, 0x3F, + 0x01, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x33, 0x32, 0x16, 0x17, 0x14, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x14, 0x33, 0x12, 0x22, 0x26, + 0x34, 0x36, 0x32, 0x16, 0x14, 0x00, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x02, 0x04, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xE9, 0x10, 0x15, 0x03, 0x0E, + 0x09, 0x09, 0x0C, 0x01, 0x0F, 0x09, 0x0A, 0x08, 0xE2, 0x1C, 0x22, 0x0F, 0x14, 0x0E, 0x02, 0x3C, 0x02, 0x0F, 0x09, 0x09, 0x0C, 0x01, 0x27, 0x08, 0x06, + 0x02, 0x2F, 0x03, 0x0F, 0x08, 0x09, 0x0D, 0x01, 0x2C, 0x08, 0x06, 0x01, 0x22, 0x03, 0x0E, 0x09, 0x09, 0x0C, 0x01, 0x22, 0x4A, 0x2F, 0x3C, 0x02, 0x01, + 0xA9, 0x09, 0x0E, 0x02, 0x0E, 0x0A, 0xA0, 0x08, 0x08, 0x7F, 0x09, 0x0E, 0x02, 0x0E, 0x0A, 0x80, 0x08, 0x08, 0x5F, 0x09, 0x0E, 0x02, 0x0E, 0x0A, 0xD0, + 0x21, 0x1D, 0x06, 0x24, 0x1C, 0x30, 0x25, 0x6C, 0x03, 0x04, 0x0A, 0x0E, 0x11, 0x2F, 0xC7, 0x09, 0x0E, 0x02, 0x0E, 0x0A, 0x80, 0x08, 0x08, 0x45, 0x1A, + 0x13, 0x13, 0x1A, 0x13, 0xFE, 0x9C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xE0, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x12, 0x05, 0x42, 0x08, 0x0A, 0x01, 0x01, 0x0D, + 0x0A, 0x03, 0x04, 0x30, 0x03, 0xD2, 0x10, 0x38, 0x21, 0x71, 0x0A, 0x0D, 0x0E, 0x0A, 0x32, 0xBE, 0x09, 0x0A, 0x01, 0x01, 0x0E, 0x09, 0x04, 0x04, 0x7A, + 0x01, 0x01, 0x08, 0x06, 0x97, 0x09, 0x0A, 0x01, 0x01, 0x0E, 0x09, 0x04, 0x03, 0x8A, 0x01, 0x01, 0x08, 0x05, 0x6B, 0x08, 0x0A, 0x01, 0x01, 0x0E, 0x09, + 0x04, 0x03, 0x6C, 0x17, 0x10, 0x51, 0x33, 0x1A, 0x32, 0x0B, 0x08, 0x03, 0x02, 0x0A, 0x0E, 0x10, 0x0B, 0x08, 0x03, 0x02, 0x0A, 0x0E, 0x10, 0x0B, 0x08, + 0x03, 0x02, 0x0A, 0x0E, 0x12, 0x0E, 0x10, 0x1D, 0x2C, 0x05, 0x1A, 0x29, 0x40, 0x0D, 0x21, 0x01, 0x0E, 0x0A, 0x12, 0x05, 0x11, 0x0B, 0x08, 0x03, 0x02, + 0x0A, 0x0E, 0x10, 0x01, 0x10, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xFE, 0x8D, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, + 0xC0, 0x02, 0x81, 0x01, 0xC0, 0x00, 0x37, 0x00, 0x4C, 0x00, 0x00, 0x25, 0x37, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x0F, 0x02, 0x05, 0x16, 0x15, 0x14, + 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x07, 0x17, 0x37, 0x36, + 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x26, 0x27, 0x25, 0x33, 0x01, 0x07, 0x06, 0x23, 0x22, 0x2F, 0x01, + 0x06, 0x23, 0x22, 0x2F, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x01, 0x67, 0x1A, 0x05, 0x09, 0x07, 0x06, 0x05, 0x1B, 0x21, 0x01, 0x4B, 0x06, + 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0xFD, 0xB3, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0x75, 0x15, 0x09, 0x0D, 0x54, 0x4C, 0x1A, 0x58, 0x09, 0x0D, + 0x56, 0x0D, 0x09, 0x37, 0x70, 0x07, 0x09, 0x09, 0x07, 0x62, 0x04, 0x12, 0xFE, 0x18, 0x08, 0x01, 0x7E, 0x09, 0x0B, 0x12, 0x0D, 0x0A, 0x12, 0x13, 0x1F, + 0x17, 0x11, 0x5B, 0x82, 0x07, 0x09, 0x09, 0xFC, 0x18, 0x05, 0x07, 0x07, 0x09, 0x04, 0x19, 0x1E, 0xFF, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x01, + 0xC7, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x5B, 0x15, 0x09, 0x45, 0x14, 0x51, 0x08, 0x09, 0x37, 0x09, 0x07, 0xC0, 0x06, 0x0A, 0x17, 0x0F, 0xBA, + 0xFE, 0xD8, 0x0A, 0x0E, 0x08, 0x10, 0x18, 0x0E, 0x52, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x81, 0x01, 0xC0, + 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1D, 0x00, 0x24, 0x00, 0x2C, 0x00, 0x5B, 0x00, 0x00, 0x11, 0x33, 0x17, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x36, 0x22, 0x06, + 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x35, 0x05, 0x07, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x25, 0x33, 0x11, 0x23, 0x22, 0x26, + 0x35, 0x3A, 0x01, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x25, 0x05, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x01, 0x26, 0x35, 0x34, 0x3F, + 0x01, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x07, 0x17, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x15, 0x26, 0x2F, 0x01, 0x37, 0x36, + 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x18, 0x48, 0x13, 0x0D, 0x40, 0x37, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x40, 0x01, 0x16, 0x09, 0x0B, 0x12, 0x0D, 0x0A, + 0x12, 0x13, 0x1F, 0x17, 0x11, 0x5B, 0x01, 0x8E, 0x60, 0x40, 0x0D, 0x13, 0x29, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0xFE, 0xEF, 0x01, 0x4B, 0x06, 0x03, 0x14, + 0x05, 0x08, 0x05, 0x04, 0xFD, 0xB3, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0x75, 0x15, 0x09, 0x0D, 0x54, 0x4C, 0x1A, 0x58, 0x09, 0x0D, 0x56, 0x0D, + 0x09, 0x37, 0x04, 0x04, 0x92, 0x1A, 0x05, 0x09, 0x07, 0x06, 0x04, 0x01, 0x40, 0x38, 0xA8, 0x0D, 0x13, 0x40, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x17, 0x8F, + 0xD7, 0x0A, 0x0E, 0x08, 0x10, 0x18, 0x0E, 0x52, 0xE0, 0xFF, 0x00, 0x13, 0x0D, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x8C, 0xFF, 0x05, 0x08, 0x05, 0x05, 0x19, + 0x06, 0x03, 0x01, 0xC7, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x5B, 0x15, 0x09, 0x45, 0x14, 0x51, 0x08, 0x09, 0x37, 0xC2, 0x05, 0x03, 0x76, 0x18, + 0x05, 0x07, 0x06, 0x0A, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, + 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x50, 0x00, 0x58, 0x00, 0x00, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x32, 0x16, 0x14, 0x06, 0x22, + 0x26, 0x34, 0x26, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, + 0x34, 0x26, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x27, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x23, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x14, + 0x06, 0x2B, 0x01, 0x15, 0x23, 0x35, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x1E, 0x01, 0x26, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, + 0x02, 0x72, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x62, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x32, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x8E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, + 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x32, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x33, 0x03, 0x13, 0x0D, 0x20, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x26, 0x1A, + 0x40, 0xE0, 0x40, 0x70, 0x50, 0x2A, 0x34, 0x59, 0x1D, 0x0E, 0x35, 0xC4, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x90, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x7E, 0x0E, + 0x14, 0x0E, 0x0E, 0x14, 0x46, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x5A, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x76, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x36, 0x0E, 0x14, + 0x0E, 0x0E, 0x14, 0x3B, 0x06, 0x07, 0x0D, 0x13, 0x20, 0x13, 0x1A, 0x13, 0x1A, 0x26, 0x20, 0xB1, 0x3A, 0x55, 0x50, 0x70, 0x2F, 0x29, 0x14, 0x99, 0x25, + 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x81, 0x01, 0xC0, 0x00, 0x20, 0x00, 0x28, 0x00, 0x30, 0x00, 0x38, 0x00, + 0x4B, 0x00, 0x53, 0x00, 0x00, 0x25, 0x17, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, + 0x1F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x1E, 0x01, 0x17, 0x16, 0x06, 0x27, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x04, 0x22, 0x26, 0x34, + 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x04, 0x14, 0x16, 0x3B, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x23, 0x35, 0x26, + 0x35, 0x34, 0x37, 0x05, 0x23, 0x22, 0x04, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x01, 0xC6, 0xB4, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0xFD, + 0xB3, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0x27, 0x31, 0x3B, 0x2A, 0x34, 0x59, 0x1D, 0x0E, 0x35, 0x06, 0x07, 0x0F, 0x9C, 0x07, 0x13, 0x0D, 0x0F, + 0x09, 0x01, 0x6A, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x4E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0xFE, 0xE0, 0x13, 0x0D, 0x60, 0x26, 0x1A, 0x40, 0xE0, 0x40, 0x15, + 0x01, 0x3F, 0x14, 0x0D, 0x01, 0x2B, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x81, 0x8B, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x01, 0xC7, 0x05, 0x08, 0x05, + 0x05, 0x19, 0x06, 0x03, 0x1E, 0x21, 0x2F, 0x29, 0x14, 0x99, 0x0E, 0x0E, 0x1B, 0x6A, 0x09, 0x09, 0x0D, 0x13, 0x0C, 0x84, 0x0E, 0x14, 0x0E, 0x0E, 0x14, + 0x4E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x11, 0x1A, 0x13, 0x1A, 0x26, 0x20, 0xB1, 0x3A, 0x55, 0x2E, 0x28, 0xF6, 0x08, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, + 0x00, 0x04, 0xFF, 0xFC, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x36, 0x00, 0x00, 0x11, 0x36, 0x37, 0x17, 0x15, + 0x23, 0x35, 0x26, 0x05, 0x16, 0x15, 0x14, 0x31, 0x21, 0x27, 0x3E, 0x01, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x1E, 0x01, 0x26, 0x32, 0x36, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x17, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x07, 0x23, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x07, 0x0E, 0x01, 0x2B, 0x01, 0x35, 0x21, 0x07, + 0x01, 0x03, 0xDC, 0xA0, 0x43, 0x02, 0x00, 0x03, 0xFE, 0xEF, 0xE2, 0x16, 0x67, 0x3E, 0x42, 0x34, 0x59, 0x1D, 0x0E, 0x35, 0xC4, 0x1A, 0x13, 0x13, 0x1A, + 0x13, 0x30, 0x07, 0x09, 0x09, 0x07, 0x95, 0x0A, 0x8B, 0x07, 0x09, 0x09, 0x07, 0x80, 0x01, 0x07, 0x21, 0x15, 0x92, 0x01, 0x00, 0x10, 0x01, 0x08, 0x0E, + 0x0E, 0xA1, 0xC3, 0xB1, 0x3D, 0x01, 0x06, 0x06, 0x01, 0xA4, 0x37, 0x45, 0x2F, 0x29, 0x14, 0x99, 0x25, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xA3, 0x09, 0x0E, + 0x09, 0x20, 0x09, 0x0E, 0x09, 0x04, 0x14, 0x18, 0xC0, 0x30, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, + 0x29, 0x00, 0x79, 0x00, 0x00, 0x24, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x26, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x16, 0x15, 0x14, + 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x21, 0x35, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x1E, 0x01, 0x27, 0x32, 0x36, + 0x34, 0x26, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x34, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, + 0x06, 0x2F, 0x01, 0x26, 0x22, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x14, + 0x16, 0x32, 0x3F, 0x01, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x32, 0x36, 0x34, 0x2F, 0x01, 0x26, + 0x36, 0x33, 0x01, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x37, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0x3D, 0x03, 0x13, 0x0D, 0x20, 0x26, 0x1A, 0x40, 0xFF, + 0x00, 0x40, 0x70, 0x50, 0x4A, 0x34, 0x59, 0x1D, 0x0E, 0x35, 0x87, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, + 0x0F, 0x28, 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, + 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0xD0, 0x09, 0x0E, + 0x09, 0x09, 0x0E, 0x49, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x5A, 0x06, 0x07, 0x0D, 0x13, 0x40, 0x1A, 0x26, 0x40, 0xB1, 0x39, 0x56, 0x50, 0x70, 0x2F, 0x29, + 0x15, 0x98, 0x15, 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, + 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, 0x07, + 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, + 0x01, 0xC0, 0x00, 0x2B, 0x00, 0x33, 0x00, 0x41, 0x00, 0x00, 0x25, 0x16, 0x17, 0x06, 0x0F, 0x01, 0x06, 0x07, 0x26, 0x2F, 0x01, 0x15, 0x14, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x3D, 0x01, 0x07, 0x06, 0x07, 0x26, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x37, 0x25, 0x36, 0x32, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x1D, 0x01, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, + 0x33, 0x02, 0x3B, 0x04, 0x01, 0x01, 0x03, 0x16, 0x05, 0x06, 0x06, 0x05, 0x10, 0x13, 0x0D, 0xFE, 0x80, 0x0D, 0x13, 0x10, 0x05, 0x05, 0x07, 0x05, 0x16, + 0x04, 0x05, 0x01, 0x00, 0x0C, 0x1E, 0x0C, 0x65, 0x09, 0x07, 0x40, 0x07, 0x09, 0xC6, 0x34, 0x26, 0x26, 0x34, 0x26, 0x30, 0x07, 0x09, 0x38, 0x28, 0x40, + 0x28, 0x38, 0x09, 0x07, 0xD4, 0x05, 0x07, 0x06, 0x05, 0x18, 0x04, 0x01, 0x01, 0x03, 0x0E, 0xD2, 0x0D, 0x13, 0x13, 0x0D, 0xD2, 0x0E, 0x03, 0x01, 0x01, + 0x04, 0x18, 0x05, 0x06, 0x07, 0x05, 0xE2, 0x0A, 0x0A, 0x5A, 0x34, 0x07, 0x09, 0x09, 0x07, 0x88, 0x08, 0x26, 0x34, 0x26, 0x26, 0x34, 0xEA, 0x09, 0x07, + 0x28, 0x38, 0x38, 0x28, 0x07, 0x09, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x33, 0x00, 0x4D, 0x00, 0x51, + 0x00, 0x00, 0x25, 0x15, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x07, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x35, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x17, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x23, 0x22, 0x07, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, + 0x01, 0x14, 0x16, 0x33, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, + 0x01, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x23, 0x15, 0x01, 0x10, 0xB0, 0x0D, 0x13, 0x16, 0x04, 0x05, 0x06, 0x05, 0x12, 0x04, 0x05, 0xD4, 0x0A, 0x1B, + 0x0A, 0x58, 0x09, 0x07, 0x20, 0x07, 0x09, 0x3B, 0x05, 0x04, 0x06, 0x89, 0x1B, 0x12, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA5, 0x05, 0x06, + 0x19, 0x12, 0xFE, 0xD6, 0x12, 0x19, 0x06, 0x05, 0x25, 0x11, 0x0C, 0xE6, 0x0C, 0x11, 0x30, 0xC0, 0xA0, 0x80, 0x13, 0x0D, 0xA4, 0x13, 0x03, 0x04, 0x16, + 0x04, 0x05, 0x06, 0x05, 0xBB, 0x09, 0x09, 0x4E, 0x27, 0x07, 0x09, 0x09, 0x07, 0x60, 0x34, 0x05, 0x06, 0x05, 0x04, 0x08, 0x15, 0x25, 0x07, 0x09, 0x09, + 0x07, 0x40, 0x07, 0x09, 0xA0, 0x06, 0x05, 0x0A, 0x12, 0x19, 0x19, 0x12, 0x0A, 0x05, 0x06, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0xA0, 0x90, 0x90, 0x00, 0x00, + 0x00, 0x06, 0x00, 0x00, 0xFF, 0xB6, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x39, 0x00, 0x89, 0x00, 0x91, 0x00, 0x99, 0x00, 0xC7, 0x00, 0x00, 0x01, + 0x26, 0x22, 0x07, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x03, 0x16, 0x33, 0x32, 0x37, 0x06, 0x0F, 0x01, 0x06, 0x26, 0x35, 0x34, 0x37, 0x36, + 0x37, 0x3E, 0x08, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x26, 0x23, 0x22, 0x06, 0x14, 0x1F, 0x01, 0x23, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x07, 0x06, 0x14, + 0x36, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x06, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x0F, 0x01, 0x06, 0x22, 0x26, 0x34, 0x3F, 0x01, + 0x36, 0x26, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x36, 0x2F, 0x01, 0x26, 0x34, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x3D, 0x01, 0x34, + 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x16, 0x3B, 0x01, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x06, 0x1F, 0x01, 0x16, 0x26, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x05, 0x16, 0x15, 0x14, + 0x06, 0x2F, 0x01, 0x26, 0x27, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x2F, 0x01, 0x33, 0x32, 0x36, 0x34, 0x26, 0x2B, 0x01, 0x37, 0x36, 0x34, 0x26, 0x23, + 0x22, 0x07, 0x35, 0x34, 0x36, 0x33, 0x32, 0x1E, 0x07, 0x17, 0x16, 0x01, 0x58, 0x0B, 0x1A, 0x0B, 0x09, 0x07, 0x10, 0x07, 0x09, 0x94, 0x0D, 0x14, 0x04, + 0x04, 0x14, 0x20, 0x3C, 0x2F, 0x4E, 0x04, 0x21, 0x45, 0x01, 0x0C, 0x02, 0x0B, 0x04, 0x0B, 0x08, 0x0B, 0x0D, 0x07, 0x1D, 0x29, 0x0C, 0x0F, 0x14, 0x1C, + 0x0F, 0x08, 0x0C, 0x14, 0x1C, 0x1C, 0x14, 0x0C, 0x08, 0x0E, 0xF5, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, + 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x09, 0x0E, + 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, 0x09, 0x05, 0x92, 0x0E, + 0x09, 0x09, 0x0E, 0x09, 0x49, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0x2C, 0x04, 0x4E, 0x2F, 0x3C, 0x20, 0x14, 0x04, 0x04, 0x14, 0x1C, 0x0F, 0x08, 0x0C, + 0x14, 0x1C, 0x1C, 0x14, 0x0C, 0x08, 0x0F, 0x1D, 0x13, 0x0F, 0x0C, 0x29, 0x1D, 0x07, 0x0D, 0x0B, 0x08, 0x0B, 0x04, 0x0B, 0x02, 0x0C, 0x01, 0x45, 0x01, + 0x29, 0x07, 0x07, 0x87, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x54, 0x0F, 0x01, 0x1A, 0x09, 0x0F, 0x0D, 0x37, 0x2E, 0x0F, 0x0F, 0x7B, 0x6C, 0x02, 0x12, 0x04, + 0x0F, 0x04, 0x0A, 0x03, 0x05, 0x02, 0x26, 0x1C, 0x1B, 0x08, 0x1C, 0x28, 0x0E, 0x09, 0x1C, 0x28, 0x1C, 0x09, 0x0E, 0x27, 0x0D, 0x0A, 0x05, 0x09, 0x0F, + 0x11, 0x15, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x15, 0x11, 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, + 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, + 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x64, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x49, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x1F, 0x0F, 0x0F, 0x2E, 0x37, 0x0D, + 0x0F, 0x09, 0x1A, 0x01, 0x1C, 0x14, 0x14, 0x0E, 0x09, 0x1C, 0x28, 0x1C, 0x09, 0x0E, 0x27, 0x1D, 0x08, 0x1B, 0x1C, 0x26, 0x02, 0x05, 0x03, 0x0A, 0x04, + 0x0F, 0x04, 0x12, 0x02, 0x6C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x23, 0x00, 0x2B, 0x00, 0x47, + 0x00, 0x67, 0x00, 0x00, 0x12, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x14, 0x1F, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x14, 0x06, 0x0F, 0x01, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x37, 0x36, 0x34, 0x2F, 0x01, 0x2E, 0x01, 0x35, 0x3E, 0x01, + 0x33, 0x07, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x16, + 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x32, 0x17, 0x7A, 0x34, 0x26, 0x26, 0x34, 0x26, 0x40, 0x0E, 0x32, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x0D, 0x13, 0x26, + 0x1A, 0x40, 0x14, 0x20, 0x07, 0x04, 0x01, 0x48, 0x01, 0x8C, 0x34, 0x26, 0x26, 0x34, 0x26, 0x20, 0x1A, 0x26, 0x13, 0x0D, 0x13, 0x0D, 0x40, 0x0D, 0x13, + 0x32, 0x0E, 0x0E, 0x48, 0x01, 0x04, 0x07, 0x20, 0x14, 0x04, 0x04, 0x04, 0x48, 0x03, 0x0A, 0x07, 0x80, 0x07, 0x0A, 0x03, 0x48, 0x04, 0x04, 0x48, 0x03, + 0x0A, 0x07, 0x80, 0x07, 0x0A, 0x03, 0x01, 0x40, 0x26, 0x34, 0x26, 0x26, 0x34, 0xC3, 0x26, 0x0D, 0x30, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x13, 0x0D, + 0x60, 0x1A, 0x26, 0x16, 0x12, 0x01, 0x02, 0x01, 0x44, 0x90, 0x26, 0x34, 0x26, 0x26, 0x34, 0x46, 0x26, 0x1A, 0x60, 0x0D, 0x13, 0x80, 0x0D, 0x13, 0x13, + 0x0D, 0x60, 0x30, 0x0D, 0x26, 0x0D, 0x44, 0x01, 0x02, 0x01, 0x12, 0x16, 0x87, 0x04, 0x0A, 0x04, 0x44, 0x03, 0x07, 0x05, 0x24, 0x24, 0x05, 0x07, 0x03, + 0x44, 0x04, 0x0A, 0x04, 0x44, 0x03, 0x07, 0x05, 0x24, 0x24, 0x05, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x81, 0x01, + 0xC0, 0x00, 0x1A, 0x00, 0x40, 0x00, 0x00, 0x13, 0x34, 0x35, 0x34, 0x37, 0x05, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x23, 0x07, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x35, 0x37, 0x05, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, + 0x36, 0x33, 0x32, 0x1F, 0x01, 0x27, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x20, 0x02, 0x01, + 0x45, 0x42, 0x05, 0x09, 0x42, 0x06, 0x0A, 0x01, 0x31, 0x67, 0x2B, 0x05, 0x08, 0x28, 0x07, 0x09, 0x20, 0x02, 0x3A, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, + 0x04, 0xFD, 0xB3, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0xBE, 0x25, 0x01, 0x0A, 0x06, 0x42, 0x09, 0x05, 0x69, 0x72, 0x1E, 0x42, 0x42, 0x1E, 0x39, + 0x01, 0x2C, 0x02, 0x02, 0x04, 0x04, 0xFB, 0x75, 0x08, 0x09, 0x07, 0x02, 0x02, 0xAC, 0x3A, 0x06, 0x09, 0x07, 0x02, 0x02, 0x6C, 0xCA, 0x05, 0x08, 0x05, + 0x05, 0x19, 0x06, 0x03, 0x01, 0xC7, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x93, 0x82, 0x02, 0x02, 0x07, 0x09, 0x08, 0xB8, 0x27, 0x32, 0x27, 0x00, + 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC1, 0x00, 0x13, 0x00, 0x37, 0x00, 0x4E, 0x00, 0x00, 0x13, 0x32, 0x16, 0x1F, 0x01, 0x14, 0x15, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x35, 0x37, 0x3E, 0x01, 0x33, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, + 0x06, 0x1D, 0x01, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x33, 0x32, 0x36, 0x37, + 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x23, 0x15, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x33, 0x32, 0x17, 0xEC, 0x18, 0x25, + 0x02, 0x15, 0x26, 0x1A, 0xC0, 0x1B, 0x25, 0x15, 0x02, 0x24, 0x19, 0x9C, 0x08, 0x05, 0x28, 0x08, 0x06, 0x1A, 0x06, 0x08, 0x28, 0x05, 0x08, 0x08, 0x05, + 0x28, 0x08, 0x06, 0x1A, 0x06, 0x08, 0x28, 0x05, 0x08, 0x8B, 0x05, 0x05, 0x16, 0x05, 0x0D, 0x05, 0x2B, 0x43, 0x80, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x43, + 0x1A, 0x13, 0x01, 0x20, 0x21, 0x19, 0xE0, 0x03, 0x03, 0x1A, 0x26, 0x26, 0x1A, 0x03, 0x03, 0xE0, 0x19, 0x21, 0xAD, 0x1B, 0x05, 0x08, 0x28, 0x05, 0x08, + 0x08, 0x05, 0x28, 0x08, 0x05, 0x1B, 0x06, 0x07, 0x28, 0x06, 0x08, 0x08, 0x06, 0x28, 0x07, 0xF5, 0x05, 0x0D, 0x05, 0x16, 0x05, 0x05, 0x2B, 0x20, 0x60, + 0x0D, 0x13, 0x13, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x13, 0x00, 0x1F, 0x00, 0x36, 0x00, + 0x00, 0x13, 0x32, 0x16, 0x1F, 0x01, 0x14, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x35, 0x37, 0x3E, 0x01, 0x33, 0x12, 0x32, 0x36, 0x35, + 0x34, 0x27, 0x26, 0x22, 0x07, 0x06, 0x15, 0x14, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x23, 0x15, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x15, 0x33, 0x32, 0x17, 0xEC, 0x19, 0x24, 0x02, 0x15, 0x26, 0x1A, 0xC0, 0x1A, 0x26, 0x15, 0x02, 0x24, 0x19, 0x33, 0x32, 0x23, 0x34, 0x03, + 0x0A, 0x03, 0x34, 0x01, 0x17, 0x05, 0x05, 0x16, 0x05, 0x0D, 0x05, 0x2B, 0x43, 0x80, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x43, 0x1A, 0x13, 0x01, 0x20, 0x22, + 0x18, 0xE0, 0x03, 0x03, 0x1A, 0x26, 0x25, 0x1B, 0x03, 0x03, 0xE0, 0x18, 0x22, 0xFF, 0x00, 0x22, 0x19, 0x1C, 0x45, 0x04, 0x04, 0x46, 0x1B, 0x19, 0x01, + 0x20, 0x05, 0x0D, 0x05, 0x16, 0x05, 0x05, 0x2B, 0x20, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0F, 0xFF, 0xC0, 0x01, + 0xF0, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x1F, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x25, 0x16, 0x15, 0x14, + 0x0E, 0x02, 0x07, 0x06, 0x22, 0x27, 0x2E, 0x03, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x32, 0x36, 0x34, 0x26, 0x2B, 0x01, 0x22, + 0x26, 0x3F, 0x01, 0x36, 0x34, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x22, + 0x06, 0x14, 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x14, 0x16, 0x32, 0x3F, 0x01, 0x36, + 0x16, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x32, 0x36, 0x34, 0x2F, 0x01, 0x26, 0x36, 0x33, 0x22, 0x32, 0x16, + 0x14, 0x06, 0x22, 0x26, 0x34, 0xD9, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0x02, 0x1E, 0x2C, 0x46, 0x48, 0x24, 0x08, 0x14, 0x08, 0x2A, 0x4D, 0x40, 0x27, + 0x10, 0x0E, 0xC0, 0x09, 0x09, 0x0A, 0x08, 0x6E, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x09, + 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, 0x09, 0x05, 0x0A, + 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x5B, 0x0E, 0x09, 0x09, 0x0E, 0x09, + 0x01, 0x00, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x75, 0x0C, 0x20, 0x4E, 0x89, 0x5B, 0x3C, 0x0E, 0x04, 0x04, 0x11, 0x43, 0x5F, 0x82, 0x47, 0x0F, 0x18, 0x05, + 0x50, 0x04, 0x04, 0xFC, 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, + 0x10, 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, + 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x02, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x09, 0x00, 0x50, 0x00, 0x00, 0x37, 0x35, 0x21, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x25, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x37, 0x36, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x22, + 0x06, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x20, 0x01, 0xC0, 0x38, 0x28, 0xFF, 0x00, + 0x28, 0x38, 0x01, 0xD0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x09, 0x07, 0x60, 0x40, 0x07, 0x09, 0x09, 0x07, 0x50, 0x0D, 0x13, 0x40, 0x2B, + 0x22, 0x09, 0x0A, 0x28, 0x38, 0x09, 0x07, 0x20, 0x07, 0x09, 0x13, 0x1A, 0x13, 0x40, 0x13, 0x0D, 0x50, 0x07, 0x09, 0x09, 0x07, 0x40, 0x20, 0x20, 0x20, + 0x28, 0x38, 0x38, 0xA8, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x09, 0x07, 0x10, 0x07, 0x09, 0x13, 0x0D, 0x30, 0xBC, 0x24, + 0x38, 0x06, 0x02, 0x38, 0x28, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x0D, 0x13, 0x13, 0x0D, 0xC0, 0x30, 0x0D, 0x13, 0x09, 0x07, 0x10, 0x07, 0x09, 0x20, + 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x20, 0x00, 0x28, 0x00, 0x30, 0x00, 0x38, 0x00, 0x44, 0x00, 0x00, 0x01, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x14, 0x17, 0x23, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, + 0x35, 0x34, 0x26, 0x27, 0x36, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x26, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x36, 0x22, 0x26, 0x34, + 0x36, 0x32, 0x16, 0x14, 0x05, 0x33, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, 0x01, 0xA0, 0x28, 0x38, 0x38, 0x28, 0xFE, 0xC0, 0x28, + 0x38, 0x38, 0x28, 0x80, 0x19, 0x59, 0x28, 0x38, 0x38, 0x28, 0xC0, 0x28, 0x38, 0x23, 0x1C, 0x1F, 0x46, 0x34, 0x26, 0x26, 0x34, 0x26, 0x9C, 0x28, 0x1C, + 0x1C, 0x28, 0x1C, 0x8D, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xFF, 0x00, 0xC0, 0x1A, 0x26, 0x26, 0x1A, 0xC0, 0x1A, 0x26, 0x26, 0x01, 0x00, 0x38, 0x28, 0x80, + 0x28, 0x38, 0x38, 0x28, 0x80, 0x28, 0x38, 0x25, 0x1B, 0x38, 0x50, 0x38, 0x38, 0x28, 0x1E, 0x32, 0x0A, 0x1C, 0x16, 0x26, 0x34, 0x26, 0x26, 0x34, 0x7A, + 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x04, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xF3, 0x26, 0x34, 0x26, 0x26, 0x34, 0x26, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0D, + 0xFF, 0xBE, 0x01, 0xB1, 0x01, 0xC0, 0x00, 0x29, 0x00, 0x53, 0x00, 0x5E, 0x00, 0x67, 0x00, 0x00, 0x01, 0x16, 0x15, 0x14, 0x06, 0x27, 0x2E, 0x01, 0x37, + 0x3E, 0x01, 0x37, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x16, 0x17, 0x37, + 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x02, 0x23, 0x36, 0x37, 0x3E, 0x02, 0x35, 0x34, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, + 0x34, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x0E, 0x01, 0x07, 0x14, 0x15, 0x14, 0x16, 0x33, 0x30, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x37, 0x35, + 0x34, 0x26, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x32, 0x26, 0x32, 0x1D, 0x01, 0x14, 0x23, 0x22, 0x3D, 0x01, 0x01, 0x8E, 0x22, 0x7C, 0x57, 0x56, 0x79, + 0x02, 0x02, 0x65, 0x49, 0x20, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x20, 0x38, 0x2C, 0x18, 0x05, 0x0D, 0x05, 0x17, 0x04, 0x04, 0x1B, + 0xC3, 0x31, 0x03, 0x18, 0x0E, 0x0A, 0x0A, 0x38, 0x38, 0x08, 0x19, 0x08, 0x01, 0x0C, 0x08, 0x04, 0x09, 0x12, 0x13, 0x11, 0x02, 0x0A, 0x06, 0x01, 0x52, + 0x09, 0x83, 0x1C, 0x1C, 0x38, 0x37, 0x39, 0x45, 0x1A, 0x0D, 0x0D, 0x01, 0x01, 0x33, 0x3E, 0x57, 0x7A, 0x01, 0x01, 0x80, 0x55, 0x4C, 0x70, 0x0C, 0x22, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x22, 0x09, 0x24, 0x19, 0x04, 0x04, 0x17, 0x05, 0x0D, 0x05, 0x1A, 0xBC, 0x14, 0x20, 0x13, + 0x10, 0x1D, 0x11, 0x3D, 0x3C, 0x04, 0x08, 0x08, 0x05, 0x17, 0x0B, 0x0E, 0x11, 0x14, 0x19, 0x1B, 0x27, 0x19, 0x01, 0x01, 0x06, 0x0A, 0x08, 0x16, 0x08, + 0x1A, 0x6B, 0x1D, 0x20, 0x3F, 0x6A, 0x3F, 0xC2, 0x13, 0x74, 0x15, 0x14, 0x74, 0x00, 0x00, 0x03, 0xFF, 0xFA, 0xFF, 0xC0, 0x02, 0x86, 0x01, 0xC1, 0x00, + 0x05, 0x00, 0x2C, 0x00, 0x3A, 0x00, 0x00, 0x13, 0x17, 0x23, 0x22, 0x26, 0x37, 0x01, 0x17, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x01, + 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x33, 0x21, 0x32, 0x1F, 0x01, 0x16, 0x06, 0x23, 0x21, 0x17, 0x33, 0x15, 0x17, + 0x35, 0x33, 0x05, 0x35, 0x17, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x33, 0x15, 0x12, 0x58, 0x4A, 0x13, 0x12, 0x0B, 0x02, 0x3A, 0x3A, + 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0xFD, 0xB3, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0x23, 0x0B, 0x09, 0x11, 0x01, 0x96, 0x11, 0x09, 0x56, + 0x0A, 0x12, 0x13, 0xFE, 0xC2, 0x29, 0x35, 0x80, 0x40, 0xFF, 0x00, 0x40, 0x13, 0x0D, 0xFF, 0x00, 0x0D, 0x13, 0x40, 0x01, 0x44, 0x44, 0x22, 0x10, 0xFE, + 0xF1, 0x2D, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x01, 0xC7, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x1B, 0x10, 0x0E, 0x0E, 0x80, 0x10, 0x22, + 0x20, 0x29, 0x63, 0x8C, 0xA0, 0x1B, 0x32, 0x49, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x00, 0xA0, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x60, 0x01, 0xC0, + 0x00, 0x0D, 0x00, 0x16, 0x00, 0x46, 0x00, 0x00, 0x37, 0x33, 0x17, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x27, 0x23, 0x22, + 0x27, 0x2E, 0x01, 0x37, 0x17, 0x06, 0x05, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, + 0x1F, 0x01, 0x37, 0x36, 0x33, 0x21, 0x32, 0x1F, 0x01, 0x16, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x06, 0x23, 0x22, 0x27, 0x17, 0x35, 0x16, 0x33, 0x32, + 0x37, 0x36, 0x37, 0x15, 0x7A, 0xE2, 0x9E, 0xFE, 0x61, 0x0C, 0x12, 0x07, 0x08, 0x09, 0x09, 0x0E, 0x0E, 0x1C, 0x01, 0x06, 0x07, 0x2B, 0x24, 0x17, 0x86, + 0x1C, 0x01, 0xD8, 0x06, 0x03, 0x13, 0x04, 0x08, 0x05, 0x04, 0xFD, 0xD1, 0x06, 0x03, 0x13, 0x04, 0x08, 0x05, 0x04, 0x22, 0x09, 0x09, 0x11, 0x01, 0x80, + 0x11, 0x09, 0x3D, 0x19, 0x24, 0x2D, 0x06, 0x07, 0x2A, 0x1C, 0x1C, 0x2A, 0x0D, 0x0C, 0x89, 0x0E, 0x0E, 0x09, 0x09, 0x08, 0x07, 0x40, 0x80, 0x13, 0x0D, + 0xC5, 0x03, 0x01, 0x01, 0x04, 0x1C, 0x01, 0x06, 0x59, 0x28, 0x6D, 0x1B, 0xCA, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x01, 0xC7, 0x05, 0x08, 0x05, + 0x05, 0x19, 0x06, 0x03, 0x1C, 0x10, 0x0F, 0x0F, 0x68, 0x28, 0x5A, 0x06, 0x01, 0x21, 0x21, 0x04, 0x70, 0x50, 0x04, 0x01, 0x01, 0x03, 0x82, 0x00, 0x03, + 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x81, 0x01, 0xC0, 0x00, 0x14, 0x00, 0x3B, 0x00, 0x43, 0x00, 0x00, 0x13, 0x34, 0x37, 0x05, 0x06, 0x07, 0x06, 0x23, 0x21, + 0x22, 0x26, 0x35, 0x34, 0x37, 0x3E, 0x05, 0x35, 0x05, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, + 0x33, 0x32, 0x1F, 0x01, 0x36, 0x33, 0x21, 0x0E, 0x01, 0x1D, 0x01, 0x17, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x26, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x40, 0x01, 0x01, 0x3C, 0x04, 0x12, 0x07, 0x17, 0xFE, 0xE7, 0x07, 0x09, 0x01, 0x03, 0x0D, 0x03, 0x08, 0x02, 0x02, 0x02, + 0x3A, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0xFD, 0xB3, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0x36, 0x1A, 0x23, 0x01, 0x1C, 0x1C, 0x20, 0x32, + 0x12, 0x38, 0x50, 0x38, 0x2B, 0x21, 0x21, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0x00, 0x0F, 0x11, 0xF5, 0x1F, 0x36, 0x16, 0x09, 0x07, 0x03, 0x02, 0x09, + 0x26, 0x0C, 0x19, 0x0D, 0x14, 0x0A, 0x5E, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x01, 0xC7, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x2A, 0x2D, + 0x1D, 0x65, 0x3E, 0x49, 0x27, 0x33, 0x3D, 0x50, 0x70, 0x70, 0x50, 0x45, 0x68, 0x0E, 0x7B, 0x25, 0x36, 0x25, 0x25, 0x36, 0x00, 0x00, 0x00, 0x00, 0x06, + 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x81, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x15, 0x00, 0x1D, 0x00, 0x3F, 0x00, 0x4A, 0x00, 0x58, 0x00, 0x00, 0x37, 0x06, 0x23, + 0x22, 0x26, 0x35, 0x34, 0x37, 0x17, 0x0E, 0x01, 0x07, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, + 0x16, 0x14, 0x07, 0x17, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x3E, + 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x17, 0x1E, 0x01, 0x05, 0x34, 0x36, 0x37, 0x17, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x25, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x2E, 0x01, 0x27, 0x36, 0x33, 0x85, 0x11, 0x14, 0x1B, 0x25, 0x04, 0x89, 0x1E, 0x28, 0x05, 0x42, 0x0D, 0x13, 0x26, + 0x1A, 0x40, 0x1A, 0x01, 0xA0, 0x34, 0x26, 0x26, 0x34, 0x26, 0x6B, 0x85, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0xFD, 0xB3, 0x06, 0x03, 0x14, 0x05, + 0x08, 0x05, 0x04, 0xA4, 0x06, 0x3E, 0x2B, 0x2E, 0x42, 0x27, 0x20, 0x37, 0x1C, 0x2D, 0xFE, 0x97, 0x3C, 0x2C, 0xF5, 0x07, 0x06, 0xFE, 0xE0, 0x14, 0x1C, + 0x01, 0xC0, 0x1A, 0x26, 0x13, 0x0D, 0x42, 0x05, 0x28, 0x1E, 0x13, 0x1A, 0xEC, 0x0C, 0x25, 0x1B, 0x0B, 0x0B, 0x89, 0x10, 0x3A, 0x23, 0x13, 0x0D, 0x20, + 0x1A, 0x26, 0x20, 0x26, 0x34, 0x26, 0x26, 0x34, 0xA9, 0x67, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x01, 0xC7, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, + 0x03, 0x7F, 0x2A, 0x38, 0x42, 0x2E, 0x23, 0x38, 0x0C, 0x2B, 0x05, 0x23, 0x49, 0x2C, 0x42, 0x04, 0xBD, 0x02, 0x1C, 0x14, 0xB0, 0x26, 0x1A, 0x20, 0x0D, + 0x13, 0x23, 0x3A, 0x10, 0x13, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x01, 0x01, 0xC1, 0x00, 0x57, 0x00, 0x5F, 0x00, 0x67, 0x00, + 0x00, 0x25, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x06, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x06, 0x1D, 0x01, 0x14, + 0x06, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x26, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x36, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x16, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x16, 0x33, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xE4, 0x0C, 0x11, 0x11, 0x0C, 0x16, 0x26, 0x1D, 0x1B, 0x0F, 0x08, 0x11, 0x0C, 0x0B, 0x08, 0x0F, 0x1B, 0x47, 0x10, + 0x18, 0x10, 0x47, 0x1B, 0x0F, 0x08, 0x0B, 0x0C, 0x11, 0x08, 0x0F, 0x1B, 0x1D, 0x26, 0x16, 0x0C, 0x11, 0x11, 0x0C, 0x16, 0x26, 0x1D, 0x1B, 0x0F, 0x08, + 0x11, 0x0C, 0x0B, 0x08, 0x0F, 0x1B, 0x47, 0x10, 0x18, 0x10, 0x47, 0x1B, 0x0F, 0x08, 0x0B, 0x0C, 0x11, 0x08, 0x0F, 0x1B, 0x1D, 0x26, 0xFE, 0xFE, 0x28, + 0x1C, 0x1C, 0x28, 0x1C, 0x76, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0xDC, 0x10, 0x18, 0x10, 0x47, 0x1B, 0x0F, 0x08, 0x0B, 0x0C, 0x11, 0x08, 0x0F, 0x1B, 0x1D, + 0x26, 0x16, 0x0B, 0x11, 0x11, 0x0B, 0x16, 0x26, 0x1D, 0x1B, 0x0F, 0x08, 0x11, 0x0C, 0x0B, 0x08, 0x0F, 0x1B, 0x47, 0x10, 0x18, 0x10, 0x47, 0x1B, 0x0F, + 0x08, 0x0B, 0x0C, 0x11, 0x08, 0x0F, 0x1B, 0x1D, 0x26, 0x16, 0x0B, 0x11, 0x11, 0x0B, 0x16, 0x26, 0x1D, 0x1B, 0x0F, 0x08, 0x11, 0x0C, 0x0B, 0x08, 0x0F, + 0x1B, 0x47, 0x2C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x54, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xF9, 0xFF, 0xBF, 0x02, 0x87, + 0x01, 0xC7, 0x00, 0x24, 0x00, 0x58, 0x00, 0x61, 0x00, 0x00, 0x37, 0x36, 0x37, 0x17, 0x0E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x26, 0x0F, 0x01, 0x30, 0x07, 0x30, 0x15, 0x06, 0x2E, 0x01, 0x36, 0x3F, 0x01, 0x36, 0x26, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, 0x33, 0x01, 0x0E, 0x01, + 0x27, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x3F, + 0x01, 0x36, 0x32, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x16, 0x3B, 0x01, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x06, 0x07, 0x17, 0x16, 0x07, 0x25, + 0x34, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x72, 0x0F, 0x0D, 0xF5, 0x11, 0x16, 0x10, 0x18, 0x10, 0x47, 0x1B, 0x0F, 0x01, 0x09, 0x18, 0x10, 0x01, + 0x09, 0x0F, 0x1B, 0x1D, 0x26, 0x16, 0x0B, 0x11, 0x11, 0x0B, 0x02, 0x0D, 0x04, 0x0D, 0x05, 0xFD, 0xB3, 0x0C, 0x09, 0x14, 0x0A, 0x0D, 0x5D, 0x08, 0x18, + 0x08, 0x0F, 0x1B, 0x47, 0x10, 0x18, 0x10, 0x47, 0x1B, 0x0F, 0x08, 0x16, 0x08, 0x09, 0x01, 0x08, 0x0F, 0x1B, 0x1D, 0x26, 0x16, 0x0B, 0x11, 0x11, 0x0B, + 0x16, 0x16, 0x1E, 0x03, 0xA3, 0x0C, 0x09, 0xFE, 0xD2, 0x01, 0x1C, 0x14, 0x08, 0x08, 0xDC, 0x01, 0x07, 0xBD, 0x06, 0x1C, 0x13, 0x16, 0x0B, 0x11, 0x11, + 0x0B, 0x16, 0x26, 0x1D, 0x1B, 0x0F, 0x01, 0x01, 0x08, 0x01, 0x12, 0x17, 0x08, 0x0F, 0x1B, 0x47, 0x10, 0x18, 0x10, 0xFE, 0xEA, 0x05, 0x02, 0x04, 0x01, + 0xC7, 0x0A, 0x0C, 0x1A, 0x0C, 0x09, 0x49, 0x09, 0x08, 0x0F, 0x1B, 0x1D, 0x26, 0x16, 0x0B, 0x11, 0x11, 0x0B, 0x16, 0x26, 0x1D, 0x1B, 0x0F, 0x07, 0x07, + 0x08, 0x18, 0x08, 0x10, 0x1A, 0x47, 0x10, 0x18, 0x10, 0x1C, 0x14, 0x7E, 0x0A, 0x0C, 0xFC, 0x01, 0x02, 0x01, 0x14, 0x1C, 0x03, 0x00, 0x00, 0x05, 0x00, + 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x4F, 0x00, 0x57, 0x00, 0xA7, 0x00, 0xAF, 0x00, 0xB7, 0x00, 0x00, 0x25, 0x32, 0x16, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x06, 0x1F, 0x01, 0x16, 0x14, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x06, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x0F, 0x01, + 0x06, 0x22, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x26, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x36, 0x2F, 0x01, 0x26, 0x34, 0x36, 0x32, 0x1F, + 0x01, 0x16, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x16, 0x33, 0x06, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x27, 0x22, 0x06, 0x1F, 0x01, 0x16, 0x14, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x06, 0x1D, 0x01, 0x14, 0x06, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x26, 0x0F, 0x01, 0x06, 0x22, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x26, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x36, + 0x2F, 0x01, 0x26, 0x34, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x16, + 0x14, 0x0F, 0x01, 0x06, 0x16, 0x3B, 0x01, 0x32, 0x16, 0x14, 0x06, 0x23, 0x26, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x09, 0x0E, 0x09, 0x28, + 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, + 0x0F, 0x28, 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x91, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x65, 0x1D, 0x16, + 0x14, 0x0C, 0x06, 0x0C, 0x12, 0x06, 0x0C, 0x14, 0x35, 0x0C, 0x12, 0x0C, 0x35, 0x14, 0x0C, 0x06, 0x12, 0x0C, 0x06, 0x0C, 0x14, 0x16, 0x1D, 0x10, 0x08, + 0x0D, 0x0D, 0x08, 0x10, 0x1D, 0x16, 0x14, 0x0C, 0x06, 0x0D, 0x11, 0x06, 0x0C, 0x14, 0x35, 0x0C, 0x12, 0x0C, 0x35, 0x14, 0x0C, 0x06, 0x11, 0x0D, 0x06, + 0x0C, 0x14, 0x16, 0x1D, 0x10, 0x08, 0x0D, 0x0D, 0x08, 0xD8, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x69, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x60, 0x09, 0x0E, 0x09, + 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, + 0x08, 0x0F, 0x28, 0x09, 0x0E, 0x09, 0x28, 0x0F, 0x08, 0x05, 0x0D, 0x0A, 0x05, 0x09, 0x0F, 0x10, 0x16, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x16, 0x10, + 0x0F, 0x09, 0x05, 0x0A, 0x0D, 0x05, 0x08, 0x0F, 0x28, 0x20, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x98, 0x35, 0x14, 0x0C, 0x06, 0x12, 0x0C, 0x06, 0x0C, 0x14, + 0x16, 0x1D, 0x10, 0x08, 0x0D, 0x0D, 0x08, 0x10, 0x1D, 0x16, 0x14, 0x0C, 0x06, 0x0C, 0x12, 0x06, 0x0C, 0x14, 0x35, 0x0C, 0x12, 0x0C, 0x35, 0x14, 0x0C, + 0x06, 0x11, 0x0D, 0x06, 0x0C, 0x14, 0x16, 0x1D, 0x10, 0x08, 0x0D, 0x0D, 0x08, 0x10, 0x1D, 0x16, 0x14, 0x0C, 0x06, 0x0D, 0x11, 0x06, 0x0C, 0x14, 0x35, + 0x0C, 0x12, 0x0C, 0x15, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x33, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, + 0xC0, 0x01, 0xC0, 0x00, 0x2E, 0x00, 0x3A, 0x00, 0x46, 0x00, 0x00, 0x25, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x37, 0x06, 0x23, 0x22, 0x27, + 0x17, 0x07, 0x06, 0x1D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x16, 0x33, 0x32, 0x3F, + 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x07, 0x36, 0x34, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x14, 0x16, 0x32, 0x37, 0x04, 0x36, 0x34, 0x2F, 0x01, + 0x26, 0x22, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x01, 0xB5, 0x0B, 0x13, 0x0D, 0xC0, 0x4A, 0x23, 0x27, 0x27, 0x23, 0x39, 0x0D, 0x02, 0xA0, 0x0D, 0x13, 0x0B, + 0x35, 0x13, 0x0D, 0x20, 0x07, 0x06, 0x19, 0x1A, 0x20, 0x20, 0x1A, 0x19, 0x06, 0x07, 0x20, 0x0D, 0x13, 0xFD, 0x05, 0x0A, 0x0D, 0x04, 0x30, 0x05, 0x0A, + 0x0D, 0x04, 0x01, 0x2C, 0x09, 0x05, 0x30, 0x04, 0x0D, 0x0A, 0x05, 0x30, 0x04, 0xD0, 0x10, 0x13, 0xCD, 0x0D, 0x13, 0xE0, 0xDD, 0x13, 0x13, 0xAA, 0x29, + 0x05, 0x05, 0xE0, 0x13, 0x0D, 0xCD, 0x13, 0x10, 0x50, 0x80, 0x0D, 0x13, 0x04, 0x11, 0x11, 0x11, 0x11, 0x04, 0x13, 0x0D, 0x80, 0xD3, 0x04, 0x0D, 0x0A, + 0x05, 0x30, 0x04, 0x0D, 0x0A, 0x05, 0x05, 0x09, 0x0E, 0x04, 0x30, 0x05, 0x0A, 0x0D, 0x04, 0x30, 0x05, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, + 0xC0, 0x01, 0xC0, 0x00, 0x2E, 0x00, 0x4A, 0x00, 0x52, 0x00, 0x68, 0x00, 0x00, 0x25, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x37, 0x06, 0x23, + 0x22, 0x27, 0x17, 0x07, 0x06, 0x1D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x16, 0x33, + 0x32, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x05, 0x17, 0x07, 0x06, 0x14, 0x16, 0x32, 0x3F, 0x01, 0x17, 0x16, 0x32, 0x36, 0x34, 0x2F, + 0x01, 0x37, 0x36, 0x34, 0x26, 0x22, 0x0F, 0x01, 0x27, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x25, 0x32, 0x36, 0x35, + 0x34, 0x35, 0x2E, 0x01, 0x2B, 0x01, 0x35, 0x36, 0x26, 0x27, 0x22, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x33, 0x01, 0xB5, 0x0B, 0x13, 0x0D, 0xC0, 0x4A, + 0x23, 0x27, 0x27, 0x23, 0x39, 0x0D, 0x02, 0xA0, 0x0D, 0x13, 0x0B, 0x35, 0x13, 0x0D, 0x20, 0x07, 0x06, 0x19, 0x1A, 0x20, 0x20, 0x1A, 0x19, 0x06, 0x07, + 0x20, 0x0D, 0x13, 0xFE, 0xC0, 0x0F, 0x0F, 0x04, 0x07, 0x0A, 0x03, 0x10, 0x10, 0x03, 0x0A, 0x07, 0x04, 0x0F, 0x0F, 0x04, 0x07, 0x0A, 0x03, 0x10, 0x10, + 0x03, 0x0A, 0x07, 0x13, 0x22, 0x17, 0x17, 0x22, 0x17, 0x01, 0x2F, 0x0A, 0x0F, 0x01, 0x0F, 0x0A, 0x05, 0x01, 0x0D, 0x0A, 0x01, 0x01, 0x0A, 0x0F, 0x07, + 0xD0, 0x10, 0x13, 0xCD, 0x0D, 0x13, 0xE0, 0xDD, 0x13, 0x13, 0xAA, 0x29, 0x05, 0x05, 0xE0, 0x13, 0x0D, 0xCD, 0x13, 0x10, 0x50, 0x80, 0x0D, 0x13, 0x04, + 0x11, 0x11, 0x11, 0x11, 0x04, 0x13, 0x0D, 0x80, 0x70, 0x10, 0x10, 0x03, 0x0A, 0x07, 0x04, 0x0F, 0x0F, 0x04, 0x07, 0x0A, 0x03, 0x10, 0x10, 0x03, 0x0A, + 0x07, 0x04, 0x0F, 0x0F, 0x04, 0x07, 0x0A, 0xBB, 0x17, 0x22, 0x17, 0x17, 0x22, 0x61, 0x0F, 0x0A, 0x01, 0x01, 0x0A, 0x0C, 0x05, 0x0A, 0x0F, 0x01, 0x0E, + 0x0B, 0x30, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFA, 0xFF, 0xC0, 0x02, 0x06, 0x01, 0xC0, 0x00, 0x17, 0x00, 0x00, 0x01, 0x07, 0x15, 0x33, 0x32, + 0x16, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x27, 0x26, 0x36, 0x33, 0x21, 0x32, 0x16, 0x01, 0xF6, 0xD6, 0x38, 0x11, 0x17, + 0x08, 0xF0, 0x08, 0x17, 0x11, 0x38, 0xD6, 0x10, 0x11, 0x17, 0x01, 0xBC, 0x17, 0x11, 0x01, 0x86, 0xD6, 0xC0, 0x17, 0x11, 0x08, 0x08, 0x11, 0x17, 0xC0, + 0xD6, 0x10, 0x2A, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0x01, 0x36, 0x33, 0x32, + 0x16, 0x15, 0x11, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x35, 0x05, 0x15, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x11, + 0x34, 0x37, 0x01, 0xD6, 0x05, 0x05, 0x0D, 0x13, 0x38, 0x50, 0x38, 0x38, 0x28, 0x10, 0x10, 0xFF, 0x00, 0x38, 0x50, 0x38, 0x38, 0x28, 0x10, 0x10, 0x16, + 0x01, 0xBE, 0x02, 0x13, 0x0D, 0xFE, 0xA0, 0x1B, 0x25, 0x25, 0x36, 0x25, 0x04, 0xB9, 0x4B, 0xEA, 0x1B, 0x25, 0x25, 0x36, 0x25, 0x04, 0x01, 0x05, 0x18, + 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x19, 0x00, 0x21, 0x00, 0x00, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x06, + 0x22, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x32, 0x17, 0x26, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x01, 0xF9, 0x07, 0x07, 0x1C, 0x07, 0x14, 0x07, 0x64, 0x07, 0x38, 0x48, 0x56, 0x7A, 0x7A, 0xAC, 0x7A, 0x2C, 0x10, 0x0A, 0x07, 0xFA, + 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x05, 0x07, 0x14, 0x07, 0x1C, 0x07, 0x07, 0x64, 0x07, 0x0A, 0x10, 0x2C, 0x7A, 0xAC, 0x7A, 0x7A, 0x56, 0x48, 0x38, 0x07, + 0x07, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x00, 0x00, 0x01, 0xFF, 0xFD, 0xFF, 0xE0, 0x02, 0x03, 0x01, 0xA4, 0x00, 0x12, 0x00, 0x00, 0x01, 0x1E, 0x01, 0x0F, + 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x37, 0x3E, 0x01, 0x01, 0xCE, 0x2F, 0x06, 0x2B, 0xC1, 0x0A, 0x1A, 0x0A, 0xC1, + 0x2B, 0x06, 0x2F, 0x29, 0x6B, 0x26, 0x14, 0x14, 0x26, 0x6B, 0x01, 0x81, 0x28, 0x7C, 0x2B, 0xC8, 0x0A, 0x0A, 0xC8, 0x2B, 0x7C, 0x28, 0x23, 0x09, 0x27, + 0x14, 0x14, 0x27, 0x09, 0x00, 0x01, 0x00, 0x0F, 0xFF, 0xBA, 0x02, 0x31, 0x01, 0xC1, 0x00, 0x18, 0x00, 0x00, 0x01, 0x36, 0x32, 0x1F, 0x02, 0x1E, 0x01, + 0x0F, 0x01, 0x17, 0x16, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x01, 0x03, 0x09, 0x28, 0x09, 0x41, 0x92, 0x14, + 0x0C, 0x0E, 0x6A, 0x19, 0x03, 0x20, 0x11, 0x83, 0x83, 0x11, 0x20, 0x03, 0x19, 0x6A, 0x0E, 0x0C, 0x14, 0x92, 0x01, 0xAE, 0x12, 0x12, 0x84, 0x16, 0x02, + 0x26, 0x0E, 0x67, 0x92, 0x13, 0x17, 0x09, 0x44, 0x44, 0x0A, 0x18, 0x13, 0x92, 0x67, 0x0E, 0x26, 0x02, 0x16, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x1B, 0x00, 0x00, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x32, 0x37, 0x01, 0x15, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x26, 0x37, 0x4F, + 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x4F, 0x37, 0x11, 0x23, 0x4C, 0x23, 0xC0, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x6B, 0x4F, 0x37, 0x2A, 0x14, 0x1C, 0x1C, + 0x14, 0x2A, 0x37, 0x4F, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x2F, 0x00, 0x3B, 0x00, 0x47, + 0x00, 0x53, 0x00, 0x5F, 0x00, 0x6B, 0x00, 0x77, 0x00, 0x83, 0x00, 0x8F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x34, + 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x21, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x14, 0x3B, + 0x01, 0x32, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, + 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x05, 0x35, + 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x17, 0x35, 0x34, + 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, + 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x01, 0xE8, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x0C, 0x28, 0x0C, 0xFE, 0xC0, 0x0C, 0x28, 0x0C, 0x08, 0x0A, + 0x0E, 0x0E, 0x0A, 0x08, 0x0C, 0x28, 0x0C, 0x01, 0x40, 0x0C, 0x28, 0x0C, 0xFE, 0x80, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, + 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x01, 0x10, 0x0C, 0xC8, 0x0C, 0x0C, 0xC8, 0x0C, 0x0C, 0xC8, 0x0C, 0x0C, 0xC8, 0x0C, 0x70, 0x0C, 0x28, 0x0C, + 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x01, 0x80, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x14, 0x0C, + 0x0C, 0x14, 0x14, 0x0C, 0x0C, 0x14, 0x0E, 0x0A, 0x01, 0x50, 0x0A, 0x0E, 0x14, 0x0C, 0x0C, 0x14, 0x14, 0x0C, 0x0C, 0x14, 0xFE, 0xCC, 0x28, 0x0C, 0x0C, + 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0xC4, 0x60, 0x0C, 0x0C, 0x60, 0x0C, 0xB4, 0x60, 0x0C, 0x0C, 0x60, + 0x0C, 0x8C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, + 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x00, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x23, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x03, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x05, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x23, 0x01, 0x28, 0xC0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC0, 0x0A, 0x0E, 0x0E, 0x46, 0x0A, 0x0E, 0x0E, 0x0A, 0xC0, 0x0A, 0x0E, 0x0E, 0x0A, + 0x18, 0x0E, 0x0A, 0xC0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC0, 0x0A, 0x0E, 0x01, 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0xC0, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xA0, 0x0E, + 0x0A, 0xA0, 0x0A, 0x0E, 0x0E, 0x0A, 0xA0, 0x0A, 0x0E, 0x0E, 0x0A, 0xA0, 0x0A, 0x0E, 0x0E, 0x0A, 0xA0, 0x0A, 0x0E, 0xFE, 0xF8, 0x0A, 0x0E, 0x0E, 0x0A, + 0xA0, 0x0A, 0x0E, 0x0E, 0x0A, 0x18, 0x0E, 0x0A, 0xA0, 0x0A, 0x0E, 0x0E, 0x0A, 0xA0, 0x0A, 0x0E, 0x00, 0x00, 0x09, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, + 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x5F, 0x00, 0x6F, 0x00, 0x7F, 0x00, 0x8F, 0x00, 0x00, 0x13, 0x15, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, + 0x01, 0x32, 0x16, 0x15, 0x37, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x23, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x07, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x33, 0x07, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x25, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x07, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, + 0x25, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x95, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, 0x0E, 0x0A, 0x65, + 0x0A, 0x0E, 0xB6, 0x0E, 0x0A, 0x66, 0x0A, 0x0E, 0x0E, 0x0A, 0x66, 0x0A, 0x0E, 0x20, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, 0x20, + 0x0E, 0x0A, 0x66, 0x0A, 0x0E, 0x0E, 0x0A, 0x66, 0x0A, 0x0E, 0xCE, 0x0A, 0x0E, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, 0x0E, 0x0A, 0x18, 0x0E, 0x0A, 0x65, 0x0A, + 0x0E, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, 0x01, 0x83, 0x0A, 0x0E, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, + 0x0E, 0x0A, 0xFE, 0xCD, 0x0E, 0x0A, 0x66, 0x0A, 0x0E, 0x0E, 0x0A, 0x66, 0x0A, 0x0E, 0x01, 0x88, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, + 0xFA, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0xA0, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, + 0x0A, 0x0E, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, + 0x88, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0xA0, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x68, 0x0A, 0x0E, + 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, + 0x2F, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x5F, 0x00, 0x00, 0x37, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, + 0x07, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x13, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x01, 0x34, + 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x17, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x23, 0x95, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, 0x95, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, 0x0E, 0x0A, 0x65, + 0x0A, 0x0E, 0x7D, 0x0A, 0x0E, 0x0E, 0x0A, 0x65, 0x0A, 0x0E, 0x0E, 0x0A, 0xB5, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x1B, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xCD, + 0x0E, 0x0A, 0x01, 0x1B, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xE5, 0x0A, 0x0E, 0x18, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x1B, 0x0A, 0x0E, 0x0E, 0x0A, 0xE8, 0x50, + 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0xAA, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xA8, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, + 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0xFE, 0x40, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x01, 0xA8, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, + 0x0E, 0x0E, 0x0A, 0xB8, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01, + 0x7F, 0x00, 0x14, 0x00, 0x00, 0x37, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x07, 0x01, 0x06, + 0x22, 0xAE, 0xA7, 0x07, 0x07, 0x25, 0x07, 0x15, 0x08, 0x70, 0xF0, 0x08, 0x15, 0x07, 0x25, 0x07, 0x07, 0xFE, 0xD9, 0x07, 0x16, 0x09, 0xA6, 0x07, 0x16, + 0x07, 0x24, 0x08, 0x08, 0x70, 0xF0, 0x08, 0x08, 0x24, 0x07, 0x16, 0x07, 0xFE, 0xDA, 0x08, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x0F, 0x01, 0x61, + 0x01, 0x71, 0x00, 0x23, 0x00, 0x00, 0x37, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, + 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x07, 0xF3, 0x64, 0x09, 0x09, 0x16, 0x0A, 0x1A, 0x09, + 0x64, 0x64, 0x09, 0x1A, 0x0A, 0x16, 0x09, 0x09, 0x64, 0x64, 0x09, 0x09, 0x16, 0x0A, 0x1A, 0x09, 0x64, 0x64, 0x09, 0x1A, 0x0A, 0x16, 0x09, 0x09, 0xC0, + 0x64, 0x09, 0x1A, 0x0A, 0x16, 0x09, 0x09, 0x64, 0x64, 0x09, 0x09, 0x16, 0x0A, 0x1A, 0x09, 0x64, 0x64, 0x09, 0x1A, 0x0A, 0x16, 0x09, 0x09, 0x64, 0x64, + 0x09, 0x09, 0x16, 0x0A, 0x1A, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x1B, 0x00, 0x35, 0x00, 0x3D, 0x00, + 0x00, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, + 0x1D, 0x01, 0x33, 0x32, 0x13, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, + 0x32, 0x1F, 0x01, 0x16, 0x14, 0x26, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x01, 0x30, 0x0C, 0x38, 0x0C, 0x20, 0x0C, 0x38, 0x0C, 0x0C, 0x38, 0x0C, + 0x20, 0x0C, 0x38, 0x0C, 0xC9, 0x1C, 0x07, 0x14, 0x07, 0x64, 0x07, 0x38, 0x48, 0x56, 0x7A, 0x7A, 0xAC, 0x7A, 0x2C, 0x10, 0x0A, 0x07, 0x64, 0x07, 0xA8, + 0x50, 0x70, 0x50, 0x50, 0x70, 0x01, 0x00, 0x20, 0x0C, 0x38, 0x0C, 0x0C, 0x38, 0x0C, 0x20, 0x0C, 0x38, 0x0C, 0x0C, 0x38, 0xFE, 0xD7, 0x1C, 0x07, 0x07, + 0x64, 0x07, 0x0A, 0x10, 0x2C, 0x7A, 0xAC, 0x7A, 0x7A, 0x56, 0x48, 0x38, 0x07, 0x64, 0x07, 0x14, 0xCE, 0x70, 0x50, 0x50, 0x70, 0x50, 0x00, 0x03, 0x00, + 0x00, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x25, 0x00, 0x2D, 0x00, 0x00, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, + 0x01, 0x32, 0x13, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x32, 0x1F, + 0x01, 0x16, 0x14, 0x26, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x01, 0x30, 0x0C, 0xA8, 0x0C, 0x0C, 0xA8, 0x0C, 0xC9, 0x1C, 0x07, 0x14, 0x07, 0x64, + 0x07, 0x38, 0x48, 0x56, 0x7A, 0x7A, 0xAC, 0x7A, 0x2C, 0x10, 0x0A, 0x07, 0x64, 0x07, 0xA8, 0x50, 0x70, 0x50, 0x50, 0x70, 0x01, 0x00, 0x20, 0x0C, 0x0C, + 0x20, 0x0C, 0xFE, 0xD7, 0x1C, 0x07, 0x07, 0x64, 0x07, 0x0A, 0x10, 0x2C, 0x7A, 0xAC, 0x7A, 0x7A, 0x56, 0x48, 0x38, 0x07, 0x64, 0x07, 0x14, 0xCE, 0x70, + 0x50, 0x50, 0x70, 0x50, 0x00, 0x02, 0x00, 0x07, 0xFF, 0xC7, 0x01, 0xF8, 0x01, 0xC0, 0x00, 0x24, 0x00, 0x34, 0x00, 0x00, 0x01, 0x1E, 0x01, 0x15, 0x14, + 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x07, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, + 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x07, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x01, 0x90, + 0x30, 0x38, 0x91, 0xCD, 0x92, 0x38, 0x30, 0x09, 0x15, 0x05, 0x10, 0x04, 0x04, 0x07, 0x20, 0x24, 0x62, 0x46, 0x45, 0x63, 0x24, 0x20, 0x07, 0x04, 0x04, + 0x10, 0x05, 0x15, 0x5F, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x01, 0x8A, 0x22, 0x6B, 0x3D, 0x67, 0x91, 0x91, 0x67, 0x3D, 0x6A, + 0x23, 0x06, 0x05, 0x09, 0x1C, 0x08, 0x12, 0x05, 0x18, 0x46, 0x29, 0x45, 0x63, 0x62, 0x47, 0x27, 0x47, 0x18, 0x05, 0x12, 0x08, 0x1C, 0x09, 0x05, 0xD8, + 0x0A, 0x0E, 0x0E, 0x0A, 0xF0, 0x0A, 0x0E, 0x0E, 0x0A, 0x00, 0x00, 0x05, 0x00, 0x18, 0xFF, 0xC0, 0x02, 0x68, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x1F, 0x00, + 0x2F, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x00, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x07, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x25, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, + 0x35, 0x11, 0x34, 0x36, 0x33, 0x37, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x37, 0x32, 0x16, 0x15, + 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0xD8, 0x07, 0x09, 0x09, 0x07, 0x30, 0x07, 0x09, 0x09, 0x07, 0x50, 0x07, 0x09, + 0x09, 0x07, 0x30, 0x07, 0x09, 0x09, 0x07, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x07, 0x09, 0x09, 0x07, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x30, 0x07, + 0x09, 0x09, 0x07, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x30, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x60, + 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0xC0, 0x09, 0x07, 0xFE, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x20, 0x07, 0x09, 0x60, 0x09, + 0x07, 0xFE, 0x80, 0x07, 0x09, 0x09, 0x07, 0x01, 0x80, 0x07, 0x09, 0x60, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x09, 0x07, 0x01, 0xE0, 0x07, 0x09, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x10, 0xFF, 0xC1, 0x01, 0xF0, 0x01, 0xBF, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x00, 0x25, 0x16, 0x07, 0x06, 0x07, 0x06, 0x2F, 0x01, + 0x06, 0x07, 0x15, 0x14, 0x07, 0x06, 0x27, 0x26, 0x3D, 0x01, 0x26, 0x27, 0x07, 0x06, 0x27, 0x26, 0x27, 0x26, 0x3F, 0x01, 0x26, 0x34, 0x37, 0x27, 0x26, + 0x37, 0x36, 0x37, 0x36, 0x1F, 0x01, 0x36, 0x37, 0x35, 0x34, 0x37, 0x36, 0x17, 0x16, 0x1D, 0x01, 0x16, 0x17, 0x37, 0x36, 0x17, 0x16, 0x17, 0x16, 0x0F, + 0x01, 0x16, 0x07, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xE7, 0x09, 0x03, 0x11, 0x26, 0x06, 0x08, 0x2B, 0x1B, 0x22, 0x09, 0x37, 0x36, + 0x0A, 0x22, 0x1B, 0x2A, 0x09, 0x06, 0x26, 0x11, 0x03, 0x09, 0x2A, 0x03, 0x03, 0x2A, 0x09, 0x03, 0x11, 0x26, 0x06, 0x09, 0x2A, 0x1B, 0x22, 0x09, 0x37, + 0x37, 0x09, 0x22, 0x1B, 0x2A, 0x09, 0x06, 0x26, 0x11, 0x03, 0x09, 0x2A, 0x06, 0x06, 0xDE, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x84, 0x04, 0x0A, 0x35, 0x29, + 0x07, 0x04, 0x19, 0x17, 0x0C, 0x31, 0x0A, 0x02, 0x0C, 0x0C, 0x02, 0x0A, 0x31, 0x0C, 0x17, 0x19, 0x04, 0x07, 0x29, 0x35, 0x09, 0x05, 0x19, 0x11, 0x24, + 0x11, 0x19, 0x04, 0x0A, 0x35, 0x29, 0x07, 0x05, 0x18, 0x17, 0x0C, 0x31, 0x0A, 0x02, 0x0C, 0x0C, 0x02, 0x0A, 0x31, 0x0C, 0x17, 0x19, 0x04, 0x07, 0x29, + 0x35, 0x0A, 0x04, 0x19, 0x23, 0x23, 0x2D, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xE0, 0x02, 0x41, 0x01, 0xA0, 0x00, 0x1D, + 0x00, 0x43, 0x00, 0x00, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, + 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x25, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x01, 0x06, + 0x23, 0x22, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x01, 0x18, 0x04, + 0x08, 0x04, 0xB8, 0x09, 0x07, 0x70, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x70, 0x07, 0x09, 0x01, 0xDC, 0x04, 0x03, 0x19, 0x04, 0x05, + 0x05, 0x03, 0xEB, 0x04, 0x08, 0x04, 0xEB, 0x03, 0x04, 0x06, 0x04, 0x19, 0x03, 0x04, 0xFD, 0x0E, 0x22, 0x0D, 0x5A, 0x07, 0x05, 0x38, 0x05, 0x07, 0x01, + 0x2C, 0x02, 0x02, 0x98, 0xA4, 0x07, 0x09, 0x0A, 0x06, 0x60, 0x07, 0x09, 0x09, 0x07, 0x60, 0x06, 0x0A, 0x09, 0x07, 0xA4, 0x31, 0x04, 0x06, 0x04, 0x03, + 0x1F, 0x05, 0x03, 0xC2, 0x02, 0x02, 0xC2, 0x03, 0x05, 0x1F, 0x03, 0x04, 0x06, 0x04, 0xD0, 0x0B, 0x0B, 0x4A, 0x49, 0x05, 0x07, 0x07, 0x05, 0x8B, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x1D, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, + 0x05, 0x36, 0x35, 0x34, 0x2F, 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x1F, 0x01, 0x16, 0x33, 0x32, 0x37, 0x99, 0xCE, 0x91, + 0x91, 0xCE, 0x91, 0x01, 0x54, 0x04, 0x06, 0x3A, 0x09, 0x07, 0x20, 0x07, 0x09, 0x0F, 0x43, 0x04, 0x06, 0x08, 0x04, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, + 0xCE, 0xA8, 0x04, 0x06, 0x08, 0x05, 0x2A, 0x90, 0x07, 0x09, 0x09, 0x07, 0x9C, 0x13, 0x0C, 0x31, 0x04, 0x06, 0x00, 0x03, 0xFF, 0xFB, 0x00, 0x00, 0x02, + 0x45, 0x01, 0x80, 0x00, 0x21, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x00, 0x25, 0x16, 0x06, 0x2B, 0x01, 0x27, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x15, 0x07, + 0x23, 0x22, 0x26, 0x37, 0x13, 0x36, 0x3B, 0x01, 0x07, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x35, 0x27, 0x33, 0x32, 0x17, 0x0F, 0x01, 0x06, 0x16, 0x3B, + 0x01, 0x32, 0x36, 0x2F, 0x01, 0x26, 0x2B, 0x01, 0x22, 0x17, 0x32, 0x36, 0x35, 0x27, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x15, 0x07, 0x14, 0x16, 0x33, + 0x02, 0x3D, 0x07, 0x12, 0x11, 0xC4, 0x0B, 0x09, 0x07, 0x44, 0x07, 0x09, 0x0B, 0xC4, 0x11, 0x12, 0x07, 0x8C, 0x08, 0x13, 0x62, 0x03, 0x05, 0x03, 0x1E, + 0x03, 0x05, 0x03, 0x62, 0x13, 0x08, 0xAD, 0x04, 0x01, 0x07, 0x06, 0x28, 0x06, 0x07, 0x01, 0x04, 0x01, 0x07, 0x28, 0x07, 0x37, 0x07, 0x09, 0x06, 0x09, + 0x06, 0x2E, 0x06, 0x09, 0x06, 0x09, 0x07, 0x2D, 0x10, 0x1D, 0x62, 0x06, 0x08, 0x08, 0x06, 0x62, 0x1D, 0x10, 0x01, 0x40, 0x13, 0x17, 0x04, 0x05, 0x05, + 0x04, 0x17, 0x13, 0x34, 0x2C, 0x05, 0x08, 0x08, 0x05, 0x2C, 0x07, 0xB0, 0x0B, 0x07, 0x30, 0x06, 0x08, 0x08, 0x06, 0x30, 0x07, 0x0B, 0x00, 0x00, 0x04, + 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x2B, 0x00, 0x33, 0x00, 0x3B, 0x00, 0x00, 0x13, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x33, + 0x32, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x17, 0x16, 0x32, 0x3F, 0x01, 0x33, 0x32, 0x16, 0x06, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x16, 0x32, 0xD8, 0x50, 0x0A, 0x0E, 0x58, 0x0D, 0x0A, 0x09, 0x98, 0x06, 0x10, 0x06, 0x98, 0x09, 0x0A, 0x0D, 0x58, 0x0E, 0x01, 0x32, 0x0E, 0x0A, + 0xFE, 0x30, 0x0A, 0x0E, 0x0E, 0x0A, 0x93, 0x31, 0x0F, 0x2A, 0x0F, 0x31, 0x93, 0x0A, 0x0E, 0x7C, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0x4C, 0x0C, 0x10, 0x0C, + 0x0C, 0x10, 0x01, 0xC0, 0x0E, 0x0A, 0xA8, 0x19, 0x09, 0x98, 0x06, 0x06, 0x98, 0x09, 0x19, 0xA8, 0x0A, 0x0E, 0xFE, 0x88, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, + 0x70, 0x0A, 0x0E, 0x31, 0x0F, 0x0F, 0x31, 0x0E, 0x6A, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x40, 0x01, 0x80, 0x00, 0x13, 0x00, 0x1B, 0x00, 0x00, 0x25, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, + 0x01, 0x36, 0x33, 0x21, 0x32, 0x17, 0x05, 0x07, 0x33, 0x17, 0x33, 0x37, 0x33, 0x27, 0x02, 0x38, 0x08, 0x1C, 0x14, 0xFE, 0x20, 0x14, 0x1C, 0x08, 0x6A, + 0x0E, 0x1A, 0x01, 0x0C, 0x1A, 0x0E, 0xFE, 0xD4, 0x55, 0x7B, 0x20, 0x70, 0x20, 0x7B, 0x55, 0xCC, 0x0C, 0x0F, 0x81, 0x14, 0x1C, 0x1C, 0x14, 0x81, 0x0F, + 0x0C, 0x9F, 0x15, 0x15, 0x2B, 0x80, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0xFF, 0xC8, 0x02, 0x01, 0x01, 0xC0, 0x00, 0x35, 0x00, + 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x30, 0x33, 0x17, 0x2E, 0x01, 0x23, 0x22, 0x06, + 0x14, 0x16, 0x33, 0x32, 0x37, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x27, + 0x34, 0x31, 0x34, 0x36, 0x33, 0x01, 0xF4, 0x05, 0x07, 0x07, 0x05, 0xC8, 0x05, 0x07, 0x07, 0x05, 0x01, 0x65, 0x18, 0x4D, 0x2D, 0x49, 0x67, 0x67, 0x49, + 0x42, 0x32, 0x04, 0x04, 0x05, 0x04, 0x22, 0x03, 0x04, 0x46, 0x60, 0x67, 0x91, 0x92, 0x66, 0x38, 0x62, 0x23, 0x04, 0x07, 0x05, 0x01, 0xC0, 0x07, 0x05, + 0xC8, 0x05, 0x07, 0x07, 0x05, 0x2F, 0x05, 0x07, 0x05, 0x24, 0x2A, 0x67, 0x92, 0x67, 0x2C, 0x03, 0x04, 0x22, 0x03, 0x05, 0x06, 0x03, 0x40, 0x91, 0xCD, + 0x92, 0x2E, 0x29, 0x52, 0x01, 0x05, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x29, 0x00, 0x53, 0x00, + 0x00, 0x01, 0x34, 0x31, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x2E, 0x01, + 0x23, 0x22, 0x06, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x35, 0x3E, 0x01, 0x33, 0x32, 0x16, 0x17, 0x03, 0x32, 0x36, 0x37, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x15, 0x14, 0x07, 0x0E, 0x01, 0x23, 0x22, 0x26, 0x27, 0x17, 0x14, 0x31, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x27, 0x1E, 0x01, 0x01, 0xB9, 0x07, 0x05, 0x2F, 0x0C, 0x07, 0x05, 0xC8, 0x05, 0x07, 0x07, 0x05, 0x66, 0x18, + 0x4D, 0x2D, 0x3E, 0x5F, 0x0E, 0x02, 0x0A, 0x31, 0x05, 0x07, 0x11, 0x89, 0x5A, 0x38, 0x62, 0x23, 0xBD, 0x3D, 0x60, 0x0E, 0x02, 0x0A, 0x31, 0x05, 0x07, + 0x01, 0x10, 0x89, 0x5A, 0x38, 0x62, 0x23, 0x04, 0x07, 0x05, 0x2F, 0x0C, 0x07, 0x05, 0xC8, 0x05, 0x07, 0x07, 0x05, 0x66, 0x18, 0x4D, 0x01, 0xB3, 0x01, + 0x05, 0x07, 0x0C, 0xC8, 0x05, 0x07, 0x07, 0x05, 0x2F, 0x05, 0x07, 0x05, 0x24, 0x2A, 0x4C, 0x3B, 0x09, 0x07, 0x05, 0x01, 0x01, 0x57, 0x73, 0x2E, 0x29, + 0xFE, 0xAF, 0x4C, 0x3B, 0x09, 0x07, 0x05, 0x01, 0x01, 0x57, 0x73, 0x2E, 0x29, 0x52, 0x01, 0x05, 0x07, 0x0C, 0xC8, 0x05, 0x07, 0x07, 0x05, 0x2F, 0x05, + 0x07, 0x05, 0x24, 0x2A, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x33, + 0x00, 0x3F, 0x00, 0x4B, 0x00, 0x00, 0x05, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x00, 0x22, 0x06, + 0x14, 0x16, 0x32, 0x36, 0x34, 0x06, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x06, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x37, 0x35, 0x34, 0x2B, + 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x15, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x15, 0x35, 0x34, 0x2B, 0x01, + 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x01, 0xD0, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, 0x1C, 0xFE, 0xAD, 0x22, 0x17, 0x17, + 0x22, 0x17, 0x17, 0x22, 0x17, 0x17, 0x22, 0x17, 0x17, 0x22, 0x17, 0x17, 0x22, 0x17, 0xF8, 0x0C, 0xC8, 0x0C, 0x0C, 0xC8, 0x0C, 0x0C, 0xC8, 0x0C, 0x0C, + 0xC8, 0x0C, 0x0C, 0xC8, 0x0C, 0x0C, 0xC8, 0x0C, 0x20, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x01, 0x68, 0x17, 0x22, + 0x17, 0x17, 0x22, 0x49, 0x17, 0x22, 0x17, 0x17, 0x22, 0x49, 0x17, 0x22, 0x17, 0x17, 0x22, 0x9F, 0x20, 0x0C, 0x0C, 0x20, 0x0C, 0x54, 0x20, 0x0C, 0x0C, + 0x20, 0x0C, 0x54, 0x20, 0x0C, 0x0C, 0x20, 0x0C, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x00, + 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x23, + 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x18, 0x59, 0x7E, 0x59, 0x50, 0x2A, + 0x3C, 0x2A, 0xE0, 0x1C, 0x14, 0xC0, 0x14, 0x1C, 0x1C, 0x14, 0xC0, 0x14, 0x1C, 0x48, 0x3F, 0x59, 0x59, 0x3F, 0x48, 0x48, 0x1E, 0x2A, 0x2A, 0x1E, 0x48, + 0x00, 0x00, 0x01, 0x00, 0x08, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x27, 0x00, 0x00, 0x01, 0x32, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x07, 0x06, + 0x23, 0x22, 0x26, 0x23, 0x22, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x26, 0x35, 0x34, 0x36, 0x17, 0x1E, 0x01, 0x17, 0x14, 0x15, + 0x14, 0x07, 0x36, 0x32, 0x16, 0x01, 0x5E, 0x30, 0x45, 0x0F, 0x1E, 0x0E, 0x3B, 0x3F, 0x24, 0x68, 0x1A, 0x3E, 0x34, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x18, + 0x22, 0x18, 0x16, 0x1F, 0x01, 0x04, 0x21, 0x47, 0x68, 0x01, 0x5D, 0x20, 0x07, 0x12, 0x12, 0xF3, 0x11, 0x09, 0x29, 0x23, 0x17, 0x5E, 0x0A, 0x0E, 0x0E, + 0x0A, 0x01, 0x82, 0x11, 0x1D, 0x18, 0x21, 0x01, 0x01, 0x1E, 0x15, 0x02, 0x02, 0x0A, 0x0A, 0x0C, 0x23, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, + 0x01, 0xA0, 0x00, 0x2F, 0x00, 0x00, 0x12, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, + 0x01, 0x32, 0x17, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x2F, 0x01, + 0x26, 0x3D, 0x01, 0x34, 0x96, 0xD4, 0x96, 0x12, 0x0E, 0x02, 0x41, 0x2D, 0x18, 0x0A, 0x0E, 0x0E, 0x0A, 0x18, 0x2F, 0x21, 0x71, 0x9E, 0x71, 0x21, 0x2F, + 0x18, 0x0A, 0x0E, 0x0E, 0x0A, 0x18, 0x2D, 0x41, 0x02, 0x0E, 0x12, 0x01, 0xA0, 0x96, 0x6A, 0x30, 0x14, 0x09, 0x07, 0x2D, 0x3F, 0x0E, 0x0A, 0xB0, 0x0A, + 0x0E, 0x22, 0x02, 0x4F, 0x71, 0x71, 0x4F, 0x02, 0x22, 0x0E, 0x0A, 0xB0, 0x0A, 0x0E, 0x3F, 0x2D, 0x07, 0x09, 0x14, 0x30, 0x6A, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0xFF, 0xFC, 0x01, 0x00, 0x01, 0x84, 0x00, 0x11, 0x00, 0x00, 0x13, 0x36, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2F, 0x01, 0x23, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0xD7, 0x0B, 0x1E, 0x1E, 0x0B, 0x59, 0x66, 0x0A, 0x0E, 0x0E, 0x0A, 0x66, 0x01, 0x79, 0x0B, 0x0C, 0x10, 0xFE, 0xB0, + 0x10, 0x0C, 0x0B, 0x59, 0x0E, 0x0A, 0x90, 0x0A, 0x0E, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xFA, 0x01, 0x81, 0x01, 0x84, 0x00, 0x11, 0x00, 0x23, 0x00, 0x00, + 0x13, 0x36, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2F, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x17, 0x1E, 0x01, 0x14, 0x06, 0x07, 0x06, + 0x2E, 0x01, 0x36, 0x37, 0x36, 0x34, 0x27, 0x2E, 0x01, 0x3E, 0x01, 0xD7, 0x0B, 0x1E, 0x1E, 0x0B, 0x59, 0x66, 0x0A, 0x0E, 0x0E, 0x0A, 0x66, 0xD4, 0x15, + 0x19, 0x19, 0x15, 0x08, 0x14, 0x09, 0x05, 0x09, 0x15, 0x15, 0x09, 0x05, 0x09, 0x14, 0x01, 0x78, 0x0B, 0x0C, 0x10, 0xFE, 0xB0, 0x10, 0x0C, 0x0B, 0x59, + 0x0E, 0x0A, 0x90, 0x0A, 0x0E, 0x13, 0x0C, 0x29, 0x30, 0x29, 0x0C, 0x05, 0x06, 0x11, 0x13, 0x05, 0x0C, 0x2E, 0x0C, 0x05, 0x13, 0x11, 0x06, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xFF, 0xCE, 0x02, 0x40, 0x01, 0xB2, 0x00, 0x11, 0x00, 0x25, 0x00, 0x3A, 0x00, 0x4C, 0x00, 0x00, 0x13, 0x36, 0x16, 0x15, 0x11, + 0x14, 0x06, 0x2F, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x25, 0x1E, 0x01, 0x14, 0x06, 0x07, 0x06, 0x2E, 0x01, 0x36, 0x37, 0x3E, + 0x01, 0x34, 0x26, 0x27, 0x2E, 0x01, 0x3E, 0x01, 0x16, 0x14, 0x06, 0x07, 0x06, 0x26, 0x27, 0x26, 0x36, 0x37, 0x3E, 0x01, 0x34, 0x26, 0x27, 0x2E, 0x01, + 0x3E, 0x01, 0x17, 0x16, 0x07, 0x1E, 0x01, 0x14, 0x06, 0x07, 0x06, 0x2E, 0x01, 0x36, 0x37, 0x36, 0x34, 0x27, 0x2E, 0x01, 0x3E, 0x01, 0xD7, 0x0B, 0x1E, + 0x1E, 0x0B, 0x59, 0x66, 0x0A, 0x0E, 0x0E, 0x0A, 0x66, 0x01, 0x42, 0x3C, 0x44, 0x44, 0x3C, 0x08, 0x14, 0x0B, 0x04, 0x09, 0x31, 0x39, 0x39, 0x31, 0x09, + 0x04, 0x0B, 0x14, 0x28, 0x2D, 0x29, 0x09, 0x13, 0x05, 0x05, 0x04, 0x09, 0x1D, 0x22, 0x22, 0x1D, 0x09, 0x04, 0x0A, 0x14, 0x08, 0x29, 0x61, 0x15, 0x19, + 0x19, 0x15, 0x08, 0x14, 0x09, 0x05, 0x09, 0x15, 0x15, 0x09, 0x05, 0x09, 0x14, 0x01, 0x79, 0x0B, 0x0C, 0x10, 0xFE, 0xB0, 0x10, 0x0C, 0x0B, 0x59, 0x0E, + 0x0A, 0x90, 0x0A, 0x0E, 0x8C, 0x27, 0x7E, 0x8E, 0x7E, 0x27, 0x06, 0x05, 0x10, 0x14, 0x05, 0x21, 0x68, 0x76, 0x68, 0x21, 0x05, 0x14, 0x10, 0x05, 0xC2, + 0x60, 0x53, 0x19, 0x06, 0x05, 0x08, 0x09, 0x13, 0x06, 0x13, 0x3D, 0x46, 0x3D, 0x13, 0x06, 0x13, 0x11, 0x05, 0x06, 0x19, 0x36, 0x0C, 0x29, 0x30, 0x29, + 0x0C, 0x05, 0x06, 0x11, 0x13, 0x05, 0x0C, 0x2E, 0x0C, 0x05, 0x13, 0x11, 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, + 0x00, 0x03, 0x00, 0x07, 0x00, 0x0B, 0x00, 0x0F, 0x00, 0x13, 0x00, 0x17, 0x00, 0x23, 0x00, 0x27, 0x00, 0x2B, 0x00, 0x00, 0x3D, 0x01, 0x33, 0x15, 0x27, + 0x15, 0x33, 0x35, 0x37, 0x33, 0x15, 0x23, 0x37, 0x35, 0x23, 0x15, 0x01, 0x35, 0x33, 0x15, 0x27, 0x15, 0x33, 0x35, 0x25, 0x33, 0x15, 0x23, 0x35, 0x23, + 0x15, 0x23, 0x35, 0x33, 0x15, 0x33, 0x15, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0xC0, 0x80, 0x40, 0x80, 0xC0, 0xC0, 0x80, 0x40, 0xFE, 0xC0, 0xC0, + 0x80, 0x40, 0x01, 0x20, 0x20, 0x60, 0x20, 0x40, 0x60, 0x40, 0x20, 0x20, 0x40, 0x20, 0x20, 0xE0, 0xC0, 0xC0, 0x80, 0x40, 0x40, 0x40, 0xC0, 0x40, 0x40, + 0x40, 0xFE, 0xC0, 0xC0, 0xC0, 0x80, 0x40, 0x40, 0x40, 0x80, 0x20, 0x60, 0xC0, 0x20, 0x80, 0x20, 0x20, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x01, 0x80, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0B, 0x00, 0x0F, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1B, 0x00, 0x1F, 0x00, 0x23, 0x00, 0x27, 0x00, 0x2B, + 0x00, 0x2F, 0x00, 0x33, 0x00, 0x37, 0x00, 0x3B, 0x00, 0x3F, 0x00, 0x00, 0x31, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, + 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, + 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, + 0x11, 0x12, 0x09, 0x09, 0x12, 0x09, 0x24, 0x09, 0x1B, 0x12, 0x1B, 0x09, 0x09, 0x09, 0x09, 0x09, 0x1A, 0x12, 0x1B, 0x12, 0x12, 0x12, 0x12, 0x12, 0x09, + 0x12, 0x1B, 0x1B, 0x09, 0x09, 0x09, 0x12, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, + 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, + 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x01, 0x80, 0xFE, 0x80, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x19, 0x00, 0x00, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, + 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x1C, 0x14, 0xCC, 0x14, 0x0E, 0xD4, 0x0E, 0x0E, 0xCC, 0x0E, 0x28, + 0x0E, 0xD4, 0x0E, 0x84, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xC4, 0xCC, 0x14, 0x1C, 0x0E, 0xD4, 0x0E, 0x28, 0x0E, 0xCC, 0x0E, 0x0E, 0xD4, 0x0E, 0xD0, 0x1C, + 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x19, 0x00, 0x29, 0x00, 0x00, 0x25, + 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, + 0x05, 0x07, 0x06, 0x22, 0x27, 0x37, 0x36, 0x34, 0x2F, 0x01, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x01, 0xF2, 0x0E, 0x0E, 0xCC, 0x0E, 0x28, 0x0E, 0xD4, + 0x0E, 0x1C, 0x14, 0xCC, 0x14, 0x0E, 0xC2, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x02, 0x32, 0xCC, 0x0E, 0x28, 0x0E, 0xAE, 0x1A, 0x1A, 0xC5, 0x31, 0x14, 0x0E, + 0xD4, 0x0E, 0xDE, 0x0E, 0x28, 0x0E, 0xCC, 0x0E, 0x0E, 0xD4, 0x0E, 0x14, 0xCC, 0x14, 0x1C, 0x0E, 0x92, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xA2, 0xCC, 0x0E, + 0x0E, 0xAE, 0x1B, 0x4A, 0x1B, 0xC4, 0x0E, 0xD4, 0x0E, 0x28, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x17, + 0x00, 0x23, 0x00, 0x2F, 0x00, 0x38, 0x00, 0x00, 0x25, 0x14, 0x07, 0x06, 0x14, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, + 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x05, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, + 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x13, 0x26, 0x37, 0x21, 0x22, 0x06, 0x14, 0x16, 0x33, 0x01, 0xC0, 0x09, 0x03, 0x03, 0x09, 0x0E, 0x0A, 0xFE, 0xB8, + 0x28, 0x38, 0x38, 0x28, 0x01, 0x48, 0x0A, 0x0E, 0xFE, 0xC0, 0x06, 0xD4, 0x06, 0x06, 0xD4, 0x06, 0x06, 0xD4, 0x06, 0x06, 0xD4, 0x06, 0xFD, 0x03, 0x03, + 0xFE, 0xE3, 0x0D, 0x13, 0x13, 0x0D, 0x58, 0x0C, 0x07, 0x0B, 0x34, 0x0B, 0x08, 0x0B, 0x10, 0x0A, 0x0E, 0x38, 0x28, 0x01, 0x40, 0x28, 0x38, 0x0E, 0x0A, + 0x6E, 0x14, 0x06, 0x06, 0x14, 0x06, 0x46, 0x14, 0x06, 0x06, 0x14, 0x06, 0xFF, 0x00, 0x20, 0x20, 0x13, 0x1A, 0x13, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, + 0x01, 0x80, 0x01, 0xC0, 0x00, 0x0A, 0x00, 0x00, 0x15, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x11, 0x27, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, + 0xC0, 0x40, 0x01, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x30, 0x70, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x23, + 0x00, 0x27, 0x00, 0x30, 0x00, 0x38, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, + 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x35, 0x34, 0x36, 0x33, 0x21, 0x32, 0x1F, 0x01, 0x16, 0x15, 0x03, 0x35, 0x21, 0x15, 0x25, 0x35, + 0x23, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xC0, 0x1B, 0x25, 0x09, 0x07, 0x30, 0x13, 0x0D, 0xFE, + 0xC0, 0x0D, 0x13, 0x30, 0x07, 0x09, 0x25, 0x1B, 0x13, 0x0D, 0x01, 0x13, 0x0D, 0x09, 0x2E, 0x09, 0x40, 0xFF, 0x00, 0x01, 0x00, 0x30, 0x07, 0x09, 0xC0, + 0x01, 0x26, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x01, 0x00, 0x25, 0x1B, 0x70, 0x07, 0x09, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x09, 0x07, 0x70, 0x1B, 0x25, + 0xA0, 0x0D, 0x13, 0x09, 0x2E, 0x09, 0x0D, 0xFE, 0x8D, 0x60, 0x60, 0xE0, 0x60, 0x09, 0x07, 0x30, 0xA0, 0x48, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x03, + 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x19, 0x00, 0x21, 0x00, 0x29, 0x00, 0x00, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, + 0x11, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x3E, 0x01, 0x3B, 0x01, 0x32, 0x16, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x06, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, + 0x36, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x02, 0x00, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x58, 0x0C, 0x06, 0x18, 0x0F, 0x7E, 0x0F, + 0x18, 0x06, 0x0C, 0x58, 0x14, 0x1C, 0x88, 0x46, 0x64, 0x46, 0x46, 0x64, 0x26, 0x34, 0x48, 0x34, 0x34, 0x48, 0x01, 0x30, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, + 0x14, 0x01, 0x20, 0x14, 0x1C, 0x21, 0x0E, 0x11, 0x11, 0x0E, 0x21, 0x1C, 0xD6, 0x64, 0x46, 0x46, 0x64, 0x46, 0x9C, 0x48, 0x34, 0x34, 0x48, 0x34, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA1, 0x00, 0x2B, 0x00, 0x2E, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x27, 0x23, 0x07, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x13, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x13, 0x27, 0x33, 0x27, 0x01, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, + 0x14, 0x18, 0x98, 0x18, 0x14, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x17, 0x83, 0x08, 0x16, 0x30, 0x16, 0x08, 0x83, 0xE8, 0x5E, 0x2F, + 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x6A, + 0x16, 0x16, 0xFE, 0x96, 0x90, 0x81, 0x00, 0x00, 0x00, 0x03, 0x00, 0x12, 0xFF, 0xE0, 0x01, 0x84, 0x01, 0xA0, 0x00, 0x1D, 0x00, 0x25, 0x00, 0x2D, 0x00, + 0x00, 0x25, 0x1E, 0x01, 0x07, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x07, 0x06, 0x27, 0x15, 0x33, 0x32, 0x36, 0x34, 0x26, 0x23, 0x11, 0x32, 0x36, 0x34, 0x26, 0x2B, 0x01, 0x15, 0x01, 0x4D, 0x1B, + 0x1C, 0x04, 0x05, 0x52, 0x36, 0xD1, 0x07, 0x09, 0x09, 0x07, 0x20, 0x20, 0x07, 0x09, 0x09, 0x07, 0xC7, 0x39, 0x4C, 0x06, 0x03, 0xD3, 0x57, 0x14, 0x1C, + 0x1C, 0x14, 0x18, 0x20, 0x20, 0x18, 0x57, 0xD2, 0x15, 0x3F, 0x24, 0x34, 0x46, 0x09, 0x07, 0x30, 0x07, 0x09, 0x01, 0x20, 0x09, 0x07, 0x30, 0x07, 0x09, + 0x54, 0x39, 0x24, 0x61, 0x60, 0x1C, 0x28, 0x1C, 0xFE, 0xE0, 0x21, 0x2E, 0x21, 0x70, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0x40, 0x01, 0xA0, + 0x00, 0x23, 0x00, 0x00, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x03, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x3B, 0x01, 0x13, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x01, 0x40, 0x09, 0x07, 0x3F, 0x50, 0x2F, 0x07, 0x09, 0x09, + 0x07, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x3F, 0x50, 0x2F, 0x07, 0x09, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x01, 0x90, 0x20, 0x07, 0x09, 0xFE, 0xC0, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, + 0x02, 0x43, 0x01, 0xA0, 0x00, 0x2D, 0x00, 0x49, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x11, + 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3F, 0x01, + 0x36, 0x32, 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x15, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x38, 0x28, 0x07, 0x09, 0x09, 0x07, 0xA0, + 0x07, 0x09, 0x09, 0x07, 0x28, 0x38, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x02, 0x20, 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, 0x04, 0x50, 0x08, 0x08, + 0x0B, 0x30, 0x30, 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, 0x04, 0x50, 0x08, 0x08, 0x0B, 0x30, 0x01, 0xA0, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x20, + 0xFE, 0xD0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x30, 0x20, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0xFE, 0xB0, 0x14, + 0x07, 0x50, 0x05, 0x05, 0x50, 0x07, 0x14, 0xE0, 0x14, 0x07, 0x50, 0x05, 0x05, 0x50, 0x07, 0x14, 0xE0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xDD, + 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x2D, 0x00, 0x49, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, + 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x34, 0x3F, + 0x01, 0x36, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x01, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x78, 0x18, 0x07, 0x09, 0x09, 0x07, 0x80, + 0x07, 0x09, 0x09, 0x07, 0x18, 0x78, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x01, 0x5B, 0x50, 0x05, 0x05, 0x50, 0x07, 0x14, 0xE0, 0x14, 0x07, 0x50, + 0x05, 0x05, 0x50, 0x07, 0x14, 0xE0, 0x14, 0x01, 0xA0, 0x09, 0x07, 0x50, 0x07, 0x09, 0x09, 0x07, 0x10, 0x70, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x70, 0x10, 0x07, 0x09, 0x09, 0x07, 0x50, 0x07, 0x09, 0xFE, 0xFB, 0x50, 0x04, 0x0E, 0x04, 0x50, 0x08, 0x08, 0x0B, 0x30, 0x30, 0x0B, + 0x08, 0x08, 0x50, 0x04, 0x0E, 0x04, 0x50, 0x08, 0x08, 0x0B, 0x30, 0x30, 0x0B, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, + 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x00, 0x37, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x23, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x0D, + 0x05, 0x08, 0x08, 0x05, 0x01, 0x06, 0x05, 0x08, 0x08, 0x05, 0xFE, 0xFA, 0x05, 0x08, 0x08, 0x05, 0x01, 0x06, 0x05, 0x08, 0x08, 0x05, 0x9D, 0x07, 0x09, + 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x60, 0x08, 0x05, 0x26, 0x05, + 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x01, 0x00, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0x20, 0x07, 0x09, 0xFF, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, + 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x33, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x13, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x11, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x01, 0xB0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x5C, + 0x05, 0x07, 0x07, 0x05, 0xE8, 0x05, 0x07, 0x07, 0x05, 0xE8, 0x05, 0x07, 0x07, 0x05, 0xE8, 0x05, 0x07, 0x07, 0x01, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x09, 0x07, 0x20, 0x07, 0x09, 0xFF, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x40, 0x07, 0x05, 0x28, 0x05, 0x07, 0x07, + 0x05, 0x28, 0x05, 0x07, 0xFF, 0x00, 0x07, 0x05, 0x28, 0x05, 0x07, 0x07, 0x05, 0x28, 0x05, 0x07, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, + 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x00, 0x37, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x15, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x33, 0x10, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA3, 0x05, + 0x08, 0x08, 0x05, 0xFE, 0xFA, 0x05, 0x08, 0x08, 0x05, 0x01, 0x06, 0x05, 0x08, 0x08, 0x05, 0xFE, 0xFA, 0x05, 0x08, 0x08, 0x05, 0xE0, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x80, 0x08, 0x05, 0x26, 0x05, 0x08, + 0x08, 0x05, 0x26, 0x05, 0x08, 0xFF, 0x00, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x01, + 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x33, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x25, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x33, 0x01, 0xB0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, + 0x07, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, + 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xF0, + 0x02, 0x00, 0x01, 0x90, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x5F, 0x00, 0x00, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, + 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x05, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x50, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, + 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x01, 0xE0, 0x07, 0x09, 0x09, 0x07, + 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x40, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x40, 0x07, 0x09, 0x09, 0x07, 0xFE, + 0xC0, 0x07, 0x09, 0x09, 0x07, 0x50, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x01, 0x40, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, + 0x40, 0x07, 0x09, 0xA0, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0xB0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x01, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, + 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0B, 0x00, 0x1B, 0x00, 0x2B, 0x00, 0x3B, 0x00, 0x4B, 0x00, 0x00, 0x37, 0x27, 0x26, + 0x34, 0x3F, 0x01, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, + 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x65, 0x60, + 0x05, 0x05, 0x60, 0x07, 0x14, 0x14, 0x01, 0x44, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA3, 0x05, 0x08, 0x08, 0x05, 0xE6, + 0x05, 0x08, 0x08, 0x05, 0xE6, 0x05, 0x08, 0x08, 0x05, 0xE6, 0x05, 0x08, 0x08, 0x05, 0xE3, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, + 0x55, 0x60, 0x04, 0x0E, 0x04, 0x60, 0x08, 0x08, 0x0B, 0xC0, 0x0B, 0x08, 0x2D, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x08, + 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x80, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x80, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0B, 0x00, 0x1B, 0x00, 0x2B, 0x00, + 0x3B, 0x00, 0x4B, 0x00, 0x00, 0x37, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x14, 0x07, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x1B, 0x07, 0x14, 0x14, 0x07, 0x60, 0x05, 0x05, 0x01, 0x35, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, + 0x07, 0x01, 0xA3, 0x05, 0x08, 0x08, 0x05, 0xE6, 0x05, 0x08, 0x08, 0x05, 0xE6, 0x05, 0x08, 0x08, 0x05, 0xE6, 0x05, 0x08, 0x08, 0x05, 0xE3, 0x07, 0x09, + 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x55, 0x08, 0x08, 0x0B, 0xC0, 0x0B, 0x08, 0x08, 0x60, 0x04, 0x0E, 0x04, 0x95, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x80, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, + 0x26, 0x05, 0x08, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x01, + 0x80, 0x00, 0x0F, 0x00, 0x19, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x05, 0x36, + 0x16, 0x15, 0x11, 0x14, 0x06, 0x2F, 0x01, 0x35, 0x01, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xDE, 0x10, 0x22, 0x23, + 0x0F, 0x6E, 0x01, 0x80, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, 0x26, 0x0B, 0x11, 0x14, 0xFF, 0x00, 0x14, 0x11, 0x0B, + 0x4B, 0x9E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x22, 0x00, 0x00, 0x29, 0x01, 0x22, + 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x00, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x07, 0x21, 0x35, 0x27, + 0x26, 0x0F, 0x01, 0x27, 0x26, 0x0F, 0x01, 0x01, 0xD0, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, 0x1C, 0xFE, 0xA3, 0x2E, 0x21, 0x21, + 0x2E, 0x21, 0x68, 0x01, 0x80, 0x58, 0x08, 0x08, 0x88, 0x38, 0x08, 0x08, 0x48, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, + 0x01, 0x48, 0x21, 0x2E, 0x21, 0x21, 0x2E, 0xE7, 0x70, 0x58, 0x08, 0x08, 0x88, 0x38, 0x08, 0x08, 0x48, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, + 0xBF, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x17, 0x00, 0x00, 0x17, 0x2E, 0x06, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x0E, 0x05, 0x07, 0x06, 0x22, 0xAC, + 0x18, 0x3D, 0x1A, 0x22, 0x0B, 0x0D, 0x03, 0x70, 0xA0, 0x70, 0x03, 0x0D, 0x0B, 0x22, 0x1A, 0x3D, 0x18, 0x07, 0x1A, 0x36, 0x23, 0x58, 0x24, 0x35, 0x16, + 0x22, 0x19, 0x11, 0x50, 0x70, 0x70, 0x50, 0x11, 0x19, 0x22, 0x16, 0x35, 0x24, 0x58, 0x23, 0x0A, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, + 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0D, 0x00, 0x00, 0x36, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x37, 0x32, 0x36, 0x34, 0x26, 0x23, 0x08, 0x91, 0xCE, + 0x91, 0x91, 0xCE, 0x67, 0x4C, 0x6C, 0x6C, 0x4C, 0x59, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x40, 0x6C, 0x98, 0x6C, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, + 0x01, 0x60, 0x01, 0xC1, 0x00, 0x11, 0x00, 0x21, 0x00, 0x00, 0x13, 0x1E, 0x03, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x3E, 0x02, 0x37, 0x36, 0x32, + 0x03, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x26, 0x35, 0x34, 0x26, 0x22, 0x06, 0x15, 0x14, 0x16, 0xCD, 0x10, 0x36, 0x2C, 0x21, 0x67, 0x92, 0x67, 0x21, + 0x2D, 0x35, 0x10, 0x07, 0x2D, 0x17, 0x07, 0x09, 0x09, 0x07, 0x21, 0x2F, 0x09, 0x0E, 0x09, 0x42, 0x01, 0xAA, 0x34, 0x5F, 0x36, 0x49, 0x26, 0x4A, 0x68, + 0x68, 0x4A, 0x26, 0x48, 0x38, 0x5E, 0x34, 0x16, 0xFE, 0x40, 0x09, 0x0E, 0x09, 0x2F, 0x21, 0x07, 0x09, 0x09, 0x07, 0x2E, 0x42, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x19, 0x00, 0x36, 0x00, 0x00, 0x01, 0x17, 0x16, 0x0F, 0x02, 0x06, 0x26, 0x3F, 0x02, + 0x36, 0x37, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x03, 0x34, 0x3F, 0x01, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x11, 0x21, 0x01, 0x93, 0x5A, 0x07, 0x07, 0xDB, + 0x5C, 0x0A, 0x0D, 0x01, 0x0A, 0xDB, 0x07, 0xA9, 0x0B, 0x0B, 0x24, 0x07, 0x07, 0x5A, 0x07, 0x07, 0x24, 0x0B, 0x20, 0x0C, 0x84, 0x04, 0x28, 0x05, 0x0F, + 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x1E, 0x08, 0x06, 0x06, 0x28, 0x03, 0x05, 0xE6, 0x01, 0x40, 0x01, 0x6D, 0x5A, 0x07, 0x07, 0xDB, + 0x0A, 0x01, 0x0D, 0x0A, 0x5C, 0xDB, 0x07, 0x10, 0x0C, 0x20, 0x0C, 0x23, 0x07, 0x07, 0x5A, 0x07, 0x07, 0x23, 0x0C, 0x0C, 0xFE, 0xB2, 0x05, 0x03, 0x28, + 0x06, 0x06, 0x08, 0x9E, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x0F, 0x05, 0x28, 0x04, 0xFE, 0xC0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x40, 0xFF, + 0xDA, 0x01, 0x80, 0x01, 0xA6, 0x00, 0x15, 0x00, 0x00, 0x17, 0x11, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x37, 0x36, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2F, + 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x40, 0x0C, 0x30, 0x0C, 0xC4, 0x0F, 0x25, 0x25, 0x0F, 0xC4, 0x0C, 0x30, 0x0C, 0x14, 0x01, 0xA8, 0x0C, 0x0C, 0xB0, + 0xB5, 0x0D, 0x12, 0x14, 0xFE, 0x80, 0x14, 0x12, 0x0D, 0xB4, 0xAF, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xFA, 0x02, 0x00, 0x01, 0x86, 0x00, 0x1F, + 0x00, 0x00, 0x35, 0x11, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x37, 0x36, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2F, 0x01, 0x15, + 0x14, 0x06, 0x2F, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x0C, 0x28, 0x0C, 0xAC, 0x0F, 0x25, 0xAC, 0x0F, 0x25, 0x25, 0x0F, 0xAC, 0x25, 0x0F, 0xAC, 0x0C, + 0x28, 0x0C, 0x0C, 0x01, 0x68, 0x0C, 0x0C, 0x98, 0x9D, 0x0D, 0x12, 0x14, 0x84, 0x9D, 0x0D, 0x12, 0x14, 0xFE, 0xC0, 0x14, 0x12, 0x0D, 0x9C, 0x83, 0x14, + 0x12, 0x0D, 0x9C, 0x97, 0x0C, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xFA, 0x02, 0x00, 0x01, 0x86, 0x00, 0x0B, 0x00, 0x17, 0x00, 0x00, 0x37, 0x26, 0x34, 0x3F, + 0x01, 0x36, 0x16, 0x15, 0x11, 0x14, 0x06, 0x27, 0x37, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x16, 0x15, 0x11, 0x14, 0x06, 0x27, 0x0C, 0x0C, 0x0C, 0xC0, 0x0F, + 0x25, 0x25, 0x0F, 0x40, 0x0C, 0x0C, 0xC0, 0x0F, 0x25, 0x25, 0x0F, 0xA7, 0x0A, 0x1E, 0x0A, 0xA0, 0x0D, 0x12, 0x14, 0xFE, 0xC0, 0x14, 0x12, 0x0D, 0xA0, + 0x0A, 0x1E, 0x0A, 0xA0, 0x0D, 0x12, 0x14, 0xFE, 0xC0, 0x14, 0x12, 0x0D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xB8, 0x01, 0xC1, 0x01, 0xC8, 0x00, + 0x0B, 0x00, 0x00, 0x25, 0x16, 0x14, 0x07, 0x05, 0x06, 0x26, 0x35, 0x11, 0x34, 0x36, 0x17, 0x01, 0xA8, 0x18, 0x18, 0xFE, 0xA0, 0x17, 0x31, 0x33, 0x15, + 0xE9, 0x0E, 0x36, 0x0E, 0xD0, 0x0E, 0x1B, 0x1C, 0x01, 0xA0, 0x1E, 0x19, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE1, 0x01, 0xC0, 0x01, + 0xA1, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x00, 0x17, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x25, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x90, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x60, 0x14, 0x1C, 0x1C, 0x01, + 0x1C, 0x1C, 0x14, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x60, 0x14, 0x1C, 0x1F, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x30, + 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, + 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, + 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xFA, 0x02, + 0x00, 0x01, 0x86, 0x00, 0x0B, 0x00, 0x17, 0x00, 0x00, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x35, 0x11, 0x34, 0x36, 0x17, 0x07, 0x16, 0x14, 0x0F, + 0x01, 0x06, 0x26, 0x35, 0x11, 0x34, 0x36, 0x17, 0x01, 0xF4, 0x0C, 0x0C, 0xC0, 0x0F, 0x25, 0x25, 0x0F, 0x40, 0x0C, 0x0C, 0xC0, 0x0F, 0x25, 0x25, 0x0F, + 0xD9, 0x0A, 0x1E, 0x0A, 0xA0, 0x0D, 0x12, 0x14, 0x01, 0x40, 0x14, 0x12, 0x0D, 0xA0, 0x0A, 0x1E, 0x0A, 0xA0, 0x0D, 0x12, 0x14, 0x01, 0x40, 0x14, 0x12, + 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xFA, 0x02, 0x00, 0x01, 0x86, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x11, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x07, + 0x06, 0x26, 0x3D, 0x01, 0x07, 0x06, 0x26, 0x35, 0x11, 0x34, 0x36, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x1F, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x02, 0x00, + 0x0C, 0x28, 0x0C, 0xAC, 0x0F, 0x25, 0xAC, 0x0F, 0x25, 0x25, 0x0F, 0xAC, 0x25, 0x0F, 0xAC, 0x0C, 0x28, 0x0C, 0x01, 0x74, 0xFE, 0x98, 0x0C, 0x0C, 0x98, + 0x9D, 0x0D, 0x12, 0x14, 0x84, 0x9D, 0x0D, 0x12, 0x14, 0x01, 0x40, 0x14, 0x12, 0x0D, 0x9C, 0x83, 0x14, 0x12, 0x0D, 0x9C, 0x97, 0x0C, 0x00, 0x00, 0x01, + 0x00, 0x40, 0xFF, 0xDA, 0x01, 0x80, 0x01, 0xA6, 0x00, 0x15, 0x00, 0x00, 0x01, 0x11, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x07, 0x06, 0x26, 0x35, 0x11, + 0x34, 0x36, 0x1F, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x01, 0x80, 0x0C, 0x30, 0x0C, 0xC4, 0x0F, 0x25, 0x25, 0x0F, 0xC4, 0x0C, 0x30, 0x0C, 0x01, 0x94, + 0xFE, 0x58, 0x0C, 0x0C, 0xB0, 0xB5, 0x0D, 0x12, 0x14, 0x01, 0x80, 0x14, 0x12, 0x0D, 0xB4, 0xAF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xF7, 0xFF, + 0xE0, 0x01, 0xC9, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x00, 0x25, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, + 0x32, 0x16, 0x25, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x06, 0x23, 0x01, 0xC0, 0x13, 0x0D, 0xFE, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x01, + 0x80, 0x0D, 0x13, 0xFE, 0x70, 0x1F, 0x19, 0x15, 0xB0, 0x0E, 0x2A, 0x0E, 0xB0, 0x15, 0x19, 0x1F, 0x40, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, + 0x13, 0x33, 0x39, 0x17, 0xC0, 0x10, 0x10, 0xC0, 0x17, 0x39, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0xFF, 0xE5, 0x01, 0x25, 0x01, 0x9B, 0x00, 0x14, 0x00, + 0x00, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x1E, 0x01, 0x0F, 0x01, 0x17, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x23, 0xC2, 0x07, + 0x14, 0x07, 0x16, 0x07, 0x01, 0x07, 0x9B, 0x9B, 0x07, 0x01, 0x07, 0x16, 0x07, 0x14, 0x07, 0xC2, 0x08, 0xD1, 0xC2, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, + 0x9B, 0x9B, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0xC2, 0x07, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0xFF, 0xE5, 0x01, 0x25, 0x01, 0x9B, 0x00, 0x14, + 0x00, 0x00, 0x25, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x2E, 0x01, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x01, 0x1D, + 0xC2, 0x07, 0x14, 0x07, 0x16, 0x07, 0x01, 0x07, 0x9B, 0x9B, 0x07, 0x01, 0x07, 0x16, 0x07, 0x14, 0x07, 0xC2, 0x08, 0xAF, 0xC2, 0x07, 0x07, 0x16, 0x07, + 0x14, 0x07, 0x9B, 0x9B, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0xC2, 0x07, 0x14, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, + 0x07, 0x00, 0x23, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x35, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, + 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x88, 0x0C, + 0x5C, 0x0C, 0x38, 0x0C, 0x5C, 0x0C, 0x0C, 0x5C, 0x0C, 0x38, 0x0C, 0x5C, 0x0C, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x83, 0x38, 0x0C, 0x5C, 0x0C, + 0x0C, 0x5C, 0x0C, 0x38, 0x0C, 0x5C, 0x0C, 0x0C, 0x5C, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x13, 0x00, + 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x21, 0x32, 0x3D, 0x01, 0x34, 0x23, 0x21, 0x22, 0x1D, 0x01, 0x14, 0x99, 0xCE, 0x91, 0x91, + 0xCE, 0x91, 0x74, 0x01, 0x08, 0x0C, 0x0C, 0xFE, 0xF8, 0x0C, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x8F, 0x0C, 0x38, 0x0C, 0x0C, 0x38, 0x0C, 0x00, + 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x27, + 0x37, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x3F, 0x01, + 0x36, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x72, 0x42, 0x42, 0x08, 0x08, 0x28, 0x08, 0x09, 0x41, 0x41, 0x09, 0x08, 0x28, 0x08, 0x08, 0x42, 0x42, + 0x08, 0x08, 0x28, 0x08, 0x09, 0x41, 0x41, 0x09, 0x08, 0x28, 0x08, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0xA8, 0x41, 0x41, 0x09, 0x08, 0x28, 0x08, + 0x08, 0x42, 0x42, 0x08, 0x08, 0x28, 0x08, 0x09, 0x41, 0x41, 0x09, 0x08, 0x28, 0x08, 0x08, 0x42, 0x42, 0x08, 0x08, 0x28, 0x08, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x17, 0x00, 0x00, 0x00, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x03, 0x37, 0x36, + 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x16, 0x01, 0xF8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x84, 0xB8, 0x0C, 0x0C, 0x16, + 0x0C, 0x0B, 0x96, 0x46, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x68, 0x0B, 0x01, 0x27, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xFE, 0x85, 0xB8, 0x0B, 0x0B, 0x17, 0x0B, + 0x0B, 0x96, 0x46, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x68, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x2A, + 0x00, 0x32, 0x00, 0x00, 0x00, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x07, 0x22, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x37, 0x3E, 0x01, 0x33, 0x32, 0x16, + 0x15, 0x14, 0x06, 0x07, 0x0E, 0x02, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x3E, 0x02, 0x35, 0x34, 0x26, 0x06, 0x22, 0x06, 0x14, 0x16, + 0x32, 0x36, 0x34, 0x01, 0xF8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x60, 0x4A, 0x2B, 0x06, 0x09, 0x23, 0x09, 0x07, 0x10, 0x17, 0x12, 0x11, 0x1D, 0x0F, 0x11, + 0x12, 0x11, 0x14, 0x0C, 0x38, 0x0C, 0x1A, 0x1F, 0x1A, 0x48, 0x20, 0x26, 0x1B, 0x1B, 0x26, 0x1B, 0x01, 0x27, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x52, 0x40, + 0x09, 0x07, 0x1A, 0x07, 0x09, 0x13, 0x11, 0x13, 0x0E, 0x0B, 0x0D, 0x0A, 0x0A, 0x0C, 0x1E, 0x13, 0x04, 0x0C, 0x0C, 0x01, 0x09, 0x12, 0x10, 0x26, 0x1A, + 0x2A, 0x3C, 0xF8, 0x1B, 0x26, 0x1B, 0x1B, 0x26, 0x00, 0x00, 0x03, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x27, + 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x24, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x35, 0x34, + 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x09, + 0x22, 0x19, 0x19, 0x22, 0x19, 0x0E, 0x0C, 0x0C, 0x0C, 0x40, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x58, 0x0C, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, + 0x23, 0x19, 0x22, 0x19, 0x19, 0x22, 0xE5, 0x18, 0x0C, 0x64, 0x0C, 0x0C, 0x18, 0x0C, 0x40, 0x0C, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x27, 0x00, 0x4F, 0x00, 0x57, 0x00, 0x00, 0x25, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x0E, 0x01, 0x07, 0x15, + 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x2E, 0x01, 0x27, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x3E, 0x01, 0x37, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, + 0x01, 0x1E, 0x01, 0x17, 0x07, 0x3E, 0x01, 0x37, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x2E, 0x01, 0x27, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, + 0x0E, 0x01, 0x07, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x1E, 0x01, 0x17, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x34, 0x14, 0x06, 0x22, 0x26, 0x34, + 0x36, 0x32, 0x01, 0xF4, 0x0C, 0x0C, 0x1E, 0x0B, 0x65, 0x46, 0x0C, 0x28, 0x0C, 0x46, 0x65, 0x0B, 0x1E, 0x0C, 0x0C, 0x1E, 0x0B, 0x65, 0x46, 0x0C, 0x28, + 0x0C, 0x46, 0x65, 0x0B, 0xB6, 0x2C, 0x3F, 0x0A, 0x29, 0x0C, 0x0C, 0x29, 0x0A, 0x3F, 0x2C, 0x0C, 0x28, 0x0C, 0x2C, 0x3F, 0x0A, 0x29, 0x0C, 0x0C, 0x29, + 0x0A, 0x3F, 0x2C, 0x0C, 0x28, 0x0C, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xE0, 0x0C, 0x28, 0x0C, 0x46, 0x65, 0x0B, 0x1E, 0x0C, 0x0C, 0x1E, 0x0B, 0x65, 0x46, + 0x0C, 0x28, 0x0C, 0x46, 0x65, 0x0B, 0x1E, 0x0C, 0x0C, 0x1E, 0x0B, 0x65, 0x46, 0xB5, 0x0A, 0x3F, 0x2C, 0x0C, 0x28, 0x0C, 0x2C, 0x3F, 0x0A, 0x29, 0x0C, + 0x0C, 0x29, 0x0A, 0x3F, 0x2C, 0x0C, 0x28, 0x0C, 0x2C, 0x3F, 0x0A, 0x29, 0x0C, 0x0C, 0x79, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x00, 0x03, 0x00, 0x08, 0xFF, + 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0D, 0x00, 0x13, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x04, 0x2E, 0x01, 0x07, + 0x01, 0x36, 0x04, 0x1E, 0x01, 0x37, 0x01, 0x06, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0xAA, 0x60, 0x88, 0x34, 0x01, 0x01, 0x26, 0xFE, 0x91, 0x60, + 0x88, 0x34, 0xFE, 0xFF, 0x26, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x15, 0x60, 0x0B, 0x26, 0xFE, 0xFF, 0x34, 0x1C, 0x60, 0x0B, 0x26, 0x01, 0x01, + 0x34, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xE5, 0x01, 0xC0, 0x01, 0x9B, 0x00, 0x1D, 0x00, 0x00, 0x25, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, + 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x17, 0x1E, 0x01, 0x01, 0x02, + 0x17, 0x07, 0x14, 0x07, 0xC2, 0x07, 0x07, 0xC2, 0x07, 0x14, 0x07, 0x17, 0x07, 0x01, 0x07, 0x78, 0x01, 0x1F, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xE1, 0x78, + 0x07, 0x01, 0x03, 0x16, 0x07, 0x07, 0xC2, 0x07, 0x14, 0x07, 0xC2, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x73, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x73, 0x07, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE5, 0x01, 0xC1, 0x01, 0x9B, 0x00, 0x1D, 0x00, 0x00, 0x13, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, + 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x27, 0x2E, 0x01, 0xBE, 0x17, + 0x07, 0x14, 0x07, 0xC2, 0x07, 0x07, 0xC2, 0x07, 0x14, 0x07, 0x17, 0x07, 0x01, 0x07, 0x78, 0xFE, 0xE1, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x1F, 0x78, 0x07, + 0x01, 0x01, 0x7D, 0x16, 0x07, 0x07, 0xC2, 0x07, 0x14, 0x07, 0xC2, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x73, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x73, 0x07, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0xFF, 0xE0, 0x01, 0xBB, 0x01, 0xA1, 0x00, 0x1D, 0x00, 0x00, 0x37, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, + 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x07, 0x0E, 0x01, 0x23, 0x16, + 0x07, 0x07, 0xC2, 0x07, 0x14, 0x07, 0xC2, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x73, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x73, 0x07, 0x14, 0x9E, 0x17, 0x07, + 0x14, 0x07, 0xC2, 0x07, 0x07, 0xC2, 0x07, 0x14, 0x07, 0x16, 0x08, 0x01, 0x07, 0x78, 0xFE, 0xE1, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x1F, 0x78, 0x07, 0x01, + 0x00, 0x01, 0x00, 0x05, 0xFF, 0xDF, 0x01, 0xBB, 0x01, 0xA0, 0x00, 0x1D, 0x00, 0x00, 0x25, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, + 0x34, 0x3F, 0x01, 0x36, 0x16, 0x1F, 0x01, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, 0x37, 0x3E, 0x01, 0x01, 0x9D, 0x16, 0x07, 0x07, 0xC2, + 0x07, 0x14, 0x07, 0xC2, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x73, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x73, 0x07, 0x14, 0xE2, 0x17, 0x07, 0x14, 0x07, 0xC2, + 0x07, 0x07, 0xC2, 0x07, 0x14, 0x07, 0x17, 0x07, 0x01, 0x07, 0x78, 0x01, 0x1F, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xE1, 0x78, 0x07, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0xFF, 0xDC, 0x02, 0x01, 0x01, 0xA5, 0x00, 0x1E, 0x00, 0x00, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x0E, 0x03, + 0x14, 0x17, 0x16, 0x06, 0x27, 0x2E, 0x01, 0x35, 0x34, 0x3E, 0x03, 0x37, 0x35, 0x34, 0x36, 0x17, 0x01, 0xF8, 0x08, 0x08, 0xB0, 0x0C, 0x1C, 0x31, 0x44, + 0x32, 0x17, 0x0D, 0x04, 0x15, 0x0B, 0x23, 0x30, 0x1E, 0x32, 0x4C, 0x50, 0x34, 0x1C, 0x0C, 0x01, 0x02, 0x07, 0x16, 0x07, 0x98, 0x0A, 0x0D, 0x0F, 0x58, + 0x01, 0x0B, 0x19, 0x2A, 0x40, 0x2B, 0x0C, 0x0E, 0x08, 0x19, 0x55, 0x2C, 0x2C, 0x42, 0x29, 0x19, 0x09, 0x01, 0x50, 0x0F, 0x0D, 0x0A, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x10, 0x00, 0x21, 0x00, 0x32, 0x00, 0x43, 0x00, 0x00, 0x11, 0x35, 0x34, 0x36, 0x3B, + 0x01, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x25, 0x34, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x3D, + 0x01, 0x23, 0x22, 0x35, 0x17, 0x32, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x33, 0x07, 0x14, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, 0x32, 0x15, 0x0E, 0x0A, 0x7C, 0x0C, 0x0C, 0x54, 0x0C, 0x28, 0x0C, 0x01, 0x20, 0x0C, + 0x7C, 0x0A, 0x0E, 0x0C, 0x28, 0x0C, 0x54, 0x0C, 0x94, 0x0C, 0x0E, 0x0A, 0x7C, 0x0C, 0x0C, 0x54, 0x0C, 0xEC, 0x0C, 0x7C, 0x0A, 0x0E, 0x0C, 0x28, 0x0C, + 0x54, 0x0C, 0x01, 0x0C, 0x7C, 0x0A, 0x0E, 0x0C, 0x28, 0x0C, 0x54, 0x0C, 0x94, 0x0C, 0x0E, 0x0A, 0x7C, 0x0C, 0x0C, 0x54, 0x0C, 0xEC, 0x0C, 0x7C, 0x0A, + 0x0E, 0x0C, 0x28, 0x0C, 0x54, 0x0C, 0x94, 0x0C, 0x0E, 0x0A, 0x7C, 0x0C, 0x0C, 0x54, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x01, + 0xC0, 0x01, 0xA0, 0x00, 0x10, 0x00, 0x21, 0x00, 0x32, 0x00, 0x43, 0x00, 0x00, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, + 0x33, 0x32, 0x1D, 0x01, 0x14, 0x25, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x11, 0x14, 0x2B, + 0x01, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x17, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x01, 0xB4, 0x7C, 0x0A, 0x0E, 0x0C, 0x28, 0x0C, 0x54, 0x0C, 0xFE, 0xE0, 0x0E, 0x0A, 0x7C, 0x0C, 0x0C, 0x54, 0x0C, + 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x54, 0x0C, 0x0C, 0x7C, 0x0A, 0x0E, 0xC0, 0x0C, 0x28, 0x0C, 0x0E, 0x0A, 0x7C, 0x0C, 0x0C, 0x54, 0x01, 0x00, 0x0E, 0x0A, + 0x7C, 0x0C, 0x0C, 0x54, 0x0C, 0x28, 0x0C, 0x18, 0x0A, 0x0E, 0x0C, 0x28, 0x0C, 0x54, 0x0C, 0x0C, 0xFE, 0x58, 0x0C, 0x0C, 0x54, 0x0C, 0x28, 0x0C, 0x0E, + 0x0A, 0x7C, 0x0C, 0x0C, 0x7C, 0x0A, 0x0E, 0x0C, 0x28, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x23, 0x00, 0x00, + 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x01, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0x90, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x90, 0x0D, + 0x13, 0x13, 0x0D, 0x90, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0xF0, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x90, 0x0D, 0x13, 0x13, 0x0D, 0x90, 0x13, 0x0D, 0x20, 0x0D, + 0x13, 0x90, 0x0D, 0x13, 0x13, 0x0D, 0x90, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0x01, 0xC0, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0xFE, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0xF0, + 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x13, 0xFF, 0xC0, 0x01, 0xED, 0x01, 0xC0, 0x00, 0x35, + 0x00, 0x00, 0x25, 0x1E, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x07, 0x06, 0x26, 0x2F, 0x01, + 0x26, 0x36, 0x3F, 0x01, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x37, 0x36, 0x16, + 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x01, 0xDE, 0x09, 0x05, 0x05, 0x13, 0x05, 0x14, 0x08, 0x8B, 0x03, 0x01, 0x0E, 0x0B, 0x26, 0x0B, 0x0E, 0x01, 0x03, + 0x8B, 0x08, 0x14, 0x05, 0x13, 0x05, 0x05, 0x09, 0x8E, 0x8E, 0x09, 0x05, 0x05, 0x13, 0x05, 0x14, 0x08, 0x8B, 0x03, 0x01, 0x0E, 0x0B, 0x26, 0x0B, 0x0E, + 0x01, 0x03, 0x8B, 0x08, 0x14, 0x05, 0x13, 0x05, 0x05, 0x09, 0x8E, 0x72, 0x05, 0x13, 0x09, 0x22, 0x09, 0x05, 0x06, 0x54, 0xA2, 0x0B, 0x0E, 0x0E, 0x0B, + 0xA2, 0x54, 0x06, 0x05, 0x09, 0x22, 0x09, 0x13, 0x05, 0x4E, 0x4E, 0x05, 0x13, 0x09, 0x22, 0x09, 0x05, 0x06, 0x54, 0xA2, 0x0B, 0x0E, 0x0E, 0x0B, 0xA2, + 0x54, 0x06, 0x05, 0x09, 0x22, 0x09, 0x13, 0x05, 0x4E, 0x00, 0x00, 0x03, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, + 0x1D, 0x00, 0x00, 0x00, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x02, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x27, 0x17, 0x14, 0x3B, 0x01, 0x32, + 0x35, 0x37, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x01, 0xF8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x54, 0x26, 0x1B, 0x1B, 0x26, 0x1B, 0x5A, 0x08, 0x0C, 0x30, + 0x0C, 0x08, 0x07, 0x05, 0x40, 0x05, 0x07, 0x01, 0x27, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xFE, 0xD6, 0x1B, 0x26, 0x1B, 0x1B, 0x26, 0xC0, 0x88, 0x0B, 0x0B, + 0x88, 0x06, 0x07, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x06, 0x00, 0x0D, 0x00, 0x2E, 0x00, 0x37, 0x00, + 0x41, 0x00, 0x00, 0x33, 0x35, 0x33, 0x15, 0x23, 0x22, 0x26, 0x05, 0x35, 0x33, 0x15, 0x14, 0x06, 0x23, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x3E, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, + 0x21, 0x33, 0x2E, 0x01, 0x23, 0x22, 0x06, 0x14, 0x16, 0x33, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x0E, 0x01, 0x07, 0x20, 0xC0, 0xA0, 0x0D, 0x13, 0x01, + 0x00, 0xC0, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x13, 0x0D, 0x2C, 0x0A, 0x34, 0x24, 0x1E, 0x2E, 0x1B, 0x1B, 0x2E, 0x1E, + 0x24, 0x34, 0x0A, 0xFE, 0xE4, 0x56, 0x23, 0x21, 0x12, 0x11, 0x17, 0x17, 0xDF, 0x11, 0x17, 0x17, 0x11, 0x0C, 0x11, 0x20, 0x19, 0x80, 0xA0, 0x13, 0x13, + 0xA0, 0x80, 0x0D, 0x13, 0x01, 0x40, 0x13, 0x0D, 0x50, 0x07, 0x09, 0x09, 0x07, 0x50, 0x0D, 0x13, 0x13, 0x15, 0x24, 0x34, 0x20, 0x24, 0x24, 0x20, 0x34, + 0x24, 0x14, 0x14, 0x35, 0x1B, 0x17, 0x22, 0x17, 0x17, 0x22, 0x17, 0x07, 0x24, 0x25, 0x00, 0x00, 0x01, 0xFF, 0xFD, 0xFF, 0xBD, 0x02, 0x40, 0x01, 0xC1, + 0x00, 0x27, 0x00, 0x00, 0x01, 0x16, 0x15, 0x14, 0x06, 0x07, 0x06, 0x26, 0x27, 0x06, 0x07, 0x0E, 0x01, 0x2E, 0x01, 0x37, 0x3E, 0x04, 0x33, 0x32, 0x36, + 0x34, 0x26, 0x23, 0x22, 0x07, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x36, 0x37, 0x36, 0x32, 0x02, 0x22, 0x1E, 0x97, 0x75, 0x38, 0x5B, 0x1B, 0x35, + 0x13, 0x05, 0x19, 0x18, 0x0B, 0x05, 0x09, 0x20, 0x40, 0x51, 0x7D, 0x47, 0x07, 0x09, 0x09, 0x07, 0xA9, 0x75, 0x02, 0x70, 0x50, 0x50, 0x2F, 0x4F, 0x18, + 0x05, 0x13, 0x01, 0xB6, 0x42, 0x4E, 0x83, 0xB9, 0x09, 0x06, 0x2E, 0x25, 0x2C, 0x2E, 0x0C, 0x0B, 0x0A, 0x19, 0x0C, 0x15, 0x2F, 0x3E, 0x30, 0x22, 0x09, + 0x0E, 0x09, 0x54, 0x0E, 0x06, 0x50, 0x70, 0x2F, 0x29, 0x08, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC4, 0x00, 0x21, 0x00, 0x00, 0x13, + 0x14, 0x1E, 0x03, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x2E, 0x04, 0x36, + 0x37, 0x36, 0x16, 0xD8, 0x23, 0x31, 0x31, 0x23, 0x71, 0x9E, 0x71, 0x37, 0x0B, 0x1E, 0x25, 0x1A, 0x1B, 0x26, 0x13, 0x1A, 0x1D, 0x13, 0x06, 0x15, 0x1A, + 0x0A, 0x22, 0x01, 0xA8, 0x1C, 0x32, 0x2C, 0x32, 0x4D, 0x2F, 0x4F, 0x71, 0x71, 0x4F, 0x4E, 0x39, 0x0C, 0x0C, 0x11, 0x55, 0x1B, 0x26, 0x25, 0x1B, 0x11, + 0x20, 0x1A, 0x1C, 0x22, 0x2A, 0x3D, 0x25, 0x0F, 0x0A, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x01, 0x80, 0x00, 0x0F, 0x00, 0x19, 0x00, + 0x2B, 0x00, 0x00, 0x25, 0x16, 0x14, 0x07, 0x0E, 0x01, 0x22, 0x26, 0x27, 0x26, 0x34, 0x37, 0x3E, 0x01, 0x32, 0x16, 0x07, 0x32, 0x36, 0x35, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x16, 0x37, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x27, 0x36, 0x02, 0x3D, 0x03, + 0x03, 0x2A, 0x98, 0xB6, 0x98, 0x2A, 0x03, 0x03, 0x2A, 0x98, 0xB6, 0x98, 0xF3, 0x3C, 0x54, 0x54, 0x78, 0x54, 0x54, 0x3C, 0x28, 0x38, 0x38, 0x4F, 0x39, + 0x04, 0x0C, 0x10, 0x14, 0x1C, 0x09, 0x0C, 0xCF, 0x07, 0x10, 0x07, 0x50, 0x61, 0x61, 0x50, 0x07, 0x10, 0x07, 0x50, 0x61, 0x61, 0xEF, 0x54, 0x3C, 0x3C, + 0x54, 0x54, 0x78, 0x54, 0xF0, 0x38, 0x4F, 0x39, 0x39, 0x27, 0x0D, 0x0C, 0x09, 0x1C, 0x14, 0x10, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x10, 0x00, 0x2F, 0x00, 0x45, 0x00, 0x00, 0x25, 0x32, 0x37, 0x17, 0x06, 0x23, 0x22, 0x26, 0x27, 0x26, 0x34, + 0x37, 0x36, 0x37, 0x17, 0x1E, 0x01, 0x05, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, + 0x1F, 0x01, 0x36, 0x33, 0x32, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x27, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x17, 0x36, 0x35, 0x34, 0x27, + 0x36, 0x33, 0x32, 0x16, 0x15, 0x30, 0x15, 0x14, 0x07, 0x01, 0x40, 0x0D, 0x0D, 0x34, 0x29, 0x25, 0x5B, 0x98, 0x2A, 0x03, 0x03, 0x0E, 0x17, 0x69, 0x04, + 0x52, 0x01, 0x73, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0xFD, 0xB3, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0x80, 0x45, 0x4E, 0x5B, 0x98, 0x2A, + 0x03, 0x03, 0x1F, 0x33, 0x49, 0x0E, 0x54, 0x3C, 0x34, 0x27, 0x49, 0x02, 0x09, 0x0D, 0x0D, 0x27, 0x38, 0x05, 0x30, 0x03, 0x29, 0x0A, 0x61, 0x50, 0x07, + 0x10, 0x07, 0x1A, 0x1D, 0x51, 0x38, 0x4D, 0x3A, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x01, 0xC7, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x63, + 0x26, 0x61, 0x50, 0x07, 0x10, 0x07, 0x3B, 0x2B, 0x39, 0x1D, 0x1F, 0x3C, 0x54, 0x21, 0x39, 0x05, 0x05, 0x10, 0x0C, 0x04, 0x38, 0x27, 0x01, 0x0F, 0x0F, + 0x00, 0x03, 0xFF, 0xF8, 0xFF, 0xC0, 0x02, 0x48, 0x01, 0xC1, 0x00, 0x0B, 0x00, 0x13, 0x00, 0x21, 0x00, 0x00, 0x25, 0x16, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x37, 0x13, 0x36, 0x32, 0x17, 0x02, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x27, 0x17, 0x14, 0x3B, 0x01, 0x32, 0x35, 0x37, 0x34, 0x26, 0x2B, 0x01, + 0x22, 0x06, 0x02, 0x3A, 0x0D, 0x1B, 0x1C, 0xFE, 0x20, 0x1C, 0x1B, 0x0D, 0xF0, 0x0E, 0x38, 0x0E, 0x17, 0x26, 0x1B, 0x1B, 0x26, 0x1B, 0x5A, 0x08, 0x0C, + 0x30, 0x0C, 0x08, 0x07, 0x05, 0x40, 0x05, 0x07, 0x08, 0x18, 0x30, 0x30, 0x18, 0x01, 0xA0, 0x18, 0x18, 0xFE, 0xB6, 0x1B, 0x26, 0x1B, 0x1B, 0x26, 0xC0, + 0x88, 0x0B, 0x0B, 0x88, 0x06, 0x07, 0x07, 0x00, 0x00, 0x01, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x28, 0x00, 0x00, 0x01, 0x32, 0x16, + 0x14, 0x06, 0x2B, 0x01, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x23, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3B, + 0x01, 0x32, 0x1F, 0x01, 0x33, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x01, 0xE0, 0x1E, 0x42, 0x42, 0x1E, 0x72, 0x69, 0x05, 0x09, 0x42, 0x08, + 0x09, 0x02, 0x31, 0x67, 0x2B, 0x05, 0x08, 0x28, 0x08, 0x09, 0x01, 0x20, 0x20, 0x01, 0x09, 0x08, 0x28, 0x08, 0x05, 0x2B, 0x67, 0x31, 0x02, 0x09, 0x08, + 0x42, 0x09, 0x05, 0x69, 0x01, 0x00, 0x27, 0x32, 0x27, 0xB8, 0x08, 0x0D, 0x07, 0xAC, 0x3A, 0x06, 0x0C, 0x08, 0x6C, 0x6C, 0x08, 0x0C, 0x06, 0x3A, 0xAC, + 0x07, 0x0D, 0x08, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2D, + 0x00, 0x39, 0x00, 0x45, 0x00, 0x51, 0x00, 0x6F, 0x00, 0x00, 0x15, 0x11, 0x21, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x25, 0x15, 0x14, 0x3B, 0x01, + 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x27, 0x15, 0x14, 0x3B, 0x01, 0x32, + 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x27, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, + 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x21, 0x35, 0x34, + 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x01, 0xC0, 0x1C, + 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x01, 0x40, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x80, 0x0C, 0x28, 0x0C, 0x0C, 0x28, + 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x80, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x01, 0x50, 0x14, 0x1C, 0xFE, + 0x40, 0x1C, 0x14, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x10, 0x01, 0x10, 0xFE, 0xF0, 0x14, 0x1C, 0x1C, 0xD8, 0x28, + 0x0C, 0x0C, 0x28, 0x0C, 0x8C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x74, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x8C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x74, 0x28, 0x0C, + 0x0C, 0x28, 0x0C, 0x8C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x01, 0x40, 0x1C, 0x14, 0x30, 0x30, 0x14, 0x1C, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, + 0x09, 0x09, 0x07, 0x30, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xDB, 0x02, 0x01, 0x01, 0xA5, 0x00, 0x13, 0x00, 0x1F, 0x00, 0x3B, 0x00, 0x00, 0x25, 0x16, 0x14, + 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x2F, 0x01, 0x37, 0x17, 0x33, 0x35, 0x34, 0x36, 0x17, 0x25, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, + 0x1F, 0x01, 0x07, 0x27, 0x21, 0x23, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x1F, 0x01, + 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x35, 0x01, 0xF9, 0x07, 0x07, 0x50, 0x0B, 0x1E, 0x3B, 0x05, 0x04, 0x46, 0x35, 0x35, 0x20, 0x1E, 0x0B, 0xFE, 0x63, + 0x0C, 0x0C, 0x6F, 0x05, 0x04, 0x46, 0x35, 0x35, 0x01, 0x20, 0x20, 0xDC, 0x04, 0x05, 0x6F, 0x0C, 0x0C, 0x54, 0xDC, 0x04, 0x05, 0x3B, 0x1E, 0x0B, 0x50, + 0x07, 0x07, 0x50, 0x0B, 0x1E, 0x59, 0x07, 0x14, 0x07, 0x50, 0x0B, 0x0C, 0x10, 0x28, 0x04, 0x4B, 0x3A, 0x39, 0x28, 0x10, 0x0C, 0x0B, 0x67, 0x0C, 0x38, + 0x0C, 0x04, 0x4B, 0x3A, 0x39, 0xEC, 0x04, 0x0C, 0x38, 0x0C, 0xEC, 0x04, 0x28, 0x10, 0x0C, 0x0B, 0x50, 0x07, 0x14, 0x07, 0x50, 0x0B, 0x0C, 0x10, 0x00, + 0x00, 0x00, 0x01, 0xFF, 0xFE, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x12, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x27, 0x06, 0x23, + 0x22, 0x26, 0x3E, 0x02, 0x37, 0x26, 0x35, 0x34, 0x96, 0xD4, 0x96, 0x96, 0x6A, 0x38, 0x33, 0x41, 0x4C, 0x05, 0x04, 0x07, 0x11, 0x1C, 0x06, 0x39, 0x01, + 0xA0, 0x7A, 0xAC, 0x7A, 0x13, 0x33, 0x0A, 0x07, 0x15, 0x31, 0x16, 0x39, 0x4A, 0x56, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xD3, 0x02, 0x01, 0x01, 0xAC, + 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x3E, 0x00, 0x00, 0x13, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x25, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x07, 0x33, 0x32, 0x16, 0x15, 0x06, 0x17, 0x14, 0x0E, 0x01, 0x22, + 0x2E, 0x01, 0x35, 0x34, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x36, 0xA4, 0x98, 0x05, 0x07, + 0x15, 0x0F, 0x68, 0x0F, 0x15, 0x07, 0x01, 0x57, 0x07, 0x05, 0x98, 0x0C, 0x15, 0x0F, 0x68, 0x0F, 0x15, 0xA4, 0x98, 0x05, 0x07, 0x01, 0x01, 0x4E, 0x74, + 0x7B, 0x74, 0x4F, 0x07, 0x05, 0x98, 0x05, 0x07, 0x32, 0x3C, 0x32, 0x07, 0x01, 0x2C, 0x07, 0x05, 0x50, 0x0F, 0x15, 0x15, 0x0F, 0x50, 0x05, 0x07, 0x0C, + 0x05, 0x07, 0x0C, 0x50, 0x0F, 0x15, 0x15, 0x0F, 0x7C, 0x07, 0x05, 0x2C, 0x09, 0x48, 0x74, 0x3B, 0x3B, 0x74, 0x47, 0x05, 0x31, 0x05, 0x07, 0x07, 0x05, + 0x34, 0x2D, 0x34, 0x34, 0x2D, 0x34, 0x05, 0x07, 0x00, 0x01, 0x00, 0x05, 0x00, 0x3B, 0x01, 0xBB, 0x01, 0x45, 0x00, 0x14, 0x00, 0x00, 0x13, 0x17, 0x16, + 0x14, 0x0F, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x07, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0xF1, 0xC2, 0x07, 0x07, 0x16, 0x07, 0x14, + 0x07, 0x9B, 0x9B, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0xC2, 0x07, 0x14, 0x01, 0x3D, 0xC2, 0x07, 0x14, 0x07, 0x16, 0x07, 0x01, 0x07, 0x9B, 0x9B, 0x07, + 0x01, 0x07, 0x16, 0x07, 0x14, 0x07, 0xC2, 0x08, 0x00, 0x00, 0x01, 0x00, 0x05, 0x00, 0x3B, 0x01, 0xBB, 0x01, 0x45, 0x00, 0x14, 0x00, 0x00, 0x37, 0x27, + 0x26, 0x34, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0xCF, 0xC2, 0x07, 0x07, 0x16, 0x07, + 0x14, 0x07, 0x9B, 0x9B, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0xC2, 0x07, 0x14, 0x43, 0xC2, 0x07, 0x14, 0x07, 0x16, 0x07, 0x01, 0x07, 0x9B, 0x9B, 0x07, + 0x01, 0x07, 0x16, 0x07, 0x14, 0x07, 0xC2, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0xFF, 0xFC, 0x02, 0x7D, 0x01, 0x84, 0x00, 0x21, 0x00, 0x43, 0x00, + 0x00, 0x25, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x35, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x1D, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x05, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, + 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x15, 0x33, 0x32, 0x02, 0x76, 0x65, 0x07, 0x14, 0x07, + 0x65, 0x07, 0x07, 0x0B, 0x07, 0x15, 0x07, 0x28, 0xBC, 0x09, 0x08, 0x10, 0x0B, 0x0C, 0x10, 0xF4, 0x0A, 0x0E, 0x28, 0x07, 0x15, 0x07, 0x0B, 0x07, 0xFE, + 0xF0, 0x10, 0x0B, 0x0C, 0x10, 0xF4, 0x0A, 0x0E, 0x28, 0x07, 0x15, 0x07, 0x0B, 0x07, 0x07, 0x65, 0x07, 0x14, 0x07, 0x65, 0x07, 0x07, 0x0B, 0x07, 0x15, + 0x07, 0x28, 0xBC, 0x09, 0x68, 0x64, 0x07, 0x07, 0x64, 0x07, 0x14, 0x07, 0x0B, 0x07, 0x07, 0x2B, 0xB6, 0x07, 0x10, 0x0B, 0x1E, 0x0E, 0x0A, 0xDE, 0x2B, + 0x07, 0x07, 0x0B, 0x07, 0x14, 0x16, 0x10, 0x0B, 0x1E, 0x0E, 0x0A, 0xDE, 0x2B, 0x07, 0x07, 0x0B, 0x07, 0x14, 0x07, 0x64, 0x07, 0x07, 0x64, 0x07, 0x14, + 0x07, 0x0B, 0x07, 0x07, 0x2B, 0xB6, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x42, 0x01, 0xC0, 0x00, 0x2E, 0x00, 0x00, 0x25, 0x06, 0x23, 0x21, 0x17, + 0x21, 0x32, 0x16, 0x0F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x23, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x03, + 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1F, 0x01, 0x21, 0x32, 0x16, 0x07, 0x02, 0x10, 0x04, 0x13, 0xFE, 0xDB, 0x06, 0x01, + 0x0D, 0x0B, 0x0E, 0x02, 0x06, 0x20, 0x21, 0x2E, 0x21, 0x11, 0xD2, 0x11, 0x21, 0x2E, 0x21, 0x1C, 0x46, 0x46, 0x0A, 0x0E, 0x0E, 0x0A, 0x67, 0x08, 0x0D, + 0x02, 0x09, 0x01, 0x89, 0x0C, 0x0E, 0x03, 0x93, 0x13, 0x20, 0x12, 0x0B, 0x19, 0x0F, 0x23, 0x17, 0x21, 0x21, 0x17, 0x18, 0x10, 0x10, 0x18, 0x17, 0x21, + 0x21, 0x17, 0x20, 0x11, 0x01, 0x57, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x0B, 0x08, 0x2D, 0x12, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x01, 0x80, 0x00, 0x11, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x17, 0x01, + 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xA0, 0x40, 0x01, 0x40, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0x14, + 0x1C, 0x40, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x44, 0x01, 0x80, 0x00, 0x0D, 0x00, 0x1D, 0x00, 0x00, 0x25, 0x07, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x3F, 0x01, 0x36, 0x33, 0x21, 0x32, 0x16, 0x25, 0x22, 0x06, 0x0F, 0x01, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x17, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x02, 0x3D, + 0x49, 0x12, 0x25, 0xFE, 0x70, 0x0E, 0x0E, 0x07, 0x49, 0x12, 0x25, 0x01, 0x90, 0x0E, 0x0E, 0xFE, 0x54, 0x1A, 0x2C, 0x0D, 0x45, 0x1C, 0x14, 0xA0, 0x40, + 0xA0, 0x14, 0x1C, 0x9C, 0x7C, 0x20, 0x18, 0x0C, 0x7C, 0x20, 0x18, 0x38, 0x1A, 0x16, 0x76, 0x01, 0x16, 0x14, 0x1C, 0x40, 0x1C, 0x14, 0x30, 0x00, 0x05, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x54, 0x00, 0x00, 0x25, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x33, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x33, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, + 0x01, 0x32, 0x16, 0x15, 0x11, 0x01, 0x4D, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x3A, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, + 0x05, 0xFE, 0xBA, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x3A, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0xDD, 0x07, 0x09, + 0x09, 0x07, 0xFE, 0x30, 0x0D, 0x13, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x08, 0x05, 0x86, 0x05, 0x08, 0x08, 0x05, 0x86, 0x05, 0x08, 0x08, 0x05, 0xE6, + 0x05, 0x08, 0x08, 0x05, 0xE6, 0x05, 0x08, 0x08, 0x05, 0x46, 0x05, 0x08, 0x08, 0x05, 0x46, 0x05, 0x08, 0x08, 0x05, 0xC6, 0x05, 0x08, 0x08, 0x05, 0xC6, + 0x05, 0x08, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x13, 0x0D, 0x01, 0x50, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xD0, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xE0, 0x02, + 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1C, 0x00, 0x2D, 0x00, 0x35, 0x00, 0x3D, 0x00, 0x4D, 0x00, 0x00, 0x13, 0x21, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x17, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x23, 0x05, 0x32, 0x3D, 0x01, + 0x34, 0x26, 0x2B, 0x01, 0x22, 0x0F, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x16, 0x14, + 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x35, 0x34, 0x36, 0x33, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x30, 0x01, 0xA0, 0x14, 0x1C, + 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x07, 0x09, 0x06, 0x74, 0x06, 0x06, 0x01, 0x40, 0x06, 0x09, 0x07, 0xFD, 0x03, 0x02, 0x1E, 0x8A, 0x06, + 0x06, 0xA8, 0x64, 0x46, 0x46, 0x64, 0x46, 0x54, 0x48, 0x34, 0x34, 0x48, 0x34, 0x21, 0x0E, 0x09, 0x13, 0x0D, 0x07, 0x09, 0x09, 0x07, 0x1A, 0x26, 0x01, + 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x20, 0x09, 0x07, 0x0A, 0x06, 0x06, 0x14, 0x06, 0x60, 0x06, 0x4A, 0x07, + 0x09, 0x03, 0x2D, 0x06, 0x24, 0x06, 0xFE, 0xF8, 0x46, 0x64, 0x46, 0x46, 0x64, 0x8A, 0x34, 0x48, 0x34, 0x34, 0x48, 0x34, 0x09, 0x07, 0x0D, 0x13, 0x09, + 0x0E, 0x09, 0x26, 0x1A, 0x07, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x21, 0x00, 0x29, 0x00, 0x00, 0x01, 0x14, 0x06, 0x23, + 0x22, 0x27, 0x07, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x26, 0x35, + 0x34, 0x36, 0x33, 0x32, 0x16, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x02, 0x00, 0x67, 0x49, 0x11, 0x10, 0x18, 0x07, 0x0B, 0x25, 0x0E, 0x0A, + 0x28, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x07, 0xA2, 0x09, 0x67, 0x49, 0x49, 0x67, 0xB0, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x01, 0x10, 0x49, 0x67, 0x03, 0x1B, + 0x08, 0x28, 0x0A, 0x0E, 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0x4E, 0x0A, 0x07, 0xA2, 0x1B, 0x1C, 0x49, 0x67, 0x67, 0x05, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x00, + 0x00, 0x06, 0xFF, 0xFA, 0xFF, 0xBE, 0x02, 0x82, 0x01, 0xC3, 0x00, 0x3B, 0x00, 0x43, 0x00, 0x83, 0x00, 0x8F, 0x00, 0xCB, 0x00, 0xD3, 0x00, 0x00, 0x01, + 0x07, 0x06, 0x27, 0x26, 0x27, 0x26, 0x3F, 0x01, 0x26, 0x27, 0x23, 0x22, 0x27, 0x26, 0x37, 0x36, 0x3B, 0x01, 0x36, 0x37, 0x27, 0x26, 0x37, 0x36, 0x37, + 0x36, 0x1F, 0x01, 0x36, 0x17, 0x37, 0x36, 0x17, 0x16, 0x17, 0x16, 0x0F, 0x01, 0x16, 0x17, 0x33, 0x32, 0x17, 0x16, 0x07, 0x06, 0x2B, 0x01, 0x06, 0x07, + 0x17, 0x16, 0x07, 0x06, 0x07, 0x06, 0x2F, 0x01, 0x06, 0x27, 0x16, 0x3E, 0x01, 0x27, 0x26, 0x0E, 0x01, 0x07, 0x17, 0x16, 0x07, 0x06, 0x07, 0x06, 0x2F, + 0x01, 0x06, 0x07, 0x15, 0x14, 0x06, 0x07, 0x06, 0x27, 0x2E, 0x01, 0x3D, 0x01, 0x26, 0x27, 0x07, 0x06, 0x27, 0x26, 0x27, 0x26, 0x3F, 0x01, 0x26, 0x37, + 0x27, 0x26, 0x37, 0x36, 0x37, 0x36, 0x1F, 0x01, 0x36, 0x37, 0x35, 0x34, 0x36, 0x37, 0x36, 0x17, 0x1E, 0x01, 0x1D, 0x01, 0x16, 0x17, 0x37, 0x36, 0x17, + 0x16, 0x17, 0x16, 0x0F, 0x01, 0x16, 0x07, 0x3E, 0x01, 0x2E, 0x01, 0x06, 0x07, 0x0E, 0x01, 0x1E, 0x01, 0x36, 0x05, 0x07, 0x06, 0x27, 0x26, 0x27, 0x26, + 0x3F, 0x01, 0x26, 0x27, 0x23, 0x22, 0x27, 0x26, 0x37, 0x36, 0x3B, 0x01, 0x36, 0x37, 0x27, 0x26, 0x37, 0x36, 0x37, 0x36, 0x1F, 0x01, 0x36, 0x17, 0x37, + 0x36, 0x17, 0x16, 0x17, 0x16, 0x0F, 0x01, 0x16, 0x17, 0x33, 0x32, 0x17, 0x16, 0x07, 0x06, 0x2B, 0x01, 0x06, 0x07, 0x17, 0x16, 0x07, 0x06, 0x07, 0x06, + 0x2F, 0x01, 0x06, 0x27, 0x16, 0x3E, 0x01, 0x27, 0x26, 0x0E, 0x01, 0x02, 0x00, 0x08, 0x05, 0x0A, 0x12, 0x0E, 0x08, 0x05, 0x08, 0x0A, 0x06, 0x10, 0x0B, + 0x01, 0x04, 0x04, 0x01, 0x0B, 0x10, 0x06, 0x0A, 0x08, 0x05, 0x08, 0x0E, 0x12, 0x0A, 0x05, 0x08, 0x10, 0x10, 0x08, 0x05, 0x0A, 0x12, 0x0E, 0x08, 0x05, + 0x08, 0x0A, 0x06, 0x10, 0x0B, 0x01, 0x04, 0x04, 0x01, 0x0B, 0x10, 0x06, 0x0A, 0x08, 0x05, 0x08, 0x0E, 0x12, 0x0A, 0x05, 0x08, 0x10, 0x1A, 0x12, 0x26, + 0x09, 0x0D, 0x12, 0x26, 0x09, 0x67, 0x22, 0x11, 0x07, 0x09, 0x21, 0x0D, 0x11, 0x1E, 0x18, 0x1E, 0x0C, 0x08, 0x26, 0x26, 0x09, 0x0B, 0x1F, 0x18, 0x1D, + 0x11, 0x0D, 0x20, 0x0A, 0x07, 0x11, 0x21, 0x06, 0x06, 0x21, 0x12, 0x08, 0x0A, 0x20, 0x0C, 0x12, 0x1D, 0x19, 0x1E, 0x0B, 0x09, 0x26, 0x26, 0x08, 0x0C, + 0x1E, 0x18, 0x1E, 0x11, 0x0D, 0x20, 0x0A, 0x07, 0x11, 0x22, 0x06, 0x7B, 0x11, 0x04, 0x16, 0x23, 0x30, 0x16, 0x11, 0x04, 0x16, 0x23, 0x30, 0x01, 0x09, + 0x08, 0x05, 0x0A, 0x12, 0x0E, 0x08, 0x05, 0x08, 0x0A, 0x06, 0x10, 0x0B, 0x01, 0x04, 0x04, 0x01, 0x0B, 0x10, 0x06, 0x0A, 0x08, 0x05, 0x08, 0x0E, 0x12, + 0x0A, 0x05, 0x08, 0x10, 0x10, 0x08, 0x05, 0x0A, 0x12, 0x0E, 0x08, 0x05, 0x08, 0x0A, 0x06, 0x10, 0x0B, 0x01, 0x04, 0x04, 0x01, 0x0B, 0x10, 0x06, 0x0A, + 0x08, 0x05, 0x08, 0x0E, 0x12, 0x0A, 0x05, 0x08, 0x10, 0x1A, 0x12, 0x26, 0x09, 0x0D, 0x12, 0x26, 0x09, 0x01, 0x01, 0x0E, 0x09, 0x03, 0x07, 0x0C, 0x07, + 0x09, 0x0E, 0x0C, 0x0F, 0x0B, 0x12, 0x13, 0x0A, 0x0F, 0x0C, 0x0F, 0x09, 0x06, 0x0C, 0x07, 0x04, 0x09, 0x0F, 0x03, 0x03, 0x0F, 0x09, 0x04, 0x06, 0x0D, + 0x06, 0x09, 0x0F, 0x0C, 0x0F, 0x0A, 0x13, 0x12, 0x0B, 0x0F, 0x0C, 0x0E, 0x0A, 0x06, 0x0C, 0x07, 0x03, 0x09, 0x0E, 0x03, 0x3E, 0x0E, 0x0C, 0x23, 0x14, + 0x0E, 0x0C, 0x23, 0xAE, 0x11, 0x0A, 0x13, 0x1A, 0x28, 0x0F, 0x0A, 0x11, 0x15, 0x0B, 0x22, 0x08, 0x0E, 0x01, 0x07, 0x07, 0x01, 0x0E, 0x08, 0x22, 0x0B, + 0x15, 0x11, 0x0A, 0x0F, 0x27, 0x1B, 0x13, 0x0A, 0x11, 0x20, 0x1F, 0x11, 0x0A, 0x13, 0x1B, 0x27, 0x0F, 0x0A, 0x10, 0x15, 0x0A, 0x22, 0x09, 0x0D, 0x01, + 0x07, 0x07, 0x01, 0x0D, 0x09, 0x22, 0x0B, 0x14, 0x10, 0x0B, 0x10, 0x26, 0x1C, 0x13, 0x0A, 0x11, 0x1F, 0x35, 0x16, 0x30, 0x23, 0x16, 0x05, 0x11, 0x16, + 0x30, 0x23, 0x16, 0x05, 0xA6, 0x0E, 0x09, 0x03, 0x07, 0x0C, 0x07, 0x09, 0x0E, 0x0C, 0x0F, 0x0B, 0x12, 0x13, 0x0A, 0x0F, 0x0D, 0x0E, 0x09, 0x07, 0x0C, + 0x06, 0x04, 0x09, 0x0F, 0x03, 0x03, 0x0F, 0x09, 0x04, 0x06, 0x0C, 0x07, 0x09, 0x0E, 0x0D, 0x0F, 0x0A, 0x13, 0x12, 0x0B, 0x0F, 0x0C, 0x0E, 0x09, 0x07, + 0x0C, 0x07, 0x03, 0x09, 0x0E, 0x03, 0x3E, 0x0E, 0x0C, 0x23, 0x14, 0x0E, 0x0C, 0x23, 0x00, 0x00, 0x02, 0xFF, 0xFE, 0xFF, 0xE0, 0x02, 0x42, 0x01, 0xA0, + 0x00, 0x11, 0x00, 0x29, 0x00, 0x00, 0x00, 0x14, 0x06, 0x23, 0x22, 0x27, 0x06, 0x23, 0x22, 0x26, 0x37, 0x36, 0x37, 0x26, 0x35, 0x34, 0x36, 0x32, 0x13, + 0x16, 0x17, 0x16, 0x06, 0x23, 0x22, 0x27, 0x06, 0x23, 0x22, 0x26, 0x27, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x27, 0x1E, 0x01, 0x15, 0x14, 0x01, 0xA0, + 0x7A, 0x56, 0x3C, 0x33, 0x2B, 0x2E, 0x05, 0x04, 0x03, 0x15, 0x0F, 0x26, 0x7A, 0xAC, 0xF4, 0x0F, 0x15, 0x03, 0x04, 0x05, 0x2E, 0x2B, 0x33, 0x3C, 0x40, + 0x68, 0x18, 0x12, 0x0E, 0x63, 0x8D, 0x01, 0x39, 0x48, 0x01, 0x42, 0x84, 0x5E, 0x19, 0x19, 0x0A, 0x04, 0x14, 0x22, 0x29, 0x33, 0x42, 0x5E, 0xFE, 0x84, + 0x22, 0x14, 0x04, 0x0A, 0x19, 0x19, 0x36, 0x2C, 0x02, 0x71, 0x4F, 0x0B, 0x09, 0x12, 0x51, 0x31, 0x33, 0x00, 0x00, 0x01, 0x00, 0x0F, 0xFF, 0xBA, 0x01, + 0x20, 0x01, 0xC0, 0x00, 0x0D, 0x00, 0x00, 0x01, 0x11, 0x07, 0x06, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3F, 0x02, 0x36, 0x01, 0x20, 0x83, 0x11, 0x20, + 0x03, 0x19, 0x6A, 0x0E, 0x0C, 0x14, 0x92, 0x41, 0x09, 0x01, 0xC0, 0xFE, 0x48, 0x44, 0x09, 0x17, 0x14, 0x91, 0x67, 0x0E, 0x26, 0x03, 0x15, 0x84, 0x12, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xBF, 0x01, 0x81, 0x01, 0xC0, 0x00, 0x2B, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, + 0x15, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x01, 0x2A, 0x26, 0x30, 0x0E, 0x0A, 0x88, 0x01, 0x18, 0x02, 0x0A, 0x02, 0x18, 0x01, + 0x88, 0x0A, 0x0E, 0x30, 0x26, 0x0C, 0x2A, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x10, 0x0A, 0x0E, 0x0E, 0x0A, 0x2A, 0xEA, 0x12, 0x3B, 0x25, 0x0A, 0x0E, 0x68, + 0x02, 0x02, 0x30, 0x04, 0x04, 0x30, 0x02, 0x02, 0x68, 0x0E, 0x0A, 0x24, 0x3C, 0x12, 0x76, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x33, 0x00, 0x3B, 0x00, 0x43, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x07, 0x06, 0x07, 0x0E, 0x01, 0x0F, 0x01, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x23, 0x21, 0x22, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, + 0x2E, 0x02, 0x27, 0x26, 0x27, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x05, 0x16, 0x17, 0x26, + 0x27, 0x23, 0x15, 0x14, 0x25, 0x35, 0x23, 0x06, 0x07, 0x36, 0x37, 0x36, 0x02, 0x28, 0x0A, 0x0E, 0x3E, 0x30, 0x3E, 0x0E, 0x22, 0x0A, 0x0A, 0x30, 0x1B, + 0x25, 0x0C, 0xFE, 0xD8, 0x0C, 0x25, 0x1B, 0x30, 0x04, 0x0E, 0x24, 0x0E, 0x3E, 0x30, 0x3E, 0x0E, 0x0A, 0x68, 0x0E, 0x0A, 0x01, 0x10, 0x0A, 0x0E, 0xFE, + 0xA3, 0x13, 0x17, 0x0B, 0x02, 0x40, 0x01, 0xC0, 0x40, 0x02, 0x0B, 0x17, 0x13, 0x23, 0x01, 0x80, 0x0E, 0x0A, 0x38, 0x38, 0x2D, 0x22, 0x07, 0x18, 0x24, + 0x07, 0x07, 0x48, 0x1E, 0x1A, 0x0C, 0x0C, 0x0C, 0x0C, 0x1A, 0x1E, 0x48, 0x02, 0x0A, 0x26, 0x18, 0x07, 0x22, 0x2D, 0x38, 0x38, 0x0A, 0x0E, 0x28, 0x0A, + 0x0E, 0x0E, 0x0A, 0x28, 0x81, 0x0D, 0x08, 0x29, 0x2D, 0x10, 0x17, 0x17, 0x10, 0x2D, 0x29, 0x08, 0x0D, 0x1A, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, + 0x02, 0x00, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x3F, 0x00, 0x00, 0x25, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3F, 0x01, + 0x36, 0x32, 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x37, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, + 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x33, 0x32, 0x16, 0x06, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x16, 0x32, 0x01, 0x28, 0x50, 0x0A, 0x0E, 0x58, 0x0D, 0x0A, 0x09, 0x98, 0x06, 0x10, 0x06, 0x98, 0x09, 0x0A, 0x0D, 0x58, 0x0E, 0xCE, 0x0E, 0x0A, + 0xFE, 0x30, 0x0A, 0x0E, 0x0E, 0x0A, 0x88, 0x21, 0x17, 0x50, 0x17, 0x21, 0x88, 0x0A, 0x0E, 0x7C, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0x4C, 0x0C, 0x10, 0x0C, + 0x0C, 0x10, 0x40, 0x0E, 0x0A, 0xA8, 0x19, 0x09, 0x98, 0x06, 0x06, 0x98, 0x09, 0x19, 0xA8, 0x0A, 0x0E, 0x08, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0x70, 0x0A, + 0x0E, 0x08, 0x17, 0x21, 0x21, 0x17, 0x08, 0x0E, 0x6A, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x00, 0x02, 0xFF, 0xFC, 0xFF, + 0xBC, 0x02, 0x04, 0x01, 0xC4, 0x00, 0x23, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1E, 0x01, 0x07, 0x0E, 0x01, 0x16, 0x0E, 0x06, 0x26, 0x06, 0x07, 0x06, 0x2E, + 0x02, 0x37, 0x3E, 0x01, 0x26, 0x3E, 0x06, 0x16, 0x36, 0x37, 0x36, 0x07, 0x3E, 0x01, 0x2E, 0x01, 0x07, 0x0E, 0x01, 0x07, 0x06, 0x16, 0x17, 0x32, 0x33, + 0x32, 0x37, 0x3E, 0x01, 0x01, 0xD8, 0x22, 0x09, 0x09, 0x08, 0x02, 0x07, 0x02, 0x0A, 0x27, 0x42, 0x46, 0x3A, 0x3B, 0x2D, 0x2B, 0x0D, 0x0F, 0x2B, 0x22, + 0x09, 0x09, 0x08, 0x02, 0x07, 0x02, 0x0A, 0x27, 0x42, 0x46, 0x3A, 0x3B, 0x2D, 0x2B, 0x0D, 0x0F, 0xB9, 0x06, 0x07, 0x03, 0x0B, 0x07, 0x34, 0x6A, 0x0E, + 0x01, 0x07, 0x06, 0x02, 0x02, 0x0C, 0x04, 0x0A, 0x5E, 0x01, 0xBA, 0x22, 0x2B, 0x0F, 0x0D, 0x2B, 0x2D, 0x3B, 0x3A, 0x46, 0x42, 0x27, 0x0A, 0x02, 0x07, + 0x02, 0x08, 0x09, 0x09, 0x22, 0x2B, 0x0F, 0x0D, 0x2B, 0x2D, 0x3B, 0x3A, 0x46, 0x42, 0x27, 0x0A, 0x02, 0x07, 0x02, 0x08, 0x09, 0x63, 0x02, 0x0B, 0x0D, + 0x07, 0x01, 0x0E, 0x6A, 0x34, 0x07, 0x0B, 0x02, 0x0C, 0x2C, 0x5E, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFC, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC4, 0x00, 0x17, + 0x00, 0x00, 0x01, 0x16, 0x15, 0x14, 0x00, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x3E, 0x01, 0x37, 0x27, 0x26, 0x3F, 0x01, 0x36, + 0x17, 0x01, 0xED, 0x13, 0xFE, 0xF0, 0xC0, 0x13, 0x04, 0x18, 0x05, 0x13, 0x70, 0x10, 0x0C, 0x31, 0x3B, 0x5B, 0x1B, 0x3C, 0x0E, 0x07, 0x30, 0x08, 0x13, + 0x01, 0xA7, 0x04, 0x13, 0xC0, 0xFE, 0xF0, 0x13, 0x68, 0x13, 0x08, 0x30, 0x07, 0x0E, 0x3C, 0x1B, 0x5C, 0x3A, 0x32, 0x0B, 0x11, 0x70, 0x12, 0x05, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x2E, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x13, 0x32, 0x36, 0x35, 0x34, 0x2F, 0x01, 0x22, 0x23, 0x22, 0x0F, 0x01, 0x06, 0x15, 0x14, 0x1F, 0x01, + 0x06, 0x07, 0x27, 0x26, 0x23, 0x22, 0x0F, 0x01, 0x06, 0x15, 0x14, 0x15, 0x17, 0x16, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, + 0x14, 0x2E, 0x78, 0xAA, 0x0C, 0x41, 0x01, 0x02, 0x0A, 0x04, 0x1E, 0x01, 0x06, 0x25, 0x23, 0x4B, 0x1F, 0x05, 0x07, 0x03, 0x03, 0x46, 0x09, 0x0F, 0x03, + 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xFE, 0x80, 0xAA, 0x78, 0x0C, 0x03, 0x0F, 0x09, 0x46, 0x03, 0x03, + 0x07, 0x05, 0x1F, 0x4B, 0x23, 0x25, 0x06, 0x01, 0x1E, 0x04, 0x0A, 0x02, 0x01, 0x41, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, + 0xC1, 0x00, 0x26, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, + 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x18, 0x59, 0x7D, 0x5A, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x2B, 0x1E, 0x1D, 0x2A, 0xC0, 0x1C, 0x14, 0xA0, 0x14, 0x1C, + 0x1C, 0x14, 0xA0, 0x14, 0x1C, 0x66, 0x40, 0x5A, 0x59, 0x3F, 0x10, 0x0A, 0x0E, 0x0E, 0x0A, 0x10, 0x1E, 0x2A, 0x2B, 0x1E, 0x67, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x40, 0x01, 0xA0, 0x00, 0x09, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2B, 0x00, 0x00, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x37, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x07, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, + 0x2B, 0x01, 0x22, 0x01, 0x15, 0x21, 0x35, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x02, 0x40, 0x1C, 0x14, 0xFE, 0x20, 0x14, 0x1C, 0xC0, 0x0C, 0x88, 0x0C, + 0x0C, 0x88, 0x0C, 0x80, 0x0C, 0x48, 0x0C, 0x0C, 0x48, 0x0C, 0x02, 0x00, 0xFD, 0xC0, 0x1C, 0x14, 0x01, 0xE0, 0x14, 0x1C, 0x10, 0xB0, 0xB0, 0x14, 0x1C, + 0x1C, 0x58, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x01, 0x10, 0x30, 0x30, 0x14, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0xFF, 0xDF, 0x01, 0xC1, 0x01, 0xA1, 0x00, 0x07, 0x00, 0x1B, 0x00, 0x30, 0x00, 0x00, 0x36, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x17, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x2E, 0x01, 0x27, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x1E, 0x01, 0x17, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x35, 0x2E, 0x01, 0x27, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x1E, 0x02, 0x80, 0x25, 0x35, 0x26, 0x26, 0x35, 0xD5, 0x09, 0x07, 0x30, 0x07, + 0x09, 0x06, 0x77, 0x54, 0x06, 0x09, 0x0A, 0x07, 0x74, 0xA4, 0x97, 0x09, 0x07, 0x30, 0x07, 0x09, 0x06, 0xCB, 0x90, 0x06, 0x09, 0x0A, 0x07, 0x73, 0xC4, + 0x74, 0x3B, 0x35, 0x26, 0x26, 0x35, 0x25, 0x6F, 0x07, 0x0A, 0x09, 0x06, 0x54, 0x77, 0x06, 0x09, 0x07, 0x30, 0x07, 0x09, 0x07, 0xA4, 0x74, 0x07, 0x0A, + 0x09, 0x06, 0x90, 0xCB, 0x06, 0x09, 0x07, 0x30, 0x07, 0x09, 0x04, 0x75, 0xC3, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x01, 0x80, 0x00, 0x0F, + 0x00, 0x1B, 0x00, 0x23, 0x00, 0x2B, 0x00, 0x00, 0x25, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x27, + 0x21, 0x22, 0x07, 0x37, 0x36, 0x33, 0x21, 0x32, 0x1F, 0x01, 0x26, 0x06, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, + 0x36, 0x34, 0x02, 0x40, 0x1C, 0x14, 0xFE, 0x20, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xE0, 0x14, 0x1C, 0x30, 0xFE, 0x20, 0x10, 0x0F, 0x61, 0x0E, 0x1A, 0x01, + 0x0C, 0x1A, 0x0E, 0x61, 0x0F, 0x33, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x73, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x90, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x60, 0x14, + 0x1C, 0x1C, 0x3C, 0x06, 0x91, 0x15, 0x15, 0x91, 0x06, 0x60, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x2C, 0x00, 0x34, 0x00, 0x00, 0x24, 0x14, 0x07, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2F, 0x01, + 0x26, 0x2B, 0x01, 0x06, 0x15, 0x14, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, + 0x01, 0x32, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x07, 0x11, 0x07, 0x06, 0x23, 0x15, 0x32, 0x17, 0x02, 0x40, 0x20, 0x10, 0x10, 0x0B, 0x09, + 0x55, 0x42, 0x55, 0x1C, 0x04, 0x1A, 0x0B, 0x12, 0x13, 0x4B, 0x14, 0x08, 0x19, 0x02, 0x22, 0x1B, 0x25, 0x25, 0x1B, 0xC0, 0x55, 0x42, 0x55, 0x09, 0x0B, + 0x10, 0x10, 0x40, 0x21, 0x54, 0x6B, 0x6B, 0x54, 0xF5, 0x4A, 0x12, 0x99, 0x0A, 0x16, 0x07, 0x44, 0x35, 0x10, 0x10, 0x2B, 0x22, 0x10, 0x23, 0x11, 0x35, + 0x3A, 0x10, 0x10, 0x25, 0x1B, 0x60, 0x1B, 0x25, 0x35, 0x44, 0x07, 0x16, 0x0A, 0x99, 0xC4, 0x01, 0x1A, 0x1A, 0x43, 0x60, 0x43, 0x00, 0x00, 0x01, 0xFF, + 0xFD, 0xFF, 0xBD, 0x02, 0x03, 0x01, 0xC3, 0x00, 0x3B, 0x00, 0x00, 0x25, 0x17, 0x16, 0x06, 0x0F, 0x01, 0x17, 0x16, 0x06, 0x2F, 0x01, 0x07, 0x0E, 0x01, + 0x2F, 0x01, 0x07, 0x06, 0x26, 0x2F, 0x01, 0x07, 0x06, 0x26, 0x3F, 0x01, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x27, 0x26, 0x36, + 0x1F, 0x01, 0x37, 0x3E, 0x01, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x0F, 0x01, 0x17, 0x1E, 0x01, 0x07, 0x01, 0xCB, 0x2E, 0x0A, + 0x08, 0x0D, 0x3F, 0x12, 0x04, 0x14, 0x0E, 0x3E, 0x10, 0x03, 0x1C, 0x09, 0x2D, 0x2D, 0x09, 0x1C, 0x03, 0x10, 0x3E, 0x0E, 0x14, 0x04, 0x12, 0x3F, 0x0D, + 0x08, 0x0A, 0x2E, 0x2E, 0x0A, 0x08, 0x0D, 0x3F, 0x12, 0x04, 0x14, 0x0E, 0x3E, 0x10, 0x03, 0x1C, 0x09, 0x2D, 0x2D, 0x0A, 0x1B, 0x03, 0x10, 0x3E, 0x0E, + 0x14, 0x04, 0x12, 0x3F, 0x0D, 0x08, 0x0A, 0xC0, 0x2D, 0x0A, 0x1B, 0x03, 0x10, 0x3E, 0x0E, 0x14, 0x04, 0x12, 0x3F, 0x0E, 0x07, 0x0A, 0x2E, 0x2E, 0x0A, + 0x07, 0x0E, 0x3F, 0x12, 0x04, 0x14, 0x0E, 0x3E, 0x10, 0x03, 0x1B, 0x0A, 0x2D, 0x2D, 0x0A, 0x1B, 0x03, 0x10, 0x3E, 0x0E, 0x14, 0x04, 0x12, 0x3F, 0x0E, + 0x07, 0x0A, 0x2F, 0x2F, 0x0A, 0x08, 0x0D, 0x3F, 0x12, 0x04, 0x14, 0x0E, 0x3E, 0x10, 0x03, 0x1B, 0x0A, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x01, 0x81, 0x00, 0x26, 0x00, 0x36, 0x00, 0x3E, 0x00, 0x00, 0x25, 0x14, 0x06, 0x2B, 0x01, 0x16, 0x06, 0x07, 0x16, 0x06, 0x07, 0x16, 0x06, 0x23, + 0x2A, 0x01, 0x23, 0x22, 0x26, 0x27, 0x2E, 0x01, 0x3D, 0x01, 0x34, 0x37, 0x3E, 0x01, 0x37, 0x36, 0x33, 0x32, 0x16, 0x07, 0x06, 0x07, 0x33, 0x32, 0x16, + 0x05, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x06, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x02, + 0x00, 0x1B, 0x12, 0x64, 0x0D, 0x01, 0x12, 0x0A, 0x0C, 0x0E, 0x06, 0x27, 0x28, 0x01, 0x0E, 0x01, 0x23, 0x47, 0x12, 0x08, 0x0C, 0x1C, 0x1F, 0x45, 0x08, + 0x0C, 0x1C, 0x1A, 0x1C, 0x0A, 0x05, 0x09, 0x95, 0x12, 0x1B, 0xFE, 0x60, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x1C, 0x0C, 0x10, + 0x0C, 0x0C, 0x10, 0xF8, 0x11, 0x1A, 0x0D, 0x2B, 0x0F, 0x12, 0x25, 0x08, 0x23, 0x24, 0x24, 0x03, 0x01, 0x0D, 0x09, 0xAC, 0x1F, 0x0D, 0x0D, 0x2D, 0x13, + 0x1D, 0x2B, 0x18, 0x0C, 0x0D, 0x1A, 0x12, 0xC0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC0, 0x0A, 0x0E, 0x0E, 0xBA, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x81, 0x00, 0x26, 0x00, 0x36, 0x00, 0x3E, 0x00, 0x00, 0x13, 0x33, 0x26, 0x27, 0x26, 0x36, 0x33, 0x32, 0x17, + 0x1E, 0x01, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x07, 0x0E, 0x01, 0x23, 0x2A, 0x01, 0x23, 0x22, 0x26, 0x37, 0x2E, 0x01, 0x37, 0x2E, 0x01, 0x37, 0x23, + 0x22, 0x26, 0x35, 0x34, 0x36, 0x05, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x16, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x2D, 0x95, 0x09, 0x05, 0x0A, 0x1C, 0x1A, 0x1C, 0x0C, 0x08, 0x45, 0x1F, 0x1C, 0x0C, 0x08, 0x12, 0x47, 0x23, 0x01, 0x0E, 0x01, + 0x28, 0x27, 0x06, 0x0E, 0x0C, 0x0A, 0x12, 0x01, 0x0D, 0x64, 0x12, 0x1B, 0x1B, 0x01, 0x9D, 0x30, 0x0A, 0x0E, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x0E, 0x1A, + 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x01, 0x24, 0x0D, 0x0C, 0x18, 0x2B, 0x1D, 0x13, 0x2D, 0x0D, 0x0D, 0x1F, 0xAC, 0x09, 0x0D, 0x01, 0x03, 0x24, 0x24, 0x23, + 0x08, 0x25, 0x12, 0x0F, 0x2B, 0x0D, 0x1A, 0x11, 0x12, 0x1A, 0x14, 0x0E, 0x0A, 0xC0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC0, 0x0A, 0x0E, 0xD4, 0x0C, 0x10, 0x0C, + 0x0C, 0x10, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x26, 0x00, 0x36, 0x00, 0x3E, 0x00, 0x00, 0x13, 0x32, 0x16, 0x1D, + 0x01, 0x36, 0x16, 0x17, 0x36, 0x16, 0x17, 0x36, 0x16, 0x15, 0x1C, 0x01, 0x15, 0x14, 0x06, 0x07, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x27, 0x2E, 0x01, 0x27, + 0x26, 0x35, 0x34, 0x36, 0x17, 0x16, 0x17, 0x35, 0x34, 0x36, 0x13, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x16, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x88, 0x11, 0x1A, 0x0D, 0x2B, 0x0F, 0x12, 0x25, 0x08, 0x23, 0x24, 0x24, 0x03, 0x01, 0x0D, 0x09, + 0xAC, 0x1F, 0x0D, 0x0D, 0x2D, 0x13, 0x1D, 0x2B, 0x18, 0x0C, 0x0D, 0x1A, 0x12, 0xC0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC0, 0x0A, 0x0E, 0x0E, 0xBA, 0x10, 0x0C, + 0x0C, 0x10, 0x0C, 0x01, 0xC0, 0x1B, 0x12, 0x64, 0x0D, 0x01, 0x12, 0x0A, 0x0C, 0x0E, 0x06, 0x27, 0x28, 0x01, 0x0E, 0x01, 0x23, 0x47, 0x12, 0x08, 0x0C, + 0x1C, 0x1F, 0x45, 0x08, 0x0C, 0x1C, 0x1A, 0x1C, 0x0A, 0x05, 0x09, 0x95, 0x12, 0x1B, 0xFE, 0x60, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x0E, 0x0A, 0x30, 0x0A, + 0x0E, 0x1C, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x26, 0x00, 0x36, 0x00, 0x3E, 0x00, + 0x00, 0x17, 0x35, 0x06, 0x07, 0x06, 0x26, 0x35, 0x34, 0x37, 0x3E, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x1E, 0x01, 0x15, 0x1C, 0x01, 0x15, + 0x14, 0x06, 0x27, 0x0E, 0x01, 0x27, 0x0E, 0x01, 0x27, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x13, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x5C, 0x0D, 0x0C, 0x18, 0x2B, 0x1D, 0x13, 0x2D, 0x0D, 0x0D, 0x1F, + 0xAC, 0x09, 0x0D, 0x01, 0x03, 0x24, 0x24, 0x23, 0x08, 0x25, 0x12, 0x0F, 0x2B, 0x0D, 0x1A, 0x11, 0x12, 0x1A, 0x14, 0x0E, 0x0A, 0xC0, 0x0A, 0x0E, 0x0E, + 0x0A, 0xC0, 0x0A, 0x0E, 0xD4, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0x13, 0x95, 0x09, 0x05, 0x0A, 0x1C, 0x1A, 0x1C, 0x0C, 0x08, 0x45, 0x1F, 0x1C, 0x0C, 0x08, + 0x12, 0x47, 0x23, 0x01, 0x0E, 0x01, 0x28, 0x27, 0x06, 0x0E, 0x0C, 0x0A, 0x12, 0x01, 0x0D, 0x64, 0x12, 0x1B, 0x1B, 0x01, 0x9D, 0x30, 0x0A, 0x0E, 0x0E, + 0x0A, 0x30, 0x0A, 0x0E, 0x0E, 0x1A, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, + 0x00, 0x25, 0x00, 0x00, 0x04, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x27, 0x33, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x37, 0x36, + 0x34, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x32, 0x3F, 0x01, 0x36, 0x34, 0x01, 0x67, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xDB, + 0x4C, 0xB7, 0x0A, 0x0E, 0x0E, 0x0A, 0xB7, 0x4C, 0x07, 0x07, 0x0B, 0x07, 0x14, 0x07, 0x84, 0x07, 0x07, 0x84, 0x07, 0x14, 0x07, 0x0B, 0x07, 0x38, 0x91, + 0xCE, 0x91, 0x91, 0xCE, 0x01, 0x48, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x48, 0x07, 0x15, 0x07, 0x0B, 0x07, 0x07, 0x85, 0x07, 0x14, 0x07, 0x85, 0x07, 0x07, + 0x0B, 0x07, 0x15, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x25, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, + 0x22, 0x26, 0x34, 0x37, 0x17, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x07, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x32, 0x3F, 0x01, 0x36, 0x34, + 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x14, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xDB, 0x4C, 0xB7, 0x0A, 0x0E, 0x0E, 0x0A, 0xB7, 0x4C, 0x07, 0x07, + 0x0B, 0x07, 0x14, 0x07, 0x84, 0x07, 0x07, 0x84, 0x07, 0x14, 0x07, 0x0B, 0x07, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x01, 0x48, 0x0E, 0x0A, 0x10, + 0x0A, 0x0E, 0x48, 0x07, 0x15, 0x07, 0x0B, 0x07, 0x07, 0x85, 0x07, 0x14, 0x07, 0x85, 0x07, 0x07, 0x0B, 0x07, 0x15, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, + 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x25, 0x00, 0x00, 0x36, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x27, 0x37, 0x15, 0x14, 0x16, 0x3B, + 0x01, 0x32, 0x36, 0x3D, 0x01, 0x17, 0x16, 0x32, 0x3F, 0x01, 0x36, 0x34, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x32, 0x08, + 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x01, 0x48, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x48, 0x07, 0x15, 0x07, 0x0B, 0x07, 0x07, 0x85, 0x07, 0x14, 0x07, 0x85, 0x07, + 0x07, 0x0B, 0x07, 0x15, 0x59, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xDB, 0x4C, 0xB7, 0x0A, 0x0E, 0x0E, 0x0A, 0xB7, 0x4C, 0x07, 0x07, 0x0B, 0x07, 0x14, 0x07, + 0x84, 0x07, 0x07, 0x84, 0x07, 0x14, 0x07, 0x0B, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x25, + 0x00, 0x00, 0x00, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x17, 0x07, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x27, 0x26, 0x22, 0x0F, + 0x01, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x32, 0x3F, 0x01, 0x36, 0x34, 0x2F, 0x01, 0x26, 0x22, 0x01, 0xF8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x01, 0x48, 0x0E, + 0x0A, 0x10, 0x0A, 0x0E, 0x48, 0x07, 0x15, 0x07, 0x0B, 0x07, 0x07, 0x85, 0x07, 0x14, 0x07, 0x85, 0x07, 0x07, 0x0B, 0x07, 0x15, 0x01, 0x27, 0xCE, 0x91, + 0x91, 0xCE, 0x91, 0xDB, 0x4C, 0xB7, 0x0A, 0x0E, 0x0E, 0x0A, 0xB7, 0x4C, 0x07, 0x07, 0x0B, 0x07, 0x14, 0x07, 0x84, 0x07, 0x07, 0x84, 0x07, 0x14, 0x07, + 0x0B, 0x07, 0x00, 0x09, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x05, 0x00, 0x0D, 0x00, 0x13, 0x00, 0x19, 0x00, 0x22, 0x00, 0x2B, 0x00, + 0x31, 0x00, 0x37, 0x00, 0x3D, 0x00, 0x00, 0x01, 0x23, 0x3E, 0x01, 0x32, 0x16, 0x06, 0x34, 0x37, 0x33, 0x16, 0x14, 0x07, 0x23, 0x25, 0x23, 0x26, 0x27, + 0x1E, 0x01, 0x25, 0x06, 0x07, 0x23, 0x3E, 0x01, 0x05, 0x16, 0x15, 0x14, 0x07, 0x23, 0x36, 0x34, 0x27, 0x07, 0x14, 0x17, 0x23, 0x26, 0x34, 0x37, 0x33, + 0x06, 0x17, 0x33, 0x0E, 0x01, 0x22, 0x26, 0x17, 0x36, 0x37, 0x33, 0x0E, 0x01, 0x25, 0x33, 0x16, 0x17, 0x2E, 0x01, 0x01, 0x50, 0xB0, 0x0B, 0x30, 0x3A, + 0x30, 0xAD, 0x03, 0xBA, 0x03, 0x03, 0xBA, 0x01, 0x42, 0x6C, 0x0F, 0x23, 0x35, 0x53, 0xFE, 0xEA, 0x24, 0x0E, 0x6C, 0x16, 0x53, 0x01, 0x6B, 0x09, 0x09, + 0x72, 0x03, 0x03, 0xFD, 0x03, 0x72, 0x09, 0x09, 0x72, 0x03, 0x28, 0xB0, 0x0B, 0x30, 0x3A, 0x30, 0x94, 0x24, 0x0E, 0x6C, 0x16, 0x53, 0xFE, 0x9F, 0x6C, + 0x0F, 0x23, 0x35, 0x53, 0x01, 0x20, 0x44, 0x54, 0x54, 0xC4, 0x40, 0x20, 0x20, 0x40, 0x20, 0xA0, 0x5C, 0x32, 0x10, 0x4B, 0x5B, 0x32, 0x5C, 0x33, 0x4B, + 0x9E, 0x20, 0x20, 0x20, 0x20, 0x21, 0x3E, 0x21, 0x40, 0x1E, 0x22, 0x21, 0x3E, 0x21, 0x21, 0x7F, 0x44, 0x54, 0x54, 0x4A, 0x32, 0x5C, 0x33, 0x4B, 0x7E, + 0x5C, 0x32, 0x10, 0x4B, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x05, 0x01, 0xC5, 0x00, 0x1C, 0x00, 0x24, 0x00, 0x00, 0x01, 0x16, 0x06, + 0x07, 0x0E, 0x01, 0x27, 0x07, 0x06, 0x22, 0x26, 0x34, 0x3F, 0x01, 0x26, 0x36, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x1F, 0x01, 0x37, 0x36, + 0x16, 0x00, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xFC, 0x09, 0x14, 0x1B, 0x1E, 0x50, 0x26, 0xD5, 0x13, 0x35, 0x25, 0x13, 0xD5, 0x0D, 0x12, + 0x1D, 0x1B, 0x4A, 0x24, 0x07, 0x03, 0x05, 0x4A, 0x0B, 0x44, 0x4B, 0x05, 0x0D, 0xFE, 0x3C, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x01, 0x53, 0x24, 0x49, 0x1C, + 0x1D, 0x12, 0x0D, 0xD5, 0x13, 0x25, 0x35, 0x13, 0xD6, 0x25, 0x51, 0x1D, 0x1B, 0x14, 0x09, 0x02, 0x0D, 0x05, 0x4B, 0x44, 0x0B, 0x4A, 0x05, 0x03, 0xFE, + 0x8E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xFF, 0xF0, 0x02, 0x00, 0x01, 0xA1, 0x00, 0x15, 0x00, 0x2B, 0x00, 0x33, + 0x00, 0x43, 0x00, 0x53, 0x00, 0x63, 0x00, 0x00, 0x13, 0x17, 0x16, 0x14, 0x0F, 0x02, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, + 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x02, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x32, + 0x06, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x8C, 0x11, 0x03, 0x03, 0x49, 0x0F, 0x04, 0x0A, 0x04, 0x2F, 0x04, 0x04, 0x0F, 0x04, 0x0A, 0x03, 0x17, 0x40, 0x03, + 0x0A, 0x04, 0x11, 0x03, 0x04, 0x48, 0x0F, 0x04, 0x0A, 0x04, 0x2F, 0x04, 0x04, 0x0F, 0x04, 0x0A, 0x03, 0x17, 0x40, 0x03, 0x0A, 0x5C, 0x28, 0x1C, 0x1C, + 0x28, 0x1D, 0x01, 0xE1, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x20, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xE0, 0x07, 0x09, 0x09, + 0x07, 0x01, 0x20, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x9C, 0x10, 0x04, 0x09, 0x04, 0x48, 0x10, 0x03, 0x03, 0x30, 0x03, + 0x0A, 0x04, 0x0F, 0x04, 0x04, 0x16, 0x3F, 0x04, 0xA3, 0x11, 0x03, 0x0A, 0x04, 0x48, 0x0F, 0x04, 0x04, 0x2F, 0x04, 0x09, 0x04, 0x10, 0x03, 0x03, 0x16, + 0x3F, 0x04, 0xB1, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x0C, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x40, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x01, 0xFF, 0xFB, 0xFF, 0xBC, 0x02, + 0x05, 0x01, 0xC0, 0x00, 0x10, 0x00, 0x00, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x11, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x27, 0x26, 0x36, 0x33, 0x01, + 0xE8, 0x10, 0x0C, 0x0B, 0xB9, 0x1A, 0x0C, 0x50, 0x0A, 0xB9, 0x0B, 0x0C, 0x10, 0x01, 0xC0, 0x1E, 0x0B, 0xB9, 0xFE, 0xFA, 0x0F, 0x0D, 0x08, 0x38, 0x08, + 0x0C, 0xCE, 0xB9, 0x0B, 0x1E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x13, 0x00, 0x27, 0x00, 0x2B, 0x00, 0x00, + 0x25, 0x35, 0x33, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x33, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x37, 0x32, 0x16, 0x1D, 0x01, + 0x21, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x23, 0x15, 0x01, 0x40, 0xC0, 0x1D, 0x13, 0xFE, + 0x60, 0x13, 0x1D, 0xC0, 0x09, 0x07, 0x60, 0x07, 0x09, 0x90, 0x13, 0x1D, 0xFE, 0x00, 0x1D, 0x13, 0x50, 0x1D, 0x13, 0xA0, 0x13, 0x1D, 0x40, 0x80, 0x70, + 0x30, 0x90, 0x13, 0x1D, 0x1D, 0x13, 0x90, 0x30, 0x07, 0x09, 0x09, 0xD7, 0x1D, 0x13, 0x50, 0x50, 0x13, 0x1D, 0x30, 0x13, 0x1D, 0x1D, 0x13, 0x30, 0x20, + 0x20, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x3B, 0x00, 0x00, 0x25, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, + 0x01, 0x35, 0x23, 0x15, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x32, + 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x15, 0x33, 0x35, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x33, 0x32, + 0x16, 0x01, 0x60, 0x4F, 0x07, 0x14, 0x07, 0x4F, 0x0B, 0x0C, 0x10, 0x33, 0x65, 0x1D, 0x0C, 0x4F, 0x07, 0x07, 0x4F, 0x0C, 0x1D, 0x65, 0x33, 0x10, 0x0D, + 0x0C, 0x4F, 0x07, 0x14, 0x07, 0x4F, 0x0B, 0x0C, 0x10, 0x33, 0x65, 0x1D, 0x0C, 0x4F, 0x07, 0x07, 0x4F, 0x0C, 0x1D, 0x65, 0x33, 0x10, 0x0D, 0x16, 0x4F, + 0x07, 0x07, 0x4F, 0x0C, 0x1D, 0x65, 0x33, 0x10, 0x0C, 0x0B, 0x4F, 0x07, 0x14, 0x07, 0x4F, 0x0C, 0x0D, 0x10, 0x33, 0x65, 0x1D, 0x0C, 0x4F, 0x07, 0x07, + 0x4F, 0x0C, 0x1D, 0x65, 0x33, 0x10, 0x0C, 0x0B, 0x4F, 0x07, 0x14, 0x07, 0x4F, 0x0C, 0x0D, 0x10, 0x33, 0x65, 0x1D, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, + 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1D, 0x00, 0x25, 0x00, 0x39, 0x00, 0x47, 0x00, 0x00, 0x36, 0x22, 0x26, 0x34, 0x36, 0x32, + 0x16, 0x14, 0x04, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x2E, 0x01, 0x27, 0x36, 0x33, 0x2A, + 0x01, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, + 0x32, 0x37, 0x27, 0x0E, 0x01, 0x07, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x7A, 0x34, 0x26, 0x26, 0x34, 0x26, 0x01, 0x9A, 0x34, + 0x26, 0x26, 0x34, 0x26, 0x20, 0x1A, 0x26, 0x13, 0x0D, 0x42, 0x05, 0x28, 0x1E, 0x13, 0x1A, 0x92, 0x5C, 0x42, 0x42, 0x5C, 0x42, 0x23, 0x30, 0x43, 0x1C, + 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x43, 0x30, 0x09, 0x21, 0x46, 0x21, 0xD7, 0x1E, 0x28, 0x05, 0x42, 0x0D, 0x13, 0x26, 0x1A, 0x40, 0x1A, 0xE0, 0x26, 0x34, + 0x26, 0x26, 0x34, 0x26, 0x26, 0x34, 0x26, 0x26, 0x34, 0x46, 0x26, 0x1A, 0x20, 0x0D, 0x13, 0x23, 0x3A, 0x10, 0x13, 0x42, 0x5C, 0x42, 0x42, 0x5C, 0x62, + 0x43, 0x30, 0x1D, 0x14, 0x1C, 0x1C, 0x14, 0x1D, 0x30, 0x43, 0x10, 0x10, 0x0D, 0x10, 0x3A, 0x23, 0x13, 0x0D, 0x20, 0x1A, 0x26, 0x00, 0x00, 0x00, 0x00, + 0x02, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x25, 0x00, 0x4B, 0x00, 0x00, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x26, 0x34, 0x3F, + 0x01, 0x36, 0x16, 0x17, 0x16, 0x17, 0x16, 0x0F, 0x01, 0x0E, 0x01, 0x17, 0x16, 0x32, 0x3F, 0x01, 0x36, 0x34, 0x27, 0x26, 0x27, 0x26, 0x35, 0x26, 0x3F, + 0x01, 0x36, 0x16, 0x36, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x27, 0x26, 0x27, 0x26, 0x3F, 0x01, 0x3E, 0x01, 0x27, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x14, + 0x17, 0x16, 0x17, 0x16, 0x15, 0x16, 0x0F, 0x01, 0x06, 0x26, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x01, 0x47, 0x2C, 0x2C, 0x44, 0x2C, 0x7E, 0x59, 0x2C, + 0x26, 0x07, 0x13, 0x01, 0x01, 0x09, 0x03, 0x07, 0x0D, 0x15, 0x01, 0x15, 0x15, 0x3C, 0x15, 0x43, 0x15, 0x15, 0x05, 0x05, 0x07, 0x01, 0x0C, 0x16, 0x09, + 0x16, 0x6A, 0x59, 0x2C, 0x26, 0x07, 0x13, 0x01, 0x01, 0x09, 0x03, 0x07, 0x0D, 0x15, 0x01, 0x15, 0x15, 0x3C, 0x15, 0x43, 0x15, 0x15, 0x05, 0x05, 0x07, + 0x01, 0x0C, 0x16, 0x09, 0x16, 0x0A, 0x2C, 0x2C, 0x44, 0x2C, 0x01, 0x07, 0x2D, 0x7E, 0x2C, 0x44, 0x2C, 0x59, 0x7E, 0x2C, 0x26, 0x07, 0x08, 0x0A, 0x1B, + 0x1A, 0x09, 0x07, 0x0E, 0x15, 0x3B, 0x15, 0x16, 0x15, 0x43, 0x15, 0x3C, 0x15, 0x05, 0x04, 0x04, 0x08, 0x12, 0x0C, 0x15, 0x0A, 0x10, 0xB0, 0x59, 0x7E, + 0x2C, 0x26, 0x07, 0x08, 0x0A, 0x1B, 0x1A, 0x09, 0x07, 0x0E, 0x15, 0x3B, 0x15, 0x16, 0x15, 0x43, 0x15, 0x3C, 0x15, 0x05, 0x04, 0x04, 0x08, 0x12, 0x0C, + 0x15, 0x0A, 0x10, 0x09, 0x2D, 0x7E, 0x2C, 0x44, 0x2C, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x1B, 0x00, 0x00, 0x25, + 0x1E, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x34, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x36, 0x33, 0x32, 0x16, + 0x15, 0x14, 0x02, 0x1A, 0x2C, 0x3A, 0x4B, 0x35, 0xFE, 0x90, 0x3C, 0x54, 0x36, 0x2A, 0x5E, 0x42, 0x2C, 0x4A, 0x15, 0x18, 0x1D, 0x28, 0x38, 0xDD, 0x09, + 0x46, 0x2E, 0x35, 0x4B, 0x54, 0x3C, 0x2F, 0x4A, 0x0F, 0x05, 0x03, 0x42, 0x5E, 0x2C, 0x24, 0x10, 0x38, 0x28, 0x12, 0x00, 0x02, 0xFF, 0xF4, 0xFF, 0xC0, + 0x01, 0xCC, 0x01, 0xC0, 0x00, 0x1B, 0x00, 0x25, 0x00, 0x00, 0x25, 0x16, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3F, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x07, 0x33, 0x27, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x07, 0x01, 0xB5, + 0x16, 0x28, 0x2A, 0xFE, 0xCE, 0x2A, 0x28, 0x16, 0x75, 0x08, 0x0A, 0x0E, 0x0E, 0x0A, 0xD0, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0xB6, 0xAC, 0x30, 0x06, 0x40, + 0x06, 0x2C, 0x23, 0x49, 0x49, 0x23, 0xBD, 0x97, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x97, 0x69, 0x4E, 0x08, 0x0A, 0xA0, 0xA0, + 0x0A, 0x08, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC5, 0x01, 0xA0, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x00, 0x25, 0x17, 0x16, 0x07, 0x06, + 0x22, 0x2F, 0x01, 0x07, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x37, 0x27, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, + 0x15, 0x14, 0x07, 0x17, 0x37, 0x36, 0x32, 0x17, 0x16, 0x07, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x01, 0x16, 0xA6, 0x09, 0x09, 0x18, 0x46, 0x18, 0x74, 0x19, 0x07, 0x38, 0x50, 0x38, 0x38, 0x28, 0x07, 0x06, 0x21, 0x21, 0x06, 0x07, 0x28, 0x38, + 0x38, 0x50, 0x38, 0x07, 0x19, 0x74, 0x18, 0x46, 0x18, 0x09, 0x09, 0xFE, 0x97, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xC0, + 0xA6, 0x09, 0x08, 0x19, 0x19, 0x73, 0x19, 0x11, 0x12, 0x28, 0x38, 0x38, 0x50, 0x38, 0x01, 0x21, 0x21, 0x01, 0x38, 0x50, 0x38, 0x38, 0x28, 0x12, 0x11, + 0x19, 0x73, 0x19, 0x19, 0x08, 0x09, 0x46, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xFE, 0xED, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, + 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x23, 0x00, 0x2C, 0x00, 0x00, 0x21, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, + 0x3B, 0x01, 0x11, 0x14, 0x16, 0x33, 0x13, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x17, + 0x16, 0x1D, 0x01, 0x23, 0x35, 0x33, 0x32, 0x17, 0x01, 0x40, 0x0E, 0x0A, 0xFE, 0xF0, 0x0A, 0x0E, 0x0E, 0x0A, 0x48, 0x21, 0x17, 0xA8, 0x0E, 0x0A, 0x68, + 0x0E, 0x0A, 0xFE, 0xF0, 0x0A, 0x0E, 0x0E, 0x0A, 0xA8, 0x79, 0x07, 0x60, 0x06, 0x0A, 0x07, 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x70, 0x0A, 0x0E, 0xFE, + 0xD8, 0x17, 0x21, 0x01, 0x58, 0x0A, 0x0E, 0xFE, 0xF8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x70, 0x0A, 0x0E, 0x49, 0x07, 0x0A, 0x06, 0x60, 0x07, 0x00, 0x01, + 0xFF, 0xFF, 0xFF, 0xBF, 0x01, 0xC1, 0x01, 0xC1, 0x00, 0x32, 0x00, 0x00, 0x17, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, + 0x26, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x06, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x34, 0x27, 0x26, 0x22, 0x0F, 0x01, 0x06, + 0x14, 0x16, 0x32, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x2B, 0x2B, 0x01, 0x2C, 0xD1, 0x22, 0x5E, 0x21, 0x21, 0x21, 0xB7, 0x16, + 0x40, 0x16, 0x15, 0x01, 0x16, 0x8F, 0x0C, 0x0B, 0x17, 0x0B, 0x0B, 0x90, 0x09, 0x09, 0x08, 0x07, 0xB7, 0x0F, 0x0F, 0x0E, 0x28, 0x0F, 0xD2, 0x1A, 0x33, + 0x48, 0x19, 0xAC, 0x0C, 0x0B, 0x17, 0x0B, 0x0B, 0xAC, 0x2D, 0x7E, 0x12, 0x2D, 0x7F, 0x2D, 0xD7, 0x22, 0x22, 0x22, 0x5F, 0x21, 0xBB, 0x17, 0x01, 0x17, + 0x16, 0x3F, 0x16, 0x93, 0x0B, 0x0B, 0x16, 0x0C, 0x0B, 0x93, 0x09, 0x09, 0x08, 0x08, 0xBA, 0x10, 0x2A, 0x0F, 0x0F, 0x0F, 0xD6, 0x1B, 0x4B, 0x35, 0x1A, + 0xB0, 0x0C, 0x0C, 0x16, 0x0B, 0x0C, 0xB0, 0x2D, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x11, 0x00, 0x19, 0x00, 0x28, 0x00, + 0x00, 0x01, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x17, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x13, 0x34, 0x2F, 0x01, 0x26, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x35, 0x01, 0xB2, 0x0E, 0x1C, 0x14, 0xFE, 0xA0, 0x14, + 0x1C, 0x1C, 0x14, 0x01, 0x0C, 0x14, 0x0E, 0x99, 0x36, 0x25, 0x25, 0x36, 0x25, 0xA0, 0x04, 0x03, 0x04, 0x04, 0xE5, 0x0C, 0x0C, 0xE8, 0x0C, 0x01, 0x3E, + 0x0E, 0x14, 0xFE, 0xF4, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x0E, 0xFE, 0x8E, 0x25, 0x36, 0x25, 0x25, 0x36, 0x01, 0x0C, 0x04, 0x04, 0x03, + 0x04, 0x0C, 0x68, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, + 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, + 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xFC, 0x01, 0xC0, 0x01, 0x84, 0x00, 0x0F, + 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x00, 0x13, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x05, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x05, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x23, 0x10, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA0, 0x07, 0x09, + 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x3C, 0x09, 0x07, 0x28, 0x07, 0x09, 0x09, 0x07, 0x28, 0x07, + 0x09, 0xA0, 0x09, 0x07, 0x28, 0x07, 0x09, 0x09, 0x07, 0x28, 0x07, 0x09, 0xA0, 0x09, 0x07, 0x28, 0x07, 0x09, 0x09, 0x07, 0x28, 0x07, 0x09, 0x00, 0x00, + 0x06, 0x00, 0x00, 0xFF, 0xF0, 0x02, 0x00, 0x01, 0x90, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x27, 0x00, 0x37, 0x00, 0x47, 0x00, 0x00, 0x12, 0x32, + 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x25, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x33, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x1C, 0x28, 0x1C, 0x1C, 0x28, + 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, + 0x01, 0x40, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x40, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x01, + 0x90, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x84, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x84, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x0C, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x01, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x00, 0x00, 0x06, 0xFF, 0xFC, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x2A, 0x00, 0x3A, 0x00, 0x4A, 0x00, 0x5A, 0x00, 0x74, 0x00, 0x94, + 0x00, 0x00, 0x37, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x17, 0x16, 0x33, 0x32, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x2F, + 0x01, 0x26, 0x3F, 0x01, 0x36, 0x37, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x30, 0x15, 0x14, 0x07, 0x25, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x33, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x27, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, + 0x35, 0x23, 0x22, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x23, 0x07, 0x22, 0x3D, 0x01, 0x34, 0x3E, + 0x01, 0x35, 0x34, 0x23, 0x22, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x37, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x0E, 0x01, 0x07, 0x33, 0x32, 0x1D, 0x01, 0x14, + 0x23, 0x3E, 0x0E, 0x0E, 0x18, 0x18, 0x15, 0x10, 0x09, 0x06, 0x06, 0x05, 0x0B, 0x07, 0x08, 0x0E, 0x10, 0x04, 0x08, 0x05, 0x01, 0x03, 0x06, 0x06, 0x05, + 0x06, 0x17, 0x08, 0x08, 0x39, 0x0B, 0x05, 0x01, 0xA1, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x40, 0x07, 0x09, 0x09, 0x07, + 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x40, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x08, 0x08, 0x10, 0x08, 0x08, 0x01, + 0x08, 0x02, 0x05, 0x18, 0x08, 0x10, 0x08, 0x08, 0x44, 0x0C, 0x19, 0x1A, 0x09, 0x06, 0x04, 0x09, 0x07, 0x08, 0x0A, 0x07, 0x0E, 0x1A, 0x11, 0x1C, 0x17, + 0x19, 0x01, 0x27, 0x08, 0x08, 0x2F, 0x04, 0x13, 0x0C, 0x12, 0x1A, 0x09, 0x07, 0x09, 0x0A, 0x09, 0x06, 0x03, 0x08, 0x09, 0x08, 0x02, 0x07, 0x08, 0x07, + 0x06, 0x06, 0x08, 0x10, 0x08, 0x0B, 0x04, 0x01, 0x07, 0x06, 0x9D, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xA0, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xFE, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xE0, 0x08, 0x10, 0x08, 0x40, 0x08, + 0x02, 0x02, 0x10, 0x04, 0x08, 0x58, 0x08, 0x10, 0x08, 0xA0, 0x0B, 0x04, 0x15, 0x1D, 0x0F, 0x05, 0x08, 0x04, 0x08, 0x06, 0x07, 0x07, 0x08, 0x13, 0x14, + 0x14, 0x10, 0x17, 0x0E, 0x03, 0x08, 0x10, 0x08, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x2F, 0x00, 0x4D, 0x00, 0x00, 0x25, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x1F, 0x02, 0x33, 0x16, 0x17, + 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x17, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x35, + 0x34, 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x09, 0x07, 0x66, 0x13, 0x02, 0x01, 0x48, 0x34, 0x44, 0x25, 0x3D, 0x10, 0x01, 0x01, + 0x09, 0x2B, 0x03, 0x04, 0x0A, 0x04, 0x0E, 0x1F, 0x42, 0x12, 0x1A, 0x11, 0x0E, 0x57, 0x16, 0x5E, 0x04, 0x01, 0x01, 0x48, 0x34, 0x44, 0x25, 0x3D, 0x10, + 0x01, 0x01, 0x09, 0x2B, 0x03, 0x04, 0x0A, 0x04, 0x0E, 0x1F, 0x42, 0x12, 0x1A, 0xE0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x1B, + 0x1D, 0x06, 0x06, 0x33, 0x49, 0x27, 0x20, 0x01, 0x03, 0x04, 0x0A, 0x04, 0x16, 0x01, 0x08, 0x1C, 0x1A, 0x12, 0x0E, 0x17, 0x04, 0x1B, 0x60, 0x0C, 0x0C, + 0x06, 0x06, 0x33, 0x49, 0x27, 0x20, 0x01, 0x03, 0x04, 0x0A, 0x04, 0x16, 0x01, 0x08, 0x1C, 0x1A, 0x12, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, + 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x00, 0x13, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x2B, 0x01, 0x15, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x2B, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, + 0x20, 0x07, 0x09, 0x09, 0x07, 0x90, 0x07, 0x09, 0x09, 0x07, 0x20, 0x2F, 0x42, 0x2F, 0x20, 0x07, 0x09, 0x09, 0x07, 0x90, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x5E, 0x84, 0x5E, 0x01, 0x70, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x07, 0x09, 0xA0, 0x21, 0x2F, 0x2F, 0x21, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xA0, 0x42, 0x5E, 0x5E, 0x42, 0xA0, 0xFE, + 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0F, + 0x00, 0x13, 0x00, 0x17, 0x00, 0x1B, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, + 0x33, 0x13, 0x35, 0x23, 0x15, 0x37, 0x35, 0x23, 0x15, 0x05, 0x35, 0x23, 0x15, 0x37, 0x35, 0x23, 0x15, 0x01, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x60, + 0x14, 0x1C, 0x1C, 0x14, 0xB0, 0xA0, 0xA0, 0xA0, 0x01, 0x80, 0xA0, 0xA0, 0xA0, 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, + 0x14, 0x1C, 0xFE, 0x80, 0x60, 0x60, 0xA0, 0x60, 0x60, 0xA0, 0x60, 0x60, 0xA0, 0x60, 0x60, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, + 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x27, 0x00, 0x2B, 0x00, 0x00, 0x13, 0x2F, 0x01, 0x3F, 0x01, 0x1F, 0x01, 0x0F, 0x01, 0x2F, 0x01, + 0x3F, 0x01, 0x1F, 0x01, 0x07, 0x05, 0x1F, 0x01, 0x0F, 0x01, 0x2F, 0x01, 0x3F, 0x01, 0x16, 0x14, 0x07, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x37, + 0x01, 0x36, 0x32, 0x17, 0x07, 0x37, 0x27, 0x07, 0xE0, 0x10, 0x20, 0x20, 0x10, 0x10, 0x20, 0x20, 0xA0, 0x1B, 0x35, 0x35, 0x1B, 0x1B, 0x35, 0x35, 0x01, + 0x45, 0x1B, 0x35, 0x35, 0x1B, 0x1B, 0x35, 0x35, 0x62, 0x09, 0x09, 0xFE, 0x94, 0x09, 0x1A, 0x0A, 0x55, 0x09, 0x09, 0x01, 0x6C, 0x09, 0x1A, 0x0A, 0x3B, + 0x57, 0x33, 0x56, 0x01, 0x60, 0x20, 0x10, 0x10, 0x20, 0x20, 0x10, 0x10, 0x60, 0x35, 0x1B, 0x1B, 0x35, 0x35, 0x1B, 0x1B, 0xB5, 0x35, 0x1B, 0x1B, 0x35, + 0x35, 0x1B, 0x1B, 0xF7, 0x0A, 0x1A, 0x09, 0xFE, 0x94, 0x09, 0x09, 0x55, 0x0A, 0x1A, 0x09, 0x01, 0x6C, 0x09, 0x09, 0xC2, 0x56, 0x33, 0x57, 0x00, 0x04, + 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x3C, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x2B, 0x01, 0x14, 0x06, 0x22, 0x26, 0x35, 0x23, 0x14, 0x06, 0x22, 0x26, 0x35, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, + 0x01, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x1D, 0x01, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, + 0x35, 0x27, 0x23, 0x15, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0x30, 0x38, 0x50, 0x38, 0x80, 0x38, 0x50, 0x38, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x40, + 0x14, 0x1C, 0x2C, 0x14, 0x0E, 0x64, 0x0E, 0xFE, 0x2C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0x5C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x80, 0x64, 0x2C, 0x60, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x28, 0x38, 0x38, 0x28, 0x28, 0x38, 0x38, 0x28, 0x1C, 0x14, 0x01, 0x40, 0x14, 0x1C, 0x1C, 0x14, 0x30, 0x0E, 0x64, 0x0E, + 0x14, 0x6C, 0x70, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xB4, 0x0C, 0x64, 0x70, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x01, 0x80, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x19, 0x00, 0x21, 0x00, 0x26, 0x00, 0x2B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, + 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x13, 0x33, 0x34, 0x26, 0x23, 0x35, 0x32, 0x36, 0x35, 0x23, 0x16, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x05, 0x35, 0x22, 0x06, 0x15, 0x37, 0x35, 0x23, 0x14, 0x16, 0x02, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0xFD, 0xC0, 0x0D, 0x13, 0x13, 0x0D, + 0x10, 0x40, 0x25, 0x1B, 0x1B, 0x25, 0x40, 0xEF, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0x60, 0x1B, 0x25, 0x40, 0x40, 0x25, 0x01, 0x80, 0x13, 0x0D, 0xFE, + 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x40, 0x0D, 0x13, 0xFE, 0xB0, 0x1B, 0x25, 0xA0, 0x25, 0x1B, 0xF0, 0x38, 0x50, 0x38, 0x38, 0x50, 0x68, 0x40, 0x25, + 0x1B, 0xE0, 0x40, 0x1B, 0x25, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x57, 0x01, 0x39, 0x01, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x13, 0x21, 0x32, 0x16, 0x0F, + 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x1F, 0x01, 0x02, 0x0D, 0x0A, 0x09, 0x81, 0x06, 0x10, 0x06, 0x81, 0x09, 0x0A, 0x01, 0x00, 0x19, 0x09, 0x81, + 0x06, 0x06, 0x81, 0x09, 0x19, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x60, 0x01, 0x39, 0x01, 0x09, 0x00, 0x0B, 0x00, 0x00, 0x25, 0x21, 0x22, + 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x06, 0x01, 0x21, 0xFE, 0xFE, 0x0D, 0x0A, 0x09, 0x81, 0x06, 0x10, 0x06, 0x81, 0x09, 0x0A, 0x60, 0x19, + 0x09, 0x81, 0x06, 0x06, 0x81, 0x09, 0x19, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x17, 0x00, 0x27, 0x00, 0xC0, 0x01, 0x59, 0x00, 0x0B, 0x00, 0x00, 0x13, + 0x11, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x16, 0xC0, 0x19, 0x09, 0x81, 0x06, 0x06, 0x81, 0x09, 0x19, 0x01, 0x41, 0xFE, 0xFE, 0x0D, + 0x0A, 0x09, 0x81, 0x06, 0x10, 0x06, 0x81, 0x09, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0xA9, 0x01, 0x59, 0x00, 0x0B, 0x00, + 0x00, 0x35, 0x11, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x19, 0x09, 0x81, 0x06, 0x06, 0x81, 0x09, 0x19, 0x3F, 0x01, 0x02, 0x0D, + 0x0A, 0x09, 0x81, 0x06, 0x10, 0x06, 0x81, 0x09, 0x0A, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x13, 0x00, + 0x17, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x13, 0x11, 0x23, 0x11, 0x21, 0x11, + 0x23, 0x11, 0x01, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xB0, 0xA0, 0x01, 0x80, 0xA0, 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, + 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xFE, 0x80, 0x01, 0x00, 0xFF, 0x00, 0x01, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0D, 0xFF, 0xF8, + 0x01, 0x33, 0x01, 0x88, 0x00, 0x0B, 0x00, 0x17, 0x00, 0x00, 0x37, 0x33, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x25, 0x16, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x29, 0xEE, 0x10, 0x0C, 0x0B, 0x77, 0x07, 0x14, 0x07, 0x77, 0x0B, 0x0C, 0x01, 0x0F, 0x0B, 0x0C, + 0x10, 0xEE, 0x10, 0x0C, 0x0B, 0x77, 0x07, 0x14, 0x07, 0xA0, 0x1E, 0x0B, 0x77, 0x07, 0x07, 0x77, 0x0B, 0x1E, 0x69, 0x0B, 0x1E, 0x1E, 0x0B, 0x77, 0x07, + 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0D, 0xFF, 0xF8, 0x01, 0x33, 0x00, 0xA0, 0x00, 0x0B, 0x00, 0x00, 0x37, 0x33, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x22, + 0x2F, 0x01, 0x26, 0x36, 0x29, 0xEE, 0x10, 0x0C, 0x0B, 0x77, 0x07, 0x14, 0x07, 0x77, 0x0B, 0x0C, 0xA0, 0x1E, 0x0B, 0x77, 0x07, 0x07, 0x77, 0x0B, 0x1E, + 0x00, 0x00, 0x01, 0x00, 0x0D, 0x00, 0xE0, 0x01, 0x34, 0x01, 0x88, 0x00, 0x0B, 0x00, 0x00, 0x25, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, + 0x16, 0x06, 0x01, 0x17, 0xEE, 0x10, 0x0C, 0x0B, 0x77, 0x07, 0x14, 0x07, 0x77, 0x0B, 0x0C, 0xE0, 0x1E, 0x0B, 0x77, 0x07, 0x07, 0x77, 0x0B, 0x1E, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x1D, 0x00, 0x38, 0x00, 0x00, 0x01, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x17, 0x16, 0x17, 0x1E, 0x04, 0x32, 0x3E, 0x03, 0x37, 0x36, 0x07, 0x22, 0x2E, 0x02, 0x23, 0x26, 0x27, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x07, 0x06, 0x07, 0x22, 0x0E, 0x02, 0x01, 0xF6, 0x03, 0x07, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, + 0x07, 0x03, 0x21, 0x79, 0x02, 0x17, 0x0E, 0x16, 0x15, 0x14, 0x15, 0x17, 0x0E, 0x16, 0x02, 0x76, 0xD2, 0x08, 0x17, 0x0E, 0x1B, 0x01, 0x7A, 0x34, 0x09, + 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, 0x09, 0x31, 0x7D, 0x01, 0x1B, 0x0E, 0x17, 0x01, 0x01, 0x03, 0x04, 0x04, 0xCC, 0x14, 0x1C, 0x1C, 0x14, 0xCC, 0x04, + 0x03, 0x02, 0x19, 0x58, 0x02, 0x12, 0x09, 0x0D, 0x06, 0x06, 0x0D, 0x0A, 0x11, 0x02, 0x55, 0x65, 0x0B, 0x09, 0x15, 0x59, 0x28, 0x07, 0x0C, 0x13, 0x14, + 0x1C, 0x1C, 0x14, 0x13, 0x0C, 0x07, 0x26, 0x5B, 0x15, 0x09, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF9, 0x01, 0xC0, 0x00, 0x2B, + 0x00, 0x00, 0x37, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x3E, 0x01, 0x33, 0x1E, 0x01, 0x0E, 0x01, 0x23, 0x22, 0x27, 0x26, + 0x3F, 0x01, 0x36, 0x17, 0x16, 0x33, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0xD4, 0xC8, 0x05, 0x07, + 0x0C, 0x30, 0x0C, 0x23, 0x61, 0x36, 0x67, 0x90, 0x01, 0x91, 0x67, 0x5F, 0x47, 0x0A, 0x09, 0x22, 0x08, 0x09, 0x32, 0x42, 0x49, 0x67, 0x67, 0x49, 0x2B, + 0x4A, 0x19, 0x62, 0x05, 0x07, 0x07, 0xE0, 0x07, 0x05, 0xC8, 0x0C, 0x0C, 0x4E, 0x27, 0x2B, 0x01, 0x91, 0xCD, 0x91, 0x40, 0x09, 0x09, 0x22, 0x08, 0x08, + 0x2C, 0x67, 0x92, 0x67, 0x27, 0x21, 0x07, 0x05, 0x30, 0x05, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x37, 0x00, + 0x00, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x07, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, + 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x27, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, + 0x0F, 0x01, 0x17, 0x37, 0x36, 0x32, 0x17, 0x01, 0xF9, 0x07, 0x07, 0x7C, 0x08, 0x13, 0x07, 0x17, 0x07, 0x07, 0x06, 0x28, 0x51, 0x06, 0x09, 0x09, 0x73, + 0x09, 0x1B, 0x09, 0x2E, 0x09, 0x09, 0x73, 0x09, 0x1B, 0x09, 0x06, 0x51, 0x28, 0x05, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0x7D, 0x07, 0x14, 0x07, 0x16, + 0x07, 0x07, 0x05, 0x71, 0x05, 0x07, 0x14, 0x07, 0xF9, 0x07, 0x14, 0x07, 0x7D, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0x05, 0x28, 0x51, 0x06, 0x09, 0x1B, + 0x09, 0x73, 0x09, 0x09, 0x2E, 0x09, 0x1B, 0x09, 0x73, 0x09, 0x09, 0x06, 0x51, 0x28, 0x06, 0x07, 0x07, 0x17, 0x07, 0x13, 0x08, 0x7C, 0x07, 0x07, 0x17, + 0x07, 0x14, 0x07, 0x05, 0x71, 0x05, 0x07, 0x07, 0x00, 0x00, 0x01, 0xFF, 0xFE, 0xFF, 0xC0, 0x01, 0x44, 0x01, 0xC0, 0x00, 0x17, 0x00, 0x00, 0x01, 0x32, + 0x16, 0x07, 0x03, 0x06, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x3E, 0x01, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x01, 0x28, 0x0E, + 0x0E, 0x07, 0xB0, 0x07, 0x0E, 0x0C, 0x0E, 0x03, 0x2E, 0x77, 0x0B, 0x0E, 0x01, 0x20, 0x01, 0x0E, 0x09, 0x90, 0x0C, 0x0E, 0x03, 0x2A, 0x01, 0x20, 0x18, + 0x0C, 0xFE, 0xD0, 0x0C, 0x12, 0x0C, 0xC2, 0x10, 0x0B, 0xF0, 0x09, 0x0C, 0x13, 0x0B, 0x82, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, + 0x80, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x35, 0x00, 0x45, 0x00, 0x55, 0x00, 0x00, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x33, 0x37, 0x15, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x23, 0x15, 0x23, 0x35, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x80, + 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x48, 0x30, 0x17, 0x0F, 0xCA, 0x28, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x28, + 0xCA, 0x0F, 0x17, 0x30, 0xC0, 0x30, 0x48, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x50, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, + 0x13, 0x0D, 0x60, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x50, 0x30, 0x3A, 0x0F, 0x17, 0x40, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, + 0x0D, 0x60, 0x0D, 0x13, 0x40, 0x17, 0x0F, 0x3A, 0x30, 0x30, 0x30, 0x50, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, + 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x42, 0x01, 0xC0, 0x00, 0x2D, 0x00, 0x43, 0x00, 0x00, + 0x25, 0x16, 0x06, 0x27, 0x2E, 0x01, 0x06, 0x07, 0x06, 0x22, 0x27, 0x30, 0x2E, 0x07, 0x23, 0x22, 0x06, 0x07, 0x06, 0x22, 0x27, 0x2E, 0x01, 0x06, 0x07, + 0x06, 0x26, 0x37, 0x3E, 0x01, 0x37, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x1E, 0x01, 0x05, 0x36, 0x33, 0x32, 0x17, 0x15, 0x14, 0x06, 0x23, 0x22, + 0x26, 0x27, 0x26, 0x3E, 0x01, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x35, 0x02, 0x40, 0x01, 0x0C, 0x08, 0x1A, 0x35, 0x37, 0x19, 0x04, 0x0C, 0x03, 0x04, + 0x04, 0x08, 0x08, 0x0B, 0x0E, 0x0F, 0x12, 0x09, 0x1F, 0x28, 0x14, 0x03, 0x0C, 0x04, 0x19, 0x37, 0x34, 0x1B, 0x08, 0x0C, 0x01, 0x15, 0x8F, 0x5C, 0x13, + 0x1A, 0x13, 0x5C, 0x8F, 0xFE, 0xD5, 0x0F, 0x11, 0x10, 0x10, 0x2F, 0x21, 0x19, 0x2A, 0x08, 0x05, 0x0C, 0x19, 0x17, 0x05, 0x04, 0x0B, 0x07, 0x09, 0xA7, + 0x08, 0x0A, 0x07, 0x1C, 0x0D, 0x23, 0x2B, 0x07, 0x07, 0x07, 0x08, 0x0C, 0x0B, 0x0C, 0x0A, 0x08, 0x05, 0x27, 0x22, 0x07, 0x07, 0x2B, 0x24, 0x0E, 0x1C, + 0x07, 0x0A, 0x08, 0x63, 0x7A, 0x0A, 0x12, 0x0D, 0x13, 0x13, 0x0D, 0x12, 0x0A, 0x7A, 0x78, 0x0E, 0x0E, 0x82, 0x21, 0x2F, 0x1D, 0x18, 0x0D, 0x18, 0x09, + 0x0C, 0x0C, 0x0B, 0x09, 0x07, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x1D, 0x00, 0x2F, 0x00, 0x38, 0x00, 0x00, + 0x13, 0x15, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x36, 0x32, 0x17, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x22, 0x06, 0x36, 0x22, 0x06, + 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x33, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x37, 0x15, + 0x23, 0x35, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x80, 0x68, 0x0A, 0x0E, 0x0E, 0x0A, 0x51, 0x12, 0x4A, 0x12, 0x51, 0x0A, 0x0E, 0x88, 0x17, 0x21, 0x2A, 0x14, + 0x0E, 0x0E, 0x14, 0x0E, 0xA0, 0x68, 0x0E, 0x0A, 0xF0, 0x0A, 0x0E, 0x0E, 0x0A, 0x88, 0x0E, 0x72, 0x60, 0x06, 0x0A, 0x07, 0x42, 0x07, 0x01, 0x08, 0xE8, + 0x0E, 0x0A, 0x01, 0x50, 0x0A, 0x0E, 0x20, 0x20, 0x0E, 0x0A, 0x48, 0x21, 0x79, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0xEA, 0xC8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, + 0x30, 0x0A, 0x0E, 0x68, 0x0A, 0x0E, 0x26, 0x06, 0x60, 0x07, 0x42, 0x07, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xBF, 0x01, 0x60, 0x01, 0xC1, + 0x00, 0x0D, 0x00, 0x20, 0x00, 0x30, 0x00, 0x00, 0x17, 0x35, 0x33, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x26, 0x03, 0x34, 0x36, + 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x30, 0x15, 0x23, 0x34, 0x31, 0x26, 0x27, 0x26, 0x37, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, + 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x36, 0x60, 0xA0, 0x05, 0x11, 0x0A, 0x11, 0x3E, 0x11, 0x09, 0x12, 0x05, 0x60, 0x64, 0x4B, 0x4A, 0x67, 0x2C, 0x25, + 0x0F, 0xA0, 0x0F, 0x25, 0x2C, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x2E, 0x42, 0x09, 0x0E, 0x09, 0x2F, 0x06, 0x26, 0x26, 0x0A, 0x08, 0x1A, 0x0E, 0x0E, 0x1A, + 0x08, 0x01, 0x20, 0x47, 0x69, 0x67, 0x49, 0x42, 0x32, 0x2B, 0x30, 0x01, 0x01, 0x30, 0x2B, 0x32, 0x92, 0x09, 0x0E, 0x09, 0x42, 0x2E, 0x07, 0x09, 0x09, + 0x07, 0x21, 0x2F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x55, 0x00, 0x00, 0x24, 0x22, + 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x37, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x37, 0x15, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x32, 0x37, 0x32, 0x36, + 0x37, 0x15, 0x0E, 0x01, 0x1D, 0x01, 0x14, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x35, 0x34, 0x36, 0x16, 0x1D, 0x01, 0x07, 0x06, 0x1F, 0x01, + 0x16, 0x3F, 0x01, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x27, 0x01, 0x15, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0xF8, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0xCA, 0x36, 0x4A, + 0x1A, 0x13, 0xFE, 0x9A, 0x13, 0x1A, 0x40, 0x30, 0x11, 0x17, 0x21, 0x2E, 0x21, 0x16, 0x12, 0x0C, 0x0B, 0x1C, 0x3A, 0x1D, 0x01, 0x04, 0x01, 0x1C, 0x24, + 0x0E, 0x1F, 0x08, 0x01, 0x04, 0x01, 0x08, 0x13, 0x30, 0x30, 0x13, 0x08, 0x01, 0x04, 0x01, 0x08, 0x20, 0x0D, 0x24, 0x1C, 0xC0, 0x4B, 0x6A, 0x4B, 0x4B, + 0x6A, 0xFD, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x9F, 0x02, 0x4E, 0x35, 0x2D, 0x13, 0x1A, 0x1A, 0x13, 0x2D, 0x31, 0x4B, 0x08, 0x51, 0x05, 0x1D, 0x13, 0x17, + 0x21, 0x21, 0x17, 0x13, 0x1D, 0x05, 0x52, 0x02, 0x03, 0x0A, 0x0A, 0x01, 0x01, 0x2E, 0x05, 0x2C, 0x1D, 0x2C, 0x0E, 0x02, 0x04, 0x01, 0x07, 0x10, 0x08, + 0x02, 0x03, 0x1B, 0x20, 0x19, 0x19, 0x1E, 0x1C, 0x04, 0x02, 0x08, 0x10, 0x07, 0x01, 0x07, 0x02, 0x0D, 0x2A, 0x1D, 0x2C, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC2, 0x00, 0x3F, 0x00, 0x47, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x14, 0x07, 0x15, 0x14, 0x06, 0x23, + 0x22, 0x26, 0x27, 0x2E, 0x01, 0x3D, 0x01, 0x34, 0x36, 0x3F, 0x01, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, + 0x3D, 0x01, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x07, 0x1E, 0x01, 0x33, 0x32, 0x36, 0x3D, 0x01, + 0x26, 0x37, 0x3E, 0x01, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xBF, 0x1B, 0x26, 0x20, 0x67, 0x49, 0x47, 0x67, 0x02, 0x37, 0x49, 0x0B, + 0x08, 0x3F, 0x0A, 0x10, 0x02, 0x03, 0x02, 0x0B, 0x09, 0x1F, 0x39, 0x28, 0x27, 0x38, 0x1F, 0x0A, 0x0B, 0x02, 0x04, 0x02, 0x10, 0x0A, 0x3F, 0x08, 0x0B, + 0x49, 0x37, 0x02, 0x41, 0x2D, 0x2E, 0x42, 0x21, 0x01, 0x01, 0x24, 0x14, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0x50, 0x25, 0x1B, 0x25, 0x12, 0x71, 0x45, + 0x63, 0x5F, 0x44, 0x0B, 0x59, 0x39, 0x9B, 0x09, 0x0D, 0x02, 0x0C, 0x02, 0x0B, 0x09, 0x10, 0x0A, 0x10, 0x02, 0x06, 0x7B, 0x28, 0x38, 0x3A, 0x27, 0x7A, + 0x06, 0x02, 0x10, 0x0A, 0x10, 0x09, 0x0B, 0x01, 0x0D, 0x02, 0x0D, 0x09, 0x9B, 0x39, 0x58, 0x0C, 0x29, 0x3A, 0x3D, 0x2B, 0x71, 0x12, 0x26, 0x1A, 0x25, + 0x50, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x09, 0x00, 0x0D, 0x00, 0x17, 0x00, 0x21, + 0x00, 0x00, 0x17, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, 0x03, 0x15, 0x33, 0x35, 0x17, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x11, 0x33, 0x32, + 0x16, 0x01, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x80, 0x1C, 0x14, 0xA0, 0x14, 0x1C, 0xC0, 0x80, 0xC0, 0x1C, 0x14, 0x30, 0x30, 0x14, + 0x1C, 0xFE, 0x60, 0x30, 0x14, 0x1C, 0x1C, 0x14, 0x30, 0x20, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x70, 0x01, 0x80, 0x20, 0x20, 0x50, 0xFF, 0x00, + 0x14, 0x1C, 0x01, 0x60, 0x1C, 0xFE, 0xBC, 0x1C, 0x14, 0x01, 0x00, 0x14, 0x1C, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xC0, 0x01, 0xC1, 0x01, 0xC0, + 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x16, 0x22, 0x26, 0x35, 0x33, 0x14, 0x37, 0x16, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, + 0x37, 0x3E, 0x02, 0x35, 0x34, 0x36, 0x37, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x1E, 0x01, 0x15, 0x14, 0x1E, 0x01, 0x17, 0x16, 0xFA, 0x34, 0x26, + 0x80, 0x97, 0x09, 0x12, 0x0E, 0xFE, 0x80, 0x0E, 0x12, 0x09, 0x01, 0x02, 0x0F, 0x11, 0x14, 0x48, 0x38, 0x13, 0x1A, 0x13, 0x38, 0x48, 0x14, 0x11, 0x0F, + 0x02, 0x40, 0x25, 0x1B, 0x1B, 0x71, 0x0A, 0x0C, 0x0D, 0x13, 0x13, 0x0D, 0x0C, 0x0A, 0x01, 0x03, 0x0F, 0x18, 0x43, 0x2C, 0x3A, 0x56, 0x0B, 0x15, 0x0D, + 0x13, 0x13, 0x0D, 0x15, 0x0B, 0x56, 0x3A, 0x2C, 0x43, 0x18, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xF9, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, + 0x11, 0x00, 0x19, 0x00, 0x27, 0x00, 0x00, 0x37, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x14, 0x06, 0x23, + 0x13, 0x23, 0x15, 0x33, 0x32, 0x36, 0x34, 0x26, 0x13, 0x21, 0x22, 0x27, 0x26, 0x37, 0x36, 0x33, 0x21, 0x32, 0x07, 0x06, 0x07, 0x06, 0xC0, 0x28, 0x38, + 0x0E, 0x0A, 0x01, 0x88, 0x35, 0x4B, 0x4B, 0x35, 0x20, 0x38, 0x28, 0x80, 0x20, 0x20, 0x1A, 0x26, 0x26, 0x16, 0xFE, 0x00, 0x21, 0x0C, 0x09, 0x0D, 0x02, + 0x03, 0x02, 0x48, 0x0F, 0x04, 0x05, 0x1A, 0x08, 0x40, 0x38, 0x28, 0xE8, 0x0A, 0x0E, 0x4B, 0x6A, 0x4B, 0x28, 0x38, 0x01, 0x20, 0x80, 0x26, 0x34, 0x26, + 0xFE, 0x80, 0x20, 0x18, 0x07, 0x01, 0x17, 0x1D, 0x09, 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x1B, + 0x00, 0x27, 0x00, 0x33, 0x00, 0x3B, 0x00, 0x47, 0x00, 0x53, 0x00, 0x6F, 0x00, 0x00, 0x05, 0x15, 0x21, 0x35, 0x34, 0x3B, 0x01, 0x11, 0x34, 0x36, 0x3B, + 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x15, 0x11, 0x33, 0x32, 0x03, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, + 0x32, 0x3D, 0x01, 0x34, 0x07, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x17, 0x23, 0x22, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x37, + 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x07, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x35, 0x27, 0x33, + 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, + 0x14, 0x01, 0xC0, 0xFE, 0x40, 0x0C, 0x14, 0x0E, 0x0A, 0x58, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x58, 0x0A, 0x0E, 0x14, 0x0C, 0x8C, 0x28, 0x0C, 0x0C, 0x28, + 0x0C, 0xB4, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x74, 0x28, 0x0C, 0x40, 0x34, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x80, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0A, + 0x1A, 0x06, 0x14, 0x06, 0x1A, 0x06, 0x06, 0x1A, 0x06, 0x14, 0x06, 0x1A, 0x06, 0x2C, 0x14, 0x14, 0x0C, 0x01, 0x68, 0x0A, 0x0E, 0x48, 0x0A, 0x0E, 0x0E, + 0x0A, 0x48, 0x0E, 0x0A, 0xFE, 0x98, 0x01, 0x20, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x40, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x80, 0x0C, 0x54, 0x54, + 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0xF4, 0x1A, 0x06, 0x06, 0x1A, 0x06, 0x14, 0x06, 0x1A, 0x06, 0x06, + 0x1A, 0x06, 0x14, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x4B, 0x00, 0x53, 0x00, + 0x58, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x14, 0x06, 0x22, 0x26, 0x35, 0x23, 0x14, 0x06, 0x22, 0x26, 0x35, 0x23, 0x22, + 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x1D, 0x01, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, + 0x3D, 0x01, 0x33, 0x32, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, 0x35, 0x27, 0x23, 0x15, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0x30, 0x38, + 0x50, 0x38, 0x80, 0x38, 0x50, 0x38, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x40, 0x14, 0x1C, 0x2C, 0x14, 0x0E, 0x64, 0x0E, 0xFE, 0x2C, 0x28, 0x1C, 0x1C, + 0x28, 0x1C, 0xC0, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x9C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x80, 0x64, + 0x2C, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x28, 0x38, 0x38, 0x28, 0x28, 0x38, 0x38, 0x28, 0x1C, 0x14, 0x01, 0x40, 0x14, 0x1C, 0x1C, 0x14, 0x30, 0x0E, + 0x64, 0x0E, 0x14, 0x6C, 0x70, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xDC, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0xF0, + 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xB4, 0x0C, 0x64, 0x70, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0D, 0x00, 0x11, 0x00, 0x1B, + 0x00, 0x25, 0x00, 0x49, 0x00, 0x00, 0x17, 0x11, 0x33, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x11, 0x03, 0x15, 0x33, 0x35, 0x17, + 0x11, 0x14, 0x06, 0x2B, 0x01, 0x11, 0x33, 0x32, 0x16, 0x01, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x05, 0x34, 0x26, 0x2B, 0x01, 0x35, + 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, + 0x01, 0x33, 0x32, 0x36, 0x35, 0x60, 0x20, 0x1C, 0x14, 0xA0, 0x14, 0x1C, 0x20, 0xE0, 0x80, 0xC0, 0x1C, 0x14, 0x10, 0x10, 0x14, 0x1C, 0xFE, 0x40, 0x10, + 0x14, 0x1C, 0x1C, 0x14, 0x10, 0x01, 0x20, 0x09, 0x07, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x30, 0x07, 0x09, 0x20, 0x01, 0x60, 0x30, 0x14, 0x1C, 0x1C, 0x14, 0x30, 0xFE, 0xA0, 0x01, 0x80, 0x20, 0x20, 0x50, 0xFF, 0x00, 0x14, 0x1C, 0x01, + 0x60, 0x1C, 0xFE, 0xBC, 0x1C, 0x14, 0x01, 0x00, 0x14, 0x1C, 0x90, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, + 0x07, 0x09, 0x09, 0x07, 0x30, 0x09, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x2F, 0x00, 0x00, 0x25, 0x16, + 0x14, 0x0F, 0x02, 0x23, 0x07, 0x33, 0x32, 0x14, 0x2B, 0x01, 0x35, 0x33, 0x35, 0x23, 0x07, 0x23, 0x27, 0x35, 0x33, 0x35, 0x33, 0x35, 0x27, 0x35, 0x37, + 0x35, 0x23, 0x35, 0x23, 0x35, 0x37, 0x33, 0x17, 0x33, 0x35, 0x23, 0x35, 0x33, 0x32, 0x14, 0x2B, 0x01, 0x17, 0x33, 0x17, 0x02, 0x20, 0x60, 0x60, 0x80, + 0x30, 0x18, 0x75, 0x28, 0x15, 0x15, 0x73, 0x10, 0x30, 0x43, 0x22, 0x0B, 0x08, 0x30, 0x40, 0x40, 0x30, 0x08, 0x0B, 0x22, 0x43, 0x30, 0x10, 0x73, 0x15, + 0x15, 0x28, 0x75, 0x18, 0x30, 0xE0, 0x15, 0x16, 0x15, 0x10, 0x10, 0x94, 0x0C, 0x0C, 0xA4, 0x50, 0x0B, 0x45, 0x10, 0x03, 0x08, 0x2A, 0x08, 0x03, 0x10, + 0x45, 0x0B, 0x50, 0xA4, 0x0C, 0x0C, 0x94, 0x10, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x19, 0x00, 0x22, 0x00, 0x2E, 0x00, + 0x3A, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x0F, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, + 0x32, 0x16, 0x1D, 0x01, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x15, 0x37, 0x36, 0x06, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, + 0x06, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x01, 0x70, 0x21, 0x2F, 0x1A, 0x15, 0x51, 0x0E, 0x0A, 0xFE, 0xF0, 0x0A, 0x0E, + 0x0E, 0x0A, 0x01, 0x10, 0x0A, 0x0E, 0x40, 0x09, 0x07, 0x30, 0x37, 0x09, 0xB7, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x57, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, + 0x60, 0x2F, 0x21, 0x81, 0x18, 0x27, 0x0A, 0x24, 0x2A, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x90, 0x0A, 0x0E, 0x0E, 0x0A, 0x28, 0xD1, 0x81, 0x07, 0x09, 0xB8, + 0x19, 0x04, 0x45, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x00, 0x02, 0x00, + 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x33, 0x00, 0x00, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, + 0x33, 0x21, 0x32, 0x16, 0x07, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, + 0x36, 0x3D, 0x01, 0x33, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, + 0x01, 0x60, 0x14, 0x1C, 0x70, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x09, 0x01, 0x70, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x44, 0x09, 0x07, 0x50, 0x50, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, + 0x09, 0x09, 0x07, 0x50, 0x50, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, + 0x2B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x05, 0x35, 0x34, 0x2B, 0x01, 0x35, + 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x01, 0x90, 0x14, + 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x40, 0x0C, 0x5C, 0x0C, 0x38, 0x0C, 0x5C, 0x0C, 0x0C, 0x5C, 0x0C, 0x38, 0x0C, 0x5C, 0x0C, + 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xFC, 0x38, 0x0C, 0x5C, 0x0C, 0x0C, 0x5C, 0x0C, 0x38, 0x0C, 0x5C, + 0x0C, 0x0C, 0x5C, 0x00, 0x02, 0x00, 0x18, 0x00, 0x1F, 0x01, 0xA8, 0x01, 0x61, 0x00, 0x14, 0x00, 0x29, 0x00, 0x00, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, + 0x16, 0x14, 0x0F, 0x01, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x07, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, + 0x14, 0x0F, 0x01, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x27, 0xE0, 0x88, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0x60, 0x60, 0x07, 0x07, 0x16, 0x07, + 0x14, 0x07, 0x88, 0x07, 0xB9, 0x07, 0x07, 0x88, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0x60, 0x60, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0xD1, 0x88, 0x07, + 0x07, 0x17, 0x07, 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0x88, 0x07, 0x14, 0x1B, 0x07, 0x14, 0x07, 0x88, 0x07, 0x07, 0x17, 0x07, + 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0x00, 0x02, 0x00, 0x18, 0x00, 0x1F, 0x01, 0xA8, 0x01, 0x61, 0x00, 0x14, 0x00, 0x29, 0x00, + 0x00, 0x37, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x37, 0x16, 0x14, + 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x17, 0xE0, 0x88, 0x07, 0x14, 0x07, 0x16, 0x07, + 0x07, 0x60, 0x60, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x88, 0x07, 0xB9, 0x07, 0x07, 0x88, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0x60, 0x60, 0x07, 0x07, + 0x16, 0x07, 0x14, 0x07, 0xAF, 0x88, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0x88, 0x07, 0x14, 0x1B, 0x07, + 0x14, 0x07, 0x88, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xF8, 0x01, 0x41, + 0x01, 0x88, 0x00, 0x14, 0x00, 0x29, 0x00, 0x00, 0x37, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, + 0x3F, 0x01, 0x36, 0x32, 0x27, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x37, + 0xB1, 0x88, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0x88, 0x07, 0x14, 0x1B, 0x07, 0x14, 0x07, 0x88, 0x07, + 0x07, 0x17, 0x07, 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0xC0, 0x88, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0x60, 0x60, 0x07, 0x07, + 0x16, 0x07, 0x14, 0x07, 0x88, 0x07, 0xB9, 0x07, 0x07, 0x88, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0x60, 0x60, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x00, + 0x02, 0xFF, 0xFF, 0xFF, 0xF8, 0x01, 0x41, 0x01, 0x88, 0x00, 0x14, 0x00, 0x29, 0x00, 0x00, 0x37, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, + 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x17, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, + 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x07, 0x8F, 0x88, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0x88, 0x07, + 0x14, 0x1B, 0x07, 0x14, 0x07, 0x88, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0xC0, 0x88, 0x07, 0x14, 0x07, + 0x16, 0x07, 0x07, 0x60, 0x60, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x88, 0x07, 0xB9, 0x07, 0x07, 0x88, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0x60, 0x60, + 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x00, 0x01, 0x00, 0x18, 0x00, 0x1F, 0x00, 0xE8, 0x01, 0x61, 0x00, 0x14, 0x00, 0x00, 0x3F, 0x01, 0x36, 0x32, 0x1F, + 0x01, 0x16, 0x14, 0x0F, 0x01, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x20, 0x88, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0x60, + 0x60, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x88, 0x07, 0xD1, 0x88, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, + 0x88, 0x07, 0x14, 0x00, 0x01, 0x00, 0x18, 0x00, 0x1F, 0x00, 0xE8, 0x01, 0x61, 0x00, 0x14, 0x00, 0x00, 0x37, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, + 0x3F, 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0xE0, 0x88, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0x60, 0x60, 0x07, 0x07, + 0x16, 0x07, 0x14, 0x07, 0x88, 0x07, 0xAF, 0x88, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0x88, 0x07, 0x14, + 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x58, 0x01, 0x41, 0x01, 0x28, 0x00, 0x14, 0x00, 0x00, 0x13, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x07, + 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0xB1, 0x88, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, 0x07, + 0x07, 0x88, 0x07, 0x14, 0x01, 0x20, 0x88, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0x60, 0x60, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x88, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x58, 0x01, 0x40, 0x01, 0x28, 0x00, 0x14, 0x00, 0x00, 0x37, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, + 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x8F, 0x88, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0x60, 0x60, 0x07, 0x14, 0x07, 0x17, + 0x07, 0x07, 0x88, 0x07, 0x14, 0x60, 0x88, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0x60, 0x60, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x88, 0x07, 0x00, 0x02, + 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x1F, 0x00, 0x23, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x17, 0x33, + 0x32, 0x16, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x01, 0x11, 0x21, 0x11, + 0x02, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0xC0, 0x10, 0x48, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xF0, 0x0A, 0x0E, 0x0E, 0x0A, 0x48, 0x10, 0xC0, 0x14, 0x1C, 0x1C, + 0x14, 0x01, 0xD0, 0xFE, 0x40, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0xC0, 0x14, 0x1C, 0x30, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x30, 0x1C, 0x14, 0x01, 0x40, + 0x14, 0x1C, 0xFE, 0xA0, 0x01, 0x20, 0xFE, 0xE0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x17, 0x00, 0x21, 0x00, + 0x25, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, + 0x36, 0x37, 0x13, 0x11, 0x21, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x03, 0x11, 0x21, 0x11, 0x02, 0x70, 0x07, 0x09, 0x26, 0x1A, 0xFE, 0x00, 0x1A, + 0x26, 0x09, 0x07, 0xEF, 0x14, 0x0D, 0x3D, 0x0E, 0x12, 0x01, 0xC2, 0xFE, 0x00, 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, 0x40, 0xFE, 0x80, 0x20, 0x09, 0x07, + 0x10, 0x1A, 0x26, 0x26, 0x1A, 0x10, 0x07, 0x09, 0x0B, 0x15, 0x11, 0x0F, 0x01, 0x70, 0xFE, 0xB0, 0x01, 0x50, 0x14, 0x1C, 0x1C, 0xFE, 0xDC, 0x01, 0x00, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, + 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x90, 0x14, 0x1C, 0x1C, + 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0xA3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xA0, + 0x14, 0x1C, 0xFE, 0x20, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x40, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x17, 0x00, + 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, + 0x01, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x63, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, + 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, 0xFE, 0x20, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, + 0x00, 0x1C, 0x00, 0x39, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x01, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0x80, 0x14, 0x1C, 0x5E, 0x42, + 0x08, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x1A, 0x26, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0x80, 0x14, 0x1C, 0x5E, 0x42, 0x08, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x1A, + 0x26, 0xC0, 0x1C, 0x14, 0x80, 0x14, 0x1C, 0x1C, 0x14, 0xF0, 0x42, 0x5E, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x26, 0x1A, 0x40, 0x1C, 0x14, 0x80, 0x14, 0x1C, + 0x1C, 0x14, 0xF0, 0x42, 0x5E, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x26, 0x1A, 0x40, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x1C, + 0x00, 0x39, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, + 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x23, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x36, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0xD0, 0x14, 0x1C, 0x5E, 0x42, 0x08, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x1A, + 0x26, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0xA0, 0x14, 0x1C, 0x5E, 0x42, 0x08, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x1A, 0x26, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0x01, + 0xA0, 0x1C, 0x14, 0xF0, 0x42, 0x5E, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x26, 0x1A, 0x40, 0x1C, 0x14, 0x80, 0x14, 0x1C, 0x1C, 0x14, 0xF0, 0x42, 0x5E, 0x0E, + 0x0A, 0x30, 0x0A, 0x0E, 0x26, 0x1A, 0x40, 0x1C, 0x14, 0x80, 0x14, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, + 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x00, 0x00, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x02, + 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x20, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x32, + 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x24, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x00, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x01, 0x30, 0x1C, + 0x28, 0x1C, 0x1C, 0x28, 0x28, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xEC, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xFE, 0xC0, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x15, 0x28, + 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0x42, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xFE, 0xF6, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0xA4, 0x28, 0x1C, 0x1C, 0x28, 0x1C, + 0xFE, 0x60, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xEC, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x93, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, + 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x01, 0x42, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x01, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, + 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x00, 0x00, 0x04, + 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x25, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, + 0x34, 0x04, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x36, 0x2E, 0x01, 0x07, 0x06, 0x22, 0x27, + 0x26, 0x0E, 0x01, 0x17, 0x16, 0x32, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x55, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xB3, 0x1A, 0x13, 0x13, 0x1A, 0x13, + 0xA3, 0x06, 0x07, 0x11, 0x07, 0x23, 0x6E, 0x23, 0x07, 0x12, 0x05, 0x05, 0x2D, 0x8C, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x17, 0x13, 0x1A, 0x13, + 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x97, 0x07, 0x11, 0x03, 0x07, 0x2A, 0x2A, 0x08, 0x04, 0x10, 0x08, 0x36, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x25, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, + 0x04, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x16, 0x3E, 0x01, 0x27, 0x26, 0x22, 0x07, 0x06, + 0x1E, 0x01, 0x37, 0x36, 0x32, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x55, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xB3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x8A, + 0x07, 0x12, 0x05, 0x05, 0x2D, 0x8C, 0x2D, 0x06, 0x07, 0x11, 0x07, 0x23, 0x6E, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x17, 0x13, 0x1A, 0x13, 0x13, + 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xC7, 0x08, 0x04, 0x10, 0x08, 0x36, 0x36, 0x07, 0x11, 0x03, 0x07, 0x2A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, + 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x32, 0x34, 0x2B, 0x01, 0x22, 0x14, 0x33, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x91, 0xCE, + 0x91, 0x91, 0xCE, 0x91, 0xB5, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x90, 0x10, 0x10, 0xC0, 0x10, 0x10, 0xA3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xB8, 0x91, + 0xCE, 0x91, 0x91, 0xCE, 0x17, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xAD, 0x20, 0x20, 0x80, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x1F, 0x02, 0x81, 0x01, 0x60, 0x00, 0x0F, 0x00, 0x2B, 0x00, 0x33, 0x00, 0x3B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x27, 0x23, + 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, + 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x01, 0xE0, 0x42, 0x5E, 0x5E, 0x42, 0x43, 0x2F, 0x5C, 0x2F, 0x43, 0x42, 0x5E, 0x5E, 0x42, 0x58, 0x0C, 0x34, 0x0C, 0x18, 0x0C, 0x34, 0x0C, 0x0C, + 0x34, 0x0C, 0x18, 0x0C, 0x34, 0x0C, 0xC7, 0x22, 0x17, 0x17, 0x22, 0x17, 0x57, 0x22, 0x17, 0x17, 0x22, 0x17, 0x01, 0x60, 0x5E, 0x84, 0x5E, 0x30, 0x30, + 0x5E, 0x84, 0x5E, 0xAC, 0x18, 0x0C, 0x34, 0x0C, 0x0C, 0x34, 0x0C, 0x18, 0x0C, 0x34, 0x0C, 0x0C, 0x34, 0x40, 0x17, 0x22, 0x17, 0x17, 0x22, 0x49, 0x17, + 0x22, 0x17, 0x17, 0x22, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x01, 0x80, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x27, 0x00, 0x33, 0x00, + 0x3F, 0x00, 0x4B, 0x00, 0x57, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x7B, 0x00, 0x87, 0x00, 0x93, 0x00, 0x9F, 0x00, 0x00, 0x29, 0x01, 0x22, 0x26, 0x35, 0x11, + 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, + 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, + 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x05, 0x35, 0x34, 0x2B, 0x01, + 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, + 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x05, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, + 0x01, 0x14, 0x3B, 0x01, 0x32, 0x25, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, + 0x14, 0x3B, 0x01, 0x32, 0x02, 0x10, 0xFE, 0x20, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xE0, 0x14, 0x1C, 0x1C, 0xFE, 0x5C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, + 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x60, 0x0C, 0x28, 0x0C, + 0x0C, 0x28, 0x0C, 0xFE, 0xB0, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, + 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0xFE, 0xB0, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x01, 0x20, 0x0C, 0xE8, 0x0C, 0x0C, 0xE8, 0x0C, 0x60, 0x0C, + 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x01, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, + 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x54, 0x28, + 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x54, 0x28, 0x0C, + 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x00, 0x04, 0x00, 0x08, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC1, + 0x00, 0x07, 0x00, 0x2D, 0x00, 0x33, 0x00, 0x57, 0x00, 0x00, 0x13, 0x1E, 0x01, 0x17, 0x15, 0x2E, 0x01, 0x27, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x07, + 0x06, 0x23, 0x22, 0x26, 0x23, 0x22, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x26, 0x35, 0x34, 0x36, 0x17, 0x1E, 0x01, 0x17, 0x16, + 0x07, 0x36, 0x32, 0x16, 0x33, 0x32, 0x07, 0x35, 0x06, 0x07, 0x15, 0x36, 0x25, 0x35, 0x06, 0x07, 0x15, 0x06, 0x27, 0x35, 0x26, 0x27, 0x15, 0x26, 0x07, + 0x35, 0x06, 0x07, 0x15, 0x36, 0x37, 0x15, 0x36, 0x17, 0x15, 0x16, 0x17, 0x35, 0x16, 0x37, 0x15, 0x36, 0x37, 0x35, 0x06, 0x07, 0x35, 0x36, 0xF3, 0x09, + 0x32, 0x0F, 0x09, 0x32, 0x0F, 0xDF, 0x10, 0x1E, 0x0E, 0x3B, 0x3F, 0x24, 0x69, 0x19, 0x3E, 0x34, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x18, 0x22, 0x18, 0x16, + 0x1F, 0x01, 0x01, 0x05, 0x21, 0x47, 0x68, 0x1A, 0x30, 0xE4, 0x22, 0x28, 0x23, 0x01, 0x4D, 0x27, 0x23, 0x23, 0x26, 0x0C, 0x3E, 0x26, 0x23, 0x13, 0x37, + 0x2E, 0x1C, 0x28, 0x21, 0x0B, 0x3F, 0x26, 0x23, 0x25, 0x25, 0x20, 0x2A, 0x1B, 0x01, 0x02, 0x02, 0x11, 0x03, 0x44, 0x02, 0x11, 0x03, 0xBF, 0x07, 0x12, + 0x12, 0xF3, 0x11, 0x09, 0x29, 0x22, 0x16, 0x5E, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x82, 0x11, 0x1D, 0x18, 0x21, 0x01, 0x01, 0x1E, 0x15, 0x0D, 0x0B, 0x0C, + 0x23, 0xE3, 0x48, 0x03, 0x0F, 0x46, 0x0D, 0x8A, 0x47, 0x11, 0x06, 0x48, 0x06, 0x09, 0x44, 0x02, 0x14, 0x44, 0x0B, 0x05, 0x47, 0x01, 0x15, 0x46, 0x11, + 0x04, 0x46, 0x03, 0x07, 0x44, 0x02, 0x14, 0x44, 0x0B, 0x05, 0x48, 0x04, 0x18, 0x46, 0x14, 0x06, 0x47, 0x04, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, + 0xFF, 0xE0, 0x02, 0x80, 0x01, 0x9B, 0x00, 0x14, 0x00, 0x24, 0x00, 0x00, 0x25, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x26, 0x34, + 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x05, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x01, + 0x02, 0xC2, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0x9A, 0x9A, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0xC2, 0x07, 0x01, 0x77, 0x0E, 0x0A, 0xFE, 0xD0, 0x0A, + 0x0E, 0x0E, 0x0A, 0x01, 0x30, 0x0A, 0x0E, 0xAF, 0xC2, 0x07, 0x07, 0x16, 0x07, 0x14, 0x07, 0x9B, 0x9B, 0x07, 0x14, 0x07, 0x16, 0x07, 0x07, 0xC2, 0x07, + 0x14, 0xBE, 0x0A, 0x0E, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x0E, 0x0A, 0x00, 0x00, 0x03, 0xFF, 0xFA, 0xFF, 0xBD, 0x02, 0x86, 0x01, 0xC3, 0x00, 0x0B, 0x00, + 0x1B, 0x00, 0x2B, 0x00, 0x00, 0x05, 0x27, 0x26, 0x37, 0x13, 0x36, 0x1F, 0x01, 0x16, 0x07, 0x03, 0x06, 0x27, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, + 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x17, 0x16, 0x07, 0x05, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x07, 0x01, + 0x17, 0x3D, 0x0C, 0x04, 0x88, 0x03, 0x0C, 0x3D, 0x0C, 0x04, 0x88, 0x04, 0x7D, 0x08, 0x09, 0x90, 0x0A, 0x0A, 0x90, 0x09, 0x08, 0x2B, 0x09, 0x09, 0x5B, + 0x5B, 0x09, 0x09, 0x01, 0x1C, 0x09, 0x08, 0x2B, 0x09, 0x09, 0x5B, 0x5B, 0x09, 0x09, 0x2B, 0x08, 0x09, 0x90, 0x0A, 0x0A, 0x40, 0x12, 0x03, 0x0C, 0x01, + 0xD6, 0x0C, 0x03, 0x12, 0x03, 0x0C, 0xFE, 0x2A, 0x0C, 0x74, 0x09, 0x08, 0x87, 0x09, 0x09, 0x87, 0x08, 0x09, 0x2E, 0x09, 0x08, 0x50, 0x50, 0x08, 0x09, + 0x2F, 0x08, 0x09, 0x2E, 0x09, 0x08, 0x50, 0x50, 0x08, 0x09, 0x2E, 0x09, 0x08, 0x87, 0x09, 0x09, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xDC, 0x02, + 0x40, 0x01, 0xA5, 0x00, 0x1A, 0x00, 0x2E, 0x00, 0x00, 0x13, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x1E, 0x03, 0x15, 0x14, 0x06, 0x07, 0x06, 0x26, 0x37, 0x36, + 0x26, 0x27, 0x15, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x34, 0x07, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x16, 0x1D, 0x01, 0x07, 0x06, 0x15, 0x31, 0x14, 0x1F, 0x01, + 0x15, 0x14, 0x06, 0x27, 0x88, 0xB0, 0x0C, 0x1C, 0x33, 0x4E, 0x3E, 0x21, 0x30, 0x23, 0x0B, 0x15, 0x04, 0x1C, 0x39, 0x54, 0x1C, 0x0C, 0xB0, 0x08, 0x78, + 0x08, 0x08, 0xB0, 0x0C, 0x1C, 0x6D, 0x13, 0x13, 0x6D, 0x1C, 0x0C, 0x01, 0x02, 0x98, 0x0A, 0x0D, 0x0F, 0x53, 0x04, 0x15, 0x29, 0x46, 0x2F, 0x2C, 0x55, + 0x19, 0x08, 0x0E, 0x0C, 0x5A, 0x52, 0x0A, 0x54, 0x0F, 0x0D, 0x0A, 0x98, 0x07, 0x16, 0x1D, 0x07, 0x16, 0x07, 0x98, 0x0A, 0x0D, 0x0F, 0x10, 0x5E, 0x10, + 0x1A, 0x1A, 0x10, 0x5E, 0x10, 0x0F, 0x0D, 0x0A, 0x00, 0x01, 0xFF, 0xFB, 0xFF, 0xBB, 0x02, 0x09, 0x01, 0xC9, 0x00, 0x0E, 0x00, 0x00, 0x01, 0x36, 0x16, + 0x07, 0x03, 0x0E, 0x01, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x36, 0x37, 0x01, 0xBD, 0x1C, 0x2F, 0x0C, 0xBF, 0x0B, 0x2D, 0x25, 0xB0, 0x19, 0x1B, 0x0A, + 0x17, 0x01, 0xBC, 0x0C, 0x2F, 0x1C, 0xFE, 0x60, 0x17, 0x0A, 0x1B, 0x19, 0xB0, 0x25, 0x2D, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x02, + 0x07, 0x01, 0xC7, 0x00, 0x37, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, + 0x07, 0x33, 0x15, 0x23, 0x22, 0x26, 0x35, 0x11, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, + 0x11, 0x37, 0x23, 0x35, 0x33, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x15, 0x01, 0xE8, 0x0A, 0x0E, 0x0E, 0x0A, 0x28, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, + 0x93, 0x73, 0xE8, 0x0A, 0x0E, 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0x28, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x93, 0x73, 0xD3, 0x3B, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, + 0x3B, 0x60, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x1B, 0x93, 0x60, 0x0E, 0x0A, 0x01, 0x08, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, + 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xE5, 0x93, 0x60, 0x3B, 0x0C, 0x0C, 0x16, 0x0C, 0x0B, 0x3B, 0xF3, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, + 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x34, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4C, 0x00, 0x00, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07, 0x0E, 0x02, 0x07, 0x06, + 0x07, 0x06, 0x07, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x35, 0x2E, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, + 0x07, 0x15, 0x36, 0x37, 0x3E, 0x02, 0x37, 0x36, 0x37, 0x2E, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x24, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x02, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x12, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x01, 0x80, 0x1E, 0x18, 0x01, 0x15, 0x0D, 0x2D, 0x20, 0x1C, + 0x32, 0x10, 0x0A, 0x05, 0x17, 0x1C, 0x2F, 0x42, 0x2F, 0x1F, 0x19, 0x19, 0x1F, 0x2F, 0x42, 0x2F, 0x1F, 0x19, 0x18, 0x39, 0x18, 0x18, 0x1E, 0x07, 0x0B, + 0x01, 0x1A, 0x20, 0x2F, 0x42, 0x2F, 0xFE, 0xD7, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x17, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0xF7, 0x0E, 0x09, 0x09, 0x0E, 0x09, + 0x01, 0x30, 0x1A, 0x2A, 0x08, 0x2A, 0x1A, 0x10, 0x13, 0x06, 0x02, 0x05, 0x08, 0x05, 0x08, 0x09, 0x29, 0x19, 0x21, 0x2F, 0x2F, 0x21, 0x1B, 0x2A, 0x07, + 0xC8, 0x07, 0x2A, 0x1B, 0x21, 0x2F, 0x2F, 0x21, 0x1B, 0x2A, 0x07, 0x90, 0x0B, 0x06, 0x02, 0x03, 0x0B, 0x09, 0x0D, 0x18, 0x08, 0x2A, 0x1B, 0x21, 0x2F, + 0x2F, 0x2F, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0xFE, 0x89, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x01, 0x37, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x00, 0x00, 0x03, + 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x01, 0x01, 0xC1, 0x00, 0x17, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x00, 0x25, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x26, 0x34, 0x3F, + 0x01, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x06, 0x14, 0x16, 0x32, 0x3F, 0x01, 0x36, 0x17, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x16, 0x14, 0x0F, + 0x01, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x34, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x13, 0x06, 0x22, 0x27, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, + 0x17, 0x01, 0x16, 0x14, 0x07, 0x01, 0x30, 0x09, 0x09, 0x2D, 0x2C, 0x7E, 0x59, 0x2C, 0x2D, 0x09, 0x08, 0x28, 0x08, 0x08, 0x2D, 0x15, 0x2A, 0x3C, 0x15, + 0x2D, 0x08, 0x08, 0x10, 0x28, 0x09, 0x09, 0x2D, 0x2C, 0x7E, 0x59, 0x2C, 0x2D, 0x09, 0x08, 0x28, 0x08, 0x08, 0x2D, 0x15, 0x2A, 0x3C, 0x15, 0x2D, 0x08, + 0xE2, 0x07, 0x14, 0x07, 0xFE, 0x47, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0x01, 0xB9, 0x07, 0x07, 0x2A, 0x08, 0x09, 0x2D, 0x2C, 0x59, 0x7E, 0x2C, 0x2D, + 0x09, 0x09, 0x28, 0x08, 0x08, 0x2D, 0x15, 0x3C, 0x2A, 0x15, 0x2D, 0x08, 0x08, 0xDC, 0x28, 0x08, 0x09, 0x2D, 0x2C, 0x59, 0x7E, 0x2C, 0x2D, 0x09, 0x09, + 0x28, 0x08, 0x08, 0x2D, 0x15, 0x3C, 0x2A, 0x15, 0x2D, 0x08, 0xFE, 0xA1, 0x07, 0x07, 0x01, 0xB9, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0xFE, 0x47, 0x07, + 0x14, 0x07, 0x00, 0x02, 0x00, 0x18, 0xFF, 0xC0, 0x01, 0x7A, 0x01, 0xC0, 0x00, 0x28, 0x00, 0x30, 0x00, 0x00, 0x13, 0x32, 0x16, 0x15, 0x14, 0x0E, 0x03, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3E, 0x02, 0x37, 0x3E, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x0E, 0x01, + 0x2F, 0x01, 0x2E, 0x01, 0x37, 0x36, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0xCA, 0x42, 0x6E, 0x1A, 0x25, 0x25, 0x1A, 0x0E, 0x0A, 0x48, 0x0A, + 0x0E, 0x0D, 0x1F, 0x13, 0x13, 0x1B, 0x16, 0x2C, 0x19, 0x1B, 0x22, 0x16, 0x06, 0x13, 0x08, 0x2B, 0x08, 0x03, 0x06, 0x3F, 0x46, 0x3A, 0x28, 0x28, 0x3A, + 0x28, 0x01, 0xC0, 0x5A, 0x40, 0x20, 0x31, 0x1B, 0x14, 0x15, 0x0B, 0x06, 0x0A, 0x0E, 0x0E, 0x0A, 0x0A, 0x16, 0x22, 0x1B, 0x0C, 0x0B, 0x0F, 0x15, 0x0F, + 0x16, 0x1C, 0x17, 0x1A, 0x08, 0x03, 0x06, 0x21, 0x06, 0x13, 0x08, 0x5B, 0xFE, 0x8B, 0x29, 0x39, 0x29, 0x29, 0x39, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0xFF, 0xC0, 0x00, 0xC0, 0x01, 0xC0, 0x00, 0x1E, 0x00, 0x26, 0x00, 0x00, 0x37, 0x33, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, + 0x34, 0x14, 0x14, 0x14, 0x08, 0x0C, 0x0C, 0x08, 0x70, 0x08, 0x0C, 0x14, 0x08, 0x0C, 0x0C, 0x08, 0x98, 0x08, 0x0C, 0x0C, 0x36, 0x3C, 0x2A, 0x2A, 0x3C, + 0x2A, 0x18, 0x90, 0x0C, 0x08, 0x30, 0x08, 0x0C, 0x0C, 0x08, 0xD4, 0x0C, 0x08, 0x30, 0x08, 0x0C, 0x0C, 0x08, 0x30, 0x08, 0x0C, 0x01, 0xA8, 0x2A, 0x3C, + 0x2A, 0x2A, 0x3C, 0x00, 0x00, 0x02, 0x00, 0x10, 0xFF, 0xC0, 0x00, 0xB0, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x17, 0x00, 0x00, 0x36, 0x14, 0x06, 0x22, 0x26, + 0x34, 0x36, 0x32, 0x03, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x03, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0xB0, 0x2F, 0x42, 0x2F, 0x2F, 0x42, + 0x68, 0x0E, 0x0A, 0x5E, 0x0A, 0x0E, 0x0E, 0x0E, 0x0A, 0x42, 0x0A, 0x0E, 0x31, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0x47, 0x0A, 0x0F, 0x0F, 0x0A, 0xFE, + 0xF0, 0x0A, 0x0D, 0x0D, 0x0A, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x1F, 0x00, 0x53, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x1D, 0x01, 0x27, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x07, 0x17, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x2F, + 0x01, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x27, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, + 0x1F, 0x01, 0x37, 0x36, 0x33, 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x10, 0x10, 0x07, 0x09, 0x02, 0x10, 0x04, 0x0A, 0x30, + 0x07, 0x09, 0x90, 0x07, 0x09, 0x09, 0x07, 0x21, 0x4E, 0x4E, 0x21, 0x07, 0x09, 0x09, 0x07, 0x43, 0x08, 0x05, 0x50, 0x50, 0x05, 0x08, 0x43, 0x07, 0x09, + 0x09, 0x07, 0x21, 0x4E, 0x4E, 0x21, 0x07, 0x09, 0x09, 0x07, 0x43, 0x08, 0x05, 0x50, 0x50, 0x05, 0x08, 0x01, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x60, 0x09, 0x07, 0x04, 0x03, 0x20, 0x09, 0x09, 0x07, 0x90, 0x60, 0x09, 0x07, 0x30, 0x07, 0x09, 0x70, 0x70, 0x09, 0x07, 0x30, + 0x07, 0x09, 0x07, 0x73, 0x73, 0x07, 0x09, 0x07, 0x30, 0x07, 0x09, 0x70, 0x70, 0x09, 0x07, 0x30, 0x07, 0x09, 0x07, 0x73, 0x73, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0x80, 0x00, 0x1F, 0x00, 0x53, 0x00, 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x03, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x07, 0x17, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x07, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x27, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x33, + 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x10, 0x10, 0x07, 0x09, 0x02, 0x10, 0x04, 0x0A, 0x30, 0x07, 0x09, 0x90, 0x07, 0x09, + 0x09, 0x07, 0x21, 0x4E, 0x4E, 0x21, 0x07, 0x09, 0x09, 0x07, 0x43, 0x08, 0x05, 0x50, 0x50, 0x05, 0x08, 0x43, 0x07, 0x09, 0x09, 0x07, 0x21, 0x4E, 0x4E, + 0x21, 0x07, 0x09, 0x09, 0x07, 0x43, 0x08, 0x05, 0x50, 0x50, 0x05, 0x08, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x60, 0x09, 0x07, + 0x04, 0x03, 0x20, 0x09, 0x09, 0x07, 0x90, 0x01, 0x80, 0x09, 0x07, 0x30, 0x07, 0x09, 0x70, 0x70, 0x09, 0x07, 0x30, 0x07, 0x09, 0x07, 0x73, 0x73, 0x07, + 0x09, 0x07, 0x30, 0x07, 0x09, 0x70, 0x70, 0x09, 0x07, 0x30, 0x07, 0x09, 0x07, 0x73, 0x73, 0x07, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xE0, 0x02, 0x00, 0x01, + 0xA1, 0x00, 0x15, 0x00, 0x1A, 0x00, 0x00, 0x25, 0x07, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x23, 0x21, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x37, 0x01, 0x36, 0x32, + 0x1F, 0x01, 0x16, 0x14, 0x25, 0x07, 0x17, 0x33, 0x37, 0x01, 0xF2, 0x8E, 0x90, 0x0C, 0x0C, 0xFE, 0x9C, 0x14, 0x0E, 0x60, 0x0E, 0x0E, 0x01, 0x00, 0x0E, + 0x28, 0x0E, 0xA0, 0x0E, 0xFE, 0xC3, 0x7C, 0x50, 0x72, 0x44, 0xAE, 0x8E, 0x0C, 0x28, 0x0C, 0x0E, 0x60, 0x0E, 0x28, 0x0E, 0x01, 0x00, 0x0E, 0x0E, 0xA0, + 0x0E, 0x28, 0x31, 0x7D, 0x50, 0x43, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x45, 0x00, 0x00, 0x25, 0x32, 0x16, + 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x23, 0x22, 0x0E, 0x01, 0x16, 0x1F, 0x01, 0x22, 0x0E, 0x01, 0x2E, 0x01, 0x35, 0x34, 0x36, 0x35, 0x34, 0x26, 0x23, + 0x22, 0x06, 0x15, 0x14, 0x1E, 0x01, 0x15, 0x14, 0x0E, 0x01, 0x26, 0x2F, 0x01, 0x11, 0x30, 0x17, 0x16, 0x35, 0x34, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, + 0x16, 0x15, 0x14, 0x06, 0x15, 0x14, 0x16, 0x3E, 0x01, 0x3F, 0x01, 0x30, 0x07, 0x06, 0x33, 0x32, 0x36, 0x02, 0x07, 0x1B, 0x1E, 0x1D, 0x1A, 0x14, 0x31, + 0x11, 0x11, 0x12, 0x01, 0x04, 0x03, 0x03, 0x0C, 0x34, 0x2D, 0x2E, 0x1A, 0x24, 0x23, 0x1B, 0x1B, 0x24, 0x14, 0x14, 0x25, 0x35, 0x34, 0x13, 0x12, 0x40, + 0x70, 0x20, 0x27, 0x1C, 0x1A, 0x23, 0x24, 0x28, 0x3A, 0x3A, 0x14, 0x14, 0x11, 0x13, 0x29, 0x09, 0x32, 0x9F, 0x26, 0x1B, 0x1B, 0x23, 0x24, 0x19, 0x23, + 0x23, 0x0D, 0x0C, 0x06, 0x04, 0x01, 0x12, 0x11, 0x11, 0x30, 0x15, 0x19, 0x1D, 0x1D, 0x1B, 0x12, 0x1F, 0x17, 0x09, 0x14, 0x14, 0x01, 0x04, 0x04, 0x04, + 0x01, 0x4D, 0x0A, 0x0B, 0x32, 0x09, 0x32, 0x17, 0x1A, 0x1E, 0x1D, 0x1A, 0x14, 0x30, 0x12, 0x17, 0x12, 0x08, 0x0F, 0x07, 0x08, 0x45, 0x6B, 0x1F, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x60, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x3C, 0x00, 0x00, 0x36, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x07, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x17, 0x16, 0x36, 0x3D, 0x01, 0x34, + 0x36, 0x33, 0xD8, 0x50, 0x38, 0x38, 0x50, 0x38, 0x40, 0x07, 0x09, 0x57, 0x41, 0x38, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x38, 0x41, + 0x57, 0x09, 0x07, 0x10, 0x07, 0x09, 0x42, 0x31, 0x39, 0x54, 0x09, 0x07, 0x60, 0x38, 0x28, 0xA0, 0x28, 0x38, 0x38, 0x28, 0xA0, 0x28, 0x68, 0x09, 0x07, + 0x30, 0x42, 0x63, 0x09, 0x22, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x22, 0x09, 0x69, 0x44, 0x28, 0x07, 0x09, 0x09, 0x07, 0x2A, + 0x33, 0x4E, 0x04, 0x06, 0x4D, 0x38, 0x30, 0x07, 0x09, 0x00, 0x00, 0x02, 0xFF, 0xF9, 0xFF, 0xB9, 0x02, 0x87, 0x01, 0xC7, 0x00, 0x23, 0x00, 0x43, 0x00, + 0x00, 0x05, 0x16, 0x0F, 0x01, 0x06, 0x27, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x07, 0x17, 0x36, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x3D, 0x01, 0x17, 0x1E, 0x01, 0x17, 0x16, 0x37, 0x17, 0x06, 0x07, 0x15, 0x02, 0x7A, 0x0C, 0x09, 0x14, 0x0A, + 0x0C, 0xFD, 0xB3, 0x0C, 0x09, 0x14, 0x0A, 0x0C, 0xB3, 0x38, 0x50, 0x38, 0x05, 0x1A, 0x0B, 0x09, 0x07, 0x10, 0x07, 0x09, 0x14, 0x4C, 0x07, 0x09, 0x09, + 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x38, 0x41, 0x57, 0x34, 0x0A, 0x3C, 0x29, 0x07, 0x0E, 0x32, 0x12, 0x10, 0x0A, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0x01, + 0xC7, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0x8A, 0x2D, 0x28, 0x38, 0x38, 0x28, 0xA0, 0x0E, 0x10, 0x14, 0x18, 0x1A, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x2A, + 0x26, 0x80, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x22, 0x09, 0x69, 0x44, 0x07, 0x29, 0x28, 0x39, 0x04, 0x01, 0x01, 0x27, 0x06, + 0x02, 0x22, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x0D, 0x00, 0x2B, 0x00, 0x00, 0x13, 0x21, 0x32, 0x15, 0x11, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x25, 0x14, 0x23, 0x21, 0x22, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, + 0x33, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x15, 0x0C, 0x01, 0xA8, 0x0C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x01, 0xC0, 0x0C, + 0xFE, 0x58, 0x0C, 0x1C, 0x14, 0x30, 0x0C, 0x28, 0x0C, 0x80, 0x0C, 0x28, 0x0C, 0x30, 0x14, 0x1C, 0x01, 0x00, 0x0C, 0xFE, 0xFC, 0x14, 0x1C, 0x1C, 0x14, + 0x01, 0x04, 0x0C, 0x2C, 0x0C, 0x0C, 0x24, 0x14, 0x1C, 0x34, 0x0C, 0x0C, 0x34, 0x34, 0x0C, 0x0C, 0x34, 0x1C, 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, + 0xFE, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x36, 0x00, 0x3E, 0x00, 0x00, 0x01, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x35, 0x23, + 0x15, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x37, 0x35, 0x2A, 0x02, 0x0E, 0x05, 0x07, 0x0E, 0x01, 0x2E, + 0x01, 0x37, 0x36, 0x37, 0x26, 0x36, 0x33, 0x32, 0x16, 0x07, 0x33, 0x34, 0x37, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xB2, 0x06, 0x08, + 0x08, 0x06, 0xA8, 0x0A, 0x28, 0x1F, 0x29, 0x0E, 0x0A, 0x90, 0x0A, 0x0E, 0x29, 0x1F, 0x04, 0x1E, 0x06, 0x18, 0x06, 0x12, 0x07, 0x0D, 0x09, 0x05, 0x03, + 0x13, 0x12, 0x08, 0x04, 0x1E, 0x3C, 0x0B, 0x21, 0x1E, 0x1C, 0x22, 0x08, 0x3A, 0x0A, 0x81, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0xA6, 0x01, 0x08, 0x05, + 0x74, 0x05, 0x08, 0x01, 0x1C, 0x02, 0x10, 0x1B, 0x08, 0x34, 0x21, 0xF8, 0x0A, 0x0E, 0x0E, 0x0A, 0xF7, 0x21, 0x35, 0x08, 0x1B, 0x02, 0x03, 0x06, 0x0A, + 0x0D, 0x13, 0x0C, 0x09, 0x08, 0x07, 0x13, 0x09, 0x4C, 0x0F, 0x1B, 0x31, 0x2D, 0x1B, 0x10, 0x02, 0x12, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x00, 0x02, + 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x01, 0x01, 0xC0, 0x00, 0x2A, 0x00, 0x32, 0x00, 0x00, 0x01, 0x16, 0x15, 0x14, 0x06, 0x07, 0x15, 0x14, 0x06, 0x0F, 0x01, + 0x06, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x07, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x3E, 0x01, 0x3B, + 0x01, 0x3E, 0x01, 0x33, 0x32, 0x17, 0x16, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xF9, 0x07, 0x44, 0x3C, 0x10, 0x0B, 0x62, 0x05, 0x06, + 0x0A, 0x0E, 0x16, 0x0B, 0x1A, 0x09, 0x33, 0x09, 0x01, 0x08, 0x17, 0x68, 0x0A, 0x0E, 0x03, 0x31, 0x05, 0x1A, 0x0C, 0x68, 0x27, 0x64, 0x48, 0x33, 0x20, + 0x0A, 0x88, 0x22, 0x17, 0x17, 0x22, 0x17, 0x01, 0xAD, 0x21, 0x32, 0x48, 0x64, 0x27, 0x68, 0x0D, 0x19, 0x05, 0x31, 0x03, 0x0E, 0x0A, 0x68, 0x17, 0x09, + 0x01, 0x08, 0x33, 0x0A, 0x1B, 0x09, 0x16, 0x0E, 0x0A, 0x06, 0x05, 0x63, 0x0A, 0x10, 0x3D, 0x43, 0x07, 0x02, 0x9F, 0x17, 0x22, 0x17, 0x17, 0x22, 0x00, + 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x1C, 0x00, 0x00, 0x04, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x25, + 0x17, 0x16, 0x32, 0x3F, 0x01, 0x36, 0x34, 0x2F, 0x01, 0x37, 0x36, 0x34, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x14, 0x01, 0x67, 0xCE, 0x91, 0x91, + 0xCE, 0x91, 0xFE, 0x96, 0x88, 0x07, 0x14, 0x07, 0x10, 0x08, 0x08, 0x65, 0x65, 0x08, 0x08, 0x10, 0x08, 0x13, 0x07, 0x88, 0x07, 0x38, 0x91, 0xCE, 0x91, + 0x91, 0xCE, 0x56, 0x87, 0x08, 0x08, 0x10, 0x08, 0x13, 0x07, 0x66, 0x66, 0x07, 0x14, 0x07, 0x10, 0x08, 0x08, 0x87, 0x07, 0x14, 0x00, 0x02, 0x00, 0x08, + 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x1C, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x27, 0x26, 0x22, 0x0F, + 0x01, 0x06, 0x14, 0x1F, 0x01, 0x07, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x32, 0x3F, 0x01, 0x36, 0x34, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x6A, 0x88, + 0x07, 0x14, 0x07, 0x10, 0x08, 0x08, 0x65, 0x65, 0x08, 0x08, 0x10, 0x08, 0x13, 0x07, 0x88, 0x07, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x56, 0x87, + 0x08, 0x08, 0x10, 0x08, 0x13, 0x07, 0x66, 0x66, 0x07, 0x14, 0x07, 0x10, 0x08, 0x08, 0x87, 0x07, 0x14, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, + 0x01, 0xB8, 0x00, 0x07, 0x00, 0x1C, 0x00, 0x00, 0x36, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x13, 0x07, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x32, 0x3F, + 0x01, 0x17, 0x16, 0x32, 0x3F, 0x01, 0x36, 0x34, 0x2F, 0x01, 0x26, 0x22, 0x08, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x56, 0x87, 0x08, 0x08, 0x10, 0x08, 0x13, + 0x07, 0x66, 0x66, 0x07, 0x14, 0x07, 0x10, 0x08, 0x08, 0x87, 0x07, 0x14, 0x59, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x6A, 0x88, 0x07, 0x14, 0x07, 0x10, + 0x08, 0x08, 0x65, 0x65, 0x08, 0x08, 0x10, 0x08, 0x13, 0x07, 0x88, 0x07, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, + 0x00, 0x1C, 0x00, 0x00, 0x00, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x03, 0x37, 0x36, 0x34, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x01, 0x27, 0x26, 0x22, + 0x0F, 0x01, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x32, 0x01, 0xF8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x56, 0x87, 0x08, 0x08, 0x10, 0x08, 0x13, 0x07, 0x66, 0x66, + 0x07, 0x14, 0x07, 0x10, 0x08, 0x08, 0x87, 0x07, 0x14, 0x01, 0x27, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xFE, 0x96, 0x88, 0x07, 0x14, 0x07, 0x10, 0x08, 0x08, + 0x65, 0x65, 0x08, 0x08, 0x10, 0x08, 0x13, 0x07, 0x88, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x42, 0x01, 0xC1, 0x00, 0x42, + 0x00, 0x4A, 0x00, 0x00, 0x37, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x1E, 0x01, 0x17, 0x35, 0x23, 0x22, 0x3D, 0x01, 0x34, + 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x35, 0x34, 0x36, 0x17, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x07, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, + 0x15, 0x3E, 0x01, 0x37, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x0E, 0x01, 0x22, 0x26, 0x27, 0x00, 0x22, 0x06, 0x14, + 0x16, 0x32, 0x36, 0x34, 0x0D, 0x08, 0x06, 0x05, 0x44, 0x08, 0x08, 0x44, 0x05, 0x06, 0x08, 0x23, 0x0E, 0x52, 0x30, 0x34, 0x0C, 0x0C, 0x34, 0x1C, 0x24, + 0x39, 0x28, 0x28, 0x37, 0x24, 0x1C, 0x34, 0x05, 0x07, 0x07, 0x05, 0x34, 0x30, 0x52, 0x0E, 0x23, 0x08, 0x06, 0x05, 0x44, 0x08, 0x08, 0x44, 0x05, 0x06, + 0x08, 0x20, 0x10, 0x8E, 0xAA, 0x8E, 0x10, 0x01, 0x00, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x60, 0x0F, 0x05, 0x44, 0x08, 0x08, 0x44, 0x05, 0x0F, 0x27, 0x31, + 0x06, 0xBE, 0x0C, 0x28, 0x0C, 0x05, 0x0A, 0x32, 0x1F, 0x28, 0x39, 0x01, 0x01, 0x38, 0x27, 0x1F, 0x32, 0x0A, 0x05, 0x07, 0x05, 0x28, 0x05, 0x07, 0xBE, + 0x06, 0x31, 0x27, 0x0F, 0x05, 0x44, 0x08, 0x08, 0x44, 0x05, 0x0F, 0x49, 0x57, 0x57, 0x49, 0x01, 0x20, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC1, 0x00, 0x26, 0x00, 0x32, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, + 0x23, 0x22, 0x06, 0x1D, 0x01, 0x17, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, + 0x14, 0x1C, 0x1C, 0x14, 0x18, 0x59, 0x7D, 0x5A, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x2B, 0x1E, 0x1D, 0x2A, 0x70, 0x17, 0x22, 0x17, 0x17, 0x22, 0x17, 0xC0, + 0x1C, 0x14, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0xA0, 0x14, 0x1C, 0x66, 0x40, 0x5A, 0x59, 0x3F, 0x10, 0x0A, 0x0E, 0x0E, 0x0A, 0x10, 0x1E, 0x2A, 0x2B, 0x1E, + 0x67, 0x98, 0x30, 0x11, 0x17, 0x17, 0x11, 0x30, 0x11, 0x17, 0x17, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, + 0x00, 0x17, 0x00, 0x1F, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x16, + 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xAC, 0x98, 0x6C, 0x6C, 0x98, 0x6C, + 0x83, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x66, 0x34, 0x26, 0x26, 0x34, 0x26, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0xFE, 0xE1, 0x6C, 0x98, 0x6C, 0x6C, + 0x98, 0xCC, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x75, 0x26, 0x34, 0x26, 0x26, 0x34, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0x00, 0x78, 0x01, 0xF8, 0x01, 0x08, + 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x00, 0x24, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x3A, 0x02, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x24, 0x32, + 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x01, 0x48, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, 0x74, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0xFE, 0xCA, 0x3C, 0x2A, 0x2A, 0x3C, + 0x2A, 0xDE, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x18, 0xFF, + 0xC8, 0x00, 0xA8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x3C, 0x02, 0x36, 0x32, 0x16, + 0x14, 0x06, 0x22, 0x02, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x42, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, + 0x2A, 0x2A, 0x3C, 0x01, 0x08, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, 0x74, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0xFE, 0xCA, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x29, 0x00, 0x3B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x17, 0x32, 0x36, 0x35, 0x2E, 0x01, + 0x27, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x33, 0x1E, 0x01, 0x17, 0x14, 0x3B, 0x01, 0x32, 0x36, 0x35, 0x2E, 0x01, 0x27, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x33, + 0x1E, 0x01, 0x17, 0x14, 0x33, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x2C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xCE, 0x04, + 0x07, 0x05, 0x75, 0x53, 0x05, 0x07, 0x0B, 0x3C, 0x55, 0x04, 0x0B, 0x8A, 0x04, 0x07, 0x05, 0xB1, 0x7E, 0x05, 0x07, 0x0B, 0x66, 0x92, 0x04, 0x0B, 0x01, + 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xFE, 0x80, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x07, 0x05, 0x53, 0x75, + 0x05, 0x07, 0x04, 0x23, 0x0B, 0x04, 0x55, 0x3C, 0x0B, 0x07, 0x05, 0x7D, 0xB2, 0x05, 0x07, 0x04, 0x23, 0x0B, 0x04, 0x92, 0x66, 0x0B, 0x00, 0x02, 0x00, + 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x36, 0x34, 0x2F, + 0x01, 0x26, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x37, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x6C, 0x0C, 0x0C, 0xB0, 0x0C, 0x18, 0x18, 0x0C, 0x01, 0xB8, + 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x7F, 0x07, 0x1C, 0x07, 0x6B, 0x07, 0x0E, 0x0E, 0xD0, 0x0E, 0x0E, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, + 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, + 0x33, 0x13, 0x21, 0x32, 0x3D, 0x01, 0x34, 0x23, 0x21, 0x22, 0x1D, 0x01, 0x14, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, + 0x2C, 0x01, 0x08, 0x0C, 0x0C, 0xFE, 0xF8, 0x0C, 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xFE, 0xF8, 0x0C, + 0x38, 0x0C, 0x0C, 0x38, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x00, 0x05, 0x21, + 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x27, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x0F, + 0x01, 0x06, 0x1F, 0x01, 0x16, 0x01, 0x90, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0xE1, 0xB8, 0x0C, 0x0C, 0x16, 0x0C, 0x0B, + 0x96, 0x46, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x68, 0x0B, 0x20, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x62, 0xB8, 0x0B, + 0x0C, 0x16, 0x0C, 0x0C, 0x96, 0x46, 0x0C, 0x0C, 0x16, 0x0C, 0x0B, 0x68, 0x0B, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, + 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x29, 0x00, 0x00, 0x05, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x03, + 0x0F, 0x01, 0x06, 0x16, 0x3F, 0x02, 0x36, 0x2F, 0x01, 0x26, 0x37, 0x27, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x36, 0x34, 0x01, + 0x90, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0xB6, 0x88, 0x06, 0x01, 0x09, 0x05, 0x39, 0x88, 0x04, 0x04, 0x37, 0x05, 0x67, + 0x1E, 0x07, 0x14, 0x07, 0x17, 0x04, 0x04, 0x37, 0x05, 0x04, 0x17, 0x07, 0x20, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, + 0x01, 0x2E, 0x88, 0x39, 0x05, 0x09, 0x01, 0x06, 0x88, 0x04, 0x04, 0x38, 0x04, 0x09, 0x1E, 0x07, 0x07, 0x17, 0x04, 0x05, 0x37, 0x04, 0x04, 0x17, 0x07, + 0x14, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x41, 0x01, 0xC5, 0x00, 0x1E, 0x00, 0x40, 0x00, 0x00, 0x01, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x22, 0x0E, + 0x02, 0x14, 0x17, 0x16, 0x06, 0x27, 0x2E, 0x01, 0x35, 0x34, 0x3E, 0x03, 0x33, 0x35, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x14, 0x07, 0x34, 0x36, 0x17, 0x16, + 0x33, 0x32, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x07, 0x06, 0x07, 0x06, + 0x2B, 0x01, 0x11, 0x21, 0x02, 0x38, 0x90, 0x0B, 0x1D, 0x2D, 0x3F, 0x30, 0x15, 0x0C, 0x04, 0x14, 0x09, 0x1F, 0x2B, 0x1C, 0x2D, 0x46, 0x4A, 0x2F, 0x1D, + 0x0B, 0x90, 0x08, 0xC0, 0x08, 0x06, 0x05, 0x05, 0x0C, 0x0C, 0x06, 0x0A, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x79, 0x09, 0x05, 0x08, 0x1E, + 0x15, 0x04, 0x05, 0x33, 0x01, 0x40, 0x01, 0x0F, 0x88, 0x0B, 0x0C, 0x10, 0x48, 0x0A, 0x17, 0x27, 0x3B, 0x28, 0x0C, 0x0D, 0x07, 0x18, 0x4F, 0x29, 0x2A, + 0x3E, 0x26, 0x16, 0x09, 0x48, 0x10, 0x0C, 0x0B, 0x88, 0x07, 0x14, 0xD1, 0x05, 0x08, 0x01, 0x01, 0x04, 0x02, 0x07, 0x06, 0x59, 0x14, 0x1C, 0x1C, 0x14, + 0x01, 0x60, 0x14, 0x1C, 0x12, 0x05, 0x0F, 0x16, 0x04, 0xFE, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, + 0x07, 0x00, 0x0F, 0x00, 0x1D, 0x00, 0x00, 0x3E, 0x01, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x02, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x36, + 0x26, 0x0F, 0x01, 0x06, 0x0F, 0x01, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x37, 0xD8, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x47, 0xCE, 0x91, 0x91, 0xCE, 0x91, + 0x01, 0x76, 0x06, 0x14, 0x0C, 0x90, 0x0B, 0x05, 0x42, 0x06, 0x14, 0x0C, 0x90, 0x0B, 0x05, 0xCD, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x01, 0x05, 0x91, 0xCE, + 0x91, 0x91, 0xCE, 0x03, 0x0C, 0x14, 0x06, 0x42, 0x05, 0x0B, 0x90, 0x0C, 0x14, 0x06, 0x42, 0x05, 0x0B, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, + 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1A, 0x00, 0x00, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, + 0x05, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, + 0xFE, 0x9C, 0x7C, 0x08, 0x08, 0x7C, 0x05, 0x06, 0x08, 0xF6, 0x08, 0x06, 0x01, 0x70, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, + 0xA0, 0x7C, 0x08, 0x08, 0x7C, 0x05, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1A, 0x00, + 0x00, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x25, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x16, 0x3B, + 0x01, 0x32, 0x36, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x01, 0x64, 0x7C, 0x08, 0x08, 0x7C, 0x05, 0x06, 0x08, 0xF6, + 0x08, 0x06, 0x10, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0xA0, 0x7C, 0x08, 0x08, 0x7C, 0x05, 0x0F, 0x0F, 0x00, 0x00, 0x02, + 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1A, 0x00, 0x00, 0x13, 0x21, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x35, 0x11, 0x34, 0x36, 0x13, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x30, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, + 0x14, 0x1C, 0x1C, 0xA0, 0x7C, 0x08, 0x08, 0x7C, 0x05, 0x0F, 0x0F, 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, + 0xFE, 0x9C, 0x7C, 0x08, 0x08, 0x7C, 0x05, 0x06, 0x08, 0xF6, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0x42, 0x01, 0xA0, + 0x00, 0x42, 0x00, 0x00, 0x25, 0x17, 0x16, 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x26, 0x37, 0x23, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x3E, 0x01, 0x33, 0x32, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x33, 0x32, 0x16, + 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x06, 0x17, 0x33, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x1E, 0x01, 0x33, 0x32, 0x37, 0x36, 0x01, 0x37, 0x09, 0x02, + 0x0B, 0x1E, 0x1F, 0x4D, 0x70, 0x13, 0x1E, 0x05, 0x07, 0x0C, 0x15, 0x01, 0x02, 0x16, 0x05, 0x07, 0x0C, 0x21, 0x16, 0x6F, 0x48, 0x19, 0x1B, 0x05, 0x06, + 0x01, 0x0C, 0x03, 0x0B, 0x15, 0x11, 0x28, 0x3E, 0x10, 0x8A, 0x06, 0x07, 0x01, 0x06, 0x02, 0x0A, 0x93, 0x02, 0x02, 0x86, 0x06, 0x07, 0x01, 0x06, 0x02, + 0x0A, 0x72, 0x0F, 0x41, 0x2A, 0x16, 0x17, 0x0C, 0x22, 0x2C, 0x0B, 0x03, 0x08, 0x56, 0x46, 0x07, 0x05, 0x1C, 0x0C, 0x14, 0x16, 0x07, 0x05, 0x1E, 0x0C, + 0x40, 0x50, 0x05, 0x01, 0x09, 0x05, 0x2C, 0x0B, 0x02, 0x04, 0x28, 0x23, 0x09, 0x06, 0x1D, 0x0A, 0x13, 0x17, 0x09, 0x06, 0x1C, 0x09, 0x27, 0x2F, 0x06, + 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0x40, 0x01, 0xA0, 0x00, 0x31, 0x00, 0x00, 0x25, 0x32, 0x1D, 0x01, 0x14, 0x23, 0x21, 0x22, + 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x27, 0x26, + 0x22, 0x06, 0x1D, 0x01, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x33, 0x35, 0x34, 0x36, 0x33, 0x01, 0x34, 0x0C, 0x0C, 0xFE, 0xD8, 0x0C, 0x0C, + 0x24, 0x1C, 0x0C, 0x0C, 0x1C, 0x4F, 0x3D, 0x37, 0x2F, 0x09, 0x07, 0x1D, 0x07, 0x09, 0x1E, 0x37, 0x22, 0x54, 0x0C, 0x0C, 0x54, 0x7B, 0x07, 0x05, 0x60, + 0x0C, 0x68, 0x0C, 0x0C, 0x28, 0x0C, 0x80, 0x0C, 0x28, 0x0C, 0x42, 0x37, 0x47, 0x23, 0x07, 0x0A, 0x24, 0x08, 0x06, 0x13, 0x21, 0x18, 0x40, 0x0C, 0x28, + 0x0C, 0x7F, 0x33, 0x05, 0x07, 0x00, 0x00, 0x01, 0xFF, 0xFC, 0xFF, 0xC0, 0x01, 0x2A, 0x01, 0xC0, 0x00, 0x41, 0x00, 0x00, 0x37, 0x1E, 0x01, 0x07, 0x0E, + 0x01, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x22, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x36, 0x17, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x35, + 0x34, 0x2F, 0x01, 0x2E, 0x01, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x32, 0x17, 0x1E, 0x01, 0x0F, 0x01, + 0x06, 0x27, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x17, 0xD1, 0x2C, 0x2D, 0x10, 0x0C, 0x3A, 0x24, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0x26, + 0x06, 0x02, 0x06, 0x22, 0x0A, 0x0A, 0x0F, 0x13, 0x42, 0x0D, 0x11, 0x15, 0x67, 0x22, 0x2E, 0x04, 0x04, 0x41, 0x31, 0x02, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x30, 0x26, 0x06, 0x02, 0x06, 0x22, 0x0A, 0x0A, 0x0F, 0x13, 0x42, 0x0D, 0x11, 0x0C, 0x09, 0xD7, 0x0D, 0x54, 0x2D, 0x21, 0x27, 0x01, 0x30, 0x07, 0x09, + 0x09, 0x07, 0x30, 0x1E, 0x05, 0x0E, 0x05, 0x22, 0x09, 0x07, 0x0A, 0x11, 0x0D, 0x16, 0x06, 0x1E, 0x0A, 0x34, 0x22, 0x31, 0x47, 0x30, 0x07, 0x09, 0x09, + 0x07, 0x30, 0x1E, 0x05, 0x0E, 0x05, 0x22, 0x09, 0x07, 0x0A, 0x11, 0x0D, 0x09, 0x10, 0x03, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0x40, 0x01, 0xA0, + 0x00, 0x34, 0x00, 0x00, 0x01, 0x23, 0x16, 0x17, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x0E, 0x01, 0x07, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x2F, + 0x01, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x36, 0x37, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x26, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x33, 0x21, 0x32, 0x1D, 0x01, 0x14, 0x01, 0x34, 0x49, 0x09, 0x05, 0x3B, 0x0C, 0x0C, 0x35, 0x05, 0x4C, 0x39, 0x97, 0x06, 0x06, 0x08, 0x53, 0x05, + 0x03, 0xA5, 0x04, 0x07, 0x05, 0x54, 0x1F, 0x27, 0x05, 0x9F, 0x0C, 0x0C, 0x92, 0x14, 0x29, 0x55, 0x05, 0x07, 0x0C, 0x01, 0x28, 0x0C, 0x01, 0x60, 0x0F, + 0x11, 0x0C, 0x28, 0x0C, 0x38, 0x46, 0x02, 0x8B, 0x06, 0x0F, 0x03, 0x99, 0x03, 0x05, 0x35, 0x05, 0x07, 0x20, 0x1B, 0x0C, 0x28, 0x0C, 0x1B, 0x07, 0x05, + 0x2D, 0x0C, 0x0C, 0x28, 0x0C, 0x00, 0x01, 0x00, 0x13, 0xFF, 0xE0, 0x01, 0x6E, 0x01, 0xA0, 0x00, 0x3A, 0x00, 0x00, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x33, + 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x07, 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, + 0x01, 0x34, 0x3B, 0x01, 0x35, 0x27, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x02, 0x33, 0x36, 0x3F, 0x01, + 0x36, 0x33, 0x01, 0x5F, 0x07, 0x07, 0x03, 0x50, 0x3A, 0x0C, 0x0C, 0x58, 0x14, 0x6C, 0x0C, 0x0C, 0x6C, 0x0C, 0x38, 0x0C, 0x6C, 0x0C, 0x0C, 0x6C, 0x14, + 0x58, 0x0C, 0x0C, 0x3A, 0x50, 0x03, 0x07, 0x07, 0x41, 0x08, 0x03, 0x37, 0x1B, 0x02, 0x0C, 0x0F, 0x37, 0x03, 0x08, 0x01, 0xA0, 0x0C, 0x06, 0x96, 0x0C, + 0x20, 0x0C, 0x25, 0x1B, 0x0C, 0x20, 0x0C, 0x5C, 0x0C, 0x0C, 0x5C, 0x0C, 0x20, 0x0C, 0x1B, 0x25, 0x0C, 0x20, 0x0C, 0x96, 0x06, 0x0C, 0x07, 0x71, 0x48, + 0x25, 0x23, 0x71, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0x80, 0x01, 0xA0, 0x00, 0x29, 0x00, 0x32, 0x00, 0x00, 0x37, 0x23, + 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x23, + 0x22, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x16, 0x14, 0x06, 0x27, 0x15, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0xEF, + 0x5C, 0xA1, 0x0C, 0x0C, 0xA1, 0x07, 0x05, 0x3B, 0x0C, 0x34, 0x0C, 0x0C, 0x34, 0x34, 0x0C, 0x07, 0x05, 0x34, 0x0C, 0xA3, 0x40, 0x51, 0x51, 0x9C, 0x4D, + 0x24, 0x28, 0x28, 0x23, 0x80, 0x20, 0x0C, 0x28, 0x0C, 0x34, 0x05, 0x07, 0x0C, 0x34, 0x0C, 0x28, 0x0C, 0x20, 0x0C, 0x2D, 0x05, 0x07, 0xCF, 0x0C, 0x4F, + 0x80, 0x51, 0xDB, 0x96, 0x29, 0x23, 0x22, 0x28, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x40, 0x01, 0xA0, 0x00, 0x45, 0x00, 0x4E, 0x00, + 0x52, 0x00, 0x5A, 0x00, 0x64, 0x00, 0x68, 0x00, 0x00, 0x01, 0x23, 0x07, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x2F, + 0x01, 0x23, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x27, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x27, + 0x26, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x33, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x33, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x33, + 0x32, 0x1D, 0x01, 0x14, 0x05, 0x37, 0x23, 0x1F, 0x01, 0x33, 0x32, 0x3E, 0x01, 0x3F, 0x01, 0x23, 0x17, 0x3B, 0x01, 0x27, 0x26, 0x27, 0x23, 0x06, 0x07, + 0x17, 0x37, 0x23, 0x17, 0x1E, 0x02, 0x31, 0x33, 0x36, 0x3F, 0x01, 0x23, 0x17, 0x02, 0x34, 0x3F, 0x07, 0x46, 0x0C, 0x0C, 0x55, 0x2A, 0x02, 0x0A, 0x39, + 0x09, 0x02, 0x2B, 0x37, 0x2A, 0x02, 0x0A, 0x39, 0x09, 0x02, 0x29, 0x54, 0x0C, 0x0C, 0x46, 0x08, 0x3E, 0x0C, 0x0C, 0x30, 0x12, 0x01, 0x07, 0x06, 0x2A, + 0x0A, 0x02, 0x11, 0x6D, 0x14, 0x02, 0x09, 0x2C, 0x0A, 0x02, 0x14, 0x6E, 0x0E, 0x02, 0x0A, 0x2E, 0x06, 0x07, 0x01, 0x13, 0x30, 0x0C, 0xFE, 0x78, 0x0C, + 0x26, 0x0B, 0x06, 0x01, 0x01, 0x01, 0x03, 0x1E, 0x08, 0x51, 0x06, 0x82, 0x1A, 0x02, 0x03, 0x02, 0x0C, 0x02, 0x03, 0x81, 0x0C, 0x27, 0x0C, 0x03, 0x03, + 0x01, 0x01, 0x02, 0x1E, 0x07, 0x51, 0x07, 0x01, 0x00, 0x20, 0x0C, 0x28, 0x0C, 0xB7, 0x09, 0x09, 0xB7, 0xB7, 0x09, 0x09, 0xB7, 0x0C, 0x28, 0x0C, 0x20, + 0x0C, 0x28, 0x0C, 0x51, 0x05, 0x09, 0x09, 0x56, 0x56, 0x09, 0x09, 0x56, 0x56, 0x09, 0x09, 0x05, 0x51, 0x0C, 0x28, 0x0C, 0x96, 0x36, 0x36, 0x2F, 0x0C, + 0x18, 0x81, 0x20, 0x20, 0x09, 0x0B, 0x0C, 0x0C, 0x0B, 0x7F, 0x36, 0x36, 0x0B, 0x18, 0x0C, 0x16, 0x8F, 0x20, 0x20, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, + 0x01, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x1A, 0x00, 0x00, 0x13, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, + 0x36, 0x3B, 0x01, 0x17, 0x15, 0x23, 0x35, 0x33, 0x32, 0x1F, 0x01, 0x16, 0xE0, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, + 0xA0, 0x80, 0x06, 0x0A, 0x07, 0x62, 0x07, 0x01, 0x38, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0x7A, 0x06, 0x80, 0x07, + 0x62, 0x07, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x1D, 0x00, 0x29, 0x00, 0x35, 0x00, 0x3E, 0x00, 0x00, + 0x13, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x13, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, + 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, + 0x3B, 0x01, 0x32, 0x35, 0x37, 0x15, 0x23, 0x35, 0x33, 0x32, 0x1F, 0x01, 0x16, 0xE0, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, + 0xC8, 0x40, 0x0C, 0xA8, 0x0C, 0x0C, 0xA8, 0x0C, 0x0C, 0xA8, 0x0C, 0x0C, 0xA8, 0x0C, 0x0C, 0xA8, 0x0C, 0x0C, 0xA8, 0x0C, 0x60, 0x80, 0x06, 0x0A, 0x07, + 0x62, 0x07, 0x01, 0x38, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0xFE, 0x8C, 0x08, 0x0C, 0x0C, 0x08, 0x0C, 0x4C, 0x08, + 0x0C, 0x0C, 0x08, 0x0C, 0x54, 0x0C, 0x0C, 0x08, 0x0C, 0x0C, 0x7A, 0x06, 0x80, 0x07, 0x62, 0x07, 0x00, 0x00, 0x04, 0xFF, 0xFD, 0xFF, 0xE0, 0x01, 0xC0, + 0x01, 0xA0, 0x00, 0x15, 0x00, 0x35, 0x00, 0x4F, 0x00, 0x52, 0x00, 0x00, 0x37, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, + 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x2F, + 0x01, 0x23, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x07, 0x33, 0x27, 0xB0, 0x0B, 0x08, 0x08, 0x50, + 0x04, 0x0E, 0x04, 0x50, 0x08, 0x08, 0x0B, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x20, 0x07, 0x09, 0x0B, 0x3D, 0x38, 0x07, 0x09, 0x09, 0x07, 0x80, + 0x07, 0x09, 0x0B, 0x3D, 0x38, 0x07, 0x09, 0x09, 0x07, 0x9F, 0x01, 0x09, 0x07, 0x19, 0x0C, 0x03, 0x05, 0x47, 0x04, 0x04, 0x0B, 0x19, 0x07, 0x09, 0x01, + 0x3B, 0x04, 0x0B, 0x2A, 0x0B, 0x04, 0x34, 0x20, 0x10, 0x60, 0x14, 0x07, 0x60, 0x05, 0x05, 0x60, 0x07, 0x14, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0xFE, + 0xD0, 0x40, 0x09, 0x07, 0x12, 0x0E, 0x0A, 0x46, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x12, 0x0E, 0x0A, 0x46, 0x09, 0x07, 0x20, 0x07, 0x09, 0x55, + 0x02, 0x03, 0x07, 0x09, 0x0B, 0x0D, 0x0D, 0x0B, 0x09, 0x07, 0x03, 0x02, 0xA0, 0x0B, 0x0B, 0x65, 0x30, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFD, 0xFF, + 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x15, 0x00, 0x35, 0x00, 0x4F, 0x00, 0x52, 0x00, 0x00, 0x13, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, + 0x06, 0x2B, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x16, 0x15, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x2F, 0x01, 0x23, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x07, 0x33, 0x27, 0x10, 0x0B, + 0x08, 0x08, 0x50, 0x04, 0x0E, 0x04, 0x50, 0x08, 0x08, 0x0B, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x60, 0x07, 0x09, 0x0B, 0x3D, 0x38, 0x07, 0x09, + 0x09, 0x07, 0x80, 0x07, 0x09, 0x0B, 0x3D, 0x38, 0x07, 0x09, 0x09, 0x07, 0x9F, 0x01, 0x09, 0x07, 0x19, 0x0C, 0x03, 0x05, 0x47, 0x04, 0x04, 0x0B, 0x19, + 0x07, 0x09, 0x01, 0x3B, 0x04, 0x0B, 0x2A, 0x0B, 0x04, 0x34, 0x20, 0x10, 0x01, 0x20, 0x14, 0x07, 0x60, 0x05, 0x05, 0x60, 0x07, 0x14, 0xFE, 0xD0, 0x07, + 0x09, 0x09, 0x07, 0x01, 0x30, 0x80, 0x09, 0x07, 0x12, 0x0E, 0x0A, 0x46, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x12, 0x0E, 0x0A, 0x46, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x55, 0x02, 0x03, 0x07, 0x09, 0x0B, 0x0D, 0x0D, 0x0B, 0x09, 0x07, 0x03, 0x02, 0xA0, 0x0B, 0x0B, 0x65, 0x30, 0x00, 0x00, 0x00, 0x05, + 0xFF, 0xFD, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x25, 0x00, 0x35, 0x00, 0x45, 0x00, 0x55, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x27, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x11, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, 0x04, + 0x50, 0x08, 0x08, 0x0B, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, + 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x01, 0x00, 0x07, 0x09, 0x09, 0x07, 0xFF, 0x00, 0x07, 0x09, 0x09, 0x07, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x40, 0x14, 0x07, 0x60, 0x05, 0x05, 0x60, 0x07, 0x14, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xD0, 0xC0, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x05, 0xFF, 0xFD, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x25, 0x00, 0x35, 0x00, 0x45, 0x00, 0x55, + 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x03, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x32, + 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0xE0, + 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, 0x04, 0x50, 0x08, 0x08, 0x0B, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x70, 0x07, 0x09, 0x09, 0x07, 0xC0, 0x07, + 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x01, 0x00, 0x07, 0x09, 0x09, 0x07, 0xFF, 0x00, 0x07, 0x09, 0x09, 0x07, + 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x00, 0x14, 0x07, 0x60, 0x05, 0x05, 0x60, 0x07, 0x14, 0xFE, 0xD0, 0x07, 0x09, + 0x09, 0x07, 0x01, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x01, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x04, 0xFF, 0xFD, 0xFF, 0xDE, 0x01, 0xB1, 0x01, 0xA0, 0x00, 0x1F, 0x00, + 0x34, 0x00, 0x3C, 0x00, 0x52, 0x00, 0x00, 0x01, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x17, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x07, 0x06, 0x26, 0x2F, + 0x01, 0x26, 0x37, 0x36, 0x37, 0x2E, 0x01, 0x37, 0x3E, 0x01, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x07, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x22, + 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, 0x01, 0x30, 0x07, 0x09, 0x02, 0x10, 0x04, 0x0A, 0x30, 0x07, + 0x09, 0x10, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x10, 0x0A, 0x28, 0x3E, 0x2A, 0x2C, 0x06, 0x0D, 0x02, 0x0A, 0x05, 0x0D, 0x0C, 0x09, + 0x24, 0x2B, 0x0A, 0x06, 0x1D, 0x22, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x9C, 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, 0x04, 0x50, 0x08, 0x08, 0x0B, 0x30, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x01, 0x60, 0x09, 0x07, 0x04, 0x03, 0x20, 0x09, 0x09, 0x07, 0x70, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x40, 0xA3, 0x0B, 0x31, 0x27, 0x0B, 0x33, 0x3E, 0x13, 0x02, 0x06, 0x06, 0x14, 0x0F, 0x05, 0x05, 0x08, 0x04, 0x3D, 0x26, 0x14, 0x1D, 0x5C, 0x0C, 0x10, + 0x0C, 0x0C, 0x10, 0x08, 0x14, 0x07, 0x60, 0x05, 0x05, 0x60, 0x07, 0x14, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x04, + 0xFF, 0xFD, 0xFF, 0xDE, 0x01, 0xB1, 0x01, 0xA0, 0x00, 0x14, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x52, 0x00, 0x00, 0x25, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x07, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x37, 0x36, 0x37, 0x2E, 0x01, 0x37, 0x3E, 0x01, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x27, 0x22, 0x26, + 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x3B, 0x01, 0x35, 0x27, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, + 0x32, 0x01, 0x4A, 0x28, 0x3E, 0x2A, 0x2C, 0x06, 0x0D, 0x02, 0x0A, 0x05, 0x0D, 0x0C, 0x09, 0x24, 0x2B, 0x0A, 0x06, 0x1D, 0x22, 0x10, 0x0C, 0x0C, 0x10, + 0x0C, 0x1C, 0x07, 0x09, 0x02, 0x10, 0x04, 0x0A, 0x30, 0x07, 0x09, 0x10, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x10, 0xD5, 0x50, 0x08, + 0x08, 0x0B, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, 0xBD, 0x0B, 0x31, 0x27, 0x0B, 0x33, 0x3E, 0x13, 0x02, 0x06, + 0x06, 0x14, 0x0F, 0x05, 0x05, 0x08, 0x04, 0x3D, 0x26, 0x14, 0x1D, 0x5C, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0xF8, 0x09, 0x07, 0x04, 0x03, 0x20, 0x09, 0x09, + 0x07, 0x70, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x3B, 0x60, 0x07, 0x14, 0xFE, 0xD0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x30, + 0x14, 0x07, 0x60, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x01, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x44, 0x00, 0x00, 0x37, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x14, 0x06, + 0x07, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x23, 0x16, 0x06, 0x07, 0x16, 0x06, 0x07, 0x16, 0x07, 0x0E, 0x02, 0x2B, 0x01, 0x22, 0x27, 0x26, 0x23, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x37, 0x3E, 0x01, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x1E, 0x02, 0x68, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, + 0x1E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x01, 0x58, 0x20, 0x01, 0x65, 0x19, 0x23, 0x13, 0x01, 0x08, 0x04, 0x0D, 0x06, 0x0A, 0x0C, 0x06, 0x0C, 0x0A, 0x2A, + 0x21, 0x1D, 0x03, 0x30, 0x48, 0x23, 0x11, 0x05, 0x07, 0x04, 0x14, 0x35, 0x10, 0x0E, 0x0B, 0x0E, 0x14, 0x0B, 0x15, 0x19, 0x0F, 0xE0, 0x0E, 0x0A, 0xF0, + 0x0A, 0x0E, 0x0E, 0x0A, 0xF0, 0x0A, 0x0E, 0xF8, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x01, 0x79, 0x19, 0x3F, 0x07, 0x23, 0x17, 0x1E, 0x13, 0x11, 0x2E, 0x11, + 0x14, 0x29, 0x0E, 0x1A, 0x12, 0x0E, 0x0E, 0x02, 0x20, 0x10, 0x07, 0x05, 0xD6, 0x05, 0x03, 0x15, 0x4D, 0x0F, 0x0F, 0x2C, 0x3A, 0x05, 0x0F, 0x24, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x01, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x44, 0x00, 0x00, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x36, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x01, 0x22, 0x27, 0x26, 0x27, 0x2E, 0x01, + 0x27, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x32, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x1E, 0x01, 0x17, 0x16, 0x07, 0x1E, 0x01, 0x07, 0x1E, 0x01, 0x07, 0x33, + 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x1E, 0x01, 0x15, 0x14, 0x0E, 0x02, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x28, 0x0E, 0x14, + 0x0E, 0x0E, 0x14, 0x01, 0x02, 0x14, 0x0E, 0x0B, 0x0E, 0x10, 0x35, 0x14, 0x04, 0x07, 0x05, 0x11, 0x23, 0x48, 0x30, 0x03, 0x1D, 0x21, 0x2A, 0x0A, 0x0C, + 0x06, 0x0C, 0x0A, 0x06, 0x0D, 0x04, 0x08, 0x01, 0x13, 0x23, 0x19, 0x65, 0x01, 0x20, 0x0F, 0x19, 0x15, 0x01, 0x88, 0x0A, 0x0E, 0x0E, 0x0A, 0xF0, 0x0A, + 0x0E, 0x0E, 0x0A, 0x32, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0xFE, 0xE8, 0x3A, 0x2C, 0x0F, 0x0F, 0x4D, 0x15, 0x03, 0x05, 0xD6, 0x05, 0x07, 0x10, 0x20, 0x02, + 0x0E, 0x0E, 0x12, 0x1A, 0x0E, 0x29, 0x14, 0x11, 0x2E, 0x11, 0x13, 0x1E, 0x17, 0x23, 0x07, 0x3F, 0x19, 0x19, 0x24, 0x0F, 0x05, 0x00, 0x00, 0x02, 0x00, + 0x05, 0xFF, 0xC0, 0x00, 0xFB, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x22, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x13, 0x16, 0x06, 0x2B, + 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x16, 0x37, 0x33, 0x32, 0x17, 0x65, 0x36, + 0x25, 0x25, 0x36, 0x25, 0xB7, 0x03, 0x0E, 0x0C, 0x38, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x38, 0x0C, 0x0E, 0x03, 0x30, 0x04, 0x13, 0x0B, 0x25, 0x25, 0x0B, + 0x13, 0x04, 0x01, 0xC0, 0x25, 0x36, 0x25, 0x25, 0x36, 0xFE, 0xC3, 0x0C, 0x12, 0x68, 0x0A, 0x0E, 0x0E, 0x0A, 0x68, 0x12, 0x0C, 0xC0, 0x12, 0x11, 0x11, + 0x12, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0xC0, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x24, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, + 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x16, 0x37, 0x45, 0x36, 0x25, 0x25, 0x36, 0x25, 0x70, 0x14, 0x1C, 0x0E, 0x0A, 0x10, 0x0E, 0x0A, 0x40, 0x0A, 0x0E, 0x10, 0x0A, 0x0E, 0x1C, + 0x14, 0x0B, 0x25, 0x25, 0x01, 0xC0, 0x25, 0x36, 0x25, 0x25, 0x36, 0x6B, 0x1C, 0x14, 0x88, 0x0A, 0x0E, 0x88, 0x0A, 0x0E, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, + 0x88, 0x14, 0x1C, 0x11, 0x11, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x01, 0x01, 0xC1, 0x00, 0x07, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x00, 0x12, 0x32, + 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x16, 0x14, 0x0F, 0x01, 0x17, 0x16, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x07, 0x06, 0x26, 0x3F, + 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x0F, 0x01, 0x06, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x16, 0xD8, 0x50, 0x38, 0x38, 0x50, 0x38, 0x01, 0x56, 0x0A, 0x0A, 0x5E, 0x21, 0x03, 0x0F, 0x0A, 0x64, 0x30, 0x04, 0x16, 0x05, 0x2F, + 0x64, 0x0A, 0x10, 0x04, 0x21, 0x5E, 0x0A, 0x0A, 0x5E, 0x21, 0x04, 0x0F, 0x0B, 0x64, 0x2F, 0x05, 0x16, 0x05, 0x2F, 0x64, 0x0A, 0x10, 0x04, 0x21, 0x63, + 0x4B, 0x4B, 0x6A, 0x4B, 0x4B, 0x01, 0x20, 0x38, 0x50, 0x38, 0x38, 0x50, 0x18, 0x05, 0x16, 0x05, 0x2F, 0x64, 0x0A, 0x10, 0x04, 0x21, 0x5E, 0x0A, 0x0A, + 0x5E, 0x21, 0x04, 0x0F, 0x0B, 0x64, 0x2F, 0x05, 0x16, 0x05, 0x2F, 0x64, 0x0A, 0x10, 0x04, 0x21, 0x5E, 0x0A, 0x0A, 0x5E, 0x21, 0x04, 0x10, 0x0A, 0x64, + 0xBF, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0xFF, 0xC0, 0x01, 0xE8, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x00, 0x05, + 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x1E, 0x01, 0x07, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x37, 0x36, 0x16, 0x07, 0x0E, 0x01, 0x01, 0x1B, 0x6A, 0x96, + 0x96, 0x6A, 0x18, 0x17, 0x08, 0x03, 0x07, 0x2F, 0x37, 0x92, 0x5D, 0x08, 0x08, 0x05, 0x24, 0x68, 0x40, 0x96, 0xD4, 0x96, 0x04, 0x02, 0x10, 0x05, 0x1A, + 0x5E, 0x36, 0x5E, 0x79, 0x12, 0x02, 0x0F, 0x06, 0x2D, 0x32, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x09, 0x00, 0x15, + 0x00, 0x25, 0x00, 0x00, 0x33, 0x11, 0x21, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x37, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, + 0x22, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x20, 0x01, 0xC0, 0x13, 0x0D, 0xFE, 0x80, 0x0D, + 0x13, 0xA0, 0x0C, 0x68, 0x0C, 0x0C, 0x68, 0x0C, 0x01, 0x20, 0x0D, 0x13, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x13, 0x0D, 0x01, 0x20, 0xFE, 0xE0, 0x0D, + 0x13, 0x13, 0xE1, 0x08, 0x0C, 0x0C, 0x08, 0x0C, 0xC0, 0x13, 0x0D, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x0D, 0x13, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xBF, + 0x02, 0x01, 0x01, 0xC0, 0x00, 0x3F, 0x00, 0x45, 0x00, 0x00, 0x25, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x07, 0x17, 0x16, 0x14, 0x06, 0x22, 0x2F, 0x01, + 0x06, 0x23, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x22, 0x27, 0x07, 0x06, 0x22, 0x26, 0x34, 0x3F, 0x01, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x35, + 0x34, 0x36, 0x3B, 0x01, 0x35, 0x27, 0x26, 0x34, 0x36, 0x32, 0x1F, 0x01, 0x33, 0x37, 0x36, 0x32, 0x16, 0x14, 0x0F, 0x01, 0x15, 0x33, 0x32, 0x16, 0x00, + 0x32, 0x16, 0x15, 0x23, 0x34, 0x02, 0x00, 0x14, 0x0D, 0x37, 0x0E, 0x3D, 0x09, 0x13, 0x1A, 0x0A, 0x36, 0x28, 0x33, 0x0C, 0x18, 0x0C, 0x33, 0x28, 0x36, + 0x0A, 0x1A, 0x13, 0x09, 0x3D, 0x0E, 0x37, 0x0D, 0x14, 0x13, 0x0D, 0x38, 0x2F, 0x09, 0x13, 0x1A, 0x0A, 0x36, 0xE6, 0x36, 0x0A, 0x1A, 0x13, 0x09, 0x2F, + 0x38, 0x0D, 0x13, 0xFE, 0xD3, 0x5C, 0x42, 0xE0, 0x9F, 0x0D, 0x12, 0x10, 0x20, 0x1D, 0x3C, 0x0A, 0x1A, 0x13, 0x09, 0x37, 0x20, 0xF4, 0x0C, 0x0C, 0xF4, + 0x20, 0x37, 0x09, 0x13, 0x1A, 0x0A, 0x3C, 0x1D, 0x20, 0x10, 0x12, 0x0D, 0x0E, 0x13, 0x3B, 0x2E, 0x0A, 0x1A, 0x13, 0x09, 0x37, 0x37, 0x09, 0x13, 0x1A, + 0x0A, 0x2E, 0x3B, 0x13, 0x01, 0x13, 0x42, 0x2E, 0x2E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1A, + 0x00, 0x00, 0x05, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x03, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x36, + 0x3D, 0x01, 0x34, 0x26, 0x01, 0x90, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0xA0, 0x7C, 0x08, 0x08, 0x7C, 0x05, 0x0F, 0x0F, + 0x20, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x01, 0x64, 0x7C, 0x08, 0x08, 0x7C, 0x05, 0x06, 0x08, 0xF6, 0x08, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, + 0x26, 0x34, 0x04, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x48, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x01, 0xB8, + 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x88, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x02, 0x01, 0xC2, 0x00, 0x2A, + 0x00, 0x40, 0x00, 0x00, 0x25, 0x17, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x01, 0x23, 0x22, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x17, 0x1E, 0x01, + 0x17, 0x16, 0x06, 0x07, 0x17, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x17, 0x33, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x27, 0x17, 0x0E, + 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x16, 0x17, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x01, 0xF0, 0x0E, 0x03, 0x04, 0x06, + 0x41, 0x0C, 0x1A, 0x06, 0x3E, 0x8C, 0x0C, 0x12, 0x02, 0x20, 0x28, 0x1B, 0x19, 0x23, 0x01, 0x01, 0x20, 0x18, 0x05, 0x82, 0x07, 0x09, 0x09, 0x07, 0x79, + 0x05, 0x84, 0x14, 0x09, 0x39, 0x25, 0x06, 0x0C, 0xB6, 0x1A, 0x15, 0x57, 0x35, 0x49, 0x67, 0x3D, 0x32, 0x04, 0x05, 0x19, 0x1F, 0x42, 0x2E, 0x2A, 0x3F, + 0x06, 0x3E, 0x1C, 0x06, 0x0D, 0x03, 0x21, 0x06, 0x09, 0x0C, 0x86, 0x10, 0x0B, 0xE1, 0x04, 0x1B, 0x26, 0x01, 0x01, 0x24, 0x19, 0x19, 0x25, 0x03, 0x21, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x12, 0x7B, 0x13, 0x02, 0x04, 0x1C, 0x37, 0x2F, 0x3A, 0x67, 0x49, 0x37, 0x59, 0x13, 0x1B, 0x27, 0x0F, 0x33, 0x1F, + 0x2E, 0x42, 0x37, 0x29, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0x81, 0x01, 0xA0, 0x00, 0x3A, 0x00, 0x00, 0x25, 0x32, 0x16, 0x15, 0x0E, 0x01, + 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x35, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x35, 0x34, 0x3B, + 0x01, 0x32, 0x1D, 0x01, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x15, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x15, 0x32, 0x36, 0x35, + 0x34, 0x36, 0x33, 0x01, 0x74, 0x05, 0x07, 0x04, 0x7B, 0x65, 0x50, 0x0C, 0x31, 0x06, 0x09, 0x09, 0x37, 0x31, 0x06, 0x09, 0x09, 0x37, 0x0C, 0x38, 0x0C, + 0x81, 0x06, 0x09, 0x09, 0x87, 0x81, 0x06, 0x09, 0x09, 0x87, 0x46, 0x62, 0x07, 0x05, 0xC0, 0x07, 0x05, 0x64, 0x70, 0x0C, 0xC1, 0x0B, 0x01, 0x07, 0x06, + 0x29, 0x0A, 0x02, 0x0C, 0x1E, 0x0B, 0x01, 0x07, 0x06, 0x29, 0x0A, 0x02, 0x0C, 0x45, 0x0C, 0x0C, 0x33, 0x1D, 0x01, 0x07, 0x06, 0x29, 0x0A, 0x02, 0x1E, + 0x1E, 0x1D, 0x01, 0x07, 0x06, 0x29, 0x0A, 0x02, 0x1E, 0x9F, 0x4D, 0x48, 0x04, 0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, + 0x00, 0x33, 0x00, 0x3C, 0x00, 0x00, 0x25, 0x16, 0x14, 0x07, 0x06, 0x23, 0x21, 0x06, 0x07, 0x33, 0x0E, 0x04, 0x23, 0x35, 0x23, 0x15, 0x22, 0x26, 0x3D, + 0x01, 0x22, 0x3D, 0x01, 0x34, 0x33, 0x35, 0x22, 0x3D, 0x01, 0x34, 0x33, 0x35, 0x34, 0x36, 0x33, 0x15, 0x33, 0x35, 0x32, 0x1E, 0x03, 0x17, 0x23, 0x16, + 0x17, 0x21, 0x32, 0x07, 0x32, 0x36, 0x26, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x02, 0x51, 0x2F, 0x2F, 0x34, 0x45, 0xFE, 0xE2, 0x07, 0x09, 0xCE, 0x28, 0x42, + 0x2B, 0x2A, 0x37, 0x22, 0x10, 0x14, 0x1C, 0x20, 0x20, 0x20, 0x20, 0x1C, 0x14, 0x10, 0x22, 0x37, 0x2A, 0x2B, 0x42, 0x28, 0xCE, 0x09, 0x07, 0x01, 0x1E, + 0x45, 0x35, 0x0F, 0x0C, 0x0C, 0x0F, 0x08, 0xF0, 0x16, 0x34, 0x16, 0x18, 0x0A, 0x06, 0x08, 0x23, 0x24, 0x23, 0x16, 0x80, 0x80, 0x25, 0x1B, 0x40, 0x18, + 0x28, 0x18, 0x10, 0x18, 0x28, 0x18, 0x40, 0x1B, 0x25, 0x80, 0x80, 0x16, 0x23, 0x24, 0x23, 0x08, 0x06, 0x0A, 0x70, 0x28, 0x28, 0x08, 0x40, 0x08, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x25, 0x00, 0x3D, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x17, 0x32, 0x1E, 0x02, 0x32, 0x3E, 0x02, 0x33, 0x36, 0x37, 0x35, 0x34, 0x26, 0x23, 0x21, 0x22, + 0x06, 0x1D, 0x01, 0x16, 0x05, 0x06, 0x07, 0x0E, 0x04, 0x22, 0x2E, 0x03, 0x27, 0x26, 0x27, 0x15, 0x14, 0x16, 0x33, 0x21, 0x32, 0x36, 0x35, 0x01, 0x90, + 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x82, 0x01, 0x11, 0x08, 0x0F, 0x0A, 0x0F, 0x08, 0x11, 0x01, 0x4A, 0x28, 0x0E, 0x0A, 0xFE, + 0xF0, 0x0A, 0x0E, 0x28, 0x01, 0x18, 0x16, 0x49, 0x01, 0x10, 0x09, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x08, 0x11, 0x01, 0x49, 0x16, 0x0E, 0x0A, 0x01, 0x10, + 0x0A, 0x0E, 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xE6, 0x0E, 0x05, 0x07, 0x07, 0x05, 0x0E, 0x35, 0x20, + 0x19, 0x0A, 0x0E, 0x0E, 0x0A, 0x19, 0x20, 0x09, 0x11, 0x35, 0x01, 0x0C, 0x06, 0x09, 0x04, 0x04, 0x09, 0x06, 0x0C, 0x01, 0x35, 0x11, 0x8E, 0x0A, 0x0E, + 0x0E, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x10, 0xFF, 0xE0, 0x01, 0xF0, 0x01, 0xA0, 0x00, 0x17, 0x00, 0x25, 0x00, 0x39, 0x00, 0x00, 0x01, 0x15, + 0x14, 0x2B, 0x01, 0x15, 0x14, 0x23, 0x21, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x03, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x23, 0x21, 0x22, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x33, 0x32, 0x1D, + 0x01, 0x21, 0x35, 0x34, 0x3B, 0x01, 0x01, 0xF0, 0x08, 0x18, 0x0C, 0xFE, 0x78, 0x0C, 0x18, 0x08, 0x05, 0xE8, 0x01, 0x04, 0x01, 0xE8, 0x05, 0x18, 0x0A, + 0x0E, 0x08, 0xFE, 0x30, 0x08, 0x0E, 0x0A, 0x38, 0x40, 0x40, 0x40, 0x40, 0x40, 0x24, 0x0C, 0xFE, 0x60, 0x0C, 0x24, 0x01, 0x40, 0x10, 0x08, 0x0C, 0x0C, + 0x0C, 0x0C, 0x08, 0x10, 0x05, 0x02, 0x58, 0x01, 0x01, 0x58, 0x02, 0xFE, 0xCB, 0x0E, 0x0A, 0x10, 0x08, 0x08, 0x10, 0x0A, 0x0E, 0xF0, 0xC0, 0xC0, 0xC0, + 0xC0, 0xC0, 0x0C, 0x14, 0x14, 0x0C, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x81, 0x01, 0x84, 0x00, 0x23, 0x00, 0x2E, 0x00, 0x00, 0x01, 0x16, + 0x14, 0x07, 0x05, 0x06, 0x2F, 0x01, 0x06, 0x07, 0x16, 0x15, 0x14, 0x07, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x26, 0x35, 0x34, 0x37, + 0x36, 0x37, 0x27, 0x26, 0x34, 0x37, 0x25, 0x36, 0x1F, 0x01, 0x37, 0x17, 0x14, 0x06, 0x22, 0x26, 0x35, 0x37, 0x17, 0x16, 0x02, 0x6E, 0x12, 0x12, 0xFE, + 0xE9, 0x17, 0x17, 0xC4, 0x13, 0x02, 0x10, 0x0E, 0x1A, 0x01, 0x09, 0x08, 0x38, 0x08, 0x09, 0x01, 0x1A, 0x0E, 0x10, 0x01, 0x11, 0x30, 0x12, 0x12, 0x01, + 0x17, 0x17, 0x17, 0x0A, 0x91, 0x0E, 0x70, 0xA0, 0x70, 0x0E, 0x91, 0x21, 0x01, 0x27, 0x06, 0x22, 0x06, 0x55, 0x08, 0x08, 0x3C, 0x0E, 0x17, 0x0A, 0x11, + 0x10, 0x0A, 0x73, 0x07, 0x0C, 0x0C, 0x07, 0x73, 0x0A, 0x10, 0x12, 0x09, 0x1A, 0x15, 0x0F, 0x06, 0x22, 0x06, 0x55, 0x08, 0x08, 0xF7, 0x2C, 0x71, 0x1B, + 0x25, 0x25, 0x1B, 0x71, 0x2C, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x02, 0x80, 0x01, 0x60, 0x00, 0x05, 0x00, 0x0F, 0x00, 0x44, + 0x00, 0x4E, 0x00, 0x64, 0x00, 0x00, 0x37, 0x17, 0x23, 0x3F, 0x01, 0x16, 0x25, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x11, 0x05, 0x35, 0x34, + 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x06, 0x07, 0x26, 0x27, 0x26, 0x0F, 0x02, 0x06, 0x17, + 0x16, 0x17, 0x06, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x37, 0x36, 0x37, 0x16, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x27, 0x26, 0x27, 0x36, 0x37, 0x33, 0x32, 0x25, + 0x34, 0x36, 0x33, 0x21, 0x11, 0x21, 0x22, 0x26, 0x35, 0x37, 0x06, 0x16, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x33, 0x17, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x2F, + 0x01, 0x26, 0x2B, 0x01, 0x22, 0x07, 0x98, 0x0B, 0x26, 0x0B, 0x08, 0x05, 0x01, 0xD3, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xE8, 0x01, 0x00, 0x0C, 0x40, 0x0C, + 0x10, 0x0C, 0x40, 0x0C, 0x0C, 0x72, 0x09, 0x15, 0x09, 0x08, 0x07, 0x09, 0x07, 0x07, 0x0B, 0x07, 0x0A, 0x0B, 0x0C, 0x0E, 0x0A, 0x06, 0x08, 0x06, 0x0B, + 0x12, 0x11, 0x10, 0x14, 0x0A, 0x06, 0x08, 0x06, 0x0A, 0x0D, 0x0D, 0x20, 0x0B, 0x0B, 0x0C, 0xFD, 0xB0, 0x0E, 0x0A, 0x01, 0x18, 0xFE, 0xE8, 0x0A, 0x0E, + 0x3B, 0x02, 0x07, 0x06, 0x17, 0x09, 0x03, 0x09, 0x3C, 0x09, 0x03, 0x09, 0x17, 0x06, 0x07, 0x02, 0x39, 0x03, 0x09, 0x20, 0x09, 0x03, 0xD4, 0x26, 0x26, + 0x21, 0x15, 0x80, 0x0E, 0x0A, 0xFE, 0xF0, 0x0A, 0x0E, 0x01, 0x40, 0x78, 0x10, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x10, 0x0C, 0x15, 0x16, 0x0A, 0x0B, + 0x09, 0x06, 0x04, 0x04, 0x07, 0x0A, 0x0D, 0x0D, 0x09, 0x09, 0x06, 0x0A, 0x0E, 0x0B, 0x07, 0x0B, 0x0E, 0x0D, 0x0C, 0x07, 0x0B, 0x0E, 0x0A, 0x06, 0x08, + 0x0A, 0x23, 0x23, 0x6C, 0x0A, 0x0E, 0xFE, 0xC0, 0x0E, 0x0A, 0x38, 0x06, 0x0A, 0x09, 0x1F, 0x1F, 0x09, 0x0A, 0x06, 0xA9, 0x08, 0x08, 0x00, 0x07, 0x00, + 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x25, 0x00, 0x35, 0x00, 0x45, 0x00, 0x55, 0x00, 0x5E, 0x00, 0x6E, 0x00, 0x00, 0x01, 0x32, + 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x16, 0x15, 0x03, 0x35, 0x34, 0x26, 0x2B, + 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, + 0x32, 0x36, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, + 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x27, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x01, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0xFE, 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0xF3, 0x0D, 0x09, 0x2E, + 0x09, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0x07, 0x09, 0xA0, 0x80, 0x0D, 0x13, + 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x20, 0x13, 0x0D, 0xFE, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0xC0, 0x0D, 0x13, 0x09, 0x2E, 0x09, 0x0D, + 0xFE, 0x9D, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x87, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x79, 0x20, 0x07, 0x09, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x87, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x77, 0x40, 0x09, 0x07, 0x30, 0x80, 0x40, 0x13, 0x0D, + 0xFE, 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x40, 0x0D, 0x13, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x1D, 0x00, + 0x29, 0x00, 0x35, 0x00, 0x3D, 0x00, 0x49, 0x00, 0x55, 0x00, 0x61, 0x00, 0x00, 0x05, 0x32, 0x1D, 0x01, 0x21, 0x35, 0x34, 0x3B, 0x01, 0x11, 0x34, 0x36, + 0x33, 0x21, 0x32, 0x16, 0x15, 0x11, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, + 0x01, 0x34, 0x2B, 0x01, 0x22, 0x17, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, + 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, + 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x01, 0xB4, 0x0C, 0xFE, 0x40, 0x0C, 0x14, 0x0E, 0x0A, 0x01, 0x50, 0x0A, 0x0E, 0xFE, + 0xE0, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x34, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x74, 0x0C, 0x28, 0x0C, 0x80, 0x0C, + 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x20, 0x0C, 0x14, 0x14, 0x0C, 0x01, 0xC8, 0x0A, + 0x0E, 0x0E, 0x0A, 0xFE, 0x38, 0x01, 0x94, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0xA0, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, + 0xA0, 0x54, 0x0C, 0x0C, 0x54, 0xAC, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x29, 0x00, 0x00, 0x12, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x36, + 0x16, 0x14, 0x0F, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x27, 0x26, + 0x34, 0x36, 0x32, 0x1F, 0x01, 0x33, 0x37, 0x36, 0x78, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, 0xCB, 0x13, 0x09, 0x5F, 0x13, 0x0D, 0x10, 0x0D, 0x13, 0x10, 0x13, + 0x0D, 0x10, 0x0D, 0x13, 0x5F, 0x09, 0x13, 0x1A, 0x0A, 0x56, 0x66, 0x56, 0x0A, 0x01, 0x5A, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0x50, 0x13, 0x1A, 0x0A, 0x5E, + 0xFE, 0xF5, 0x0D, 0x13, 0x13, 0x0D, 0x70, 0x70, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x0B, 0x5E, 0x0A, 0x1A, 0x13, 0x09, 0x57, 0x57, 0x09, 0x00, 0x00, 0x00, + 0x05, 0xFF, 0xFB, 0xFF, 0xE0, 0x02, 0x05, 0x01, 0xA5, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x32, 0x00, 0x00, 0x36, 0x32, 0x1E, 0x01, + 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x23, 0x22, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x26, 0x16, 0x0E, 0x01, 0x2E, 0x01, 0x3E, 0x01, 0x16, 0x06, + 0x2E, 0x01, 0x3E, 0x01, 0x1E, 0x04, 0x0E, 0x01, 0x2E, 0x01, 0x36, 0x06, 0x2E, 0x01, 0x3E, 0x01, 0x1E, 0x01, 0x06, 0xDA, 0x4C, 0x5C, 0x3E, 0x26, 0x22, + 0x19, 0x4C, 0x13, 0x12, 0x4D, 0x19, 0x22, 0x26, 0x3E, 0x19, 0x10, 0x14, 0x2C, 0x2A, 0x10, 0x14, 0x2C, 0x9E, 0x2F, 0x2D, 0x12, 0x14, 0x2F, 0x2D, 0x12, + 0xD8, 0x2C, 0x14, 0x10, 0x2A, 0x2C, 0x14, 0x10, 0x45, 0x2F, 0x14, 0x12, 0x2D, 0x2F, 0x14, 0x12, 0xE0, 0x43, 0x5F, 0x26, 0x1A, 0x1E, 0x19, 0x19, 0x1E, + 0x1A, 0x26, 0x5F, 0x6A, 0x34, 0x2D, 0x0A, 0x1D, 0x34, 0x2D, 0x0A, 0x1D, 0x0C, 0x26, 0x41, 0x37, 0x0C, 0x26, 0x41, 0x1A, 0x0A, 0x2D, 0x34, 0x1D, 0x0A, + 0x2D, 0x34, 0x0C, 0x0C, 0x37, 0x41, 0x26, 0x0C, 0x37, 0x41, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x13, + 0x00, 0x19, 0x00, 0x1D, 0x00, 0x00, 0x13, 0x36, 0x1F, 0x01, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3F, 0x01, 0x07, 0x15, 0x17, 0x37, 0x35, 0x03, 0x37, 0x35, 0x07, 0xEF, 0x11, 0x11, 0xD0, 0x0E, 0x11, 0x1B, 0xD0, 0x15, 0x16, 0xD0, 0x1A, 0x11, 0x0E, + 0xE1, 0xC0, 0xC0, 0xC0, 0xA0, 0xA0, 0xA0, 0x01, 0xBA, 0x06, 0x06, 0x4E, 0x06, 0x18, 0x0F, 0xE1, 0x1E, 0x0D, 0x68, 0x0B, 0x0B, 0x68, 0x0D, 0x1E, 0xE1, + 0x0F, 0x18, 0x06, 0x10, 0x48, 0x02, 0x4E, 0x4E, 0x02, 0xFE, 0xE4, 0x50, 0x86, 0x42, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xDB, 0x02, 0x00, + 0x01, 0xA3, 0x00, 0x1D, 0x00, 0x21, 0x00, 0x27, 0x00, 0x2B, 0x00, 0x2F, 0x00, 0x33, 0x00, 0x37, 0x00, 0x00, 0x25, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, + 0x06, 0x2F, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x1D, 0x01, 0x07, 0x35, + 0x07, 0x15, 0x27, 0x15, 0x17, 0x37, 0x35, 0x27, 0x03, 0x35, 0x07, 0x15, 0x37, 0x27, 0x07, 0x17, 0x05, 0x35, 0x07, 0x15, 0x37, 0x27, 0x07, 0x17, 0x01, + 0xE9, 0x17, 0x14, 0x64, 0x10, 0x10, 0x68, 0x68, 0x10, 0x10, 0x64, 0x14, 0x17, 0x61, 0x17, 0x64, 0x0D, 0x0D, 0x64, 0x17, 0x22, 0x55, 0x77, 0x66, 0x66, + 0x66, 0x12, 0x55, 0x55, 0x66, 0x66, 0x66, 0x01, 0x56, 0x55, 0x55, 0x66, 0x66, 0x66, 0xC6, 0x09, 0x19, 0x6E, 0x16, 0x0A, 0x32, 0x08, 0x08, 0x34, 0x34, + 0x08, 0x08, 0x32, 0x0A, 0x16, 0x6E, 0x19, 0x09, 0x24, 0x6C, 0x19, 0x09, 0x26, 0x05, 0x05, 0x26, 0x09, 0x19, 0x6C, 0x01, 0x49, 0x24, 0x45, 0x8F, 0x01, + 0x29, 0x29, 0x01, 0x26, 0xFE, 0xB7, 0x4B, 0x27, 0x4F, 0x9B, 0x27, 0x27, 0x2A, 0x46, 0x4B, 0x27, 0x4F, 0x9B, 0x27, 0x27, 0x2A, 0x00, 0x00, 0x03, 0xFF, + 0xFC, 0xFF, 0xBD, 0x02, 0x04, 0x01, 0xC1, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x54, 0x00, 0x00, 0x37, 0x16, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x16, 0x3B, 0x01, + 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x2E, 0x01, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x16, 0x17, 0x37, 0x26, 0x22, 0x0F, 0x01, 0x06, + 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x0F, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x2E, 0x01, 0x3F, 0x01, 0x17, 0x16, 0x0E, + 0x01, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x36, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x17, + 0xB9, 0x02, 0x12, 0x09, 0x28, 0x33, 0x0A, 0x12, 0x13, 0x34, 0x0C, 0x0C, 0x34, 0x24, 0x36, 0x09, 0x12, 0x33, 0x29, 0x09, 0x03, 0x0B, 0x6E, 0x06, 0x0C, + 0x01, 0x7C, 0x09, 0x24, 0x09, 0x12, 0x06, 0x0B, 0x22, 0x0A, 0x07, 0x12, 0x1C, 0x6A, 0x1C, 0x2A, 0x28, 0x09, 0x12, 0x03, 0x19, 0x02, 0x0B, 0x06, 0x6E, + 0x0B, 0x03, 0x09, 0x28, 0xAD, 0x12, 0x09, 0x36, 0x24, 0x60, 0x14, 0x07, 0x50, 0x0C, 0x0C, 0x50, 0x07, 0x14, 0x60, 0x13, 0x12, 0x0A, 0x1B, 0x07, 0x0A, + 0x22, 0x0A, 0x07, 0xBA, 0x0A, 0x0D, 0x06, 0x19, 0x51, 0x10, 0x21, 0x0C, 0x28, 0x0C, 0x30, 0x41, 0x22, 0x51, 0x1A, 0x05, 0x15, 0x03, 0x19, 0x02, 0x07, + 0x07, 0x49, 0x0F, 0x0F, 0x1D, 0x0A, 0x06, 0x16, 0x06, 0x0A, 0x1D, 0x2D, 0x2D, 0x42, 0x19, 0x06, 0x0D, 0x0A, 0x6E, 0x07, 0x07, 0x02, 0x19, 0x03, 0x15, + 0x05, 0x1A, 0x9C, 0x22, 0x41, 0x30, 0x30, 0x0B, 0x08, 0x08, 0x50, 0x0B, 0x0B, 0x50, 0x08, 0x08, 0x0B, 0x30, 0x21, 0x10, 0x2C, 0x0A, 0x07, 0x15, 0x06, + 0x0A, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0x00, 0x00, 0x02, 0x02, 0x01, 0x80, 0x00, 0x35, 0x00, 0x3F, 0x00, 0x4E, 0x00, 0x5D, 0x00, 0x00, 0x01, 0x32, + 0x16, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x16, 0x1D, 0x01, 0x14, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x3D, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x37, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x37, 0x3E, 0x01, 0x3B, 0x01, 0x32, 0x16, + 0x1F, 0x01, 0x25, 0x07, 0x21, 0x27, 0x2E, 0x01, 0x2B, 0x01, 0x22, 0x06, 0x07, 0x3A, 0x02, 0x3E, 0x03, 0x35, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x21, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x15, 0x14, 0x1E, 0x03, 0x3A, 0x01, 0x01, 0xF4, 0x06, 0x07, 0x01, 0x06, 0x03, 0x09, 0x14, 0x16, 0x10, 0x13, 0x0D, + 0x20, 0x0D, 0x13, 0xFF, 0x00, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x10, 0x16, 0x14, 0x09, 0x03, 0x06, 0x01, 0x07, 0x06, 0x3C, 0x11, 0x0C, 0x39, 0x22, 0x80, + 0x22, 0x39, 0x0C, 0x11, 0xFE, 0xDC, 0x14, 0x01, 0x00, 0x14, 0x05, 0x19, 0x0E, 0x80, 0x0E, 0x19, 0x39, 0x02, 0x0D, 0x06, 0x0B, 0x06, 0x07, 0x03, 0x22, + 0x1C, 0x12, 0x12, 0x01, 0x4E, 0x0E, 0x12, 0x12, 0x1C, 0x22, 0x03, 0x07, 0x06, 0x0B, 0x06, 0x0D, 0x01, 0x10, 0x09, 0x06, 0x18, 0x09, 0x13, 0x1D, 0x30, + 0x18, 0x12, 0x36, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x36, 0x12, 0x18, 0x30, 0x1D, 0x13, 0x09, 0x18, 0x06, 0x09, 0x2A, 0x20, + 0x26, 0x26, 0x20, 0x2A, 0x12, 0x32, 0x32, 0x0D, 0x11, 0x11, 0xAF, 0x01, 0x02, 0x03, 0x06, 0x04, 0x0F, 0x21, 0x12, 0x1C, 0x12, 0x12, 0x1C, 0x12, 0x21, + 0x0F, 0x04, 0x06, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x31, 0x00, 0x39, 0x00, 0x42, + 0x00, 0x4A, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x3D, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3F, 0x01, 0x3E, 0x01, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, + 0x33, 0x32, 0x16, 0x17, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, 0x21, 0x27, 0x2E, 0x01, 0x2B, 0x01, 0x22, 0x07, 0x04, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x01, 0xCE, 0x16, 0x1C, 0x20, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0xFF, 0x00, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x20, 0x1C, 0x16, 0x16, + 0x07, 0x2B, 0x1B, 0x0B, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x0B, 0x1B, 0x2B, 0x07, 0xFE, 0x9B, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x35, 0x01, 0x16, 0x11, 0x01, + 0x0A, 0x04, 0xD6, 0x0C, 0x03, 0x01, 0x0D, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xCE, 0x04, 0x23, 0x17, 0x30, 0x24, 0x13, 0x29, 0x0D, 0x13, 0x13, 0x0D, 0x20, + 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x29, 0x12, 0x25, 0x30, 0x17, 0x23, 0x04, 0x55, 0x1B, 0x22, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x22, 0x1B, 0xC3, 0x13, + 0x1A, 0x13, 0x13, 0x1A, 0x5D, 0x43, 0x05, 0x08, 0x0E, 0xB2, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFB, 0xFF, 0xBF, 0x01, 0x85, + 0x01, 0xC1, 0x00, 0x2D, 0x00, 0x00, 0x25, 0x16, 0x06, 0x2B, 0x01, 0x15, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x35, 0x23, 0x22, 0x26, + 0x3F, 0x01, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x23, 0x22, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x07, 0x06, 0x2B, 0x01, 0x17, 0x16, 0x06, + 0x2B, 0x01, 0x01, 0x7A, 0x0A, 0x0C, 0x0F, 0x89, 0x1E, 0x04, 0x09, 0x09, 0x60, 0x09, 0x09, 0x04, 0x1E, 0x89, 0x0F, 0x0C, 0x0A, 0x50, 0x1F, 0x0F, 0x0C, + 0x09, 0x4F, 0x1D, 0x0F, 0x06, 0x06, 0x0A, 0x6E, 0x05, 0x0E, 0x05, 0x6E, 0x0A, 0x06, 0x06, 0x0F, 0x1D, 0x4F, 0x09, 0x0C, 0x0F, 0x1F, 0x46, 0x0B, 0x1B, + 0x18, 0x31, 0x08, 0x0F, 0x0F, 0x08, 0x31, 0x18, 0x1B, 0x0B, 0x5A, 0x1A, 0x0B, 0x5B, 0x0E, 0x0D, 0x0B, 0x75, 0x05, 0x05, 0x75, 0x0B, 0x0D, 0x0E, 0x5B, + 0x0B, 0x1A, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x15, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x15, 0x14, 0x06, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x16, 0x20, 0x17, 0x15, 0x14, 0x06, 0x22, 0x26, 0x3D, + 0x01, 0x16, 0x20, 0x01, 0xC0, 0x83, 0xBA, 0x83, 0x83, 0xBA, 0x83, 0x83, 0xBA, 0x83, 0x47, 0x01, 0x32, 0x47, 0x83, 0xBA, 0x83, 0x47, 0x01, 0x32, 0x01, + 0x77, 0x2E, 0x1E, 0x2B, 0x2B, 0x1E, 0x2E, 0x1E, 0x2B, 0x2B, 0x85, 0x67, 0x1E, 0x2B, 0x2B, 0x1E, 0x67, 0x31, 0x6F, 0x67, 0x1E, 0x2B, 0x2B, 0x1E, 0x67, + 0x31, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x24, 0x00, 0x40, 0x00, 0x49, + 0x00, 0x4D, 0x00, 0x00, 0x37, 0x2E, 0x01, 0x34, 0x33, 0x32, 0x14, 0x07, 0x16, 0x17, 0x06, 0x07, 0x36, 0x07, 0x36, 0x37, 0x0E, 0x02, 0x13, 0x33, 0x11, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x17, 0x26, 0x27, 0x36, 0x27, 0x2E, 0x01, 0x06, 0x07, 0x06, + 0x17, 0x06, 0x07, 0x0E, 0x01, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x16, 0x33, 0x32, 0x36, 0x27, 0x26, 0x37, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x33, + 0x32, 0x17, 0x13, 0x06, 0x27, 0x36, 0xB6, 0x02, 0x02, 0x02, 0x06, 0x06, 0x0E, 0x15, 0x0C, 0x33, 0x0D, 0x4F, 0x04, 0x1F, 0x0A, 0x11, 0x08, 0xA2, 0x88, + 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0x0E, 0x02, 0x1D, 0x0E, 0x0C, 0x05, 0x03, 0x15, 0x16, 0x02, 0x06, 0x0E, 0x17, 0x12, 0x1D, 0x26, + 0x0C, 0x08, 0x0E, 0x19, 0x24, 0x3E, 0x11, 0x24, 0x1C, 0x14, 0x0A, 0x0A, 0x10, 0x4F, 0x07, 0x80, 0x06, 0x0A, 0x07, 0x18, 0x06, 0x25, 0x2B, 0xC0, 0x07, + 0x17, 0x11, 0x28, 0x36, 0x1A, 0x0F, 0x02, 0x14, 0x18, 0x56, 0x0B, 0x1D, 0x0F, 0x15, 0x05, 0x01, 0x0D, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, + 0x0A, 0x0E, 0x88, 0x0A, 0x0E, 0xAC, 0x12, 0x24, 0x2F, 0x11, 0x0E, 0x0B, 0x08, 0x0A, 0x16, 0x37, 0x36, 0x20, 0x0E, 0x26, 0x10, 0x0A, 0x3E, 0x14, 0x03, + 0x13, 0x22, 0x09, 0x0F, 0xDB, 0x07, 0x0A, 0x06, 0x80, 0x07, 0xFE, 0x9F, 0x07, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, + 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x3B, 0x00, 0x44, 0x00, 0x00, 0x13, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, + 0x34, 0x36, 0x3B, 0x01, 0x13, 0x22, 0x07, 0x06, 0x15, 0x26, 0x27, 0x26, 0x2B, 0x01, 0x22, 0x07, 0x06, 0x07, 0x26, 0x27, 0x26, 0x2B, 0x01, 0x22, 0x06, + 0x1F, 0x01, 0x16, 0x3B, 0x01, 0x32, 0x37, 0x36, 0x37, 0x33, 0x16, 0x17, 0x16, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x36, 0x26, 0x23, 0x37, 0x15, 0x23, 0x35, + 0x33, 0x32, 0x1F, 0x01, 0x16, 0xE0, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0x39, 0x0A, 0x01, 0x16, 0x02, 0x1C, 0x02, + 0x09, 0x1D, 0x0A, 0x02, 0x1C, 0x02, 0x01, 0x13, 0x02, 0x0A, 0x19, 0x06, 0x07, 0x02, 0x25, 0x02, 0x0A, 0x25, 0x09, 0x03, 0x18, 0x01, 0x01, 0x04, 0x15, + 0x03, 0x09, 0x26, 0x0A, 0x02, 0x26, 0x01, 0x07, 0x06, 0x4F, 0x80, 0x06, 0x0A, 0x07, 0x62, 0x07, 0x01, 0x38, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, + 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0xFF, 0x00, 0x0A, 0x65, 0x1C, 0x0F, 0x73, 0x09, 0x09, 0x73, 0x08, 0x1B, 0x5F, 0x0A, 0x09, 0x06, 0xA8, 0x09, 0x09, 0x63, + 0x0C, 0x17, 0x58, 0x09, 0x09, 0xA8, 0x06, 0x09, 0x86, 0x06, 0x80, 0x07, 0x62, 0x07, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, + 0x11, 0x00, 0x34, 0x00, 0x3D, 0x00, 0x00, 0x13, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, + 0x17, 0x36, 0x26, 0x2B, 0x01, 0x22, 0x0F, 0x01, 0x34, 0x27, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x16, 0x3B, 0x01, 0x32, 0x37, 0x36, + 0x37, 0x16, 0x17, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x2F, 0x01, 0x37, 0x15, 0x23, 0x35, 0x33, 0x32, 0x1F, 0x01, 0x16, 0xE0, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, + 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0x3C, 0x04, 0x07, 0x07, 0x23, 0x07, 0x03, 0x25, 0x25, 0x03, 0x07, 0x23, 0x07, 0x07, 0x04, 0x3C, 0x3C, 0x04, + 0x07, 0x07, 0x23, 0x07, 0x03, 0x22, 0x03, 0x11, 0x13, 0x04, 0x07, 0x23, 0x07, 0x07, 0x04, 0x3C, 0xA0, 0x80, 0x06, 0x0A, 0x07, 0x62, 0x07, 0x01, 0x38, + 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0xF2, 0x06, 0x0C, 0x06, 0x45, 0x01, 0x44, 0x06, 0x0D, 0x06, 0x5D, 0x5E, 0x06, + 0x0C, 0x06, 0x3D, 0x08, 0x21, 0x24, 0x06, 0x0C, 0x06, 0x5E, 0xD6, 0x06, 0x80, 0x07, 0x62, 0x07, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, + 0x01, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x10, 0x00, 0x22, 0x00, 0x3B, 0x00, 0x00, 0x37, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x37, 0x16, 0x1D, + 0x01, 0x23, 0x35, 0x33, 0x32, 0x17, 0x07, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x13, + 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x3A, 0x02, 0x3E, 0x04, 0xC2, 0x0D, 0x0E, 0x0F, 0x0D, + 0x1B, 0xD3, 0x07, 0x80, 0x06, 0x0A, 0x07, 0x37, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0x35, 0x28, 0x21, 0x51, 0x05, + 0x07, 0x07, 0x05, 0x1F, 0x05, 0x07, 0x01, 0x14, 0x0C, 0x17, 0x10, 0x13, 0x0C, 0x08, 0xB1, 0x11, 0x1B, 0x11, 0x3D, 0xA6, 0x07, 0x0A, 0x06, 0x80, 0x07, + 0x81, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0xFE, 0xD3, 0x21, 0x2C, 0x07, 0x05, 0xC8, 0x05, 0x07, 0x07, 0x05, 0x39, + 0x02, 0x06, 0x0B, 0x11, 0x19, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x08, 0x00, 0x1A, 0x00, 0x22, 0x00, + 0x2D, 0x00, 0x00, 0x01, 0x15, 0x23, 0x35, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x07, 0x33, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, + 0x3B, 0x01, 0x15, 0x14, 0x16, 0x06, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x35, 0x27, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x0F, 0x01, 0x15, 0x01, + 0x80, 0x80, 0x06, 0x0A, 0x07, 0x62, 0x07, 0x88, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0x0E, 0x6A, 0x27, 0x1C, 0x1C, 0x27, 0x1D, + 0xA0, 0x28, 0x08, 0x09, 0x67, 0x28, 0x08, 0x08, 0x28, 0x01, 0x46, 0x06, 0x80, 0x07, 0x62, 0x07, 0x30, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, + 0x0A, 0x0E, 0x88, 0x0A, 0x0E, 0x10, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xD4, 0x70, 0x28, 0x08, 0x08, 0x68, 0x28, 0x08, 0x08, 0x28, 0x30, 0x00, 0x00, 0x05, + 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x08, 0x00, 0x10, 0x00, 0x26, 0x00, 0x2A, 0x00, 0x4B, 0x00, 0x00, 0x01, 0x16, 0x1D, 0x01, 0x23, + 0x35, 0x33, 0x32, 0x17, 0x02, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x37, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, + 0x11, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x33, 0x35, 0x33, 0x07, 0x15, 0x33, 0x35, 0x02, 0x32, 0x36, 0x2F, 0x01, 0x26, 0x2B, 0x01, 0x35, 0x33, 0x35, 0x23, + 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0x35, 0x23, 0x15, 0x23, 0x15, 0x33, 0x15, 0x23, 0x15, 0x33, 0x15, 0x23, 0x15, 0x07, 0x06, 0x01, 0x79, 0x07, 0x80, + 0x06, 0x0A, 0x07, 0xA4, 0x1B, 0x13, 0x13, 0x1B, 0x13, 0x80, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0x68, 0x20, 0x40, 0x80, + 0x20, 0x19, 0x32, 0x1F, 0x04, 0x12, 0x02, 0x0A, 0x16, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x13, 0x05, 0x01, 0x57, 0x07, + 0x0A, 0x06, 0x80, 0x07, 0xFE, 0xB7, 0x10, 0x16, 0x10, 0x10, 0x16, 0xD8, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0x20, + 0x20, 0x20, 0x20, 0x20, 0xFE, 0x80, 0x26, 0x19, 0x57, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x21, 0x00, 0x2F, 0x00, 0x3D, 0x00, 0x46, 0x00, 0x00, 0x13, + 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x03, 0x35, 0x34, 0x26, 0x0F, 0x01, 0x23, 0x22, + 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x17, 0x16, 0x36, 0x37, 0x06, 0x1E, 0x01, 0x37, 0x36, 0x34, 0x27, 0x26, 0x0E, 0x01, 0x17, 0x16, 0x14, 0x37, 0x26, 0x0E, + 0x01, 0x17, 0x16, 0x14, 0x07, 0x06, 0x1E, 0x01, 0x37, 0x36, 0x34, 0x37, 0x15, 0x23, 0x35, 0x33, 0x32, 0x1F, 0x01, 0x16, 0xE0, 0x0E, 0x0A, 0x88, 0x0E, + 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0x40, 0x0F, 0x05, 0x24, 0x1C, 0x0C, 0x0C, 0x1C, 0x24, 0x05, 0x0F, 0x21, 0x0A, 0x09, 0x18, 0x0C, 0x14, + 0x14, 0x0B, 0x1A, 0x07, 0x09, 0x07, 0x4F, 0x0A, 0x1B, 0x06, 0x09, 0x1B, 0x1B, 0x0B, 0x0A, 0x18, 0x0B, 0x29, 0x40, 0x80, 0x06, 0x0A, 0x07, 0x62, 0x07, + 0x01, 0x38, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0xFE, 0x6C, 0x88, 0x08, 0x06, 0x06, 0x24, 0x0C, 0x38, 0x0C, 0x24, + 0x06, 0x06, 0x38, 0x0B, 0x1A, 0x06, 0x09, 0x15, 0x3B, 0x14, 0x0B, 0x08, 0x18, 0x0C, 0x07, 0x13, 0x6E, 0x0A, 0x08, 0x18, 0x0C, 0x1C, 0x4E, 0x1C, 0x0B, + 0x1A, 0x05, 0x09, 0x2A, 0x75, 0x9F, 0x06, 0x80, 0x07, 0x62, 0x07, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, + 0x08, 0x00, 0x1A, 0x00, 0x34, 0x00, 0x00, 0x01, 0x15, 0x23, 0x35, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x07, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x13, 0x34, 0x26, 0x0F, 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, + 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x17, 0x16, 0x36, 0x35, 0x01, 0x80, 0x80, 0x06, 0x0A, 0x07, 0x62, 0x07, 0xA0, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, + 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0x60, 0x1E, 0x0B, 0x37, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x37, 0x0B, 0x1E, 0x01, 0x46, + 0x06, 0x80, 0x07, 0x62, 0x07, 0x18, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0xFE, 0xE8, 0x10, 0x0C, 0x0B, 0x37, 0x26, + 0x0A, 0x0E, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0x26, 0x37, 0x0B, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, + 0xC0, 0x00, 0x08, 0x00, 0x1A, 0x00, 0x33, 0x00, 0x47, 0x00, 0x60, 0x00, 0x00, 0x01, 0x15, 0x23, 0x35, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x07, 0x33, 0x11, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x07, 0x37, 0x36, 0x35, 0x34, 0x2F, 0x01, 0x37, 0x36, 0x35, + 0x34, 0x2F, 0x01, 0x26, 0x23, 0x22, 0x0F, 0x01, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x33, 0x32, 0x17, 0x30, 0x33, 0x32, 0x3F, 0x01, 0x34, 0x35, 0x34, 0x2F, + 0x01, 0x30, 0x23, 0x22, 0x0F, 0x01, 0x14, 0x15, 0x14, 0x17, 0x37, 0x36, 0x34, 0x2F, 0x01, 0x26, 0x23, 0x22, 0x0F, 0x01, 0x06, 0x15, 0x14, 0x1F, 0x01, + 0x07, 0x06, 0x15, 0x14, 0x1F, 0x01, 0x16, 0x33, 0x32, 0x37, 0x01, 0x80, 0x80, 0x06, 0x0A, 0x07, 0x62, 0x07, 0x88, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, + 0x0E, 0x0E, 0x0A, 0xC8, 0x0E, 0x73, 0x14, 0x01, 0x02, 0x28, 0x28, 0x02, 0x01, 0x14, 0x01, 0x03, 0x02, 0x01, 0x41, 0x02, 0x02, 0x41, 0x01, 0x02, 0x03, + 0x35, 0x01, 0x04, 0x01, 0x3E, 0x04, 0x1C, 0x01, 0x04, 0x01, 0x3E, 0x04, 0xBC, 0x02, 0x02, 0x41, 0x01, 0x02, 0x03, 0x01, 0x14, 0x01, 0x02, 0x28, 0x28, + 0x02, 0x01, 0x14, 0x01, 0x03, 0x02, 0x01, 0x01, 0x46, 0x06, 0x80, 0x07, 0x62, 0x07, 0x30, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, + 0x88, 0x0A, 0x0E, 0xF1, 0x15, 0x02, 0x02, 0x03, 0x01, 0x24, 0x24, 0x01, 0x03, 0x02, 0x02, 0x15, 0x01, 0x01, 0x3D, 0x02, 0x04, 0x02, 0x3D, 0x01, 0x31, + 0x04, 0xD3, 0x01, 0x01, 0x04, 0x01, 0x08, 0x04, 0xD3, 0x01, 0x01, 0x04, 0x01, 0x67, 0x02, 0x04, 0x02, 0x3D, 0x01, 0x01, 0x15, 0x02, 0x02, 0x03, 0x01, + 0x24, 0x24, 0x01, 0x03, 0x02, 0x02, 0x15, 0x01, 0x01, 0x00, 0x06, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0D, 0x00, 0x15, + 0x00, 0x1B, 0x00, 0x21, 0x00, 0x27, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x25, 0x26, 0x27, 0x07, 0x16, 0x17, 0x06, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x27, 0x06, 0x07, 0x17, 0x36, 0x37, 0x07, 0x16, 0x17, 0x37, 0x26, 0x27, 0x17, 0x36, 0x37, 0x27, 0x06, 0x07, 0x99, 0xCE, + 0x91, 0x91, 0xCE, 0x91, 0x01, 0xA6, 0x14, 0x1A, 0x3F, 0x1C, 0x11, 0x96, 0x50, 0x38, 0x38, 0x50, 0x38, 0x20, 0x1A, 0x14, 0x40, 0x11, 0x1C, 0x6D, 0x14, + 0x1A, 0x3F, 0x1C, 0x11, 0xEE, 0x1A, 0x14, 0x40, 0x11, 0x1C, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x19, 0x1A, 0x14, 0x40, 0x11, 0x1C, 0xA1, 0x38, + 0x50, 0x38, 0x38, 0x50, 0xD6, 0x14, 0x1A, 0x3F, 0x1C, 0x11, 0xEE, 0x1A, 0x14, 0x40, 0x11, 0x1C, 0x6D, 0x14, 0x1A, 0x3F, 0x1C, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x07, 0xFF, 0xC7, 0x01, 0xF8, 0x01, 0xB4, 0x00, 0x22, 0x00, 0x00, 0x01, 0x34, 0x36, 0x17, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, + 0x27, 0x34, 0x36, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x07, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x26, 0x35, 0x01, 0x20, + 0x12, 0x0C, 0x51, 0x69, 0x91, 0x66, 0x67, 0x91, 0x01, 0x69, 0x51, 0x0B, 0x13, 0x12, 0x3A, 0x4C, 0x6C, 0x98, 0x6C, 0x4C, 0x3A, 0x12, 0x01, 0x99, 0x0C, + 0x0E, 0x03, 0x15, 0x85, 0x56, 0x67, 0x91, 0x90, 0x67, 0x56, 0x86, 0x15, 0x03, 0x0E, 0x0C, 0x11, 0x12, 0x05, 0x10, 0x62, 0x3F, 0x4C, 0x6C, 0x6C, 0x4C, + 0x3F, 0x62, 0x10, 0x05, 0x12, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xBB, 0x02, 0x03, 0x01, 0xC5, 0x00, 0x16, 0x00, 0x00, 0x01, 0x36, 0x16, 0x07, + 0x03, 0x0E, 0x01, 0x2F, 0x01, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x13, 0x36, 0x26, 0x07, 0x05, 0x27, 0x2E, 0x01, 0x37, 0x01, 0xDC, 0x0D, 0x19, 0x02, 0x48, + 0x02, 0x15, 0x0A, 0x7D, 0x40, 0x0A, 0x20, 0xF1, 0x03, 0x08, 0x04, 0xFE, 0xE1, 0x6A, 0x0E, 0x02, 0x0D, 0x01, 0xBD, 0x07, 0x11, 0x0F, 0xFE, 0x50, 0x0B, + 0x0C, 0x05, 0x34, 0x4D, 0x0D, 0x0B, 0x11, 0x51, 0x01, 0x25, 0x05, 0x07, 0x03, 0xFD, 0x2C, 0x06, 0x1E, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, + 0xC7, 0x01, 0xF9, 0x01, 0xB8, 0x00, 0x25, 0x00, 0x37, 0x00, 0x00, 0x00, 0x14, 0x06, 0x23, 0x22, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x17, 0x16, + 0x33, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x07, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x1F, 0x01, 0x36, 0x33, 0x32, 0x03, + 0x0E, 0x01, 0x2F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x17, 0x1E, 0x01, 0x07, 0x01, 0xF8, 0x91, 0x67, 0x58, 0x44, 0x08, 0x01, + 0x08, 0x0B, 0x06, 0x13, 0x07, 0x32, 0x40, 0x4C, 0x6C, 0x6C, 0x4C, 0x49, 0x35, 0x33, 0x07, 0x08, 0x0B, 0x91, 0x07, 0x09, 0x14, 0x07, 0x32, 0x48, 0x63, + 0x67, 0x24, 0x06, 0x14, 0x08, 0x41, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x29, 0x08, 0x02, 0x06, 0x01, 0x27, 0xCD, 0x92, 0x37, 0x07, 0x15, 0x08, 0x0B, 0x06, + 0x01, 0x05, 0x28, 0x6C, 0x98, 0x6C, 0x32, 0x33, 0x07, 0x14, 0x09, 0x07, 0x91, 0x0B, 0x08, 0x07, 0x32, 0x45, 0xFE, 0xBA, 0x08, 0x03, 0x06, 0x33, 0x88, + 0x0A, 0x0E, 0x0E, 0x0A, 0x68, 0x20, 0x06, 0x14, 0x08, 0x00, 0x01, 0x00, 0x10, 0xFF, 0xE0, 0x01, 0xF0, 0x01, 0xA0, 0x00, 0x4B, 0x00, 0x00, 0x01, 0x11, + 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x33, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x01, + 0xC0, 0x20, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x20, 0xC0, 0x20, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x20, 0x20, + 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x20, 0xC0, 0x20, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x60, 0xFE, 0xC0, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x40, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x01, 0x00, + 0x20, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x21, 0x00, 0x00, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, + 0x11, 0x23, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x01, 0xC0, 0x09, 0x07, 0x30, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x42, 0x5E, 0x5E, 0x42, 0xF0, 0x07, 0x09, 0x01, 0x90, 0x20, 0x07, 0x09, 0xFE, + 0x90, 0x07, 0x09, 0x09, 0x07, 0x01, 0x70, 0xFE, 0x90, 0x07, 0x09, 0x09, 0x07, 0x70, 0x5E, 0x84, 0x5E, 0x09, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, + 0x00, 0x01, 0xA0, 0x00, 0x23, 0x00, 0x47, 0x00, 0x6B, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x15, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x25, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x35, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, + 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, + 0xFE, 0xB0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x50, 0x07, 0x09, 0x09, 0x07, 0x50, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x50, 0x07, 0x09, 0x09, 0x07, 0x50, + 0x09, 0x07, 0x20, 0x07, 0x09, 0xFE, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x50, 0x09, 0x07, 0x20, 0x07, 0x09, 0x50, 0x07, 0x09, 0x09, 0x07, 0xD0, 0x09, + 0x07, 0x20, 0x07, 0x09, 0xD0, 0x07, 0x09, 0x09, 0x07, 0xD0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x10, 0x07, 0x09, 0x09, + 0x07, 0x10, 0x09, 0x07, 0x20, 0x07, 0x09, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x25, 0x00, 0x00, + 0x25, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x27, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x37, 0x26, 0x35, 0x34, 0x36, + 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x27, 0x07, 0x16, 0x14, 0x07, 0x17, 0x36, 0x01, 0x60, 0x28, 0x38, 0x38, 0x50, 0x38, 0x02, 0x66, 0x1A, 0x22, 0x28, + 0x38, 0x38, 0x28, 0x22, 0x1A, 0x66, 0x02, 0x38, 0x50, 0x38, 0x38, 0x28, 0x22, 0x1A, 0x66, 0x02, 0x02, 0x66, 0x1A, 0x80, 0x38, 0x50, 0x38, 0x38, 0x28, + 0x0B, 0x0A, 0x40, 0x15, 0x38, 0x50, 0x38, 0x15, 0x40, 0x0A, 0x0B, 0x28, 0x38, 0x38, 0x50, 0x38, 0x15, 0x40, 0x0A, 0x16, 0x0A, 0x40, 0x15, 0x00, 0x02, + 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x35, 0x00, 0x00, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, + 0x36, 0x33, 0x21, 0x32, 0x16, 0x07, 0x22, 0x07, 0x27, 0x36, 0x34, 0x27, 0x37, 0x16, 0x33, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x15, 0x14, 0x17, 0x07, + 0x26, 0x23, 0x22, 0x06, 0x14, 0x16, 0x33, 0x32, 0x37, 0x17, 0x06, 0x15, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, + 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x90, 0x16, 0x10, 0x44, 0x02, 0x02, 0x44, 0x10, 0x16, 0x17, 0x21, 0x21, 0x2E, 0x21, 0x02, 0x44, 0x10, 0x16, + 0x17, 0x21, 0x21, 0x17, 0x16, 0x10, 0x44, 0x02, 0x21, 0x2E, 0x21, 0x21, 0x01, 0x70, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, + 0xEC, 0x0F, 0x29, 0x07, 0x0E, 0x07, 0x29, 0x0F, 0x21, 0x2E, 0x21, 0x21, 0x17, 0x07, 0x07, 0x29, 0x0F, 0x21, 0x2E, 0x21, 0x0F, 0x29, 0x07, 0x07, 0x17, + 0x21, 0x21, 0x2E, 0x21, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, + 0x3F, 0x00, 0x4F, 0x00, 0x00, 0x01, 0x07, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x37, 0x36, + 0x32, 0x1F, 0x01, 0x3F, 0x01, 0x32, 0x14, 0x2B, 0x01, 0x22, 0x34, 0x33, 0x26, 0x32, 0x1D, 0x01, 0x14, 0x22, 0x3D, 0x01, 0x17, 0x06, 0x26, 0x3F, 0x01, + 0x36, 0x16, 0x0F, 0x01, 0x27, 0x26, 0x36, 0x1F, 0x01, 0x16, 0x06, 0x1F, 0x01, 0x16, 0x06, 0x2F, 0x01, 0x26, 0x36, 0x05, 0x34, 0x36, 0x33, 0x32, 0x36, + 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x32, 0x36, 0x01, 0xB8, 0x34, 0x1B, 0x07, 0x07, 0x11, 0x12, 0x7A, 0xAC, 0x7A, 0x7A, 0x56, 0x2D, 0x29, + 0x11, 0x07, 0x14, 0x07, 0x1A, 0x34, 0x4D, 0x0C, 0x0C, 0x18, 0x0C, 0x0C, 0x30, 0x18, 0x18, 0x2E, 0x08, 0x12, 0x09, 0x11, 0x08, 0x11, 0x08, 0x55, 0x11, + 0x08, 0x11, 0x08, 0x11, 0x09, 0x11, 0x3B, 0x11, 0x08, 0x11, 0x08, 0x11, 0x09, 0x11, 0xFE, 0x9F, 0x26, 0x1A, 0x07, 0x09, 0x09, 0x07, 0x28, 0x38, 0x09, + 0x0E, 0x09, 0x01, 0x68, 0x34, 0x1B, 0x07, 0x14, 0x07, 0x11, 0x29, 0x2D, 0x56, 0x7A, 0x7A, 0xAC, 0x7A, 0x12, 0x11, 0x07, 0x07, 0x1B, 0x34, 0x0C, 0x18, + 0x18, 0x3C, 0x0C, 0x18, 0x0C, 0x0C, 0x18, 0x2B, 0x09, 0x12, 0x08, 0x11, 0x09, 0x12, 0x08, 0x11, 0x11, 0x08, 0x12, 0x09, 0x11, 0x08, 0x12, 0x19, 0x11, + 0x09, 0x11, 0x09, 0x11, 0x08, 0x12, 0xC0, 0x1A, 0x26, 0x09, 0x0E, 0x09, 0x38, 0x28, 0x07, 0x09, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0xFF, 0xC8, + 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x25, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x17, 0x07, 0x27, 0x37, 0x17, + 0x26, 0x27, 0x17, 0x07, 0x27, 0x37, 0x06, 0x07, 0x37, 0x17, 0x07, 0x27, 0x14, 0x17, 0x37, 0x1F, 0x01, 0x07, 0x16, 0x37, 0x27, 0x3F, 0x01, 0x17, 0x36, + 0x07, 0x27, 0x37, 0x17, 0x07, 0x01, 0xF8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x61, 0x1A, 0x3F, 0x11, 0x22, 0x27, 0x3E, 0x0E, 0x4B, 0x4B, 0x0E, 0x3E, 0x27, + 0x23, 0x10, 0x3F, 0x1A, 0x26, 0x08, 0x55, 0x25, 0x1E, 0x3E, 0x3E, 0x1E, 0x25, 0x55, 0x08, 0x26, 0xF8, 0x1E, 0x4E, 0x4E, 0x1E, 0x01, 0x27, 0xCE, 0x91, + 0x91, 0xCE, 0x91, 0xF8, 0x16, 0x3A, 0x54, 0x03, 0x36, 0x13, 0x1F, 0x2A, 0x2A, 0x1F, 0x13, 0x36, 0x03, 0x54, 0x3A, 0x16, 0x42, 0x34, 0x22, 0x0B, 0x4D, + 0x12, 0x14, 0x14, 0x12, 0x4D, 0x0B, 0x22, 0x34, 0x04, 0x5C, 0x38, 0x38, 0x5C, 0x00, 0x0D, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x05, 0x01, 0xCD, 0x00, 0x21, + 0x00, 0x2D, 0x00, 0x39, 0x00, 0x45, 0x00, 0x51, 0x00, 0x5D, 0x00, 0x69, 0x00, 0x75, 0x00, 0x81, 0x00, 0x8D, 0x00, 0x99, 0x00, 0xA5, 0x00, 0xB1, 0x00, + 0x00, 0x13, 0x3E, 0x01, 0x16, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x35, 0x30, 0x35, 0x37, 0x26, 0x07, 0x17, 0x30, 0x15, 0x14, + 0x0F, 0x01, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x17, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x17, 0x14, 0x2B, + 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x17, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x17, 0x14, 0x2B, 0x01, + 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x17, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x05, 0x14, 0x2B, 0x01, 0x22, + 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x17, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x17, 0x14, 0x2B, 0x01, 0x22, 0x3D, + 0x01, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x17, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x05, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, + 0x34, 0x3B, 0x01, 0x32, 0x15, 0x05, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x17, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, + 0x3B, 0x01, 0x32, 0x15, 0x05, 0x44, 0xB7, 0xB7, 0x44, 0x0A, 0x08, 0x2B, 0x05, 0x0B, 0x03, 0x03, 0x57, 0x0B, 0x06, 0x60, 0x60, 0x06, 0x0B, 0x57, 0x03, + 0x03, 0x0B, 0x05, 0x2B, 0x03, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, + 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0xFE, 0xB0, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x60, 0x0C, + 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0xFE, 0xB0, 0x0C, 0x28, 0x0C, 0x0C, + 0x28, 0x0C, 0x01, 0x20, 0x0C, 0xE8, 0x0C, 0x0C, 0xE8, 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x01, 0x58, 0x44, 0x31, 0x31, 0x44, 0x0A, 0x0D, + 0x45, 0x08, 0x01, 0x23, 0x04, 0x0D, 0x01, 0x3C, 0x23, 0x23, 0x3C, 0x01, 0x0D, 0x04, 0x23, 0x01, 0x08, 0x45, 0x05, 0x05, 0x08, 0xC7, 0x0C, 0x0C, 0x28, + 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, + 0x0C, 0x88, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, + 0x88, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, + 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x09, 0x00, 0x1D, 0x00, 0x31, 0x00, 0x3B, 0x00, 0x3F, 0x00, 0x00, 0x01, 0x15, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x05, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x3E, 0x03, 0x25, 0x1E, 0x03, 0x17, 0x15, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x35, 0x33, 0x32, 0x16, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x36, 0x33, 0x13, 0x35, + 0x33, 0x15, 0x01, 0xA0, 0x60, 0x09, 0x07, 0x40, 0x07, 0x09, 0xFE, 0xA0, 0x13, 0x0D, 0x60, 0x20, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x01, 0x14, 0x17, 0x13, + 0x01, 0x81, 0x01, 0x13, 0x17, 0x14, 0x01, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x20, 0x60, 0x0D, 0x13, 0xFE, 0xF0, 0x07, 0x09, 0x60, 0x09, 0x07, 0x70, 0x40, + 0x01, 0x90, 0x30, 0x30, 0x07, 0x09, 0x09, 0x77, 0x0D, 0x13, 0xA0, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0x2C, 0x2C, 0x47, 0x29, 0x39, 0x1F, 0x1F, 0x39, 0x29, + 0x47, 0x2C, 0x2C, 0x0D, 0x13, 0x13, 0x0D, 0xA0, 0xA0, 0x13, 0x73, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0xFF, 0x00, 0xA0, 0xA0, 0x00, 0x03, 0x00, 0x00, + 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x23, 0x00, 0x2B, 0x00, 0x00, 0x01, 0x15, 0x23, 0x35, 0x34, 0x36, 0x32, 0x16, 0x17, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x07, 0x15, 0x23, 0x35, 0x2E, 0x01, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, + 0x37, 0x15, 0x23, 0x35, 0x34, 0x36, 0x32, 0x16, 0x01, 0x40, 0x40, 0x13, 0x1A, 0x13, 0x30, 0x07, 0x09, 0x09, 0x07, 0x10, 0x49, 0x37, 0x40, 0x37, 0x49, + 0x10, 0x07, 0x09, 0x09, 0x07, 0x70, 0x40, 0x13, 0x1A, 0x13, 0x01, 0xA0, 0x60, 0x60, 0x0D, 0x13, 0x13, 0x8D, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x39, + 0x59, 0x0B, 0x63, 0x63, 0x0B, 0x59, 0x39, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x60, 0x60, 0x0D, 0x13, 0x13, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x40, 0x01, 0x80, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x26, 0x00, 0x32, 0x00, 0x3E, 0x00, 0x4A, 0x00, 0x56, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, + 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x33, 0x02, 0x32, 0x3D, 0x01, 0x23, 0x15, 0x37, 0x32, + 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x21, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x27, 0x32, 0x3D, + 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x21, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x37, 0x32, 0x3D, 0x01, + 0x34, 0x23, 0x21, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x02, 0x28, 0x0A, 0x0E, 0x1C, 0x14, 0xFE, 0x28, 0x17, 0x21, 0x0E, 0x0A, 0x28, 0x0E, 0x0A, 0x28, 0x10, + 0x10, 0xF4, 0x0C, 0x0C, 0x98, 0x0C, 0x0C, 0x01, 0x68, 0x0C, 0x0C, 0x98, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x98, 0x0C, 0x0C, 0x01, 0x68, 0x0C, 0x0C, 0x98, + 0x0C, 0x0C, 0x98, 0x0C, 0x0C, 0xFE, 0x98, 0x0C, 0x0C, 0x01, 0x80, 0x0E, 0x0A, 0xFE, 0xC8, 0x14, 0x1C, 0x21, 0x17, 0x01, 0x10, 0x0A, 0x0E, 0x08, 0x0A, + 0x0E, 0xFE, 0xB0, 0x08, 0xF8, 0xF8, 0x08, 0x0C, 0x08, 0x0C, 0x0C, 0x08, 0x0C, 0x0C, 0x08, 0x0C, 0x0C, 0x08, 0x0C, 0x60, 0x0C, 0x08, 0x0C, 0x0C, 0x08, + 0x0C, 0x0C, 0x08, 0x0C, 0x0C, 0x08, 0x0C, 0x60, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xE0, 0x02, 0x81, 0x01, 0xAF, + 0x00, 0x12, 0x00, 0x1A, 0x00, 0x2C, 0x00, 0x00, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x27, 0x26, 0x20, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x34, 0x37, 0x3E, + 0x01, 0x16, 0x02, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x27, 0x26, 0x22, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x34, + 0x37, 0x36, 0x32, 0x02, 0x7B, 0x05, 0x05, 0x22, 0x0B, 0x0B, 0x6E, 0xFE, 0xD6, 0x6E, 0x0B, 0x0B, 0x22, 0x05, 0x05, 0x57, 0xE4, 0xE4, 0xFF, 0x36, 0x25, + 0x25, 0x36, 0x25, 0x01, 0x0B, 0x05, 0x05, 0x22, 0x0B, 0x0B, 0x3F, 0xA8, 0x3F, 0x0B, 0x0B, 0x22, 0x05, 0x05, 0x57, 0xE8, 0x01, 0x25, 0x04, 0x0E, 0x05, + 0x22, 0x0B, 0x0B, 0x64, 0x64, 0x0B, 0x0B, 0x22, 0x05, 0x0E, 0x04, 0x51, 0x39, 0x39, 0xFE, 0xEA, 0x25, 0x36, 0x25, 0x25, 0x36, 0x79, 0x05, 0x0E, 0x05, + 0x22, 0x0A, 0x0A, 0x36, 0x36, 0x0A, 0x0A, 0x22, 0x05, 0x0E, 0x05, 0x4C, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x0F, + 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x5F, 0x00, 0x6F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x35, 0x11, 0x34, 0x36, 0x33, 0x13, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, + 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, + 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, + 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x11, 0x35, 0x34, 0x26, 0x23, 0x21, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x33, 0x21, 0x32, + 0x36, 0x01, 0x90, 0x13, 0x1D, 0x1D, 0x13, 0xFE, 0xA0, 0x13, 0x1D, 0x1D, 0x13, 0x50, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, + 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x80, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, + 0x08, 0x05, 0x26, 0x05, 0x08, 0x80, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0xFE, 0xDA, 0x05, 0x08, 0x08, 0x05, 0x01, + 0x26, 0x05, 0x08, 0x01, 0xC0, 0x1D, 0x13, 0xFE, 0x60, 0x13, 0x1D, 0x1D, 0x13, 0x01, 0xA0, 0x13, 0x1D, 0xFE, 0x4D, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, + 0x05, 0x08, 0x08, 0x85, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x7B, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x85, 0x26, + 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x7B, 0xA6, 0x05, 0x08, 0x08, 0x05, 0xA6, 0x05, 0x08, 0x08, 0x01, 0x05, 0x66, 0x05, 0x08, 0x08, 0x05, + 0x66, 0x05, 0x08, 0x08, 0x00, 0x00, 0x03, 0xFF, 0xF9, 0xFF, 0xB9, 0x02, 0x87, 0x01, 0xC7, 0x00, 0x23, 0x00, 0x2E, 0x00, 0x34, 0x00, 0x00, 0x05, 0x16, + 0x0F, 0x01, 0x06, 0x27, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x36, 0x37, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x1E, 0x01, 0x15, 0x14, 0x1E, + 0x01, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x06, 0x31, 0x25, 0x17, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x3E, 0x02, 0x16, 0x22, 0x26, 0x35, 0x33, 0x14, + 0x02, 0x7A, 0x0C, 0x09, 0x14, 0x0A, 0x0C, 0xFD, 0xB3, 0x0C, 0x09, 0x14, 0x0A, 0x0C, 0x91, 0x25, 0x3D, 0x13, 0x1A, 0x13, 0x38, 0x48, 0x14, 0x11, 0x0F, + 0x02, 0x01, 0x09, 0x01, 0xFE, 0x7E, 0xD5, 0xF2, 0x0E, 0x12, 0x09, 0x0E, 0x0C, 0x16, 0xC1, 0x34, 0x26, 0x80, 0x0A, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0x01, + 0xC7, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0x70, 0x31, 0x0D, 0x15, 0x0D, 0x13, 0x13, 0x0D, 0x15, 0x0B, 0x56, 0x3A, 0x2C, 0x43, 0x18, 0x0F, 0x03, 0x01, 0x0A, + 0x0C, 0x01, 0x03, 0x88, 0xA4, 0x13, 0x0D, 0x0C, 0x0A, 0x0F, 0x0E, 0x32, 0xE5, 0x25, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, + 0x01, 0xC0, 0x01, 0xC1, 0x00, 0x17, 0x00, 0x21, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x01, 0x03, 0x21, 0x03, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x26, 0x01, 0xB0, 0x07, 0x09, 0x09, 0x07, + 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x78, 0x09, 0x07, 0x0F, 0x72, 0x0F, 0x07, 0x09, 0xFE, 0xFD, 0x15, 0x01, 0x80, 0x15, 0x01, 0x1C, 0x13, 0xF6, 0x13, + 0x1C, 0x01, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x13, 0x0D, 0x0D, 0x13, 0xFE, 0x4D, 0x01, 0x53, 0xFE, 0xAD, 0x13, 0x1A, + 0x1A, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x31, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, + 0x34, 0x05, 0x36, 0x35, 0x34, 0x2F, 0x01, 0x2E, 0x01, 0x07, 0x0E, 0x02, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x16, 0x36, 0x3F, 0x01, + 0x36, 0x35, 0x34, 0x27, 0x2E, 0x02, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x3E, 0x01, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x6D, 0x03, + 0x02, 0x19, 0x03, 0x0C, 0x03, 0x03, 0x0C, 0x22, 0x11, 0x23, 0x27, 0x28, 0x22, 0x24, 0x1A, 0x04, 0x0B, 0x03, 0x16, 0x02, 0x03, 0x04, 0x11, 0x35, 0x1D, + 0x3E, 0x52, 0x51, 0x3F, 0x20, 0x38, 0x11, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0xCA, 0x04, 0x04, 0x04, 0x03, 0x22, 0x04, 0x01, 0x04, 0x03, 0x0A, + 0x10, 0x30, 0x20, 0x21, 0x2B, 0x18, 0x04, 0x02, 0x04, 0x23, 0x03, 0x03, 0x05, 0x04, 0x04, 0x0E, 0x14, 0x52, 0x3D, 0x3E, 0x53, 0x18, 0x10, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x3A, 0x00, 0x46, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2E, + 0x02, 0x27, 0x0E, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x16, 0x17, 0x3E, 0x01, + 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x14, 0x16, 0x33, 0x32, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x07, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x13, + 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x01, 0x00, 0x6A, 0x8E, 0x4A, 0x4C, 0x0F, 0x10, 0x17, 0x0E, 0x03, 0x0D, 0x2A, 0x14, + 0x2C, 0x34, 0x51, 0x39, 0x2A, 0x12, 0x01, 0x0C, 0x2D, 0x0C, 0x0E, 0x02, 0x18, 0x03, 0x05, 0x0C, 0x1A, 0x20, 0x6A, 0x4E, 0x4C, 0x6C, 0x6C, 0x4C, 0x36, + 0x2D, 0x08, 0x12, 0x06, 0x0A, 0x07, 0x04, 0x09, 0x3D, 0x4A, 0x67, 0x91, 0x91, 0x51, 0x15, 0x25, 0x12, 0x11, 0x17, 0x24, 0x14, 0x01, 0xB8, 0x7C, 0x64, + 0x3F, 0x54, 0x01, 0x06, 0x0F, 0x0C, 0x11, 0x16, 0x39, 0x31, 0x42, 0x56, 0x16, 0x0C, 0x11, 0x0C, 0x79, 0x0D, 0x10, 0x01, 0x03, 0x32, 0x1F, 0x4A, 0x56, + 0x6C, 0x98, 0x6C, 0x1D, 0x05, 0x03, 0x07, 0x0C, 0x09, 0x15, 0x06, 0x28, 0x91, 0xCE, 0x91, 0xFE, 0xD0, 0x29, 0x1F, 0x13, 0x16, 0x29, 0x20, 0x13, 0x15, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x01, 0x01, 0xC1, 0x00, 0x0B, 0x00, 0x23, 0x00, 0x00, 0x3F, 0x01, 0x17, 0x07, 0x06, 0x2B, 0x01, 0x07, 0x27, + 0x37, 0x35, 0x34, 0x00, 0x16, 0x14, 0x0F, 0x01, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, + 0x37, 0x36, 0x33, 0x7E, 0x80, 0x7E, 0x13, 0x1B, 0x2D, 0x38, 0x20, 0x20, 0x01, 0xA8, 0x38, 0x1C, 0x4D, 0x0D, 0x07, 0x07, 0x29, 0x07, 0x14, 0x07, 0xA2, + 0x07, 0x07, 0x29, 0x07, 0x14, 0x07, 0x0D, 0x4D, 0x1C, 0x73, 0x7E, 0x80, 0x7E, 0x13, 0x20, 0x20, 0x38, 0x2D, 0x1B, 0x01, 0x60, 0x38, 0x50, 0x1C, 0x4D, + 0x0D, 0x07, 0x14, 0x07, 0x29, 0x07, 0x07, 0xA2, 0x07, 0x14, 0x07, 0x29, 0x07, 0x07, 0x0D, 0x4D, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, + 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x12, 0x00, 0x2B, 0x00, 0x00, 0x37, 0x17, 0x30, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x1E, 0x03, 0x33, + 0x32, 0x37, 0x36, 0x01, 0x32, 0x16, 0x15, 0x14, 0x07, 0x0E, 0x01, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3E, 0x07, 0x37, 0x36, 0xA7, 0x58, 0x01, + 0x46, 0x3A, 0x40, 0x40, 0x02, 0x12, 0x0F, 0x10, 0x04, 0x0B, 0x04, 0x1A, 0x01, 0x6A, 0x16, 0x20, 0x0E, 0x55, 0x50, 0x2E, 0x0A, 0x0C, 0x40, 0x09, 0x01, + 0x08, 0x08, 0x14, 0x14, 0x27, 0x25, 0x3F, 0x1E, 0x12, 0x8B, 0x4A, 0x07, 0x02, 0x38, 0x40, 0x58, 0x43, 0x02, 0x0D, 0x0A, 0x0A, 0x0A, 0x44, 0x01, 0x3A, + 0x1C, 0x16, 0x13, 0x1B, 0x9F, 0x61, 0x03, 0x35, 0x13, 0x14, 0x09, 0x0E, 0x10, 0x0C, 0x17, 0x12, 0x23, 0x1F, 0x38, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x05, + 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x23, 0x00, 0x34, 0x00, 0x3F, 0x00, 0x4A, 0x00, 0x55, 0x00, 0x00, 0x25, 0x22, 0x26, 0x22, 0x06, + 0x22, 0x26, 0x23, 0x22, 0x06, 0x23, 0x22, 0x26, 0x22, 0x06, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x33, 0x35, + 0x33, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x21, 0x35, 0x32, 0x36, 0x32, 0x16, 0x32, 0x36, 0x32, 0x16, 0x32, 0x36, 0x33, 0x32, 0x16, 0x33, 0x01, 0x22, + 0x26, 0x35, 0x34, 0x36, 0x35, 0x32, 0x16, 0x14, 0x06, 0x33, 0x22, 0x26, 0x35, 0x34, 0x36, 0x35, 0x32, 0x16, 0x14, 0x06, 0x33, 0x22, 0x26, 0x35, 0x34, + 0x36, 0x35, 0x32, 0x16, 0x14, 0x06, 0x01, 0xC0, 0x0C, 0x27, 0x2F, 0x27, 0x18, 0x27, 0x18, 0x17, 0x28, 0x0B, 0x0D, 0x27, 0x2F, 0x27, 0x0C, 0x1C, 0x14, + 0x10, 0x40, 0x40, 0x40, 0x40, 0x40, 0x10, 0x14, 0x1C, 0xFE, 0x40, 0x18, 0x27, 0x18, 0x27, 0x2F, 0x27, 0x18, 0x27, 0x2F, 0x27, 0x0D, 0x0B, 0x27, 0x18, + 0xFE, 0xA0, 0x0D, 0x13, 0x20, 0x0A, 0x16, 0x12, 0x72, 0x0D, 0x13, 0x20, 0x0A, 0x16, 0x12, 0x72, 0x0D, 0x13, 0x20, 0x0A, 0x16, 0x12, 0x40, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x50, 0x14, 0x1C, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x1C, 0x14, 0xD0, 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x40, + 0x13, 0x0D, 0x0E, 0x1C, 0x16, 0x25, 0x26, 0x15, 0x13, 0x0D, 0x0E, 0x1C, 0x16, 0x25, 0x26, 0x15, 0x13, 0x0D, 0x0E, 0x1C, 0x16, 0x25, 0x26, 0x15, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x00, 0x25, 0x32, 0x1D, 0x01, 0x14, 0x23, 0x21, 0x22, + 0x35, 0x11, 0x34, 0x3B, 0x01, 0x32, 0x15, 0x11, 0x25, 0x36, 0x16, 0x1F, 0x01, 0x21, 0x35, 0x37, 0x3E, 0x01, 0x1F, 0x01, 0x01, 0xF4, 0x0C, 0x0C, 0xFE, + 0x18, 0x0C, 0x0C, 0x28, 0x0C, 0x01, 0x35, 0x04, 0x0B, 0x02, 0x5A, 0xFE, 0x80, 0x57, 0x03, 0x0D, 0x04, 0x55, 0x40, 0x0C, 0x28, 0x0C, 0x0C, 0x01, 0x68, + 0x0C, 0x0C, 0xFE, 0xCC, 0xE0, 0x04, 0x03, 0x05, 0xBC, 0x68, 0x91, 0x05, 0x01, 0x05, 0x72, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFC, 0xFF, 0xBE, 0x02, + 0x21, 0x01, 0xC1, 0x00, 0x08, 0x00, 0x13, 0x00, 0x23, 0x00, 0x00, 0x25, 0x32, 0x16, 0x07, 0x06, 0x07, 0x06, 0x2F, 0x01, 0x37, 0x14, 0x06, 0x2B, 0x01, + 0x35, 0x34, 0x36, 0x33, 0x1E, 0x01, 0x05, 0x17, 0x16, 0x06, 0x07, 0x06, 0x07, 0x06, 0x26, 0x27, 0x26, 0x36, 0x37, 0x36, 0x16, 0x15, 0x02, 0x10, 0x07, + 0x0A, 0x01, 0x0C, 0x3D, 0x0B, 0x0B, 0x9F, 0xDE, 0x09, 0x07, 0xE0, 0x0A, 0x07, 0x59, 0x80, 0xFE, 0xE6, 0x9C, 0x05, 0x01, 0x06, 0x3C, 0x4B, 0x60, 0x90, + 0x03, 0x03, 0x77, 0x5A, 0x07, 0x0B, 0xA0, 0x0B, 0x07, 0x53, 0x3A, 0x0A, 0x0B, 0x9E, 0x41, 0x07, 0x0A, 0xE0, 0x07, 0x09, 0x06, 0x80, 0x9A, 0x9C, 0x05, + 0x0F, 0x04, 0x2B, 0x01, 0x01, 0x89, 0x60, 0x5C, 0x8D, 0x0C, 0x01, 0x09, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x14, + 0x00, 0x32, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, + 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, + 0x37, 0x27, 0x26, 0x36, 0x33, 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x30, 0x0D, 0x13, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x90, 0x07, 0x09, 0x1E, + 0x0B, 0x20, 0x60, 0x0A, 0x1A, 0x0A, 0x49, 0x2E, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x44, 0x0A, 0x1A, 0x0A, 0x49, 0x49, 0x20, 0x0B, 0x0C, 0x10, 0x40, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x13, 0x0D, 0x01, 0x50, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xD0, 0x01, 0x20, 0x09, 0x07, 0x76, 0x10, 0x0C, 0x0B, 0x20, 0x60, 0x09, + 0x09, 0x4A, 0x2E, 0x0C, 0x0C, 0x16, 0x0C, 0x0B, 0x45, 0x09, 0x09, 0x4A, 0x4A, 0x20, 0x0B, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x40, 0x01, 0x80, 0x00, 0x0B, 0x00, 0x13, 0x00, 0x1D, 0x00, 0x00, 0x01, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, 0x33, 0x06, + 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x13, 0x32, 0x36, 0x34, 0x26, 0x2B, 0x01, 0x16, 0x14, 0x07, 0x01, 0x80, 0x50, 0x70, 0x70, 0x50, 0xC0, 0x50, + 0x70, 0x70, 0x50, 0x80, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0xF5, 0x35, 0x4B, 0x4B, 0x35, 0x31, 0x31, 0x31, 0x01, 0x80, 0x70, 0xA0, 0x70, 0x70, 0xA0, 0x70, + 0x8B, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0xFF, 0x00, 0x4B, 0x6A, 0x4B, 0x37, 0x92, 0x37, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x01, 0x80, + 0x00, 0x0B, 0x00, 0x13, 0x00, 0x00, 0x01, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, 0x33, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x01, 0x80, 0x50, 0x70, 0x70, 0x50, 0xC0, 0x50, 0x70, 0x70, 0x50, 0x8B, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x01, 0x80, 0x70, 0xA0, 0x70, 0x70, 0xA0, + 0x70, 0xFE, 0xC0, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x00, 0x05, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x81, 0x01, 0x80, 0x00, 0x37, 0x00, 0x3B, 0x00, 0x4A, 0x00, + 0x50, 0x00, 0x66, 0x00, 0x00, 0x01, 0x32, 0x16, 0x07, 0x0E, 0x01, 0x27, 0x2E, 0x01, 0x35, 0x34, 0x37, 0x27, 0x07, 0x06, 0x2B, 0x01, 0x0E, 0x01, 0x23, + 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x37, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x27, 0x23, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x36, 0x05, 0x07, 0x33, 0x26, 0x07, 0x32, 0x36, 0x37, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x26, + 0x23, 0x22, 0x06, 0x14, 0x16, 0x3F, 0x01, 0x23, 0x07, 0x16, 0x1F, 0x01, 0x16, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x17, 0x16, 0x06, 0x0F, 0x01, + 0x06, 0x26, 0x2F, 0x01, 0x06, 0x17, 0x1E, 0x01, 0x02, 0x01, 0x35, 0x4B, 0x01, 0x01, 0x4B, 0x35, 0x34, 0x4B, 0x29, 0x0F, 0x56, 0x07, 0x0D, 0x34, 0x0B, + 0x45, 0x2C, 0x35, 0x4B, 0x4C, 0x34, 0x17, 0x14, 0x1E, 0x31, 0x0A, 0x0E, 0x0E, 0x0B, 0x57, 0x07, 0x09, 0x72, 0x0F, 0x33, 0x07, 0x09, 0x09, 0x07, 0x40, + 0x0D, 0x07, 0x4E, 0x16, 0xFE, 0xD3, 0x18, 0x2B, 0x04, 0x4A, 0x18, 0x28, 0x09, 0x51, 0x0E, 0x0E, 0x08, 0x2D, 0x08, 0x09, 0x21, 0x2F, 0x2F, 0xC4, 0x4A, + 0x80, 0x18, 0x24, 0x06, 0xFD, 0x22, 0x32, 0x2F, 0x21, 0x0A, 0x0A, 0x2D, 0x03, 0x03, 0x06, 0x0D, 0x06, 0x0D, 0x03, 0x2D, 0x14, 0x01, 0x01, 0x2C, 0x01, + 0x00, 0x4D, 0x35, 0x35, 0x4A, 0x01, 0x01, 0x4B, 0x34, 0x38, 0x26, 0x18, 0x8B, 0x0B, 0x2A, 0x36, 0x4B, 0x36, 0x34, 0x4B, 0x08, 0x30, 0x0E, 0x0A, 0x0A, + 0x0E, 0x09, 0x07, 0x10, 0x18, 0x09, 0x07, 0x10, 0x07, 0x09, 0x0B, 0x7D, 0x08, 0x4A, 0x26, 0x16, 0x76, 0x1A, 0x16, 0x19, 0x0C, 0x49, 0x02, 0x2F, 0x42, + 0x2F, 0x60, 0x78, 0x28, 0x20, 0x30, 0x60, 0x02, 0x30, 0x22, 0x21, 0x2F, 0x02, 0x48, 0x06, 0x0D, 0x03, 0x09, 0x03, 0x03, 0x06, 0x47, 0x18, 0x1F, 0x1F, + 0x2C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x34, 0x00, 0x3C, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x00, 0x01, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, + 0x1D, 0x01, 0x00, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, 0x21, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x23, 0x21, 0x22, 0x06, 0x1D, 0x01, 0x14, + 0x16, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xE8, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x0E, 0x0C, 0x06, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0xC0, + 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x0D, 0x13, 0x08, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x82, 0xBC, 0x82, 0xFE, 0x83, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x30, 0x01, + 0x00, 0x0D, 0x13, 0x13, 0x0D, 0xFF, 0x00, 0x0D, 0x13, 0x13, 0x01, 0x10, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0x40, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0xA6, + 0x0B, 0x0F, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x13, 0x0D, 0xA0, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x30, 0x22, 0x2E, + 0x2E, 0x22, 0x30, 0xFE, 0xF0, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x5D, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x70, 0x13, 0x1A, 0x13, + 0x13, 0x1A, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x0F, 0x00, 0x27, 0x00, 0x3F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, + 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x17, 0x06, 0x26, 0x35, 0x34, 0x36, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x27, 0x2E, + 0x01, 0x06, 0x15, 0x14, 0x16, 0x36, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x17, 0x06, 0x26, 0x35, 0x34, 0x36, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x27, 0x2E, 0x01, + 0x06, 0x15, 0x14, 0x16, 0x36, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x01, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xAA, 0x1F, 0x3D, + 0x40, 0x1E, 0x06, 0x04, 0x11, 0x02, 0x03, 0x19, 0x52, 0x41, 0x3F, 0x53, 0x1A, 0x04, 0x03, 0x14, 0x04, 0xB9, 0x1E, 0x3E, 0x40, 0x1F, 0x05, 0x04, 0x12, + 0x01, 0x03, 0x19, 0x52, 0x41, 0x40, 0x52, 0x1B, 0x03, 0x03, 0x13, 0x04, 0x01, 0x80, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0x14, + 0x1C, 0xE0, 0x1B, 0x17, 0x25, 0x22, 0x15, 0x18, 0x04, 0x06, 0x1E, 0x03, 0x03, 0x19, 0x03, 0x34, 0x2E, 0x2F, 0x36, 0x05, 0x1C, 0x04, 0x04, 0x1B, 0x06, + 0x05, 0x1B, 0x17, 0x25, 0x22, 0x15, 0x18, 0x04, 0x06, 0x1E, 0x03, 0x03, 0x19, 0x03, 0x34, 0x2E, 0x2F, 0x36, 0x05, 0x1C, 0x04, 0x04, 0x1B, 0x06, 0x00, + 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x1C, 0x00, 0x39, 0x00, 0x00, 0x13, 0x34, 0x26, 0x2B, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x13, 0x32, 0x16, 0x15, 0x11, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x36, 0x35, 0x11, 0x34, 0x36, 0x33, 0xF8, 0x21, + 0x17, 0x70, 0x09, 0x07, 0x30, 0x07, 0x09, 0x0E, 0x0A, 0xA8, 0x38, 0x50, 0x09, 0x07, 0x30, 0x07, 0x09, 0xB8, 0x07, 0x09, 0x50, 0x38, 0xA8, 0x0A, 0x0E, + 0x09, 0x07, 0x30, 0x07, 0x09, 0x70, 0x17, 0x21, 0x09, 0x07, 0x01, 0x18, 0x17, 0x21, 0xFE, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x98, 0x0A, 0x0E, 0x50, + 0x38, 0xA8, 0x07, 0x09, 0x09, 0x07, 0x01, 0x30, 0x09, 0x07, 0xFE, 0xD8, 0x38, 0x50, 0x0E, 0x0A, 0x01, 0x18, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x21, 0x17, + 0x01, 0x28, 0x07, 0x09, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xBE, 0x02, 0x42, 0x01, 0xC0, 0x00, 0x30, 0x00, 0x54, 0x00, 0x00, 0x25, 0x21, 0x17, 0x21, + 0x32, 0x16, 0x0F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x26, 0x37, 0x23, 0x16, 0x15, 0x14, 0x06, 0x27, 0x2E, 0x01, 0x27, 0x26, 0x37, + 0x03, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1F, 0x01, 0x21, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x27, 0x23, 0x35, 0x34, 0x26, + 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x33, + 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x01, 0xF9, 0xFE, 0xDB, 0x06, 0x01, 0x0D, 0x0B, 0x0E, 0x02, 0x06, 0x20, 0x21, 0x18, 0x16, 0x20, 0x01, 0x01, 0x12, + 0xD2, 0x11, 0x23, 0x18, 0x15, 0x1F, 0x01, 0x02, 0x1E, 0x46, 0x46, 0x0A, 0x0E, 0x0E, 0x0A, 0x67, 0x08, 0x0D, 0x02, 0x09, 0x01, 0x89, 0x0C, 0x0E, 0x03, + 0x2F, 0x04, 0x74, 0x30, 0x09, 0x07, 0x10, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x09, 0x07, 0x10, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x80, + 0x20, 0x12, 0x0B, 0x19, 0x0F, 0x23, 0x17, 0x21, 0x20, 0x16, 0x19, 0x11, 0x10, 0x18, 0x18, 0x21, 0x01, 0x01, 0x1F, 0x15, 0x22, 0x12, 0x01, 0x57, 0x0E, + 0x0A, 0x10, 0x0A, 0x0E, 0x0B, 0x08, 0x2D, 0x12, 0x0B, 0xD0, 0x13, 0x98, 0x28, 0x07, 0x09, 0x09, 0x07, 0x28, 0x09, 0x07, 0x10, 0x07, 0x09, 0x28, 0x07, + 0x09, 0x09, 0x07, 0x28, 0x09, 0x07, 0x10, 0x07, 0x09, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xBE, 0x02, 0x42, 0x01, 0xC0, 0x00, 0x30, 0x00, + 0x43, 0x00, 0x00, 0x25, 0x21, 0x17, 0x21, 0x32, 0x16, 0x0F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x26, 0x37, 0x23, 0x16, 0x15, 0x14, + 0x06, 0x27, 0x2E, 0x01, 0x27, 0x26, 0x37, 0x03, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1F, 0x01, 0x21, 0x32, 0x16, 0x0F, + 0x01, 0x06, 0x27, 0x23, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x36, 0x26, 0x01, 0xF9, 0xFE, 0xDB, + 0x06, 0x01, 0x0D, 0x0B, 0x0E, 0x02, 0x06, 0x20, 0x21, 0x18, 0x16, 0x20, 0x01, 0x01, 0x12, 0xD2, 0x11, 0x23, 0x18, 0x15, 0x1F, 0x01, 0x02, 0x1E, 0x46, + 0x46, 0x0A, 0x0E, 0x0E, 0x0A, 0x67, 0x08, 0x0D, 0x02, 0x09, 0x01, 0x89, 0x0C, 0x0E, 0x03, 0x2F, 0x04, 0x79, 0x2B, 0x0C, 0x18, 0x0C, 0x2B, 0x08, 0x06, + 0x05, 0x44, 0x08, 0x08, 0x44, 0x05, 0x06, 0x80, 0x20, 0x12, 0x0B, 0x19, 0x0F, 0x23, 0x17, 0x21, 0x20, 0x16, 0x19, 0x11, 0x10, 0x18, 0x18, 0x21, 0x01, + 0x01, 0x1F, 0x15, 0x22, 0x12, 0x01, 0x57, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x0B, 0x08, 0x2D, 0x12, 0x0B, 0xD0, 0x13, 0x80, 0x3C, 0x0C, 0x0C, 0x3C, 0x0F, + 0x05, 0x44, 0x08, 0x08, 0x44, 0x05, 0x0F, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x3B, 0x00, 0x43, 0x00, 0x00, 0x25, + 0x1E, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x22, 0x27, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x26, 0x27, 0x06, 0x23, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x33, 0x32, 0x36, 0x37, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, + 0x33, 0x32, 0x16, 0x1D, 0x01, 0x17, 0x1E, 0x01, 0x07, 0x25, 0x15, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x35, 0x01, 0xF1, 0x0E, 0x3D, 0x2C, 0x0A, 0x0E, 0x0E, + 0x0A, 0x58, 0x37, 0x0B, 0x30, 0x1E, 0x80, 0x1E, 0x30, 0x0B, 0x37, 0x58, 0x0A, 0x0E, 0x0E, 0x0A, 0x2C, 0x3E, 0x0D, 0x46, 0x0C, 0x08, 0x11, 0x2A, 0x13, + 0x0D, 0x40, 0x0E, 0x0A, 0x90, 0x0A, 0x0E, 0x40, 0x0D, 0x13, 0x2A, 0x11, 0x08, 0x0C, 0xFE, 0x89, 0x76, 0x05, 0x0A, 0x05, 0x76, 0x4B, 0x22, 0x29, 0x0E, + 0x0A, 0x10, 0x0A, 0x0E, 0x3B, 0x1A, 0x21, 0x21, 0x1A, 0x3B, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x29, 0x22, 0x46, 0x0D, 0x23, 0x05, 0x0E, 0x8C, 0x0D, 0x13, + 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0x28, 0x13, 0x0D, 0x8C, 0x0E, 0x05, 0x23, 0x0D, 0xAF, 0x58, 0x26, 0x02, 0x02, 0x26, 0x58, 0x00, 0x00, 0x04, 0x00, 0x00, + 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC2, 0x00, 0x32, 0x00, 0x36, 0x00, 0x3A, 0x00, 0x56, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x37, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x26, 0x35, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x3E, 0x01, 0x1F, 0x01, 0x16, + 0x3F, 0x01, 0x36, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x14, 0x07, 0x33, 0x32, 0x16, 0x0F, 0x01, 0x37, 0x2F, 0x01, 0x17, 0x37, 0x0F, 0x01, + 0x37, 0x34, 0x37, 0x35, 0x06, 0x23, 0x22, 0x27, 0x15, 0x30, 0x33, 0x16, 0x15, 0x16, 0x17, 0x1E, 0x01, 0x32, 0x36, 0x37, 0x36, 0x32, 0x17, 0x1E, 0x01, + 0x36, 0x37, 0x36, 0x01, 0x80, 0x1D, 0x23, 0x1A, 0x13, 0xFE, 0x9A, 0x13, 0x1A, 0x25, 0x1E, 0x19, 0x04, 0x0A, 0x08, 0x3A, 0x12, 0x40, 0x46, 0x0E, 0x1B, + 0x07, 0x16, 0x0A, 0x1C, 0x0E, 0x0E, 0x1C, 0x0A, 0x16, 0x07, 0x1B, 0x0E, 0x46, 0x40, 0x12, 0x3B, 0x08, 0x0A, 0x03, 0xE8, 0x20, 0x18, 0x32, 0x8A, 0x2A, + 0x32, 0x18, 0x4A, 0x06, 0x2C, 0x34, 0x32, 0x2E, 0x01, 0x05, 0x09, 0x08, 0x04, 0x0E, 0x14, 0x14, 0x06, 0x02, 0x0E, 0x02, 0x07, 0x1D, 0x16, 0x06, 0x08, + 0x8C, 0x12, 0x3D, 0x23, 0x2D, 0x13, 0x1A, 0x1A, 0x13, 0x2D, 0x24, 0x3E, 0x12, 0x3C, 0x08, 0x0E, 0x1F, 0x21, 0x0D, 0x13, 0x14, 0x0D, 0x31, 0x22, 0x09, + 0x05, 0x05, 0x0E, 0x07, 0x07, 0x0E, 0x05, 0x05, 0x09, 0x22, 0x31, 0x0D, 0x14, 0x13, 0x0D, 0x21, 0x1F, 0x0E, 0x08, 0xEA, 0x78, 0x28, 0x20, 0xC0, 0xC0, + 0x20, 0x28, 0xB2, 0x03, 0x03, 0x0B, 0x06, 0x06, 0x0B, 0x03, 0x03, 0x19, 0x08, 0x03, 0x06, 0x11, 0x11, 0x06, 0x06, 0x15, 0x0F, 0x05, 0x06, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x81, 0x01, 0x80, 0x00, 0x47, 0x00, 0x56, 0x00, 0x6C, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x16, + 0x06, 0x27, 0x22, 0x26, 0x35, 0x34, 0x37, 0x27, 0x0E, 0x01, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x0E, 0x01, 0x23, 0x22, 0x26, 0x37, 0x3E, 0x01, 0x37, 0x36, + 0x17, 0x37, 0x26, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x33, 0x27, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x1F, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x17, 0x36, 0x05, 0x32, 0x36, 0x37, 0x23, 0x22, 0x26, 0x3F, + 0x01, 0x26, 0x23, 0x22, 0x06, 0x14, 0x16, 0x25, 0x36, 0x26, 0x23, 0x22, 0x07, 0x17, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x01, 0x06, 0x15, 0x14, + 0x16, 0x37, 0x3E, 0x01, 0x02, 0x01, 0x34, 0x4B, 0x01, 0x4C, 0x36, 0x34, 0x4B, 0x2D, 0x0D, 0x1C, 0x1D, 0x01, 0x01, 0x0F, 0x0A, 0x54, 0x0B, 0x45, 0x2C, + 0x36, 0x4B, 0x01, 0x01, 0x48, 0x32, 0x16, 0x13, 0x0C, 0x10, 0x20, 0x38, 0x0A, 0x0E, 0x0E, 0x0A, 0x38, 0x45, 0x1F, 0x9A, 0x14, 0x42, 0x07, 0x09, 0x09, + 0x07, 0x50, 0x0E, 0x07, 0x16, 0x26, 0x07, 0x0B, 0x2D, 0x0A, 0x0E, 0x0E, 0x0A, 0x52, 0x20, 0x15, 0xFE, 0x95, 0x18, 0x28, 0x09, 0x51, 0x0E, 0x0E, 0x07, + 0x29, 0x05, 0x07, 0x21, 0x2F, 0x2F, 0x01, 0xF1, 0x02, 0x30, 0x22, 0x08, 0x08, 0x31, 0x03, 0x03, 0x06, 0x0D, 0x06, 0x0D, 0x03, 0x32, 0x16, 0x32, 0x22, + 0x1F, 0x2B, 0x01, 0x00, 0x4B, 0x34, 0x36, 0x4C, 0x01, 0x4B, 0x34, 0x3B, 0x27, 0x15, 0x17, 0x42, 0x24, 0x0A, 0x0F, 0x2A, 0x36, 0x4D, 0x36, 0x33, 0x48, + 0x02, 0x01, 0x06, 0x14, 0x19, 0x0E, 0x0A, 0x0A, 0x0E, 0x28, 0x20, 0x09, 0x07, 0x10, 0x07, 0x09, 0x0C, 0x26, 0x2A, 0x08, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, + 0x37, 0x07, 0xD0, 0x1B, 0x15, 0x18, 0x0C, 0x4B, 0x01, 0x2F, 0x42, 0x2F, 0x4C, 0x22, 0x32, 0x02, 0x51, 0x05, 0x0D, 0x04, 0x08, 0x03, 0x03, 0x06, 0x52, + 0x17, 0x20, 0x22, 0x30, 0x02, 0x02, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x1B, 0x00, 0x23, 0x00, + 0x3F, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x16, 0x17, 0x15, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x32, 0x36, + 0x35, 0x34, 0x26, 0x27, 0x35, 0x36, 0x26, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x32, + 0x37, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x01, 0x70, 0x41, 0x4F, 0x96, 0xD4, 0x96, 0x4F, + 0x41, 0x08, 0x08, 0x33, 0x3D, 0x7A, 0xAC, 0x7A, 0x3D, 0x33, 0x08, 0x4D, 0x36, 0x25, 0x25, 0x36, 0x25, 0x80, 0x0D, 0x13, 0x1C, 0x14, 0x0C, 0x11, 0x26, + 0x11, 0x0C, 0x14, 0x1C, 0x13, 0x0D, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x76, 0x0C, 0x2E, 0x1C, 0x28, 0x38, 0x38, 0x28, 0x1C, 0x2E, 0x0C, 0x09, 0x04, 0x17, + 0x07, 0x1B, 0x10, 0x17, 0x21, 0x21, 0x17, 0x10, 0x1B, 0x07, 0x17, 0x04, 0xD3, 0x25, 0x36, 0x25, 0x25, 0x36, 0xE5, 0x13, 0x0D, 0x60, 0x14, 0x1C, 0x08, + 0x08, 0x1C, 0x14, 0x60, 0x0D, 0x13, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x00, 0x02, 0xFF, 0xFE, 0xFF, 0xE0, 0x02, 0x02, 0x01, 0xA1, 0x00, 0x0D, 0x00, 0x29, + 0x00, 0x00, 0x25, 0x17, 0x33, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x33, 0x37, 0x17, 0x16, 0x32, 0x37, 0x13, 0x1E, 0x01, 0x07, 0x23, 0x27, 0x26, 0x22, 0x0F, + 0x01, 0x27, 0x26, 0x22, 0x0F, 0x01, 0x23, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x17, 0x01, 0x40, 0x16, 0x6D, 0xB6, 0x06, + 0x0F, 0x05, 0xB6, 0x5E, 0x1E, 0x39, 0x04, 0x14, 0x04, 0xCC, 0x24, 0x04, 0x21, 0x77, 0x1C, 0x04, 0x14, 0x04, 0x31, 0x3A, 0x05, 0x15, 0x04, 0x24, 0x66, + 0x21, 0x04, 0x24, 0x03, 0x26, 0x6E, 0x27, 0x1C, 0x1C, 0x27, 0x6E, 0x26, 0xCC, 0x2C, 0xBA, 0x06, 0x06, 0xBA, 0x48, 0x7F, 0x09, 0x09, 0x01, 0x0D, 0x25, + 0x69, 0x28, 0x37, 0x09, 0x09, 0x62, 0x82, 0x09, 0x0A, 0x56, 0x28, 0x69, 0x25, 0x02, 0x28, 0x28, 0x1C, 0x1D, 0x27, 0x27, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xFF, 0xE0, 0x01, 0x20, 0x01, 0xA0, 0x00, 0x21, 0x00, 0x29, 0x00, 0x00, 0x01, 0x14, 0x06, 0x07, 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, + 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x06, 0x14, 0x16, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x01, 0x20, 0x3F, 0x31, 0x24, 0x0C, 0x0C, 0x24, 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x31, 0x3F, 0x54, 0x78, 0x54, + 0xE0, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x01, 0x10, 0x33, 0x4E, 0x0B, 0x34, 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x0C, 0x28, 0x0C, 0x34, 0x0B, 0x4E, + 0x33, 0x3C, 0x54, 0x54, 0x1B, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x00, 0x18, + 0x00, 0x20, 0x00, 0x00, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, 0x07, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x37, + 0x27, 0x26, 0x36, 0x33, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x74, 0x0C, 0x0F, 0x05, 0x11, 0x51, 0x16, 0x54, 0x78, 0x54, 0x54, 0x3C, + 0x2A, 0x23, 0x50, 0x11, 0x05, 0x06, 0x08, 0xB6, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0x80, 0x0C, 0x4F, 0x08, 0x06, 0x05, 0x11, 0x50, 0x23, 0x2A, 0x3C, + 0x54, 0x54, 0x78, 0x54, 0x16, 0x51, 0x11, 0x05, 0x0F, 0xFE, 0xC0, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x20, + 0x01, 0xC0, 0x00, 0x3B, 0x00, 0x43, 0x00, 0x00, 0x25, 0x14, 0x06, 0x07, 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, + 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x35, 0x34, 0x37, 0x26, 0x27, 0x26, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x17, + 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x07, 0x06, 0x07, 0x06, 0x07, 0x16, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x01, 0x20, 0x3F, 0x31, 0x24, 0x0C, 0x0C, 0x24, 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x31, 0x3F, 0x33, 0x04, 0x03, 0x26, 0x05, 0x01, 0x07, + 0x06, 0x28, 0x0A, 0x02, 0x04, 0x11, 0x17, 0x46, 0x17, 0x11, 0x04, 0x02, 0x0A, 0x28, 0x06, 0x07, 0x01, 0x05, 0x26, 0x04, 0x03, 0x33, 0xE0, 0x2F, 0x42, + 0x2F, 0x2F, 0x42, 0xF0, 0x33, 0x4E, 0x0B, 0x34, 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x0C, 0x28, 0x0C, 0x34, 0x0B, 0x4E, 0x33, 0x43, 0x2B, 0x03, + 0x03, 0x20, 0x2F, 0x05, 0x08, 0x0A, 0x13, 0x0F, 0x14, 0x14, 0x0F, 0x13, 0x0A, 0x08, 0x05, 0x2F, 0x20, 0x04, 0x02, 0x2B, 0x22, 0x42, 0x2F, 0x2F, 0x42, + 0x2F, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x31, 0x00, 0x39, 0x00, 0x00, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, + 0x07, 0x16, 0x15, 0x14, 0x06, 0x07, 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, + 0x34, 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x37, 0x27, 0x26, 0x36, 0x33, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, + 0x01, 0x74, 0x0C, 0x0F, 0x05, 0x11, 0x51, 0x16, 0x3F, 0x31, 0x24, 0x0C, 0x0C, 0x24, 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x31, 0x3F, 0x54, 0x3C, + 0x2A, 0x23, 0x50, 0x11, 0x05, 0x06, 0x08, 0xB6, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0xC0, 0x0C, 0x4F, 0x08, 0x06, 0x05, 0x11, 0x50, 0x23, 0x2A, 0x33, + 0x4E, 0x0B, 0x1C, 0x0C, 0x28, 0x0C, 0x1C, 0x0C, 0x0C, 0x1C, 0x0C, 0x28, 0x0C, 0x1C, 0x0B, 0x4E, 0x33, 0x3C, 0x54, 0x16, 0x51, 0x11, 0x05, 0x0F, 0xFE, + 0xC0, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xE0, 0x01, 0xC0, 0x00, 0x4F, 0x00, 0x57, 0x00, 0x00, 0x01, 0x32, + 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, 0x07, 0x16, 0x15, 0x14, 0x06, 0x07, 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, + 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x35, 0x34, 0x37, 0x27, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x27, 0x07, + 0x06, 0x26, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x17, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x17, 0x36, 0x32, 0x17, 0x37, 0x27, + 0x26, 0x36, 0x33, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xD4, 0x0C, 0x0F, 0x05, 0x11, 0x51, 0x16, 0x3F, 0x31, 0x24, 0x0C, 0x0C, 0x24, + 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x31, 0x3F, 0x16, 0x10, 0x14, 0x09, 0x08, 0x1C, 0x09, 0x09, 0x13, 0x13, 0x11, 0x05, 0x0F, 0x0C, 0x4F, 0x08, + 0x06, 0x06, 0x11, 0x14, 0x13, 0x09, 0x08, 0x1D, 0x08, 0x08, 0x14, 0x10, 0x23, 0x54, 0x23, 0x50, 0x11, 0x05, 0x06, 0x08, 0xB6, 0x42, 0x2F, 0x2F, 0x42, + 0x2F, 0x01, 0xC0, 0x0C, 0x4F, 0x08, 0x06, 0x05, 0x11, 0x50, 0x23, 0x2A, 0x33, 0x4E, 0x0B, 0x1C, 0x0C, 0x28, 0x0C, 0x1C, 0x0C, 0x0C, 0x1C, 0x0C, 0x28, + 0x0C, 0x1C, 0x0B, 0x4E, 0x33, 0x2A, 0x23, 0x10, 0x14, 0x08, 0x08, 0x1D, 0x08, 0x09, 0x13, 0x13, 0x11, 0x05, 0x06, 0x08, 0x4F, 0x0C, 0x0F, 0x05, 0x11, + 0x13, 0x14, 0x08, 0x08, 0x1D, 0x08, 0x09, 0x14, 0x10, 0x16, 0x16, 0x51, 0x11, 0x05, 0x0F, 0xFE, 0xC0, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x00, 0x03, 0x00, + 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x21, 0x00, 0x29, 0x00, 0x57, 0x00, 0x00, 0x01, 0x14, 0x06, 0x07, 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, + 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x06, + 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x05, 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x23, 0x22, + 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x26, 0x27, 0x36, 0x37, 0x16, 0x33, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x07, 0x26, 0x27, 0x36, 0x33, 0x32, 0x16, + 0x15, 0x14, 0x06, 0x01, 0x20, 0x3F, 0x31, 0x24, 0x0C, 0x0C, 0x24, 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x31, 0x3F, 0x54, 0x78, 0x54, 0xE0, 0x2F, + 0x42, 0x2F, 0x2F, 0x42, 0x01, 0x21, 0x24, 0x0C, 0x0C, 0x24, 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x1F, 0x1A, 0x15, 0x0B, 0x17, 0x22, 0x21, 0x2F, + 0x2F, 0x21, 0x22, 0x17, 0x0B, 0x15, 0x27, 0x32, 0x3C, 0x54, 0x3F, 0x01, 0x10, 0x33, 0x4E, 0x0B, 0x34, 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x0C, + 0x28, 0x0C, 0x34, 0x0B, 0x4E, 0x33, 0x3C, 0x54, 0x54, 0x1B, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0xDC, 0x34, 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x0C, + 0x28, 0x0C, 0x34, 0x07, 0x14, 0x1A, 0x1F, 0x18, 0x2F, 0x42, 0x2F, 0x18, 0x20, 0x19, 0x1F, 0x54, 0x3C, 0x33, 0x4E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x19, 0x00, 0x21, 0x00, 0x4B, 0x00, 0x00, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x2F, 0x01, 0x07, 0x16, + 0x15, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x37, 0x27, 0x26, 0x36, 0x33, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x25, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x2F, 0x01, 0x07, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x36, 0x37, 0x14, 0x15, 0x14, 0x16, 0x32, 0x36, + 0x34, 0x26, 0x23, 0x30, 0x22, 0x31, 0x36, 0x37, 0x16, 0x17, 0x37, 0x27, 0x26, 0x36, 0x33, 0x01, 0x54, 0x0C, 0x07, 0x0A, 0x03, 0x11, 0x31, 0x16, 0x54, + 0x78, 0x54, 0x54, 0x3C, 0x2A, 0x23, 0x30, 0x11, 0x05, 0x06, 0x08, 0x96, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0xB4, 0x05, 0x07, 0x07, 0x0A, 0x03, 0x11, + 0x31, 0x16, 0x54, 0x3C, 0x38, 0x51, 0x06, 0x21, 0x1E, 0x2F, 0x42, 0x2F, 0x2F, 0x21, 0x03, 0x0F, 0x03, 0x21, 0x1D, 0x30, 0x11, 0x05, 0x06, 0x08, 0x01, + 0xC0, 0x0C, 0x4F, 0x05, 0x07, 0x03, 0x11, 0x30, 0x23, 0x2A, 0x3C, 0x54, 0x54, 0x78, 0x54, 0x16, 0x31, 0x11, 0x05, 0x0F, 0xFE, 0xE0, 0x2F, 0x42, 0x2F, + 0x2F, 0x42, 0x51, 0x07, 0x05, 0x4F, 0x05, 0x07, 0x03, 0x11, 0x30, 0x23, 0x2A, 0x3C, 0x54, 0x4A, 0x37, 0x03, 0x0F, 0x01, 0x02, 0x21, 0x2F, 0x2F, 0x42, + 0x2F, 0x1E, 0x21, 0x03, 0x12, 0x31, 0x11, 0x05, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x26, 0x00, + 0x48, 0x00, 0x50, 0x00, 0x00, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x2F, 0x01, 0x07, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x27, 0x36, 0x37, 0x16, + 0x33, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x07, 0x26, 0x27, 0x36, 0x33, 0x32, 0x17, 0x37, 0x27, 0x26, 0x36, 0x33, 0x04, 0x32, 0x16, 0x15, 0x14, 0x06, + 0x07, 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x2E, + 0x01, 0x35, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x34, 0x0C, 0x07, 0x0A, 0x03, 0x11, 0x31, 0x16, 0x54, 0x3C, 0x32, 0x27, 0x15, + 0x0B, 0x17, 0x22, 0x21, 0x2F, 0x2F, 0x21, 0x22, 0x17, 0x0B, 0x15, 0x27, 0x32, 0x2A, 0x23, 0x30, 0x11, 0x05, 0x06, 0x08, 0xFE, 0x6F, 0x78, 0x54, 0x3F, + 0x31, 0x24, 0x0C, 0x0C, 0x24, 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x31, 0x3F, 0x6F, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0xC0, 0x0C, 0x4F, 0x05, + 0x07, 0x03, 0x11, 0x30, 0x23, 0x2A, 0x3C, 0x54, 0x1F, 0x19, 0x20, 0x18, 0x2F, 0x42, 0x2F, 0x18, 0x1F, 0x1A, 0x1F, 0x16, 0x31, 0x11, 0x05, 0x0F, 0x40, + 0x54, 0x3C, 0x33, 0x4E, 0x0B, 0x34, 0x0C, 0x28, 0x0C, 0x24, 0x0C, 0x0C, 0x24, 0x0C, 0x28, 0x0C, 0x34, 0x0B, 0x4E, 0x33, 0x3C, 0x8C, 0x2F, 0x42, 0x2F, + 0x2F, 0x42, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0x01, 0x80, 0x00, 0x2A, 0x00, 0x32, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x2F, 0x01, 0x07, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x07, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x37, + 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x37, 0x27, 0x26, 0x36, 0x33, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x74, 0x05, 0x07, 0x0F, + 0x05, 0x11, 0x12, 0x0E, 0x09, 0x09, 0x1C, 0x09, 0x08, 0x0E, 0x12, 0x16, 0x54, 0x78, 0x54, 0x54, 0x3C, 0x2A, 0x23, 0x12, 0x0F, 0x08, 0x08, 0x1D, 0x08, + 0x09, 0x0E, 0x11, 0x11, 0x05, 0x06, 0x08, 0xB6, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0x80, 0x07, 0x05, 0x4F, 0x08, 0x06, 0x06, 0x11, 0x12, 0x0E, 0x09, + 0x08, 0x1C, 0x09, 0x09, 0x0E, 0x12, 0x23, 0x2A, 0x3C, 0x54, 0x54, 0x3C, 0x3C, 0x54, 0x16, 0x12, 0x0E, 0x08, 0x09, 0x1C, 0x09, 0x09, 0x0E, 0x12, 0x11, + 0x05, 0x0F, 0xFE, 0xC0, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0x21, 0x01, 0xC4, 0x00, 0x2C, 0x00, 0x34, 0x00, 0x00, + 0x37, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x37, 0x36, 0x37, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3F, + 0x01, 0x36, 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x16, 0x06, 0x36, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x16, 0xF6, 0x2A, 0x54, 0x78, 0x54, 0x2A, 0x1E, 0x28, 0x14, 0x05, 0x07, 0x07, 0x05, 0x14, 0x18, 0x08, 0x06, 0x06, 0x38, 0x08, 0x08, 0x38, + 0x06, 0x06, 0x08, 0x18, 0x14, 0x05, 0x07, 0x07, 0x05, 0x14, 0x28, 0x27, 0x2F, 0x2F, 0x42, 0x2F, 0x2F, 0xD6, 0x2A, 0x78, 0x54, 0x54, 0x78, 0x2A, 0x1D, + 0x09, 0x1A, 0x07, 0x05, 0x28, 0x05, 0x07, 0x18, 0x0F, 0x06, 0x38, 0x08, 0x08, 0x38, 0x06, 0x0E, 0x19, 0x07, 0x05, 0x28, 0x05, 0x07, 0x1A, 0x09, 0xD3, + 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x30, 0x01, 0xE5, 0x01, 0x50, 0x00, 0x28, 0x00, 0x30, 0x00, 0x00, 0x25, 0x16, + 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x23, 0x06, 0x07, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x17, 0x16, + 0x17, 0x33, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x17, 0x06, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x01, 0xDC, 0x09, + 0x09, 0x38, 0x05, 0x0F, 0x18, 0x0C, 0x28, 0x0C, 0x1C, 0x09, 0x1D, 0x2A, 0x78, 0x54, 0x54, 0x78, 0x2A, 0x1D, 0x09, 0x1C, 0x0C, 0x28, 0x0C, 0x18, 0x0F, + 0x05, 0xF3, 0x2F, 0x2F, 0x42, 0x2F, 0x2F, 0xC8, 0x08, 0x08, 0x38, 0x06, 0x06, 0x08, 0x18, 0x14, 0x0C, 0x0C, 0x14, 0x28, 0x1E, 0x2A, 0x54, 0x78, 0x54, + 0x2A, 0x1E, 0x28, 0x14, 0x0C, 0x0C, 0x14, 0x18, 0x08, 0x06, 0x06, 0x90, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, + 0x20, 0x01, 0xA0, 0x00, 0x11, 0x00, 0x19, 0x00, 0x00, 0x01, 0x14, 0x06, 0x07, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x2E, 0x01, 0x35, 0x34, 0x36, + 0x32, 0x16, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x20, 0x3F, 0x31, 0x0C, 0x28, 0x0C, 0x31, 0x3F, 0x54, 0x78, 0x54, 0xB1, 0x42, 0x2F, + 0x2F, 0x42, 0x2F, 0x01, 0x10, 0x33, 0x4E, 0x0B, 0x98, 0x0C, 0x0C, 0x98, 0x0B, 0x4E, 0x33, 0x3C, 0x54, 0x54, 0x8C, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x30, 0x01, 0x20, 0x01, 0x50, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x00, 0x12, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, + 0x34, 0x26, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0xB1, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x8C, 0x78, 0x54, 0x54, 0x78, 0x54, 0x01, 0x10, 0x2F, 0x42, + 0x2F, 0x2F, 0x42, 0x6F, 0x54, 0x78, 0x54, 0x54, 0x78, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, + 0x17, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x57, 0x00, 0x5F, 0x00, 0x00, 0x01, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, + 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x26, 0x22, 0x06, + 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x01, 0xE0, 0xFE, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0xC0, 0x0D, 0x13, + 0x13, 0x33, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x4E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x58, 0xFE, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0xC0, 0x0D, 0x13, 0x13, + 0x33, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x4E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x58, 0xFE, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0xC0, 0x0D, 0x13, 0x13, 0x33, + 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x4E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x01, 0x20, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x58, 0x0E, + 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0xEA, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x58, 0x0E, 0x14, 0x0E, + 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0xEA, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x58, 0x0E, 0x14, 0x0E, 0x0E, 0x14, + 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x23, 0x00, 0x2B, 0x00, 0x3F, + 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x04, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x32, 0x37, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0x40, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0xFE, 0xE5, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x26, 0x37, 0x4F, 0x1C, + 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x4F, 0x37, 0x11, 0x23, 0x4C, 0x23, 0xF0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x30, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x6B, 0x4F, 0x37, 0x2A, 0x14, 0x1C, 0x1C, 0x14, 0x2A, 0x37, + 0x4F, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x87, 0x01, 0xC0, 0x00, 0x1B, 0x00, 0x23, 0x00, 0x37, 0x00, 0x00, 0x25, + 0x17, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x37, 0x36, 0x1F, 0x01, + 0x16, 0x07, 0x04, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x16, 0x32, 0x37, 0x02, 0x4E, 0x2D, 0x0C, 0x0C, 0x17, 0x0B, 0x0B, 0x2E, 0x2E, 0x0B, 0x0B, 0x17, 0x0C, 0x0C, 0x2D, 0x2D, 0x0C, 0x0C, 0x17, + 0x0B, 0x0B, 0x2E, 0x2E, 0x0B, 0x0B, 0x17, 0x0C, 0x0C, 0xFE, 0x9A, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x26, 0x37, 0x4F, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, + 0x4F, 0x37, 0x11, 0x23, 0x4C, 0x23, 0xD0, 0x2E, 0x0B, 0x0B, 0x17, 0x0C, 0x0C, 0x2D, 0x2D, 0x0C, 0x0C, 0x17, 0x0B, 0x0B, 0x2E, 0x2E, 0x0B, 0x0B, 0x17, + 0x0C, 0x0C, 0x2D, 0x2D, 0x0C, 0x0C, 0x17, 0x0B, 0x0B, 0x3E, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x6B, 0x4F, 0x37, 0x2A, 0x14, 0x1C, 0x1C, 0x14, 0x2A, 0x37, + 0x4F, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x01, 0x80, 0x00, 0x07, 0x00, 0x2B, 0x00, 0x00, 0x36, 0x22, 0x26, 0x34, 0x36, 0x32, + 0x16, 0x14, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x33, 0xD1, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0x10, 0x2E, 0x42, 0x09, 0x07, + 0x20, 0x07, 0x09, 0xFE, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xE0, 0x09, 0x07, 0xC0, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x51, + 0x42, 0x2E, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0x09, 0x07, 0x01, 0x60, 0x07, 0x09, 0x09, 0x07, 0xD0, 0x90, 0x07, 0x09, 0x00, 0x03, + 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x17, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x00, 0x01, 0x11, 0x14, 0x06, 0x23, 0x17, 0x16, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x3F, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x07, 0x35, 0x34, 0x26, 0x23, 0x21, 0x22, 0x06, 0x1D, 0x01, + 0x14, 0x16, 0x33, 0x21, 0x32, 0x36, 0x06, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x01, 0xC0, 0x4E, 0x34, 0x3F, 0x04, 0x03, 0x06, 0xFE, 0xD0, 0x06, + 0x03, 0x04, 0x3F, 0x34, 0x4E, 0x4F, 0x31, 0xC0, 0x32, 0x4E, 0x30, 0x0E, 0x0A, 0xFE, 0xD0, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x30, 0x0A, 0x0E, 0x99, 0x2E, + 0x21, 0x21, 0x2E, 0x21, 0x01, 0x60, 0xFF, 0x00, 0x27, 0x39, 0x32, 0x03, 0x0B, 0x0B, 0x03, 0x32, 0x39, 0x27, 0x01, 0x00, 0x27, 0x39, 0x39, 0xAF, 0x70, + 0x0A, 0x0E, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x0E, 0x36, 0x21, 0x2E, 0x21, 0x21, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, + 0x01, 0xC0, 0x00, 0x17, 0x00, 0x27, 0x00, 0x37, 0x00, 0x3F, 0x00, 0x47, 0x00, 0x00, 0x01, 0x11, 0x14, 0x06, 0x23, 0x17, 0x16, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x3F, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x07, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, + 0x3B, 0x01, 0x32, 0x36, 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x06, 0x22, 0x06, 0x14, 0x16, + 0x32, 0x36, 0x34, 0x24, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x01, 0xC0, 0x4E, 0x34, 0x3F, 0x04, 0x03, 0x06, 0xFE, 0xD0, 0x06, 0x03, 0x04, 0x3F, + 0x34, 0x4E, 0x4F, 0x31, 0xC0, 0x32, 0x4E, 0xF8, 0x0E, 0x0A, 0x68, 0x0A, 0x0E, 0x0E, 0x0A, 0x68, 0x0A, 0x0E, 0xC8, 0x0E, 0x0A, 0x68, 0x0A, 0x0E, 0x0E, + 0x0A, 0x68, 0x0A, 0x0E, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xFE, 0xE4, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0x60, 0xFF, 0x00, 0x27, 0x39, 0x32, 0x03, + 0x0B, 0x0B, 0x03, 0x32, 0x39, 0x27, 0x01, 0x00, 0x27, 0x39, 0x39, 0xAF, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, + 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x0E, 0x2E, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x20, 0x02, 0x80, 0x01, 0x60, 0x00, 0x07, 0x00, 0x21, 0x00, 0x25, 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0x35, 0x33, 0x35, 0x23, 0x37, 0x32, 0x16, + 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x05, 0x15, + 0x21, 0x35, 0x02, 0x20, 0xFE, 0x20, 0x01, 0xE0, 0x20, 0x20, 0x10, 0x14, 0x1C, 0x08, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x1C, 0x14, 0xFE, 0x00, 0x14, 0x1C, + 0x1C, 0x14, 0x01, 0xD0, 0xFE, 0x60, 0x01, 0x20, 0xC0, 0x40, 0x40, 0x80, 0x1C, 0x14, 0x10, 0x0E, 0x0A, 0x90, 0x0A, 0x0E, 0x10, 0x14, 0x1C, 0x1C, 0x14, + 0xE0, 0x14, 0x1C, 0x60, 0x80, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x02, 0x80, 0x01, 0x60, 0x00, 0x07, 0x00, 0x21, 0x00, 0x25, 0x00, + 0x00, 0x01, 0x21, 0x15, 0x21, 0x35, 0x33, 0x35, 0x23, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, + 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x05, 0x15, 0x21, 0x35, 0x02, 0x20, 0xFE, 0x20, 0x01, 0xE0, 0x20, 0x20, 0x10, 0x14, 0x1C, + 0x08, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x1C, 0x14, 0xFE, 0x00, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x70, 0xFE, 0xC0, 0x01, 0x20, 0xC0, 0x40, 0x40, 0x80, 0x1C, + 0x14, 0x10, 0x0E, 0x0A, 0x90, 0x0A, 0x0E, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x60, 0x80, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x02, 0x80, 0x01, 0x60, 0x00, 0x07, 0x00, 0x21, 0x00, 0x25, 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0x35, 0x33, 0x35, 0x23, 0x37, 0x32, 0x16, 0x1D, + 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x05, 0x15, 0x23, + 0x35, 0x02, 0x20, 0xFE, 0x20, 0x01, 0xE0, 0x20, 0x20, 0x10, 0x14, 0x1C, 0x08, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x1C, 0x14, 0xFE, 0x00, 0x14, 0x1C, 0x1C, + 0x14, 0x01, 0x10, 0xE0, 0x01, 0x20, 0xC0, 0x40, 0x40, 0x80, 0x1C, 0x14, 0x10, 0x0E, 0x0A, 0x90, 0x0A, 0x0E, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0xE0, 0x14, + 0x1C, 0x60, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x02, 0x80, 0x01, 0x60, 0x00, 0x07, 0x00, 0x21, 0x00, 0x25, 0x00, 0x00, + 0x01, 0x21, 0x15, 0x21, 0x35, 0x33, 0x35, 0x23, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x15, 0x23, 0x35, 0x02, 0x20, 0xFE, 0x20, 0x01, 0xE0, 0x20, 0x20, 0x10, 0x14, 0x1C, 0x08, + 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x1C, 0x14, 0xFE, 0x00, 0x14, 0x1C, 0x1C, 0x14, 0xB0, 0x80, 0x01, 0x20, 0xC0, 0x40, 0x40, 0x80, 0x1C, 0x14, 0x10, 0x0E, + 0x0A, 0x90, 0x0A, 0x0E, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x60, 0x80, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x02, 0x80, 0x01, 0x60, + 0x00, 0x07, 0x00, 0x21, 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0x35, 0x33, 0x35, 0x23, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x02, 0x20, 0xFE, 0x20, 0x01, 0xE0, 0x20, 0x20, 0x10, 0x14, + 0x1C, 0x08, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x1C, 0x14, 0xFE, 0x00, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0xC0, 0x40, 0x40, 0x80, 0x1C, 0x14, 0x10, 0x0E, + 0x0A, 0x90, 0x0A, 0x0E, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xBE, 0x01, 0x44, 0x01, 0xC4, + 0x00, 0x15, 0x00, 0x00, 0x25, 0x23, 0x17, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x01, 0x07, 0x06, 0x26, 0x35, 0x11, 0x34, 0x36, 0x17, 0x01, 0x16, + 0x06, 0x01, 0x2E, 0x6A, 0x38, 0x03, 0x06, 0x07, 0x31, 0x07, 0x0D, 0x03, 0x35, 0x57, 0x08, 0x16, 0x17, 0x07, 0x01, 0x1D, 0x08, 0x09, 0x77, 0x88, 0x07, + 0x0E, 0x03, 0x16, 0x02, 0x05, 0x07, 0x81, 0x59, 0x09, 0x0A, 0x0C, 0x01, 0xAE, 0x0C, 0x09, 0x08, 0xFE, 0xDB, 0x08, 0x17, 0x00, 0x01, 0x00, 0x00, 0xFF, + 0xBF, 0x01, 0x00, 0x01, 0xC1, 0x00, 0x45, 0x00, 0x00, 0x01, 0x14, 0x06, 0x23, 0x22, 0x1D, 0x01, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, + 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x22, 0x2E, 0x01, 0x27, 0x0E, 0x02, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x32, 0x3D, 0x01, + 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x07, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x32, 0x1E, 0x01, 0x17, 0x3E, 0x02, 0x33, 0x32, + 0x16, 0x15, 0x01, 0x00, 0x07, 0x05, 0x54, 0x24, 0x0C, 0x0C, 0x24, 0x54, 0x05, 0x07, 0x07, 0x05, 0x17, 0x1E, 0x2D, 0x12, 0x12, 0x2E, 0x1E, 0x16, 0x05, + 0x07, 0x07, 0x05, 0x54, 0x24, 0x0C, 0x0C, 0x24, 0x54, 0x05, 0x07, 0x07, 0x05, 0x17, 0x1E, 0x2D, 0x12, 0x12, 0x2E, 0x1E, 0x16, 0x05, 0x07, 0x01, 0x8C, + 0x05, 0x07, 0x30, 0x70, 0x0C, 0x28, 0x0C, 0x70, 0x31, 0x01, 0x07, 0x05, 0x28, 0x05, 0x07, 0x03, 0x12, 0x11, 0x12, 0x12, 0x02, 0x07, 0x05, 0x28, 0x05, + 0x07, 0x30, 0x70, 0x0C, 0x28, 0x0C, 0x70, 0x31, 0x01, 0x07, 0x05, 0x28, 0x05, 0x07, 0x03, 0x12, 0x11, 0x12, 0x12, 0x02, 0x07, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x2C, 0x00, 0x38, 0x00, 0x47, 0x00, 0x00, 0x01, 0x11, 0x33, 0x32, 0x1D, 0x01, 0x14, + 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x11, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, + 0x1D, 0x01, 0x21, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x05, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x15, + 0x05, 0x35, 0x34, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x01, 0xE0, 0x14, 0x0C, 0x0C, 0x28, 0x0C, 0xFE, 0x80, 0x0C, + 0x28, 0x0C, 0x0C, 0x14, 0x14, 0x0C, 0x0C, 0x28, 0x0C, 0x01, 0x80, 0x0C, 0x28, 0x0C, 0x0C, 0x14, 0xFE, 0x80, 0x0C, 0xA8, 0x0C, 0x0C, 0xA8, 0x0C, 0x01, + 0x40, 0x0C, 0x54, 0x0E, 0x0A, 0x48, 0x0C, 0xA8, 0x0C, 0x01, 0x40, 0xFE, 0xE0, 0x0C, 0x28, 0x0C, 0x0C, 0x14, 0x14, 0x0C, 0x0C, 0x28, 0x0C, 0x01, 0x40, + 0x0C, 0x28, 0x0C, 0x0C, 0x14, 0x14, 0x0C, 0x0C, 0x28, 0x0C, 0xB4, 0x0C, 0x0C, 0x88, 0x0C, 0x0C, 0xE8, 0x88, 0x0C, 0x48, 0x0A, 0x0E, 0x34, 0x0C, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x40, 0x01, 0xA0, 0x00, 0x2B, 0x00, 0x5D, 0x00, 0x00, 0x37, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, + 0x34, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x21, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, + 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x37, 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x21, 0x15, + 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x33, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x35, + 0x33, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x40, 0x06, 0x34, 0x06, 0x06, 0x1A, 0x1A, 0x06, 0x06, 0x34, 0x06, 0x01, 0x20, 0x06, + 0x34, 0x06, 0x06, 0x1A, 0x1A, 0x06, 0x06, 0x34, 0x06, 0xC0, 0x1A, 0x06, 0x06, 0x34, 0x06, 0xFE, 0xE0, 0x06, 0x34, 0x06, 0x06, 0x1A, 0x88, 0x0E, 0x0A, + 0x40, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x68, 0x06, 0x34, 0x06, 0x06, 0x1A, 0x80, 0x1A, 0x06, 0x06, 0x34, 0x06, 0xC0, 0x06, 0x34, 0x06, 0x06, 0x1A, 0x1A, + 0x06, 0x06, 0x34, 0x06, 0xC0, 0x06, 0x34, 0x06, 0x06, 0x1A, 0x40, 0xA0, 0x06, 0x34, 0x06, 0x06, 0x1A, 0x1A, 0x06, 0x06, 0x34, 0x06, 0x48, 0x08, 0x0A, + 0x0E, 0x0E, 0x0A, 0x40, 0x0A, 0x0E, 0x48, 0x1A, 0x06, 0x06, 0x34, 0x06, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x11, + 0x00, 0x1A, 0x00, 0x00, 0x25, 0x22, 0x06, 0x1D, 0x01, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x11, 0x0F, 0x01, 0x06, + 0x2B, 0x01, 0x35, 0x33, 0x15, 0x14, 0x01, 0x38, 0x0A, 0x0E, 0xFE, 0xF8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x90, 0x0A, 0x0E, 0x07, 0x62, 0x07, 0x0A, 0x06, + 0x80, 0x80, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0x01, 0x90, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xF8, 0x37, 0x62, 0x07, 0x80, 0x06, 0x0A, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x21, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, + 0x11, 0x34, 0x36, 0x33, 0x11, 0x33, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x01, 0xD0, 0x14, + 0x1C, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0xD0, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x30, 0x2F, 0x01, 0xC0, 0x1C, 0x14, 0xFE, + 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, 0xFE, 0x60, 0x30, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, 0xD0, 0x21, 0x2F, 0x00, 0x00, + 0x00, 0x00, 0x05, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x18, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x5D, 0x00, 0x00, 0x25, 0x14, + 0x06, 0x22, 0x26, 0x35, 0x30, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x1E, 0x01, 0x15, 0x14, 0x27, 0x07, 0x33, 0x05, 0x14, + 0x06, 0x22, 0x26, 0x35, 0x30, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x1E, 0x01, 0x15, 0x14, 0x27, 0x33, 0x27, 0x13, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x26, 0x27, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x36, 0x32, 0x17, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x06, 0x07, 0x11, 0x01, 0x00, 0x4B, 0x6A, 0x4B, 0x0A, 0x1E, 0x1A, + 0x13, 0x0D, 0x3C, 0x0D, 0x14, 0x1A, 0x1D, 0x0A, 0x80, 0x48, 0x90, 0x01, 0xB8, 0x4B, 0x6A, 0x4B, 0x0A, 0x1E, 0x1A, 0x13, 0x0D, 0x3C, 0x0D, 0x14, 0x1A, + 0x1D, 0x0A, 0xC8, 0x90, 0x48, 0x10, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0xB0, 0x26, 0x08, 0x82, 0x07, 0x09, 0x09, 0x07, 0x90, + 0x19, 0x4E, 0x19, 0x90, 0x07, 0x09, 0x09, 0x07, 0x82, 0x08, 0x26, 0x70, 0x21, 0x2F, 0x2F, 0x21, 0x01, 0x08, 0x17, 0x3C, 0x34, 0x26, 0x1A, 0x1A, 0x28, + 0x35, 0x39, 0x16, 0x09, 0x01, 0xA0, 0x90, 0x10, 0x21, 0x2F, 0x2F, 0x21, 0x01, 0x08, 0x17, 0x3C, 0x34, 0x26, 0x1A, 0x1A, 0x28, 0x35, 0x39, 0x16, 0x09, + 0x01, 0x10, 0x90, 0xFE, 0xF0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x27, 0x10, 0x29, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, + 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x29, 0x10, 0xFE, 0xD9, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x29, 0x00, 0x2F, + 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x14, 0x06, 0x07, 0x1E, 0x01, 0x15, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x34, 0x36, 0x37, 0x2E, 0x01, 0x35, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x34, 0x26, 0x22, 0x06, 0x15, + 0x01, 0x68, 0x0A, 0x0E, 0x0E, 0x0A, 0x44, 0x35, 0x35, 0x44, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0x44, 0x35, 0x35, 0x44, 0x0A, + 0x0E, 0x0E, 0x0A, 0x01, 0x10, 0x3D, 0x56, 0x3D, 0x01, 0xC0, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x43, 0x6B, 0x12, 0x12, 0x6B, 0x43, 0x0E, 0x0A, 0x10, 0x0A, + 0x0E, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x43, 0x6B, 0x12, 0x12, 0x6B, 0x43, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0xFE, 0x40, 0x3B, 0x55, 0x55, 0x3B, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x29, 0x00, 0x2F, 0x00, 0x35, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x23, 0x14, 0x06, 0x07, 0x1E, 0x01, 0x15, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x34, 0x36, + 0x37, 0x2E, 0x01, 0x35, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x13, 0x36, 0x35, 0x23, 0x14, 0x17, 0x01, 0x68, + 0x0A, 0x0E, 0x0E, 0x0A, 0x44, 0x35, 0x35, 0x44, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0x44, 0x35, 0x35, 0x44, 0x0A, 0x0E, 0x0E, + 0x0A, 0x01, 0x05, 0x0D, 0x32, 0x3C, 0x32, 0x0D, 0xBA, 0x0B, 0xD0, 0x0B, 0x01, 0xC0, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x43, 0x6B, 0x12, 0x12, 0x6B, 0x43, + 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x43, 0x6B, 0x12, 0x12, 0x6B, 0x43, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0xFE, 0x80, 0x24, 0x2C, + 0x2C, 0x24, 0x01, 0x00, 0x1E, 0x22, 0x22, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x29, 0x00, 0x2F, + 0x00, 0x00, 0x01, 0x14, 0x06, 0x07, 0x1E, 0x01, 0x15, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x34, + 0x36, 0x37, 0x2E, 0x01, 0x35, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0E, 0x01, 0x32, 0x36, 0x35, 0x23, 0x14, + 0x01, 0x68, 0x44, 0x35, 0x35, 0x44, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0x44, 0x35, 0x35, 0x44, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, + 0x50, 0x0A, 0x0E, 0x0E, 0xDD, 0x56, 0x3D, 0xD0, 0x01, 0x80, 0x43, 0x6B, 0x12, 0x12, 0x6B, 0x43, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x0E, 0x0A, 0x10, 0x0A, + 0x0E, 0x43, 0x6B, 0x12, 0x12, 0x6B, 0x43, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x90, 0x55, 0x3B, 0x3B, 0x00, 0x00, 0x01, 0x00, + 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x29, 0x00, 0x00, 0x01, 0x14, 0x06, 0x07, 0x1E, 0x01, 0x15, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x34, 0x36, 0x37, 0x2E, 0x01, 0x35, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x01, 0x68, 0x44, 0x35, 0x35, 0x44, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0x44, 0x35, 0x35, 0x44, 0x0A, 0x0E, + 0x0E, 0x0A, 0x01, 0x50, 0x0A, 0x0E, 0x0E, 0x01, 0x80, 0x43, 0x6B, 0x12, 0x12, 0x6B, 0x43, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, + 0x43, 0x6B, 0x12, 0x12, 0x6B, 0x43, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xDF, 0x02, 0x00, + 0x01, 0xA1, 0x00, 0x3D, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x06, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x17, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, + 0x36, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x34, 0x36, 0x01, 0xD1, 0x13, 0x1C, 0x08, 0x30, 0x08, + 0x0E, 0x0A, 0xF0, 0x0A, 0x0E, 0x10, 0x70, 0x20, 0x1D, 0x14, 0x13, 0x1C, 0x08, 0x1D, 0x14, 0x13, 0x1C, 0x08, 0x1D, 0x14, 0x13, 0x1C, 0x08, 0x1D, 0x14, + 0x13, 0x1C, 0x08, 0x1D, 0x01, 0x70, 0x1D, 0x14, 0x85, 0x14, 0x12, 0x74, 0x12, 0x13, 0x03, 0x0A, 0x0E, 0x0E, 0x0A, 0x07, 0x15, 0x0E, 0x64, 0x1D, 0x2B, + 0x42, 0x14, 0x1C, 0x1D, 0x14, 0x30, 0x07, 0x88, 0x14, 0x1C, 0x1D, 0x14, 0x1F, 0x30, 0x14, 0x1C, 0x1D, 0x14, 0x2F, 0x20, 0x14, 0x1C, 0x1D, 0x14, 0x1F, + 0x14, 0x1C, 0x00, 0x01, 0xFF, 0xFD, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC1, 0x00, 0x32, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x0E, + 0x01, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x26, 0x3E, 0x01, 0x16, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x33, + 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x01, 0x99, 0x10, 0x17, 0x05, 0x1B, 0x03, 0x1B, + 0x10, 0xC6, 0x18, 0x0F, 0x7D, 0x0A, 0x05, 0x1B, 0x21, 0x09, 0x20, 0x17, 0x10, 0x11, 0x18, 0x08, 0x17, 0x10, 0x11, 0x18, 0x08, 0x17, 0x10, 0x11, 0x18, + 0x08, 0x18, 0x01, 0x40, 0x18, 0x10, 0x96, 0x17, 0x15, 0x71, 0x10, 0x15, 0x14, 0xAC, 0x0E, 0x21, 0x13, 0x05, 0x0D, 0x2C, 0xEC, 0x10, 0x18, 0x18, 0x11, + 0xAF, 0xD8, 0x10, 0x18, 0x18, 0x11, 0xD7, 0xB1, 0x10, 0x18, 0x18, 0x11, 0xB0, 0x57, 0x11, 0x18, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, + 0x01, 0xA4, 0x00, 0x2B, 0x00, 0x00, 0x16, 0x34, 0x36, 0x33, 0x35, 0x23, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x34, 0x36, 0x3B, + 0x01, 0x35, 0x27, 0x2E, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x37, 0x3E, 0x01, 0x1F, 0x01, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x22, + 0xD8, 0x17, 0x11, 0x20, 0x11, 0x17, 0x17, 0x11, 0x20, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xD0, 0xB2, 0x12, 0x10, 0x0F, 0x24, 0x13, 0xBE, 0x19, 0x09, 0x1D, + 0x0D, 0x70, 0x14, 0x11, 0x0E, 0x88, 0x04, 0x05, 0x50, 0x11, 0x09, 0x22, 0x17, 0x08, 0x17, 0x22, 0x17, 0x08, 0x1C, 0x28, 0x1C, 0x0E, 0x45, 0x08, 0x24, + 0x25, 0x10, 0x07, 0x4B, 0x1F, 0x0C, 0x05, 0x07, 0x40, 0x0C, 0x17, 0xF0, 0x0E, 0x16, 0x03, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, + 0xE0, 0x02, 0x40, 0x01, 0xA0, 0x00, 0x24, 0x00, 0x00, 0x05, 0x35, 0x34, 0x2F, 0x01, 0x26, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x3F, 0x01, 0x36, 0x26, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x17, 0x13, 0x16, 0x1D, 0x01, 0x01, 0x80, 0x0B, 0x70, + 0x0C, 0x0E, 0x93, 0x0A, 0x0E, 0x25, 0x1B, 0x7C, 0x15, 0x08, 0x16, 0x03, 0x0A, 0x0A, 0xE6, 0x17, 0x21, 0x0E, 0x0A, 0x01, 0x4E, 0x1A, 0x0E, 0xA3, 0x0F, + 0x20, 0x3D, 0x0E, 0x07, 0x47, 0x07, 0x0E, 0x0A, 0x08, 0x1B, 0x25, 0x14, 0x33, 0x09, 0x10, 0x21, 0x17, 0x10, 0x0A, 0x0E, 0x16, 0xFE, 0xFD, 0x17, 0x1C, + 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x48, 0x00, 0x00, 0x01, 0x03, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x2F, + 0x01, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x34, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x1F, 0x01, 0x16, 0x33, 0x32, 0x35, + 0x34, 0x35, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x1F, 0x01, 0x16, 0x33, 0x32, 0x3F, 0x01, 0x3E, 0x01, 0x33, 0x32, 0x17, 0x1E, 0x01, 0x0F, + 0x01, 0x14, 0x31, 0x14, 0x33, 0x32, 0x3F, 0x01, 0x3E, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x01, 0xFF, 0x44, 0x09, 0x38, 0x25, 0x7F, 0x36, 0x27, 0x6C, + 0x0D, 0x17, 0x11, 0x10, 0x0B, 0x3D, 0x0C, 0x2A, 0x02, 0x17, 0x11, 0x0D, 0x16, 0x03, 0x26, 0x01, 0x07, 0x08, 0x33, 0x01, 0x17, 0x11, 0x0E, 0x15, 0x04, + 0x38, 0x02, 0x08, 0x08, 0x02, 0x26, 0x03, 0x16, 0x0E, 0x06, 0x06, 0x0F, 0x0F, 0x03, 0x22, 0x07, 0x06, 0x02, 0x1D, 0x03, 0x16, 0x0E, 0x11, 0x17, 0x01, + 0x2F, 0xFE, 0xE1, 0x23, 0x2D, 0x25, 0x66, 0x0C, 0x11, 0x11, 0x17, 0x0B, 0x39, 0x29, 0x28, 0x90, 0x05, 0x06, 0x11, 0x17, 0x10, 0x0D, 0x7D, 0x06, 0x08, + 0x01, 0x01, 0xC4, 0x05, 0x05, 0x11, 0x17, 0x11, 0x0D, 0xDA, 0x08, 0x08, 0xB8, 0x0E, 0x12, 0x02, 0x05, 0x1B, 0x10, 0xA5, 0x01, 0x08, 0x06, 0x7B, 0x0E, + 0x11, 0x17, 0x11, 0x05, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFD, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x2D, 0x00, 0x31, 0x00, 0x35, 0x00, 0x39, + 0x00, 0x00, 0x25, 0x15, 0x14, 0x0F, 0x01, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x26, 0x3E, 0x01, 0x16, 0x1F, 0x01, 0x11, 0x34, 0x36, 0x32, 0x16, + 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x34, 0x36, 0x32, 0x16, 0x05, 0x23, + 0x15, 0x33, 0x37, 0x23, 0x15, 0x33, 0x37, 0x23, 0x15, 0x33, 0x01, 0xC0, 0x01, 0x20, 0x03, 0x16, 0x0E, 0xD0, 0x14, 0x0C, 0x80, 0x0A, 0x05, 0x1B, 0x21, + 0x09, 0x20, 0x17, 0x22, 0x17, 0x08, 0x17, 0x22, 0x17, 0x08, 0x17, 0x22, 0x17, 0x08, 0x17, 0x22, 0x17, 0xFF, 0x00, 0x08, 0x08, 0x58, 0x08, 0x08, 0x58, + 0x08, 0x08, 0xD0, 0x60, 0x05, 0x04, 0x88, 0x0E, 0x11, 0x10, 0xB0, 0x0E, 0x21, 0x13, 0x05, 0x0D, 0x2C, 0x01, 0x14, 0x11, 0x17, 0x17, 0x11, 0xC8, 0x28, + 0x11, 0x17, 0x17, 0x11, 0x28, 0x18, 0x11, 0x17, 0x17, 0x11, 0x18, 0x11, 0x17, 0x17, 0x61, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x01, 0xFF, 0xFC, + 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x2B, 0x00, 0x00, 0x24, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x2F, 0x01, + 0x26, 0x36, 0x3F, 0x01, 0x27, 0x26, 0x3E, 0x01, 0x16, 0x1F, 0x01, 0x33, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x32, 0x16, + 0x1D, 0x01, 0x33, 0x34, 0x01, 0x87, 0x22, 0x17, 0x01, 0x20, 0x03, 0x16, 0x0E, 0xF0, 0x17, 0x0C, 0x40, 0x07, 0x05, 0x0C, 0x1F, 0x4B, 0x07, 0x10, 0x25, + 0x24, 0x08, 0x45, 0x0E, 0x1C, 0x28, 0x1C, 0x08, 0x17, 0x22, 0x17, 0x08, 0xE8, 0x17, 0x11, 0x50, 0x05, 0x04, 0x88, 0x0E, 0x11, 0x14, 0x70, 0x0D, 0x1D, + 0x09, 0x19, 0xBE, 0x13, 0x24, 0x0F, 0x10, 0x12, 0xB2, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xD0, 0x20, 0x11, 0x17, 0x17, 0x11, 0x20, 0x11, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x02, 0x81, 0x01, 0x60, 0x00, 0x18, 0x00, 0x46, 0x00, 0x00, 0x01, 0x32, 0x16, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x15, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x33, 0x01, 0x16, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x35, 0x23, 0x06, + 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x22, 0x2F, 0x02, 0x23, 0x16, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x37, 0x13, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x02, + 0x33, 0x36, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x01, 0x05, 0x05, 0x07, 0x01, 0x07, 0x05, 0x55, 0x07, 0x05, 0x36, 0x05, 0x07, 0x55, 0x05, 0x07, + 0x0C, 0x02, 0x74, 0x01, 0x0D, 0x36, 0x0B, 0x01, 0x09, 0x01, 0x0B, 0x07, 0x1E, 0x03, 0x09, 0x32, 0x09, 0x02, 0x1F, 0x12, 0x01, 0x02, 0x02, 0x09, 0x01, + 0x0B, 0x36, 0x06, 0x07, 0x01, 0x18, 0x01, 0x0B, 0x41, 0x09, 0x03, 0x2B, 0x10, 0x01, 0x09, 0x08, 0x2B, 0x03, 0x09, 0x41, 0x0B, 0x01, 0x01, 0x60, 0x07, + 0x05, 0x2B, 0x05, 0x07, 0xF1, 0x05, 0x07, 0x07, 0x05, 0xF1, 0x07, 0x05, 0x2B, 0x0C, 0xFE, 0xCD, 0x0D, 0x0B, 0x85, 0x36, 0x22, 0x14, 0x55, 0x07, 0x07, + 0x55, 0x36, 0x1E, 0x18, 0x85, 0x0B, 0x08, 0x05, 0x01, 0x28, 0x0B, 0x08, 0x7F, 0x35, 0x20, 0x15, 0x7F, 0x08, 0x0B, 0x00, 0x00, 0x03, 0x00, 0x08, 0xFF, + 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x2A, 0x00, 0x00, 0x25, 0x14, 0x2B, 0x01, 0x35, 0x33, 0x32, 0x16, 0x36, 0x14, 0x06, 0x22, + 0x26, 0x34, 0x36, 0x32, 0x13, 0x26, 0x27, 0x36, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x33, + 0x17, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x01, 0x1D, 0x1C, 0x1E, 0x17, 0x15, 0x0E, 0xDB, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x04, 0x2B, 0x01, 0x26, 0x6A, 0x47, + 0x09, 0x0F, 0x0F, 0x09, 0x17, 0x0A, 0x0E, 0x1A, 0x2C, 0x07, 0x0E, 0x18, 0x0E, 0x0E, 0xF1, 0x1D, 0x38, 0x0C, 0x27, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xFE, + 0xA0, 0x4F, 0x02, 0x18, 0x32, 0x59, 0x0E, 0x0A, 0xE8, 0x0A, 0x0E, 0x0E, 0x0A, 0x48, 0x53, 0x0D, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, + 0x02, 0x80, 0x01, 0xC0, 0x00, 0x23, 0x00, 0x27, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x01, 0x11, 0x21, 0x11, + 0x02, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0xF0, 0xB0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0xB0, 0xF0, 0x14, 0x1C, 0x1C, 0x14, 0x02, + 0x10, 0xFE, 0x00, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0xC0, 0x14, 0x1C, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x1C, 0x14, + 0x01, 0x40, 0x14, 0x1C, 0xFE, 0xA0, 0x01, 0x20, 0xFE, 0xE0, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x1D, 0x00, 0x2B, 0x00, + 0x47, 0x00, 0x00, 0x01, 0x21, 0x22, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x3B, 0x01, 0x32, + 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x05, 0x21, 0x32, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x05, 0x34, 0x2B, + 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x35, + 0x01, 0xB4, 0xFE, 0x58, 0x0C, 0x1C, 0x14, 0x30, 0x0C, 0x28, 0x0C, 0x80, 0x0C, 0x28, 0x0C, 0x30, 0x14, 0x1C, 0xFE, 0x4C, 0x01, 0xA8, 0x0C, 0x1C, 0x14, + 0xFE, 0xA0, 0x14, 0x1C, 0x01, 0x48, 0x0C, 0x3C, 0x0C, 0x28, 0x0C, 0x3C, 0x0C, 0x0C, 0x3C, 0x0C, 0x28, 0x0C, 0x3C, 0x0C, 0x01, 0x20, 0x0C, 0x24, 0x14, + 0x1C, 0x34, 0x0C, 0x0C, 0x34, 0x34, 0x0C, 0x0C, 0x34, 0x1C, 0x14, 0x24, 0x0C, 0x20, 0x0C, 0xFE, 0xFC, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x04, 0x0C, 0x8C, + 0x0C, 0x3C, 0x0C, 0x0C, 0x3C, 0x0C, 0x28, 0x0C, 0x3C, 0x0C, 0x0C, 0x3C, 0x0C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, + 0x00, 0x1D, 0x00, 0x2B, 0x00, 0x37, 0x00, 0x00, 0x01, 0x21, 0x22, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, + 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x05, 0x21, 0x32, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, + 0x11, 0x34, 0x05, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x01, 0xB4, 0xFE, 0x58, 0x0C, 0x1C, 0x14, 0x30, 0x0C, 0x28, 0x0C, + 0x80, 0x0C, 0x28, 0x0C, 0x30, 0x14, 0x1C, 0xFE, 0x4C, 0x01, 0xA8, 0x0C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x01, 0x3C, 0x0C, 0x0C, 0xB8, 0x0C, 0x0C, + 0x01, 0x20, 0x0C, 0x24, 0x14, 0x1C, 0x34, 0x0C, 0x0C, 0x34, 0x34, 0x0C, 0x0C, 0x34, 0x1C, 0x14, 0x24, 0x0C, 0x20, 0x0C, 0xFE, 0xFC, 0x14, 0x1C, 0x1C, + 0x14, 0x01, 0x04, 0x0C, 0xC0, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x1D, + 0x00, 0x2B, 0x00, 0x47, 0x00, 0x00, 0x01, 0x21, 0x22, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, 0x35, 0x34, + 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x05, 0x21, 0x32, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, + 0x05, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x3F, + 0x01, 0x36, 0x27, 0x01, 0xB4, 0xFE, 0x58, 0x0C, 0x1C, 0x14, 0x30, 0x0C, 0x28, 0x0C, 0x80, 0x0C, 0x28, 0x0C, 0x30, 0x14, 0x1C, 0xFE, 0x4C, 0x01, 0xA8, + 0x0C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x01, 0x0D, 0x30, 0x09, 0x09, 0x1C, 0x08, 0x09, 0x30, 0x30, 0x09, 0x08, 0x1C, 0x09, 0x09, 0x30, 0x30, 0x09, + 0x09, 0x1C, 0x08, 0x09, 0x30, 0x30, 0x09, 0x08, 0x1C, 0x09, 0x09, 0x01, 0x20, 0x0C, 0x24, 0x14, 0x1C, 0x34, 0x0C, 0x0C, 0x34, 0x34, 0x0C, 0x0C, 0x34, + 0x1C, 0x14, 0x24, 0x0C, 0x20, 0x0C, 0xFE, 0xFC, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x04, 0x0C, 0xA0, 0x30, 0x09, 0x08, 0x1C, 0x09, 0x09, 0x30, 0x30, 0x09, + 0x09, 0x1C, 0x08, 0x09, 0x30, 0x30, 0x09, 0x08, 0x1C, 0x09, 0x09, 0x30, 0x30, 0x09, 0x09, 0x1C, 0x08, 0x09, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x1D, 0x00, 0x2B, 0x00, 0x3B, 0x00, 0x00, 0x01, 0x21, 0x22, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, + 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x05, 0x21, 0x32, 0x15, 0x11, 0x14, + 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x05, 0x27, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x36, 0x01, + 0xB4, 0xFE, 0x58, 0x0C, 0x1C, 0x14, 0x30, 0x0C, 0x28, 0x0C, 0x80, 0x0C, 0x28, 0x0C, 0x30, 0x14, 0x1C, 0xFE, 0x4C, 0x01, 0xA8, 0x0C, 0x1C, 0x14, 0xFE, + 0xA0, 0x14, 0x1C, 0x01, 0x59, 0x1C, 0x08, 0x09, 0x6A, 0x2E, 0x08, 0x09, 0x1C, 0x09, 0x09, 0x52, 0x09, 0x08, 0x8F, 0x09, 0x01, 0x20, 0x0C, 0x24, 0x14, + 0x1C, 0x34, 0x0C, 0x0C, 0x34, 0x34, 0x0C, 0x0C, 0x34, 0x1C, 0x14, 0x24, 0x0C, 0x20, 0x0C, 0xFE, 0xFC, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x04, 0x0C, 0x60, + 0x1C, 0x09, 0x08, 0x6A, 0x2F, 0x08, 0x08, 0x1C, 0x09, 0x08, 0x54, 0x08, 0x08, 0x8E, 0x09, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x02, + 0x00, 0x01, 0xA0, 0x00, 0x19, 0x00, 0x00, 0x01, 0x36, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x1D, 0x01, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x01, 0xDB, 0x0C, 0x19, 0x0E, 0x0A, 0xFE, 0x30, 0x0A, 0x0E, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x8B, 0x0C, + 0x19, 0x01, 0x1C, 0x08, 0x0E, 0x0E, 0xFE, 0xF0, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x90, 0x0A, 0x0E, 0x0E, 0x0A, 0xC4, 0x58, 0x08, 0x0E, 0x0E, 0x44, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x20, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x11, 0x00, 0x1D, 0x00, 0x00, 0x37, 0x16, 0x32, 0x37, 0x15, + 0x07, 0x06, 0x22, 0x2F, 0x01, 0x02, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x37, 0x32, 0x34, 0x23, 0x22, 0x06, 0x15, 0x14, 0x32, 0x35, 0x34, 0x36, + 0x70, 0x11, 0x1E, 0x11, 0x16, 0x04, 0x0C, 0x04, 0x16, 0x1C, 0x78, 0x54, 0x54, 0x78, 0x54, 0x90, 0x0C, 0x0C, 0x26, 0x36, 0x18, 0x28, 0x83, 0x03, 0x03, + 0x9D, 0x21, 0x05, 0x05, 0x21, 0x01, 0xDA, 0x54, 0x78, 0x54, 0x54, 0x78, 0x08, 0x18, 0x36, 0x26, 0x0C, 0x0C, 0x1C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x03, + 0xFF, 0xF9, 0xFF, 0xC0, 0x02, 0x07, 0x01, 0xC0, 0x00, 0x1A, 0x00, 0x24, 0x00, 0x39, 0x00, 0x00, 0x01, 0x16, 0x0F, 0x01, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x17, 0x03, 0x35, 0x33, 0x15, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x35, 0x33, 0x15, 0x01, + 0xFB, 0x0C, 0x0C, 0x2B, 0x09, 0x0E, 0xFE, 0x7F, 0x0A, 0x0E, 0x0E, 0x0A, 0xA8, 0x09, 0x07, 0x20, 0x07, 0x09, 0x99, 0x0E, 0x09, 0xF0, 0x40, 0x09, 0x07, + 0x20, 0x07, 0x09, 0xE8, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0x7F, 0x0E, 0x09, 0x2B, 0x0C, 0x0C, 0x2B, 0x09, 0x0E, 0x99, 0x40, 0x01, 0x6B, 0x0B, 0x0B, 0x2C, + 0x09, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x09, 0xFE, 0x39, 0x70, 0x70, 0x07, 0x09, 0x09, 0x01, 0x17, 0x0E, 0x0A, 0x50, + 0x0A, 0x0E, 0x09, 0x2C, 0x0B, 0x0B, 0x2C, 0x09, 0x20, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xDE, 0x02, 0x40, 0x01, 0xA2, 0x00, 0x08, 0x00, + 0x0C, 0x00, 0x15, 0x00, 0x00, 0x11, 0x34, 0x3F, 0x01, 0x11, 0x07, 0x06, 0x26, 0x35, 0x37, 0x11, 0x17, 0x11, 0x13, 0x36, 0x16, 0x15, 0x11, 0x14, 0x0F, + 0x01, 0x11, 0x14, 0x8C, 0x8A, 0x08, 0x0E, 0xC0, 0xC0, 0xAA, 0x08, 0x0E, 0x14, 0x8C, 0x01, 0x4A, 0x16, 0x08, 0x38, 0xFE, 0x80, 0x3F, 0x03, 0x0A, 0x08, + 0x30, 0x01, 0x80, 0x40, 0xFE, 0x80, 0x01, 0xBF, 0x03, 0x0A, 0x08, 0xFE, 0xA6, 0x16, 0x08, 0x38, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0xFF, 0xBD, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x23, + 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x01, 0xC0, 0x1A, 0x26, 0x26, 0x1A, 0x90, 0x7D, 0x06, 0x0D, 0x60, 0x1A, 0x26, 0x26, 0x1A, 0x01, 0xC0, 0x26, + 0x1A, 0xFE, 0xE0, 0x1A, 0x26, 0x5E, 0x04, 0x07, 0x07, 0x54, 0x26, 0x1A, 0x01, 0x20, 0x1A, 0x26, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0xFF, 0xC8, 0x01, + 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x17, 0x00, 0x27, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, + 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, + 0x36, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xE8, 0x09, 0x07, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x07, 0x09, 0x70, 0x09, 0x07, 0x30, 0x07, 0x09, 0x09, + 0x07, 0x30, 0x07, 0x09, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0xB7, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, + 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x17, 0x00, 0x00, + 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x99, + 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x58, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0xB7, + 0xA0, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x19, 0x00, + 0x21, 0x00, 0x29, 0x00, 0x00, 0x01, 0x33, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x33, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x23, 0x15, + 0x33, 0x35, 0x34, 0x26, 0x22, 0x06, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x60, 0x60, + 0x2F, 0x21, 0xFE, 0xE0, 0x21, 0x2F, 0x60, 0x4B, 0x6A, 0x4B, 0xC0, 0x80, 0x26, 0x34, 0x26, 0x96, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0xB2, 0x14, 0x0E, 0x0E, + 0x14, 0x0E, 0x01, 0x20, 0xFE, 0xF0, 0x21, 0x2F, 0x2F, 0x21, 0x01, 0x10, 0x20, 0x35, 0x4B, 0x4B, 0x35, 0x20, 0x20, 0x1A, 0x26, 0x26, 0x92, 0x0E, 0x14, + 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x40, 0x01, 0xA2, 0x00, 0x29, 0x00, 0x35, 0x00, 0x41, + 0x00, 0x4D, 0x00, 0x00, 0x25, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x07, 0x0E, 0x01, 0x23, 0x21, 0x22, 0x26, 0x2F, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x3B, 0x01, 0x37, 0x3E, 0x01, 0x1E, 0x01, 0x0F, 0x01, 0x33, 0x27, 0x26, 0x3E, 0x01, 0x16, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x05, 0x35, 0x34, 0x26, + 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x37, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x27, 0x35, 0x34, 0x26, 0x22, + 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x02, 0x40, 0x0E, 0x0A, 0x08, 0x1A, 0x03, 0x1B, 0x12, 0xFE, 0x94, 0x12, 0x1B, 0x03, 0x1A, 0x08, 0x0A, 0x0E, + 0x0E, 0x0A, 0x43, 0x6B, 0x08, 0x1A, 0x16, 0x04, 0x08, 0x50, 0xEC, 0x50, 0x08, 0x04, 0x16, 0x1A, 0x08, 0x6B, 0x43, 0x0A, 0x0E, 0xFE, 0xF8, 0x0E, 0x14, + 0x0E, 0x0E, 0x14, 0x0E, 0x70, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0xE0, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0xE8, 0x10, 0x0A, 0x0E, 0xB7, 0x12, 0x17, + 0x17, 0x12, 0xB7, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x93, 0x0B, 0x04, 0x10, 0x1A, 0x0B, 0x6D, 0x6D, 0x0B, 0x1A, 0x10, 0x04, 0x0B, 0x93, 0x0E, 0xBA, 0x70, + 0x0A, 0x0E, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0x70, + 0x0A, 0x0E, 0x0E, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xE0, 0x01, 0xC1, 0x01, 0xA0, 0x00, 0x43, 0x00, 0x47, 0x00, 0x00, 0x01, 0x06, 0x2B, 0x01, 0x07, + 0x33, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x23, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, + 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x37, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, + 0x33, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x33, 0x32, 0x16, 0x0F, 0x01, 0x37, 0x23, 0x07, 0x01, 0xB9, 0x02, 0x0A, 0x4F, 0x17, 0x4B, 0x05, + 0x08, 0x01, 0x08, 0x01, 0x0A, 0x50, 0x0F, 0x02, 0x0A, 0x28, 0x06, 0x07, 0x01, 0x0E, 0x62, 0x10, 0x01, 0x0A, 0x29, 0x06, 0x07, 0x01, 0x0F, 0x4B, 0x06, + 0x07, 0x01, 0x07, 0x02, 0x0A, 0x4F, 0x17, 0x4B, 0x05, 0x08, 0x01, 0x08, 0x01, 0x0A, 0x50, 0x0F, 0x02, 0x0A, 0x28, 0x06, 0x07, 0x01, 0x0E, 0x62, 0x10, + 0x01, 0x0A, 0x29, 0x06, 0x07, 0x01, 0x0F, 0x4B, 0x06, 0x07, 0x01, 0xBA, 0x17, 0x63, 0x17, 0x01, 0x0A, 0x0A, 0x80, 0x09, 0x05, 0x28, 0x0A, 0x56, 0x0A, + 0x09, 0x05, 0x52, 0x56, 0x0A, 0x09, 0x05, 0x52, 0x09, 0x05, 0x28, 0x0A, 0x80, 0x09, 0x05, 0x28, 0x0A, 0x56, 0x0A, 0x09, 0x05, 0x52, 0x56, 0x0A, 0x09, + 0x05, 0x52, 0x09, 0x05, 0xB2, 0x80, 0x80, 0x00, 0x00, 0x05, 0xFF, 0xFC, 0xFF, 0xC0, 0x01, 0xC4, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, + 0x1F, 0x00, 0x2D, 0x00, 0x00, 0x36, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x16, 0x32, 0x16, 0x14, + 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x13, 0x33, 0x32, 0x16, 0x07, 0x01, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x37, 0x01, + 0x36, 0x9E, 0x5C, 0x42, 0x42, 0x5C, 0x42, 0x5C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x82, 0x5C, 0x42, 0x42, 0x5C, 0x42, 0x5C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, + 0x68, 0x20, 0x0E, 0x0E, 0x08, 0xFE, 0x91, 0x07, 0x0C, 0x22, 0x0E, 0x0E, 0x09, 0x01, 0x70, 0x07, 0xE0, 0x42, 0x5C, 0x42, 0x42, 0x5C, 0x5E, 0x1C, 0x28, + 0x1C, 0x1C, 0x28, 0xC4, 0x42, 0x5C, 0x42, 0x42, 0x5C, 0x5E, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x01, 0xA4, 0x1A, 0x0C, 0xFE, 0x30, 0x0A, 0x1A, 0x0C, 0x01, + 0xD0, 0x0A, 0x00, 0x05, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x24, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x22, + 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x3E, 0x01, 0x2E, 0x01, 0x07, 0x06, 0x22, 0x27, 0x26, 0x0E, 0x01, 0x16, 0x17, 0x16, 0x17, 0x14, 0x0E, 0x01, + 0x07, 0x06, 0x1E, 0x01, 0x36, 0x37, 0x36, 0x37, 0x33, 0x16, 0x17, 0x1E, 0x01, 0x3E, 0x01, 0x27, 0x2E, 0x02, 0x35, 0x36, 0x01, 0x56, 0xAC, 0x7A, 0x7A, + 0xAC, 0x7A, 0xFE, 0xC9, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xA8, 0xA0, 0x70, 0x70, 0xA0, 0x70, 0xCF, 0x1E, 0x15, 0x15, 0x1E, 0x15, 0x52, 0x06, 0x07, 0x03, + 0x0B, 0x07, 0x48, 0x4C, 0x48, 0x07, 0x0B, 0x03, 0x07, 0x06, 0x35, 0x1D, 0x09, 0x06, 0x0A, 0x02, 0x06, 0x0E, 0x0D, 0x03, 0x12, 0x04, 0x0A, 0x04, 0x12, + 0x03, 0x0D, 0x0E, 0x06, 0x02, 0x0A, 0x06, 0x09, 0x1D, 0x01, 0x90, 0x7A, 0xAC, 0x7A, 0x7A, 0xAC, 0xA2, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x59, 0x70, 0xA0, + 0x70, 0x70, 0xA0, 0x44, 0x15, 0x1E, 0x15, 0x15, 0x1E, 0x4D, 0x01, 0x0C, 0x0D, 0x07, 0x02, 0x11, 0x11, 0x02, 0x07, 0x0D, 0x0B, 0x02, 0x0C, 0x04, 0x2F, + 0x41, 0x13, 0x18, 0x07, 0x0E, 0x05, 0x06, 0x06, 0x2E, 0x21, 0x21, 0x2E, 0x06, 0x06, 0x05, 0x0E, 0x07, 0x18, 0x13, 0x41, 0x2F, 0x04, 0x00, 0x04, 0x00, + 0x00, 0xFF, 0xBD, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x13, 0x00, 0x1B, 0x00, 0x42, 0x00, 0x00, 0x05, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x36, 0x37, + 0x17, 0x16, 0x15, 0x14, 0x27, 0x17, 0x16, 0x0E, 0x01, 0x26, 0x2F, 0x01, 0x12, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x17, 0x16, 0x06, 0x07, 0x06, + 0x26, 0x2F, 0x01, 0x26, 0x23, 0x22, 0x15, 0x14, 0x1F, 0x01, 0x15, 0x07, 0x0E, 0x01, 0x2E, 0x01, 0x3F, 0x01, 0x35, 0x07, 0x15, 0x14, 0x06, 0x23, 0x22, + 0x26, 0x3D, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x01, 0x7C, 0x02, 0x02, 0x05, 0x02, 0x7D, 0x08, 0x05, 0x7E, 0x01, 0xF1, 0x3F, 0x05, 0x0B, 0x18, + 0x19, 0x05, 0x24, 0x04, 0x24, 0x1A, 0x1A, 0x24, 0x1A, 0x6F, 0x06, 0x02, 0x08, 0x07, 0x14, 0x07, 0x66, 0x01, 0x02, 0x04, 0x01, 0x1F, 0x42, 0x04, 0x18, + 0x19, 0x0C, 0x05, 0x36, 0x10, 0x0E, 0x0A, 0x0A, 0x0E, 0x3D, 0x07, 0x0C, 0x20, 0x0C, 0x07, 0x3F, 0x01, 0x04, 0xCE, 0x03, 0x07, 0xD0, 0x02, 0x02, 0x05, + 0xC3, 0x9A, 0x0C, 0x19, 0x0A, 0x0B, 0x0C, 0x58, 0x01, 0x3C, 0x1A, 0x24, 0x1A, 0x1A, 0x24, 0xC3, 0x08, 0x14, 0x06, 0x06, 0x02, 0x08, 0x81, 0x02, 0x04, + 0x02, 0x01, 0x27, 0x6C, 0xB5, 0x0C, 0x0C, 0x09, 0x18, 0x0D, 0x95, 0x8C, 0x14, 0x50, 0x0A, 0x0E, 0x0E, 0x0B, 0x5F, 0x4F, 0x09, 0x09, 0x00, 0x05, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x34, 0x00, 0x43, 0x00, 0x00, 0x37, 0x17, 0x23, 0x37, 0x36, 0x37, + 0x16, 0x37, 0x32, 0x16, 0x15, 0x14, 0x2B, 0x01, 0x35, 0x37, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, + 0x05, 0x27, 0x26, 0x2B, 0x01, 0x22, 0x0F, 0x01, 0x06, 0x16, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x33, 0x17, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x37, 0x34, 0x26, + 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0xA3, 0x09, 0x1A, 0x09, 0x02, 0x02, 0x02, 0xA8, 0x16, 0x19, 0x2F, 0x0E, 0xC5, + 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, 0xFE, 0xF5, 0x39, 0x02, 0x09, 0x24, 0x08, 0x03, 0x39, 0x02, 0x07, 0x06, 0x1D, + 0x09, 0x03, 0x08, 0x34, 0x08, 0x03, 0x09, 0x1D, 0x06, 0x07, 0xB7, 0x35, 0x2E, 0x39, 0x05, 0x07, 0x07, 0x05, 0x39, 0x2E, 0x35, 0xD1, 0x1E, 0x1E, 0x06, + 0x0A, 0x0A, 0x1A, 0x19, 0x18, 0x31, 0x62, 0x5F, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, 0x1C, 0xF4, 0xA8, 0x08, 0x08, 0xA8, 0x06, + 0x0A, 0x09, 0x1E, 0x1E, 0x09, 0x0A, 0x56, 0x2D, 0x33, 0x07, 0x05, 0xA8, 0x05, 0x07, 0x34, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xF4, 0xFF, 0xC0, 0x01, + 0x81, 0x01, 0xC6, 0x00, 0x21, 0x00, 0x33, 0x00, 0x43, 0x00, 0x53, 0x00, 0x00, 0x17, 0x2E, 0x01, 0x36, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x0F, + 0x01, 0x06, 0x23, 0x22, 0x23, 0x27, 0x06, 0x17, 0x37, 0x32, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x13, 0x16, 0x14, + 0x07, 0x0E, 0x01, 0x2F, 0x01, 0x26, 0x37, 0x36, 0x34, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x16, 0x37, 0x16, 0x14, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x37, 0x36, + 0x34, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x07, 0x16, 0x14, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x37, 0x36, 0x34, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x61, 0x40, 0x2D, + 0x2E, 0x3F, 0x0A, 0x0C, 0x40, 0x09, 0x02, 0x20, 0x04, 0x0C, 0x01, 0x01, 0x38, 0x20, 0x20, 0x38, 0x01, 0x01, 0x0C, 0x04, 0x20, 0x01, 0x08, 0x40, 0x05, + 0x04, 0x08, 0x91, 0x09, 0x09, 0x03, 0x0B, 0x05, 0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x06, 0x06, 0x05, 0x0B, 0x5F, 0x2D, 0x2D, 0x08, 0x0A, 0x05, 0x09, + 0x08, 0x25, 0x25, 0x08, 0x09, 0x05, 0x0A, 0x26, 0x1B, 0x1B, 0x08, 0x0A, 0x06, 0x08, 0x07, 0x14, 0x14, 0x07, 0x08, 0x06, 0x0A, 0x3B, 0x40, 0xAB, 0xAB, + 0x40, 0x0A, 0x08, 0x28, 0x05, 0x0A, 0x03, 0x03, 0x51, 0x0B, 0x06, 0x5A, 0x5A, 0x06, 0x0B, 0x51, 0x03, 0x03, 0x0A, 0x05, 0x28, 0x03, 0x01, 0xA1, 0x10, + 0x22, 0x10, 0x05, 0x01, 0x04, 0x06, 0x06, 0x08, 0x07, 0x10, 0x07, 0x08, 0x06, 0x06, 0x04, 0x01, 0x56, 0x36, 0x8C, 0x36, 0x0A, 0x09, 0x06, 0x08, 0x08, + 0x2D, 0x74, 0x2D, 0x08, 0x08, 0x06, 0x09, 0x37, 0x23, 0x58, 0x23, 0x0A, 0x09, 0x06, 0x07, 0x08, 0x1A, 0x42, 0x1A, 0x08, 0x07, 0x06, 0x09, 0x00, 0x00, + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x3F, + 0x00, 0x47, 0x00, 0x4F, 0x00, 0x57, 0x00, 0x5F, 0x00, 0x00, 0x36, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x06, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, + 0x34, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, + 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x04, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x12, + 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x12, 0x32, + 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x80, 0x25, 0x36, 0x25, 0x25, 0x36, 0x28, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x05, 0x36, 0x25, 0x25, 0x36, 0x25, 0xD3, + 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x05, 0x36, 0x25, 0x25, 0x36, 0x25, 0x01, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, + 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x05, 0x36, 0x25, 0x25, 0x36, 0x25, 0xD3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, + 0x13, 0x13, 0x1A, 0x13, 0xDB, 0x36, 0x25, 0x25, 0x36, 0x25, 0xC0, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x01, 0x73, 0x25, 0x36, 0x25, 0x25, 0x36, 0x9B, 0x13, + 0x1A, 0x13, 0x13, 0x1A, 0x8D, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x01, 0x73, 0x25, 0x36, 0x25, 0x25, 0x36, 0x9B, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x8D, 0x13, + 0x1A, 0x13, 0x13, 0x1A, 0x01, 0x73, 0x25, 0x36, 0x25, 0x25, 0x36, 0x9B, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x8D, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x01, 0x53, + 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC3, 0x00, 0x13, 0x00, 0x37, 0x00, 0x3F, 0x00, + 0x47, 0x00, 0x5C, 0x00, 0x60, 0x00, 0x00, 0x37, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x26, + 0x22, 0x06, 0x26, 0x32, 0x16, 0x15, 0x14, 0x0E, 0x02, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x36, 0x35, 0x34, 0x3E, 0x02, 0x35, + 0x34, 0x26, 0x22, 0x06, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x06, 0x32, 0x16, 0x14, 0x06, 0x22, + 0x26, 0x34, 0x25, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x3D, 0x01, 0x2E, 0x01, 0x27, 0x2E, 0x01, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x17, 0x14, 0x05, 0x07, + 0x27, 0x37, 0xD8, 0x10, 0x18, 0x10, 0x2F, 0x42, 0x2F, 0x10, 0x18, 0x10, 0x0E, 0x14, 0x0E, 0x31, 0x92, 0x67, 0x16, 0x1B, 0x17, 0x3F, 0x2D, 0x0C, 0x10, + 0x10, 0x0C, 0x16, 0x1E, 0x17, 0x1B, 0x16, 0x46, 0x64, 0x46, 0x10, 0x18, 0x10, 0x53, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x6D, 0x1A, 0x13, 0x13, 0x1A, 0x13, + 0x02, 0x00, 0x10, 0x18, 0x10, 0x01, 0x51, 0x40, 0x0B, 0x0A, 0x07, 0x15, 0x0B, 0x51, 0x66, 0x01, 0xFE, 0x99, 0x22, 0x50, 0x22, 0xBC, 0x0C, 0x10, 0x10, + 0x0C, 0x21, 0x2F, 0x2F, 0x21, 0x0C, 0x10, 0x10, 0x0C, 0x0A, 0x0E, 0x0E, 0xA6, 0x67, 0x49, 0x21, 0x32, 0x19, 0x19, 0x0B, 0x2D, 0x3F, 0x10, 0x18, 0x10, + 0x1E, 0x16, 0x19, 0x25, 0x13, 0x26, 0x19, 0x32, 0x46, 0x46, 0x32, 0x0C, 0x10, 0x10, 0x0C, 0x49, 0x85, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x6D, 0x13, 0x1A, + 0x13, 0x13, 0x1A, 0xCF, 0x0C, 0x10, 0x10, 0x0C, 0x02, 0x01, 0x01, 0x44, 0x6F, 0x16, 0x04, 0x15, 0x16, 0x0A, 0x04, 0x1B, 0x8C, 0x56, 0x03, 0xB5, 0x22, + 0x50, 0x22, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFA, 0xFF, 0xC6, 0x02, 0x86, 0x01, 0xBA, 0x00, 0x31, 0x00, 0x3F, 0x00, 0x71, 0x00, 0x7F, 0x00, 0x00, + 0x01, 0x26, 0x07, 0x32, 0x17, 0x16, 0x06, 0x23, 0x32, 0x16, 0x07, 0x0E, 0x01, 0x23, 0x27, 0x07, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x3F, 0x02, 0x36, 0x37, + 0x36, 0x1E, 0x01, 0x06, 0x07, 0x06, 0x07, 0x36, 0x37, 0x36, 0x16, 0x17, 0x16, 0x06, 0x07, 0x06, 0x07, 0x36, 0x17, 0x1E, 0x01, 0x07, 0x0E, 0x01, 0x07, + 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x37, 0x36, 0x33, 0x26, 0x25, 0x16, 0x0F, 0x02, 0x06, 0x07, 0x06, 0x2E, 0x01, 0x36, 0x37, 0x36, + 0x37, 0x06, 0x07, 0x06, 0x26, 0x27, 0x26, 0x36, 0x37, 0x36, 0x37, 0x06, 0x27, 0x2E, 0x01, 0x37, 0x3E, 0x01, 0x17, 0x16, 0x37, 0x22, 0x27, 0x26, 0x36, + 0x33, 0x22, 0x26, 0x37, 0x3E, 0x01, 0x33, 0x17, 0x37, 0x36, 0x16, 0x17, 0x07, 0x22, 0x07, 0x06, 0x23, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, + 0x26, 0x01, 0x23, 0x20, 0x21, 0x3D, 0x18, 0x07, 0x10, 0x0E, 0x0E, 0x10, 0x07, 0x0B, 0x2B, 0x1A, 0x5E, 0x43, 0x07, 0x0E, 0x03, 0x2C, 0x08, 0x0F, 0x3A, + 0x29, 0x0A, 0x46, 0x08, 0x16, 0x0E, 0x02, 0x08, 0x14, 0x0D, 0x22, 0x28, 0x0B, 0x12, 0x01, 0x02, 0x0E, 0x0B, 0x17, 0x15, 0x2D, 0x2B, 0x0A, 0x07, 0x05, + 0x05, 0x15, 0x25, 0x0A, 0x16, 0x0F, 0x14, 0x15, 0x0E, 0x16, 0x0A, 0x07, 0x11, 0x11, 0x01, 0x70, 0x08, 0x0F, 0x3A, 0x29, 0x0A, 0x46, 0x08, 0x16, 0x0E, + 0x02, 0x08, 0x14, 0x0D, 0x22, 0x28, 0x09, 0x14, 0x01, 0x02, 0x0E, 0x0B, 0x17, 0x15, 0x2D, 0x2B, 0x0A, 0x07, 0x05, 0x05, 0x15, 0x09, 0x20, 0x21, 0x3D, + 0x18, 0x07, 0x10, 0x0E, 0x0E, 0x10, 0x07, 0x0B, 0x2B, 0x1C, 0x5C, 0x43, 0x07, 0x0E, 0x03, 0xB9, 0x16, 0x0A, 0x07, 0x11, 0x11, 0x07, 0x0A, 0x16, 0x0F, + 0x14, 0x15, 0x01, 0x03, 0x10, 0x0C, 0x33, 0x0D, 0x19, 0x19, 0x0D, 0x17, 0x1C, 0x09, 0x21, 0x04, 0x05, 0x06, 0x59, 0x0F, 0x09, 0x21, 0x4A, 0x5A, 0x39, + 0x07, 0x02, 0x11, 0x16, 0x07, 0x11, 0x13, 0x17, 0x05, 0x02, 0x0E, 0x0B, 0x0B, 0x11, 0x02, 0x02, 0x0D, 0x0A, 0x15, 0x05, 0x15, 0x0A, 0x0A, 0x07, 0x41, + 0x15, 0x15, 0x0F, 0x0F, 0x14, 0x14, 0x0F, 0x01, 0x34, 0x10, 0x08, 0x21, 0x4A, 0x5A, 0x39, 0x07, 0x02, 0x11, 0x16, 0x07, 0x11, 0x13, 0x17, 0x05, 0x02, + 0x0D, 0x0C, 0x0B, 0x11, 0x02, 0x02, 0x0D, 0x0A, 0x15, 0x05, 0x15, 0x0A, 0x0A, 0x07, 0x05, 0x10, 0x0C, 0x33, 0x0D, 0x19, 0x19, 0x0D, 0x17, 0x1C, 0x09, + 0x21, 0x04, 0x05, 0x06, 0x47, 0x14, 0x0F, 0x01, 0x0F, 0x14, 0x15, 0x0F, 0x0F, 0x14, 0x00, 0x04, 0xFF, 0xFB, 0xFF, 0xC0, 0x02, 0x05, 0x01, 0xC5, 0x00, + 0x13, 0x00, 0x37, 0x00, 0x43, 0x00, 0x50, 0x00, 0x00, 0x37, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, + 0x34, 0x26, 0x22, 0x06, 0x26, 0x32, 0x16, 0x15, 0x14, 0x0E, 0x02, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x36, 0x35, 0x34, 0x3E, + 0x02, 0x35, 0x34, 0x26, 0x22, 0x06, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x25, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x17, + 0x01, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0xD8, 0x10, 0x18, 0x10, 0x2F, 0x42, 0x2F, 0x10, 0x18, 0x10, 0x0E, 0x14, + 0x0E, 0x31, 0x92, 0x67, 0x16, 0x1B, 0x17, 0x3F, 0x2D, 0x0C, 0x10, 0x10, 0x0C, 0x16, 0x1E, 0x17, 0x1B, 0x16, 0x46, 0x64, 0x46, 0x10, 0x18, 0x10, 0x01, + 0xBC, 0x09, 0x09, 0x57, 0x08, 0x09, 0x1C, 0x08, 0x08, 0x57, 0x09, 0x08, 0xFE, 0xC9, 0x1C, 0x09, 0x09, 0x94, 0x04, 0x0A, 0x03, 0x1C, 0x09, 0x09, 0x94, + 0x08, 0xBC, 0x0C, 0x10, 0x10, 0x0C, 0x21, 0x2F, 0x2F, 0x21, 0x0C, 0x10, 0x10, 0x0C, 0x0A, 0x0E, 0x0E, 0xA6, 0x67, 0x49, 0x21, 0x32, 0x19, 0x19, 0x0B, + 0x2D, 0x3F, 0x10, 0x18, 0x10, 0x1E, 0x16, 0x19, 0x25, 0x13, 0x26, 0x19, 0x32, 0x46, 0x46, 0x32, 0x0C, 0x10, 0x10, 0x0C, 0x49, 0x9B, 0x08, 0x09, 0x57, + 0x08, 0x08, 0x1C, 0x09, 0x08, 0x57, 0x09, 0x09, 0xFE, 0xC9, 0x1C, 0x09, 0x08, 0x94, 0x04, 0x04, 0x1C, 0x08, 0x09, 0x94, 0x09, 0x00, 0x03, 0xFF, 0xFF, + 0xFF, 0xBF, 0x01, 0xC1, 0x01, 0xC2, 0x00, 0x32, 0x00, 0x3F, 0x00, 0x6B, 0x00, 0x00, 0x17, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x35, 0x34, + 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x37, 0x34, 0x36, 0x3B, 0x01, 0x27, 0x2E, 0x01, 0x3E, + 0x01, 0x1F, 0x01, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x37, 0x27, 0x26, 0x36, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x06, + 0x16, 0x1F, 0x01, 0x37, 0x30, 0x15, 0x14, 0x0F, 0x01, 0x35, 0x34, 0x2F, 0x01, 0x26, 0x07, 0x27, 0x26, 0x36, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x37, 0x27, + 0x26, 0x36, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x37, 0x27, 0x26, 0x36, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x27, 0x26, 0x3E, 0x01, 0x16, 0x15, 0x5B, 0x11, 0x0D, + 0x3E, 0x7E, 0x0C, 0x11, 0x11, 0x0B, 0x7F, 0x9A, 0x0C, 0x11, 0x11, 0x0C, 0x9A, 0x7D, 0x0C, 0x12, 0x01, 0x10, 0x0C, 0xA9, 0x1F, 0x0A, 0x04, 0x0E, 0x18, + 0x09, 0x7C, 0x0E, 0x0F, 0x0C, 0x50, 0x10, 0x10, 0x6B, 0x0C, 0x10, 0x49, 0x25, 0x07, 0x03, 0x09, 0x09, 0x18, 0x08, 0x0D, 0x0D, 0x02, 0x0E, 0x0B, 0xF7, + 0x0D, 0x3D, 0x12, 0x7B, 0x15, 0x15, 0x34, 0x07, 0x03, 0x09, 0x0A, 0x17, 0x07, 0x4E, 0x04, 0x5E, 0x08, 0x03, 0x0A, 0x09, 0x17, 0x07, 0x5F, 0x05, 0x4D, + 0x08, 0x03, 0x0A, 0x09, 0x17, 0x08, 0x67, 0x01, 0x01, 0x11, 0x17, 0x12, 0x24, 0x0C, 0x11, 0x06, 0x11, 0x0C, 0x0C, 0x10, 0x06, 0x11, 0x0C, 0x0B, 0x11, + 0x06, 0x11, 0x0C, 0x0B, 0x11, 0x16, 0x07, 0x18, 0x13, 0x03, 0x06, 0x5A, 0x0A, 0x12, 0x8D, 0x0C, 0x13, 0x02, 0x13, 0x04, 0x10, 0xEE, 0x2E, 0x0A, 0x17, + 0x07, 0x08, 0x03, 0x0A, 0x11, 0x0B, 0x23, 0x0A, 0x08, 0x02, 0x01, 0x11, 0x0A, 0x30, 0x11, 0x16, 0x0C, 0x5A, 0x0F, 0x0E, 0x43, 0x09, 0x18, 0x08, 0x07, + 0x03, 0x0A, 0x63, 0x03, 0x79, 0x0A, 0x18, 0x07, 0x07, 0x03, 0x09, 0x7A, 0x04, 0x62, 0x0A, 0x18, 0x07, 0x07, 0x03, 0x09, 0x85, 0x26, 0x0C, 0x11, 0x01, + 0x10, 0x0C, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xF8, 0xFF, 0xBE, 0x02, 0x40, 0x01, 0xC2, 0x00, 0x2D, 0x00, 0x42, 0x00, 0x00, 0x25, 0x16, 0x14, 0x07, 0x06, + 0x07, 0x17, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x26, 0x27, 0x03, 0x06, 0x07, 0x13, 0x06, 0x23, 0x22, 0x2F, 0x02, 0x06, 0x07, 0x17, 0x26, 0x27, 0x26, 0x37, + 0x36, 0x37, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x16, 0x1F, 0x01, 0x36, 0x33, 0x32, 0x16, 0x07, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x17, 0x36, + 0x17, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x35, 0x16, 0x06, 0x07, 0x02, 0x39, 0x07, 0x07, 0x31, 0x57, 0x2B, 0x05, 0x03, 0x08, 0x0D, 0x08, 0x14, 0x06, + 0xFC, 0x14, 0x12, 0xBE, 0x12, 0x11, 0x16, 0x16, 0x29, 0x77, 0x10, 0x0D, 0x7D, 0x71, 0x3C, 0x0F, 0x0F, 0x31, 0x57, 0x2B, 0x05, 0x03, 0x08, 0x0D, 0x08, + 0x14, 0x06, 0x35, 0x28, 0x2A, 0x59, 0x95, 0x88, 0x22, 0x50, 0x38, 0x1A, 0x18, 0x13, 0x2A, 0x26, 0x12, 0x19, 0x19, 0x24, 0x19, 0x0E, 0x05, 0x12, 0xD8, + 0x0B, 0x1A, 0x0B, 0x54, 0x2B, 0x3A, 0x08, 0x14, 0x05, 0x0A, 0x05, 0x03, 0x08, 0x01, 0x65, 0x09, 0x0D, 0xFE, 0xF1, 0x02, 0x03, 0x3A, 0xAB, 0x11, 0x13, + 0xB2, 0x28, 0x66, 0x18, 0x18, 0x54, 0x2B, 0x3A, 0x08, 0x14, 0x05, 0x0A, 0x05, 0x03, 0x08, 0x48, 0x0A, 0x57, 0xBB, 0x27, 0x33, 0x38, 0x50, 0x09, 0x1C, + 0x0D, 0x14, 0x19, 0x24, 0x19, 0x19, 0x12, 0x1A, 0x3D, 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xFD, 0x02, 0x80, 0x01, 0x80, 0x00, 0x19, 0x00, + 0x20, 0x00, 0x28, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x57, 0x00, 0x00, 0x01, 0x32, 0x1F, 0x01, 0x15, 0x26, 0x2F, 0x01, 0x37, 0x36, 0x27, 0x26, 0x22, 0x0F, + 0x01, 0x15, 0x06, 0x26, 0x27, 0x26, 0x34, 0x37, 0x35, 0x37, 0x36, 0x33, 0x17, 0x33, 0x11, 0x23, 0x22, 0x26, 0x35, 0x3A, 0x01, 0x36, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x05, 0x11, 0x33, 0x15, 0x14, 0x06, 0x23, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x05, 0x1E, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0x2F, + 0x01, 0x07, 0x0E, 0x01, 0x2F, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x23, 0x35, 0x37, 0x36, 0x3B, 0x01, 0x07, 0x0E, 0x01, 0x17, 0x1E, 0x01, 0x3F, 0x01, 0x01, + 0xB3, 0x0D, 0x09, 0x37, 0x04, 0x04, 0x92, 0x1A, 0x0C, 0x0A, 0x05, 0x0D, 0x05, 0x50, 0x0D, 0x22, 0x0A, 0x0A, 0x0D, 0x62, 0x09, 0x0D, 0xC3, 0x60, 0x40, + 0x0D, 0x13, 0x29, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0xFD, 0xC0, 0x60, 0x13, 0x0D, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0xA4, 0x0A, 0x03, 0x09, 0x09, + 0x08, 0x1B, 0x0A, 0x05, 0x20, 0x09, 0x1F, 0x0C, 0x12, 0x11, 0x35, 0x14, 0x5B, 0x12, 0x37, 0x09, 0x0D, 0x54, 0x52, 0x16, 0x02, 0x14, 0x14, 0x3B, 0x17, + 0x1E, 0x01, 0x80, 0x09, 0x37, 0xC2, 0x05, 0x03, 0x76, 0x18, 0x0B, 0x0C, 0x05, 0x04, 0x49, 0x01, 0x0A, 0x02, 0x0B, 0x0C, 0x21, 0x0B, 0x01, 0x5A, 0x08, + 0x40, 0xFF, 0x00, 0x13, 0x0D, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x29, 0x01, 0x00, 0xE0, 0x0D, 0x13, 0x40, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x0A, 0x08, 0x1A, + 0x0B, 0x0C, 0x0A, 0x03, 0x09, 0x04, 0x26, 0x0C, 0x04, 0x0A, 0x10, 0x15, 0x06, 0x11, 0x52, 0xE0, 0x37, 0x09, 0x4B, 0x14, 0x3C, 0x16, 0x15, 0x03, 0x14, + 0x1B, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x1A, 0x00, 0x45, 0x00, 0x00, 0x05, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, + 0x11, 0x34, 0x37, 0x36, 0x37, 0x30, 0x3E, 0x02, 0x33, 0x32, 0x1E, 0x02, 0x31, 0x16, 0x17, 0x16, 0x15, 0x07, 0x26, 0x07, 0x06, 0x07, 0x30, 0x0E, 0x02, + 0x23, 0x22, 0x2E, 0x02, 0x31, 0x26, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x1E, 0x04, 0x32, 0x3E, 0x03, 0x37, 0x36, 0x37, 0x36, + 0x35, 0x34, 0x27, 0x02, 0x00, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x12, 0x29, 0x7C, 0x1C, 0x0E, 0x17, 0x08, 0x08, 0x17, 0x0E, 0x1C, 0x7C, 0x29, 0x12, + 0x42, 0x04, 0x07, 0x23, 0x47, 0x1C, 0x0E, 0x17, 0x08, 0x08, 0x17, 0x0E, 0x1C, 0x47, 0x23, 0x07, 0x04, 0x09, 0x02, 0x03, 0x24, 0x46, 0x02, 0x16, 0x0E, + 0x17, 0x15, 0x14, 0x15, 0x17, 0x0E, 0x16, 0x02, 0x46, 0x24, 0x03, 0x02, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x07, 0x18, 0x0E, 0x20, 0x5A, 0x15, 0x09, + 0x0B, 0x0B, 0x09, 0x15, 0x5A, 0x20, 0x0E, 0x18, 0x42, 0x06, 0x04, 0x1B, 0x33, 0x15, 0x09, 0x0B, 0x0B, 0x09, 0x15, 0x33, 0x1B, 0x04, 0x06, 0x0E, 0x02, + 0x02, 0x04, 0x03, 0x1A, 0x32, 0x02, 0x11, 0x0A, 0x0D, 0x06, 0x06, 0x0D, 0x0A, 0x11, 0x02, 0x32, 0x1A, 0x03, 0x04, 0x02, 0x02, 0x00, 0x00, 0x03, 0x00, + 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x43, 0x00, 0x00, 0x01, 0x23, 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, + 0x15, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, + 0x33, 0x32, 0x1D, 0x01, 0x14, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x06, 0x22, 0x27, 0x23, 0x22, 0x06, + 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x01, 0xB4, 0x14, 0x14, 0x0C, 0x0C, 0x14, 0x14, 0x0C, 0x0C, 0x14, 0x1C, 0x14, 0xFE, 0xC0, 0x14, 0x1C, + 0x1C, 0x14, 0x01, 0x40, 0x14, 0x1C, 0x14, 0x0C, 0xD6, 0x34, 0x26, 0x26, 0x34, 0x26, 0x30, 0x27, 0x1C, 0x05, 0x13, 0x2A, 0x13, 0x05, 0x1C, 0x27, 0x0D, + 0x09, 0xB4, 0x09, 0x0D, 0x01, 0x20, 0x40, 0x0C, 0x28, 0x0C, 0x40, 0x0C, 0x28, 0x0C, 0x30, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, 0x1C, 0x14, + 0x30, 0x0C, 0x28, 0x0C, 0x20, 0x26, 0x34, 0x26, 0x26, 0x34, 0xC7, 0x13, 0x18, 0x22, 0x08, 0x08, 0x22, 0x18, 0x13, 0x08, 0x0B, 0x0B, 0x00, 0x00, 0x06, + 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x40, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x2B, 0x00, 0x37, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x00, 0x01, 0x32, 0x16, + 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x16, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x35, 0x34, 0x26, + 0x2B, 0x01, 0x06, 0x22, 0x27, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, + 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, + 0x01, 0x32, 0x02, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x20, 0x14, 0x1C, 0x1C, 0x14, 0x9A, 0x34, 0x26, 0x26, 0x34, 0x26, 0x30, 0x27, 0x1C, 0x05, 0x13, + 0x2A, 0x13, 0x05, 0x1C, 0x27, 0x0D, 0x09, 0xB4, 0x09, 0x0D, 0xE0, 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x08, 0x90, + 0x08, 0x08, 0x90, 0x08, 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x60, 0x26, 0x34, 0x26, 0x26, 0x34, 0xC7, + 0x13, 0x18, 0x22, 0x08, 0x08, 0x22, 0x18, 0x13, 0x08, 0x0B, 0x0B, 0x3D, 0x10, 0x08, 0x08, 0x10, 0x08, 0x48, 0x10, 0x08, 0x08, 0x10, 0x08, 0x48, 0x10, + 0x08, 0x08, 0x10, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x00, 0x12, + 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x24, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x02, 0x32, 0x37, 0x2E, 0x01, 0x23, 0x22, 0x07, 0x06, 0x22, + 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x1C, 0x48, 0x34, 0x34, 0x48, 0x34, 0xB1, 0xB2, 0x39, 0x0E, 0x34, 0x20, + 0x03, 0x04, 0x15, 0x28, 0x15, 0x04, 0x03, 0x20, 0x34, 0x0E, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x31, 0x34, 0x48, 0x34, 0x34, 0x48, 0xFE, 0xDC, + 0x44, 0x1B, 0x21, 0x01, 0x07, 0x07, 0x01, 0x21, 0x1B, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x1B, 0x00, + 0x23, 0x00, 0x37, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x17, 0x22, 0x06, 0x14, + 0x16, 0x3B, 0x01, 0x32, 0x36, 0x34, 0x26, 0x23, 0x06, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x06, 0x22, 0x27, + 0x23, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x01, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x60, 0x07, + 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x16, 0x34, 0x26, 0x26, 0x34, 0x26, 0x30, 0x27, 0x1C, 0x05, 0x13, 0x2A, 0x13, 0x05, 0x1C, 0x27, 0x0D, + 0x09, 0xB4, 0x09, 0x0D, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, 0x20, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, + 0x80, 0x26, 0x34, 0x26, 0x26, 0x34, 0xC7, 0x13, 0x18, 0x22, 0x08, 0x08, 0x22, 0x18, 0x13, 0x08, 0x0B, 0x0B, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, + 0xE0, 0x02, 0x40, 0x01, 0xA0, 0x00, 0x09, 0x00, 0x13, 0x00, 0x1F, 0x00, 0x2B, 0x00, 0x37, 0x00, 0x3F, 0x00, 0x51, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x21, 0x35, 0x34, 0x36, 0x33, 0x03, 0x11, 0x21, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x25, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, + 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, + 0x01, 0x22, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x07, 0x06, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x27, 0x2E, 0x01, 0x2B, 0x01, 0x06, 0x22, 0x27, + 0x23, 0x22, 0x06, 0x02, 0x10, 0x14, 0x1C, 0xFD, 0xC0, 0x1C, 0x14, 0x30, 0x02, 0x40, 0x1C, 0x14, 0xFE, 0x20, 0x14, 0x1C, 0x01, 0x60, 0x08, 0x90, 0x08, + 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x96, 0x34, 0x26, 0x26, 0x34, 0x26, 0xAD, 0x02, 0x0A, 0x08, + 0xBA, 0x08, 0x0A, 0x02, 0x06, 0x22, 0x15, 0x08, 0x13, 0x2A, 0x13, 0x08, 0x15, 0x22, 0x01, 0xA0, 0x1C, 0x14, 0x10, 0x10, 0x14, 0x1C, 0xFE, 0x70, 0x01, + 0x30, 0xFE, 0xD0, 0x14, 0x1C, 0x1C, 0xFC, 0x10, 0x08, 0x08, 0x10, 0x08, 0x48, 0x10, 0x08, 0x08, 0x10, 0x08, 0x48, 0x10, 0x08, 0x08, 0x10, 0x08, 0x80, + 0x26, 0x34, 0x26, 0x26, 0x34, 0xA6, 0x07, 0x0D, 0x0C, 0x08, 0x13, 0x19, 0x08, 0x08, 0x19, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x01, 0x00, 0x01, 0xC0, + 0x00, 0x12, 0x00, 0x32, 0x00, 0x42, 0x00, 0x00, 0x13, 0x15, 0x16, 0x15, 0x14, 0x06, 0x23, 0x30, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x34, 0x36, + 0x32, 0x16, 0x03, 0x32, 0x36, 0x35, 0x34, 0x2E, 0x06, 0x27, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x0E, 0x07, 0x15, 0x14, 0x16, 0x33, 0x37, 0x14, + 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x16, 0xE0, 0x20, 0x4B, 0x35, 0x01, 0x35, 0x4A, 0x20, 0x38, 0x50, 0x38, + 0x60, 0x21, 0x2F, 0x02, 0x02, 0x06, 0x03, 0x07, 0x03, 0x08, 0x01, 0x1C, 0x28, 0x1C, 0x01, 0x08, 0x03, 0x07, 0x03, 0x06, 0x02, 0x02, 0x2F, 0x20, 0x41, + 0x25, 0x36, 0x25, 0x20, 0x13, 0x1A, 0x13, 0x20, 0x01, 0x60, 0xCB, 0x25, 0x30, 0x35, 0x4B, 0x4C, 0x35, 0x30, 0x24, 0xCB, 0x28, 0x38, 0x38, 0xFE, 0x68, + 0x2F, 0x21, 0x06, 0x0C, 0x09, 0x0B, 0x06, 0x09, 0x04, 0x09, 0x01, 0xDD, 0x14, 0x1C, 0x1C, 0x14, 0xDD, 0x01, 0x0A, 0x03, 0x09, 0x06, 0x0B, 0x09, 0x0B, + 0x07, 0x20, 0x30, 0x50, 0x1B, 0x25, 0x25, 0x1B, 0x25, 0x12, 0xE9, 0x0D, 0x13, 0x13, 0x0D, 0xE9, 0x12, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, + 0xC0, 0x01, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x22, 0x00, 0x42, 0x00, 0x00, 0x37, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x34, 0x36, 0x32, + 0x16, 0x1D, 0x01, 0x16, 0x37, 0x16, 0x15, 0x14, 0x06, 0x23, 0x30, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x03, 0x34, + 0x2E, 0x06, 0x27, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x0E, 0x07, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0xC0, 0x25, 0x36, 0x25, 0x20, 0x13, + 0x1A, 0x13, 0x20, 0x20, 0x20, 0x4B, 0x35, 0x01, 0x35, 0x4A, 0x20, 0x38, 0x50, 0x38, 0x10, 0x02, 0x02, 0x06, 0x03, 0x07, 0x03, 0x08, 0x01, 0x1C, 0x28, + 0x1C, 0x01, 0x08, 0x03, 0x07, 0x03, 0x06, 0x02, 0x02, 0x2F, 0x20, 0x01, 0x21, 0x2F, 0x40, 0x1B, 0x25, 0x25, 0x1B, 0x25, 0x12, 0xA9, 0x0D, 0x13, 0x13, + 0x0D, 0xA9, 0x12, 0x30, 0x25, 0x30, 0x35, 0x4B, 0x4C, 0x35, 0x30, 0x24, 0xCB, 0x28, 0x38, 0x38, 0x28, 0xFE, 0xE0, 0x06, 0x0C, 0x09, 0x0B, 0x06, 0x09, + 0x04, 0x09, 0x01, 0xDD, 0x14, 0x1C, 0x1C, 0x14, 0xDD, 0x01, 0x0A, 0x03, 0x09, 0x06, 0x0B, 0x09, 0x0B, 0x07, 0x20, 0x30, 0x2F, 0x00, 0x03, 0xFF, 0xFF, + 0xFF, 0xC0, 0x01, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x22, 0x00, 0x42, 0x00, 0x00, 0x37, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x34, 0x36, + 0x32, 0x16, 0x1D, 0x01, 0x16, 0x37, 0x16, 0x15, 0x14, 0x06, 0x23, 0x30, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x03, + 0x34, 0x2E, 0x06, 0x27, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x0E, 0x07, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0xC0, 0x25, 0x36, 0x25, 0x20, + 0x13, 0x1A, 0x13, 0x20, 0x20, 0x20, 0x4B, 0x35, 0x01, 0x35, 0x4A, 0x20, 0x38, 0x50, 0x38, 0x10, 0x02, 0x02, 0x06, 0x03, 0x07, 0x03, 0x08, 0x01, 0x1C, + 0x28, 0x1C, 0x01, 0x08, 0x03, 0x07, 0x03, 0x06, 0x02, 0x02, 0x2F, 0x20, 0x01, 0x21, 0x2F, 0x40, 0x1B, 0x25, 0x25, 0x1B, 0x25, 0x12, 0x69, 0x0D, 0x13, + 0x13, 0x0D, 0x69, 0x12, 0x30, 0x25, 0x30, 0x35, 0x4B, 0x4C, 0x35, 0x30, 0x24, 0xCB, 0x28, 0x38, 0x38, 0x28, 0xFE, 0xE0, 0x06, 0x0C, 0x09, 0x0B, 0x06, + 0x09, 0x04, 0x09, 0x01, 0xDD, 0x14, 0x1C, 0x1C, 0x14, 0xDD, 0x01, 0x0A, 0x03, 0x09, 0x06, 0x0B, 0x09, 0x0B, 0x07, 0x20, 0x30, 0x2F, 0x00, 0x03, 0xFF, + 0xFF, 0xFF, 0xC0, 0x01, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x22, 0x00, 0x42, 0x00, 0x00, 0x37, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x34, + 0x36, 0x32, 0x16, 0x1D, 0x01, 0x16, 0x37, 0x16, 0x15, 0x14, 0x06, 0x23, 0x30, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, + 0x03, 0x34, 0x2E, 0x06, 0x27, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x0E, 0x07, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0xC0, 0x25, 0x36, 0x25, + 0x20, 0x13, 0x1A, 0x13, 0x20, 0x20, 0x20, 0x4B, 0x35, 0x01, 0x35, 0x4A, 0x20, 0x38, 0x50, 0x38, 0x10, 0x02, 0x02, 0x06, 0x03, 0x07, 0x03, 0x08, 0x01, + 0x1C, 0x28, 0x1C, 0x01, 0x08, 0x03, 0x07, 0x03, 0x06, 0x02, 0x02, 0x2F, 0x20, 0x01, 0x21, 0x2F, 0x40, 0x1B, 0x25, 0x25, 0x1B, 0x25, 0x12, 0x29, 0x0D, + 0x13, 0x13, 0x0D, 0x29, 0x12, 0x30, 0x25, 0x30, 0x35, 0x4B, 0x4C, 0x35, 0x30, 0x24, 0xCB, 0x28, 0x38, 0x38, 0x28, 0xFE, 0xE0, 0x06, 0x0C, 0x09, 0x0B, + 0x06, 0x09, 0x04, 0x09, 0x01, 0xDD, 0x14, 0x1C, 0x1C, 0x14, 0xDD, 0x01, 0x0A, 0x03, 0x09, 0x06, 0x0B, 0x09, 0x0B, 0x07, 0x20, 0x30, 0x2F, 0x00, 0x03, + 0xFF, 0xFF, 0xFF, 0xC0, 0x01, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x1A, 0x00, 0x3A, 0x00, 0x00, 0x36, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x37, + 0x16, 0x15, 0x14, 0x06, 0x23, 0x30, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x03, 0x34, 0x2E, 0x06, 0x27, 0x35, 0x34, + 0x26, 0x22, 0x06, 0x1D, 0x01, 0x0E, 0x07, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0xC0, 0x25, 0x36, 0x25, 0x25, 0x36, 0x45, 0x20, 0x4B, 0x35, 0x01, + 0x35, 0x4A, 0x20, 0x38, 0x50, 0x38, 0x10, 0x02, 0x02, 0x06, 0x03, 0x07, 0x03, 0x08, 0x01, 0x1C, 0x28, 0x1C, 0x01, 0x08, 0x03, 0x07, 0x03, 0x06, 0x02, + 0x02, 0x2F, 0x20, 0x01, 0x21, 0x2F, 0x5B, 0x36, 0x25, 0x25, 0x36, 0x25, 0x15, 0x25, 0x30, 0x35, 0x4B, 0x4C, 0x35, 0x30, 0x24, 0xCB, 0x28, 0x38, 0x38, + 0x28, 0xFE, 0xE0, 0x06, 0x0C, 0x09, 0x0B, 0x06, 0x09, 0x04, 0x09, 0x01, 0xDD, 0x14, 0x1C, 0x1C, 0x14, 0xDD, 0x01, 0x0A, 0x03, 0x09, 0x06, 0x0B, 0x09, + 0x0B, 0x07, 0x20, 0x30, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA1, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, + 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x3F, 0x00, 0x47, 0x00, 0x4F, 0x00, 0x57, 0x00, 0x5F, 0x00, 0x67, 0x00, 0x6F, 0x00, 0x77, 0x00, 0xA6, + 0x00, 0x00, 0x24, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, + 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x26, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, + 0x06, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, + 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x06, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x06, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x06, 0x32, + 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x06, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x37, 0x16, 0x14, + 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x26, 0x35, 0x34, 0x37, 0x27, 0x26, 0x23, 0x22, 0x23, 0x0E, 0x01, 0x15, 0x11, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x32, 0x1F, 0x01, 0x36, 0x33, 0x32, 0x17, 0x37, 0x36, 0x32, 0x17, 0x01, 0x29, 0x0E, 0x09, 0x09, 0x0E, + 0x09, 0x29, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x37, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x29, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x37, 0x0E, 0x09, 0x09, 0x0E, 0x09, + 0x97, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x40, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x20, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x69, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x29, + 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x37, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x17, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x37, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x17, 0x0E, + 0x09, 0x09, 0x0E, 0x09, 0x49, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x26, 0x04, 0x04, 0xAA, 0x04, 0x0E, 0x04, 0x0C, 0x04, 0x04, 0x06, 0x20, 0x0E, 0x0A, 0x11, + 0x18, 0x04, 0x04, 0x16, 0x1D, 0x09, 0x07, 0x20, 0x07, 0x09, 0x49, 0x65, 0x23, 0x0A, 0x1A, 0x1B, 0x2E, 0x20, 0x06, 0x04, 0x0E, 0x04, 0x80, 0x09, 0x0E, + 0x09, 0x09, 0x0E, 0x69, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x37, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x29, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x37, 0x09, 0x0E, 0x09, + 0x09, 0x0E, 0x29, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x20, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x40, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x17, 0x09, 0x0E, 0x09, 0x09, + 0x0E, 0x29, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x37, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x17, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x37, 0x09, 0x0E, 0x09, 0x09, 0x0E, + 0x17, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x49, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0xE3, 0x04, 0x0E, 0x04, 0xAA, 0x04, 0x04, 0x0C, 0x04, 0x0E, 0x04, 0x06, 0x20, + 0x2E, 0x1B, 0x1A, 0x0A, 0x11, 0x03, 0x24, 0x17, 0xFE, 0xCE, 0x07, 0x09, 0x09, 0x07, 0x01, 0x2F, 0x34, 0x4D, 0x24, 0x0A, 0x0E, 0x20, 0x06, 0x04, 0x04, + 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x19, 0x00, 0x49, 0x00, 0x00, 0x37, 0x35, 0x21, 0x15, 0x14, 0x07, 0x15, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x26, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x32, 0x1F, 0x01, 0x36, 0x17, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, + 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x37, 0x26, 0x37, 0x27, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x20, 0x01, 0xC0, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, + 0xFF, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x01, 0xD0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x09, 0x07, 0x10, 0x29, 0x39, 0x14, 0x13, + 0x2D, 0x23, 0x05, 0x0D, 0x05, 0x0B, 0x05, 0x05, 0x69, 0x05, 0x0D, 0x05, 0x0B, 0x05, 0x05, 0x1C, 0x14, 0x14, 0x06, 0x12, 0x0C, 0x40, 0x30, 0x30, 0x2B, + 0x1C, 0x29, 0x07, 0x09, 0x09, 0x07, 0x10, 0x10, 0x07, 0x09, 0x09, 0x07, 0x29, 0x1C, 0xAB, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, + 0xBB, 0x1C, 0x29, 0x14, 0x14, 0x14, 0x1C, 0x05, 0x05, 0x0B, 0x05, 0x0D, 0x05, 0x69, 0x05, 0x05, 0x0B, 0x05, 0x0D, 0x05, 0x23, 0x2C, 0x14, 0x06, 0x0C, + 0x09, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x2B, 0x00, 0x4E, 0x00, 0x56, 0x00, 0x00, + 0x05, 0x06, 0x22, 0x27, 0x2E, 0x01, 0x35, 0x34, 0x32, 0x15, 0x14, 0x06, 0x27, 0x16, 0x07, 0x06, 0x07, 0x06, 0x27, 0x26, 0x35, 0x34, 0x36, 0x17, 0x1E, + 0x01, 0x17, 0x16, 0x07, 0x06, 0x27, 0x26, 0x27, 0x26, 0x37, 0x36, 0x35, 0x34, 0x26, 0x07, 0x0E, 0x01, 0x07, 0x06, 0x12, 0x32, 0x16, 0x15, 0x14, 0x06, + 0x07, 0x06, 0x26, 0x37, 0x36, 0x37, 0x3E, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x17, 0x16, 0x15, 0x16, 0x17, 0x16, 0x06, 0x27, + 0x2E, 0x01, 0x35, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x01, 0x0B, 0x06, 0x4A, 0x06, 0x07, 0x0E, 0x80, 0x0E, 0x75, 0x05, 0x06, 0x0E, + 0x07, 0x04, 0x05, 0x2E, 0x57, 0x3D, 0x39, 0x52, 0x01, 0x02, 0x30, 0x05, 0x04, 0x07, 0x0E, 0x06, 0x05, 0x1D, 0x3B, 0x29, 0x25, 0x35, 0x02, 0x02, 0x05, + 0xBA, 0x83, 0x46, 0x38, 0x03, 0x06, 0x01, 0x04, 0x01, 0x25, 0x2C, 0x68, 0x48, 0x49, 0x67, 0x2A, 0x24, 0x03, 0x01, 0x04, 0x01, 0x06, 0x03, 0x39, 0x45, + 0xC5, 0x36, 0x25, 0x25, 0x36, 0x25, 0x29, 0x17, 0x17, 0x19, 0x55, 0x17, 0x2C, 0x2C, 0x17, 0x55, 0xAF, 0x05, 0x04, 0x0A, 0x0F, 0x08, 0x06, 0x2B, 0x3E, + 0x3D, 0x55, 0x02, 0x02, 0x51, 0x39, 0x41, 0x2C, 0x06, 0x08, 0x0F, 0x0A, 0x04, 0x05, 0x1D, 0x28, 0x29, 0x39, 0x02, 0x02, 0x35, 0x25, 0x2B, 0x01, 0x03, + 0x83, 0x5D, 0x42, 0x6C, 0x1B, 0x02, 0x04, 0x04, 0x1B, 0x14, 0x18, 0x4E, 0x2E, 0x49, 0x67, 0x67, 0x48, 0x2D, 0x4E, 0x18, 0x02, 0x03, 0x13, 0x19, 0x04, + 0x04, 0x02, 0x1B, 0x6C, 0x42, 0x5D, 0x1D, 0x25, 0x36, 0x25, 0x25, 0x36, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, + 0x00, 0x0F, 0x00, 0x17, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x05, 0x35, 0x34, + 0x23, 0x21, 0x22, 0x1D, 0x01, 0x01, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x90, 0x0C, 0xFE, 0x98, 0x0C, 0x01, 0xA0, + 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xA0, 0x54, 0x0C, 0x0C, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, + 0xE0, 0x02, 0x00, 0x00, 0x60, 0x00, 0x0F, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, + 0x01, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x60, 0x1C, 0x14, 0x20, 0x14, 0x1C, 0x1C, 0x14, 0x20, 0x14, 0x1C, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x21, 0x00, 0x29, 0x00, 0x00, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, + 0x35, 0x34, 0x26, 0x2B, 0x01, 0x35, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x07, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, + 0x21, 0x32, 0x16, 0x07, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x33, 0x02, 0x00, 0x1C, 0x14, 0x30, 0x2F, 0x21, 0xD0, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, + 0x80, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, 0x44, 0x0C, 0xE4, 0x0C, 0xFC, 0x01, 0x90, 0xFE, 0xE0, 0x14, 0x1C, 0xD0, + 0x21, 0x2F, 0x30, 0x14, 0x1C, 0x1C, 0x94, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, 0x1C, 0x30, 0x0C, 0x0C, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x09, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x5F, 0x00, 0x6F, 0x00, + 0x7F, 0x00, 0x8F, 0x00, 0x00, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x15, 0x14, 0x2B, + 0x01, 0x15, 0x14, 0x2B, 0x01, 0x35, 0x33, 0x32, 0x1D, 0x01, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x35, 0x33, 0x32, 0x1D, + 0x01, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x35, 0x33, 0x32, 0x1D, 0x01, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, + 0x14, 0x2B, 0x01, 0x35, 0x33, 0x32, 0x1D, 0x01, 0x33, 0x32, 0x25, 0x33, 0x15, 0x23, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, + 0x34, 0x37, 0x33, 0x15, 0x23, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x37, 0x33, 0x15, 0x23, 0x22, 0x3D, 0x01, 0x23, + 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x37, 0x33, 0x15, 0x23, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x01, + 0xA0, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x60, 0x06, 0x12, 0x06, 0x2A, 0x2A, 0x06, 0x12, 0x06, 0x06, 0x12, 0x06, 0x2A, 0x2A, + 0x06, 0x12, 0x06, 0x06, 0x12, 0x06, 0x2A, 0x2A, 0x06, 0x12, 0x06, 0x06, 0x12, 0x06, 0x2A, 0x2A, 0x06, 0x12, 0x06, 0xFE, 0x1E, 0x2A, 0x2A, 0x06, 0x12, + 0x06, 0x06, 0x12, 0x06, 0x2A, 0x2A, 0x06, 0x12, 0x06, 0x06, 0x12, 0x06, 0x2A, 0x2A, 0x06, 0x12, 0x06, 0x06, 0x12, 0x06, 0x2A, 0x2A, 0x06, 0x12, 0x06, + 0x06, 0x12, 0x01, 0x90, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, 0x1C, 0x4E, 0x0C, 0x06, 0x06, 0x06, 0x30, 0x06, 0x06, 0x66, 0x0C, + 0x06, 0x06, 0x06, 0x30, 0x06, 0x06, 0x66, 0x0C, 0x06, 0x06, 0x06, 0x30, 0x06, 0x06, 0x66, 0x0C, 0x06, 0x06, 0x06, 0x30, 0x06, 0x06, 0x0C, 0x30, 0x06, + 0x06, 0x06, 0x0C, 0x06, 0x06, 0x06, 0x60, 0x30, 0x06, 0x06, 0x06, 0x0C, 0x06, 0x06, 0x06, 0x60, 0x30, 0x06, 0x06, 0x06, 0x0C, 0x06, 0x06, 0x06, 0x60, + 0x30, 0x06, 0x06, 0x06, 0x0C, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFA, 0xFF, 0xC0, 0x01, 0xC6, 0x01, 0xC0, 0x00, 0xA5, 0x00, 0x00, + 0x25, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x17, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x02, 0x15, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, + 0x2F, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x35, 0x0F, 0x01, 0x0E, 0x01, + 0x2F, 0x01, 0x2E, 0x01, 0x3F, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x37, 0x27, 0x07, + 0x06, 0x26, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x16, 0x1F, 0x02, 0x35, + 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, + 0x01, 0x15, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x1E, 0x01, 0x0F, 0x01, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x0E, + 0x01, 0x2F, 0x01, 0x07, 0x17, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x01, 0xB8, 0x06, 0x03, 0x03, 0x10, 0x07, 0x0E, 0x21, 0x06, 0x02, + 0x06, 0x06, 0x0F, 0x06, 0x0C, 0x01, 0x13, 0x3F, 0x35, 0x05, 0x05, 0x0B, 0x05, 0x0D, 0x04, 0x14, 0x0A, 0x06, 0x20, 0x07, 0x09, 0x14, 0x05, 0x0D, 0x04, + 0x0C, 0x05, 0x05, 0x36, 0x3F, 0x13, 0x02, 0x0B, 0x06, 0x0F, 0x06, 0x06, 0x01, 0x07, 0x21, 0x0E, 0x07, 0x10, 0x08, 0x0E, 0x22, 0x1A, 0x07, 0x06, 0x02, + 0x04, 0x01, 0x0B, 0x07, 0x46, 0x40, 0x40, 0x46, 0x07, 0x0B, 0x01, 0x04, 0x02, 0x06, 0x07, 0x1A, 0x22, 0x0E, 0x08, 0x10, 0x07, 0x0E, 0x21, 0x06, 0x02, + 0x06, 0x06, 0x0F, 0x06, 0x0C, 0x01, 0x13, 0x3F, 0x36, 0x04, 0x04, 0x0C, 0x0B, 0x0B, 0x14, 0x09, 0x07, 0x20, 0x07, 0x09, 0x14, 0x04, 0x0E, 0x04, 0x0C, + 0x04, 0x04, 0x36, 0x3F, 0x13, 0x01, 0x0C, 0x06, 0x0F, 0x06, 0x06, 0x02, 0x06, 0x21, 0x0E, 0x07, 0x10, 0x07, 0x0D, 0x22, 0x1A, 0x07, 0x06, 0x02, 0x04, + 0x01, 0x0B, 0x07, 0x46, 0x40, 0x40, 0x46, 0x07, 0x0B, 0x01, 0x04, 0x02, 0x06, 0x07, 0x1A, 0x67, 0x03, 0x0D, 0x05, 0x1B, 0x0D, 0x07, 0x14, 0x1A, 0x06, + 0x0B, 0x02, 0x04, 0x02, 0x07, 0x06, 0x47, 0x24, 0x4E, 0x35, 0x05, 0x0D, 0x05, 0x0B, 0x05, 0x05, 0x13, 0x28, 0x07, 0x09, 0x09, 0x07, 0x28, 0x13, 0x05, + 0x05, 0x0B, 0x05, 0x0D, 0x04, 0x36, 0x4E, 0x24, 0x47, 0x06, 0x07, 0x02, 0x04, 0x01, 0x0C, 0x06, 0x1A, 0x14, 0x07, 0x0D, 0x1B, 0x0D, 0x08, 0x13, 0x07, + 0x02, 0x0B, 0x06, 0x0F, 0x06, 0x07, 0x02, 0x13, 0x25, 0x25, 0x13, 0x02, 0x07, 0x06, 0x0F, 0x06, 0x0B, 0x02, 0x07, 0x13, 0x08, 0x0D, 0x1B, 0x0D, 0x07, + 0x14, 0x1A, 0x06, 0x0B, 0x02, 0x04, 0x02, 0x07, 0x06, 0x47, 0x24, 0x4E, 0x35, 0x05, 0x0D, 0x05, 0x0B, 0x0C, 0x0C, 0x13, 0x28, 0x07, 0x09, 0x09, 0x07, + 0x28, 0x13, 0x05, 0x05, 0x0B, 0x05, 0x0D, 0x05, 0x35, 0x4E, 0x24, 0x47, 0x06, 0x07, 0x02, 0x04, 0x02, 0x0B, 0x06, 0x1A, 0x14, 0x07, 0x0D, 0x1B, 0x0D, + 0x08, 0x13, 0x07, 0x02, 0x0B, 0x06, 0x0F, 0x06, 0x07, 0x02, 0x13, 0x25, 0x25, 0x13, 0x02, 0x07, 0x06, 0x0F, 0x06, 0x0B, 0x02, 0x07, 0x00, 0x00, 0x00, + 0x01, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x09, 0x01, 0xC9, 0x00, 0x14, 0x00, 0x00, 0x01, 0x16, 0x06, 0x07, 0x0E, 0x01, 0x27, 0x07, 0x06, 0x22, 0x2F, 0x01, + 0x26, 0x34, 0x3F, 0x01, 0x26, 0x36, 0x37, 0x3E, 0x01, 0x01, 0xE0, 0x28, 0x14, 0x30, 0x24, 0x58, 0x25, 0xC0, 0x08, 0x17, 0x09, 0x33, 0x08, 0x09, 0xD7, + 0x15, 0x0D, 0x24, 0x31, 0x89, 0x01, 0xA0, 0x2A, 0x89, 0x31, 0x24, 0x0D, 0x15, 0xD7, 0x09, 0x08, 0x33, 0x09, 0x17, 0x08, 0xC0, 0x25, 0x58, 0x24, 0x30, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xA0, 0x01, 0xC1, 0x00, 0x29, 0x00, 0x3B, 0x00, 0x00, 0x13, 0x16, 0x15, 0x14, 0x06, + 0x07, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x2E, 0x01, 0x35, 0x34, 0x37, 0x36, 0x32, 0x17, 0x15, 0x16, 0x32, 0x37, 0x3E, 0x02, 0x35, + 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x35, 0x36, 0x32, 0x13, 0x2E, 0x01, 0x3E, 0x02, 0x33, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x37, 0xD0, 0x10, 0x25, 0x20, 0x0D, 0x01, 0x0F, 0x0A, 0x40, 0x0A, 0x0F, 0x01, 0x0D, 0x20, 0x25, 0x10, 0x02, 0x2C, 0x02, 0x01, 0x0E, 0x01, + 0x01, 0x04, 0x03, 0x02, 0x2C, 0x02, 0x01, 0x07, 0x01, 0x0E, 0x01, 0x02, 0x2C, 0x79, 0x2C, 0x22, 0x13, 0x2A, 0x39, 0x19, 0x0A, 0x0E, 0x0E, 0x0A, 0x38, + 0x0B, 0x0E, 0x01, 0x01, 0xB1, 0x5F, 0x22, 0x26, 0x37, 0x0C, 0xEE, 0x0A, 0x0F, 0x0F, 0x0A, 0xEE, 0x0C, 0x37, 0x26, 0x22, 0x5F, 0x0F, 0x10, 0x8E, 0x02, + 0x02, 0x0B, 0x47, 0x3B, 0x01, 0x10, 0x10, 0x08, 0x86, 0x02, 0x02, 0x8E, 0x10, 0xFE, 0xD3, 0x23, 0x56, 0x4C, 0x42, 0x26, 0x0E, 0x0A, 0xFE, 0x30, 0x0A, + 0x0E, 0x10, 0x0A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF9, 0x01, 0xB9, 0x00, 0x24, 0x00, 0x00, 0x01, 0x32, 0x16, 0x14, 0x06, 0x23, + 0x22, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x17, 0x16, 0x33, 0x32, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x07, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x1F, 0x01, 0x36, 0x01, 0x00, 0x66, 0x92, 0x91, 0x67, 0x5F, 0x47, 0x0A, 0x09, 0x28, 0x08, 0x08, 0x30, 0x3F, 0x46, 0x61, 0x01, 0x01, + 0x65, 0x45, 0x42, 0x30, 0x2A, 0x0B, 0x0C, 0x10, 0x86, 0x0A, 0x0E, 0x1E, 0x0B, 0x24, 0x47, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x40, 0x08, 0x09, 0x28, 0x08, + 0x07, 0x2A, 0x62, 0x45, 0x47, 0x63, 0x01, 0x01, 0x2C, 0x2A, 0x0B, 0x1E, 0x0E, 0x0A, 0x86, 0x10, 0x0C, 0x0B, 0x24, 0x45, 0x00, 0x00, 0x05, 0x00, 0x00, + 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC1, 0x00, 0x09, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2D, 0x00, 0x45, 0x00, 0x00, 0x17, 0x11, 0x21, 0x11, 0x14, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x01, 0x15, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x06, 0x07, 0x15, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, + 0x22, 0x06, 0x07, 0x15, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x06, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x20, 0x01, 0x80, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x01, 0x10, 0x09, + 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x60, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x60, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0x40, 0x07, 0x09, 0x09, 0x07, + 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x78, 0x09, 0x07, 0x0F, 0x72, 0x0F, 0x07, 0x09, 0x10, 0x01, 0x50, 0xFE, 0xB0, 0x14, 0x1C, 0x1C, 0x01, 0x14, 0xE0, + 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xE0, + 0x07, 0x09, 0x09, 0xA9, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x13, 0x0D, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, + 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x1C, 0x00, 0x39, 0x00, 0x00, 0x01, 0x26, 0x23, 0x22, 0x06, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x37, 0x3E, + 0x01, 0x33, 0x32, 0x17, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x37, 0x05, 0x33, 0x32, 0x16, 0x0F, 0x01, 0x16, 0x33, 0x32, + 0x36, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x07, 0x0E, 0x01, 0x23, 0x22, 0x27, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x01, 0x73, 0x31, 0x42, 0x3A, + 0x5B, 0x0E, 0x02, 0x0A, 0x39, 0x06, 0x07, 0x01, 0x11, 0x89, 0x5A, 0x63, 0x48, 0x24, 0x0B, 0x1E, 0x0E, 0x0A, 0x86, 0x10, 0x0C, 0x0B, 0xFE, 0xD7, 0x86, + 0x10, 0x0C, 0x0B, 0x2A, 0x31, 0x42, 0x3A, 0x5B, 0x0E, 0x02, 0x0A, 0x39, 0x06, 0x07, 0x01, 0x11, 0x89, 0x5A, 0x63, 0x48, 0x24, 0x0B, 0x1E, 0x0E, 0x01, + 0x3B, 0x2D, 0x47, 0x38, 0x09, 0x09, 0x05, 0x57, 0x73, 0x45, 0x24, 0x0B, 0x0C, 0x10, 0x86, 0x0A, 0x0E, 0x1E, 0x0B, 0x79, 0x1E, 0x0B, 0x2A, 0x2D, 0x47, + 0x38, 0x09, 0x09, 0x05, 0x57, 0x73, 0x45, 0x24, 0x0B, 0x0C, 0x10, 0x86, 0x0A, 0x0E, 0x00, 0x02, 0x00, 0x10, 0xFF, 0xC0, 0x01, 0xB6, 0x01, 0xC0, 0x00, + 0x22, 0x00, 0x30, 0x00, 0x00, 0x25, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x35, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, + 0x14, 0x2B, 0x01, 0x15, 0x16, 0x17, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x02, 0x16, 0x07, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, + 0x3B, 0x01, 0x32, 0x01, 0xB0, 0x7A, 0xAC, 0x7A, 0x65, 0x4B, 0x1C, 0x0C, 0x0C, 0x78, 0x0C, 0x0C, 0x1C, 0x38, 0x2C, 0x1B, 0x09, 0x08, 0x1C, 0x09, 0x09, + 0x1D, 0x01, 0x22, 0xB0, 0x07, 0x05, 0x28, 0x05, 0x07, 0x0C, 0x28, 0x0C, 0x90, 0x56, 0x7A, 0x7A, 0x56, 0x4D, 0x75, 0x0C, 0x22, 0x0C, 0x28, 0x0C, 0x0C, + 0x28, 0x0C, 0x22, 0x09, 0x24, 0x1B, 0x09, 0x09, 0x1C, 0x08, 0x09, 0x1D, 0x01, 0x33, 0x62, 0x98, 0x04, 0x08, 0x08, 0x04, 0x98, 0x0C, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xFC, 0x01, 0xF8, 0x01, 0x84, 0x00, 0x15, 0x00, 0x31, 0x00, 0x00, 0x25, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x14, 0x05, 0x14, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x15, 0x01, 0xF1, 0xA8, 0x0B, 0x1E, 0x88, 0x0A, 0x0E, 0x0E, + 0x0A, 0x88, 0x1E, 0x0B, 0xA8, 0x07, 0xFE, 0xC8, 0x0C, 0x54, 0x28, 0x38, 0x38, 0x28, 0x54, 0x0C, 0x0C, 0x54, 0x0D, 0x13, 0x13, 0x0D, 0x54, 0x0C, 0xAF, + 0xA8, 0x0B, 0x0C, 0x10, 0x60, 0x0E, 0x0A, 0x60, 0x0A, 0x0E, 0x60, 0x10, 0x0C, 0x0B, 0xA8, 0x07, 0x14, 0xAA, 0x0C, 0x38, 0x28, 0xC0, 0x28, 0x38, 0x0C, + 0x28, 0x0C, 0x13, 0x0D, 0xC0, 0x0D, 0x13, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xF4, 0x02, 0x00, 0x01, 0x80, 0x00, 0x1B, 0x00, 0x31, + 0x00, 0x00, 0x21, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x27, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, + 0x36, 0x17, 0x01, 0xA0, 0x54, 0x0C, 0x0C, 0x54, 0x0D, 0x13, 0x13, 0x0D, 0x54, 0x0C, 0x0C, 0x54, 0x28, 0x38, 0x38, 0x57, 0x07, 0x07, 0xA8, 0x0B, 0x1E, + 0x88, 0x0A, 0x0E, 0x0E, 0x0A, 0x88, 0x1E, 0x0B, 0x0C, 0x28, 0x0C, 0x13, 0x0D, 0xC0, 0x0D, 0x13, 0x0C, 0x28, 0x0C, 0x38, 0x28, 0xC0, 0x28, 0x38, 0xC9, + 0x07, 0x14, 0x07, 0xA8, 0x0B, 0x0C, 0x10, 0x60, 0x0E, 0x0A, 0x60, 0x0A, 0x0E, 0x60, 0x10, 0x0C, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x07, 0xFF, 0xC8, 0x01, + 0xF8, 0x01, 0xB9, 0x00, 0x24, 0x00, 0x00, 0x01, 0x32, 0x17, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x26, 0x27, + 0x26, 0x06, 0x17, 0x1E, 0x01, 0x33, 0x32, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x07, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x01, 0x00, 0x64, 0x47, 0x24, 0x0B, + 0x1E, 0x0E, 0x0A, 0x86, 0x10, 0x0C, 0x0B, 0x2A, 0x30, 0x42, 0x45, 0x65, 0x01, 0x01, 0x61, 0x46, 0x3F, 0x30, 0x08, 0x08, 0x28, 0x09, 0x0A, 0x47, 0x5F, + 0x67, 0x91, 0x92, 0x01, 0xB8, 0x45, 0x24, 0x0B, 0x0C, 0x10, 0x86, 0x0A, 0x0E, 0x1E, 0x0B, 0x2A, 0x2C, 0x01, 0x01, 0x63, 0x47, 0x45, 0x62, 0x2A, 0x07, + 0x08, 0x28, 0x09, 0x08, 0x40, 0x91, 0xCE, 0x91, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x30, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x4C, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x26, + 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x36, 0x35, 0x34, 0x27, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x32, + 0x16, 0x15, 0x14, 0x24, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x36, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x17, 0x1E, 0x01, 0x32, 0x36, 0x26, 0x32, + 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xC3, 0x1A, 0x23, 0x2A, 0x1E, 0xFE, 0x90, 0x1E, 0x2A, 0x23, 0x1A, 0x1D, 0x2A, 0x1E, 0x0E, 0x16, 0x26, 0x1A, + 0x10, 0x21, 0x2F, 0x0F, 0x09, 0x06, 0x28, 0x38, 0x06, 0x06, 0x1A, 0x26, 0x16, 0x0E, 0x1E, 0x2A, 0xFE, 0xED, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x80, 0x01, + 0x05, 0x04, 0xB0, 0x04, 0x05, 0x01, 0x08, 0x3C, 0x38, 0x3C, 0x25, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x4F, 0x04, 0x28, 0x1B, 0x1E, 0x2A, 0x2A, 0x1E, 0x1B, + 0x28, 0x04, 0x16, 0x23, 0x1E, 0x2A, 0x13, 0x1D, 0x1A, 0x26, 0x2F, 0x21, 0x19, 0x15, 0x02, 0x38, 0x28, 0x0F, 0x11, 0x26, 0x1A, 0x1D, 0x13, 0x2A, 0x1E, + 0x23, 0x5B, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x78, 0x04, 0x07, 0x07, 0x04, 0x15, 0x20, 0x20, 0x60, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x04, 0x00, 0x00, + 0xFF, 0xE0, 0x02, 0x40, 0x01, 0xA0, 0x00, 0x11, 0x00, 0x21, 0x00, 0x29, 0x00, 0x34, 0x00, 0x00, 0x25, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, + 0x11, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x33, 0x25, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, + 0x04, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x07, 0x15, 0x21, 0x35, 0x27, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x07, 0x01, 0xE0, 0x1C, 0x14, 0xFE, 0x80, + 0x14, 0x1C, 0x1C, 0x14, 0x10, 0x2F, 0x21, 0x01, 0xB0, 0x1C, 0x14, 0xFE, 0x80, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x80, 0x14, 0x1C, 0xFE, 0xC0, 0x1C, 0x28, + 0x1C, 0x1C, 0x28, 0x44, 0x01, 0x60, 0x58, 0x08, 0x08, 0x88, 0x28, 0x08, 0x08, 0x20, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x00, 0x14, 0x1C, 0xD0, 0x21, + 0x2F, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x00, 0x14, 0x1C, 0x1C, 0x14, 0x44, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x60, 0x30, 0x70, 0x58, 0x08, 0x08, 0x88, + 0x28, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0xFF, 0xBE, 0x02, 0x01, 0x01, 0xC0, 0x00, 0x0D, 0x00, 0x19, 0x00, 0x21, 0x00, 0x28, 0x00, + 0x00, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x27, 0x36, 0x1F, 0x01, 0x16, 0x07, 0x01, 0x07, 0x06, 0x26, + 0x3F, 0x01, 0x36, 0x16, 0x3F, 0x01, 0x36, 0x26, 0x0F, 0x02, 0x35, 0x23, 0x07, 0x17, 0x37, 0x35, 0x01, 0xF2, 0x2E, 0x09, 0x08, 0x6F, 0x09, 0x09, 0x2E, + 0x0E, 0x28, 0x0E, 0x3C, 0x0E, 0xE4, 0x09, 0x08, 0x6F, 0x09, 0x09, 0xFE, 0xFA, 0x7A, 0x0C, 0x12, 0x02, 0x16, 0x5C, 0x14, 0x0A, 0x9A, 0x0A, 0x14, 0x0A, + 0x9A, 0x24, 0x24, 0x0C, 0x20, 0x40, 0x01, 0x32, 0x2E, 0x09, 0x09, 0x6F, 0x08, 0x09, 0x2E, 0x0E, 0x0E, 0x3C, 0x0E, 0x28, 0x1C, 0x09, 0x09, 0x6F, 0x08, + 0x09, 0xFE, 0xFA, 0x16, 0x02, 0x12, 0x0C, 0x7A, 0x20, 0x14, 0x0A, 0x9A, 0x0A, 0x14, 0x0A, 0x9A, 0x68, 0x30, 0x40, 0x20, 0x0C, 0x24, 0x00, 0x00, 0x00, + 0x00, 0x02, 0xFF, 0xFE, 0xFF, 0xBE, 0x02, 0x01, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x01, 0x17, 0x01, 0x07, 0x06, 0x26, 0x3F, 0x01, 0x01, + 0x16, 0x14, 0x0F, 0x01, 0x27, 0x37, 0x36, 0x32, 0x17, 0x01, 0x23, 0x80, 0xFE, 0xEA, 0x72, 0x0C, 0x10, 0x01, 0x0D, 0x01, 0xE5, 0x0E, 0x0E, 0x39, 0x80, + 0x39, 0x0E, 0x28, 0x0E, 0x01, 0x63, 0x80, 0xFE, 0xEA, 0x0D, 0x01, 0x10, 0x0C, 0x72, 0x01, 0x29, 0x0E, 0x28, 0x0E, 0x39, 0x80, 0x39, 0x0E, 0x0E, 0x00, + 0x00, 0x00, 0x02, 0xFF, 0xFE, 0xFF, 0xBE, 0x02, 0x01, 0x01, 0xC1, 0x00, 0x09, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x27, 0x37, 0x36, + 0x32, 0x17, 0x07, 0x1F, 0x01, 0x07, 0x06, 0x07, 0x06, 0x26, 0x37, 0x36, 0x3F, 0x01, 0x27, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x01, + 0xF2, 0x0E, 0x0E, 0x39, 0x80, 0x39, 0x0E, 0x28, 0x0E, 0xBB, 0x55, 0x53, 0xC5, 0x51, 0x72, 0x0C, 0x10, 0x01, 0x0D, 0x51, 0x98, 0x17, 0x66, 0x0B, 0x0C, + 0x16, 0x0C, 0x0C, 0x77, 0x0B, 0x21, 0x01, 0x76, 0x0E, 0x28, 0x0E, 0x39, 0x80, 0x39, 0x0E, 0x0E, 0x28, 0x54, 0x53, 0xC5, 0x51, 0x0D, 0x01, 0x10, 0x0C, + 0x72, 0x51, 0x98, 0x16, 0x66, 0x0B, 0x0B, 0x17, 0x0B, 0x0C, 0x76, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x0D, 0xFF, 0xDF, 0x00, 0xF3, 0x01, 0xA0, 0x00, 0x13, + 0x00, 0x00, 0x37, 0x33, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x11, 0x34, 0x3B, 0x01, 0x32, 0x15, 0xA8, 0x2E, 0x10, + 0x0C, 0x0B, 0x56, 0x07, 0x14, 0x07, 0x56, 0x0B, 0x0C, 0x10, 0x2E, 0x0C, 0x38, 0x0C, 0x66, 0x1E, 0x0B, 0x56, 0x07, 0x07, 0x56, 0x0B, 0x1E, 0x01, 0x2E, + 0x0C, 0x0C, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x4D, 0x01, 0xC0, 0x01, 0x33, 0x00, 0x13, 0x00, 0x00, 0x37, 0x15, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x34, 0x3F, + 0x01, 0x36, 0x16, 0x1D, 0x01, 0x21, 0x32, 0x1D, 0x01, 0x14, 0x23, 0x86, 0x1E, 0x0B, 0x56, 0x07, 0x07, 0x56, 0x0B, 0x1E, 0x01, 0x2E, 0x0C, 0x0C, 0x98, + 0x2E, 0x10, 0x0C, 0x0B, 0x56, 0x07, 0x14, 0x07, 0x56, 0x0B, 0x0C, 0x10, 0x2E, 0x0C, 0x38, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4D, 0x01, 0xC1, 0x01, + 0x33, 0x00, 0x13, 0x00, 0x00, 0x25, 0x35, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x21, 0x22, 0x3D, 0x01, 0x34, 0x33, + 0x01, 0x3A, 0x1E, 0x0B, 0x56, 0x07, 0x07, 0x56, 0x0B, 0x1E, 0xFE, 0xD2, 0x0C, 0x0C, 0xE8, 0x2E, 0x10, 0x0C, 0x0B, 0x56, 0x07, 0x14, 0x07, 0x56, 0x0B, + 0x0C, 0x10, 0x2E, 0x0C, 0x38, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0D, 0xFF, 0xE0, 0x00, 0xF3, 0x01, 0xA1, 0x00, 0x13, 0x00, 0x00, 0x13, 0x23, + 0x22, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x11, 0x14, 0x2B, 0x01, 0x22, 0x35, 0x58, 0x2E, 0x10, 0x0C, 0x0B, 0x56, 0x07, + 0x14, 0x07, 0x56, 0x0B, 0x0C, 0x10, 0x2E, 0x0C, 0x38, 0x0C, 0x01, 0x1A, 0x1E, 0x0B, 0x56, 0x07, 0x07, 0x56, 0x0B, 0x1E, 0xFE, 0xD2, 0x0C, 0x0C, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xDF, 0x01, 0xC1, 0x01, 0xA1, 0x00, 0x3B, 0x00, 0x00, 0x25, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, + 0x01, 0x27, 0x07, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x1F, 0x01, 0x37, 0x27, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x17, 0x37, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, 0x07, 0x17, 0x37, 0x36, + 0x16, 0x01, 0xC0, 0x0E, 0x0A, 0x70, 0x10, 0x0C, 0x0B, 0x24, 0x6B, 0x6B, 0x24, 0x0B, 0x0C, 0x10, 0x70, 0x0A, 0x0E, 0x1E, 0x0B, 0x24, 0x6B, 0x6B, 0x24, + 0x0B, 0x1E, 0x0E, 0x0A, 0x70, 0x10, 0x0C, 0x0B, 0x24, 0x6B, 0x6B, 0x24, 0x0B, 0x0C, 0x10, 0x70, 0x0A, 0x0E, 0x1E, 0x0B, 0x24, 0x6B, 0x6B, 0x24, 0x0B, + 0x1E, 0x68, 0x70, 0x0A, 0x0E, 0x1E, 0x0B, 0x24, 0x6B, 0x6B, 0x24, 0x0B, 0x1E, 0x0E, 0x0A, 0x70, 0x10, 0x0C, 0x0B, 0x24, 0x6B, 0x6B, 0x24, 0x0B, 0x0C, + 0x10, 0x70, 0x0A, 0x0E, 0x1E, 0x0B, 0x24, 0x6B, 0x6B, 0x24, 0x0B, 0x1E, 0x0E, 0x0A, 0x70, 0x10, 0x0C, 0x0B, 0x24, 0x6B, 0x6B, 0x24, 0x0B, 0x0C, 0x00, + 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x1D, 0x00, 0x29, 0x00, 0x00, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x34, 0x36, 0x32, 0x16, 0x15, 0x33, 0x32, 0x16, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x35, 0x34, + 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x01, 0x80, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x50, 0x26, 0x34, 0x26, 0x50, 0x14, + 0x1C, 0xB6, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x48, 0x06, 0xB4, 0x06, 0x06, 0xB4, 0x06, 0x01, 0x50, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, + 0x1C, 0x1A, 0x26, 0x26, 0x1A, 0x1C, 0x34, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x64, 0x14, 0x06, 0x06, 0x14, 0x06, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x4D, + 0x02, 0x01, 0x01, 0x33, 0x00, 0x1B, 0x00, 0x00, 0x01, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, + 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x16, 0x1D, 0x01, 0x33, 0x01, 0x7A, 0x1E, 0x0B, 0x56, 0x07, 0x07, 0x56, 0x0B, 0x1E, 0xF4, 0x1E, 0x0B, 0x56, + 0x07, 0x07, 0x56, 0x0B, 0x1E, 0xF4, 0x01, 0x16, 0x10, 0x0C, 0x0B, 0x56, 0x07, 0x14, 0x07, 0x56, 0x0B, 0x0C, 0x10, 0x2E, 0x2E, 0x10, 0x0C, 0x0B, 0x56, + 0x07, 0x14, 0x07, 0x56, 0x0B, 0x0C, 0x10, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0D, 0xFF, 0xBF, 0x00, 0xF3, 0x01, 0xC1, 0x00, 0x1B, 0x00, 0x00, + 0x37, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x06, + 0x2B, 0x01, 0x15, 0xD6, 0x10, 0x0C, 0x0B, 0x56, 0x07, 0x14, 0x07, 0x56, 0x0B, 0x0C, 0x10, 0x2E, 0x2E, 0x10, 0x0C, 0x0B, 0x56, 0x07, 0x14, 0x07, 0x56, + 0x0B, 0x0C, 0x10, 0x2E, 0x46, 0x1E, 0x0B, 0x56, 0x07, 0x07, 0x56, 0x0B, 0x1E, 0xF4, 0x1E, 0x0B, 0x56, 0x07, 0x07, 0x56, 0x0B, 0x1E, 0xF4, 0x00, 0x00, + 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x07, 0x15, + 0x23, 0x22, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x36, 0x26, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x01, 0xF8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x93, + 0x47, 0x08, 0x06, 0x06, 0x73, 0x08, 0x08, 0x73, 0x06, 0x06, 0x08, 0x47, 0x0C, 0x40, 0x0C, 0x01, 0x27, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x84, 0x74, 0x0F, + 0x05, 0x73, 0x08, 0x08, 0x73, 0x05, 0x0F, 0x74, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, + 0x1A, 0x00, 0x00, 0x04, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x27, 0x23, 0x35, 0x34, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x16, 0x36, 0x3D, 0x01, + 0x33, 0x32, 0x3D, 0x01, 0x34, 0x01, 0x67, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x84, 0x74, 0x0F, 0x05, 0x73, 0x08, 0x08, 0x73, 0x05, 0x0F, 0x74, 0x0C, 0x38, + 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x93, 0x47, 0x08, 0x06, 0x06, 0x73, 0x08, 0x08, 0x73, 0x06, 0x06, 0x08, 0x47, 0x0C, 0x40, 0x0C, 0x00, 0x02, 0x00, 0x08, + 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x1A, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x33, 0x15, 0x14, 0x16, + 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x26, 0x06, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x99, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x84, 0x74, 0x0F, 0x05, 0x73, + 0x08, 0x08, 0x73, 0x05, 0x0F, 0x74, 0x0C, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x93, 0x47, 0x08, 0x06, 0x06, 0x73, 0x08, 0x08, 0x73, 0x06, 0x06, + 0x08, 0x47, 0x0C, 0x40, 0x0C, 0x00, 0x02, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x1A, 0x00, 0x00, 0x36, 0x34, 0x36, 0x32, + 0x16, 0x14, 0x06, 0x22, 0x37, 0x35, 0x33, 0x32, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x06, 0x16, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x08, 0x91, + 0xCE, 0x91, 0x91, 0xCE, 0x93, 0x47, 0x08, 0x06, 0x06, 0x73, 0x08, 0x08, 0x73, 0x06, 0x06, 0x08, 0x47, 0x0C, 0x40, 0x0C, 0x59, 0xCE, 0x91, 0x91, 0xCE, + 0x91, 0x84, 0x74, 0x0F, 0x05, 0x73, 0x08, 0x08, 0x73, 0x05, 0x0F, 0x74, 0x0C, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, + 0x1E, 0x00, 0x34, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x2B, 0x01, 0x11, 0x21, 0x35, 0x34, 0x36, 0x33, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, + 0x26, 0x34, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x33, 0x01, 0xB0, 0x07, 0x09, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0xA0, 0x07, 0x09, 0x09, 0x07, + 0x90, 0x01, 0x40, 0x09, 0x07, 0x58, 0x0A, 0x0E, 0x1E, 0x0B, 0x24, 0xF3, 0x07, 0x14, 0x07, 0x17, 0x07, 0x07, 0xF4, 0x24, 0x0B, 0x0C, 0x10, 0x80, 0x09, + 0x07, 0x80, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x09, 0x07, 0x20, 0x07, 0x09, 0xFE, 0xC0, 0x70, 0x07, 0x09, 0x01, 0x40, 0x0E, 0x0A, 0x80, + 0x10, 0x0C, 0x0B, 0x24, 0xF4, 0x07, 0x07, 0x17, 0x07, 0x14, 0x07, 0xF3, 0x24, 0x0B, 0x1E, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, + 0xA0, 0x00, 0x0F, 0x00, 0x23, 0x00, 0x00, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x07, 0x23, + 0x22, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, + 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x58, 0x70, 0x10, 0x0C, 0x0B, 0x20, 0xC3, 0x09, 0x09, 0x1F, 0x08, 0x09, 0xC3, 0x20, 0x0B, 0x1E, 0x0E, 0x01, + 0x70, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x24, 0x1E, 0x0B, 0x20, 0xC3, 0x09, 0x08, 0x1F, 0x09, 0x09, 0xC3, 0x20, 0x0B, + 0x0C, 0x10, 0x70, 0x0A, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xF3, 0x02, 0x00, 0x01, 0x8D, 0x00, 0x15, 0x00, 0x2B, 0x00, 0x00, 0x11, 0x35, + 0x34, 0x36, 0x33, 0x21, 0x35, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x21, 0x22, 0x26, 0x05, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x21, 0x15, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x16, 0x1D, 0x01, 0x0E, 0x0A, 0x01, 0x68, 0x1E, 0x0B, 0x50, 0x07, + 0x07, 0x50, 0x0B, 0x1E, 0xFE, 0x98, 0x0A, 0x0E, 0x01, 0xE8, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0x98, 0x1E, 0x0B, 0x50, 0x07, 0x07, 0x50, 0x0B, 0x1E, 0x01, + 0x18, 0x10, 0x0A, 0x0E, 0x30, 0x10, 0x0C, 0x0B, 0x50, 0x07, 0x14, 0x07, 0x50, 0x0B, 0x0C, 0x10, 0x30, 0x0E, 0x8E, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x30, + 0x10, 0x0C, 0x0B, 0x50, 0x07, 0x14, 0x07, 0x50, 0x0B, 0x0C, 0x10, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, + 0x1B, 0x00, 0x30, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x34, 0x35, 0x34, 0x36, 0x33, 0x32, + 0x16, 0x17, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x36, 0x26, 0x2B, 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x22, 0x06, + 0x1F, 0x01, 0x16, 0x37, 0x02, 0x1A, 0x2C, 0x3A, 0x4B, 0x35, 0xFE, 0x90, 0x3C, 0x54, 0x36, 0x2A, 0x5E, 0x42, 0x2C, 0x4A, 0x15, 0x18, 0x1D, 0x28, 0x38, + 0x8B, 0x07, 0x08, 0x0B, 0x41, 0x09, 0x07, 0x30, 0x07, 0x09, 0x41, 0x0B, 0x08, 0x07, 0x6A, 0x0B, 0x0B, 0xDD, 0x09, 0x46, 0x2E, 0x35, 0x4B, 0x54, 0x3C, + 0x2F, 0x4A, 0x0F, 0x05, 0x03, 0x42, 0x5E, 0x2C, 0x24, 0x10, 0x38, 0x28, 0x12, 0x69, 0x07, 0x14, 0x70, 0x07, 0x09, 0x09, 0x07, 0x70, 0x14, 0x07, 0x6A, + 0x0B, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x1B, 0x00, 0x30, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x15, 0x14, + 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x34, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x32, + 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x06, 0x16, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x02, 0x1A, 0x2C, 0x3A, 0x4B, 0x35, + 0xFE, 0x90, 0x3C, 0x54, 0x36, 0x2A, 0x5E, 0x42, 0x2C, 0x4A, 0x15, 0x18, 0x1D, 0x28, 0x38, 0x97, 0x0B, 0x08, 0x07, 0x6A, 0x0B, 0x0B, 0x6A, 0x07, 0x08, + 0x0B, 0x41, 0x09, 0x07, 0x30, 0x07, 0x09, 0xDD, 0x09, 0x46, 0x2E, 0x35, 0x4B, 0x54, 0x3C, 0x2F, 0x4A, 0x0F, 0x05, 0x03, 0x42, 0x5E, 0x2C, 0x24, 0x10, + 0x38, 0x28, 0x12, 0x4E, 0x14, 0x07, 0x6A, 0x0B, 0x0B, 0x6A, 0x07, 0x14, 0x70, 0x07, 0x09, 0x09, 0x07, 0x70, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, + 0x02, 0x40, 0x01, 0xC0, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0B, 0x00, 0x11, 0x00, 0x17, 0x00, 0x1D, 0x00, 0x00, 0x01, 0x17, 0x23, 0x27, 0x23, 0x17, 0x21, + 0x37, 0x23, 0x33, 0x07, 0x23, 0x15, 0x33, 0x17, 0x16, 0x06, 0x27, 0x03, 0x21, 0x03, 0x06, 0x22, 0x27, 0x3F, 0x01, 0x33, 0x07, 0x06, 0x26, 0x01, 0xE6, + 0x5A, 0x65, 0x45, 0x30, 0x45, 0xFE, 0xEA, 0x45, 0x80, 0x50, 0x45, 0x65, 0x65, 0x7B, 0x01, 0x05, 0x01, 0x47, 0x01, 0x18, 0x89, 0x01, 0x04, 0x01, 0x43, + 0x7B, 0x65, 0xDB, 0x01, 0x05, 0x01, 0xC0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0x20, 0xFC, 0x02, 0x03, 0x02, 0x00, 0xFF, 0xFE, 0xC2, 0x02, 0x02, 0x42, 0xFC, + 0xFF, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFD, 0xFF, 0xBF, 0x01, 0x45, 0x01, 0xC0, 0x00, 0x19, 0x00, 0x00, 0x25, 0x07, 0x06, 0x22, 0x2F, + 0x01, 0x26, 0x36, 0x3B, 0x01, 0x11, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, 0x33, 0x32, 0x16, 0x01, 0x3A, 0x68, 0x08, + 0x14, 0x08, 0x68, 0x0A, 0x0C, 0x10, 0x40, 0x54, 0x05, 0x03, 0x38, 0x06, 0x06, 0x08, 0xC4, 0x0A, 0x0E, 0x40, 0x10, 0x0C, 0x38, 0x70, 0x08, 0x08, 0x70, + 0x0B, 0x1D, 0x01, 0x10, 0x04, 0x38, 0x05, 0x0F, 0x0E, 0x0A, 0xFE, 0xB8, 0x1D, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFD, 0xFF, 0xC0, 0x01, 0x45, 0x01, 0xC1, + 0x00, 0x19, 0x00, 0x00, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x11, 0x23, 0x22, 0x26, + 0x3F, 0x01, 0x36, 0x32, 0x17, 0x01, 0x3A, 0x0A, 0x0C, 0x10, 0x40, 0x0E, 0x0A, 0xC4, 0x08, 0x06, 0x06, 0x38, 0x03, 0x05, 0x54, 0x40, 0x10, 0x0C, 0x0A, + 0x68, 0x08, 0x14, 0x08, 0x01, 0x48, 0x0B, 0x1D, 0xFE, 0xB8, 0x0A, 0x0E, 0x0F, 0x05, 0x38, 0x04, 0x01, 0x10, 0x1D, 0x0B, 0x70, 0x08, 0x08, 0x00, 0x00, + 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC1, 0x00, 0x26, 0x00, 0x00, 0x00, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, + 0x35, 0x34, 0x01, 0x69, 0x7D, 0x5A, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x2B, 0x1E, 0x1D, 0x2A, 0x30, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, + 0x14, 0xE0, 0x01, 0xC0, 0x59, 0x3F, 0x50, 0x0A, 0x0E, 0x0E, 0x0A, 0x50, 0x1E, 0x2A, 0x2B, 0x1E, 0x47, 0x1C, 0x14, 0xC0, 0x14, 0x1C, 0x1C, 0x14, 0xC0, + 0x14, 0x1C, 0x46, 0x40, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xBF, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x00, 0x17, 0x2E, + 0x06, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x0E, 0x05, 0x07, 0x06, 0x22, 0x26, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0xAC, 0x18, 0x3D, 0x1A, + 0x22, 0x0B, 0x0D, 0x03, 0x70, 0xA0, 0x70, 0x03, 0x0D, 0x0B, 0x22, 0x1A, 0x3D, 0x18, 0x07, 0x1A, 0x14, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x36, 0x23, 0x58, + 0x24, 0x35, 0x16, 0x22, 0x19, 0x11, 0x50, 0x70, 0x70, 0x50, 0x11, 0x19, 0x22, 0x16, 0x35, 0x24, 0x58, 0x23, 0x0A, 0xF0, 0x2F, 0x42, 0x2F, 0x2F, 0x42, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x60, 0x01, 0xC0, 0x00, 0x30, 0x00, 0x52, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x07, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x17, 0x16, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x32, 0x16, 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, + 0x01, 0x14, 0x01, 0x50, 0x07, 0x09, 0x57, 0x41, 0x38, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x38, 0x41, 0x57, 0x09, 0x07, 0x10, 0x07, + 0x09, 0x42, 0x31, 0x39, 0x54, 0x09, 0x07, 0x68, 0x50, 0x38, 0x38, 0x50, 0x38, 0x55, 0x0B, 0x0B, 0x55, 0x55, 0x0B, 0x0B, 0x55, 0x55, 0x0B, 0x0B, 0x55, + 0x01, 0x00, 0x09, 0x07, 0x30, 0x42, 0x63, 0x09, 0x22, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x22, 0x09, 0x69, 0x44, 0x28, 0x07, + 0x09, 0x09, 0x07, 0x2A, 0x33, 0x4E, 0x04, 0x06, 0x4D, 0x38, 0x30, 0x07, 0x09, 0xA0, 0x38, 0x28, 0xA0, 0x28, 0x38, 0x38, 0x28, 0x08, 0x10, 0x08, 0x20, + 0x08, 0x10, 0x08, 0x20, 0x08, 0x10, 0x08, 0x28, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x40, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x17, + 0x00, 0x23, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x12, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x37, 0x11, 0x34, 0x2B, 0x01, 0x22, 0x15, 0x11, 0x14, 0x3B, 0x01, 0x32, 0x01, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x1C, + 0x14, 0x63, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x90, 0x0C, 0xC8, 0x0C, 0x0C, 0xC8, 0x0C, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x01, + 0xA0, 0x14, 0x1C, 0xFE, 0x20, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x59, 0x01, 0x38, 0x0C, 0x0C, 0xFE, 0xC8, 0x0C, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x80, 0x01, 0x80, 0x00, 0x1D, 0x00, 0x2D, 0x00, 0x32, 0x00, 0x37, 0x00, 0x3F, 0x00, 0x44, 0x00, 0x49, 0x00, 0x00, 0x25, 0x32, 0x1D, 0x01, 0x14, + 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x1D, 0x01, + 0x25, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x13, 0x33, 0x34, 0x26, 0x23, 0x35, 0x32, 0x36, 0x35, + 0x23, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x05, 0x35, 0x22, 0x06, 0x15, 0x37, 0x35, 0x23, 0x14, 0x16, 0x01, 0x60, 0x08, 0x08, 0x40, 0x08, + 0x08, 0x10, 0x02, 0x03, 0x04, 0x03, 0x08, 0x02, 0x04, 0x0F, 0x06, 0x07, 0x0E, 0x08, 0x01, 0x10, 0x0D, 0x13, 0x13, 0x0D, 0xFD, 0xC0, 0x0D, 0x13, 0x13, + 0x0D, 0x10, 0x40, 0x25, 0x1B, 0x1B, 0x25, 0x40, 0xE8, 0x50, 0x38, 0x38, 0x50, 0x38, 0x01, 0x70, 0x1B, 0x25, 0x40, 0x40, 0x25, 0xA0, 0x08, 0x10, 0x08, + 0x08, 0x10, 0x08, 0x37, 0x01, 0x03, 0x0E, 0x02, 0x02, 0x04, 0x03, 0x0A, 0x04, 0x08, 0x58, 0xE0, 0x13, 0x0D, 0xFE, 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0x01, + 0x40, 0x0D, 0x13, 0xFE, 0xB0, 0x1B, 0x25, 0xA0, 0x25, 0x1B, 0xFF, 0x00, 0x42, 0x5C, 0x42, 0x42, 0x5C, 0x62, 0x40, 0x25, 0x1B, 0xE0, 0x40, 0x1B, 0x25, + 0x00, 0x00, 0x00, 0x02, 0xFF, 0xF9, 0xFF, 0xB9, 0x02, 0x81, 0x01, 0xC7, 0x00, 0x0D, 0x00, 0x28, 0x00, 0x00, 0x25, 0x36, 0x37, 0x17, 0x06, 0x23, 0x22, + 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x17, 0x05, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x27, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x17, 0x01, 0x36, 0x37, 0x27, 0x26, + 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x07, 0x01, 0x0C, 0x0F, 0x13, 0x50, 0x79, 0x95, 0x13, 0x04, 0x18, 0x05, 0x13, 0x70, 0x10, 0x0C, 0x01, + 0x9F, 0x05, 0x02, 0x04, 0x14, 0x0A, 0x0C, 0xFD, 0xB3, 0x0C, 0x09, 0x14, 0x0A, 0x0D, 0x01, 0x61, 0x1D, 0x11, 0x3C, 0x0E, 0x07, 0x30, 0x08, 0x13, 0x68, + 0x13, 0x65, 0x43, 0x07, 0x0B, 0x3E, 0x57, 0x13, 0x68, 0x13, 0x08, 0x30, 0x07, 0x0E, 0x89, 0x04, 0x0D, 0x05, 0x1A, 0x0C, 0x0A, 0x01, 0xC6, 0x0A, 0x0D, + 0x19, 0x0C, 0x09, 0xFE, 0xEE, 0x24, 0x25, 0x32, 0x0B, 0x11, 0x70, 0x12, 0x05, 0x18, 0x04, 0x13, 0xA0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x2B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x35, 0x11, 0x34, 0x36, 0x33, 0x16, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x06, 0x22, 0x27, 0x23, 0x22, 0x06, + 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x01, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0xAA, 0x34, 0x26, 0x26, 0x34, + 0x26, 0x30, 0x27, 0x1C, 0x05, 0x13, 0x2A, 0x13, 0x05, 0x1C, 0x27, 0x0D, 0x09, 0xB4, 0x09, 0x0D, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, + 0x14, 0x01, 0xA0, 0x14, 0x1C, 0x80, 0x26, 0x34, 0x26, 0x26, 0x34, 0xC7, 0x13, 0x18, 0x22, 0x08, 0x08, 0x22, 0x18, 0x13, 0x08, 0x0B, 0x0B, 0x00, 0x00, + 0x01, 0xFF, 0xFF, 0xFF, 0xDC, 0x02, 0x00, 0x01, 0xA5, 0x00, 0x1E, 0x00, 0x00, 0x13, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x1E, 0x04, 0x15, 0x14, 0x06, 0x07, + 0x06, 0x26, 0x37, 0x36, 0x34, 0x2E, 0x02, 0x27, 0x15, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x34, 0x08, 0xB0, 0x0C, 0x1C, 0x34, 0x50, 0x4C, 0x32, 0x1E, 0x30, + 0x23, 0x0B, 0x15, 0x04, 0x0D, 0x17, 0x32, 0x44, 0x31, 0x1C, 0x0C, 0xB0, 0x08, 0x01, 0x02, 0x98, 0x0A, 0x0D, 0x0F, 0x50, 0x01, 0x09, 0x19, 0x29, 0x42, + 0x2C, 0x2C, 0x55, 0x19, 0x08, 0x0E, 0x0C, 0x2B, 0x40, 0x2A, 0x19, 0x0B, 0x01, 0x58, 0x0F, 0x0D, 0x0A, 0x98, 0x07, 0x16, 0x00, 0x02, 0x00, 0x10, 0xFF, + 0xBC, 0x01, 0xF0, 0x01, 0xC0, 0x00, 0x16, 0x00, 0x1B, 0x00, 0x00, 0x01, 0x1E, 0x01, 0x15, 0x14, 0x0E, 0x02, 0x07, 0x06, 0x27, 0x2E, 0x03, 0x35, 0x34, + 0x36, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x03, 0x3E, 0x01, 0x37, 0x27, 0x01, 0xD2, 0x0E, 0x10, 0x2C, 0x46, 0x48, 0x24, 0x12, 0x12, 0x2A, 0x4D, 0x40, 0x27, + 0x10, 0x0E, 0xC0, 0x08, 0x14, 0x08, 0x12, 0x4B, 0x63, 0x02, 0xB0, 0x01, 0x6C, 0x05, 0x18, 0x0F, 0x4E, 0x89, 0x5B, 0x3C, 0x0E, 0x08, 0x08, 0x11, 0x43, + 0x5F, 0x82, 0x47, 0x0F, 0x18, 0x05, 0x50, 0x04, 0x04, 0xFE, 0x46, 0x25, 0xA2, 0x6C, 0x4A, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, + 0xC0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x23, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, + 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, 0x11, 0x34, 0x23, 0x21, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x01, 0x90, 0x14, 0x1C, 0x1C, + 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0xA3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xD0, 0x0C, 0xFE, 0xB8, 0x0C, 0x0C, 0x01, 0x48, 0x0C, 0x01, 0xC0, 0x1C, + 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, 0xFE, 0x20, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x59, 0x01, 0x38, 0x0C, 0x0C, 0xFE, 0xC8, + 0x0C, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x40, 0x01, 0xA0, 0x00, 0x0D, 0x00, 0x1B, 0x00, 0x23, 0x00, 0x2B, 0x00, 0x3C, 0x00, 0x46, + 0x00, 0x4E, 0x00, 0x00, 0x12, 0x32, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x21, 0x22, 0x27, 0x26, 0x35, 0x34, 0x25, 0x22, 0x06, 0x14, 0x16, 0x33, 0x32, + 0x3F, 0x01, 0x34, 0x36, 0x31, 0x2E, 0x01, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x25, 0x36, + 0x2E, 0x01, 0x06, 0x0F, 0x01, 0x0E, 0x01, 0x15, 0x14, 0x17, 0x33, 0x36, 0x35, 0x34, 0x27, 0x37, 0x16, 0x33, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x07, + 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0xA9, 0xEE, 0xA9, 0x27, 0x09, 0x12, 0xFE, 0x44, 0x12, 0x09, 0x27, 0x01, 0x20, 0x0D, 0x13, 0x13, 0x0D, + 0x09, 0x09, 0x09, 0x03, 0x03, 0x10, 0xD8, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x43, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0x17, 0x03, 0x09, 0x13, 0x12, 0x03, + 0x3D, 0x19, 0x23, 0x09, 0x6E, 0x09, 0x17, 0x4C, 0x0A, 0x11, 0x0D, 0x13, 0x13, 0x0D, 0x05, 0x06, 0x2E, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xA0, 0xA9, + 0x77, 0x4E, 0x43, 0x0F, 0x0F, 0x43, 0x4E, 0x77, 0x69, 0x13, 0x1A, 0x13, 0x06, 0x1C, 0x01, 0x05, 0x0B, 0x0D, 0xFE, 0xE0, 0x13, 0x1A, 0x13, 0x13, 0x1A, + 0x8D, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x35, 0x0A, 0x12, 0x06, 0x09, 0x09, 0xB8, 0x02, 0x25, 0x19, 0x11, 0x0F, 0x0F, 0x11, 0x1D, 0x13, 0x7F, 0x0F, 0x13, + 0x1A, 0x13, 0x02, 0xDE, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x01, 0x80, 0x00, 0x03, 0x00, 0x1F, 0x00, + 0x2F, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x24, 0x14, 0x16, 0x33, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x32, 0x36, 0x34, 0x26, 0x23, + 0x35, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x22, 0x27, 0x34, 0x26, 0x23, 0x21, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x33, 0x21, 0x32, 0x36, + 0x35, 0x80, 0x01, 0x40, 0xFE, 0xC0, 0x01, 0x90, 0x1C, 0x14, 0x1C, 0x14, 0xFE, 0x20, 0x14, 0x1C, 0x14, 0x1C, 0x1C, 0x14, 0x1C, 0x14, 0x01, 0xE0, 0x14, + 0x1C, 0x14, 0x4C, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x50, 0x0A, 0x0E, 0x01, 0x20, 0xC0, 0x74, 0x28, 0x1C, 0x60, 0x14, 0x1C, 0x1C, + 0x14, 0x60, 0x1C, 0x28, 0x1C, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x60, 0x38, 0x0A, 0x0E, 0x0E, 0x0A, 0xD0, 0x0A, 0x0E, 0x0E, 0x0A, 0x00, 0x02, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x1B, 0x00, 0x00, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x32, 0x37, 0x01, 0x3C, 0x78, 0x54, 0x54, 0x78, 0x54, 0x10, 0x35, 0x4B, + 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x4B, 0x35, 0x37, 0x23, 0x4C, 0x23, 0xA0, 0x54, 0x78, 0x54, 0x54, 0x78, 0x74, 0x4B, 0x35, 0x10, 0x14, 0x1C, 0x1C, + 0x14, 0x10, 0x35, 0x4B, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x2B, 0x00, 0x00, + 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x01, 0x27, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, + 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x01, 0xD0, 0x14, 0x1C, 0x1C, 0x14, + 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x4C, 0x43, 0x43, 0x09, 0x09, 0x28, 0x09, 0x09, 0x42, 0x42, 0x09, 0x09, 0x28, 0x09, 0x09, 0x43, 0x43, 0x09, + 0x09, 0x28, 0x09, 0x09, 0x42, 0x42, 0x09, 0x09, 0x28, 0x09, 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xFE, + 0xDE, 0x42, 0x42, 0x09, 0x09, 0x28, 0x09, 0x09, 0x43, 0x43, 0x09, 0x09, 0x28, 0x09, 0x09, 0x42, 0x42, 0x09, 0x09, 0x28, 0x09, 0x09, 0x43, 0x43, 0x09, + 0x09, 0x28, 0x09, 0x00, 0x02, 0xFF, 0xF9, 0xFF, 0xD9, 0x01, 0xC7, 0x01, 0xA7, 0x00, 0x13, 0x00, 0x27, 0x00, 0x00, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3B, + 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x01, 0x07, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x1F, 0x01, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x05, 0x63, 0x21, 0x0B, 0x0C, 0x10, 0x70, 0x0A, 0x0E, 0x1E, 0x0B, 0x1F, 0x63, 0x0C, 0x0B, 0x19, + 0x0C, 0x01, 0xC2, 0x63, 0x21, 0x0B, 0x0C, 0x10, 0x70, 0x0A, 0x0E, 0x1E, 0x0B, 0x1F, 0x63, 0x0C, 0x0B, 0x19, 0x0C, 0x15, 0x63, 0x1F, 0x0B, 0x1E, 0x0E, + 0x0A, 0x70, 0x10, 0x0C, 0x0B, 0x21, 0x63, 0x0C, 0x0C, 0x19, 0x0B, 0x01, 0x62, 0x63, 0x1F, 0x0B, 0x1E, 0x0E, 0x0A, 0x70, 0x10, 0x0C, 0x0B, 0x21, 0x63, + 0x0C, 0x0C, 0x19, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x13, 0x00, 0x27, 0x00, 0x00, 0x37, 0x07, 0x17, + 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x1F, 0x01, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0xD5, 0x5D, 0x21, 0x0B, 0x0C, 0x10, 0x70, 0x0A, 0x0E, 0x1E, 0x0B, 0x1F, 0x5D, + 0x0B, 0x0B, 0x1A, 0x0B, 0x0B, 0x5D, 0x21, 0x0B, 0x0C, 0x10, 0x70, 0x0A, 0x0E, 0x1E, 0x0B, 0x1F, 0x5D, 0x0B, 0x0B, 0x1A, 0x0B, 0x85, 0x5D, 0x1F, 0x0B, + 0x1E, 0x0E, 0x0A, 0x70, 0x10, 0x0C, 0x0B, 0x21, 0x5D, 0x0B, 0x0B, 0x1A, 0x0B, 0x6B, 0x5D, 0x1F, 0x0B, 0x1E, 0x0E, 0x0A, 0x70, 0x10, 0x0C, 0x0B, 0x21, + 0x5D, 0x0B, 0x0B, 0x1A, 0x0B, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x00, 0x25, 0x16, + 0x17, 0x06, 0x23, 0x22, 0x27, 0x36, 0x37, 0x27, 0x06, 0x07, 0x26, 0x34, 0x37, 0x16, 0x17, 0x37, 0x26, 0x27, 0x36, 0x32, 0x17, 0x06, 0x07, 0x17, 0x36, + 0x37, 0x16, 0x14, 0x07, 0x26, 0x27, 0x25, 0x36, 0x27, 0x07, 0x16, 0x07, 0x37, 0x06, 0x17, 0x37, 0x26, 0x37, 0x01, 0x70, 0x13, 0x21, 0x48, 0x64, 0x64, + 0x48, 0x20, 0x14, 0x1D, 0x11, 0x1C, 0x36, 0x36, 0x1C, 0x10, 0x1D, 0x13, 0x20, 0x48, 0xC8, 0x48, 0x20, 0x13, 0x1D, 0x10, 0x1C, 0x36, 0x37, 0x1B, 0x11, + 0xFE, 0xFF, 0x19, 0x19, 0x1F, 0x16, 0x15, 0xF6, 0x19, 0x19, 0x1E, 0x15, 0x16, 0x54, 0x27, 0x1F, 0x46, 0x46, 0x1F, 0x27, 0x0E, 0x21, 0x1C, 0x44, 0xAE, + 0x44, 0x1B, 0x21, 0x0F, 0x26, 0x1E, 0x46, 0x46, 0x1F, 0x26, 0x0E, 0x21, 0x1B, 0x44, 0xAE, 0x44, 0x1B, 0x22, 0x12, 0x4D, 0x4D, 0x0A, 0x43, 0x43, 0x90, + 0x4D, 0x4D, 0x0A, 0x42, 0x44, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x15, + 0x00, 0x1B, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2B, 0x00, 0x00, 0x13, 0x06, 0x07, 0x27, 0x36, 0x17, 0x27, 0x36, 0x37, 0x16, 0x17, 0x05, 0x17, 0x06, 0x07, + 0x36, 0x05, 0x27, 0x37, 0x16, 0x17, 0x06, 0x07, 0x17, 0x06, 0x07, 0x26, 0x27, 0x25, 0x27, 0x36, 0x37, 0x06, 0x25, 0x17, 0x07, 0x26, 0x27, 0x36, 0x17, + 0x36, 0x37, 0x17, 0x06, 0xD4, 0x02, 0x2A, 0x4E, 0x35, 0x69, 0x2E, 0x39, 0x01, 0x53, 0x3F, 0xFE, 0xA2, 0x4E, 0x37, 0x4D, 0x0A, 0x01, 0x3C, 0x2E, 0x9E, + 0x34, 0x04, 0x62, 0x96, 0x2E, 0x38, 0x02, 0x53, 0x3F, 0x01, 0x5E, 0x4E, 0x37, 0x4D, 0x0A, 0xFE, 0xC4, 0x2E, 0x9E, 0x34, 0x04, 0x62, 0xBA, 0x02, 0x2A, + 0x4E, 0x35, 0x01, 0xB6, 0x4D, 0x37, 0x4E, 0x2C, 0xCA, 0x2E, 0x46, 0x62, 0x04, 0x34, 0x22, 0x4E, 0x2A, 0x02, 0x45, 0x97, 0x2E, 0x9E, 0x3F, 0x53, 0x02, + 0x2C, 0x2E, 0x46, 0x62, 0x04, 0x34, 0x22, 0x4E, 0x2A, 0x02, 0x45, 0x97, 0x2E, 0x9E, 0x3F, 0x53, 0x01, 0xEB, 0x4D, 0x37, 0x4E, 0x2C, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, + 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x6B, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x60, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x10, 0x1A, 0x13, 0x13, 0x1A, + 0x13, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x27, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x5A, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xB0, 0x13, 0x1A, 0x13, 0x13, + 0x1A, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x3B, 0x00, 0x53, 0x00, 0x73, 0x00, 0x7B, 0x00, 0x93, 0x00, + 0x00, 0x37, 0x27, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, + 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x33, 0x32, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x14, 0x17, + 0x23, 0x36, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, + 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x37, 0x27, 0x26, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x3B, + 0x01, 0x32, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x17, 0x23, 0x37, 0x15, 0x33, 0x35, 0x34, 0x26, 0x22, 0x06, + 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x4A, + 0x22, 0x01, 0x09, 0x07, 0x39, 0x18, 0x08, 0x08, 0x18, 0x08, 0x10, 0x08, 0x18, 0x08, 0x08, 0x18, 0x39, 0x07, 0x09, 0x01, 0x22, 0x0A, 0x07, 0x09, 0x09, + 0x07, 0x10, 0x10, 0x80, 0x10, 0x10, 0x07, 0x09, 0x09, 0x07, 0xB7, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x17, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x74, + 0x19, 0x0B, 0x06, 0x1A, 0x06, 0x19, 0x06, 0x36, 0x06, 0x19, 0x06, 0x1A, 0x06, 0x0B, 0x19, 0x03, 0x7E, 0x2F, 0x20, 0x09, 0x0E, 0x09, 0x77, 0x09, 0x09, + 0x07, 0xC0, 0x07, 0x09, 0x09, 0x17, 0x09, 0x07, 0x80, 0x07, 0x09, 0xF0, 0x5A, 0x03, 0x03, 0x07, 0x09, 0x20, 0x08, 0x10, 0x08, 0x18, 0x08, 0x08, 0x18, + 0x08, 0x10, 0x08, 0x20, 0x09, 0x07, 0x03, 0x03, 0x5A, 0x09, 0x07, 0x10, 0x07, 0x09, 0x41, 0x3F, 0x3F, 0x41, 0x09, 0x07, 0x10, 0x07, 0x09, 0xFC, 0x04, + 0x0A, 0x16, 0x07, 0x09, 0x09, 0x07, 0x16, 0x0A, 0x04, 0x0C, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x92, 0x15, 0x0A, 0x0E, 0x3B, 0x06, 0x06, 0x1A, 0x1A, + 0x06, 0x06, 0x1A, 0x1A, 0x06, 0x06, 0x3B, 0x0E, 0x0A, 0x15, 0x52, 0x50, 0x20, 0x20, 0x07, 0x09, 0x09, 0xA3, 0x04, 0x0A, 0x16, 0x07, 0x09, 0x09, 0x07, + 0x16, 0x0A, 0x04, 0x0C, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x40, 0x01, 0xC0, 0x00, 0x23, 0x00, 0x33, 0x00, + 0x00, 0x37, 0x34, 0x36, 0x37, 0x2E, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x16, 0x17, 0x07, 0x06, 0x14, 0x1F, 0x01, + 0x16, 0x32, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x07, 0x15, 0x23, 0x35, 0x26, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x33, 0x08, 0x47, 0x2A, 0x0B, 0x0E, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x0E, 0x0B, 0x26, 0x21, 0x6C, 0x02, 0x02, 0x0C, 0x02, 0x07, 0x02, 0x64, + 0x1B, 0x38, 0xC0, 0x38, 0x01, 0x28, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x35, 0x8A, 0x22, 0x03, 0x11, 0x0B, 0x0D, 0x13, + 0x13, 0x0D, 0x0B, 0x11, 0x03, 0x1F, 0x3D, 0x6C, 0x02, 0x07, 0x02, 0x0C, 0x02, 0x02, 0x65, 0x3C, 0x2B, 0x43, 0x11, 0x2C, 0x2C, 0x11, 0x5D, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x20, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0B, 0x00, + 0x0F, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1B, 0x00, 0x1F, 0x00, 0x23, 0x00, 0x27, 0x00, 0x2B, 0x00, 0x2F, 0x00, 0x33, 0x00, 0x37, 0x00, 0x3B, 0x00, 0x3F, + 0x00, 0x43, 0x00, 0x47, 0x00, 0x4B, 0x00, 0x4F, 0x00, 0x53, 0x00, 0x57, 0x00, 0x5B, 0x00, 0x5F, 0x00, 0x63, 0x00, 0x67, 0x00, 0x6B, 0x00, 0x6F, 0x00, + 0x73, 0x00, 0x77, 0x00, 0x7B, 0x00, 0x7F, 0x00, 0x00, 0x01, 0x15, 0x23, 0x35, 0x07, 0x33, 0x15, 0x23, 0x37, 0x15, 0x23, 0x35, 0x13, 0x33, 0x15, 0x23, + 0x27, 0x33, 0x15, 0x23, 0x01, 0x15, 0x23, 0x35, 0x33, 0x15, 0x23, 0x35, 0x01, 0x15, 0x23, 0x35, 0x05, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0x03, + 0x35, 0x33, 0x15, 0x13, 0x23, 0x35, 0x33, 0x01, 0x35, 0x33, 0x15, 0x23, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x33, 0x15, 0x23, 0x01, 0x23, + 0x35, 0x33, 0x07, 0x35, 0x33, 0x15, 0x07, 0x33, 0x15, 0x23, 0x37, 0x35, 0x33, 0x15, 0x27, 0x35, 0x33, 0x15, 0x07, 0x33, 0x15, 0x23, 0x25, 0x33, 0x15, + 0x23, 0x13, 0x23, 0x35, 0x33, 0x13, 0x35, 0x33, 0x15, 0x27, 0x23, 0x35, 0x33, 0x37, 0x33, 0x15, 0x23, 0x07, 0x33, 0x15, 0x23, 0x27, 0x15, 0x23, 0x35, + 0x05, 0x35, 0x33, 0x15, 0x25, 0x15, 0x23, 0x35, 0x17, 0x33, 0x15, 0x23, 0x01, 0x00, 0x40, 0xC0, 0x40, 0x40, 0x80, 0x40, 0x80, 0x40, 0x40, 0xC0, 0x40, + 0x40, 0x01, 0x80, 0x40, 0xC0, 0x40, 0xFE, 0xC0, 0x40, 0x01, 0xC0, 0x40, 0x40, 0x40, 0x40, 0x80, 0x40, 0x40, 0x40, 0x40, 0xFE, 0x80, 0x40, 0xC0, 0x40, + 0xC0, 0x40, 0xFE, 0xC0, 0x40, 0x40, 0x01, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x40, 0x40, 0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xFF, 0x00, 0x40, + 0x40, 0x80, 0x40, 0x40, 0xC0, 0x40, 0xC0, 0x40, 0x40, 0x80, 0x40, 0x40, 0x80, 0x40, 0x40, 0x40, 0x40, 0x01, 0x00, 0x40, 0xFE, 0xC0, 0x40, 0x40, 0x40, + 0x40, 0x01, 0xC0, 0x40, 0x40, 0x40, 0x40, 0x80, 0x40, 0x40, 0xFF, 0x00, 0x40, 0x80, 0x40, 0x01, 0x00, 0x40, 0x40, 0x40, 0x40, 0xFF, 0x00, 0x40, 0x40, + 0xC0, 0x40, 0x40, 0x40, 0xFF, 0x00, 0x40, 0x40, 0x01, 0x40, 0x40, 0xFE, 0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xC0, 0x40, 0x01, 0x00, 0x40, 0xC0, + 0x40, 0x40, 0x80, 0x40, 0x80, 0x40, 0x40, 0x80, 0x40, 0x40, 0xC0, 0x40, 0x40, 0x40, 0x01, 0x40, 0x40, 0xFE, 0xC0, 0x40, 0x40, 0xC0, 0x40, 0x40, 0x40, + 0xC0, 0x40, 0xC0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x40, 0x40, 0xC0, 0x40, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x0F, + 0x00, 0x35, 0x00, 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, 0x15, 0x14, + 0x0F, 0x01, 0x21, 0x27, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, + 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x01, 0x90, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x70, 0x0D, 0x13, 0x01, + 0x4A, 0xFE, 0xD6, 0x4A, 0x01, 0x13, 0x0D, 0xA0, 0x28, 0x08, 0x08, 0x28, 0x08, 0x30, 0x08, 0x28, 0x08, 0x08, 0x28, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x01, 0x20, 0x13, 0x0D, 0x05, 0x05, 0xD6, 0xD6, 0x05, 0x05, 0x0D, 0x13, 0x30, 0x08, 0x30, 0x08, 0x28, 0x08, 0x08, 0x28, 0x08, + 0x30, 0x08, 0x30, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xA0, 0x00, 0x25, 0x00, 0x2D, 0x00, 0x3D, 0x00, 0x00, 0x37, 0x26, 0x3D, 0x01, + 0x34, 0x3F, 0x01, 0x27, 0x26, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x21, 0x35, 0x15, 0x34, 0x36, 0x3F, 0x01, 0x36, 0x3D, 0x01, 0x07, 0x06, + 0x0F, 0x01, 0x06, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x34, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x13, 0x13, 0x07, 0x09, 0x0E, 0x02, 0x0C, 0x94, 0x4F, 0x71, 0xFE, 0xC0, 0x18, 0x14, 0x39, 0x1B, 0x16, + 0x0A, 0x03, 0x09, 0x04, 0x0F, 0x0C, 0x06, 0x06, 0x07, 0x06, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x01, 0x28, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xA0, 0x07, 0x09, + 0x09, 0x07, 0xB0, 0x08, 0x15, 0x89, 0x0A, 0x07, 0x09, 0x1C, 0x04, 0x04, 0x0C, 0x70, 0x50, 0xC0, 0x0F, 0x01, 0x18, 0x26, 0x0A, 0x1D, 0x0D, 0x1E, 0x32, + 0x0B, 0x05, 0x0B, 0x1E, 0x0F, 0x06, 0x05, 0x02, 0x02, 0xA3, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0xFE, 0xCC, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x40, 0x01, 0xA0, 0x00, 0x23, 0x00, 0x33, 0x00, 0x00, 0x37, 0x2E, 0x01, 0x35, 0x34, + 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x17, 0x23, 0x36, 0x3D, 0x01, 0x23, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x69, 0x16, 0x1B, + 0x3D, 0x56, 0x3D, 0x1B, 0x16, 0x19, 0x07, 0x09, 0x09, 0x07, 0x10, 0x18, 0xB0, 0x18, 0x10, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xFE, + 0xE0, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x0E, 0x2F, 0x1B, 0x2B, 0x3D, 0x3D, 0x2B, 0x1B, 0x2F, 0x0E, 0x09, 0x07, 0x20, 0x07, 0x09, 0x05, 0x50, 0x2B, 0x2B, + 0x50, 0x05, 0x09, 0x07, 0x20, 0x07, 0x09, 0xE0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, + 0x02, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x17, 0x00, 0x47, 0x00, 0x00, 0x00, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x13, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x21, 0x27, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, + 0x17, 0x16, 0x33, 0x32, 0x33, 0x3E, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x1E, 0x01, 0x32, 0x36, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, + 0x14, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x17, 0x01, 0x17, 0x2E, 0x21, 0x21, 0x2E, 0x21, 0x78, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xA0, 0x07, 0x09, + 0x09, 0x07, 0x01, 0xA9, 0x07, 0x02, 0x66, 0xFE, 0xD0, 0x66, 0x02, 0x07, 0x1D, 0x0C, 0x0A, 0x0E, 0x18, 0x02, 0x01, 0x13, 0x1A, 0x08, 0x05, 0x27, 0x0B, + 0x02, 0x03, 0x1B, 0x22, 0x1B, 0x03, 0x02, 0x0B, 0x27, 0x05, 0x08, 0x16, 0x11, 0x05, 0x04, 0x18, 0x0E, 0x0A, 0x0C, 0x01, 0x50, 0x21, 0x2E, 0x21, 0x21, + 0x2E, 0xFE, 0x8F, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x08, 0x05, 0x08, 0x04, 0x04, 0xD3, 0xD3, 0x04, 0x03, 0x09, 0x05, + 0x10, 0x08, 0x0D, 0x13, 0x01, 0x1E, 0x14, 0x05, 0x08, 0x0A, 0x10, 0x16, 0x16, 0x10, 0x0A, 0x08, 0x05, 0x12, 0x1D, 0x03, 0x01, 0x13, 0x0D, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xA0, 0x00, 0x23, 0x00, 0x2B, 0x00, 0x3B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, + 0x07, 0x14, 0x17, 0x21, 0x36, 0x35, 0x27, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x33, 0x35, 0x34, 0x36, 0x33, 0x03, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x70, 0x07, 0x09, 0x40, 0x0D, 0xFE, 0xE6, 0x0D, 0x40, 0x09, 0x07, 0x38, 0x07, 0x09, 0x30, 0x09, 0x07, 0x50, 0x07, + 0x09, 0x30, 0x09, 0x07, 0x58, 0x13, 0x1A, 0x13, 0xD0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA0, 0x09, 0x07, 0xB0, 0x20, + 0x56, 0x4A, 0x4A, 0x56, 0x20, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0xFE, 0xE0, 0x40, 0x0D, 0x13, + 0x13, 0x0D, 0x40, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, + 0xA0, 0x00, 0x17, 0x00, 0x2F, 0x00, 0x53, 0x00, 0x00, 0x13, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x3D, + 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x33, 0x05, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, + 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x27, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x33, 0x68, 0x0A, 0x0E, 0x0E, 0x0A, 0x30, 0x0A, + 0x0E, 0x18, 0x08, 0x08, 0x18, 0x0E, 0x0A, 0x02, 0x40, 0x08, 0x08, 0x18, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x98, 0x0A, 0x0E, + 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x80, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x80, 0x0E, 0x0A, 0x01, 0x60, 0x0E, 0x0A, 0xFE, 0xF0, + 0x0A, 0x0E, 0x0E, 0x0A, 0x68, 0x08, 0x30, 0x08, 0x68, 0x0A, 0x0E, 0x80, 0x08, 0x30, 0x08, 0x68, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x10, 0x0A, 0x0E, 0x0E, + 0x0A, 0x68, 0xC0, 0x0E, 0x0A, 0xFE, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0xA8, 0xA8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x90, 0x0A, 0x0E, 0x0E, 0x0A, 0xA8, 0xA8, + 0x0A, 0x0E, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x06, 0x00, 0x0D, 0x00, 0x15, 0x00, 0x51, 0x00, 0x00, 0x01, 0x16, + 0x17, 0x27, 0x16, 0x17, 0x16, 0x01, 0x26, 0x27, 0x17, 0x26, 0x27, 0x26, 0x27, 0x3E, 0x01, 0x37, 0x17, 0x0E, 0x01, 0x07, 0x13, 0x07, 0x27, 0x26, 0x0F, + 0x01, 0x06, 0x1F, 0x01, 0x07, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x07, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x1F, 0x01, 0x16, + 0x3F, 0x01, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, + 0x37, 0x36, 0x2F, 0x01, 0x26, 0x01, 0xE2, 0x0D, 0x01, 0x9D, 0x36, 0x33, 0x1E, 0xFE, 0x34, 0x0D, 0x01, 0x9D, 0x36, 0x33, 0x1E, 0x12, 0x11, 0x98, 0x67, + 0xD8, 0x11, 0x98, 0x67, 0x66, 0x1D, 0x1C, 0x06, 0x05, 0x0C, 0x05, 0x05, 0x1D, 0x17, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x16, 0x1D, 0x05, 0x06, + 0x0B, 0x06, 0x06, 0x1C, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x05, 0x1D, 0x1C, 0x06, 0x05, 0x0C, 0x05, 0x05, 0x1D, 0x17, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x06, + 0x1C, 0x16, 0x1D, 0x05, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x01, 0x84, 0x34, 0x35, 0x9D, 0x01, 0x0E, 0x08, 0xFE, 0x5B, 0x34, + 0x35, 0x9D, 0x01, 0x0E, 0x08, 0xC6, 0x6F, 0x91, 0x0F, 0xD9, 0x6F, 0x91, 0x0F, 0x01, 0x54, 0x1C, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x17, 0x1D, + 0x05, 0x05, 0x0B, 0x06, 0x06, 0x1C, 0x17, 0x1D, 0x05, 0x05, 0x0C, 0x05, 0x06, 0x1C, 0x1D, 0x05, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x1C, 0x06, 0x06, 0x0B, + 0x06, 0x05, 0x1D, 0x16, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x17, 0x1D, 0x05, 0x05, 0x0C, 0x05, 0x06, 0x1C, 0x1D, 0x05, 0x06, 0x0B, 0x06, 0x00, + 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xA0, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2B, 0x00, 0x35, 0x00, 0x3F, 0x00, 0x00, 0x37, 0x33, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x26, 0x25, 0x14, 0x06, 0x07, 0x23, 0x2E, + 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x07, 0x32, 0x36, 0x35, 0x34, 0x27, 0x16, 0x06, 0x27, 0x16, 0x17, 0x34, 0x27, 0x16, 0x06, 0x27, 0x16, 0x33, 0x32, + 0x36, 0x37, 0x34, 0x27, 0x16, 0x06, 0x27, 0x16, 0x33, 0x32, 0x36, 0x60, 0xE0, 0x13, 0x0D, 0x10, 0x0D, 0x13, 0x0C, 0x28, 0x0C, 0x13, 0x0D, 0x10, 0x0D, + 0x13, 0x01, 0x40, 0x35, 0x2D, 0xDC, 0x2D, 0x35, 0x7A, 0xAC, 0x7A, 0xB4, 0x0E, 0x13, 0x16, 0x07, 0x1D, 0x14, 0x08, 0x48, 0x16, 0x07, 0x1D, 0x14, 0x08, + 0x17, 0x0E, 0x13, 0x40, 0x16, 0x07, 0x1D, 0x14, 0x08, 0x17, 0x0E, 0x13, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x14, 0x0C, 0x0C, 0x14, 0x0D, 0x13, 0x13, 0xDD, + 0x37, 0x5D, 0x1C, 0x1C, 0x5D, 0x37, 0x56, 0x7A, 0x7A, 0x82, 0x13, 0x0E, 0x17, 0x08, 0x14, 0x1D, 0x07, 0x16, 0x2F, 0x17, 0x08, 0x14, 0x1D, 0x07, 0x16, + 0x14, 0x4D, 0x17, 0x08, 0x14, 0x1D, 0x07, 0x16, 0x14, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x07, 0x00, 0x12, 0x00, 0x00, + 0x3C, 0x01, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x27, 0x1E, 0x01, 0x36, 0x37, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x96, 0xD4, 0x96, 0x96, 0xD4, 0x96, + 0x37, 0xC9, 0xC9, 0x37, 0x96, 0xD4, 0x96, 0xF8, 0x50, 0x38, 0x38, 0x50, 0x38, 0x0E, 0x28, 0x1E, 0x1E, 0x28, 0x6E, 0x28, 0x38, 0x38, 0x28, 0x00, 0x03, + 0x00, 0x00, 0xFF, 0xBD, 0x02, 0x87, 0x01, 0xC7, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x31, 0x00, 0x00, 0x25, 0x17, 0x14, 0x0E, 0x03, 0x07, 0x0E, 0x01, 0x2F, + 0x01, 0x36, 0x3F, 0x01, 0x36, 0x26, 0x0F, 0x01, 0x36, 0x37, 0x3E, 0x01, 0x33, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x13, 0x16, 0x0F, 0x01, + 0x17, 0x16, 0x06, 0x0F, 0x01, 0x27, 0x37, 0x3E, 0x01, 0x1F, 0x01, 0x37, 0x36, 0x17, 0x01, 0x00, 0x57, 0x03, 0x0D, 0x0F, 0x1D, 0x10, 0x1B, 0x85, 0x36, + 0x35, 0x04, 0x07, 0x5F, 0x03, 0x06, 0x04, 0x3C, 0x19, 0x1D, 0x1B, 0x51, 0x1C, 0xE8, 0x43, 0x2E, 0x2E, 0x43, 0x2E, 0xDD, 0x0A, 0x0C, 0xE8, 0x22, 0x03, + 0x04, 0x06, 0x3B, 0x56, 0x19, 0x03, 0x0C, 0x04, 0x22, 0xE8, 0x0D, 0x0A, 0xE7, 0x6D, 0x04, 0x0F, 0x28, 0x24, 0x2A, 0x0D, 0x15, 0x11, 0x02, 0x02, 0x17, + 0x20, 0x70, 0x04, 0x07, 0x01, 0x16, 0x4A, 0x17, 0x16, 0x14, 0x88, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x01, 0x70, 0x0D, 0x0A, 0xB1, 0x2B, 0x05, 0x0C, 0x01, + 0x0C, 0x6D, 0x37, 0x05, 0x01, 0x04, 0x2B, 0xB2, 0x09, 0x0C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x00, + 0x00, 0x05, 0x21, 0x11, 0x21, 0x02, 0x00, 0xFE, 0x00, 0x02, 0x00, 0x40, 0x02, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x09, 0x01, 0xC0, + 0x00, 0x0A, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x00, 0x25, 0x26, 0x06, 0x07, 0x27, 0x37, 0x36, 0x32, 0x17, 0x1E, 0x01, 0x07, 0x06, 0x15, 0x14, 0x17, 0x26, + 0x2F, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x2E, 0x01, 0x37, 0x04, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x01, 0xF0, + 0x30, 0x71, 0x22, 0xD4, 0x38, 0x3F, 0xB2, 0x3F, 0x2F, 0x18, 0xF2, 0x06, 0x0B, 0x29, 0x1D, 0x24, 0x59, 0x06, 0x11, 0x06, 0x35, 0x06, 0x07, 0x67, 0x23, + 0x1D, 0x09, 0x15, 0x01, 0x3E, 0x50, 0x38, 0x38, 0x50, 0x38, 0x98, 0x20, 0x14, 0x2F, 0xD4, 0x38, 0x3F, 0x3F, 0x2F, 0x81, 0x89, 0x16, 0x12, 0x1D, 0x1A, + 0x05, 0x1C, 0x24, 0x67, 0x07, 0x06, 0x35, 0x06, 0x11, 0x06, 0x59, 0x23, 0x1D, 0x51, 0x22, 0xA4, 0x38, 0x50, 0x38, 0x38, 0x50, 0x00, 0x00, 0x06, 0xFF, + 0xFD, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xBD, 0x00, 0x09, 0x00, 0x11, 0x00, 0x1A, 0x00, 0x25, 0x00, 0x2D, 0x00, 0x3A, 0x00, 0x00, 0x37, 0x0E, 0x01, 0x07, + 0x26, 0x27, 0x3E, 0x01, 0x37, 0x16, 0x27, 0x0E, 0x01, 0x07, 0x26, 0x36, 0x37, 0x16, 0x17, 0x26, 0x27, 0x26, 0x27, 0x36, 0x17, 0x1E, 0x01, 0x07, 0x16, + 0x17, 0x36, 0x37, 0x06, 0x07, 0x06, 0x26, 0x27, 0x36, 0x07, 0x16, 0x37, 0x06, 0x23, 0x22, 0x27, 0x36, 0x13, 0x1E, 0x01, 0x15, 0x1C, 0x01, 0x15, 0x06, + 0x23, 0x22, 0x31, 0x36, 0x26, 0xE7, 0x35, 0x4B, 0x12, 0x24, 0x15, 0x11, 0x60, 0x44, 0x15, 0x24, 0x3E, 0x5F, 0x19, 0x0F, 0x47, 0x45, 0x23, 0xD2, 0x37, + 0x30, 0x03, 0x5A, 0x30, 0x33, 0x34, 0x34, 0x84, 0x4C, 0x53, 0x29, 0x28, 0x0C, 0x1E, 0x46, 0x92, 0x3E, 0x21, 0x33, 0x76, 0x8B, 0x45, 0x5B, 0x46, 0x3B, + 0x0A, 0xCA, 0x49, 0x5C, 0x2C, 0x2D, 0x01, 0x06, 0x27, 0xCD, 0x21, 0x63, 0x3D, 0x23, 0x2E, 0x47, 0x72, 0x20, 0x32, 0x4F, 0x1E, 0x63, 0x3F, 0x51, 0x90, + 0x26, 0x1F, 0xCD, 0x06, 0x1B, 0x82, 0x5D, 0x0E, 0x06, 0x32, 0x8B, 0x55, 0x28, 0x01, 0x01, 0x0A, 0x31, 0x29, 0x15, 0x1A, 0x2B, 0x2C, 0x47, 0x52, 0x14, + 0x3B, 0x24, 0x2F, 0x01, 0x8E, 0x1A, 0x7F, 0x50, 0x01, 0x04, 0x01, 0x0E, 0x45, 0x83, 0x00, 0x08, 0xFF, 0xFD, 0xFF, 0xBF, 0x01, 0xC0, 0x01, 0xC0, 0x00, + 0x3A, 0x00, 0x42, 0x00, 0x4A, 0x00, 0x52, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x00, 0x00, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, + 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x26, 0x3E, 0x01, 0x16, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, + 0x01, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, + 0x34, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, + 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x93, 0x1A, 0x13, 0x05, 0x1B, 0x03, 0x1B, 0x10, 0xC6, 0x18, 0x0F, 0x7D, 0x0A, 0x05, 0x1B, 0x21, 0x09, + 0x18, 0x13, 0x1A, 0x13, 0x08, 0x10, 0x08, 0x13, 0x1A, 0x13, 0x08, 0x10, 0x08, 0x13, 0x1A, 0x13, 0x08, 0x10, 0x08, 0xD7, 0x0E, 0x09, 0x09, 0x0E, 0x09, + 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x49, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x49, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x29, + 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x29, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0x50, 0x13, 0x0D, 0xB0, 0x16, 0x14, 0x71, 0x10, 0x15, 0x14, 0xAC, 0x0E, 0x21, + 0x13, 0x05, 0x0D, 0x21, 0xF1, 0x0D, 0x13, 0x13, 0x0D, 0x98, 0x08, 0x08, 0xB8, 0x0D, 0x13, 0x13, 0x0D, 0xB8, 0x08, 0x08, 0x98, 0x0D, 0x13, 0x13, 0x0D, + 0x98, 0x08, 0x08, 0x48, 0x0D, 0xFE, 0xE3, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x57, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x89, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x57, + 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x29, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x49, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x77, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x02, 0x80, 0x01, 0x60, 0x00, 0x09, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, + 0x00, 0x00, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x23, 0x22, 0x26, 0x35, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x11, 0x01, 0x11, 0x21, + 0x11, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x06, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, + 0x06, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x1A, 0x60, 0x60, 0x1A, 0x26, 0x02, 0x40, 0x1A, 0x26, 0x26, 0x1A, 0x60, 0xFE, 0xE0, 0x01, 0x00, + 0x46, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x6E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x01, + 0x20, 0x1A, 0x26, 0xFE, 0xC0, 0x26, 0x1A, 0x01, 0x00, 0x26, 0x1A, 0xC0, 0x1A, 0x26, 0x01, 0x40, 0xFE, 0xC0, 0x01, 0x40, 0xFE, 0xC0, 0xE8, 0x0E, 0x14, + 0x0E, 0x0E, 0x14, 0x52, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x6E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x52, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x08, 0x00, 0x11, 0x00, 0x1B, 0x00, 0x00, 0x01, 0x30, 0x17, 0x23, 0x35, 0x33, 0x32, 0x16, 0x17, + 0x27, 0x15, 0x23, 0x36, 0x31, 0x37, 0x3E, 0x01, 0x33, 0x07, 0x21, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x01, 0xFE, 0x01, 0xEF, 0x8D, 0x10, + 0x19, 0x05, 0xDB, 0xEF, 0x01, 0x33, 0x05, 0x19, 0x10, 0x63, 0x02, 0x00, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x01, 0x07, 0x07, 0xC0, 0x12, 0x0F, 0x21, + 0xC0, 0x07, 0x98, 0x0F, 0x12, 0xE0, 0xF0, 0x14, 0x1C, 0x1C, 0x14, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x14, 0x00, 0x29, + 0x00, 0x3E, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x37, 0x17, 0x35, + 0x25, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x37, 0x17, 0x35, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x07, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x37, 0x17, 0x35, 0x02, 0x30, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, + 0x09, 0x09, 0x07, 0x50, 0x20, 0x20, 0xFE, 0xD0, 0x07, 0x09, 0x09, 0x07, 0x50, 0x20, 0x20, 0x50, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, + 0xE0, 0x07, 0x09, 0x09, 0x07, 0x50, 0x20, 0x20, 0xA0, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x60, 0x15, 0x15, 0x60, 0x40, 0x09, + 0x07, 0xC0, 0x07, 0x09, 0x60, 0x15, 0x15, 0x60, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x40, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x60, + 0x15, 0x15, 0x60, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x19, 0x00, 0x1D, 0x00, 0x39, 0x00, 0x00, 0x01, 0x32, 0x16, + 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x27, 0x15, + 0x33, 0x35, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, + 0x32, 0x3D, 0x01, 0x33, 0x32, 0x01, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x50, 0x1C, 0x14, 0xA0, 0x14, 0x1C, 0xC0, 0x80, + 0x20, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x01, 0x40, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, + 0x01, 0x20, 0x14, 0x1C, 0x30, 0x14, 0x1C, 0x1C, 0x14, 0x30, 0x20, 0x20, 0x20, 0xF8, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, + 0x08, 0x38, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x0A, 0x00, 0x13, 0x00, 0x00, 0x13, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x22, + 0x26, 0x35, 0x34, 0x36, 0x12, 0x32, 0x36, 0x35, 0x34, 0x27, 0x06, 0x15, 0x14, 0xC0, 0x55, 0x6B, 0x6B, 0xAA, 0x6B, 0x6A, 0x2C, 0x54, 0x36, 0x60, 0x60, + 0x01, 0xC0, 0x4D, 0xA5, 0x3A, 0x5E, 0x76, 0x76, 0x5E, 0x3A, 0xA5, 0xFE, 0x8D, 0x35, 0x2A, 0x38, 0x69, 0x69, 0x38, 0x2A, 0x00, 0x03, 0x00, 0x00, 0xFF, + 0xE0, 0x02, 0x47, 0x01, 0xA0, 0x00, 0x1D, 0x00, 0x25, 0x00, 0x2F, 0x00, 0x00, 0x25, 0x16, 0x06, 0x07, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x27, 0x15, + 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x05, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, + 0x01, 0x05, 0x37, 0x27, 0x26, 0x23, 0x22, 0x07, 0x0E, 0x01, 0x17, 0x02, 0x2B, 0x1B, 0x10, 0x27, 0x1D, 0x24, 0x3C, 0x22, 0x83, 0x07, 0x06, 0x42, 0x5C, + 0x42, 0x42, 0x2E, 0x2D, 0x40, 0x02, 0x0D, 0x1D, 0x1D, 0x24, 0x3C, 0x22, 0xFE, 0xF8, 0x1C, 0x28, 0x1C, 0x01, 0x23, 0x52, 0x41, 0x0F, 0x1B, 0x10, 0x0C, + 0x12, 0x07, 0x0C, 0x94, 0x27, 0x5D, 0x1B, 0x15, 0x31, 0xBB, 0x0A, 0x0F, 0x95, 0x2E, 0x42, 0x42, 0x2E, 0xE0, 0x2E, 0x42, 0x3E, 0x2C, 0x21, 0x14, 0x15, + 0x31, 0x8F, 0x70, 0x14, 0x1C, 0x1C, 0x14, 0x70, 0x2D, 0x3A, 0x5D, 0x16, 0x09, 0x0C, 0x29, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, + 0x80, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x1D, 0x00, 0x2D, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, + 0x36, 0x3B, 0x01, 0x34, 0x36, 0x32, 0x16, 0x15, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x27, 0x26, + 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x16, 0x37, 0x01, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x50, 0x26, 0x34, 0x26, 0x36, 0x14, + 0x0E, 0x0E, 0x14, 0x0E, 0x61, 0x09, 0x09, 0x1C, 0x08, 0x09, 0x6A, 0x2E, 0x08, 0x09, 0x1C, 0x09, 0x09, 0x52, 0x09, 0x08, 0x01, 0x80, 0x1C, 0x14, 0xFE, + 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1A, 0x26, 0x26, 0x1A, 0x18, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0xDA, 0x09, 0x08, 0x1D, 0x08, 0x08, + 0x6A, 0x2F, 0x08, 0x08, 0x1C, 0x09, 0x08, 0x54, 0x08, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x15, 0x00, + 0x1D, 0x00, 0x25, 0x00, 0x2D, 0x00, 0x35, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x59, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x34, 0x36, 0x32, 0x16, 0x15, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x13, 0x35, 0x34, 0x2B, 0x01, 0x22, + 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, + 0x01, 0x14, 0x3B, 0x01, 0x32, 0x01, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x50, 0x26, 0x34, 0x26, 0xAA, 0x14, 0x0E, 0x0E, + 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x82, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x68, 0x08, 0x90, 0x08, 0x08, + 0x90, 0x08, 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x01, 0x80, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, + 0x60, 0x14, 0x1C, 0x1A, 0x26, 0x26, 0x1A, 0xFE, 0x98, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x52, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x52, 0x0E, 0x14, 0x0E, 0x0E, + 0x14, 0xB2, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0xFE, 0x9E, 0x10, 0x08, 0x08, 0x10, 0x08, 0x68, 0x10, 0x08, 0x08, 0x10, 0x08, 0x68, 0x10, 0x08, 0x08, 0x10, + 0x08, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x33, 0x00, 0x3B, 0x00, 0x43, 0x00, 0x4B, 0x00, + 0x5B, 0x00, 0x00, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x26, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x05, 0x27, 0x26, 0x36, 0x37, 0x36, + 0x37, 0x16, 0x36, 0x35, 0x36, 0x33, 0x32, 0x17, 0x06, 0x16, 0x36, 0x37, 0x16, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0x27, 0x26, 0x27, 0x15, 0x23, + 0x35, 0x06, 0x07, 0x06, 0x26, 0x24, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x26, 0x34, + 0x36, 0x32, 0x16, 0x14, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0xF7, 0x0E, 0x09, 0x09, + 0x0E, 0x09, 0x9C, 0x48, 0x34, 0x34, 0x48, 0x34, 0xFE, 0xA4, 0x12, 0x07, 0x05, 0x0C, 0x0B, 0x12, 0x18, 0x37, 0x56, 0x4A, 0x3C, 0x45, 0x05, 0x20, 0x2F, + 0x0E, 0x1C, 0x17, 0x0D, 0x04, 0x07, 0x12, 0x07, 0x1A, 0x0A, 0x32, 0x37, 0xE0, 0x38, 0x31, 0x0A, 0x1A, 0x01, 0x37, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x6E, + 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0xB1, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, 0xFD, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xC0, 0x09, + 0x0E, 0x09, 0x09, 0x0E, 0x47, 0x34, 0x48, 0x34, 0x34, 0x48, 0xF0, 0x1B, 0x09, 0x1C, 0x08, 0x06, 0x0A, 0x14, 0x19, 0x1F, 0x20, 0x16, 0x19, 0x23, 0x03, + 0x16, 0x0D, 0x0E, 0x08, 0x1C, 0x09, 0x1B, 0x0B, 0x05, 0x06, 0x1E, 0x13, 0x5B, 0x5B, 0x13, 0x1E, 0x06, 0x05, 0x1F, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x6E, + 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x06, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0xC9, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x00, + 0x04, 0xFF, 0xFF, 0xFF, 0xBF, 0x01, 0xC1, 0x01, 0xC1, 0x00, 0x3C, 0x00, 0x41, 0x00, 0x47, 0x00, 0x4D, 0x00, 0x00, 0x15, 0x3E, 0x03, 0x37, 0x2E, 0x03, + 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x17, 0x21, 0x36, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x07, 0x0E, 0x04, 0x07, 0x06, 0x07, 0x33, 0x26, + 0x27, 0x36, 0x37, 0x1E, 0x02, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x26, 0x27, 0x21, 0x06, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x13, 0x36, 0x37, + 0x23, 0x16, 0x37, 0x21, 0x16, 0x17, 0x33, 0x36, 0x03, 0x21, 0x26, 0x27, 0x23, 0x06, 0x03, 0x0E, 0x20, 0x42, 0x2D, 0x2D, 0x42, 0x20, 0x0E, 0x03, 0x01, + 0x0A, 0x07, 0x20, 0x0E, 0x02, 0x02, 0x02, 0x01, 0x38, 0x02, 0x02, 0x02, 0x0E, 0x20, 0x07, 0x0A, 0x01, 0x02, 0x0A, 0x1E, 0x2A, 0x4D, 0x31, 0x2C, 0x22, + 0x7F, 0x0D, 0x04, 0x20, 0x1B, 0x2A, 0x39, 0x11, 0x03, 0x01, 0x0A, 0x07, 0x20, 0x0F, 0x01, 0x01, 0x03, 0xFE, 0xC8, 0x02, 0x02, 0x02, 0x0E, 0x20, 0x07, + 0x0A, 0xE1, 0x24, 0x1C, 0x80, 0x1C, 0xA7, 0xFE, 0xFA, 0x09, 0x0C, 0xDC, 0x0C, 0xFD, 0x01, 0x05, 0x08, 0x0D, 0xDB, 0x0C, 0x2E, 0x15, 0x2F, 0x44, 0x49, + 0x1D, 0x1D, 0x49, 0x44, 0x2F, 0x15, 0x07, 0x0B, 0x0E, 0x08, 0x0A, 0x0A, 0x08, 0x0E, 0x0B, 0x07, 0x12, 0x28, 0x3F, 0x39, 0x40, 0x19, 0x16, 0x1D, 0x0C, + 0x02, 0x11, 0x13, 0x24, 0x5A, 0x38, 0x1A, 0x07, 0x0B, 0x0E, 0x06, 0x0C, 0x09, 0x09, 0x0E, 0x0B, 0x01, 0x19, 0x14, 0x18, 0x18, 0x68, 0x10, 0x10, 0x10, + 0xFE, 0xD0, 0x10, 0x10, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xB9, 0x02, 0x42, 0x01, 0xC0, 0x00, 0x12, 0x00, 0x32, 0x00, 0x3A, 0x00, 0x00, 0x25, + 0x27, 0x26, 0x36, 0x3F, 0x01, 0x17, 0x37, 0x27, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x26, 0x17, 0x16, 0x06, 0x0F, 0x01, 0x0E, 0x01, + 0x27, 0x2E, 0x01, 0x27, 0x26, 0x37, 0x03, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x13, 0x16, 0x17, 0x37, 0x36, 0x16, 0x17, + 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x26, 0x35, 0x02, 0x06, 0x06, 0x3E, 0x21, 0x3D, 0x21, 0x3D, 0x06, 0x0C, 0x02, 0x3C, 0x02, 0x06, + 0x06, 0xA1, 0x17, 0xFE, 0x02, 0x06, 0x06, 0xD5, 0x01, 0x44, 0x2D, 0x1D, 0x2B, 0x05, 0x08, 0x2C, 0x5C, 0x59, 0x07, 0x09, 0x09, 0x07, 0x70, 0x17, 0x07, + 0x64, 0x2D, 0x1C, 0xD6, 0x06, 0x0C, 0x02, 0xFE, 0xB7, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xAA, 0xA0, 0x06, 0x0C, 0x02, 0x14, 0x63, 0x14, 0x63, 0x15, 0x02, + 0x06, 0x06, 0xB5, 0x07, 0x0C, 0x02, 0x35, 0x11, 0x29, 0x07, 0x0B, 0x03, 0x47, 0x2C, 0x38, 0x08, 0x05, 0x2C, 0x1E, 0x37, 0x23, 0x01, 0x15, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x16, 0xFE, 0xD6, 0x01, 0x24, 0x47, 0x02, 0x06, 0x06, 0xA8, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, + 0x02, 0x80, 0x01, 0xC0, 0x00, 0x14, 0x00, 0x42, 0x00, 0x00, 0x37, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x37, 0x17, 0x35, 0x33, 0x32, + 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x23, + 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x23, 0x22, 0x26, 0x35, 0x11, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, + 0x15, 0x11, 0xD0, 0x07, 0x09, 0x09, 0x07, 0x90, 0x30, 0x30, 0x90, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x53, 0x03, 0x1C, 0x28, 0x1C, + 0x03, 0xC6, 0x03, 0x1C, 0x28, 0x1C, 0x03, 0x53, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x80, 0x09, 0x07, 0x01, 0x00, 0x07, 0x09, + 0x80, 0x20, 0x20, 0x80, 0x09, 0x07, 0xFF, 0x00, 0x07, 0x09, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x14, 0x1C, 0x1C, 0x14, 0x08, 0x08, 0x09, + 0x07, 0x14, 0x1C, 0x1C, 0x14, 0x08, 0x08, 0x09, 0x07, 0x01, 0x70, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x90, 0x00, 0x03, 0x00, 0x00, 0xFF, + 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x08, 0x00, 0x1A, 0x00, 0x36, 0x00, 0x00, 0x01, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x33, 0x32, 0x17, 0x07, 0x14, 0x16, + 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x13, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, + 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x35, 0x01, 0x79, 0x07, 0x80, 0x06, 0x0A, 0x07, + 0x37, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0x40, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, + 0x08, 0x38, 0x08, 0x01, 0x57, 0x07, 0x0A, 0x06, 0x80, 0x07, 0x81, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0xFE, 0xD8, + 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, + 0x2F, 0x00, 0x38, 0x00, 0x00, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x33, 0x17, 0x16, 0x32, 0x3F, 0x01, + 0x17, 0x33, 0x32, 0x36, 0x34, 0x26, 0x2B, 0x01, 0x27, 0x26, 0x22, 0x0F, 0x01, 0x27, 0x26, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, + 0x36, 0x3B, 0x01, 0x17, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x33, 0x32, 0x17, 0x01, 0x20, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x46, 0x23, + 0x02, 0x0A, 0x02, 0x39, 0x16, 0x5A, 0x07, 0x09, 0x09, 0x07, 0x46, 0x23, 0x02, 0x0A, 0x02, 0x39, 0x14, 0x02, 0x05, 0x8D, 0x08, 0x08, 0x38, 0x0E, 0x0A, + 0xC8, 0x99, 0x07, 0x80, 0x06, 0x0A, 0x07, 0x01, 0x38, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0xA8, 0x46, 0x04, 0x04, 0x72, 0x2C, 0x09, 0x0E, + 0x09, 0x46, 0x04, 0x04, 0x72, 0x28, 0x04, 0x08, 0x10, 0x08, 0xE8, 0x0A, 0x0E, 0x69, 0x07, 0x0A, 0x06, 0x80, 0x07, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, + 0xE0, 0x02, 0x40, 0x01, 0xA0, 0x00, 0x09, 0x00, 0x0D, 0x00, 0x29, 0x00, 0x33, 0x00, 0x00, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x23, 0x22, 0x26, 0x35, + 0x17, 0x11, 0x21, 0x11, 0x25, 0x15, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x35, 0x34, + 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x25, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x11, 0x1C, 0x14, 0x30, 0x30, 0x14, 0x1C, 0x80, 0x01, + 0x40, 0xFF, 0x00, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x01, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0x30, 0x01, + 0x70, 0x14, 0x1C, 0xFE, 0x40, 0x1C, 0x14, 0x30, 0x01, 0xC0, 0xFE, 0x40, 0xF8, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, + 0x38, 0xC0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x01, 0xC0, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x19, 0x00, 0x25, 0x00, + 0x31, 0x00, 0x3D, 0x00, 0x49, 0x00, 0x65, 0x00, 0x71, 0x00, 0x7D, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, + 0x11, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, + 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, + 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, + 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x13, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, + 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x02, 0x20, 0x0D, 0x13, 0x09, 0x07, 0xFD, 0xE0, 0x07, 0x09, 0x13, + 0x0D, 0x80, 0x13, 0x0D, 0xC0, 0x0D, 0x13, 0xFF, 0x00, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0xA0, 0x0C, 0x28, 0x0C, + 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x10, 0x06, 0x1A, 0x06, 0x14, 0x06, 0x1A, 0x06, 0x06, 0x1A, 0x06, 0x14, 0x06, 0x1A, 0x06, 0x90, + 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x01, 0x60, 0x13, 0x0D, 0xFE, 0x90, 0x07, 0x09, 0x09, 0x07, 0x01, 0x70, 0x0D, + 0x13, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0xFE, 0xAC, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x8C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x74, 0x28, 0x0C, 0x0C, 0x28, + 0x0C, 0x8C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0xB6, 0x14, 0x06, 0x1A, 0x06, 0x06, 0x1A, 0x06, 0x14, 0x06, 0x1A, 0x06, 0x06, 0x1A, 0xFE, 0xDC, 0x28, 0x0C, + 0x0C, 0x28, 0x0C, 0x8C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x23, 0x00, + 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, + 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x96, 0xD4, 0x96, 0x96, 0xD4, 0x96, 0x01, 0x70, 0x08, 0x30, 0x08, 0x60, 0x08, + 0x30, 0x08, 0x08, 0x30, 0x08, 0x60, 0x08, 0x30, 0x08, 0x01, 0xC0, 0x96, 0xD4, 0x96, 0x96, 0xD4, 0xE2, 0xF0, 0x08, 0x08, 0x58, 0x58, 0x08, 0x08, 0xF0, + 0x08, 0x08, 0x58, 0x58, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x13, 0x00, 0x1B, 0x00, 0x2D, 0x00, 0x37, 0x00, + 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x33, 0x35, 0x06, 0x22, 0x06, 0x14, + 0x16, 0x32, 0x36, 0x34, 0x17, 0x32, 0x36, 0x27, 0x2E, 0x01, 0x2B, 0x01, 0x06, 0x22, 0x27, 0x23, 0x22, 0x06, 0x07, 0x06, 0x16, 0x33, 0x13, 0x15, 0x23, + 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x02, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x20, 0x14, 0x1C, 0x1C, 0x14, 0x90, 0xC0, 0x46, 0x34, 0x26, 0x26, + 0x34, 0x26, 0x1D, 0x08, 0x0A, 0x02, 0x06, 0x22, 0x15, 0x08, 0x13, 0x2A, 0x13, 0x08, 0x15, 0x22, 0x06, 0x02, 0x0A, 0x08, 0x9D, 0x80, 0x13, 0x0D, 0x40, + 0x0D, 0x13, 0x01, 0x80, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x60, 0x60, 0xA0, 0x26, 0x34, 0x26, 0x26, 0x34, 0xBA, + 0x0D, 0x07, 0x13, 0x19, 0x08, 0x08, 0x19, 0x13, 0x07, 0x0D, 0x01, 0xA0, 0x60, 0x60, 0x0D, 0x13, 0x13, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, + 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x15, 0x00, 0x1D, 0x00, 0x39, 0x00, 0x45, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x34, 0x36, 0x32, 0x16, 0x15, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x13, 0x35, 0x34, 0x2B, 0x01, + 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x3D, 0x01, + 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x01, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x50, 0x26, 0x34, + 0x26, 0x36, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x48, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0xB0, 0x08, + 0x08, 0xB0, 0x08, 0x01, 0x80, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1A, 0x26, 0x26, 0x1A, 0x18, 0x0E, 0x14, 0x0E, + 0x0E, 0x14, 0xFE, 0xDE, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0xC8, 0x10, 0x08, 0x08, 0x10, 0x08, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x14, 0x00, 0x38, 0x00, 0x3C, 0x00, 0x40, 0x00, 0x00, 0x37, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x15, 0x37, 0x17, 0x35, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x17, 0x23, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x05, 0x35, 0x23, 0x15, 0x21, 0x35, 0x23, 0x15, 0x90, 0x07, 0x09, 0x09, 0x07, 0x70, 0x40, 0x40, 0x70, 0x07, 0x09, 0x09, 0x07, 0x80, 0x30, + 0x30, 0x07, 0x09, 0x09, 0x07, 0xFD, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0x09, 0x07, 0x02, 0x60, 0x07, 0x09, 0x09, 0xFE, 0xA9, 0xA0, + 0x01, 0x80, 0xA0, 0xC0, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x80, 0x20, 0x20, 0x80, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x80, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x04, 0x00, + 0x00, 0xFF, 0xDC, 0x02, 0x44, 0x01, 0xA0, 0x00, 0x0B, 0x00, 0x13, 0x00, 0x1D, 0x00, 0x27, 0x00, 0x00, 0x12, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x17, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x37, 0x17, 0x16, 0x07, 0x06, 0x2E, 0x02, 0x37, 0x3E, 0x01, 0x1E, 0x01, 0x07, + 0x06, 0x2F, 0x01, 0x26, 0x37, 0x36, 0x42, 0x5C, 0x42, 0x42, 0x5C, 0x42, 0xA0, 0x1C, 0x28, 0x1C, 0xEC, 0xD2, 0x07, 0x07, 0x2F, 0x76, 0x54, 0x08, 0x22, + 0x06, 0xC3, 0x53, 0x09, 0x23, 0x05, 0x07, 0xD3, 0x06, 0x07, 0x2F, 0x01, 0xA0, 0x42, 0x2E, 0xE0, 0x2E, 0x42, 0x42, 0x2E, 0xE0, 0x2E, 0x9E, 0x70, 0x14, + 0x1C, 0x1C, 0x14, 0x70, 0x1E, 0xD3, 0x07, 0x05, 0x23, 0x09, 0x53, 0x76, 0x2F, 0x07, 0x37, 0x54, 0x76, 0x2F, 0x07, 0x07, 0xD2, 0x07, 0x06, 0x22, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x21, 0x00, 0x31, 0x00, 0x00, 0x13, 0x35, 0x21, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x3D, 0x01, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x35, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x35, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x23, + 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x20, 0x01, 0x40, 0x13, 0x0D, 0xFF, 0x00, 0x0D, 0x13, + 0x78, 0x08, 0x08, 0x78, 0x78, 0x08, 0x08, 0x78, 0x78, 0x08, 0x08, 0xD0, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x00, 0x40, + 0xFE, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, 0xC0, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x0E, + 0x0A, 0x30, 0x0A, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x19, 0x00, 0x35, 0x00, 0x00, + 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x13, 0x11, 0x21, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x37, 0x15, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, + 0x1D, 0x01, 0x23, 0x22, 0x01, 0x68, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x01, 0x40, 0x13, 0x0D, 0xFF, 0x00, 0x0D, 0x13, + 0x40, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x01, 0xC0, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x0E, 0x0A, 0x30, + 0x0A, 0x0E, 0xFE, 0x20, 0x01, 0x60, 0xFE, 0xA0, 0x0D, 0x13, 0x13, 0xC5, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC1, 0x00, 0x23, 0x00, 0x3F, 0x00, 0x47, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, + 0x33, 0x35, 0x34, 0x36, 0x33, 0x27, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x14, 0x06, + 0x2B, 0x01, 0x27, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x02, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x02, 0x10, 0x2E, 0x42, 0x09, 0x07, 0x20, 0x07, 0x09, + 0xFE, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, 0x09, 0x07, 0x88, 0x08, 0x08, 0x8D, 0x05, 0x02, 0x14, 0x32, 0x04, 0x14, + 0x04, 0x1C, 0x66, 0x07, 0x09, 0x09, 0x07, 0x7A, 0x16, 0x32, 0x04, 0x14, 0x04, 0x1C, 0x4C, 0x34, 0x26, 0x26, 0x34, 0x26, 0xE0, 0x42, 0x2E, 0xA0, 0x07, + 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0x09, 0x07, 0x01, 0x60, 0x07, 0x09, 0x09, 0x07, 0xF0, 0x90, 0x07, 0x09, 0x80, 0x08, 0x10, 0x08, 0x04, 0x28, + 0x63, 0x09, 0x09, 0x37, 0x09, 0x0E, 0x09, 0x2C, 0x63, 0x09, 0x09, 0x37, 0xFF, 0x00, 0x26, 0x34, 0x26, 0x26, 0x34, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x49, 0x00, 0x51, 0x00, 0x59, 0x00, 0x5E, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, + 0x01, 0x14, 0x06, 0x22, 0x26, 0x35, 0x23, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, + 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x23, 0x21, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, + 0x35, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x1D, 0x01, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x04, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, 0x35, 0x27, 0x23, 0x15, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0x30, 0x38, 0x50, 0x38, 0x80, 0x38, 0x50, + 0x38, 0x98, 0x08, 0x08, 0xD0, 0x08, 0x08, 0xF0, 0x08, 0x08, 0xD0, 0x08, 0x08, 0xF0, 0x08, 0x08, 0xFE, 0xF0, 0x08, 0x08, 0x38, 0x1C, 0x14, 0x01, 0x00, + 0x14, 0x1C, 0x2C, 0x14, 0x0E, 0x64, 0x0E, 0xFE, 0x2C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0x5C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x80, 0x64, 0x2C, 0x60, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x28, 0x38, 0x38, 0x28, 0x28, 0x38, 0x38, 0x28, 0x80, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, + 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x30, 0x14, 0x1C, 0x1C, 0x14, 0x30, 0x0E, 0x64, 0x0E, 0x14, 0x6C, 0x70, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, + 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xB4, 0x0C, 0x64, 0x70, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x0B, 0x00, + 0x23, 0x00, 0x33, 0x00, 0x37, 0x00, 0x4E, 0x00, 0x5A, 0x00, 0x00, 0x25, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x33, 0x03, 0x1E, + 0x01, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x26, 0x27, 0x26, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x03, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x05, 0x35, 0x23, 0x15, 0x01, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x2B, 0x01, + 0x22, 0x3D, 0x01, 0x34, 0x27, 0x26, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x17, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, + 0x34, 0x33, 0x02, 0x78, 0x08, 0x08, 0x30, 0x08, 0x08, 0x1F, 0x29, 0x2E, 0x08, 0x30, 0x08, 0x24, 0x1F, 0x1D, 0x08, 0x30, 0x08, 0x70, 0x07, 0x09, 0x09, + 0x07, 0xFE, 0x80, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0xB0, 0x01, 0x08, 0x1A, 0x1E, 0x08, 0x30, 0x08, 0x24, 0x3C, 0x08, 0x30, 0x08, 0x58, 0x08, 0x08, + 0x30, 0x08, 0x08, 0x60, 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x01, 0x09, 0x1B, 0x57, 0x31, 0x1E, 0x08, 0x08, 0x1E, 0x26, 0x42, 0x14, 0x13, 0x25, 0x3E, + 0x08, 0x08, 0x3E, 0x0B, 0xFE, 0xF1, 0x09, 0x07, 0x80, 0x07, 0x09, 0x1C, 0x14, 0x40, 0x14, 0x1C, 0x70, 0x40, 0x40, 0x01, 0x42, 0x12, 0x39, 0x21, 0x1E, + 0x08, 0x08, 0x1E, 0x2C, 0x19, 0x2A, 0x41, 0x42, 0x08, 0x08, 0x3E, 0x2C, 0xEE, 0x08, 0x90, 0x08, 0x08, 0x90, 0x08, 0x00, 0x02, 0xFF, 0xFC, 0xFF, 0xBC, + 0x02, 0x04, 0x01, 0xC4, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0x00, 0x13, 0x37, 0x17, 0x07, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x27, + 0x26, 0x3F, 0x01, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x27, 0x37, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x07, + 0x17, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x03, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x02, 0x37, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x17, 0xCA, 0x40, 0x88, 0xB6, 0x1B, + 0x26, 0x40, 0x42, 0x06, 0x05, 0x0C, 0x05, 0x05, 0x43, 0x07, 0x04, 0x1B, 0x1A, 0x38, 0x05, 0x06, 0x0B, 0x06, 0x06, 0x37, 0x2D, 0x38, 0x05, 0x06, 0x0B, + 0x06, 0x06, 0xFD, 0x05, 0x05, 0x0C, 0x05, 0x06, 0x1C, 0x2D, 0x49, 0x06, 0x06, 0x22, 0x06, 0x05, 0x11, 0x88, 0x11, 0x06, 0x06, 0x22, 0x06, 0x05, 0x11, + 0x39, 0x2D, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x05, 0x01, 0x11, 0x41, 0x88, 0xB5, 0x1C, 0x05, 0x07, 0x43, 0x05, 0x05, 0x0C, 0x05, 0x06, 0x42, 0x40, 0x26, + 0x1B, 0x1B, 0x38, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x37, 0x2E, 0x38, 0x06, 0x06, 0x0B, 0x06, 0x05, 0x95, 0x05, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x2D, 0x4A, + 0x05, 0x06, 0x22, 0x06, 0x06, 0x11, 0x88, 0x11, 0x06, 0x05, 0x22, 0x06, 0x06, 0x11, 0x38, 0x2D, 0x1C, 0x06, 0x05, 0x0C, 0x05, 0x05, 0x00, 0x00, 0x04, + 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x84, 0x01, 0xC4, 0x00, 0x0B, 0x00, 0x17, 0x00, 0x21, 0x00, 0x2B, 0x00, 0x00, 0x12, 0x32, 0x16, 0x17, 0x16, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x35, 0x36, 0x05, 0x32, 0x16, 0x15, 0x0E, 0x01, 0x22, 0x26, 0x27, 0x34, 0x36, 0x33, 0x00, 0x1E, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, + 0x37, 0x36, 0x07, 0x17, 0x16, 0x07, 0x06, 0x2E, 0x02, 0x37, 0x36, 0x64, 0x78, 0x5B, 0x09, 0x01, 0x06, 0x03, 0xFE, 0xD0, 0x03, 0x05, 0x09, 0x01, 0x2F, + 0x03, 0x05, 0x09, 0x5B, 0x78, 0x5B, 0x09, 0x05, 0x03, 0x02, 0x1F, 0x54, 0x09, 0x23, 0x05, 0x07, 0xD3, 0x07, 0x07, 0x2F, 0x46, 0xD3, 0x07, 0x07, 0x2F, + 0x76, 0x54, 0x09, 0x23, 0x05, 0x01, 0x00, 0x4D, 0x3A, 0x03, 0x06, 0x06, 0x03, 0x3A, 0x63, 0x06, 0x03, 0x3A, 0x4D, 0x4D, 0x3A, 0x03, 0x06, 0x01, 0x6B, + 0x54, 0x76, 0x2F, 0x07, 0x07, 0xD3, 0x07, 0x05, 0x23, 0x46, 0xD3, 0x07, 0x05, 0x23, 0x09, 0x54, 0x76, 0x2F, 0x07, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, + 0xFF, 0xC0, 0x02, 0x01, 0x01, 0xC3, 0x00, 0x28, 0x00, 0x00, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x23, 0x07, 0x06, 0x22, 0x26, 0x34, 0x3F, 0x01, 0x35, 0x37, + 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x3E, + 0x01, 0x01, 0xDD, 0x23, 0x1C, 0xFE, 0x64, 0x59, 0x07, 0x14, 0x0E, 0x07, 0x59, 0x2D, 0x32, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x32, 0x2D, 0x32, 0x06, 0x06, + 0x0B, 0x06, 0x06, 0x32, 0x2D, 0x32, 0x06, 0x05, 0x0C, 0x05, 0x05, 0x33, 0x2E, 0x1B, 0x4D, 0x01, 0xAC, 0x21, 0x52, 0x1C, 0xFD, 0x59, 0x07, 0x0E, 0x14, + 0x07, 0x59, 0x65, 0x2E, 0x33, 0x05, 0x05, 0x0C, 0x05, 0x06, 0x32, 0x2E, 0x33, 0x05, 0x05, 0x0C, 0x05, 0x06, 0x32, 0x2E, 0x33, 0x05, 0x05, 0x0C, 0x05, + 0x06, 0x32, 0x2E, 0x1C, 0x06, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFD, 0xFF, 0xCF, 0x01, 0xE4, 0x01, 0xB4, 0x00, 0x15, 0x00, 0x19, 0x00, 0x00, 0x01, 0x16, + 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x37, 0x27, 0x07, 0x01, + 0xDE, 0x05, 0x05, 0x22, 0x06, 0x06, 0x0B, 0xF6, 0x1E, 0x2B, 0x2F, 0x1F, 0x1B, 0x06, 0x1E, 0xF2, 0x0B, 0x05, 0x05, 0x22, 0x06, 0x06, 0x08, 0x46, 0x4F, + 0x94, 0x01, 0x06, 0x06, 0x05, 0x22, 0x06, 0x06, 0x0B, 0xF6, 0x1E, 0x24, 0x20, 0x52, 0x1E, 0xF1, 0x0B, 0x06, 0x06, 0x22, 0x05, 0x05, 0xEE, 0x45, 0x4F, + 0x94, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x13, 0x00, 0x17, 0x00, 0x27, 0x00, 0x3B, 0x00, 0x3F, 0x00, 0x00, + 0x13, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x33, 0x15, 0x33, 0x35, 0x01, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, + 0x14, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x33, 0x15, 0x33, 0x35, 0x48, 0x08, 0x08, 0xD0, 0x08, 0x08, 0x18, 0x2F, 0x42, 0x2F, 0x30, + 0x40, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xFD, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x58, 0x08, 0x08, 0xD0, 0x08, 0x08, 0x18, 0x2F, 0x42, 0x2F, 0x30, + 0x40, 0x01, 0x80, 0x08, 0x30, 0x08, 0x08, 0x30, 0x08, 0xF0, 0x21, 0x2F, 0x2F, 0x21, 0xF0, 0x60, 0x60, 0xFE, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x01, 0x80, 0x08, 0x30, 0x08, 0x08, 0x30, 0x08, 0xF0, 0x21, 0x2F, 0x2F, 0x21, 0xF0, 0x60, 0x60, 0x00, 0x00, 0x04, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x17, 0x00, 0x23, 0x00, 0x41, 0x00, 0x00, 0x25, 0x32, 0x1D, 0x01, 0x14, 0x23, 0x21, 0x22, 0x3D, + 0x01, 0x34, 0x33, 0x05, 0x32, 0x1D, 0x01, 0x14, 0x23, 0x21, 0x22, 0x3D, 0x01, 0x34, 0x33, 0x25, 0x32, 0x1D, 0x01, 0x14, 0x23, 0x21, 0x22, 0x35, 0x37, + 0x34, 0x33, 0x25, 0x16, 0x15, 0x11, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x26, 0x23, 0x21, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x35, + 0x11, 0x34, 0x37, 0x25, 0x36, 0x32, 0x17, 0x01, 0xF8, 0x08, 0x08, 0xFE, 0x90, 0x08, 0x08, 0x01, 0x70, 0x08, 0x08, 0xFE, 0x90, 0x08, 0x08, 0x01, 0x70, + 0x08, 0x08, 0xFE, 0x90, 0x08, 0x01, 0x08, 0x01, 0xD9, 0x1E, 0x08, 0x50, 0x08, 0x13, 0x0E, 0xFE, 0x82, 0x0E, 0x13, 0x08, 0x50, 0x08, 0x1E, 0x01, 0x10, + 0x08, 0x14, 0x08, 0x60, 0x08, 0x30, 0x08, 0x08, 0x30, 0x08, 0x60, 0x08, 0x30, 0x08, 0x08, 0x30, 0x08, 0xC0, 0x08, 0x30, 0x08, 0x08, 0x30, 0x08, 0x8B, + 0x0C, 0x20, 0xFE, 0xA9, 0x08, 0x08, 0xF8, 0x0D, 0x13, 0x13, 0x0D, 0xF8, 0x08, 0x08, 0x01, 0x57, 0x20, 0x0C, 0x71, 0x04, 0x04, 0x00, 0x00, 0x03, 0x00, + 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x19, 0x00, 0x21, 0x00, 0x32, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x06, 0x15, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x27, 0x02, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x27, + 0x22, 0x06, 0x15, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x27, 0x37, 0x36, 0x2E, 0x01, 0x06, 0x07, 0x01, 0xC0, 0x1A, 0x26, 0x26, 0x1A, 0xFE, 0x80, 0x1A, + 0x26, 0x26, 0x1A, 0x1A, 0x1A, 0x71, 0x9E, 0x71, 0x1A, 0x64, 0x84, 0x5E, 0x5E, 0x84, 0x5E, 0xA0, 0x11, 0x17, 0x17, 0x22, 0x17, 0x0B, 0x22, 0x02, 0x05, + 0x0C, 0x0C, 0x03, 0x01, 0x80, 0x26, 0x1A, 0xFE, 0xC0, 0x1A, 0x26, 0x26, 0x1A, 0x01, 0x40, 0x1A, 0x26, 0x2D, 0x33, 0x4F, 0x71, 0x71, 0x4F, 0x33, 0x2D, + 0xFF, 0x00, 0x5E, 0x84, 0x5E, 0x5E, 0x84, 0x3A, 0x18, 0x10, 0x11, 0x17, 0x17, 0x11, 0x0F, 0x0C, 0x4F, 0x06, 0x0C, 0x05, 0x05, 0x06, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x33, 0x00, 0x7D, 0x00, 0x00, 0x36, 0x32, 0x16, 0x14, + 0x06, 0x22, 0x26, 0x34, 0x16, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x21, 0x11, 0x27, 0x35, + 0x34, 0x2B, 0x01, 0x35, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, + 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x3D, + 0x01, 0x33, 0x15, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x2B, 0x01, 0x35, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x35, 0x33, 0x32, 0xE9, 0x0E, 0x09, + 0x09, 0x0E, 0x09, 0xB7, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0xD0, 0x07, 0x09, 0x09, 0x07, 0xFD, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x02, 0x60, 0x07, 0x09, 0x09, + 0x07, 0xFD, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x30, 0x02, 0x00, 0x60, 0x08, 0x88, 0x68, 0x08, 0x08, 0x68, 0x08, 0x10, 0x08, 0x68, 0x08, 0x08, 0x68, 0x88, + 0x08, 0x08, 0x88, 0x68, 0x08, 0x08, 0x68, 0x40, 0x14, 0x1C, 0x1C, 0x28, 0x1C, 0x40, 0x1C, 0x28, 0x1C, 0x1C, 0x14, 0x40, 0x68, 0x08, 0x08, 0x68, 0x88, + 0x08, 0x40, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x17, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x01, 0x97, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, + 0xFE, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x60, 0xFE, 0xA0, 0xC8, 0x10, 0x08, 0x20, 0x08, 0x10, 0x08, 0x18, 0x08, + 0x08, 0x18, 0x08, 0x10, 0x08, 0x20, 0x08, 0x10, 0x08, 0x20, 0x08, 0x10, 0x08, 0x20, 0x1C, 0x28, 0x1C, 0x1C, 0x14, 0x10, 0x10, 0x14, 0x1C, 0x1C, 0x28, + 0x1C, 0x20, 0x08, 0x10, 0x08, 0x20, 0x00, 0x00, 0x03, 0xFF, 0xFE, 0xFF, 0xDE, 0x02, 0x82, 0x01, 0xA2, 0x00, 0x17, 0x00, 0x22, 0x00, 0x2D, 0x00, 0x00, + 0x25, 0x32, 0x3F, 0x01, 0x15, 0x14, 0x06, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x2E, 0x01, 0x3D, 0x01, 0x17, 0x16, 0x33, 0x32, 0x3F, 0x01, 0x17, 0x16, 0x37, + 0x16, 0x06, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x37, 0x36, 0x17, 0x21, 0x36, 0x1F, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x2E, 0x01, 0x37, 0x01, 0xAA, 0x07, 0x06, + 0x89, 0x0E, 0x0A, 0xD9, 0x0F, 0x10, 0xD8, 0x0A, 0x0E, 0x89, 0x06, 0x07, 0x1C, 0x0E, 0x40, 0x40, 0x0E, 0xF0, 0x04, 0x06, 0x08, 0xC6, 0x0C, 0x06, 0x5C, + 0xFA, 0x0C, 0x05, 0xFD, 0xEA, 0x05, 0x0C, 0xFA, 0x5C, 0x06, 0x0C, 0xC6, 0x08, 0x06, 0x04, 0xC0, 0x02, 0x27, 0xB2, 0x0B, 0x11, 0x03, 0x36, 0x04, 0x04, + 0x36, 0x03, 0x11, 0x0B, 0xB2, 0x27, 0x02, 0x17, 0x6B, 0x6B, 0x17, 0x70, 0x07, 0x0E, 0x02, 0x38, 0x04, 0x0B, 0x98, 0x20, 0x01, 0x0A, 0x0A, 0x01, 0x20, + 0x98, 0x0B, 0x04, 0x38, 0x02, 0x0E, 0x07, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, + 0x00, 0x2A, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x27, 0x06, 0x23, 0x22, 0x26, 0x3E, 0x02, 0x37, 0x26, 0x35, 0x34, 0x16, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x96, 0xD4, 0x96, 0x96, + 0x6A, 0x38, 0x33, 0x41, 0x4C, 0x05, 0x04, 0x07, 0x11, 0x1C, 0x06, 0x39, 0x73, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x93, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x93, + 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xA0, 0x7A, 0xAC, 0x7A, 0x13, 0x33, 0x0A, 0x07, 0x15, 0x31, 0x16, 0x39, 0x4A, 0x56, 0x76, 0x13, 0x1A, 0x13, 0x13, + 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xF9, 0xFF, 0xB9, 0x02, 0x81, 0x01, + 0xC7, 0x00, 0x0F, 0x00, 0x24, 0x00, 0x00, 0x37, 0x34, 0x37, 0x05, 0x06, 0x23, 0x22, 0x27, 0x06, 0x23, 0x22, 0x26, 0x37, 0x36, 0x37, 0x26, 0x05, 0x1E, + 0x01, 0x0F, 0x01, 0x06, 0x27, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x40, 0x09, 0x01, 0x45, 0x26, 0x28, + 0x38, 0x33, 0x41, 0x4C, 0x05, 0x04, 0x03, 0x2C, 0x0B, 0x39, 0x02, 0x3A, 0x05, 0x02, 0x04, 0x14, 0x0A, 0x0C, 0xFD, 0xB3, 0x0C, 0x09, 0x14, 0x0A, 0x0D, + 0x69, 0x49, 0x60, 0x6A, 0x96, 0x39, 0xD0, 0x1A, 0x1C, 0xFC, 0x0A, 0x13, 0x33, 0x0A, 0x04, 0x34, 0x2B, 0x39, 0x90, 0x04, 0x0D, 0x05, 0x1A, 0x0C, 0x0A, + 0x01, 0xC6, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0x52, 0x35, 0x7A, 0x56, 0x48, 0x3A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x01, 0x80, + 0x00, 0x11, 0x00, 0x39, 0x00, 0x00, 0x37, 0x34, 0x26, 0x2B, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x21, 0x25, + 0x32, 0x16, 0x15, 0x14, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x26, + 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x21, 0x35, 0x34, 0x36, 0x33, 0xA0, 0x26, 0x1A, 0x20, 0x38, 0x28, 0x01, 0x40, 0x28, 0x38, 0x20, + 0x1A, 0x26, 0xFE, 0xC0, 0x01, 0xA0, 0x1A, 0x26, 0x20, 0x09, 0x07, 0x40, 0x07, 0x09, 0xFE, 0x80, 0x09, 0x07, 0x40, 0x07, 0x09, 0x20, 0x26, 0x1A, 0x20, + 0x0D, 0x13, 0x01, 0x80, 0x13, 0x0D, 0xE0, 0x1A, 0x26, 0x28, 0x38, 0x38, 0x28, 0x26, 0x1A, 0x40, 0x60, 0x26, 0x1A, 0x24, 0x13, 0x79, 0x07, 0x09, 0x09, + 0x07, 0x10, 0x10, 0x07, 0x09, 0x09, 0x07, 0x79, 0x13, 0x24, 0x1A, 0x26, 0x13, 0x0D, 0x60, 0x60, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x45, 0x00, 0x67, 0x00, 0x00, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x27, 0x0E, 0x01, + 0x15, 0x14, 0x16, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x0F, 0x01, 0x06, 0x14, 0x17, 0x16, 0x17, 0x15, 0x14, 0x16, 0x3B, 0x01, + 0x32, 0x36, 0x3D, 0x01, 0x3E, 0x01, 0x35, 0x34, 0x26, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x3F, 0x01, 0x36, 0x26, 0x27, 0x26, + 0x27, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x15, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, + 0x01, 0x16, 0x17, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x21, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x36, 0x37, 0x01, 0x56, 0xAC, 0x7A, 0x7A, 0xAC, 0x7A, + 0xE6, 0x19, 0x22, 0x18, 0x13, 0x3F, 0x0C, 0x0A, 0x07, 0x26, 0x0A, 0x10, 0x06, 0x10, 0x04, 0x05, 0x13, 0x18, 0x09, 0x07, 0x0B, 0x07, 0x0A, 0x19, 0x22, + 0x18, 0x14, 0x3E, 0x0C, 0x0A, 0x06, 0x27, 0x0A, 0x10, 0x06, 0x10, 0x04, 0x01, 0x04, 0x13, 0x18, 0x0A, 0x06, 0x0C, 0x06, 0x0A, 0xF6, 0x0D, 0x13, 0x13, + 0x0D, 0xFE, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x1E, 0x2B, 0x3F, 0x0A, 0x0A, 0x01, 0x6C, 0x0A, 0x0A, 0x40, 0x2C, 0x1E, 0x20, 0x7A, 0xAC, 0x7A, 0x7A, + 0xAC, 0xC5, 0x01, 0x24, 0x1A, 0x15, 0x21, 0x06, 0x13, 0x03, 0x0E, 0x08, 0x0A, 0x0A, 0x06, 0x10, 0x04, 0x0A, 0x03, 0x0E, 0x01, 0x11, 0x07, 0x0A, 0x0A, + 0x07, 0x10, 0x01, 0x24, 0x1A, 0x15, 0x21, 0x06, 0x13, 0x03, 0x0E, 0x08, 0x0A, 0x0A, 0x06, 0x10, 0x04, 0x0A, 0x03, 0x0E, 0x01, 0x11, 0x07, 0x0A, 0x0A, + 0x07, 0xFE, 0xF1, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x27, 0x19, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x19, 0x27, 0x00, 0x00, + 0x00, 0x00, 0x03, 0xFF, 0xFE, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC3, 0x00, 0x09, 0x00, 0x29, 0x00, 0x31, 0x00, 0x00, 0x01, 0x26, 0x27, 0x36, 0x37, 0x36, + 0x16, 0x17, 0x16, 0x17, 0x37, 0x33, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x07, 0x06, 0x23, 0x26, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x26, 0x27, 0x26, 0x35, + 0x34, 0x37, 0x36, 0x32, 0x17, 0x1E, 0x01, 0x17, 0x35, 0x34, 0x36, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x20, 0x4E, 0x35, 0x11, 0x20, + 0x07, 0x13, 0x02, 0x0A, 0x2C, 0x70, 0x70, 0x20, 0x5E, 0x42, 0x4D, 0x41, 0x0A, 0x0C, 0x6B, 0x2E, 0x05, 0x06, 0x08, 0x90, 0x16, 0x11, 0x55, 0x1A, 0x04, + 0x15, 0x04, 0x1E, 0x7D, 0x4E, 0x2F, 0x1A, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0x19, 0x10, 0x3B, 0x31, 0x25, 0x08, 0x06, 0x0A, 0x45, 0x38, 0x4B, 0x40, + 0xA0, 0x42, 0x5E, 0x38, 0x08, 0x04, 0x48, 0x07, 0x10, 0x02, 0x24, 0x10, 0x11, 0x51, 0x68, 0x3D, 0x37, 0x09, 0x0A, 0x45, 0x58, 0x05, 0x3C, 0x21, 0x2F, + 0x60, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x41, 0x00, 0x80, 0x00, 0x25, 0x00, 0x00, 0x25, 0x16, 0x06, 0x0F, + 0x01, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x07, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x06, + 0x14, 0x16, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x36, 0x32, 0x02, 0x35, 0x0C, 0x01, 0x0C, 0x97, 0x12, 0x16, 0xFE, 0x9B, 0x07, 0x09, 0x09, 0x07, 0x37, 0x2F, + 0x20, 0x2A, 0xA0, 0x0F, 0x13, 0x02, 0x02, 0x14, 0x0C, 0x4E, 0x07, 0x09, 0x09, 0x07, 0x76, 0x17, 0x11, 0x5D, 0x09, 0x18, 0x78, 0x0A, 0x1E, 0x09, 0x79, + 0x0E, 0x09, 0x07, 0x60, 0x07, 0x09, 0x26, 0x1A, 0x17, 0x0E, 0x0C, 0x0F, 0x09, 0x0E, 0x09, 0x0E, 0x4A, 0x08, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, + 0x02, 0x41, 0x01, 0xC3, 0x00, 0x12, 0x00, 0x38, 0x00, 0x00, 0x25, 0x27, 0x26, 0x36, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, + 0x0F, 0x01, 0x06, 0x22, 0x05, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x07, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x36, 0x32, 0x01, 0x13, 0x6D, 0x17, 0x03, 0x1A, 0x17, 0x3D, + 0x15, 0x0B, 0x0B, 0x16, 0x3C, 0x17, 0x1B, 0x03, 0x18, 0x6D, 0x06, 0x0E, 0x01, 0x1C, 0x0C, 0x01, 0x0C, 0x97, 0x12, 0x16, 0xFE, 0x9B, 0x07, 0x09, 0x09, + 0x07, 0x37, 0x2F, 0x20, 0x2A, 0xA0, 0x0F, 0x13, 0x02, 0x02, 0x14, 0x0C, 0x4E, 0x07, 0x09, 0x09, 0x07, 0x76, 0x17, 0x11, 0x5D, 0x09, 0x18, 0xC6, 0x72, + 0x18, 0x48, 0x16, 0x14, 0x05, 0x16, 0x0C, 0x0C, 0x16, 0x05, 0x14, 0x16, 0x48, 0x18, 0x72, 0x06, 0x48, 0x0A, 0x1E, 0x09, 0x79, 0x0E, 0x09, 0x07, 0x60, + 0x07, 0x09, 0x26, 0x1A, 0x17, 0x0E, 0x0C, 0x0F, 0x09, 0x0E, 0x09, 0x0E, 0x4A, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x41, 0x01, + 0xC0, 0x00, 0x43, 0x00, 0x6C, 0x00, 0x00, 0x01, 0x2E, 0x01, 0x27, 0x26, 0x36, 0x37, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x16, 0x17, + 0x16, 0x15, 0x14, 0x07, 0x14, 0x0F, 0x01, 0x06, 0x27, 0x26, 0x2B, 0x01, 0x22, 0x15, 0x14, 0x1F, 0x01, 0x1E, 0x01, 0x17, 0x16, 0x06, 0x07, 0x15, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x34, 0x3F, 0x01, 0x36, 0x17, 0x16, 0x3B, 0x01, 0x32, 0x35, 0x34, 0x27, + 0x17, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x14, + 0x15, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x36, 0x32, 0x01, 0x0F, 0x12, 0x1A, 0x03, 0x03, 0x20, 0x19, 0x0A, + 0x07, 0x12, 0x07, 0x0A, 0x13, 0x10, 0x05, 0x02, 0x02, 0x13, 0x06, 0x09, 0x05, 0x06, 0x24, 0x09, 0x07, 0x36, 0x12, 0x1A, 0x03, 0x03, 0x20, 0x19, 0x0A, + 0x07, 0x12, 0x07, 0x0A, 0x13, 0x10, 0x05, 0x02, 0x02, 0x13, 0x06, 0x09, 0x05, 0x06, 0x24, 0x09, 0x07, 0xF0, 0x0B, 0x0C, 0x97, 0x12, 0x16, 0xFE, 0x9B, + 0x07, 0x09, 0x09, 0x07, 0x37, 0x2F, 0x20, 0x2A, 0xA0, 0x0D, 0x13, 0x02, 0x14, 0x0C, 0x4E, 0x07, 0x09, 0x09, 0x07, 0x76, 0x17, 0x11, 0x5D, 0x09, 0x18, + 0x01, 0x30, 0x05, 0x19, 0x11, 0x18, 0x25, 0x02, 0x12, 0x07, 0x09, 0x09, 0x07, 0x12, 0x02, 0x09, 0x04, 0x06, 0x03, 0x03, 0x01, 0x02, 0x11, 0x06, 0x04, + 0x02, 0x08, 0x07, 0x01, 0x0F, 0x05, 0x19, 0x11, 0x18, 0x25, 0x02, 0x12, 0x07, 0x09, 0x09, 0x07, 0x12, 0x02, 0x09, 0x04, 0x06, 0x03, 0x03, 0x01, 0x02, + 0x11, 0x06, 0x04, 0x02, 0x08, 0x07, 0x01, 0xA9, 0x0A, 0x0E, 0x0F, 0x0A, 0x79, 0x0E, 0x09, 0x07, 0x60, 0x07, 0x09, 0x26, 0x1A, 0x13, 0x0D, 0x03, 0x02, + 0x0C, 0x0F, 0x09, 0x0E, 0x09, 0x0E, 0x4A, 0x08, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x41, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x31, 0x00, 0x00, 0x24, + 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x32, 0x17, 0x16, 0x15, 0x14, 0x17, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x07, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x36, 0x32, 0x01, + 0x48, 0x50, 0x38, 0x53, 0x05, 0x10, 0x05, 0x53, 0xB5, 0x0C, 0x01, 0x0C, 0x97, 0x12, 0x16, 0xFE, 0x9B, 0x07, 0x09, 0x09, 0x07, 0x37, 0x2F, 0x20, 0x2A, + 0xA0, 0x0F, 0x13, 0x02, 0x02, 0x14, 0x0C, 0x4E, 0x07, 0x09, 0x09, 0x07, 0x76, 0x17, 0x11, 0x5D, 0x09, 0x18, 0xC0, 0x37, 0x27, 0x2C, 0x70, 0x06, 0x06, + 0x70, 0x2C, 0x27, 0x7F, 0x0A, 0x1E, 0x09, 0x79, 0x0E, 0x09, 0x07, 0x60, 0x07, 0x09, 0x26, 0x1A, 0x17, 0x0E, 0x0C, 0x0F, 0x09, 0x0E, 0x09, 0x0E, 0x4A, + 0x08, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0x80, 0x00, 0x22, 0x00, 0x45, 0x00, 0x00, 0x37, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x27, 0x26, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x17, 0x16, 0x32, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x26, + 0x3E, 0x01, 0x16, 0x24, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x06, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x3E, 0x01, + 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x16, 0x32, 0x3F, 0x01, 0x35, 0x34, 0xCD, 0x39, 0x1A, 0x09, 0x07, 0x84, 0x0C, 0x03, 0x03, 0x07, 0x69, 0x0A, + 0x13, 0x1A, 0x13, 0x5A, 0x04, 0x0E, 0x05, 0x0D, 0x0A, 0x08, 0x26, 0x08, 0x03, 0x16, 0x1A, 0x01, 0x8E, 0x1A, 0x13, 0x0A, 0x69, 0x07, 0x03, 0x03, 0x0C, + 0x84, 0x07, 0x09, 0x1A, 0x39, 0x08, 0x1A, 0x16, 0x03, 0x08, 0x26, 0x08, 0x0A, 0x0D, 0x05, 0x0E, 0x04, 0x5A, 0xDA, 0x4D, 0x22, 0x2B, 0x70, 0x07, 0x09, + 0x0C, 0x0C, 0x09, 0x87, 0x0D, 0x11, 0xDA, 0x0D, 0x13, 0x13, 0x0D, 0x94, 0x6C, 0x06, 0x05, 0x0D, 0x09, 0x0B, 0x33, 0x0B, 0x1A, 0x10, 0x04, 0x9C, 0x13, + 0x0D, 0xDA, 0x11, 0x0D, 0x87, 0x09, 0x0C, 0x0C, 0x09, 0x07, 0x70, 0x2B, 0x22, 0x4D, 0x0A, 0x04, 0x10, 0x1A, 0x0B, 0x33, 0x0B, 0x09, 0x0D, 0x05, 0x06, + 0x6C, 0x94, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFD, 0xFF, 0xBD, 0x02, 0x83, 0x01, 0xC3, 0x00, 0x25, 0x00, 0x40, 0x00, 0x00, 0x01, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x07, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x35, + 0x34, 0x3F, 0x01, 0x15, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x25, 0x16, 0x06, 0x0F, 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x37, 0x36, 0x16, 0x17, 0x01, 0xE8, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x13, 0x0D, 0x10, 0x26, 0x1A, 0x89, + 0x67, 0x0B, 0x1A, 0x07, 0x50, 0x06, 0x07, 0x0B, 0x50, 0x1F, 0x41, 0x2A, 0x3C, 0x2A, 0x01, 0x2C, 0x06, 0x07, 0x0B, 0x50, 0x21, 0x17, 0xB8, 0x17, 0x22, + 0x17, 0x0F, 0x21, 0x10, 0x12, 0x67, 0x67, 0x0B, 0x1A, 0x07, 0x01, 0x00, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x40, 0x0D, 0x13, 0x1A, 0x26, 0x3C, 0x06, 0x07, + 0x0B, 0x8B, 0x0B, 0x1A, 0x06, 0x2E, 0x30, 0x24, 0x13, 0x27, 0x7A, 0x1E, 0x2A, 0x2A, 0x1E, 0x38, 0x25, 0x0B, 0x1A, 0x06, 0x2E, 0x1C, 0x17, 0x21, 0x58, + 0x11, 0x17, 0x17, 0x11, 0x7E, 0x12, 0x09, 0x15, 0x0A, 0x3C, 0x06, 0x07, 0x0B, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x01, 0x01, 0xC0, + 0x00, 0x33, 0x00, 0x00, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x07, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x37, 0x27, 0x23, + 0x22, 0x26, 0x37, 0x3E, 0x01, 0x37, 0x06, 0x15, 0x23, 0x17, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x34, 0x36, 0x32, 0x16, 0x15, 0x23, 0x15, 0x33, 0x32, 0x17, + 0x37, 0x23, 0x34, 0x27, 0x1E, 0x01, 0x02, 0x00, 0x01, 0x0A, 0x07, 0x09, 0x89, 0x02, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x02, 0x89, 0x09, 0x07, 0x0A, 0x01, + 0x07, 0x58, 0x3F, 0x3E, 0x1C, 0x74, 0x07, 0x01, 0x30, 0x70, 0x51, 0x5E, 0x51, 0x70, 0x30, 0x01, 0x07, 0x74, 0x1C, 0x3E, 0x3F, 0x58, 0x01, 0x11, 0x07, + 0x0A, 0x98, 0x06, 0x02, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x02, 0x06, 0x98, 0x0A, 0x07, 0x36, 0x54, 0x15, 0x44, 0x6C, 0x82, 0x02, 0x80, 0x52, 0x6E, + 0x6E, 0x52, 0x80, 0x02, 0x82, 0x6C, 0x44, 0x15, 0x54, 0x00, 0x05, 0xFF, 0xFD, 0xFF, 0xBD, 0x02, 0x83, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1A, + 0x00, 0x64, 0x00, 0x6D, 0x00, 0x00, 0x12, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x04, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x13, 0x16, 0x06, + 0x07, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x3F, 0x02, 0x16, 0x0F, 0x02, 0x0E, 0x01, 0x23, 0x22, 0x23, 0x2E, 0x01, 0x3F, 0x01, 0x36, 0x3F, 0x01, 0x27, 0x07, + 0x06, 0x0F, 0x01, 0x06, 0x07, 0x23, 0x26, 0x2F, 0x01, 0x26, 0x2F, 0x01, 0x07, 0x17, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x07, 0x22, 0x23, 0x22, 0x26, 0x2F, + 0x02, 0x26, 0x3F, 0x01, 0x36, 0x37, 0x36, 0x17, 0x16, 0x1F, 0x02, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x3F, 0x01, 0x36, 0x37, 0x36, + 0x17, 0x16, 0x17, 0x05, 0x1F, 0x01, 0x07, 0x0E, 0x01, 0x2E, 0x01, 0x37, 0x94, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0x64, 0x28, 0x1C, 0x1C, 0x28, 0x1C, + 0x4E, 0x05, 0x0B, 0x0C, 0x06, 0x06, 0x16, 0x08, 0x1B, 0x02, 0x29, 0x0A, 0x07, 0x16, 0x43, 0x0A, 0x02, 0x12, 0x0C, 0x01, 0x03, 0x0D, 0x10, 0x01, 0x0A, + 0x03, 0x0D, 0x2B, 0x11, 0x07, 0x06, 0x13, 0x33, 0x06, 0x0B, 0xA0, 0x0B, 0x06, 0x33, 0x12, 0x07, 0x07, 0x11, 0x2B, 0x0D, 0x03, 0x0A, 0x01, 0x10, 0x0D, + 0x03, 0x01, 0x0C, 0x12, 0x02, 0x0A, 0x43, 0x16, 0x07, 0x13, 0x07, 0x1E, 0x1D, 0x1B, 0x24, 0x0D, 0x0B, 0x10, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x10, 0x0B, + 0x0D, 0x23, 0x1B, 0x1E, 0x1E, 0x07, 0xFD, 0xE5, 0x29, 0x02, 0x1B, 0x05, 0x18, 0x19, 0x0B, 0x05, 0x01, 0x60, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, + 0x28, 0x1C, 0x1C, 0x28, 0xFE, 0x70, 0x0C, 0x19, 0x05, 0x02, 0x14, 0x45, 0x13, 0x2E, 0x64, 0x20, 0x19, 0x4C, 0x5D, 0x0C, 0x10, 0x02, 0x14, 0x0E, 0x5C, + 0x14, 0x0F, 0x31, 0x47, 0x15, 0x13, 0x0D, 0x21, 0x04, 0x01, 0x01, 0x04, 0x21, 0x0D, 0x13, 0x15, 0x47, 0x31, 0x0F, 0x14, 0x5C, 0x0E, 0x14, 0x02, 0x10, + 0x0C, 0x5D, 0x4C, 0x19, 0x20, 0x50, 0x20, 0x0D, 0x0C, 0x0F, 0x15, 0x27, 0x22, 0x0A, 0x60, 0x07, 0x09, 0x09, 0x07, 0x60, 0x0A, 0x22, 0x27, 0x15, 0x0F, + 0x0C, 0x0D, 0x20, 0xB4, 0x2E, 0x13, 0x45, 0x0C, 0x0B, 0x0A, 0x19, 0x0C, 0x00, 0x03, 0xFF, 0xFD, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x40, 0x00, + 0x48, 0x00, 0x57, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x06, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x2E, 0x01, 0x35, 0x23, 0x22, 0x26, 0x37, 0x3E, 0x01, 0x33, 0x32, 0x1D, 0x01, 0x14, 0x2B, + 0x01, 0x22, 0x06, 0x07, 0x06, 0x16, 0x3B, 0x01, 0x3E, 0x01, 0x3B, 0x01, 0x32, 0x17, 0x36, 0x3B, 0x01, 0x07, 0x16, 0x17, 0x06, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x27, 0x22, 0x07, 0x34, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x31, 0x26, 0x23, 0x02, 0x30, 0x07, 0x09, 0x09, 0x07, 0x31, + 0x0D, 0x12, 0x09, 0x07, 0x40, 0x07, 0x09, 0x80, 0x09, 0x07, 0x40, 0x07, 0x09, 0x1E, 0x22, 0x28, 0x19, 0x22, 0x03, 0x03, 0x21, 0x16, 0x06, 0x06, 0x01, + 0x09, 0x0E, 0x02, 0x02, 0x0F, 0x0B, 0x2B, 0x0B, 0x58, 0x3A, 0x80, 0x07, 0x10, 0x1D, 0x2C, 0x20, 0x13, 0x18, 0x0D, 0x69, 0x0E, 0x09, 0x09, 0x0E, 0x09, + 0xA0, 0x17, 0x18, 0x01, 0x38, 0x50, 0x38, 0x0B, 0x05, 0xE0, 0x09, 0x07, 0x80, 0x07, 0x09, 0x12, 0x0D, 0x51, 0x07, 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, + 0x09, 0x09, 0x07, 0x51, 0x16, 0x43, 0x26, 0x26, 0x19, 0x15, 0x1C, 0x06, 0x14, 0x06, 0x0B, 0x08, 0x0C, 0x11, 0x37, 0x49, 0x02, 0x22, 0x4C, 0x16, 0x1E, + 0x40, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0xB7, 0x06, 0x01, 0x04, 0x01, 0x28, 0x38, 0x38, 0x28, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFE, 0xFF, 0xB8, + 0x01, 0xC2, 0x01, 0xC1, 0x00, 0x08, 0x00, 0x29, 0x00, 0x00, 0x3F, 0x01, 0x17, 0x07, 0x06, 0x2F, 0x01, 0x2E, 0x01, 0x25, 0x16, 0x06, 0x0F, 0x01, 0x06, + 0x27, 0x03, 0x2E, 0x01, 0x34, 0x3E, 0x01, 0x3F, 0x01, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x27, 0x36, 0x37, 0x26, + 0x22, 0x07, 0x06, 0x75, 0x4F, 0x5B, 0x0E, 0x12, 0x44, 0x09, 0x03, 0x01, 0xBB, 0x07, 0x02, 0x09, 0x45, 0x12, 0x0D, 0xF9, 0x0D, 0x0C, 0x07, 0x05, 0x02, + 0x2C, 0x06, 0x0A, 0x22, 0x6B, 0x1F, 0x0A, 0x06, 0x2C, 0x11, 0x07, 0x15, 0x22, 0x4F, 0x34, 0x04, 0x21, 0x5A, 0x21, 0x04, 0x82, 0x58, 0x66, 0x10, 0x0C, + 0x1C, 0x06, 0x16, 0x08, 0x08, 0x16, 0x06, 0x1C, 0x0C, 0x10, 0x01, 0x13, 0x0F, 0x23, 0x1B, 0x1B, 0x09, 0x03, 0x49, 0x0C, 0x06, 0x16, 0x16, 0x06, 0x0C, + 0x49, 0x1C, 0x40, 0x17, 0x26, 0x57, 0x3B, 0x06, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x26, + 0x00, 0x2E, 0x00, 0x3B, 0x00, 0x43, 0x00, 0x00, 0x25, 0x32, 0x16, 0x14, 0x06, 0x23, 0x21, 0x36, 0x37, 0x33, 0x32, 0x36, 0x34, 0x26, 0x2B, 0x01, 0x22, + 0x26, 0x34, 0x36, 0x3B, 0x01, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x0F, 0x01, 0x23, 0x22, 0x06, 0x14, 0x16, 0x33, 0x12, 0x22, 0x06, + 0x14, 0x16, 0x32, 0x36, 0x34, 0x04, 0x32, 0x16, 0x15, 0x14, 0x06, 0x0F, 0x01, 0x2E, 0x02, 0x35, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, + 0x01, 0xA0, 0x28, 0x38, 0x38, 0x28, 0xFE, 0xEA, 0x1B, 0x15, 0xE6, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x28, 0x38, 0x38, 0x28, 0x2D, 0x2D, 0x38, 0x50, 0x38, + 0x30, 0x18, 0x18, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x6D, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xFE, 0x78, 0x50, 0x38, 0x30, 0x18, 0x18, 0x0B, 0x20, 0x35, 0x53, + 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x80, 0x38, 0x50, 0x38, 0x21, 0x1F, 0x13, 0x1A, 0x13, 0x38, 0x50, 0x38, 0x40, 0x20, 0x28, 0x38, 0x38, 0x28, 0x18, 0x50, + 0x1C, 0x1C, 0x13, 0x1A, 0x13, 0x01, 0x00, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xAD, 0x38, 0x28, 0x18, 0x50, 0x1C, 0x1C, 0x0C, 0x26, 0x56, 0x18, 0x28, 0x48, + 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x18, 0x00, 0x00, 0x13, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x22, 0x26, 0x35, 0x25, 0x33, 0x14, 0x06, 0x07, 0x26, 0x27, 0x3E, 0x01, 0x40, 0x5D, 0x83, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x5D, 0x83, 0x01, 0xC0, 0x40, 0x74, 0x55, 0x10, 0x2B, 0x1E, 0x68, 0x01, 0x60, 0x83, 0x5D, 0x90, 0x07, 0x09, 0x09, 0x07, 0x90, + 0x83, 0x5D, 0x40, 0x56, 0x80, 0x09, 0x3D, 0x2F, 0x34, 0x3F, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x23, 0x00, 0x27, 0x00, + 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x13, 0x35, 0x21, 0x15, 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x90, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x01, 0x40, 0x01, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, + 0xFE, 0x90, 0x07, 0x09, 0x09, 0x07, 0x01, 0x70, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0xFE, 0xC0, 0xE0, 0xE0, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2C, 0x00, 0x00, 0x3C, 0x01, 0x36, 0x32, + 0x16, 0x14, 0x06, 0x22, 0x12, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x37, 0x17, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x06, 0x16, 0x3F, + 0x01, 0x36, 0x32, 0x07, 0x26, 0x0E, 0x01, 0x17, 0x16, 0x32, 0x37, 0x36, 0x26, 0x07, 0x06, 0x22, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x37, 0x13, 0x1A, 0x13, + 0x13, 0x1A, 0xB1, 0x0A, 0x06, 0x0F, 0x01, 0x03, 0x25, 0x28, 0x25, 0x03, 0x01, 0x0F, 0x06, 0x0A, 0x0B, 0x26, 0xBD, 0x07, 0x12, 0x05, 0x05, 0x2D, 0x8C, + 0x2D, 0x0A, 0x19, 0x0A, 0x23, 0x6E, 0x59, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x1B, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x10, 0x09, 0x06, 0x08, 0x09, 0x12, + 0x18, 0x18, 0x12, 0x09, 0x08, 0x06, 0x09, 0x09, 0x6F, 0x08, 0x04, 0x10, 0x08, 0x36, 0x36, 0x0C, 0x14, 0x0C, 0x2A, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, + 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x07, 0x00, 0x19, 0x00, 0x21, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x26, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0xC6, 0x34, 0x26, + 0x26, 0x34, 0x26, 0x01, 0xD0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x70, 0x5D, 0x83, 0x83, 0xBA, 0x83, 0x43, 0xC5, 0x50, 0x38, 0x38, 0x50, 0x38, 0x01, 0x00, + 0x26, 0x34, 0x26, 0x26, 0x34, 0xBA, 0x09, 0x07, 0x20, 0x07, 0x09, 0x83, 0xBA, 0x83, 0x83, 0x5D, 0x5E, 0x42, 0x40, 0x38, 0x50, 0x38, 0x38, 0x50, 0x00, + 0x03, 0xFF, 0xFE, 0xFF, 0xBE, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x13, 0x00, 0x26, 0x00, 0x2E, 0x00, 0x00, 0x37, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x17, 0x37, + 0x27, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x26, 0x01, 0x21, 0x11, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x05, 0x06, 0x2F, 0x01, + 0x26, 0x37, 0x25, 0x11, 0x34, 0x36, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x32, 0x31, 0x02, 0x07, 0x06, 0x4D, 0x19, 0x3E, 0x19, 0x4D, 0x07, + 0x0B, 0x02, 0x32, 0x01, 0x06, 0x07, 0xD8, 0x07, 0x0B, 0x01, 0x4C, 0x01, 0x00, 0x42, 0x2E, 0x2D, 0x41, 0x02, 0xFE, 0x77, 0x08, 0x02, 0x0D, 0x02, 0x08, + 0x01, 0x5A, 0x13, 0x89, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x48, 0xBA, 0x06, 0x0C, 0x02, 0x14, 0x5C, 0x10, 0x5D, 0x15, 0x01, 0x06, 0x07, 0xB9, 0x07, 0x0B, + 0x02, 0x3A, 0x02, 0x07, 0x01, 0x7E, 0xFE, 0x70, 0x2E, 0x42, 0x3F, 0x2D, 0x6C, 0x02, 0x08, 0x2E, 0x08, 0x02, 0x5E, 0x01, 0x44, 0x0D, 0x13, 0xFE, 0x40, + 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x29, 0x00, 0x31, 0x00, 0x39, 0x00, 0x3F, 0x00, 0x47, + 0x00, 0x00, 0x25, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x23, 0x16, 0x15, 0x14, 0x06, 0x23, + 0x22, 0x27, 0x06, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x17, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x25, 0x15, 0x33, 0x27, 0x26, 0x23, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, + 0x6D, 0x13, 0x09, 0x07, 0x12, 0x02, 0x2F, 0x42, 0x2F, 0x02, 0xA4, 0x02, 0x2F, 0x21, 0x28, 0x18, 0x18, 0x28, 0x21, 0x2F, 0x13, 0x0D, 0x01, 0xA0, 0x0D, + 0x13, 0x26, 0x1A, 0x13, 0xFE, 0x10, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x93, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0x30, 0x5C, 0x2B, 0x05, 0x06, 0x03, 0x1A, + 0x13, 0x13, 0x1A, 0x13, 0xD3, 0x13, 0x1A, 0x56, 0x07, 0x09, 0x08, 0x08, 0x21, 0x2F, 0x2F, 0x21, 0x08, 0x08, 0x08, 0x08, 0x21, 0x2F, 0x20, 0x20, 0x2F, + 0x21, 0x01, 0x50, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x13, 0xFD, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xCD, 0x30, 0x2B, 0x05, + 0xE0, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xF9, 0xFF, 0xB9, 0x02, 0x81, 0x01, 0xC7, 0x00, 0x1E, 0x00, 0x26, 0x00, 0x00, + 0x05, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x01, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x17, 0x35, 0x37, 0x36, + 0x16, 0x15, 0x11, 0x14, 0x06, 0x07, 0x25, 0x35, 0x01, 0x06, 0x23, 0x21, 0x22, 0x26, 0x02, 0x7A, 0x05, 0x02, 0x04, 0x14, 0x0A, 0x0D, 0xB2, 0xFE, 0x8B, + 0x25, 0x0C, 0x09, 0x14, 0x0A, 0x0D, 0x4E, 0xF4, 0x14, 0x1C, 0x20, 0x6E, 0x10, 0x22, 0x11, 0x0C, 0xFD, 0xDD, 0x01, 0x6E, 0x0D, 0x11, 0xFE, 0xE0, 0x14, + 0x1C, 0x0A, 0x04, 0x0D, 0x05, 0x1A, 0x0C, 0x09, 0x8A, 0x01, 0x21, 0x1C, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0x3D, 0x1C, 0x14, 0xB2, 0x18, 0x89, 0x4B, 0x0B, + 0x11, 0x14, 0xFF, 0x00, 0x0D, 0x12, 0x01, 0x10, 0xF5, 0xFE, 0xE5, 0x0A, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFB, 0xFF, 0xC0, 0x01, 0x25, 0x01, + 0xC0, 0x00, 0x1D, 0x00, 0x00, 0x17, 0x32, 0x16, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x3F, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x15, 0x17, 0x16, 0x06, 0x07, 0x15, 0xD8, 0x11, 0x17, 0x08, 0xD0, 0x08, 0x17, 0x11, 0x28, 0x34, 0x40, 0x05, 0x10, 0x09, 0x06, + 0xE0, 0x06, 0x09, 0x10, 0x05, 0x40, 0x34, 0x10, 0x17, 0x11, 0x08, 0x08, 0x11, 0x17, 0x75, 0x0C, 0x57, 0x37, 0xB2, 0x07, 0x08, 0x08, 0x07, 0xB2, 0x37, + 0x57, 0x0C, 0x75, 0x00, 0x00, 0x02, 0xFF, 0xF9, 0xFF, 0xB9, 0x02, 0x81, 0x01, 0xC7, 0x00, 0x16, 0x00, 0x20, 0x00, 0x00, 0x05, 0x1E, 0x01, 0x0F, 0x01, + 0x06, 0x27, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x3E, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x0F, 0x01, 0x33, 0x17, 0x21, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x02, 0x7A, 0x05, 0x02, 0x04, 0x14, 0x0A, 0x0C, 0xFD, 0xB3, 0x0C, 0x09, 0x14, 0x0A, 0x0D, 0x87, 0x0C, 0x4D, 0x32, 0x3C, 0x54, 0x29, + 0x21, 0xC0, 0x30, 0xF8, 0xFE, 0x82, 0x14, 0x1C, 0x4F, 0x0A, 0x04, 0x0D, 0x05, 0x1A, 0x0C, 0x0A, 0x01, 0xC6, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0x69, 0x2F, + 0x3D, 0x54, 0x3C, 0x28, 0x42, 0x13, 0x33, 0xC0, 0x1C, 0x14, 0x0A, 0x37, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, + 0xC0, 0x00, 0x1B, 0x00, 0x2B, 0x00, 0x33, 0x00, 0x4F, 0x00, 0x57, 0x00, 0x5F, 0x00, 0x00, 0x37, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x3E, + 0x01, 0x32, 0x16, 0x17, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x0E, 0x01, 0x22, 0x26, 0x27, 0x37, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, + 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x17, 0x2F, 0x01, 0x3F, 0x01, 0x1F, 0x01, 0x07, 0x17, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x2B, + 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x37, 0x16, 0x32, 0x06, 0x32, 0x16, 0x14, 0x06, + 0x22, 0x26, 0x34, 0x26, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x40, 0x07, 0x09, 0x09, 0x07, 0x0E, 0x12, 0x50, 0x60, 0x50, 0x12, 0x0E, 0x07, 0x09, + 0x09, 0x07, 0x0E, 0x12, 0x50, 0x60, 0x50, 0x12, 0x1A, 0x38, 0x28, 0x30, 0x28, 0x38, 0x1C, 0x14, 0x90, 0x14, 0x1C, 0x48, 0x0C, 0x24, 0x24, 0x0C, 0x0C, + 0x24, 0x24, 0x8C, 0x33, 0x45, 0x1C, 0x14, 0x50, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x50, 0x14, 0x1C, 0x45, 0x33, 0x30, 0x70, 0x0F, 0x0E, 0x09, 0x09, 0x0E, + 0x09, 0x57, 0x0E, 0x09, 0x20, 0xE0, 0x09, 0x07, 0x60, 0x07, 0x09, 0x2B, 0x35, 0x35, 0x2B, 0x09, 0x07, 0x60, 0x07, 0x09, 0x2B, 0x35, 0x35, 0x2B, 0x58, + 0x18, 0x28, 0x38, 0x38, 0x28, 0x18, 0x11, 0x17, 0x17, 0x59, 0x24, 0x0C, 0x0C, 0x24, 0x24, 0x0C, 0x0C, 0x95, 0x06, 0x4C, 0x33, 0x0A, 0x14, 0x1C, 0x40, + 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x1C, 0x14, 0x0A, 0x33, 0x4C, 0x06, 0x1F, 0x60, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x85, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x1B, 0x00, 0x2B, 0x00, 0x00, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, + 0x16, 0x14, 0x07, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x32, 0x37, 0x25, 0x16, 0x0F, + 0x01, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x37, 0x36, 0x17, 0x01, 0x15, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x26, 0x37, 0x4F, 0x1C, 0x14, + 0xFE, 0xA0, 0x14, 0x1C, 0x4F, 0x37, 0x11, 0x23, 0x4C, 0x23, 0x01, 0x54, 0x08, 0x09, 0x8D, 0x08, 0x09, 0x51, 0x09, 0x09, 0x1C, 0x08, 0x09, 0x2D, 0x69, + 0x09, 0x08, 0xC0, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x6B, 0x4F, 0x37, 0x2A, 0x14, 0x1C, 0x1C, 0x14, 0x2A, 0x37, 0x4F, 0x10, 0x10, 0x80, 0x08, 0x08, 0x8D, + 0x08, 0x09, 0x52, 0x08, 0x09, 0x1B, 0x09, 0x09, 0x2D, 0x68, 0x08, 0x09, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, + 0x17, 0x00, 0x2B, 0x00, 0x33, 0x00, 0x00, 0x24, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, + 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x27, 0x14, 0x16, 0x17, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x32, 0x37, 0x33, 0x32, 0x17, + 0x06, 0x26, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x01, 0xB4, 0x78, 0x54, 0x54, 0x78, 0x54, 0xD0, 0x0A, 0x26, 0x0A, 0x0C, 0x0A, 0x0A, 0x3C, 0x0A, + 0xF0, 0x28, 0x23, 0xFE, 0xA5, 0x14, 0x1C, 0x4F, 0x37, 0x11, 0x23, 0x4C, 0x23, 0x11, 0x0B, 0x0D, 0x12, 0x2B, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0xE0, 0x54, + 0x78, 0x54, 0x54, 0x78, 0x42, 0x0C, 0x0A, 0x36, 0x0A, 0x0A, 0x4C, 0x0A, 0x10, 0x2C, 0x4C, 0x18, 0x1C, 0x14, 0x2A, 0x37, 0x4F, 0x10, 0x10, 0x02, 0x26, + 0x48, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x82, 0x01, 0xC0, 0x00, 0x3B, 0x00, 0x43, 0x00, 0x4B, 0x00, 0x76, 0x00, + 0x00, 0x25, 0x17, 0x16, 0x07, 0x06, 0x07, 0x06, 0x2F, 0x01, 0x06, 0x07, 0x15, 0x14, 0x07, 0x06, 0x27, 0x26, 0x3D, 0x01, 0x26, 0x27, 0x07, 0x06, 0x27, + 0x26, 0x27, 0x26, 0x3F, 0x01, 0x26, 0x37, 0x27, 0x26, 0x37, 0x36, 0x37, 0x36, 0x1F, 0x01, 0x36, 0x37, 0x35, 0x34, 0x37, 0x36, 0x17, 0x16, 0x1D, 0x01, + 0x16, 0x17, 0x37, 0x36, 0x17, 0x16, 0x17, 0x16, 0x0F, 0x01, 0x16, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x26, 0x22, 0x26, 0x34, 0x36, 0x32, + 0x16, 0x14, 0x13, 0x15, 0x14, 0x17, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x32, 0x37, 0x33, 0x32, 0x16, 0x33, 0x14, + 0x06, 0x15, 0x06, 0x16, 0x1F, 0x01, 0x06, 0x17, 0x07, 0x0E, 0x01, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x3F, 0x01, 0x16, 0x02, 0x62, 0x1A, 0x05, 0x01, + 0x0A, 0x18, 0x04, 0x05, 0x19, 0x11, 0x14, 0x06, 0x21, 0x21, 0x06, 0x14, 0x11, 0x1A, 0x05, 0x04, 0x17, 0x0A, 0x02, 0x06, 0x19, 0x04, 0x04, 0x19, 0x05, + 0x01, 0x0A, 0x17, 0x04, 0x05, 0x1A, 0x11, 0x14, 0x06, 0x21, 0x21, 0x06, 0x14, 0x11, 0x19, 0x05, 0x04, 0x18, 0x0A, 0x01, 0x05, 0x1A, 0x04, 0x8A, 0x28, + 0x1C, 0x1C, 0x28, 0x1C, 0xAB, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x49, 0x02, 0x0C, 0x0F, 0xFE, 0xA0, 0x14, 0x1C, 0x4F, 0x37, 0x11, 0x23, 0x4C, 0x23, 0x11, + 0x02, 0x08, 0x01, 0x03, 0x04, 0x0A, 0x0C, 0x08, 0x01, 0x01, 0x08, 0x0C, 0x0A, 0x04, 0x0C, 0x1C, 0x0C, 0x11, 0x0A, 0x09, 0x08, 0x05, 0x4B, 0x0F, 0x03, + 0x06, 0x20, 0x19, 0x04, 0x02, 0x0F, 0x0E, 0x07, 0x1E, 0x06, 0x01, 0x07, 0x07, 0x01, 0x06, 0x1E, 0x07, 0x0E, 0x0F, 0x02, 0x04, 0x19, 0x20, 0x06, 0x03, + 0x0F, 0x15, 0x15, 0x0F, 0x03, 0x06, 0x20, 0x19, 0x04, 0x02, 0x0F, 0x0E, 0x07, 0x1E, 0x06, 0x01, 0x07, 0x07, 0x01, 0x06, 0x1E, 0x07, 0x0E, 0x0F, 0x02, + 0x04, 0x19, 0x20, 0x06, 0x03, 0x0F, 0x15, 0x30, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x74, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0xFE, 0xD3, 0x0A, 0x05, 0x07, 0x08, + 0x1C, 0x14, 0x2A, 0x37, 0x4F, 0x10, 0x10, 0x01, 0x01, 0x06, 0x02, 0x0D, 0x1A, 0x07, 0x04, 0x04, 0x04, 0x05, 0x07, 0x19, 0x0D, 0x27, 0x1F, 0x0C, 0x05, + 0x04, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x1C, 0x00, 0x24, 0x00, 0x2F, 0x00, 0x00, 0x24, + 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, 0x17, 0x0F, 0x03, 0x06, 0x17, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x32, + 0x37, 0x17, 0x37, 0x17, 0x0F, 0x01, 0x06, 0x26, 0x37, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x27, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x01, 0x15, 0x6A, 0x4B, 0x4B, + 0x6A, 0x4B, 0x26, 0x3B, 0x29, 0x4E, 0x08, 0x01, 0x07, 0x01, 0x04, 0xFE, 0xED, 0x14, 0x1C, 0x4F, 0x37, 0x11, 0x23, 0x4C, 0x23, 0x3E, 0x8A, 0x47, 0x89, + 0x3D, 0x08, 0x0B, 0x01, 0x01, 0x19, 0x07, 0x07, 0x2A, 0x48, 0x05, 0x25, 0x07, 0x14, 0x07, 0xC0, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x6B, 0x2E, 0x4D, 0x08, + 0x0B, 0x3D, 0x0A, 0x0B, 0x1C, 0x14, 0x2A, 0x37, 0x4F, 0x10, 0x10, 0x91, 0x89, 0x47, 0x8A, 0x07, 0x01, 0x0B, 0x08, 0xE1, 0x07, 0x14, 0x07, 0x2A, 0x48, + 0x04, 0x26, 0x07, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x07, 0x00, 0x1B, 0x00, 0x23, 0x00, 0x37, 0x00, + 0x00, 0x36, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, + 0x01, 0x16, 0x32, 0x37, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x34, 0x36, 0x3D, 0x01, 0x34, + 0x27, 0x36, 0x3B, 0x01, 0x16, 0x32, 0x37, 0xEE, 0x5C, 0x42, 0x42, 0x5C, 0x42, 0x23, 0x30, 0x43, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x43, 0x30, 0x09, + 0x21, 0x46, 0x21, 0x01, 0x04, 0x50, 0x38, 0x38, 0x50, 0x38, 0x30, 0x2E, 0x42, 0x1C, 0x14, 0xB1, 0x01, 0x28, 0x1B, 0x1D, 0x04, 0x17, 0x2A, 0x17, 0xC0, + 0x42, 0x5C, 0x42, 0x42, 0x5C, 0x62, 0x43, 0x30, 0x1D, 0x14, 0x1C, 0x1C, 0x14, 0x1D, 0x30, 0x43, 0x10, 0x10, 0x20, 0x38, 0x50, 0x38, 0x38, 0x50, 0x58, + 0x42, 0x2E, 0x14, 0x1C, 0x01, 0x04, 0x01, 0x27, 0x39, 0x2B, 0x0F, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, + 0xC3, 0x00, 0x10, 0x00, 0x39, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x37, 0x17, 0x03, + 0x26, 0x34, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x27, 0x15, 0x16, 0x15, 0x14, + 0x07, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x26, 0x35, 0x34, 0x37, 0x35, 0x01, 0x3F, 0x36, 0x4B, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, + 0x4B, 0x36, 0x5F, 0xD2, 0x0E, 0x0E, 0xBE, 0x14, 0x14, 0xBE, 0x0E, 0x0E, 0x60, 0x0E, 0x4B, 0x6A, 0x4B, 0x0E, 0x42, 0x0C, 0x0B, 0x0F, 0x02, 0x05, 0x04, + 0x2A, 0x04, 0x05, 0x02, 0x0F, 0x0B, 0x0C, 0x7F, 0x02, 0x4D, 0x36, 0x0A, 0x14, 0x1C, 0x1C, 0x14, 0x0A, 0x36, 0x4D, 0x02, 0x5F, 0x01, 0x50, 0x03, 0x1A, + 0x03, 0x2E, 0x04, 0x04, 0x2E, 0x04, 0x19, 0x03, 0x17, 0x1C, 0x1D, 0x35, 0x4B, 0x4B, 0x35, 0x1D, 0x1C, 0x10, 0x35, 0x07, 0x0D, 0x0C, 0x08, 0x3E, 0x05, + 0x09, 0x09, 0x05, 0x3E, 0x08, 0x0C, 0x0D, 0x07, 0x3B, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x1C, 0x00, 0x34, + 0x00, 0x3C, 0x00, 0x44, 0x00, 0x00, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x15, 0x14, 0x17, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x16, 0x33, 0x32, 0x37, 0x33, 0x30, 0x17, 0x06, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, + 0x01, 0x15, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x20, 0x09, 0xFE, 0xE7, 0x14, 0x1C, 0x4F, 0x37, 0x11, 0x23, 0x26, 0x26, 0x23, 0x11, 0x0E, 0x08, 0x01, 0x20, + 0x0D, 0x13, 0x13, 0x0D, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x2F, 0x42, 0x2F, 0x5D, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x40, 0x13, 0x1A, 0x13, 0xC0, 0x4B, + 0x6A, 0x4B, 0x4B, 0x6A, 0x8B, 0xA0, 0x11, 0x0F, 0x1C, 0x14, 0x2A, 0x37, 0x4F, 0x10, 0x10, 0x02, 0x0E, 0x10, 0x13, 0x0D, 0xA0, 0x0D, 0x13, 0x13, 0x0D, + 0xA0, 0x0D, 0x13, 0x50, 0x21, 0x2F, 0x2F, 0x21, 0x50, 0x90, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x7D, 0x50, 0x0D, 0x13, 0x13, 0x0D, 0x50, 0x00, 0x03, 0x00, + 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x2B, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x32, 0x37, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x9B, 0x6A, 0x4B, 0x4B, 0x6A, + 0x4B, 0x26, 0x37, 0x4F, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x4F, 0x37, 0x11, 0x23, 0x4C, 0x23, 0xF0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x30, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x6B, 0x4F, 0x37, 0x2A, 0x14, 0x1C, 0x1C, 0x14, 0x2A, 0x37, 0x4F, 0x10, 0x10, 0x00, 0x03, 0x00, 0x00, + 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x10, 0x00, 0x23, 0x00, 0x2B, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x37, 0x17, 0x27, 0x34, 0x37, 0x26, 0x35, 0x32, 0x17, 0x3E, 0x01, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x06, + 0x37, 0x22, 0x06, 0x15, 0x33, 0x34, 0x26, 0x23, 0x01, 0x45, 0x34, 0x47, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x47, 0x34, 0x65, 0xC0, 0x2B, 0x2B, 0x31, + 0x1D, 0x0F, 0x3E, 0x25, 0x35, 0x4B, 0x4B, 0x35, 0x2C, 0x43, 0x0C, 0x1C, 0x67, 0x0D, 0x13, 0xA0, 0x13, 0x0D, 0x9F, 0x05, 0x4C, 0x34, 0x2A, 0x14, 0x1C, + 0x1C, 0x14, 0x2A, 0x34, 0x4C, 0x05, 0x66, 0xC7, 0x33, 0x1D, 0x1D, 0x33, 0x28, 0x21, 0x27, 0x4B, 0x6A, 0x4B, 0x35, 0x29, 0x1E, 0x60, 0x13, 0x0D, 0x0D, + 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xBD, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x36, 0x00, 0x00, 0x25, 0x16, + 0x15, 0x14, 0x0E, 0x02, 0x07, 0x06, 0x27, 0x2E, 0x01, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x17, 0x07, 0x3E, 0x01, 0x37, 0x27, 0x26, 0x22, 0x26, 0x34, 0x36, + 0x32, 0x16, 0x14, 0x07, 0x14, 0x16, 0x17, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x32, 0x37, 0x33, 0x32, 0x16, 0x33, + 0x30, 0x06, 0x02, 0x6E, 0x12, 0x1A, 0x2B, 0x2B, 0x15, 0x0B, 0x0B, 0x35, 0x50, 0x12, 0x73, 0x0B, 0x0B, 0x0B, 0x21, 0x3B, 0x04, 0x60, 0xDB, 0x6A, 0x4B, + 0x4B, 0x6A, 0x4B, 0x20, 0x37, 0x2C, 0x09, 0x0A, 0xFE, 0xA0, 0x14, 0x1C, 0x4F, 0x37, 0x11, 0x23, 0x4C, 0x23, 0x11, 0x01, 0x05, 0x01, 0x01, 0xB1, 0x07, + 0x12, 0x2C, 0x4D, 0x33, 0x22, 0x08, 0x04, 0x04, 0x15, 0x73, 0x4E, 0x12, 0x07, 0x2D, 0x04, 0x04, 0xEC, 0x0F, 0x4E, 0x3A, 0x26, 0x11, 0x4B, 0x6A, 0x4B, + 0x4B, 0x6A, 0x73, 0x44, 0x6D, 0x23, 0x04, 0x1C, 0x14, 0x2A, 0x37, 0x4F, 0x10, 0x10, 0x01, 0x06, 0x00, 0x00, 0x02, 0xFF, 0xF9, 0xFF, 0xB9, 0x02, 0x81, + 0x01, 0xC7, 0x00, 0x16, 0x00, 0x1F, 0x00, 0x00, 0x05, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x27, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x3E, 0x01, 0x33, + 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x05, 0x34, 0x36, 0x37, 0x05, 0x21, 0x22, 0x26, 0x35, 0x02, 0x7A, 0x05, 0x02, 0x04, 0x14, 0x0A, 0x0C, 0xFD, 0xB3, + 0x0C, 0x09, 0x14, 0x0A, 0x0D, 0x93, 0x04, 0x49, 0x32, 0x35, 0x4B, 0x30, 0x26, 0xFE, 0xF6, 0x40, 0x2F, 0x01, 0x1F, 0xFE, 0xA2, 0x14, 0x1C, 0x0A, 0x04, + 0x0D, 0x05, 0x1A, 0x0C, 0x0A, 0x01, 0xC6, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0x72, 0x31, 0x44, 0x4B, 0x35, 0x29, 0x42, 0x0D, 0xAE, 0x31, 0x4A, 0x09, 0xDE, + 0x1C, 0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x19, 0x00, 0x21, 0x00, 0x36, 0x00, 0x00, 0x25, + 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, + 0x26, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x15, 0x14, 0x1F, 0x01, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x32, + 0x37, 0x33, 0x32, 0x17, 0x02, 0x77, 0x09, 0x0A, 0x5C, 0x09, 0x1B, 0x09, 0x5B, 0x12, 0x12, 0x0E, 0x4F, 0x1B, 0x12, 0x66, 0x14, 0x0E, 0x0E, 0x14, 0x0E, + 0x93, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x1C, 0x3A, 0x0F, 0x17, 0xFE, 0xA0, 0x14, 0x1C, 0x4F, 0x37, 0x11, 0x23, 0x4C, 0x23, 0x11, 0x11, 0x15, 0x53, 0x09, + 0x1B, 0x09, 0x5D, 0x09, 0x09, 0x5B, 0x12, 0x1B, 0x4F, 0x0D, 0x13, 0x13, 0x45, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x4A, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0xBA, + 0x28, 0x1C, 0x3A, 0x13, 0x1C, 0x14, 0x2A, 0x37, 0x4F, 0x10, 0x10, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, + 0x07, 0x00, 0x1D, 0x00, 0x00, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x37, 0x17, 0x37, 0x27, 0x33, 0x07, 0x17, 0x01, 0x15, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x20, 0x35, 0x4B, 0x1C, 0x14, 0xFE, 0xA0, 0x14, + 0x1C, 0x4B, 0x35, 0x30, 0x20, 0x20, 0x60, 0x20, 0x20, 0xC0, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x6C, 0x02, 0x4E, 0x35, 0x2A, 0x14, 0x1C, 0x1C, 0x14, 0x2A, + 0x35, 0x4E, 0x02, 0xBF, 0x88, 0x38, 0x38, 0x88, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x82, 0x01, 0xA0, 0x00, 0x3B, 0x00, 0x43, 0x00, + 0x4B, 0x00, 0x62, 0x00, 0x85, 0x00, 0x93, 0x00, 0x00, 0x25, 0x17, 0x16, 0x07, 0x06, 0x07, 0x06, 0x2F, 0x01, 0x06, 0x07, 0x15, 0x14, 0x07, 0x06, 0x27, + 0x26, 0x3D, 0x01, 0x26, 0x27, 0x07, 0x06, 0x27, 0x26, 0x27, 0x26, 0x3F, 0x01, 0x26, 0x37, 0x27, 0x26, 0x37, 0x36, 0x37, 0x36, 0x1F, 0x01, 0x36, 0x37, + 0x35, 0x34, 0x37, 0x36, 0x17, 0x16, 0x1D, 0x01, 0x16, 0x17, 0x37, 0x36, 0x17, 0x16, 0x17, 0x16, 0x0F, 0x01, 0x16, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x17, 0x22, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x22, 0x06, 0x07, 0x27, + 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x22, 0x06, 0x17, 0x15, 0x14, 0x17, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x16, 0x33, 0x3A, 0x01, + 0x36, 0x33, 0x16, 0x1F, 0x01, 0x06, 0x17, 0x30, 0x23, 0x06, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x16, 0x27, 0x0E, 0x01, 0x07, 0x23, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x02, 0x62, 0x1A, 0x05, 0x01, 0x0A, 0x18, 0x04, 0x05, 0x19, 0x11, 0x14, 0x06, 0x21, 0x21, 0x06, 0x14, 0x11, + 0x1A, 0x05, 0x04, 0x17, 0x0A, 0x02, 0x06, 0x19, 0x04, 0x04, 0x19, 0x05, 0x01, 0x0A, 0x17, 0x04, 0x05, 0x1A, 0x11, 0x14, 0x06, 0x21, 0x21, 0x06, 0x14, + 0x11, 0x19, 0x05, 0x04, 0x18, 0x0A, 0x01, 0x05, 0x1A, 0x04, 0x8A, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xFE, 0xBA, 0x34, 0x26, 0x26, 0x34, 0x26, 0xA0, 0x2E, + 0x42, 0x41, 0x5D, 0x42, 0x0B, 0x01, 0x01, 0x01, 0x08, 0x09, 0x0A, 0x11, 0x0C, 0x17, 0x0D, 0x01, 0x04, 0x68, 0x06, 0xFF, 0x14, 0x1C, 0x44, 0x2F, 0x09, + 0x21, 0x23, 0x02, 0x03, 0x04, 0x01, 0x04, 0x06, 0x08, 0x01, 0x01, 0x01, 0x23, 0x0A, 0x0C, 0x1C, 0x0C, 0x11, 0x0B, 0x10, 0x05, 0xFA, 0x1E, 0x28, 0x05, + 0x42, 0x0D, 0x13, 0x26, 0x1A, 0x40, 0x1A, 0x6B, 0x0F, 0x03, 0x06, 0x20, 0x19, 0x04, 0x02, 0x0F, 0x0E, 0x07, 0x1E, 0x06, 0x01, 0x07, 0x07, 0x01, 0x06, + 0x1E, 0x07, 0x0E, 0x0F, 0x02, 0x04, 0x19, 0x20, 0x06, 0x03, 0x0F, 0x15, 0x15, 0x0F, 0x03, 0x06, 0x20, 0x19, 0x04, 0x02, 0x0F, 0x0E, 0x07, 0x1E, 0x06, + 0x01, 0x07, 0x07, 0x01, 0x06, 0x1E, 0x07, 0x0E, 0x0F, 0x02, 0x04, 0x19, 0x20, 0x06, 0x03, 0x0F, 0x15, 0x30, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x74, 0x26, + 0x34, 0x26, 0x26, 0x34, 0x46, 0x42, 0x2E, 0x2E, 0x42, 0x42, 0x2E, 0x19, 0x17, 0x01, 0x01, 0x05, 0x05, 0x0C, 0x19, 0x22, 0x01, 0xC2, 0x0A, 0x0A, 0x0A, + 0x1C, 0x14, 0x1D, 0x30, 0x43, 0x10, 0x01, 0x05, 0x04, 0x04, 0x04, 0x04, 0x12, 0x20, 0x27, 0x1F, 0x0C, 0x09, 0x03, 0xAF, 0x10, 0x3A, 0x23, 0x13, 0x0D, + 0x20, 0x1A, 0x26, 0x00, 0x00, 0x00, 0x05, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC2, 0x00, 0x2A, 0x00, 0x40, 0x00, 0x43, 0x00, 0x59, 0x00, 0x5C, + 0x00, 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x26, 0x27, 0x07, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x36, 0x3F, + 0x01, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x07, 0x11, 0x25, 0x14, 0x06, 0x22, 0x26, + 0x35, 0x30, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x1E, 0x01, 0x15, 0x14, 0x27, 0x33, 0x27, 0x05, 0x16, 0x17, 0x1E, 0x01, + 0x15, 0x14, 0x31, 0x14, 0x06, 0x22, 0x26, 0x35, 0x30, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x07, 0x33, 0x27, 0x02, 0x10, 0x07, 0x09, 0x09, + 0x07, 0xE0, 0x07, 0x09, 0x07, 0x06, 0x8E, 0x06, 0x0C, 0x02, 0x0A, 0x03, 0x06, 0x07, 0x80, 0x01, 0x2F, 0x21, 0x2E, 0x17, 0x76, 0x06, 0x0C, 0x02, 0x0A, + 0x03, 0x06, 0x07, 0x84, 0x0B, 0x20, 0x01, 0x20, 0x4B, 0x6A, 0x4B, 0x0A, 0x1E, 0x1A, 0x13, 0x0D, 0x3C, 0x0D, 0x14, 0x1A, 0x1D, 0x0A, 0xC8, 0x90, 0x48, + 0xFE, 0xAB, 0x14, 0x1A, 0x1D, 0x0A, 0x4B, 0x6A, 0x4B, 0x0A, 0x1E, 0x1A, 0x13, 0x0D, 0x3C, 0x66, 0x90, 0x48, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, + 0x01, 0x57, 0x03, 0x04, 0x30, 0x02, 0x06, 0x06, 0x1F, 0x06, 0x0C, 0x02, 0x2B, 0x08, 0x02, 0x21, 0x2F, 0x28, 0x27, 0x02, 0x06, 0x06, 0x1E, 0x07, 0x0B, + 0x03, 0x2C, 0x21, 0x0E, 0xFE, 0xD9, 0x90, 0x21, 0x2F, 0x2F, 0x21, 0x01, 0x08, 0x17, 0x3C, 0x34, 0x26, 0x1A, 0x1A, 0x28, 0x35, 0x39, 0x16, 0x09, 0x01, + 0x10, 0x90, 0x6A, 0x28, 0x35, 0x39, 0x16, 0x09, 0x01, 0x21, 0x2F, 0x2F, 0x21, 0x01, 0x08, 0x17, 0x3C, 0x34, 0x26, 0x1A, 0xC0, 0x90, 0x00, 0x00, 0x05, + 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x81, 0x01, 0xC2, 0x00, 0x2A, 0x00, 0x40, 0x00, 0x43, 0x00, 0x59, 0x00, 0x5C, 0x00, 0x00, 0x17, 0x34, 0x36, 0x3B, 0x01, + 0x11, 0x26, 0x2F, 0x01, 0x2E, 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x0E, + 0x01, 0x2F, 0x01, 0x06, 0x07, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x27, 0x30, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, + 0x17, 0x1E, 0x01, 0x15, 0x14, 0x31, 0x14, 0x06, 0x22, 0x26, 0x37, 0x33, 0x27, 0x01, 0x30, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, + 0x17, 0x1E, 0x01, 0x15, 0x14, 0x31, 0x14, 0x06, 0x22, 0x26, 0x37, 0x33, 0x27, 0x60, 0x09, 0x07, 0xB0, 0x20, 0x0B, 0x84, 0x07, 0x06, 0x03, 0x0A, 0x02, + 0x0C, 0x06, 0x76, 0x17, 0x2E, 0x21, 0x2F, 0x01, 0x80, 0x07, 0x06, 0x03, 0x0A, 0x02, 0x0C, 0x06, 0x8E, 0x06, 0x07, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x60, + 0x0A, 0x1C, 0x1B, 0x14, 0x0D, 0x3C, 0x0D, 0x13, 0x1A, 0x1E, 0x0A, 0x4B, 0x6A, 0x4B, 0x38, 0x90, 0x48, 0x01, 0x00, 0x0A, 0x1D, 0x1A, 0x14, 0x0D, 0x3C, + 0x0D, 0x13, 0x1A, 0x1E, 0x0A, 0x4B, 0x6A, 0x4B, 0x38, 0x90, 0x48, 0x10, 0x07, 0x09, 0x01, 0x27, 0x0E, 0x21, 0x2C, 0x03, 0x0B, 0x07, 0x1E, 0x06, 0x06, + 0x02, 0x27, 0x28, 0x2F, 0x21, 0x02, 0x08, 0x2B, 0x02, 0x0C, 0x06, 0x1F, 0x06, 0x06, 0x02, 0x30, 0x04, 0x03, 0xFE, 0xA9, 0x07, 0x09, 0x09, 0x07, 0xC0, + 0x01, 0x09, 0x15, 0x39, 0x36, 0x28, 0x1A, 0x1A, 0x26, 0x34, 0x3C, 0x17, 0x08, 0x01, 0x21, 0x2F, 0x2F, 0x31, 0x90, 0xFE, 0xE0, 0x01, 0x09, 0x16, 0x39, + 0x35, 0x28, 0x1A, 0x1A, 0x26, 0x34, 0x3C, 0x17, 0x08, 0x01, 0x21, 0x2F, 0x2F, 0x31, 0x90, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, + 0xC0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x3B, 0x00, 0x3F, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x33, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x13, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x07, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, + 0x07, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x07, 0x21, 0x27, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x07, 0x05, 0x33, 0x27, 0x23, + 0x01, 0xA0, 0x1B, 0x25, 0x13, 0x0D, 0xFE, 0xC0, 0x0D, 0x13, 0x25, 0x1B, 0x73, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x48, 0x08, 0x08, 0x9E, 0x12, 0x8C, 0x08, + 0x08, 0x84, 0x12, 0x72, 0x08, 0x08, 0x69, 0x11, 0xFF, 0x00, 0x09, 0x67, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0xD0, 0x11, 0xFE, 0x51, 0x51, 0x0B, 0x46, 0x40, + 0x25, 0x1B, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x1B, 0x25, 0x60, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x01, 0x8D, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, + 0x40, 0x08, 0x10, 0x08, 0x40, 0x60, 0x1C, 0x14, 0xA0, 0x14, 0x1C, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xDD, 0x02, 0x40, + 0x01, 0xA1, 0x00, 0x10, 0x00, 0x21, 0x00, 0x00, 0x01, 0x36, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x06, 0x07, 0x06, 0x26, 0x35, 0x11, 0x34, 0x37, 0x36, + 0x07, 0x16, 0x15, 0x11, 0x14, 0x06, 0x27, 0x26, 0x27, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x17, 0x16, 0x02, 0x1E, 0x0E, 0x14, 0x11, 0x0D, 0x8C, 0x4F, + 0x08, 0x0F, 0x07, 0x4D, 0x7B, 0x07, 0x0F, 0x08, 0x4F, 0x8C, 0x0D, 0x11, 0x14, 0x0E, 0x9A, 0x01, 0xA0, 0x01, 0x12, 0x0E, 0xFE, 0xAE, 0x0C, 0x12, 0x08, + 0x27, 0x04, 0x09, 0x08, 0x01, 0x6C, 0x09, 0x04, 0x2F, 0x2F, 0x04, 0x09, 0xFE, 0x94, 0x08, 0x09, 0x04, 0x27, 0x08, 0x12, 0x0C, 0x01, 0x52, 0x0E, 0x12, + 0x01, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xBE, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x24, 0x00, 0x37, 0x00, 0x49, 0x00, 0x65, 0x00, + 0x68, 0x00, 0x00, 0x13, 0x22, 0x27, 0x26, 0x34, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x07, 0x06, 0x14, 0x17, 0x16, 0x06, 0x23, 0x27, 0x0E, 0x01, 0x16, + 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x26, 0x34, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x25, 0x16, 0x14, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x37, + 0x3E, 0x01, 0x26, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x07, 0x32, 0x17, 0x16, 0x14, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x37, 0x36, 0x34, 0x27, 0x26, + 0x36, 0x33, 0x07, 0x13, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x01, 0x23, 0x07, 0x0E, 0x01, 0x2F, 0x01, 0x2E, 0x01, 0x37, 0x13, 0x26, 0x35, 0x34, + 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x27, 0x97, 0x0C, 0x03, 0x08, 0x08, 0x03, 0x0C, 0x22, 0x08, 0x09, 0x02, 0x08, 0x08, 0x02, 0x09, 0x08, 0x5F, + 0x0C, 0x0F, 0x04, 0x17, 0x04, 0x09, 0x09, 0x23, 0x0A, 0x04, 0x1B, 0x1A, 0x04, 0x0B, 0x23, 0x09, 0x09, 0x02, 0x08, 0x1A, 0x1A, 0x04, 0x0B, 0x23, 0x09, + 0x09, 0x04, 0x16, 0x05, 0x0F, 0x0C, 0x04, 0x09, 0x09, 0x23, 0x0B, 0x79, 0x0C, 0x03, 0x08, 0x08, 0x03, 0x0C, 0x22, 0x08, 0x09, 0x02, 0x08, 0x08, 0x02, + 0x09, 0x08, 0x52, 0x82, 0x03, 0x05, 0x06, 0x1E, 0x06, 0x0C, 0x03, 0x31, 0x96, 0x31, 0x03, 0x0C, 0x06, 0x1E, 0x06, 0x05, 0x03, 0x82, 0x0B, 0x26, 0x34, + 0x26, 0x70, 0x60, 0x30, 0x01, 0x00, 0x0B, 0x1A, 0x36, 0x1A, 0x0B, 0x0D, 0x08, 0x15, 0x2C, 0x15, 0x08, 0x0D, 0xA9, 0x16, 0x34, 0x5D, 0x2B, 0x08, 0x0F, + 0x09, 0x39, 0x7C, 0x39, 0x09, 0x0F, 0x06, 0x39, 0x7C, 0x39, 0x09, 0x0F, 0x09, 0x29, 0x5B, 0x36, 0x17, 0x08, 0x0F, 0x40, 0x0B, 0x1A, 0x36, 0x1A, 0x0B, + 0x0D, 0x08, 0x15, 0x2C, 0x15, 0x08, 0x0D, 0x64, 0xFE, 0xC6, 0x06, 0x0C, 0x02, 0x0D, 0x02, 0x05, 0x06, 0x76, 0x76, 0x06, 0x05, 0x02, 0x0D, 0x02, 0x0C, + 0x06, 0x01, 0x3A, 0x10, 0x14, 0x1B, 0x25, 0x25, 0x1B, 0x14, 0xAC, 0x74, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xBD, 0x02, 0x87, 0x01, 0xC7, 0x00, 0x17, 0x00, + 0x29, 0x00, 0x00, 0x25, 0x17, 0x14, 0x0E, 0x03, 0x07, 0x0E, 0x01, 0x2F, 0x01, 0x36, 0x3F, 0x01, 0x36, 0x26, 0x0F, 0x01, 0x36, 0x37, 0x3E, 0x01, 0x33, + 0x25, 0x16, 0x0F, 0x01, 0x17, 0x16, 0x06, 0x0F, 0x01, 0x27, 0x37, 0x3E, 0x01, 0x1F, 0x01, 0x37, 0x36, 0x17, 0x01, 0x00, 0x57, 0x03, 0x0D, 0x0F, 0x1D, + 0x10, 0x1B, 0x85, 0x36, 0x35, 0x04, 0x07, 0x5F, 0x03, 0x06, 0x04, 0x3C, 0x19, 0x1D, 0x1B, 0x51, 0x1C, 0x01, 0x98, 0x09, 0x0C, 0xE8, 0x22, 0x03, 0x04, + 0x06, 0x3B, 0x56, 0x19, 0x03, 0x0C, 0x04, 0x22, 0xE8, 0x0D, 0x0A, 0xE7, 0x6D, 0x04, 0x0E, 0x29, 0x24, 0x2A, 0x0D, 0x15, 0x11, 0x02, 0x02, 0x17, 0x20, + 0x70, 0x04, 0x08, 0x02, 0x16, 0x4A, 0x17, 0x16, 0x14, 0xB9, 0x0D, 0x09, 0xB2, 0x2B, 0x05, 0x0C, 0x01, 0x0C, 0x6D, 0x36, 0x06, 0x02, 0x05, 0x2B, 0xB2, + 0x09, 0x0C, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x0D, 0x00, 0x21, 0x00, 0x00, 0x13, 0x11, 0x23, 0x11, 0x34, 0x36, 0x33, + 0x21, 0x32, 0x16, 0x15, 0x11, 0x23, 0x11, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x35, + 0x33, 0x15, 0x60, 0x40, 0x17, 0x11, 0x01, 0xF0, 0x11, 0x17, 0x40, 0x50, 0x07, 0x09, 0x09, 0x07, 0xFD, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x10, 0xC0, + 0x01, 0x80, 0xFE, 0xA0, 0x01, 0x78, 0x11, 0x17, 0x17, 0x11, 0xFE, 0x88, 0x01, 0x60, 0xFE, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x13, 0x00, 0x1B, 0x00, 0x34, 0x00, 0x00, 0x37, + 0x32, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x16, 0x32, 0x37, 0x36, 0x26, 0x22, 0x26, 0x34, 0x36, 0x32, + 0x16, 0x14, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x26, 0x27, 0x33, 0x35, 0x33, 0x15, 0x33, 0x11, 0x21, 0x15, 0x26, 0x23, 0x35, 0x34, + 0x36, 0x33, 0xD0, 0x2F, 0x41, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x41, 0x2F, 0x04, 0x03, 0x15, 0x28, 0x15, 0x03, 0x04, 0x50, 0x38, 0x38, 0x50, 0x38, 0x01, + 0x50, 0x14, 0x1C, 0x1C, 0x14, 0xF5, 0x09, 0x1E, 0x4C, 0x80, 0x40, 0xFE, 0xA0, 0x1F, 0x21, 0x1C, 0x14, 0x60, 0x42, 0x2F, 0x13, 0x1C, 0x1C, 0x13, 0x2F, + 0x42, 0x01, 0x07, 0x07, 0x01, 0x20, 0x38, 0x50, 0x38, 0x38, 0x50, 0x01, 0x08, 0x1D, 0x15, 0xFE, 0xC4, 0x15, 0x1D, 0x26, 0x1A, 0x40, 0x40, 0x01, 0x20, + 0x32, 0x12, 0x2E, 0x15, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x2D, 0x00, 0x36, 0x00, 0x3F, 0x00, + 0x00, 0x25, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x3F, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x05, 0x34, 0x3F, + 0x01, 0x15, 0x23, 0x22, 0x26, 0x35, 0x25, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x01, 0xD0, 0x10, 0x60, 0x25, 0x36, 0x25, 0x60, 0x10, 0x70, + 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0xFE, 0xA0, 0x13, 0x6D, 0x70, 0x07, 0x09, 0x02, + 0x6D, 0x13, 0x09, 0x07, 0x70, 0xC9, 0x09, 0x12, 0xEE, 0x60, 0x1B, 0x25, 0x25, 0x1B, 0x60, 0xEE, 0x12, 0x09, 0x44, 0x33, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x33, 0xD9, 0x15, 0x08, 0x2F, 0xC0, 0x09, 0x07, 0x81, 0x08, 0x15, 0x64, 0x07, 0x09, + 0xC0, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x11, 0x00, 0x1D, 0x00, 0x24, 0x00, 0x2C, 0x00, 0x34, 0x00, 0x00, + 0x35, 0x16, 0x20, 0x37, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x00, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x05, 0x1E, 0x01, 0x32, 0x36, 0x37, 0x15, + 0x14, 0x06, 0x22, 0x26, 0x35, 0x25, 0x35, 0x36, 0x37, 0x15, 0x14, 0x06, 0x24, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x26, 0x27, 0x36, 0x37, + 0x15, 0x14, 0x06, 0x3D, 0x01, 0x06, 0x3D, 0x71, 0x9E, 0x71, 0x01, 0x8F, 0x9E, 0x71, 0x71, 0x9E, 0x71, 0xFE, 0x00, 0x1E, 0x68, 0x74, 0x68, 0x1E, 0x71, + 0x9E, 0x71, 0x01, 0xA0, 0x3F, 0x21, 0x34, 0xFE, 0xA4, 0xA0, 0x70, 0x70, 0xA0, 0x70, 0x01, 0x9B, 0x0C, 0x30, 0x6E, 0x33, 0x37, 0x2B, 0x2B, 0x2B, 0x2B, + 0x1A, 0x26, 0x26, 0x1A, 0x01, 0x40, 0x26, 0x34, 0x26, 0x26, 0x34, 0xD2, 0x19, 0x1B, 0x1B, 0x19, 0x34, 0x1A, 0x26, 0x26, 0x1A, 0x29, 0x3F, 0x0B, 0x18, + 0x2B, 0x11, 0x1E, 0x8F, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x09, 0x22, 0x17, 0x05, 0x25, 0x2B, 0x12, 0x1E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, + 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x34, 0x36, + 0x33, 0x35, 0x22, 0x06, 0x15, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x91, 0xCE, 0x91, 0x91, + 0xCE, 0x91, 0x58, 0x5E, 0x42, 0x4F, 0x71, 0x98, 0x50, 0x38, 0x38, 0x50, 0x38, 0x53, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, + 0xCE, 0x67, 0x42, 0x5E, 0x20, 0x71, 0x4F, 0x60, 0x38, 0x50, 0x38, 0x38, 0x50, 0x48, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xBC, + 0x02, 0x80, 0x01, 0xC0, 0x00, 0x28, 0x00, 0x30, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x07, 0x15, 0x14, 0x06, 0x07, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x2F, + 0x01, 0x2A, 0x01, 0x2B, 0x01, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x23, 0x07, 0x06, 0x26, 0x35, 0x34, 0x37, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, + 0x17, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x20, 0x28, 0x38, 0x60, 0x4D, 0x3D, 0x29, 0x04, 0x0B, 0x16, 0x0C, 0x04, 0x2C, 0x01, 0x04, + 0x01, 0x27, 0x26, 0x04, 0x0B, 0x16, 0x0C, 0x04, 0x2C, 0x61, 0x79, 0x0F, 0x1D, 0x0C, 0x01, 0x74, 0x2F, 0x21, 0x27, 0x19, 0x4A, 0x14, 0x0E, 0x0E, 0x14, + 0x0E, 0x01, 0xA0, 0x25, 0x1B, 0x10, 0x50, 0x41, 0x65, 0x12, 0x70, 0x0B, 0x04, 0x08, 0x04, 0x0B, 0x78, 0x68, 0x0B, 0x04, 0x08, 0x04, 0x0B, 0x78, 0x3D, + 0x07, 0x11, 0x11, 0x0F, 0x09, 0x01, 0x25, 0x15, 0x21, 0x2F, 0x20, 0x48, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, + 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x3B, 0x00, 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x00, + 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x27, 0x07, 0x21, 0x27, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x17, 0x16, 0x36, 0x3F, + 0x01, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x17, 0x1E, 0x01, 0x3F, 0x01, 0x26, 0x35, 0x34, 0x02, 0x10, 0x07, 0x09, 0x09, 0x07, 0xFE, + 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0xCC, 0x28, 0x1C, 0x1C, 0x14, 0x03, 0x05, 0x48, 0xFE, 0x80, 0x48, 0x05, 0x03, 0x14, 0x1C, 0x1C, 0x28, 0x1C, 0x04, + 0x48, 0x0B, 0x1B, 0x06, 0x52, 0x12, 0x1C, 0x28, 0x1C, 0x12, 0x52, 0x06, 0x1A, 0x0C, 0x48, 0x04, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x01, 0x40, 0x1C, 0x28, 0x1C, 0x01, 0xC1, 0xC1, 0x01, 0x1C, 0x28, 0x1C, 0x1C, 0x14, 0x0A, 0x0A, 0x2B, 0x07, 0x07, 0x0B, 0x8F, 0x0F, 0x16, 0x14, + 0x1C, 0x1C, 0x14, 0x16, 0x0F, 0x8F, 0x0B, 0x07, 0x07, 0x2B, 0x0A, 0x0A, 0x14, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, + 0x10, 0x00, 0x18, 0x00, 0x28, 0x00, 0x30, 0x00, 0x38, 0x00, 0x40, 0x00, 0x48, 0x00, 0x50, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x3D, 0x01, 0x37, 0x3E, 0x01, 0x27, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x27, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, + 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x50, + 0x14, 0x1C, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x88, 0x12, 0x09, 0x0A, 0x03, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x16, 0x0E, 0x0E, 0xAF, 0x0F, 0x28, 0x0F, 0xAF, + 0x0E, 0x0E, 0xAF, 0x0F, 0x28, 0x0F, 0xAD, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x8E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, + 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x8E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x01, 0x00, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x2E, 0x89, 0x12, 0x31, 0x16, + 0xB8, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0xAD, 0x0F, 0x28, 0x0F, 0xAF, 0x0E, 0x0E, 0xAF, 0x0F, 0x28, 0x0F, 0xAF, 0x0E, 0x0E, 0xEA, 0x0E, 0x14, 0x0E, 0x0E, + 0x14, 0x8E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x72, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x72, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x8E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, + 0x00, 0x06, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x00, 0x01, + 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, + 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x80, 0x1B, 0x25, 0x25, 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x33, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, + 0x13, 0x13, 0x1A, 0x13, 0x73, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x73, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xA0, 0x25, + 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x01, 0x40, 0x1B, 0x25, 0xFE, 0xA0, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xAD, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x73, + 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x73, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xAD, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x01, + 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x80, 0x1B, 0x25, 0x25, 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, + 0x33, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xD3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, + 0xA0, 0x25, 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x01, 0x40, 0x1B, 0x25, 0xFE, 0xA0, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xAD, 0x13, 0x1A, 0x13, 0x13, + 0x1A, 0xD3, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xAD, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, + 0xA0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x12, 0x32, + 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x80, 0x1B, 0x25, 0x25, 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x93, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, + 0xA0, 0x25, 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x01, 0x40, 0x1B, 0x25, 0xFF, 0x00, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x07, 0x00, 0x00, + 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x3F, 0x00, 0x00, 0x01, 0x32, 0x16, + 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x80, 0x1B, 0x25, 0x25, 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x33, 0x1A, + 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xD3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, + 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xA0, 0x25, 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x01, 0x40, 0x1B, 0x25, 0xFE, 0xA0, + 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x4D, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x4D, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xD3, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x4D, 0x13, + 0x1A, 0x13, 0x13, 0x1A, 0x4D, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, + 0x00, 0x17, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x16, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x80, + 0x1B, 0x25, 0x25, 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x33, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x73, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x73, 0x1A, 0x13, + 0x13, 0x1A, 0x13, 0x01, 0xA0, 0x25, 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x01, 0x40, 0x1B, 0x25, 0xA0, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x73, 0x13, + 0x1A, 0x13, 0x13, 0x1A, 0x73, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, + 0x17, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x16, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x80, 0x1B, 0x25, 0x25, 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x33, + 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xD3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xA0, 0x25, 0x1B, 0xFE, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x01, 0x40, 0x1B, 0x25, + 0xA0, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xD3, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x07, 0x00, + 0x0F, 0x00, 0x1F, 0x00, 0x00, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x17, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0xC5, 0x36, 0x25, 0x25, 0x36, 0x25, 0x5B, 0x36, 0x25, 0x25, 0x36, 0x25, 0x80, + 0x0D, 0x13, 0x13, 0x0D, 0xFE, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x25, 0x36, 0x25, 0x25, 0x36, 0xE5, 0x25, 0x36, 0x25, 0x25, 0x36, 0x55, 0x13, 0x0D, + 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x19, 0x00, 0x21, 0x00, 0x00, 0x21, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x11, + 0x26, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0xFD, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x70, 0x1C, 0x14, 0x01, 0x20, + 0x14, 0x1C, 0x6D, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x8D, 0x15, 0x1E, 0x1E, 0x15, 0xFE, + 0x73, 0xA0, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC3, 0x00, 0x10, 0x00, 0x22, 0x00, 0x2A, 0x00, + 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x11, 0x23, 0x35, 0x33, 0x32, 0x16, 0x15, 0x11, 0x03, 0x36, 0x16, 0x15, 0x11, 0x21, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x34, 0x36, 0x37, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, + 0x90, 0x60, 0x70, 0x14, 0x1C, 0xE8, 0x0F, 0x19, 0xFE, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x50, 0x0E, 0x0A, 0x86, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x01, 0x80, 0x40, 0x1D, 0x14, 0xFE, 0xB1, 0x01, 0xBF, 0x04, 0x14, 0x10, 0xFE, 0x21, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x6D, 0x0B, + 0x12, 0x03, 0xED, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x30, 0x01, 0xC0, 0x01, 0x50, 0x00, 0x0F, 0x00, 0x1F, + 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0xFE, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x80, 0x0D, 0x13, + 0x13, 0x0D, 0xFE, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x90, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0xC0, 0x13, 0x0D, 0x20, 0x0D, 0x13, + 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x05, 0x01, 0xC7, 0x00, 0x22, 0x00, 0x00, 0x01, 0x1E, 0x01, 0x0F, + 0x01, 0x33, 0x06, 0x0F, 0x01, 0x33, 0x0E, 0x02, 0x26, 0x27, 0x07, 0x06, 0x22, 0x26, 0x34, 0x37, 0x01, 0x36, 0x26, 0x0F, 0x01, 0x26, 0x36, 0x37, 0x3E, + 0x01, 0x37, 0x3E, 0x01, 0x16, 0x01, 0xD3, 0x27, 0x0A, 0x21, 0x83, 0x62, 0x08, 0x27, 0x93, 0x62, 0x1B, 0x47, 0x45, 0x3A, 0x16, 0x42, 0x07, 0x14, 0x0E, + 0x07, 0x01, 0x04, 0x0B, 0x17, 0x0B, 0xB3, 0x06, 0x1D, 0x29, 0x07, 0x21, 0x2E, 0x2C, 0x5F, 0x51, 0x01, 0x93, 0x27, 0x67, 0x39, 0x2C, 0x08, 0x27, 0x31, + 0x1A, 0x1F, 0x08, 0x04, 0x06, 0x42, 0x07, 0x0E, 0x14, 0x07, 0x01, 0x03, 0x0C, 0x16, 0x0B, 0xB2, 0x35, 0x74, 0x2A, 0x06, 0x22, 0x2D, 0x2C, 0x21, 0x13, + 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xE0, 0x02, 0x40, 0x01, 0xA0, 0x00, 0x35, 0x00, 0x3D, 0x00, 0x00, 0x01, 0x16, 0x17, 0x16, 0x15, 0x14, 0x0F, + 0x01, 0x17, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x27, 0x36, 0x2E, 0x01, 0x27, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x17, + 0x1E, 0x01, 0x0F, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x3E, 0x01, 0x32, 0x16, 0x06, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xBF, 0x3A, 0x29, 0x1E, 0x1E, 0x9A, 0x62, 0x36, 0x0D, 0x13, 0x09, 0x07, 0x5A, 0x77, 0x02, 0x11, 0x11, 0x09, 0x1B, + 0x46, 0x1C, 0x23, 0x0C, 0x13, 0x0D, 0x20, 0x23, 0x26, 0x20, 0x14, 0x13, 0x23, 0x4F, 0x0D, 0x13, 0x09, 0x07, 0xFE, 0xD0, 0x1A, 0x26, 0xA7, 0x7A, 0x06, + 0x2C, 0x3A, 0x2C, 0x53, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x01, 0x5F, 0x14, 0x16, 0x10, 0x23, 0x22, 0x11, 0x56, 0x69, 0x13, 0x0D, 0x07, 0x09, 0x7E, 0x18, + 0x2C, 0x13, 0x06, 0x15, 0x15, 0x1A, 0x0A, 0x19, 0x09, 0x19, 0x1A, 0x0F, 0x0E, 0x42, 0x1B, 0x30, 0x13, 0x0D, 0x07, 0x09, 0x25, 0x1A, 0x7D, 0xB7, 0x0B, + 0x1D, 0x25, 0x25, 0x43, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x40, + 0x00, 0x44, 0x00, 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x27, 0x2E, 0x01, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x15, 0x21, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x2E, 0x01, 0x3D, 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x07, 0x35, 0x23, 0x15, 0x01, 0x50, + 0x07, 0x09, 0x09, 0x07, 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x01, 0xDD, 0x13, 0x2F, 0x21, 0x1B, 0x25, 0x17, 0x11, 0x08, 0xFE, 0xE0, 0x26, 0x1A, 0xA0, + 0x1A, 0x26, 0x08, 0x24, 0x34, 0x0E, 0x14, 0x0E, 0x14, 0x1C, 0x26, 0x04, 0x04, 0x0C, 0x04, 0x0E, 0x04, 0x9C, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x01, 0x55, 0x13, 0x1B, 0xDF, 0x20, 0x2B, 0x03, 0x03, 0x2C, 0x1D, 0x1C, 0x11, 0x17, 0x70, 0x01, 0x60, 0x1A, 0x26, 0x26, 0x1A, + 0xC0, 0x34, 0x24, 0x20, 0x0A, 0x0E, 0x0E, 0x0A, 0xA1, 0x03, 0x1F, 0x15, 0x3E, 0x26, 0x04, 0x0E, 0x04, 0x0C, 0x04, 0x04, 0xA6, 0x80, 0x80, 0x00, 0x00, + 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x40, 0x01, 0xA8, 0x00, 0x43, 0x00, 0x50, 0x00, 0x5D, 0x00, 0x00, 0x25, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x2F, 0x01, 0x23, 0x07, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x1E, 0x01, 0x0F, 0x01, + 0x0E, 0x01, 0x2F, 0x01, 0x26, 0x07, 0x06, 0x0F, 0x01, 0x36, 0x33, 0x32, 0x17, 0x33, 0x36, 0x33, 0x32, 0x17, 0x27, 0x26, 0x27, 0x26, 0x0F, 0x01, 0x06, + 0x26, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x16, 0x17, 0x01, 0x37, 0x26, 0x23, 0x22, 0x07, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x25, 0x35, + 0x26, 0x23, 0x22, 0x07, 0x17, 0x1E, 0x01, 0x3B, 0x01, 0x32, 0x36, 0x02, 0x3E, 0x02, 0x43, 0x30, 0x25, 0x2E, 0x42, 0x03, 0x03, 0x24, 0x03, 0x03, 0x42, + 0x2E, 0x25, 0x30, 0x43, 0x02, 0x2D, 0x0A, 0x43, 0x24, 0x10, 0x06, 0x06, 0x02, 0x05, 0x02, 0x0C, 0x06, 0x0E, 0x12, 0x0F, 0x10, 0x04, 0x27, 0x29, 0x29, + 0x3B, 0x37, 0x4A, 0x37, 0x3B, 0x29, 0x29, 0x27, 0x04, 0x10, 0x0F, 0x12, 0x0E, 0x06, 0x0C, 0x02, 0x05, 0x02, 0x06, 0x06, 0x10, 0x24, 0x43, 0x0A, 0xFE, + 0xBA, 0x04, 0x23, 0x23, 0x25, 0x24, 0x1E, 0x15, 0x25, 0x14, 0x1E, 0x01, 0x36, 0x24, 0x25, 0x23, 0x23, 0x04, 0x01, 0x1E, 0x14, 0x25, 0x15, 0x1E, 0xA8, + 0x08, 0x08, 0x46, 0x2F, 0x43, 0x3D, 0x2C, 0x27, 0x27, 0x2C, 0x3D, 0x43, 0x2F, 0x46, 0x08, 0x08, 0xB5, 0x26, 0x25, 0x0D, 0x05, 0x02, 0x0C, 0x06, 0x0F, + 0x06, 0x06, 0x02, 0x04, 0x06, 0x07, 0x09, 0x11, 0x9A, 0x0C, 0x1A, 0x1A, 0x0C, 0x9A, 0x11, 0x09, 0x07, 0x06, 0x04, 0x02, 0x06, 0x06, 0x0F, 0x06, 0x0C, + 0x02, 0x05, 0x0D, 0x25, 0x26, 0xFE, 0xF1, 0x29, 0x0D, 0x0D, 0x25, 0x15, 0x1D, 0x1B, 0x17, 0x25, 0x0D, 0x0D, 0x29, 0x13, 0x1B, 0x1D, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xFF, 0xFD, 0xFF, 0xFD, 0x01, 0x81, 0x01, 0x83, 0x00, 0x16, 0x00, 0x00, 0x25, 0x16, 0x1D, 0x01, 0x14, 0x07, 0x05, 0x06, 0x26, 0x2F, 0x01, + 0x26, 0x36, 0x3F, 0x01, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x17, 0x01, 0x6E, 0x12, 0x12, 0xFE, 0xCD, 0x0C, 0x19, 0x05, 0x0E, 0x06, 0x09, 0x0C, + 0xDB, 0xDA, 0x0D, 0x09, 0x06, 0x0E, 0x05, 0x19, 0x0C, 0xEE, 0x08, 0x15, 0x22, 0x14, 0x09, 0x8F, 0x06, 0x09, 0x0C, 0x1D, 0x0C, 0x19, 0x06, 0x66, 0x66, + 0x05, 0x19, 0x0C, 0x1D, 0x0D, 0x09, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xD0, 0x01, 0xC0, 0x01, 0xB3, 0x00, 0x16, 0x00, 0x26, 0x00, 0x00, + 0x13, 0x2E, 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x17, 0x05, 0x16, 0x1D, 0x01, 0x14, 0x07, 0x05, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x17, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x0D, 0x0D, 0x05, 0x0C, 0x05, 0x1B, 0x0D, 0x01, 0x2E, 0x17, + 0x17, 0xFE, 0xD3, 0x0E, 0x1B, 0x05, 0x0C, 0x05, 0x0D, 0x0D, 0xB0, 0xC1, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x54, 0x05, + 0x18, 0x0C, 0x1E, 0x0C, 0x0C, 0x05, 0x78, 0x07, 0x17, 0x10, 0x17, 0x07, 0x78, 0x05, 0x0C, 0x0C, 0x1E, 0x0D, 0x18, 0x04, 0x44, 0xE0, 0x0E, 0x0A, 0x30, + 0x0A, 0x0E, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x00, 0x00, 0x03, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x81, 0x01, 0xC0, 0x00, 0x26, 0x00, 0x2B, 0x00, 0x3D, 0x00, + 0x00, 0x25, 0x22, 0x2F, 0x03, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x33, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x27, 0x15, 0x33, 0x2E, 0x01, 0x17, 0x16, 0x14, 0x07, 0x06, 0x23, 0x21, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x36, 0x17, 0x01, 0x30, 0x10, 0x0A, 0x56, 0xA0, 0x20, 0x01, 0x09, 0x08, 0x28, 0x08, 0x05, 0x2B, + 0xD0, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xB0, 0x5D, 0x83, 0x13, 0x0D, 0xA0, 0x7D, 0x0A, 0x44, 0xAC, 0x05, 0x06, 0x21, + 0x23, 0xFE, 0xBA, 0x07, 0x09, 0x09, 0x07, 0x01, 0x46, 0x0D, 0x17, 0x0B, 0x40, 0x0D, 0x73, 0x40, 0x6C, 0x08, 0x0C, 0x06, 0x3A, 0x40, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x83, 0x5D, 0x0D, 0x13, 0xBC, 0x7C, 0x2F, 0x44, 0xFE, 0x05, 0x0E, 0x04, 0x1E, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x16, 0x0B, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x02, 0x80, 0x01, 0x60, 0x00, 0x11, 0x00, 0x1A, 0x00, 0x23, 0x00, 0x00, 0x01, 0x32, + 0x16, 0x14, 0x06, 0x23, 0x22, 0x27, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x36, 0x07, 0x32, 0x37, 0x26, 0x23, 0x22, 0x06, 0x14, 0x16, + 0x21, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x07, 0x16, 0x01, 0xD7, 0x46, 0x63, 0x63, 0x46, 0x51, 0x46, 0x46, 0x51, 0x46, 0x63, 0x63, 0x46, 0x51, 0x46, + 0x46, 0xDD, 0x2F, 0x2F, 0x2F, 0x2F, 0x1E, 0x2B, 0x2B, 0x01, 0x4C, 0x1E, 0x2B, 0x2B, 0x1E, 0x2F, 0x2F, 0x2F, 0x01, 0x60, 0x5E, 0x84, 0x5E, 0x4F, 0x4F, + 0x5E, 0x84, 0x5E, 0x4F, 0x4F, 0xE0, 0x40, 0x40, 0x26, 0x34, 0x26, 0x26, 0x34, 0x26, 0x40, 0x40, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xE0, 0x02, 0x40, + 0x01, 0xAE, 0x00, 0x34, 0x00, 0x3C, 0x00, 0x40, 0x00, 0x00, 0x25, 0x15, 0x14, 0x07, 0x22, 0x23, 0x22, 0x2F, 0x01, 0x06, 0x23, 0x22, 0x07, 0x06, 0x07, + 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x06, 0x23, 0x22, 0x27, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x2E, 0x01, 0x35, + 0x34, 0x3E, 0x03, 0x37, 0x36, 0x17, 0x16, 0x3B, 0x01, 0x32, 0x16, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x17, 0x35, 0x06, 0x07, 0x02, 0x40, + 0x0C, 0x02, 0x02, 0x0A, 0x04, 0x4A, 0x0C, 0x0C, 0x4C, 0x4C, 0x11, 0x17, 0x09, 0x07, 0x10, 0x07, 0x09, 0x0E, 0x02, 0x18, 0x18, 0x09, 0x07, 0x10, 0x07, + 0x09, 0x2C, 0x34, 0x1C, 0x24, 0x30, 0x1A, 0x09, 0x54, 0x46, 0x43, 0x50, 0x0A, 0x2E, 0x45, 0x77, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x68, 0x11, 0x17, 0xE6, + 0xF6, 0x0C, 0x04, 0x08, 0x89, 0x01, 0x31, 0x0B, 0x09, 0x3B, 0x07, 0x09, 0x09, 0x07, 0x31, 0x01, 0x06, 0x36, 0x07, 0x09, 0x09, 0x07, 0x4A, 0x19, 0x59, + 0x34, 0x29, 0x44, 0x26, 0x1C, 0x0A, 0x02, 0x13, 0x30, 0x2E, 0x3D, 0x4B, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0xA7, 0x63, 0x11, 0x09, 0x00, 0x00, 0x01, 0x00, + 0x00, 0xFF, 0xFD, 0x01, 0x83, 0x01, 0x83, 0x00, 0x16, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0x27, 0x25, 0x26, 0x3D, 0x01, 0x34, 0x37, + 0x25, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x01, 0x6D, 0x0D, 0x09, 0x06, 0x0E, 0x05, 0x19, 0x0C, 0xFE, 0xCD, 0x12, 0x12, 0x01, 0x33, 0x0C, + 0x19, 0x05, 0x0E, 0x06, 0x09, 0x0C, 0xDB, 0x5A, 0x05, 0x19, 0x0C, 0x1D, 0x0D, 0x09, 0x06, 0x8F, 0x08, 0x15, 0x22, 0x14, 0x09, 0x8F, 0x06, 0x09, 0x0C, + 0x1D, 0x0C, 0x19, 0x06, 0x66, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xD0, 0x01, 0xC0, 0x01, 0xB3, 0x00, 0x16, 0x00, 0x26, 0x00, 0x00, 0x37, 0x26, 0x3D, + 0x01, 0x34, 0x37, 0x25, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0x27, 0x17, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x17, 0x17, 0x01, 0x2E, 0x0D, 0x1B, 0x05, 0x0C, 0x05, 0x0D, 0x0D, 0xB0, 0xB0, + 0x0D, 0x0D, 0x05, 0x0C, 0x05, 0x1B, 0x0E, 0x44, 0x0A, 0x0E, 0x0E, 0x0A, 0xFE, 0x70, 0x0A, 0x0E, 0x0E, 0x0A, 0xEA, 0x07, 0x17, 0x10, 0x17, 0x07, 0x78, + 0x05, 0x0C, 0x0C, 0x1E, 0x0C, 0x18, 0x05, 0x44, 0x44, 0x04, 0x18, 0x0D, 0x1E, 0x0C, 0x0C, 0x05, 0x42, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x0E, 0x0A, 0x30, + 0x0A, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x01, 0x80, 0x00, 0x15, 0x00, 0x19, 0x00, 0x1D, 0x00, 0x21, 0x00, 0x45, + 0x00, 0x00, 0x01, 0x0E, 0x01, 0x14, 0x16, 0x17, 0x15, 0x21, 0x35, 0x3E, 0x01, 0x34, 0x26, 0x27, 0x35, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x05, + 0x35, 0x23, 0x15, 0x33, 0x35, 0x23, 0x15, 0x33, 0x35, 0x23, 0x15, 0x05, 0x35, 0x21, 0x15, 0x23, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x35, + 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x02, 0x80, 0x0E, + 0x12, 0x12, 0x0E, 0xFD, 0x80, 0x0E, 0x12, 0x12, 0x0E, 0x13, 0x0D, 0x02, 0x40, 0x0D, 0x13, 0xFE, 0x60, 0x40, 0xC0, 0x40, 0xC0, 0x40, 0xFE, 0x60, 0x02, + 0x80, 0x40, 0x09, 0x0E, 0x09, 0x80, 0x09, 0x0E, 0x09, 0x80, 0x09, 0x0E, 0x09, 0x80, 0x09, 0x0E, 0x09, 0x01, 0x3D, 0x05, 0x19, 0x1E, 0x19, 0x05, 0x63, + 0x63, 0x05, 0x19, 0x1E, 0x19, 0x05, 0x23, 0x0D, 0x13, 0x13, 0x0D, 0xA0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xC0, 0x60, 0x60, 0x1B, 0x06, 0x0A, 0x0A, + 0x06, 0x1B, 0x1B, 0x06, 0x0A, 0x0A, 0x06, 0x1B, 0x1B, 0x06, 0x0A, 0x0A, 0x06, 0x1B, 0x1B, 0x06, 0x0A, 0x0A, 0x06, 0x1B, 0x00, 0x00, 0x00, 0x02, 0xFF, + 0xF9, 0xFF, 0xB9, 0x02, 0x87, 0x01, 0xC7, 0x00, 0x35, 0x00, 0x55, 0x00, 0x00, 0x05, 0x16, 0x0F, 0x01, 0x06, 0x27, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x1F, + 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x23, 0x17, + 0x33, 0x14, 0x07, 0x17, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x3D, 0x01, 0x17, 0x1E, 0x01, 0x17, 0x16, 0x37, 0x17, 0x06, 0x07, 0x15, 0x02, + 0x7A, 0x0C, 0x09, 0x14, 0x0A, 0x0C, 0xFD, 0xB3, 0x0C, 0x09, 0x14, 0x0A, 0x0C, 0xB3, 0x38, 0x50, 0x38, 0x55, 0x0B, 0x0B, 0x55, 0x55, 0x0B, 0x0B, 0x55, + 0x55, 0x29, 0x2C, 0x05, 0x1A, 0x0B, 0x09, 0x07, 0x10, 0x07, 0x09, 0x14, 0x4C, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x38, 0x41, 0x57, + 0x34, 0x0A, 0x3C, 0x29, 0x07, 0x0E, 0x32, 0x10, 0x12, 0x0A, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0x01, 0xC7, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0x8A, 0x2D, 0x28, + 0x38, 0x38, 0x28, 0x08, 0x10, 0x08, 0x20, 0x08, 0x10, 0x08, 0x20, 0x20, 0x0E, 0x10, 0x14, 0x18, 0x1A, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x2A, 0x26, + 0x80, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x22, 0x09, 0x69, 0x44, 0x07, 0x29, 0x28, 0x39, 0x04, 0x01, 0x01, 0x27, 0x06, 0x02, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x81, 0x01, 0xA1, 0x00, 0x1D, 0x00, 0x23, 0x00, 0x29, 0x00, 0x31, 0x00, 0x37, 0x00, + 0x3D, 0x00, 0x00, 0x01, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x22, 0x27, 0x26, 0x23, 0x22, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, + 0x32, 0x17, 0x16, 0x33, 0x32, 0x36, 0x33, 0x32, 0x05, 0x15, 0x32, 0x36, 0x37, 0x26, 0x03, 0x16, 0x17, 0x2E, 0x01, 0x23, 0x36, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x05, 0x35, 0x0E, 0x01, 0x07, 0x16, 0x37, 0x35, 0x26, 0x27, 0x1E, 0x01, 0x02, 0x6D, 0x13, 0x13, 0x0D, 0x05, 0x06, 0x2B, 0x31, 0x3E, + 0xF6, 0x3E, 0x3F, 0x35, 0x13, 0x13, 0x0D, 0x05, 0x06, 0x2B, 0x31, 0x3E, 0xF6, 0x3E, 0x3F, 0xFD, 0xF8, 0x17, 0x23, 0x05, 0x24, 0x1B, 0x1E, 0x22, 0x01, + 0x25, 0x1A, 0xEF, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0x60, 0x14, 0x1E, 0x04, 0x1F, 0x17, 0x1A, 0x1E, 0x01, 0x20, 0x01, 0x8A, 0x08, 0x16, 0xFE, 0xC3, + 0x0E, 0x12, 0x02, 0x0D, 0x3E, 0x16, 0x08, 0x16, 0x01, 0x3D, 0x0E, 0x12, 0x02, 0x0D, 0x3E, 0x64, 0x3D, 0x1E, 0x16, 0x02, 0xFE, 0xEA, 0x0B, 0x03, 0x1A, + 0x24, 0x11, 0x38, 0x50, 0x38, 0x38, 0x50, 0x54, 0x3A, 0x03, 0x1B, 0x13, 0x03, 0xE6, 0x31, 0x0A, 0x03, 0x18, 0x23, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0xFF, 0xE0, 0x02, 0x81, 0x01, 0xA1, 0x00, 0x1D, 0x00, 0x25, 0x00, 0x00, 0x01, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x22, 0x27, 0x26, 0x23, 0x22, 0x06, + 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x32, 0x17, 0x16, 0x33, 0x32, 0x36, 0x33, 0x32, 0x00, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, + 0x02, 0x6D, 0x13, 0x13, 0x0D, 0x05, 0x06, 0x2B, 0x31, 0x3E, 0xF6, 0x3E, 0x3F, 0x35, 0x13, 0x13, 0x0D, 0x05, 0x06, 0x2B, 0x31, 0x3E, 0xF6, 0x3E, 0x3F, + 0xFE, 0xE7, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0x8A, 0x08, 0x16, 0xFE, 0xC3, 0x0E, 0x12, 0x02, 0x0D, 0x3E, 0x16, 0x08, 0x16, 0x01, 0x3D, 0x0E, 0x12, + 0x02, 0x0D, 0x3E, 0xFE, 0xC0, 0x38, 0x50, 0x38, 0x38, 0x50, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x09, 0x00, + 0x19, 0x00, 0x25, 0x00, 0x31, 0x00, 0x3D, 0x00, 0x47, 0x00, 0x00, 0x31, 0x11, 0x21, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x25, 0x15, 0x14, 0x16, + 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x25, + 0x15, 0x14, 0x33, 0x21, 0x32, 0x3D, 0x01, 0x34, 0x23, 0x21, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x01, 0x32, + 0x16, 0x1D, 0x01, 0x21, 0x35, 0x34, 0x36, 0x33, 0x02, 0x80, 0x13, 0x0D, 0xFD, 0xC0, 0x0D, 0x13, 0x01, 0xC0, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, + 0x60, 0x07, 0x09, 0x08, 0x70, 0x08, 0x08, 0x70, 0x08, 0xFE, 0x80, 0x08, 0x01, 0x30, 0x08, 0x08, 0xFE, 0xD0, 0x08, 0x08, 0xB0, 0x08, 0x08, 0xB0, 0x08, + 0x02, 0x30, 0x07, 0x09, 0xFD, 0x80, 0x09, 0x07, 0x01, 0x40, 0xFE, 0xC0, 0x0D, 0x13, 0x13, 0xDD, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x7F, 0x10, 0x08, 0x08, 0x10, 0x08, 0x58, 0x10, 0x08, 0x08, 0x10, 0x08, 0x68, 0x10, 0x08, 0x08, 0x10, 0x08, 0x01, 0x40, 0x09, 0x07, 0x30, 0x30, 0x07, + 0x09, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x49, 0x00, 0x55, 0x00, 0x61, 0x00, 0x6D, 0x00, + 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x13, 0x3E, 0x01, 0x35, 0x34, 0x26, 0x2F, 0x01, + 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x27, 0x26, 0x27, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x0E, 0x01, 0x15, + 0x14, 0x16, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x17, 0x16, 0x17, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x35, + 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, + 0x01, 0x34, 0x23, 0x21, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x21, 0x32, 0x02, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0xFD, 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0x90, 0x12, + 0x19, 0x12, 0x0E, 0x2D, 0x09, 0x07, 0x05, 0x1C, 0x07, 0x06, 0x06, 0x04, 0x0C, 0x07, 0x08, 0x0E, 0x11, 0x08, 0x10, 0x08, 0x12, 0x19, 0x12, 0x0E, 0x2D, + 0x09, 0x07, 0x05, 0x1C, 0x07, 0x06, 0x06, 0x04, 0x0C, 0x07, 0x08, 0x0E, 0x11, 0x08, 0x10, 0x08, 0xF0, 0x08, 0x70, 0x08, 0x08, 0x70, 0x08, 0xA0, 0x08, + 0x50, 0x08, 0x08, 0x50, 0x08, 0x08, 0xFE, 0xF0, 0x08, 0x08, 0x01, 0x10, 0x08, 0x01, 0xA0, 0x13, 0x0D, 0xFE, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x80, + 0x0D, 0x13, 0xFE, 0xD8, 0x01, 0x1A, 0x12, 0x0F, 0x18, 0x05, 0x0D, 0x03, 0x0A, 0x05, 0x08, 0x04, 0x03, 0x04, 0x0B, 0x07, 0x05, 0x0B, 0x01, 0x10, 0x08, + 0x08, 0x10, 0x01, 0x1A, 0x12, 0x0F, 0x18, 0x05, 0x0D, 0x03, 0x0A, 0x05, 0x08, 0x04, 0x03, 0x04, 0x0B, 0x07, 0x05, 0x0B, 0x01, 0x10, 0x08, 0x08, 0x20, + 0x10, 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x68, 0x10, 0x08, 0x08, 0x10, 0x08, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xB9, 0x01, 0xC6, + 0x01, 0xC7, 0x00, 0x33, 0x00, 0x00, 0x25, 0x23, 0x07, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, + 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x0F, + 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x01, 0xA0, 0x62, 0x4B, 0xAD, 0x0D, 0x13, 0x13, 0x0D, 0xF7, 0x53, 0x09, 0x0D, 0x19, 0x0D, 0x0A, 0x33, + 0x37, 0x0D, 0x13, 0x13, 0x0D, 0x82, 0x4B, 0xCD, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x17, 0x52, 0x0A, 0x0D, 0x19, 0x0D, 0x0A, 0x34, 0x18, 0x0D, 0x13, 0x13, + 0xF0, 0x60, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x6A, 0x0C, 0x09, 0x14, 0x09, 0x0D, 0x43, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x60, 0x13, 0x0D, 0x20, 0x0D, 0x13, + 0x6A, 0x0C, 0x09, 0x14, 0x09, 0x0D, 0x43, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x00, 0x05, 0xFF, 0xF7, 0xFF, 0xBA, 0x02, 0x00, 0x01, 0xCB, + 0x00, 0x15, 0x00, 0x1D, 0x00, 0x25, 0x00, 0x2D, 0x00, 0x35, 0x00, 0x00, 0x13, 0x36, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x06, 0x17, 0x16, + 0x06, 0x07, 0x06, 0x2E, 0x02, 0x37, 0x3E, 0x01, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0xCC, 0x50, 0x8F, 0x55, 0x26, 0x1B, 0x50, 0x26, 0x28, 0x11, + 0x0F, 0x1A, 0x1F, 0x2F, 0x68, 0x50, 0x29, 0x0D, 0x0F, 0x6E, 0x2F, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x33, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x93, 0x1A, 0x13, + 0x13, 0x1A, 0x13, 0x93, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xBB, 0x10, 0x3D, 0x7F, 0x4E, 0x1B, 0x26, 0x40, 0x22, 0x1C, 0x3B, 0x05, 0x07, 0x2A, 0x50, + 0x7D, 0x43, 0x4A, 0x6D, 0xFE, 0xD4, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x6D, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x2D, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x53, 0x13, + 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x00, 0x01, 0x32, 0x16, + 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x13, 0x32, 0x36, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, + 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x37, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, + 0x1C, 0x14, 0xC0, 0x28, 0x38, 0x38, 0x28, 0x60, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0x0D, 0x13, 0x13, 0x0D, 0x30, 0x01, 0xA0, 0x1C, 0x14, + 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xFE, 0xE0, 0x38, 0x50, 0x38, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x30, 0x80, 0x13, + 0x1A, 0x13, 0x40, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x80, 0x01, 0x81, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x00, 0x12, 0x06, 0x22, 0x26, + 0x34, 0x36, 0x32, 0x1E, 0x02, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x37, 0x16, 0x14, 0x07, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x37, 0x01, 0x36, + 0x32, 0x17, 0x80, 0x25, 0x36, 0x25, 0x25, 0x36, 0x25, 0xDB, 0x25, 0x25, 0x36, 0x25, 0x25, 0x46, 0x0A, 0x0A, 0xFE, 0xEE, 0x0A, 0x1A, 0x0A, 0x16, 0x0A, + 0x0A, 0x01, 0x12, 0x0A, 0x1A, 0x0A, 0x01, 0x25, 0x25, 0x25, 0x36, 0x25, 0x25, 0xDB, 0x25, 0x36, 0x25, 0x25, 0x36, 0x25, 0xD5, 0x0A, 0x1A, 0x0A, 0xFE, + 0xEE, 0x0A, 0x0A, 0x16, 0x0A, 0x1A, 0x0A, 0x01, 0x12, 0x0A, 0x0A, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x24, + 0x00, 0x34, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x03, 0x15, 0x33, 0x15, 0x23, + 0x15, 0x17, 0x22, 0x07, 0x27, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0xE0, 0xE0, 0x40, 0x24, 0x13, 0x49, + 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x01, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x13, 0x0D, 0x80, 0x0D, 0x13, + 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x01, 0x20, 0x20, 0x40, 0x30, 0x70, 0x20, 0x80, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x13, 0x13, 0x13, 0x0D, 0x80, 0x0D, 0x13, + 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xBD, 0x01, 0x80, 0x01, 0xC3, 0x00, 0x25, 0x00, 0x31, 0x00, 0x3D, 0x00, 0x49, 0x00, 0x00, + 0x01, 0x36, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x07, 0x06, 0x26, 0x35, 0x11, 0x34, + 0x36, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x11, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, + 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x01, + 0x66, 0x08, 0x12, 0x12, 0x08, 0x26, 0x36, 0x05, 0x0A, 0x05, 0x36, 0x36, 0x05, 0x0A, 0x05, 0x36, 0x26, 0x08, 0x12, 0x12, 0x08, 0x26, 0x36, 0x05, 0x0A, + 0x05, 0x36, 0x36, 0x05, 0x0A, 0x05, 0x36, 0x08, 0xF0, 0x08, 0x08, 0xF0, 0x08, 0x08, 0xF0, 0x08, 0x08, 0xF0, 0x08, 0x08, 0xF0, 0x08, 0x08, 0xF0, 0x08, + 0x01, 0xBD, 0x06, 0x09, 0x0A, 0xFE, 0x20, 0x0A, 0x09, 0x06, 0x2D, 0x2D, 0x03, 0x03, 0x2D, 0x2D, 0x03, 0x03, 0x2D, 0x2D, 0x06, 0x09, 0x0A, 0x01, 0xE0, + 0x0A, 0x09, 0x06, 0x2D, 0x2D, 0x03, 0x03, 0x2D, 0x2D, 0x03, 0x03, 0x2D, 0xFE, 0xC8, 0x10, 0x08, 0x08, 0x10, 0x08, 0x68, 0x10, 0x08, 0x08, 0x10, 0x08, + 0x68, 0x10, 0x08, 0x08, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x81, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x21, 0x00, 0x29, + 0x00, 0x2D, 0x00, 0x31, 0x00, 0x39, 0x00, 0x3D, 0x00, 0x47, 0x00, 0x00, 0x37, 0x33, 0x15, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x25, 0x11, 0x14, + 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x04, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x16, 0x32, 0x17, 0x23, 0x15, 0x33, 0x37, 0x23, 0x15, 0x33, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x17, 0x23, 0x15, 0x33, 0x37, + 0x15, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x33, 0x32, 0x16, 0x20, 0x20, 0x20, 0x0D, 0x13, 0x13, 0x02, 0x0D, 0x26, 0x1A, 0xFE, 0xC0, 0x1A, 0x26, 0x2F, 0x21, + 0x70, 0x13, 0x1A, 0x13, 0x70, 0x21, 0x2F, 0xFE, 0xE8, 0x17, 0x22, 0x17, 0x17, 0x22, 0x0F, 0x40, 0x40, 0x60, 0x40, 0x40, 0x68, 0x17, 0x22, 0x17, 0x17, + 0x22, 0x0F, 0x40, 0x40, 0xC0, 0x13, 0x0D, 0x20, 0x20, 0x0D, 0x13, 0xE0, 0xC0, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x30, 0xFE, 0xF0, 0x1A, 0x26, 0x26, 0x1A, + 0x01, 0x10, 0x21, 0x2F, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x2F, 0x82, 0x22, 0x17, 0x17, 0x22, 0x17, 0x58, 0x20, 0x20, 0x20, 0x8F, 0x22, 0x17, 0x17, + 0x22, 0x17, 0x58, 0x20, 0xA0, 0x80, 0x0D, 0x13, 0xC0, 0x13, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFD, 0xFF, 0xCD, 0x02, 0x83, 0x01, 0xB3, 0x00, 0x37, + 0x00, 0x00, 0x01, 0x16, 0x06, 0x07, 0x01, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x17, 0x16, + 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x17, 0x16, 0x3F, + 0x01, 0x36, 0x2F, 0x01, 0x37, 0x36, 0x16, 0x17, 0x02, 0x7C, 0x06, 0x07, 0x0B, 0xFE, 0x0F, 0x0B, 0x1A, 0x06, 0x50, 0x06, 0x06, 0x0C, 0x45, 0x3C, 0x04, + 0x07, 0x0D, 0x07, 0x04, 0x3C, 0x38, 0x1C, 0x04, 0x06, 0x0E, 0x07, 0x04, 0x1C, 0x37, 0x3C, 0x04, 0x07, 0x0E, 0x07, 0x04, 0x3C, 0x37, 0x1C, 0x04, 0x07, + 0x0E, 0x07, 0x04, 0x1C, 0x37, 0x3C, 0x04, 0x07, 0x0D, 0x07, 0x04, 0x3B, 0x45, 0x0B, 0x1A, 0x06, 0x01, 0x19, 0x0B, 0x1A, 0x06, 0xFE, 0xE6, 0x06, 0x06, + 0x0C, 0x87, 0x0B, 0x19, 0x07, 0x27, 0x65, 0x07, 0x04, 0x08, 0x04, 0x06, 0x66, 0x1F, 0x2F, 0x07, 0x04, 0x08, 0x04, 0x06, 0x30, 0x1F, 0x66, 0x06, 0x03, + 0x08, 0x04, 0x07, 0x66, 0x1F, 0x2F, 0x07, 0x04, 0x08, 0x04, 0x06, 0x30, 0x1F, 0x66, 0x06, 0x03, 0x08, 0x04, 0x07, 0x66, 0x27, 0x06, 0x06, 0x0C, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x23, 0x00, 0x47, 0x00, 0x00, 0x37, 0x15, 0x07, 0x26, 0x35, 0x11, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x1D, + 0x01, 0x14, 0x33, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x27, 0x37, 0x33, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x15, + 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0xA0, 0x9E, 0x02, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x38, 0x08, 0x08, + 0x38, 0x38, 0x08, 0x08, 0x38, 0x38, 0x08, 0x08, 0x01, 0x78, 0x0D, 0x13, 0x13, 0x0D, 0xFE, 0x40, 0x02, 0x06, 0x9F, 0x29, 0x08, 0x10, 0x08, 0x40, 0x08, + 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, 0xA0, 0x29, 0x9F, 0x06, 0x02, 0x01, 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, + 0x40, 0x08, 0x10, 0x08, 0x40, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x02, 0x9E, 0x38, 0x08, 0x08, 0x38, 0x38, 0x08, 0x08, 0x38, 0x38, 0x08, 0x08, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x02, 0x40, 0x01, 0x40, 0x00, 0x37, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x15, + 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x02, 0x20, 0x0D, + 0x13, 0x13, 0x0D, 0xFE, 0x00, 0x0D, 0x13, 0x13, 0x0D, 0x30, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, + 0x40, 0x08, 0x10, 0x08, 0x01, 0x40, 0x13, 0x0D, 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0xC0, 0x0D, 0x13, 0x58, 0x08, 0x08, 0x58, 0x58, 0x08, 0x08, 0x58, 0x58, + 0x08, 0x08, 0x58, 0x58, 0x08, 0x08, 0x58, 0x58, 0x08, 0x08, 0x58, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x00, 0x01, 0xC0, 0x00, 0x2F, + 0x00, 0x00, 0x37, 0x33, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, + 0x14, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x1D, 0x01, 0x14, + 0xA8, 0x58, 0x13, 0x0D, 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0xC0, 0x0D, 0x13, 0x58, 0x08, 0x08, 0x58, 0x58, 0x08, 0x08, 0x58, 0x58, 0x08, 0x08, 0x58, 0x58, + 0x08, 0x20, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, + 0x40, 0x08, 0x10, 0x08, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x19, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x41, 0x00, + 0x00, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x23, 0x22, 0x26, 0x35, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, + 0x1D, 0x01, 0x37, 0x16, 0x15, 0x11, 0x23, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x11, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x06, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x25, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x11, 0x13, 0x0D, 0x40, 0x50, 0x07, 0x09, 0x01, 0x68, + 0x08, 0x08, 0x30, 0x08, 0x08, 0x10, 0x08, 0xA2, 0x0E, 0x80, 0x09, 0x07, 0x60, 0x07, 0x09, 0x80, 0x0E, 0xA0, 0x08, 0x14, 0x08, 0x33, 0x42, 0x2F, 0x2F, + 0x42, 0x2F, 0x01, 0x70, 0x0D, 0x13, 0x09, 0x07, 0x50, 0xE0, 0x0D, 0x13, 0xFE, 0xC0, 0x09, 0x07, 0x01, 0x40, 0x08, 0x10, 0x08, 0x08, 0x40, 0x08, 0x08, + 0x28, 0x40, 0x0A, 0x11, 0xFE, 0x8B, 0x90, 0x07, 0x09, 0x09, 0x07, 0x90, 0x01, 0x75, 0x11, 0x0A, 0x6B, 0x05, 0x05, 0xFB, 0x2F, 0x42, 0x2F, 0x2F, 0x42, + 0x11, 0x13, 0x0D, 0xFE, 0xF0, 0x07, 0x09, 0x01, 0x40, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x17, 0x00, 0x00, + 0x01, 0x17, 0x07, 0x23, 0x07, 0x2E, 0x01, 0x27, 0x37, 0x35, 0x07, 0x36, 0x32, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x37, 0x01, + 0xC0, 0x40, 0x60, 0x3E, 0x53, 0x07, 0x10, 0x0B, 0x53, 0xC0, 0x16, 0x3E, 0x2B, 0x16, 0x75, 0x0B, 0x1E, 0x0B, 0x35, 0x0B, 0x0B, 0x01, 0xC0, 0x40, 0x80, + 0x53, 0x0B, 0x10, 0x07, 0x53, 0x3E, 0xB7, 0x16, 0x2B, 0x3E, 0x16, 0x75, 0x0B, 0x0B, 0x35, 0x0B, 0x1E, 0x0B, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xBD, 0x02, + 0x80, 0x01, 0xC3, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x21, 0x00, 0x33, 0x00, 0x00, 0x13, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x02, 0x34, 0x36, 0x3B, + 0x01, 0x15, 0x23, 0x22, 0x25, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x06, 0x27, 0x26, 0x2F, 0x01, 0x35, 0x32, 0x3E, 0x01, 0x37, 0x36, 0x13, 0x1E, 0x01, + 0x15, 0x14, 0x06, 0x23, 0x22, 0x27, 0x2E, 0x02, 0x23, 0x35, 0x37, 0x36, 0x37, 0x36, 0xC0, 0x1B, 0x25, 0x25, 0x1B, 0x20, 0xE0, 0x25, 0x1B, 0x20, 0x20, + 0x1B, 0x01, 0x2C, 0x49, 0x66, 0x48, 0x4D, 0x2D, 0x34, 0x23, 0x2D, 0x3A, 0x1C, 0x2B, 0x0F, 0x13, 0x30, 0xD2, 0x4D, 0x48, 0x66, 0x49, 0x38, 0x30, 0x13, + 0x0F, 0x2B, 0x1C, 0x3A, 0x2D, 0x23, 0x33, 0x01, 0x20, 0x25, 0x36, 0x25, 0x80, 0xFE, 0xE5, 0x36, 0x25, 0x80, 0xC0, 0x32, 0x2E, 0x26, 0x42, 0x11, 0x0A, + 0x04, 0x02, 0x0D, 0x10, 0x80, 0x0B, 0x09, 0x0C, 0x20, 0x01, 0x19, 0x11, 0x42, 0x26, 0x2E, 0x32, 0x20, 0x0C, 0x09, 0x0B, 0x80, 0x10, 0x0D, 0x02, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x00, 0x12, 0x32, 0x16, 0x15, + 0x14, 0x06, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, + 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x27, 0x2E, 0x01, 0x35, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x96, 0xD4, 0x96, 0x32, 0x2C, 0x11, 0x03, 0x09, 0x01, 0x09, 0x07, 0x4E, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, 0x4E, 0x07, 0x09, 0x01, + 0x09, 0x03, 0x11, 0x2C, 0x32, 0x86, 0x34, 0x26, 0x26, 0x34, 0x26, 0xE6, 0x34, 0x26, 0x26, 0x34, 0x26, 0x01, 0xC0, 0x83, 0x5D, 0x34, 0x5A, 0x20, 0x0B, + 0x13, 0x42, 0x07, 0x0B, 0x38, 0x08, 0x08, 0x38, 0x38, 0x08, 0x08, 0x38, 0x0B, 0x07, 0x42, 0x13, 0x0B, 0x20, 0x5A, 0x34, 0x5D, 0xBD, 0x26, 0x34, 0x26, + 0x26, 0x34, 0x26, 0x26, 0x34, 0x26, 0x26, 0x34, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x11, 0x00, 0x19, + 0x00, 0x1D, 0x00, 0x2F, 0x00, 0x47, 0x00, 0x00, 0x37, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x17, 0x23, 0x22, 0x26, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, + 0x34, 0x01, 0x32, 0x37, 0x01, 0x06, 0x15, 0x14, 0x16, 0x37, 0x17, 0x33, 0x35, 0x17, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x17, 0x33, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x27, 0x32, 0x16, 0x17, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x2E, 0x01, 0x23, 0x22, 0x26, 0x27, 0x34, 0x36, 0x3B, + 0x01, 0x32, 0x17, 0x1E, 0x01, 0x60, 0x09, 0x07, 0x16, 0x60, 0x76, 0x07, 0x09, 0x36, 0xD4, 0x96, 0x96, 0xD4, 0x96, 0x01, 0x00, 0x3D, 0x32, 0xFE, 0xF5, + 0x24, 0x71, 0x7C, 0x20, 0x33, 0x1C, 0x24, 0x71, 0x4F, 0x3D, 0x32, 0x7C, 0x83, 0x07, 0x09, 0x09, 0x07, 0x23, 0x2C, 0x18, 0x23, 0x04, 0x04, 0x04, 0x10, + 0x07, 0x01, 0x02, 0x12, 0x0B, 0x18, 0x24, 0x04, 0x05, 0x03, 0x11, 0x06, 0x01, 0x02, 0x12, 0x90, 0x40, 0x07, 0x09, 0x60, 0x09, 0x01, 0x37, 0x96, 0xD4, + 0x96, 0x96, 0xD4, 0xFE, 0xD6, 0x24, 0x01, 0x0B, 0x32, 0x3D, 0x4F, 0x71, 0xC0, 0x20, 0x20, 0x6F, 0x32, 0x3D, 0x4F, 0x71, 0x24, 0x7C, 0x09, 0x07, 0x40, + 0x07, 0x09, 0xC0, 0x1F, 0x18, 0x03, 0x06, 0x06, 0x0B, 0x0F, 0x1F, 0x18, 0x03, 0x06, 0x06, 0x0B, 0x0F, 0x00, 0x02, 0xFF, 0xF4, 0xFF, 0xC0, 0x02, 0x74, + 0x01, 0xC0, 0x00, 0x1A, 0x00, 0x32, 0x00, 0x00, 0x01, 0x16, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x06, 0x22, 0x27, 0x06, 0x22, 0x27, 0x06, 0x23, 0x22, + 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x36, 0x33, 0x21, 0x32, 0x17, 0x03, 0x32, 0x37, 0x36, 0x37, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x16, + 0x17, 0x16, 0x33, 0x32, 0x37, 0x15, 0x21, 0x35, 0x16, 0x02, 0x5A, 0x1A, 0x26, 0x2F, 0x07, 0x07, 0x2C, 0x1D, 0x1E, 0x58, 0x1E, 0x1E, 0x58, 0x1E, 0x1D, + 0x2D, 0x06, 0x07, 0x2F, 0x26, 0x1A, 0x41, 0x09, 0x12, 0x01, 0x94, 0x12, 0x09, 0x07, 0x09, 0x09, 0x07, 0x09, 0x13, 0x0D, 0xFE, 0x40, 0x0D, 0x13, 0x09, + 0x07, 0x09, 0x09, 0x0D, 0x11, 0x01, 0x80, 0x10, 0x01, 0x49, 0x28, 0x5A, 0x06, 0x01, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x01, 0x06, 0x5A, 0x28, 0x68, + 0x0F, 0x0F, 0xFE, 0xEF, 0x01, 0x01, 0x03, 0xC5, 0x0D, 0x13, 0x13, 0x0D, 0xC5, 0x03, 0x01, 0x01, 0x04, 0x64, 0x64, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, + 0xFF, 0xFA, 0xFF, 0xC0, 0x02, 0x86, 0x01, 0xC0, 0x00, 0x0D, 0x00, 0x1B, 0x00, 0x25, 0x00, 0x00, 0x25, 0x35, 0x33, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x35, 0x11, 0x33, 0x15, 0x25, 0x16, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x33, 0x21, 0x32, 0x17, 0x03, 0x11, 0x33, 0x11, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x01, 0x40, 0x40, 0x13, 0x0D, 0xFF, 0x00, 0x0D, 0x13, 0x40, 0x01, 0xFB, 0x0A, 0x12, 0x13, 0xFD, 0xC0, 0x13, 0x12, 0x0B, 0x55, + 0x09, 0x11, 0x01, 0x96, 0x11, 0x09, 0x25, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0xA0, 0xFF, 0x00, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x00, 0xA0, 0xF2, + 0x10, 0x22, 0x22, 0x10, 0x80, 0x0E, 0x0E, 0xFE, 0x1E, 0x01, 0x10, 0xFE, 0xF0, 0x07, 0x09, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, + 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x00, 0x13, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x23, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x10, 0x07, 0x09, 0x09, 0x07, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, + 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0x60, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0x40, 0x09, 0x07, 0x40, 0x07, 0x09, + 0x09, 0x07, 0x40, 0x07, 0x09, 0x50, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0xB0, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, + 0x07, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0B, 0x00, 0x13, 0x00, 0xB0, 0x00, + 0xB4, 0x00, 0x00, 0x37, 0x17, 0x07, 0x27, 0x37, 0x07, 0x27, 0x37, 0x07, 0x37, 0x17, 0x07, 0x02, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x36, + 0x34, 0x2F, 0x01, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x27, 0x37, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x0F, + 0x01, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x07, 0x27, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x07, + 0x27, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x17, 0x07, 0x27, + 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x17, 0x07, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x1F, + 0x01, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x17, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x3F, 0x01, 0x36, + 0x2F, 0x01, 0x37, 0x17, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, + 0x27, 0x37, 0x17, 0x16, 0x37, 0x27, 0x37, 0x17, 0x07, 0xBC, 0x2D, 0x2D, 0x2D, 0x9E, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x6A, 0xD4, 0x96, 0x96, + 0xD4, 0x96, 0x01, 0xBB, 0x02, 0x02, 0x1D, 0x1D, 0x05, 0x05, 0x0C, 0x05, 0x06, 0x1C, 0x2E, 0x22, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x11, 0x06, + 0x06, 0x0B, 0x06, 0x06, 0x11, 0x11, 0x05, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x22, 0x2D, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x1C, 0x06, 0x06, 0x0B, + 0x06, 0x06, 0x1C, 0x2D, 0x22, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x05, 0x11, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, + 0x11, 0x21, 0x2D, 0x1C, 0x06, 0x05, 0x0C, 0x05, 0x05, 0x1D, 0x1D, 0x05, 0x05, 0x0C, 0x05, 0x06, 0x1C, 0x2E, 0x22, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, + 0x11, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x11, 0x05, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x22, 0x2D, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x1C, + 0x06, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x2D, 0x22, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x05, 0x11, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x11, 0x06, 0x06, + 0x0B, 0x06, 0x06, 0x11, 0x21, 0x2D, 0x1C, 0x06, 0x05, 0x98, 0x2D, 0x2D, 0x2D, 0xED, 0x2D, 0x2D, 0x2D, 0x44, 0x2D, 0x2D, 0x2D, 0xB5, 0x2D, 0x2D, 0x2D, + 0x01, 0x71, 0x96, 0xD4, 0x96, 0x96, 0xD4, 0x92, 0x03, 0x06, 0x03, 0x1C, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x2D, 0x22, 0x11, 0x06, 0x06, 0x0B, + 0x06, 0x05, 0x11, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x21, 0x2D, 0x1C, 0x06, 0x05, 0x0C, 0x05, 0x05, + 0x1D, 0x1D, 0x05, 0x05, 0x0C, 0x05, 0x06, 0x1C, 0x2E, 0x22, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x11, + 0x05, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x22, 0x2D, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x1C, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x1C, 0x2D, 0x22, 0x11, + 0x06, 0x06, 0x0B, 0x06, 0x05, 0x11, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x21, 0x2D, 0x1C, 0x06, 0x05, + 0x0C, 0x05, 0x05, 0x1D, 0x1D, 0x05, 0x05, 0x0C, 0x05, 0x06, 0x1C, 0x2E, 0x22, 0x11, 0x06, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x11, 0x06, 0x06, 0x0B, 0x06, + 0x06, 0x11, 0x11, 0x05, 0x06, 0x0B, 0x06, 0x06, 0x11, 0x22, 0x2D, 0x1C, 0x06, 0x06, 0x33, 0x2D, 0x2D, 0x2D, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, + 0x00, 0x01, 0xA0, 0x00, 0x2B, 0x00, 0x2F, 0x00, 0x4D, 0x00, 0x00, 0x25, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, + 0x23, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, + 0x1D, 0x01, 0x33, 0x32, 0x17, 0x27, 0x35, 0x23, 0x15, 0x17, 0x35, 0x33, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x33, 0x15, 0x14, 0x16, + 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x33, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x01, 0xF7, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x2E, 0x09, 0x0D, 0x33, 0x1C, 0x14, 0xA0, 0x14, 0x1C, 0x33, 0x0D, 0x09, 0x89, 0x80, 0xC0, 0x80, 0x13, 0x0D, 0xFE, + 0x40, 0x0D, 0x13, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0xE9, 0x09, 0x0D, 0x53, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, + 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x53, 0x0D, 0x09, 0x2E, 0x09, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0x50, 0x09, 0x09, 0x40, 0x40, 0xD0, 0x10, 0x60, 0x0D, + 0x13, 0x13, 0x0D, 0x60, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x10, 0x07, 0x09, 0x09, 0x00, 0x01, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x82, 0x01, 0xC0, 0x00, + 0x25, 0x00, 0x00, 0x01, 0x1E, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x26, 0x06, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x26, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x1E, 0x01, 0x32, 0x36, 0x37, 0x02, 0x77, 0x06, 0x04, 0x03, 0x39, 0x03, 0x0D, 0x05, + 0x39, 0x08, 0x0F, 0x13, 0x0D, 0xFF, 0x00, 0x0D, 0x13, 0x0F, 0x08, 0x39, 0x06, 0x0C, 0x03, 0x39, 0x03, 0x04, 0x06, 0xC3, 0x0F, 0x3F, 0x4C, 0x3F, 0x0F, + 0x01, 0x60, 0x03, 0x0D, 0x06, 0x72, 0x06, 0x05, 0x03, 0x1C, 0x04, 0x09, 0x09, 0xFE, 0x0D, 0x13, 0x13, 0x0D, 0xFE, 0x09, 0x09, 0x04, 0x1C, 0x03, 0x05, + 0x06, 0x72, 0x06, 0x0D, 0x03, 0x60, 0x15, 0x1A, 0x1A, 0x15, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xBD, 0x01, 0x43, 0x01, 0xC0, 0x00, 0x07, + 0x00, 0x3A, 0x00, 0x49, 0x00, 0x00, 0x12, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x17, 0x1E, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x26, 0x2F, 0x01, 0x07, + 0x17, 0x16, 0x1F, 0x01, 0x16, 0x0E, 0x01, 0x26, 0x2F, 0x01, 0x26, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x07, 0x06, 0x0F, 0x01, 0x0E, 0x01, 0x2E, 0x01, 0x3F, + 0x01, 0x36, 0x37, 0x3E, 0x06, 0x33, 0x32, 0x16, 0x1F, 0x01, 0x07, 0x37, 0x16, 0x17, 0x07, 0x06, 0x0F, 0x01, 0x06, 0x22, 0x26, 0x34, 0x3F, 0x01, 0x36, + 0xE4, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x2E, 0x0C, 0x09, 0x0C, 0x19, 0x0C, 0x17, 0x17, 0x09, 0x05, 0x11, 0x2D, 0x0B, 0x04, 0x16, 0x03, 0x0D, 0x1A, 0x17, + 0x03, 0x12, 0x04, 0x0B, 0x3C, 0x17, 0x08, 0x0F, 0x1A, 0x0C, 0x05, 0x07, 0x06, 0x18, 0x18, 0x08, 0x06, 0x06, 0x10, 0x22, 0x04, 0x15, 0x07, 0x11, 0x09, + 0x0E, 0x0E, 0x07, 0x23, 0x38, 0x0C, 0x09, 0xCD, 0x14, 0x08, 0x28, 0x0E, 0x05, 0x09, 0x3B, 0x0A, 0x1A, 0x13, 0x09, 0x32, 0x0A, 0x01, 0x60, 0x1C, 0x28, + 0x1C, 0x1C, 0x28, 0xB1, 0x06, 0x19, 0x18, 0x08, 0x06, 0x0B, 0x0C, 0x19, 0x11, 0x45, 0x32, 0x0B, 0x10, 0x59, 0x0D, 0x17, 0x06, 0x0D, 0x0D, 0x4A, 0x0F, + 0x0C, 0x42, 0x19, 0x22, 0x3C, 0x0B, 0x04, 0x0B, 0x0E, 0x0B, 0x09, 0x0C, 0x19, 0x0C, 0x0E, 0x20, 0x0E, 0x01, 0x09, 0x03, 0x06, 0x02, 0x03, 0x01, 0x2A, + 0x22, 0x1D, 0x99, 0x34, 0x0A, 0x2C, 0x22, 0x0C, 0x09, 0x3C, 0x09, 0x13, 0x1A, 0x0A, 0x32, 0x09, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, + 0xA0, 0x00, 0x1C, 0x00, 0x24, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, + 0x16, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x06, 0x14, 0x16, 0x33, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xCD, 0x15, 0x1E, 0x1E, 0x15, + 0xFE, 0x73, 0x1B, 0x25, 0x25, 0x1B, 0x01, 0x70, 0x14, 0x1C, 0x09, 0x07, 0xFE, 0x80, 0x07, 0x09, 0x09, 0x07, 0x01, 0x43, 0x1A, 0x13, 0x13, 0x1A, 0x13, + 0x01, 0x40, 0x1C, 0x14, 0xFF, 0x00, 0x14, 0x1C, 0x25, 0x1B, 0x01, 0x40, 0x1B, 0x25, 0x1C, 0x14, 0x07, 0x09, 0x09, 0x0E, 0x09, 0xD0, 0x13, 0x1A, 0x13, + 0x13, 0x1A, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x1F, 0x00, 0x2D, 0x00, 0x44, 0x00, 0x00, 0x12, 0x32, + 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x27, 0x3A, 0x01, 0x31, 0x32, 0x37, 0x36, 0x26, 0x2F, 0x01, 0x26, 0x0E, + 0x01, 0x16, 0x1F, 0x01, 0x06, 0x17, 0x16, 0x3E, 0x01, 0x27, 0x26, 0x22, 0x07, 0x06, 0x1E, 0x01, 0x37, 0x36, 0x32, 0x37, 0x3E, 0x01, 0x2E, 0x01, 0x0F, + 0x01, 0x0E, 0x01, 0x17, 0x16, 0x33, 0x32, 0x33, 0x06, 0x15, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x27, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x88, 0x13, + 0x1A, 0x13, 0x02, 0x01, 0x01, 0x0C, 0x03, 0x02, 0x06, 0x06, 0x50, 0x07, 0x0B, 0x04, 0x06, 0x07, 0x1E, 0x0A, 0xA8, 0x06, 0x12, 0x06, 0x06, 0x1F, 0x62, + 0x20, 0x06, 0x07, 0x11, 0x07, 0x15, 0x46, 0x62, 0x06, 0x06, 0x03, 0x0C, 0x06, 0x50, 0x07, 0x06, 0x02, 0x03, 0x0C, 0x01, 0x01, 0x02, 0x13, 0x1A, 0x13, + 0x0A, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x57, 0x0D, 0x13, 0x13, 0x0D, 0x02, 0x06, 0x0B, 0x07, 0x0B, 0x02, 0x18, 0x02, 0x06, 0x0D, 0x0B, 0x02, + 0x0A, 0x09, 0xA8, 0x08, 0x04, 0x10, 0x08, 0x26, 0x26, 0x07, 0x11, 0x03, 0x07, 0x19, 0xA2, 0x02, 0x0B, 0x0D, 0x06, 0x02, 0x18, 0x02, 0x0B, 0x07, 0x0B, + 0x05, 0x03, 0x0D, 0x13, 0x13, 0x0D, 0x0E, 0x09, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x22, 0x00, 0x32, + 0x00, 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x02, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x21, 0x11, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x33, 0x02, 0x30, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x38, 0x50, 0x38, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x10, 0x02, 0x00, 0x10, + 0x07, 0x09, 0x09, 0x07, 0xFD, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x10, 0xA0, 0x28, 0x38, 0x38, 0x28, 0xB0, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x60, 0xFE, 0xA0, 0x01, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x09, 0x00, + 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x04, 0x00, 0x09, 0x00, 0x10, 0x00, 0x15, 0x00, 0x1A, 0x00, 0x21, 0x00, 0x38, 0x00, 0x40, 0x00, 0x48, + 0x00, 0x00, 0x25, 0x06, 0x07, 0x36, 0x3F, 0x01, 0x23, 0x26, 0x27, 0x16, 0x27, 0x1E, 0x01, 0x17, 0x23, 0x3E, 0x01, 0x07, 0x06, 0x07, 0x23, 0x36, 0x17, + 0x26, 0x27, 0x33, 0x16, 0x37, 0x0E, 0x01, 0x07, 0x2E, 0x01, 0x27, 0x17, 0x14, 0x07, 0x06, 0x14, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x15, 0x06, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x13, 0x35, 0x21, 0x22, 0x06, 0x14, 0x16, 0x33, + 0x01, 0x3E, 0x08, 0x2D, 0x0C, 0x02, 0x27, 0x27, 0x02, 0x0C, 0x2D, 0x56, 0x07, 0x0F, 0x01, 0x2E, 0x01, 0x0F, 0x22, 0x0C, 0x02, 0x27, 0x08, 0x2D, 0x2D, + 0x08, 0x27, 0x02, 0x4C, 0x01, 0x0F, 0x07, 0x07, 0x0F, 0x01, 0xF7, 0x0A, 0x02, 0x02, 0x0A, 0x0F, 0x0B, 0xFE, 0xBA, 0x29, 0x37, 0x37, 0x29, 0x01, 0x46, + 0x1A, 0xAB, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x20, 0xFE, 0xE0, 0x0D, 0x13, 0x12, 0x0E, 0xF0, 0x31, 0x15, 0x1D, 0x29, 0x20, 0x29, 0x1D, 0x15, 0x1E, 0x07, + 0x2A, 0x1E, 0x1E, 0x2A, 0x02, 0x1D, 0x29, 0x31, 0x97, 0x15, 0x31, 0x29, 0x29, 0x1E, 0x2A, 0x07, 0x07, 0x2A, 0x1E, 0x96, 0x0F, 0x05, 0x09, 0x34, 0x0C, + 0x0A, 0x09, 0x10, 0x0C, 0x0E, 0x37, 0x29, 0x01, 0x40, 0x29, 0x37, 0x1A, 0x26, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0xFE, 0xCB, 0x40, 0x12, 0x1C, 0x12, 0x00, + 0x00, 0x04, 0xFF, 0xFD, 0xFF, 0xBE, 0x01, 0x83, 0x01, 0xC5, 0x00, 0x15, 0x00, 0x28, 0x00, 0x71, 0x00, 0x79, 0x00, 0x00, 0x37, 0x16, 0x33, 0x32, 0x37, + 0x07, 0x0E, 0x01, 0x2F, 0x01, 0x07, 0x22, 0x26, 0x3F, 0x01, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x05, 0x16, 0x06, 0x23, 0x27, 0x07, 0x06, 0x26, + 0x2F, 0x01, 0x16, 0x33, 0x32, 0x37, 0x3E, 0x01, 0x37, 0x36, 0x37, 0x07, 0x0E, 0x01, 0x27, 0x26, 0x22, 0x07, 0x06, 0x26, 0x27, 0x2E, 0x07, 0x27, 0x26, + 0x27, 0x2E, 0x01, 0x27, 0x26, 0x37, 0x36, 0x34, 0x27, 0x26, 0x37, 0x3E, 0x01, 0x37, 0x36, 0x37, 0x3E, 0x01, 0x37, 0x36, 0x17, 0x16, 0x32, 0x37, 0x36, + 0x17, 0x1E, 0x01, 0x17, 0x16, 0x17, 0x1E, 0x01, 0x17, 0x16, 0x07, 0x06, 0x14, 0x17, 0x16, 0x07, 0x0E, 0x01, 0x07, 0x06, 0x07, 0x0E, 0x06, 0x26, 0x14, + 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x61, 0x16, 0x1E, 0x12, 0x11, 0x34, 0x03, 0x11, 0x06, 0x25, 0x34, 0x09, 0x0A, 0x03, 0x2E, 0x0C, 0x0D, 0x03, 0x06, + 0x09, 0x04, 0x02, 0x01, 0x1F, 0x03, 0x0A, 0x09, 0x34, 0x25, 0x06, 0x11, 0x03, 0x34, 0x11, 0x12, 0x1E, 0x16, 0x06, 0x03, 0x10, 0x0D, 0x0C, 0x4A, 0x0A, + 0x1C, 0x0C, 0x09, 0x18, 0x09, 0x0C, 0x1C, 0x0A, 0x03, 0x04, 0x04, 0x04, 0x02, 0x07, 0x03, 0x09, 0x03, 0x16, 0x06, 0x06, 0x05, 0x0F, 0x11, 0x06, 0x06, + 0x06, 0x06, 0x11, 0x0F, 0x05, 0x06, 0x06, 0x16, 0x15, 0x09, 0x0F, 0x11, 0x16, 0x15, 0x0A, 0x15, 0x16, 0x11, 0x0F, 0x09, 0x15, 0x16, 0x06, 0x06, 0x05, + 0x0F, 0x11, 0x06, 0x06, 0x06, 0x06, 0x11, 0x0F, 0x05, 0x06, 0x06, 0x16, 0x03, 0x0A, 0x03, 0x07, 0x03, 0x05, 0x05, 0xA8, 0x37, 0x4E, 0x37, 0x37, 0x4E, + 0x55, 0x15, 0x0A, 0x80, 0x08, 0x03, 0x06, 0x26, 0x02, 0x0E, 0x08, 0x70, 0x0A, 0x04, 0x01, 0x01, 0x02, 0x05, 0x02, 0x57, 0x08, 0x0E, 0x02, 0x26, 0x06, + 0x03, 0x08, 0x80, 0x0A, 0x15, 0x07, 0x01, 0x04, 0x04, 0x0A, 0x03, 0x0A, 0x03, 0x07, 0x06, 0x06, 0x07, 0x03, 0x0A, 0x03, 0x04, 0x03, 0x03, 0x01, 0x02, + 0x01, 0x02, 0x01, 0x06, 0x17, 0x15, 0x09, 0x10, 0x11, 0x16, 0x16, 0x0A, 0x15, 0x17, 0x11, 0x0F, 0x09, 0x16, 0x16, 0x07, 0x05, 0x05, 0x10, 0x11, 0x06, + 0x06, 0x06, 0x06, 0x11, 0x10, 0x05, 0x05, 0x07, 0x16, 0x16, 0x09, 0x0F, 0x11, 0x17, 0x15, 0x0A, 0x16, 0x16, 0x11, 0x10, 0x09, 0x15, 0x17, 0x06, 0x01, + 0x02, 0x01, 0x03, 0x01, 0x04, 0x05, 0xC9, 0x50, 0x38, 0x38, 0x50, 0x38, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0x00, 0x00, 0x02, 0x80, 0x01, 0x80, 0x00, + 0x11, 0x00, 0x2D, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x05, 0x27, + 0x37, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x3F, 0x01, + 0x36, 0x02, 0x40, 0x1B, 0x25, 0x25, 0x1B, 0xFE, 0x8D, 0x1A, 0x13, 0x97, 0x09, 0x09, 0x97, 0x13, 0x1A, 0x01, 0x1E, 0x3E, 0x3E, 0x0C, 0x0C, 0x16, 0x0C, + 0x0B, 0x3E, 0x3E, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x3E, 0x3E, 0x0C, 0x0C, 0x16, 0x0C, 0x0B, 0x3E, 0x3E, 0x0B, 0x0C, 0x16, 0x0C, 0x01, 0x80, 0x25, 0x1B, + 0xFF, 0x00, 0x1B, 0x25, 0x13, 0x96, 0x0A, 0x1A, 0x0A, 0x96, 0x13, 0xFE, 0x3E, 0x3E, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x3E, 0x3E, 0x0C, 0x0C, 0x16, 0x0C, + 0x0B, 0x3E, 0x3E, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x3E, 0x3E, 0x0C, 0x0C, 0x16, 0x0C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, + 0xA0, 0x00, 0x0F, 0x00, 0x25, 0x00, 0x35, 0x00, 0x4B, 0x00, 0x5B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x33, 0x07, 0x15, 0x14, 0x17, 0x06, 0x07, 0x23, 0x3E, 0x01, 0x37, 0x23, 0x0E, 0x01, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x16, + 0x1F, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26, + 0x27, 0x23, 0x1E, 0x01, 0x17, 0x23, 0x26, 0x27, 0x36, 0x3D, 0x01, 0x33, 0x3E, 0x01, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x70, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x06, 0x36, 0x11, 0x32, 0x0B, 0x39, 0x2A, 0x50, + 0x07, 0x20, 0x14, 0x1B, 0x25, 0x25, 0x1B, 0x14, 0x20, 0x07, 0x25, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x02, 0x00, 0x1B, 0x25, 0x25, + 0x1B, 0x14, 0x20, 0x07, 0x50, 0x2A, 0x39, 0x0B, 0x32, 0x11, 0x36, 0x06, 0x55, 0x07, 0x20, 0x14, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, + 0x01, 0xA0, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x38, 0x48, 0x0E, 0x0C, 0x27, 0x3F, 0x30, 0x4F, 0x19, 0x12, 0x16, 0x25, 0x36, + 0x25, 0x16, 0x12, 0xE8, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x01, 0x10, 0x25, 0x36, 0x25, 0x16, 0x12, 0x19, 0x4F, 0x30, 0x3F, + 0x27, 0x0C, 0x0E, 0x48, 0x12, 0x16, 0xFE, 0xF0, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, + 0xC7, 0x01, 0xC1, 0x00, 0x31, 0x00, 0x3B, 0x00, 0x00, 0x05, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x36, 0x37, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x16, 0x17, 0x37, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, + 0x06, 0x2F, 0x01, 0x07, 0x16, 0x15, 0x14, 0x07, 0x06, 0x27, 0x06, 0x07, 0x21, 0x26, 0x2F, 0x01, 0x35, 0x23, 0x15, 0x01, 0x2E, 0xDC, 0x26, 0x12, 0x1A, + 0x34, 0x2C, 0x10, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x10, 0x15, 0x12, 0x27, 0x09, 0x0C, 0x0C, 0x0B, 0x0B, 0x0C, 0x34, 0x0C, 0x0C, + 0x0B, 0x0B, 0x0C, 0x09, 0x2B, 0x1B, 0x1A, 0x12, 0xDC, 0x25, 0x13, 0x01, 0x00, 0x13, 0x25, 0x18, 0x60, 0x40, 0x21, 0x2C, 0x33, 0x34, 0x59, 0x19, 0x9A, + 0x09, 0x07, 0x20, 0x06, 0x0A, 0x09, 0x07, 0x20, 0x06, 0x0A, 0x9A, 0x0C, 0x11, 0x27, 0x09, 0x0C, 0x0B, 0x0B, 0x0C, 0x0C, 0x34, 0x0C, 0x0B, 0x0B, 0x0C, + 0x0C, 0x09, 0x2B, 0x2E, 0x35, 0x33, 0x2C, 0x21, 0xFD, 0x16, 0x27, 0x27, 0x16, 0x0D, 0xB6, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, + 0x01, 0x80, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x1B, 0x00, 0x23, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x21, 0x35, 0x34, 0x36, 0x33, 0x03, 0x35, 0x21, + 0x15, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x16, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x01, 0x60, + 0x0D, 0x13, 0xFE, 0x80, 0x13, 0x0D, 0x20, 0x01, 0x80, 0x25, 0x1B, 0x40, 0x25, 0x36, 0x25, 0x40, 0x1B, 0x25, 0xCA, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x01, + 0xC0, 0x13, 0x0D, 0xE0, 0xE0, 0x0D, 0x13, 0xFE, 0xC0, 0x20, 0x20, 0x1B, 0x25, 0x40, 0x1B, 0x25, 0x25, 0x1B, 0x40, 0x25, 0x4D, 0x0E, 0x14, 0x0E, 0x0E, + 0x14, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x34, 0x00, 0x40, 0x00, 0x48, 0x00, 0x52, 0x00, 0x5C, 0x00, 0x64, 0x00, + 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, + 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, + 0x32, 0x16, 0x1D, 0x01, 0x25, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, + 0x35, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x02, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x01, 0xE8, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x0E, 0x0C, 0x06, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0xC0, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x0D, 0x13, 0x08, + 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x82, 0xBC, 0x82, 0xFE, 0xC0, 0x08, 0xB0, 0x08, 0x08, 0xB0, 0x08, 0x3D, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xA0, 0x70, 0x0D, + 0x13, 0x13, 0x0D, 0x90, 0x70, 0x0D, 0x13, 0x13, 0x0D, 0x70, 0x73, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0x40, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0xA6, 0x0B, + 0x0F, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x13, 0x0D, 0xA0, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, 0x30, 0x22, 0x2E, 0x2E, + 0x22, 0x30, 0x38, 0x10, 0x08, 0x08, 0x10, 0x08, 0xFE, 0xB0, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x5D, 0xA0, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, + 0x0D, 0x13, 0xFE, 0xF0, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x02, 0x01, 0xC0, 0x00, 0x59, 0x00, + 0x00, 0x25, 0x16, 0x14, 0x07, 0x06, 0x23, 0x22, 0x23, 0x16, 0x17, 0x16, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, + 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x37, 0x36, 0x37, 0x22, 0x23, 0x22, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x2E, 0x02, 0x27, 0x34, 0x35, + 0x34, 0x36, 0x33, 0x32, 0x17, 0x1E, 0x02, 0x17, 0x30, 0x34, 0x35, 0x34, 0x3E, 0x01, 0x37, 0x36, 0x32, 0x17, 0x1E, 0x02, 0x15, 0x14, 0x15, 0x3E, 0x02, + 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x07, 0x0E, 0x02, 0x07, 0x16, 0x01, 0xF7, 0x09, 0x09, 0x3C, 0x49, 0x09, 0x09, 0x0C, 0x05, 0x03, 0x07, 0x04, 0x07, + 0x02, 0x03, 0x25, 0x28, 0x08, 0x10, 0x08, 0x28, 0x25, 0x03, 0x02, 0x07, 0x04, 0x07, 0x03, 0x05, 0x0C, 0x09, 0x09, 0x49, 0x3C, 0x09, 0x09, 0x20, 0x2C, + 0x1C, 0x2B, 0x0B, 0x03, 0x09, 0x07, 0x02, 0x01, 0x0B, 0x22, 0x53, 0x21, 0x21, 0x16, 0x08, 0x04, 0x12, 0x04, 0x08, 0x16, 0x21, 0x21, 0x53, 0x22, 0x0B, + 0x01, 0x02, 0x07, 0x04, 0x07, 0x02, 0x03, 0x0B, 0x2B, 0x1C, 0x2D, 0x58, 0x05, 0x13, 0x05, 0x1F, 0x16, 0x11, 0x09, 0x07, 0x05, 0x01, 0x0C, 0x1B, 0x40, + 0x08, 0x08, 0x40, 0x1C, 0x0B, 0x01, 0x05, 0x07, 0x09, 0x11, 0x16, 0x1F, 0x05, 0x13, 0x05, 0x11, 0x09, 0x21, 0x56, 0x23, 0x0B, 0x02, 0x02, 0x06, 0x0A, + 0x01, 0x02, 0x0A, 0x29, 0x1A, 0x03, 0x01, 0x35, 0x70, 0x28, 0x0D, 0x07, 0x07, 0x0D, 0x28, 0x70, 0x35, 0x03, 0x01, 0x1A, 0x29, 0x0A, 0x02, 0x01, 0x05, + 0x06, 0x09, 0x0B, 0x23, 0x56, 0x21, 0x09, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x14, 0x00, 0x27, 0x00, + 0x00, 0x01, 0x16, 0x14, 0x07, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x17, 0x05, 0x27, 0x26, + 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x01, 0xF9, 0x07, 0x07, 0xFE, 0xD8, 0x07, 0x14, 0x07, + 0xA8, 0x07, 0x07, 0x28, 0x07, 0x14, 0x07, 0x6F, 0xF0, 0x06, 0x14, 0x07, 0xFE, 0xE4, 0x70, 0x0C, 0x0C, 0x2D, 0x05, 0x0D, 0x05, 0x37, 0x98, 0x04, 0x0D, + 0x05, 0x2D, 0x0C, 0x0C, 0xD0, 0x04, 0x0E, 0x01, 0x11, 0x07, 0x14, 0x07, 0xFE, 0xD8, 0x07, 0x07, 0xA8, 0x07, 0x14, 0x07, 0x28, 0x07, 0x07, 0x70, 0xF0, + 0x07, 0x07, 0x92, 0x70, 0x0C, 0x0B, 0x2D, 0x05, 0x05, 0x37, 0x97, 0x05, 0x05, 0x2D, 0x0B, 0x0C, 0xD0, 0x05, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFB, + 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x17, 0x00, 0x2D, 0x00, 0x00, 0x05, 0x32, 0x16, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x35, 0x34, 0x36, 0x3B, 0x01, + 0x35, 0x27, 0x26, 0x36, 0x33, 0x21, 0x32, 0x16, 0x0F, 0x01, 0x15, 0x13, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x27, 0x37, 0x16, 0x33, 0x32, 0x36, 0x34, + 0x26, 0x23, 0x22, 0x06, 0x07, 0x23, 0x3E, 0x01, 0x01, 0x28, 0x11, 0x17, 0x08, 0xF0, 0x08, 0x17, 0x11, 0x38, 0xA9, 0x0B, 0x0C, 0x11, 0x01, 0x6E, 0x11, + 0x0C, 0x0B, 0xA9, 0xC0, 0x3C, 0x54, 0x54, 0x3C, 0x28, 0x23, 0x24, 0x13, 0x14, 0x28, 0x38, 0x38, 0x28, 0x1A, 0x2C, 0x0D, 0x34, 0x0F, 0x4A, 0x10, 0x17, + 0x11, 0x08, 0x08, 0x11, 0x17, 0x7D, 0xA9, 0x0C, 0x1E, 0x1E, 0x0C, 0xA9, 0x7D, 0x01, 0xD0, 0x54, 0x78, 0x54, 0x15, 0x24, 0x09, 0x38, 0x50, 0x38, 0x1A, + 0x16, 0x2B, 0x35, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x19, 0x00, 0x29, 0x00, 0x00, 0x01, 0x1E, 0x01, 0x15, 0x21, 0x34, + 0x36, 0x37, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x13, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x20, 0x52, 0x6E, 0xFE, 0x40, 0x6E, 0x52, 0x10, 0x07, 0x09, 0x09, 0x07, 0x60, + 0x07, 0x09, 0x09, 0x07, 0x10, 0xD0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x09, 0x07, 0x01, 0x3D, 0x0B, 0x7E, 0x54, 0x54, 0x7E, 0x0B, 0x13, + 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0xFE, 0xF0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x04, + 0x00, 0x00, 0xFF, 0xBA, 0x02, 0x06, 0x01, 0xC6, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x00, 0x25, 0x16, 0x0F, 0x01, 0x06, 0x0F, 0x01, + 0x06, 0x2F, 0x01, 0x26, 0x2F, 0x01, 0x26, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x1F, 0x01, 0x16, 0x17, + 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, + 0xFE, 0x07, 0x13, 0x24, 0x13, 0x26, 0x45, 0x27, 0x2A, 0x4D, 0x2A, 0x1E, 0x37, 0x1F, 0x06, 0x0C, 0x02, 0x0E, 0x24, 0x13, 0x26, 0x45, 0x27, 0x2A, 0x4D, + 0x2A, 0x1E, 0x37, 0x1F, 0x06, 0xFE, 0xB1, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x33, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xB3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xC1, + 0x2A, 0x27, 0x45, 0x26, 0x13, 0x24, 0x13, 0x07, 0x0C, 0x06, 0x1F, 0x37, 0x1E, 0x2B, 0x4C, 0x0A, 0x0B, 0x20, 0x1C, 0x45, 0x26, 0x13, 0x24, 0x13, 0x07, + 0x0C, 0x06, 0x1F, 0x37, 0x1E, 0x2B, 0xBD, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x8D, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x93, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, + 0x04, 0x00, 0x00, 0xFF, 0xBA, 0x02, 0x05, 0x01, 0xC5, 0x00, 0x1E, 0x00, 0x26, 0x00, 0x2E, 0x00, 0x36, 0x00, 0x00, 0x25, 0x16, 0x0F, 0x01, 0x06, 0x0F, + 0x01, 0x06, 0x2F, 0x01, 0x26, 0x2F, 0x01, 0x26, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3F, 0x01, 0x36, 0x17, 0x1E, 0x01, 0x33, 0x14, 0x16, + 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, + 0xFF, 0x06, 0x13, 0x23, 0x14, 0x26, 0x45, 0x27, 0x2A, 0x4D, 0x2A, 0x1E, 0x37, 0x1F, 0x06, 0x0C, 0x02, 0x0E, 0x24, 0x13, 0x26, 0x45, 0x26, 0x2A, 0x01, + 0x4A, 0x35, 0x4A, 0xFE, 0xD9, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x33, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xB3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xC0, 0x2A, 0x26, + 0x45, 0x26, 0x13, 0x24, 0x13, 0x07, 0x0C, 0x06, 0x1F, 0x37, 0x1E, 0x2B, 0x4C, 0x0A, 0x0B, 0x20, 0x1C, 0x45, 0x26, 0x13, 0x24, 0x13, 0x07, 0x34, 0x4A, + 0x35, 0x4A, 0x71, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x8D, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x93, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x02, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x18, 0x00, 0x31, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x35, 0x11, 0x23, 0x35, 0x33, 0x32, 0x16, 0x15, 0x11, 0x01, 0x11, 0x33, 0x15, 0x23, 0x22, 0x26, 0x35, 0x11, 0x23, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x01, 0xE8, 0x0A, 0x0E, 0x0E, 0x0A, 0x28, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0xA0, + 0xE0, 0x0D, 0x13, 0xFE, 0xE0, 0xA0, 0xE0, 0x0D, 0x13, 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0x28, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x60, 0x0E, 0x0A, 0x30, 0x0A, + 0x0E, 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0x48, 0x60, 0x13, 0x0D, 0xFF, 0x00, 0x01, 0x48, 0xFE, 0xB8, 0x60, 0x13, 0x0D, 0x01, 0x00, 0x0E, 0x0A, 0x30, + 0x0A, 0x0E, 0x28, 0x0A, 0x0E, 0x0E, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x02, 0x80, 0x01, 0x60, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x27, 0x00, 0x33, + 0x00, 0x3F, 0x00, 0x4B, 0x00, 0x5B, 0x00, 0x67, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, + 0x33, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x27, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x15, + 0x17, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x15, 0x17, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x15, 0x17, + 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x15, 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, + 0x32, 0x36, 0x05, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x02, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0xFD, 0xC0, 0x0D, 0x13, 0x13, + 0x0D, 0x01, 0x10, 0x08, 0xE0, 0x08, 0x08, 0xE0, 0x08, 0xE8, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x40, 0x08, + 0x10, 0x08, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x28, 0x09, 0x07, 0xD0, 0x07, 0x09, 0x09, 0x07, 0xD0, 0x07, 0x09, 0x01, 0x10, + 0x08, 0xE0, 0x08, 0x08, 0xE0, 0x08, 0x01, 0x60, 0x13, 0x0D, 0xFF, 0x00, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x00, 0x0D, 0x13, 0xFF, 0x00, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x48, 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, + 0x08, 0x30, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x07, 0x09, 0x09, 0x79, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, + 0x01, 0xB8, 0x00, 0x07, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x3F, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x1F, 0x01, 0x16, 0x3E, 0x01, + 0x2F, 0x01, 0x37, 0x36, 0x2E, 0x01, 0x0F, 0x01, 0x27, 0x26, 0x0E, 0x01, 0x1F, 0x01, 0x07, 0x06, 0x1E, 0x01, 0x37, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x37, 0x27, 0x37, 0x36, 0x2E, 0x01, 0x0F, 0x01, 0x27, 0x26, 0x0E, 0x01, 0x1F, 0x01, 0x07, 0x06, 0x1E, 0x01, 0x3F, 0x01, 0x17, 0x16, 0x3E, + 0x01, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x98, 0x1D, 0x07, 0x11, 0x05, 0x07, 0x1C, 0x1C, 0x07, 0x06, 0x0F, 0x08, 0x1D, 0x1D, 0x07, 0x11, 0x05, 0x07, + 0x1C, 0x1C, 0x07, 0x05, 0x10, 0x08, 0x63, 0x34, 0x26, 0x26, 0x34, 0x26, 0xD3, 0x1C, 0x1C, 0x07, 0x06, 0x0F, 0x08, 0x1D, 0x1D, 0x07, 0x11, 0x05, 0x07, + 0x1C, 0x1C, 0x07, 0x05, 0x10, 0x08, 0x1D, 0x1D, 0x07, 0x11, 0x05, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x3E, 0x1C, 0x07, 0x06, 0x0F, 0x08, 0x1D, + 0x1D, 0x07, 0x11, 0x05, 0x07, 0x1C, 0x1C, 0x07, 0x06, 0x0F, 0x08, 0x1D, 0x1D, 0x07, 0x11, 0x04, 0x06, 0xAD, 0x26, 0x34, 0x26, 0x26, 0x34, 0x9D, 0x1D, + 0x1D, 0x07, 0x11, 0x05, 0x07, 0x1C, 0x1C, 0x07, 0x06, 0x0F, 0x08, 0x1D, 0x1D, 0x07, 0x11, 0x04, 0x06, 0x1C, 0x1C, 0x07, 0x06, 0x0F, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xFF, 0xBE, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x08, 0x00, 0x3D, 0x00, 0x45, 0x00, 0x00, 0x25, 0x17, 0x07, 0x0E, 0x01, 0x2F, 0x02, + 0x36, 0x37, 0x0E, 0x01, 0x23, 0x22, 0x27, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x01, 0x37, 0x26, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x17, 0x16, 0x17, 0x37, + 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x17, 0x06, 0x07, 0x27, 0x30, 0x22, 0x30, 0x22, 0x31, 0x07, 0x16, 0x33, 0x32, 0x36, 0x37, 0x36, + 0x1F, 0x01, 0x1E, 0x01, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x01, 0xC9, 0x37, 0x07, 0x01, 0x0E, 0x07, 0x36, 0x37, 0x2C, 0x52, 0x28, 0x82, + 0x4A, 0x34, 0x32, 0x47, 0x36, 0x07, 0x0E, 0x01, 0x07, 0x47, 0x21, 0x17, 0x03, 0x03, 0x06, 0x1C, 0x0C, 0x09, 0x0E, 0x14, 0x44, 0x0C, 0x38, 0x50, 0x38, + 0x0C, 0x34, 0x23, 0x30, 0x33, 0x02, 0x02, 0x43, 0x23, 0x22, 0x39, 0x64, 0x1F, 0x08, 0x0D, 0x1C, 0x06, 0x04, 0xEA, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x68, + 0x60, 0x3A, 0x08, 0x08, 0x03, 0x17, 0x5F, 0x11, 0x7E, 0x3E, 0x48, 0x13, 0x7B, 0x17, 0x03, 0x08, 0x08, 0x3A, 0x7C, 0x1C, 0x22, 0x06, 0x0D, 0x03, 0x10, + 0x08, 0x0D, 0x15, 0x12, 0x76, 0x16, 0x18, 0x28, 0x38, 0x38, 0x28, 0x18, 0x16, 0x59, 0x24, 0x0D, 0x58, 0x74, 0x0C, 0x37, 0x2F, 0x0D, 0x07, 0x0F, 0x04, + 0x0D, 0xB4, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x01, 0x01, 0xA1, 0x00, 0x33, 0x00, 0x4A, 0x00, 0x00, 0x01, + 0x16, 0x1D, 0x01, 0x14, 0x07, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x06, 0x07, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x26, 0x27, 0x35, 0x34, + 0x26, 0x22, 0x06, 0x1D, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x3E, 0x03, 0x33, 0x32, 0x17, 0x37, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x07, 0x04, + 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x07, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x26, 0x23, 0x22, 0x06, 0x14, 0x01, 0xAF, 0x51, + 0x48, 0x0E, 0x14, 0x0E, 0x34, 0x3C, 0x0E, 0x14, 0x0E, 0x3C, 0x34, 0x0E, 0x14, 0x0E, 0x48, 0x30, 0x3E, 0x52, 0x2D, 0x13, 0x39, 0x37, 0x6E, 0x04, 0x05, + 0x09, 0x04, 0x09, 0x03, 0x07, 0xFE, 0xB1, 0xAC, 0x7A, 0x2E, 0x28, 0x76, 0x05, 0x04, 0x09, 0x05, 0x09, 0x02, 0x07, 0x49, 0x1A, 0x18, 0x56, 0x7A, 0x01, + 0x46, 0x1D, 0x39, 0xA0, 0x2E, 0x20, 0x66, 0x0A, 0x0E, 0x0E, 0x0A, 0x77, 0x0F, 0x02, 0x68, 0x0A, 0x0E, 0x0E, 0x0A, 0x68, 0x02, 0x0F, 0x77, 0x0A, 0x0E, + 0x0E, 0x0A, 0x66, 0x20, 0x2E, 0xA0, 0x1E, 0x2D, 0x16, 0x0D, 0x02, 0x0A, 0x47, 0x03, 0x07, 0x0D, 0x04, 0x05, 0x09, 0x05, 0xC5, 0x25, 0x1B, 0x10, 0x1B, + 0x09, 0x4D, 0x03, 0x08, 0x0D, 0x04, 0x05, 0x08, 0x05, 0x2F, 0x02, 0x26, 0x35, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x40, 0x01, + 0xA0, 0x00, 0x0B, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x28, 0x00, 0x33, 0x00, 0x00, 0x12, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x17, 0x36, 0x2F, 0x01, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x17, 0x36, 0x16, 0x32, 0x37, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x37, 0x35, 0x26, 0x22, 0x07, 0x15, + 0x14, 0x16, 0x32, 0x36, 0x17, 0x3E, 0x01, 0x35, 0x34, 0x26, 0x27, 0x07, 0x06, 0x17, 0x16, 0xA9, 0xEE, 0xA9, 0xA9, 0xEE, 0xA9, 0xCD, 0x08, 0x0F, 0x1A, + 0x38, 0x44, 0x46, 0x3B, 0x15, 0x3C, 0x3C, 0x1F, 0x06, 0x22, 0x2A, 0x22, 0x06, 0x7D, 0x20, 0x40, 0x20, 0x26, 0x34, 0x26, 0x2F, 0x3A, 0x47, 0x44, 0x38, + 0x1A, 0x0F, 0x08, 0x06, 0x01, 0xA0, 0x4B, 0x35, 0xC0, 0x35, 0x4B, 0x4B, 0x35, 0xC0, 0x35, 0x53, 0x1D, 0x1B, 0x2C, 0x0A, 0x26, 0x16, 0x17, 0x26, 0x0A, + 0x10, 0x19, 0x03, 0x14, 0x19, 0x19, 0x14, 0x8D, 0x0D, 0x03, 0x03, 0x0D, 0x1A, 0x26, 0x26, 0x6D, 0x0A, 0x26, 0x17, 0x16, 0x26, 0x0A, 0x2C, 0x1B, 0x1D, + 0x19, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x20, 0x00, 0x00, 0x01, 0x06, 0x0F, 0x01, 0x33, 0x06, 0x0F, 0x01, 0x33, 0x06, + 0x07, 0x06, 0x23, 0x07, 0x06, 0x22, 0x26, 0x34, 0x37, 0x01, 0x36, 0x26, 0x0F, 0x01, 0x36, 0x37, 0x3E, 0x06, 0x02, 0x00, 0x09, 0x2D, 0x6A, 0x51, 0x0E, + 0x10, 0x93, 0x65, 0x3A, 0x4B, 0x3E, 0x40, 0x39, 0x07, 0x14, 0x0E, 0x07, 0x01, 0x04, 0x0B, 0x17, 0x0B, 0xB3, 0x02, 0x04, 0x05, 0x32, 0x44, 0x5B, 0x4F, + 0x56, 0x2C, 0x01, 0xC0, 0x7D, 0x6E, 0x35, 0x19, 0x16, 0x31, 0x31, 0x08, 0x07, 0x39, 0x07, 0x0E, 0x14, 0x07, 0x01, 0x03, 0x0C, 0x16, 0x0B, 0xB3, 0x2E, + 0x22, 0x33, 0x57, 0x38, 0x2E, 0x18, 0x12, 0x05, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x1D, 0x00, 0x29, + 0x00, 0x54, 0x00, 0x5D, 0x00, 0x00, 0x13, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x07, + 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x13, 0x22, + 0x27, 0x2E, 0x01, 0x07, 0x27, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3F, 0x01, 0x17, 0x16, 0x17, + 0x32, 0x31, 0x32, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x34, 0x26, 0x23, 0x13, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x33, 0x32, 0x17, + 0xE0, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0xA0, 0x08, 0x50, 0x08, 0x08, 0x50, 0x08, 0x08, 0x50, 0x08, 0x08, 0x50, + 0x08, 0xC1, 0x07, 0x03, 0x09, 0x2B, 0x0E, 0x0E, 0x06, 0x22, 0x06, 0x12, 0x03, 0x08, 0x0C, 0x07, 0x09, 0x09, 0x07, 0x0C, 0x0E, 0x17, 0x04, 0x0B, 0x11, + 0x03, 0x0B, 0x01, 0x0A, 0x04, 0x08, 0x03, 0x0E, 0x03, 0x0C, 0x1B, 0x2F, 0x07, 0x09, 0x09, 0x07, 0x49, 0x07, 0x80, 0x06, 0x0A, 0x07, 0x01, 0x38, 0x0A, + 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0x48, 0x10, 0x08, 0x08, 0x10, 0x08, 0x48, 0x10, 0x08, 0x08, 0x10, 0x08, 0xFF, 0x00, + 0x06, 0x12, 0x09, 0x0C, 0x29, 0x11, 0x11, 0x36, 0x08, 0x09, 0x0E, 0x09, 0x10, 0x0E, 0x1F, 0x32, 0x0A, 0x01, 0x09, 0x0F, 0x06, 0x06, 0x18, 0x09, 0x0E, + 0x09, 0x01, 0x17, 0x07, 0x0A, 0x06, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x27, + 0x00, 0x30, 0x00, 0x00, 0x13, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x13, 0x36, 0x26, + 0x2B, 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x22, 0x06, 0x1F, 0x01, 0x16, 0x32, 0x37, 0x13, 0x16, 0x1D, 0x01, 0x23, 0x35, + 0x33, 0x32, 0x17, 0xE0, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0x4C, 0x08, 0x08, 0x0B, 0x41, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x41, 0x0B, 0x08, 0x08, 0x60, 0x05, 0x0E, 0x05, 0xAD, 0x07, 0x80, 0x06, 0x0A, 0x07, 0x01, 0x38, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, + 0x01, 0xD0, 0x0A, 0x0E, 0xFE, 0xA5, 0x07, 0x14, 0x50, 0x07, 0x09, 0x09, 0x07, 0x50, 0x14, 0x07, 0x60, 0x05, 0x05, 0x01, 0x52, 0x07, 0x0A, 0x06, 0x80, + 0x07, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x47, 0x01, 0xC0, 0x00, 0x08, 0x00, 0x17, 0x00, 0x33, 0x00, 0x00, 0x01, 0x15, 0x23, 0x35, 0x33, 0x32, + 0x1F, 0x01, 0x16, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x23, 0x35, 0x33, 0x35, 0x34, 0x36, 0x17, 0x05, 0x14, 0x16, 0x3B, 0x01, 0x15, 0x14, + 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x06, 0x15, 0x01, 0x80, 0x80, 0x06, + 0x0A, 0x07, 0x62, 0x07, 0xBB, 0x0C, 0x0C, 0x60, 0x07, 0x14, 0x40, 0x40, 0x14, 0x07, 0xFE, 0xE5, 0x09, 0x07, 0xB0, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, + 0x0E, 0x0A, 0xC8, 0x0E, 0x0A, 0x88, 0xB0, 0x07, 0x09, 0x01, 0x46, 0x06, 0x80, 0x07, 0x62, 0x07, 0xC4, 0x0C, 0x0C, 0x60, 0x08, 0x08, 0x0B, 0x41, 0x40, + 0x41, 0x0B, 0x08, 0x08, 0x7C, 0x07, 0x09, 0x88, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0x88, 0x0A, 0x0E, 0x80, 0x09, 0x07, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x12, 0x00, 0x33, 0x00, 0x00, 0x37, 0x33, 0x15, 0x23, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x25, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x33, 0x32, 0x17, 0x07, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, + 0x33, 0x15, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x26, 0x06, 0x1D, 0x01, 0x23, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x10, 0x70, 0x70, 0x07, 0x09, 0x09, + 0x01, 0xF0, 0x07, 0x80, 0x06, 0x0A, 0x07, 0x37, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x80, 0x14, 0x07, 0x60, 0x0C, 0x0C, 0x60, 0x07, + 0x14, 0x80, 0x0E, 0x0A, 0xC8, 0xA0, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0xB7, 0x07, 0x0A, 0x06, 0x80, 0x07, 0x81, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, + 0x0E, 0x0A, 0x88, 0x41, 0x0B, 0x08, 0x08, 0x60, 0x0C, 0x0C, 0x60, 0x08, 0x08, 0x0B, 0x41, 0x01, 0x08, 0x0A, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x03, 0x00, 0x0C, 0x00, 0x1E, 0x00, 0x2A, 0x00, 0x36, 0x00, 0x42, 0x00, 0x52, 0x00, 0x00, 0x25, 0x15, + 0x23, 0x35, 0x25, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x33, 0x32, 0x17, 0x07, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, + 0x34, 0x36, 0x3B, 0x01, 0x07, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, + 0x2B, 0x01, 0x22, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, + 0x16, 0x3B, 0x01, 0x32, 0x36, 0x35, 0x01, 0x20, 0xC0, 0x01, 0x19, 0x07, 0x80, 0x06, 0x0A, 0x07, 0x37, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, + 0x0E, 0x0E, 0x0A, 0xC8, 0xA0, 0x08, 0x50, 0x08, 0x08, 0x50, 0x08, 0x08, 0x50, 0x08, 0x08, 0x50, 0x08, 0x01, 0x00, 0x08, 0x50, 0x08, 0x08, 0x50, 0x08, + 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0xC0, 0x40, 0x40, 0x97, 0x07, 0x0A, 0x06, 0x80, 0x07, 0x81, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, + 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0x48, 0x10, 0x08, 0x08, 0x10, 0x08, 0x48, 0x10, 0x08, 0x08, 0x10, 0x08, 0xFE, 0xC8, 0x10, 0x08, 0x08, 0x10, + 0x08, 0xD0, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x08, + 0x00, 0x1A, 0x00, 0x26, 0x00, 0x32, 0x00, 0x6C, 0x00, 0x00, 0x01, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x33, 0x32, 0x17, 0x07, 0x14, 0x16, 0x3B, 0x01, 0x11, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x07, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x15, + 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x15, 0x13, 0x3E, 0x01, 0x35, 0x34, 0x26, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x27, 0x26, 0x27, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x1F, 0x01, 0x16, 0x15, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x17, 0x16, 0x17, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x35, 0x01, 0x79, 0x07, 0x80, 0x06, 0x0A, + 0x07, 0x37, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0xA0, 0x08, 0x50, 0x08, 0x08, 0x50, 0x08, 0x08, 0x50, 0x08, 0x08, + 0x50, 0x08, 0x90, 0x12, 0x19, 0x12, 0x0E, 0x2D, 0x09, 0x07, 0x05, 0x1C, 0x07, 0x06, 0x06, 0x04, 0x0C, 0x07, 0x08, 0x0E, 0x11, 0x08, 0x10, 0x08, 0x12, + 0x19, 0x12, 0x0E, 0x2D, 0x09, 0x07, 0x05, 0x1C, 0x07, 0x06, 0x06, 0x04, 0x0C, 0x07, 0x08, 0x0E, 0x11, 0x08, 0x10, 0x08, 0x01, 0x57, 0x07, 0x0A, 0x06, + 0x80, 0x07, 0x81, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0x48, 0x10, 0x08, 0x08, 0x10, 0x08, 0x58, 0x08, 0x08, 0x10, + 0x08, 0x08, 0xFE, 0xE8, 0x01, 0x1A, 0x12, 0x0F, 0x18, 0x05, 0x0D, 0x03, 0x0A, 0x05, 0x08, 0x04, 0x03, 0x04, 0x0B, 0x07, 0x05, 0x0B, 0x01, 0x18, 0x08, + 0x08, 0x18, 0x01, 0x1A, 0x12, 0x0F, 0x18, 0x05, 0x0D, 0x03, 0x0A, 0x05, 0x08, 0x04, 0x03, 0x04, 0x0B, 0x07, 0x05, 0x0B, 0x01, 0x18, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x3B, 0x00, 0x43, 0x00, 0x4C, 0x00, 0x00, 0x13, 0x14, 0x16, 0x3B, + 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x13, 0x26, 0x0F, 0x01, 0x27, 0x36, 0x35, 0x34, 0x26, 0x2B, 0x01, + 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x33, 0x17, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x3F, 0x01, + 0x36, 0x2F, 0x01, 0x37, 0x36, 0x2F, 0x01, 0x23, 0x35, 0x33, 0x32, 0x16, 0x14, 0x06, 0x37, 0x15, 0x23, 0x35, 0x33, 0x32, 0x1F, 0x01, 0x16, 0xE0, 0x0E, + 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0x45, 0x0C, 0x0B, 0x1E, 0x21, 0x21, 0x25, 0x1B, 0x50, 0x07, 0x09, 0x09, 0x07, 0x10, + 0x07, 0x09, 0x13, 0x3B, 0x1E, 0x0B, 0x0B, 0x0B, 0x0C, 0x0B, 0x1E, 0x1E, 0x0B, 0x0C, 0x0B, 0x0B, 0x0B, 0x1E, 0x1E, 0x0B, 0x0B, 0x80, 0x30, 0x30, 0x07, + 0x09, 0x09, 0xC9, 0x80, 0x06, 0x0A, 0x07, 0x62, 0x07, 0x01, 0x38, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0xFE, 0xC5, + 0x0B, 0x0B, 0x1E, 0x21, 0x12, 0x26, 0x1B, 0x25, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x30, 0x3B, 0x1E, 0x0C, 0x0B, 0x0B, 0x0C, 0x0C, 0x1E, 0x1E, + 0x0C, 0x0C, 0x0B, 0x0B, 0x0C, 0x1E, 0x1E, 0x0B, 0x0B, 0x37, 0x20, 0x09, 0x0E, 0x09, 0x96, 0x06, 0x80, 0x07, 0x62, 0x07, 0x00, 0x00, 0x04, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x41, 0x01, 0xC0, 0x00, 0x36, 0x00, 0x3F, 0x00, 0x44, 0x00, 0x4E, 0x00, 0x00, 0x37, 0x16, 0x17, 0x33, 0x15, 0x14, 0x06, 0x23, 0x21, + 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x15, 0x07, 0x15, 0x26, 0x27, 0x2E, 0x01, 0x07, 0x27, 0x26, 0x22, 0x0F, + 0x01, 0x06, 0x2B, 0x01, 0x22, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3F, 0x01, 0x17, 0x1E, 0x01, 0x3F, 0x01, 0x36, 0x32, 0x13, 0x15, 0x23, 0x35, + 0x33, 0x32, 0x1F, 0x01, 0x16, 0x07, 0x37, 0x17, 0x07, 0x23, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x27, 0x37, 0x36, 0x32, 0x17, 0xDA, 0x0C, 0x1A, 0x80, 0x0E, + 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, 0xC8, 0x0E, 0x0A, 0x88, 0x80, 0x06, 0x03, 0x09, 0x2B, 0x0E, 0x0E, 0x06, 0x22, 0x06, 0x12, 0x03, 0x08, 0x0C, + 0x07, 0x09, 0x09, 0x07, 0x0C, 0x0E, 0x17, 0x04, 0x0B, 0x11, 0x03, 0x16, 0x04, 0x08, 0x03, 0x0E, 0xA9, 0x80, 0x06, 0x0A, 0x07, 0x62, 0x07, 0x60, 0xA3, + 0x44, 0xA2, 0x45, 0x01, 0x19, 0x07, 0x07, 0x1C, 0x44, 0x1C, 0x07, 0x15, 0x08, 0x18, 0x17, 0x01, 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, + 0x88, 0x0A, 0x0E, 0x2F, 0x7F, 0x52, 0x01, 0x05, 0x12, 0x09, 0x0C, 0x29, 0x11, 0x11, 0x36, 0x08, 0x09, 0x0E, 0x09, 0x10, 0x0E, 0x1F, 0x32, 0x0A, 0x02, + 0x0A, 0x0F, 0x06, 0x01, 0x28, 0x06, 0x80, 0x07, 0x62, 0x07, 0xEB, 0xA2, 0x44, 0xA3, 0xF9, 0x08, 0x15, 0x07, 0x1C, 0x44, 0x1C, 0x07, 0x07, 0x00, 0x00, + 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x27, 0x00, 0x30, 0x00, 0x00, 0x13, 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x13, 0x32, 0x36, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x16, 0x3B, 0x01, 0x15, 0x14, + 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x37, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x33, 0x32, 0x17, 0xE0, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, + 0x0E, 0x0E, 0x0A, 0xC8, 0x41, 0x0B, 0x08, 0x08, 0x60, 0x05, 0x0E, 0x05, 0x60, 0x08, 0x08, 0x0B, 0x41, 0x09, 0x07, 0x20, 0x07, 0x09, 0x99, 0x07, 0x80, + 0x06, 0x0A, 0x07, 0x01, 0x38, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0xFE, 0xA0, 0x14, 0x07, 0x60, 0x05, 0x05, 0x60, + 0x07, 0x14, 0x50, 0x07, 0x09, 0x09, 0x07, 0x50, 0xF7, 0x07, 0x0A, 0x06, 0x80, 0x07, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC7, 0x00, + 0x17, 0x00, 0x26, 0x00, 0x00, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, + 0x37, 0x36, 0x32, 0x17, 0x13, 0x37, 0x27, 0x07, 0x17, 0x16, 0x14, 0x06, 0x22, 0x2F, 0x01, 0x0F, 0x01, 0x06, 0x07, 0x01, 0xF7, 0x09, 0x09, 0xDE, 0x1C, + 0x50, 0x1C, 0x75, 0x1C, 0x1C, 0x5F, 0x56, 0x0C, 0x0C, 0x16, 0x0C, 0x0B, 0x56, 0x52, 0x09, 0x1B, 0x09, 0x5B, 0x31, 0xA3, 0x3B, 0x3B, 0x09, 0x12, 0x1B, + 0x09, 0x3B, 0x51, 0x0E, 0x05, 0x02, 0xE7, 0x09, 0x1B, 0x09, 0xDE, 0x1C, 0x1C, 0x75, 0x1C, 0x50, 0x1C, 0x5F, 0x56, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x56, + 0x52, 0x09, 0x09, 0xFE, 0xE9, 0x30, 0xA3, 0x3B, 0x3B, 0x09, 0x1B, 0x12, 0x09, 0x3B, 0x52, 0x0D, 0x05, 0x07, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC7, 0x00, 0x0A, 0x00, 0x22, 0x00, 0x31, 0x00, 0x00, 0x25, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, + 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x17, 0x13, + 0x37, 0x27, 0x07, 0x17, 0x16, 0x14, 0x06, 0x22, 0x2F, 0x01, 0x0F, 0x01, 0x06, 0x07, 0x02, 0x00, 0x40, 0x25, 0x36, 0x25, 0x20, 0x10, 0x07, 0x09, 0x09, + 0xDE, 0x1C, 0x50, 0x1C, 0x75, 0x1C, 0x1C, 0x5F, 0x56, 0x0C, 0x0C, 0x16, 0x0C, 0x0B, 0x56, 0x52, 0x09, 0x1B, 0x09, 0x5B, 0x31, 0xA3, 0x3B, 0x3B, 0x09, + 0x12, 0x1B, 0x09, 0x3B, 0x51, 0x0E, 0x05, 0x02, 0x80, 0x5D, 0x23, 0x1B, 0x25, 0x25, 0x1B, 0x10, 0x40, 0x18, 0x7F, 0x09, 0x1B, 0x09, 0xDE, 0x1C, 0x1C, + 0x75, 0x1C, 0x50, 0x1C, 0x5F, 0x56, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x56, 0x52, 0x09, 0x09, 0xFE, 0xE9, 0x30, 0xA3, 0x3B, 0x3B, 0x09, 0x1B, 0x12, 0x09, + 0x3B, 0x52, 0x0D, 0x05, 0x07, 0x00, 0x00, 0x06, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x01, 0x01, 0xC2, 0x00, 0x0D, 0x00, 0x2D, 0x00, 0x41, 0x00, 0x5C, 0x00, + 0x6B, 0x00, 0x88, 0x00, 0x00, 0x36, 0x32, 0x16, 0x15, 0x16, 0x07, 0x06, 0x23, 0x22, 0x26, 0x37, 0x36, 0x27, 0x34, 0x37, 0x1E, 0x01, 0x15, 0x16, 0x07, + 0x0E, 0x02, 0x27, 0x2E, 0x01, 0x37, 0x36, 0x27, 0x34, 0x26, 0x27, 0x22, 0x06, 0x15, 0x16, 0x07, 0x0E, 0x01, 0x2E, 0x01, 0x37, 0x36, 0x27, 0x26, 0x36, + 0x26, 0x1E, 0x01, 0x07, 0x06, 0x17, 0x16, 0x07, 0x14, 0x0E, 0x01, 0x27, 0x2E, 0x01, 0x37, 0x36, 0x27, 0x26, 0x37, 0x36, 0x37, 0x1E, 0x01, 0x17, 0x14, + 0x15, 0x14, 0x07, 0x0E, 0x01, 0x27, 0x2E, 0x01, 0x37, 0x36, 0x27, 0x2E, 0x01, 0x27, 0x22, 0x07, 0x06, 0x2E, 0x01, 0x36, 0x37, 0x36, 0x05, 0x16, 0x15, + 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x27, 0x26, 0x3E, 0x01, 0x16, 0x27, 0x16, 0x0E, 0x01, 0x26, 0x27, 0x2E, 0x01, 0x27, 0x26, 0x07, 0x06, 0x17, + 0x15, 0x14, 0x06, 0x23, 0x30, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x26, 0x37, 0x36, 0x17, 0x1E, 0x01, 0xF6, 0x14, 0x0E, 0x02, 0x1F, 0x05, 0x12, 0x0F, 0x0B, + 0x02, 0x1E, 0x02, 0x17, 0x2B, 0x3E, 0x01, 0x0C, 0x01, 0x04, 0x0E, 0x09, 0x09, 0x0C, 0x02, 0x0B, 0x01, 0x22, 0x17, 0x19, 0x1E, 0x01, 0x0F, 0x02, 0x11, + 0x13, 0x0B, 0x02, 0x0E, 0x01, 0x01, 0x3B, 0x49, 0x0F, 0x02, 0x06, 0x1D, 0x01, 0x01, 0x0B, 0x05, 0x0E, 0x09, 0x09, 0x0C, 0x02, 0x0A, 0x01, 0x01, 0x28, + 0x06, 0x89, 0x4C, 0x6D, 0x01, 0x06, 0x01, 0x0E, 0x0B, 0x0A, 0x0D, 0x02, 0x06, 0x01, 0x01, 0x51, 0x39, 0x12, 0x10, 0x09, 0x11, 0x05, 0x0B, 0x09, 0x18, + 0x01, 0x12, 0x06, 0x0E, 0x0A, 0x0A, 0x0E, 0x05, 0x02, 0x0B, 0x13, 0x11, 0x26, 0x06, 0x04, 0x10, 0x14, 0x05, 0x1E, 0x5D, 0x34, 0x58, 0x3C, 0x39, 0x01, + 0x0E, 0x0A, 0x01, 0x0A, 0x0D, 0x01, 0x47, 0x4B, 0x6C, 0x3F, 0x71, 0xCA, 0x0E, 0x0A, 0x72, 0x6E, 0x12, 0x15, 0x09, 0x69, 0x6B, 0x0A, 0x60, 0x01, 0x3C, + 0x2A, 0x4D, 0x4B, 0x04, 0x09, 0x08, 0x01, 0x02, 0x10, 0x0A, 0x47, 0x48, 0x17, 0x20, 0x01, 0x20, 0x15, 0x4D, 0x4C, 0x09, 0x0B, 0x04, 0x10, 0x0A, 0x46, + 0x49, 0x29, 0x3C, 0x1A, 0x0D, 0x13, 0x08, 0x23, 0x2E, 0x3E, 0x3C, 0x03, 0x09, 0x08, 0x01, 0x02, 0x10, 0x0A, 0x37, 0x39, 0x3F, 0x31, 0x08, 0x3A, 0x01, + 0x6B, 0x4A, 0x0A, 0x03, 0x36, 0x35, 0x08, 0x0E, 0x01, 0x01, 0x10, 0x0A, 0x38, 0x39, 0x37, 0x4F, 0x01, 0x04, 0x02, 0x0A, 0x14, 0x11, 0x02, 0x05, 0x7A, + 0x1C, 0x2C, 0x0A, 0x0E, 0x0F, 0x09, 0x27, 0x17, 0x0A, 0x11, 0x04, 0x0B, 0x51, 0x08, 0x14, 0x0B, 0x03, 0x09, 0x2A, 0x31, 0x01, 0x01, 0x3C, 0x39, 0x52, + 0x18, 0x09, 0x0E, 0x0F, 0x0A, 0x15, 0x66, 0x48, 0x4A, 0x01, 0x01, 0x3C, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFE, 0x00, 0x20, 0x02, 0x40, 0x01, 0x60, 0x00, + 0x18, 0x00, 0x20, 0x00, 0x00, 0x01, 0x32, 0x1E, 0x02, 0x14, 0x0E, 0x02, 0x23, 0x22, 0x26, 0x27, 0x07, 0x06, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x1F, + 0x01, 0x3E, 0x01, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x47, 0x30, 0x61, 0x40, 0x28, 0x28, 0x40, 0x61, 0x30, 0x3E, 0x70, 0x26, 0x58, + 0x09, 0x14, 0x02, 0x19, 0x19, 0x02, 0x14, 0x0A, 0x57, 0x26, 0x70, 0x8C, 0x13, 0x0F, 0x0F, 0x13, 0x0E, 0x01, 0x60, 0x29, 0x37, 0x33, 0x1A, 0x33, 0x37, + 0x29, 0x3C, 0x2A, 0x42, 0x07, 0x0B, 0x0A, 0x6E, 0x6E, 0x0A, 0x0B, 0x07, 0x42, 0x2A, 0x3C, 0xB8, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x00, 0x06, 0x00, + 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x00, 0x24, 0x32, 0x16, 0x14, + 0x06, 0x22, 0x26, 0x34, 0x26, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x14, 0x16, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x17, 0x32, 0x34, 0x2B, 0x01, 0x22, 0x14, 0x33, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x4E, 0x14, 0x0E, 0x0E, 0x14, + 0x0E, 0xB2, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x11, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x50, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, 0xBE, 0x10, 0x10, 0x80, 0x10, 0x10, + 0x82, 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0xF8, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0xCE, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x29, + 0x3C, 0x2A, 0x2A, 0x3C, 0x2A, 0xF8, 0x20, 0x20, 0x68, 0x2A, 0x3C, 0x2A, 0x2A, 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, + 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1D, 0x00, 0x25, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x14, 0x16, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x17, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x06, 0x16, 0x37, 0x36, 0x32, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x91, + 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x88, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xA8, 0x09, 0x0D, 0x01, 0x05, 0x3D, 0x3C, 0x3D, 0x05, 0x01, 0x0D, 0x09, 0x31, 0x34, + 0x29, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x2A, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xD7, 0x03, 0x0C, 0x09, 0x1B, 0x22, + 0x21, 0x1C, 0x09, 0x0C, 0x03, 0x0F, 0x88, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFA, 0xFF, 0xC0, 0x02, 0x06, 0x01, 0xC0, + 0x00, 0x17, 0x00, 0x1B, 0x00, 0x00, 0x01, 0x07, 0x15, 0x33, 0x32, 0x16, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x27, 0x26, + 0x36, 0x33, 0x21, 0x32, 0x16, 0x07, 0x21, 0x17, 0x21, 0x01, 0xF6, 0xD6, 0x38, 0x11, 0x17, 0x08, 0xF0, 0x08, 0x17, 0x11, 0x38, 0xD6, 0x10, 0x11, 0x17, + 0x01, 0xBC, 0x17, 0x11, 0x4A, 0xFE, 0x88, 0x30, 0x01, 0x18, 0x01, 0x86, 0xD6, 0xC0, 0x17, 0x11, 0x08, 0x08, 0x11, 0x17, 0xC0, 0xD6, 0x10, 0x2A, 0x2A, + 0x06, 0x30, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x6A, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, + 0x26, 0x34, 0x05, 0x34, 0x36, 0x3B, 0x01, 0x2E, 0x01, 0x27, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x0F, 0x01, 0x06, 0x0F, 0x01, 0x06, 0x1D, 0x01, 0x14, + 0x16, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x16, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, 0x2B, 0x01, 0x22, 0x0F, 0x01, 0x06, + 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x17, 0x16, 0x33, 0x32, 0x3F, 0x01, 0x36, 0x37, 0x36, 0x3F, 0x01, 0x36, 0x3F, 0x01, + 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x33, 0x32, 0x3F, 0x01, 0x36, + 0x35, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x98, 0x09, 0x07, 0x12, 0x0E, 0x59, 0x3B, 0x09, 0x06, 0x19, 0x08, 0x05, 0x08, 0x03, 0x06, 0x0E, 0x0C, + 0x09, 0x07, 0x5A, 0x06, 0x05, 0x06, 0x05, 0x06, 0x0A, 0x07, 0x09, 0x0B, 0x2F, 0x06, 0x06, 0x0E, 0x0C, 0x0D, 0x01, 0x12, 0x0F, 0x1B, 0x16, 0x20, 0x17, + 0x19, 0x07, 0x09, 0x08, 0x08, 0x11, 0x0F, 0x08, 0x0D, 0x0B, 0x0E, 0x04, 0x01, 0x04, 0x01, 0x02, 0x13, 0x03, 0x09, 0x07, 0x08, 0x08, 0x05, 0x0D, 0x04, + 0x05, 0x07, 0x03, 0x02, 0x03, 0x04, 0x04, 0x13, 0x03, 0x05, 0x04, 0x03, 0x0F, 0x09, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x47, 0x07, 0x09, 0x3A, + 0x52, 0x09, 0x15, 0x07, 0x09, 0x07, 0x0C, 0x05, 0x01, 0x04, 0x03, 0x0C, 0x04, 0x07, 0x09, 0x05, 0x06, 0x05, 0x09, 0x06, 0x0C, 0x03, 0x10, 0x02, 0x03, + 0x07, 0x06, 0x0B, 0x15, 0x10, 0x1B, 0x0E, 0x17, 0x20, 0x09, 0x07, 0x1D, 0x13, 0x11, 0x0F, 0x0C, 0x14, 0x10, 0x0D, 0x04, 0x05, 0x16, 0x04, 0x03, 0x19, + 0x04, 0x05, 0x0B, 0x07, 0x09, 0x07, 0x14, 0x06, 0x0F, 0x02, 0x01, 0x01, 0x03, 0x0C, 0x03, 0x02, 0x08, 0x04, 0x0A, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, + 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x5F, 0x00, 0x6E, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x36, 0x35, 0x34, + 0x2F, 0x01, 0x26, 0x2B, 0x01, 0x2E, 0x01, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x3B, 0x01, 0x32, + 0x36, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x26, 0x3F, 0x02, 0x36, 0x2F, 0x01, 0x06, 0x07, + 0x15, 0x14, 0x06, 0x2F, 0x01, 0x06, 0x07, 0x16, 0x17, 0x16, 0x1F, 0x01, 0x16, 0x17, 0x16, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x17, 0x1E, 0x01, 0x07, 0x15, + 0x32, 0x3F, 0x01, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x17, 0x36, 0x35, 0x34, 0x27, 0x07, 0x06, 0x0F, 0x01, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x91, 0xCE, + 0x91, 0x91, 0xCE, 0x91, 0x01, 0x4A, 0x0E, 0x09, 0x0E, 0x09, 0x0D, 0x43, 0x04, 0x16, 0x06, 0x10, 0x0E, 0x0B, 0x07, 0x08, 0x1F, 0x03, 0x02, 0x06, 0x05, + 0x09, 0x02, 0x03, 0x06, 0x05, 0x04, 0x02, 0x0F, 0x01, 0x02, 0x0A, 0x02, 0x04, 0x09, 0x03, 0x02, 0x08, 0x06, 0x06, 0x04, 0x06, 0x06, 0x0A, 0x05, 0x0B, + 0x0B, 0x1D, 0x0C, 0x0C, 0x0F, 0x08, 0x18, 0x47, 0x20, 0x19, 0x09, 0x08, 0x0A, 0x01, 0x0F, 0x11, 0x12, 0x1F, 0x10, 0x09, 0x0B, 0x0D, 0x01, 0x15, 0x16, + 0x11, 0x01, 0x04, 0x01, 0x05, 0x03, 0x5F, 0x1D, 0x02, 0x15, 0x0D, 0x06, 0x04, 0x13, 0x04, 0x04, 0x12, 0x05, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, + 0xD5, 0x0E, 0x13, 0x0D, 0x09, 0x0E, 0x09, 0x02, 0x1E, 0x07, 0x06, 0x03, 0x07, 0x09, 0x03, 0x0A, 0x01, 0x04, 0x08, 0x02, 0x08, 0x04, 0x1F, 0x01, 0x02, + 0x04, 0x02, 0x0A, 0x02, 0x02, 0x08, 0x06, 0x06, 0x04, 0x06, 0x06, 0x0A, 0x05, 0x0B, 0x0B, 0x1D, 0x01, 0x02, 0x0B, 0x09, 0x09, 0x04, 0x0C, 0x1F, 0x47, + 0x26, 0x0D, 0x0C, 0x09, 0x01, 0x0D, 0x09, 0x09, 0x11, 0x09, 0x13, 0x20, 0x0D, 0x09, 0x0B, 0x1F, 0x0A, 0x1B, 0x05, 0x2F, 0x02, 0x0E, 0x07, 0x04, 0x03, + 0x64, 0x08, 0x0F, 0x0B, 0x2F, 0x2A, 0x06, 0x03, 0x05, 0x1E, 0x06, 0x0E, 0x06, 0x1B, 0x08, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, + 0x00, 0x07, 0x00, 0x38, 0x00, 0x6D, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x37, 0x36, 0x32, 0x17, 0x16, 0x3B, 0x01, 0x32, + 0x3D, 0x01, 0x34, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x17, 0x33, 0x32, 0x3F, 0x01, 0x36, 0x16, 0x1F, 0x01, 0x16, + 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x17, 0x35, 0x34, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x2B, + 0x01, 0x22, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x26, 0x2B, 0x01, 0x22, 0x0F, 0x01, 0x06, 0x0F, 0x01, 0x06, 0x1D, 0x01, 0x14, 0x1F, 0x01, + 0x16, 0x3B, 0x01, 0x32, 0x33, 0x37, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x16, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x36, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xED, + 0x11, 0x01, 0x06, 0x01, 0x02, 0x05, 0x03, 0x08, 0x09, 0x0B, 0x04, 0x03, 0x33, 0x1F, 0x1F, 0x53, 0x75, 0x03, 0x3E, 0x07, 0x05, 0x13, 0x03, 0x08, 0x02, + 0x17, 0x04, 0x0A, 0x06, 0x07, 0x09, 0x05, 0x05, 0x06, 0x06, 0x05, 0x05, 0x07, 0x09, 0xB0, 0x05, 0x0C, 0x02, 0x04, 0x06, 0x03, 0x01, 0x04, 0x01, 0x03, + 0x04, 0x02, 0x01, 0x06, 0x02, 0x05, 0x0C, 0x03, 0x02, 0x18, 0x02, 0x03, 0x27, 0x06, 0x03, 0x0C, 0x04, 0x07, 0x0A, 0x02, 0x02, 0x16, 0x03, 0x03, 0x0B, + 0x08, 0x0D, 0x05, 0x06, 0x0F, 0x07, 0x05, 0x09, 0x05, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x5F, 0x1D, 0x02, 0x03, 0x04, 0x08, 0x4E, 0x0A, 0x04, + 0x06, 0x02, 0x09, 0x03, 0x26, 0x0A, 0x75, 0x53, 0x0F, 0x11, 0x05, 0x13, 0x03, 0x01, 0x04, 0x2D, 0x09, 0x09, 0x07, 0x09, 0x07, 0x05, 0x05, 0x06, 0x06, + 0x05, 0x05, 0x66, 0x18, 0x07, 0x04, 0x0C, 0x03, 0x03, 0x0D, 0x04, 0x03, 0x0E, 0x03, 0x02, 0x0D, 0x05, 0x01, 0x11, 0x02, 0x01, 0x10, 0x02, 0x06, 0x0A, + 0x03, 0x02, 0x0C, 0x05, 0x06, 0x01, 0x08, 0x0D, 0x05, 0x05, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, + 0x00, 0x07, 0x00, 0x0E, 0x00, 0x15, 0x00, 0x1D, 0x00, 0x21, 0x00, 0x25, 0x00, 0x29, 0x00, 0x2D, 0x00, 0x31, 0x00, 0x35, 0x00, 0x3D, 0x00, 0x44, 0x00, + 0x4B, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x35, 0x23, 0x15, 0x14, 0x16, 0x33, 0x37, 0x35, 0x23, 0x22, 0x06, 0x1D, 0x01, + 0x36, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x17, 0x35, 0x23, 0x15, 0x37, 0x35, 0x23, 0x15, 0x17, 0x35, 0x23, 0x15, 0x37, 0x35, 0x23, 0x15, 0x17, + 0x35, 0x23, 0x15, 0x37, 0x35, 0x23, 0x15, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x17, 0x35, 0x23, 0x15, 0x33, 0x32, 0x36, 0x3D, 0x01, 0x34, + 0x26, 0x2B, 0x01, 0x15, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x90, 0x28, 0x13, 0x0D, 0x08, 0x08, 0x0D, 0x13, 0x20, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x35, + 0x30, 0x30, 0x30, 0x70, 0x30, 0x30, 0x30, 0x70, 0x30, 0x30, 0x30, 0x1B, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x60, 0x28, 0x08, 0x0D, 0x13, 0x13, 0x0D, 0x08, + 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0xF7, 0x28, 0x08, 0x0D, 0x13, 0x38, 0x28, 0x13, 0x0D, 0x08, 0x95, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xE0, 0x28, + 0x28, 0x38, 0x28, 0x28, 0x38, 0x28, 0x28, 0x38, 0x28, 0x28, 0x38, 0x28, 0x28, 0x38, 0x28, 0x28, 0x68, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x93, 0x08, 0x28, + 0x13, 0x25, 0x08, 0x0D, 0x13, 0x28, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x25, 0x00, + 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x04, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, + 0x14, 0x32, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x55, 0x1A, 0x13, 0x13, + 0x1A, 0x13, 0xB3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x60, 0x59, 0x07, 0x01, 0x0D, 0x09, 0x2F, 0x98, 0x2F, 0x09, 0x0D, 0x01, 0x07, 0x01, 0xB8, 0x91, 0xCE, + 0x91, 0x91, 0xCE, 0x17, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xED, 0x36, 0x27, 0x09, 0x0C, 0x03, 0x0F, 0x0F, 0x03, 0x0C, + 0x09, 0x27, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x15, 0x00, 0x23, 0x00, 0x31, 0x00, 0x00, + 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x25, 0x06, 0x07, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x22, 0x07, 0x06, 0x07, + 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x22, 0x12, 0x32, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, + 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x38, 0x0F, 0x01, 0x01, 0x0F, 0x06, 0x15, 0x05, 0x0F, 0x01, 0x01, 0x0F, 0x06, 0x15, 0xA5, 0x0F, 0x01, 0x01, + 0x0F, 0x06, 0x15, 0x05, 0x0F, 0x01, 0x01, 0x0F, 0x06, 0x15, 0x2B, 0x60, 0x59, 0x07, 0x01, 0x0D, 0x09, 0x2F, 0x98, 0x2F, 0x09, 0x0D, 0x01, 0x07, 0x01, + 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x10, 0x16, 0x21, 0x22, 0x15, 0x09, 0x09, 0x16, 0x21, 0x22, 0x15, 0x09, 0x09, 0x16, 0x21, 0x22, 0x15, 0x09, 0x09, + 0x16, 0x21, 0x22, 0x15, 0x09, 0xFE, 0xD0, 0x36, 0x27, 0x09, 0x0C, 0x03, 0x0F, 0x0F, 0x03, 0x0C, 0x09, 0x27, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, + 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x17, 0x00, 0x27, 0x00, 0x35, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x24, 0x22, 0x06, + 0x07, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, + 0x16, 0x36, 0x27, 0x26, 0x06, 0x32, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, + 0x5B, 0x26, 0x23, 0x02, 0x0C, 0x03, 0x0A, 0x0C, 0x26, 0x0D, 0x09, 0x03, 0x0D, 0x01, 0x02, 0xC3, 0x26, 0x23, 0x02, 0x0C, 0x03, 0x0A, 0x0C, 0x26, 0x0D, + 0x09, 0x03, 0x0D, 0x01, 0x02, 0x16, 0x60, 0x59, 0x07, 0x01, 0x0D, 0x09, 0x2F, 0x98, 0x2F, 0x09, 0x0D, 0x01, 0x07, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, + 0xCE, 0x01, 0x29, 0x1E, 0x07, 0x03, 0x05, 0x11, 0x16, 0x16, 0x11, 0x05, 0x03, 0x07, 0x1E, 0x29, 0x29, 0x1E, 0x07, 0x03, 0x05, 0x11, 0x16, 0x16, 0x11, + 0x05, 0x03, 0x07, 0x1E, 0xEF, 0x36, 0x27, 0x09, 0x0C, 0x03, 0x0F, 0x0F, 0x03, 0x0C, 0x09, 0x27, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF8, 0x01, + 0xC1, 0x00, 0x0B, 0x00, 0x1D, 0x00, 0x2D, 0x00, 0x3D, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x32, 0x17, 0x16, 0x15, 0x14, + 0x07, 0x32, 0x37, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x06, 0x15, 0x14, 0x16, 0x26, 0x22, 0x06, 0x07, 0x14, 0x16, 0x3F, + 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x27, 0x26, + 0x06, 0x32, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, 0x01, 0xDC, 0x28, 0x1C, 0x2A, 0x02, 0x08, 0x02, 0x2A, 0x30, 0x09, + 0x0B, 0x14, 0x91, 0xCE, 0x91, 0x91, 0x67, 0x4A, 0x3E, 0x08, 0x2F, 0x4C, 0x26, 0x23, 0x02, 0x0C, 0x03, 0x0A, 0x0C, 0x26, 0x0D, 0x09, 0x03, 0x0D, 0x01, + 0x02, 0xC3, 0x26, 0x23, 0x02, 0x0C, 0x03, 0x0A, 0x0C, 0x26, 0x0D, 0x09, 0x03, 0x0D, 0x01, 0x02, 0x16, 0x60, 0x59, 0x07, 0x01, 0x0D, 0x09, 0x2F, 0x98, + 0x2F, 0x09, 0x0D, 0x01, 0x07, 0x01, 0x40, 0x1C, 0x13, 0x17, 0x37, 0x03, 0x03, 0x37, 0x17, 0x13, 0x3C, 0x03, 0x30, 0x33, 0x67, 0x91, 0x91, 0xCE, 0x91, + 0x29, 0x12, 0x0E, 0x21, 0x2E, 0x08, 0x29, 0x1E, 0x07, 0x03, 0x05, 0x11, 0x16, 0x16, 0x11, 0x06, 0x04, 0x07, 0x1E, 0x29, 0x29, 0x1E, 0x07, 0x03, 0x05, + 0x11, 0x16, 0x16, 0x11, 0x06, 0x04, 0x07, 0x1E, 0xEF, 0x36, 0x27, 0x09, 0x0C, 0x03, 0x0F, 0x0F, 0x03, 0x0C, 0x09, 0x27, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x19, 0x00, 0x27, 0x00, 0x39, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, + 0x34, 0x17, 0x06, 0x16, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x36, 0x26, 0x27, 0x26, 0x06, 0x0F, 0x01, 0x27, 0x26, 0x06, 0x12, 0x32, 0x36, 0x37, 0x36, 0x26, + 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, 0x25, 0x3E, 0x01, 0x27, 0x2E, 0x01, 0x0F, 0x01, 0x27, 0x2E, 0x01, 0x07, 0x0E, 0x01, 0x1F, 0x01, 0x16, + 0x37, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x5A, 0x05, 0x0E, 0x10, 0x46, 0x08, 0x02, 0x14, 0x04, 0x11, 0x10, 0x0E, 0x18, 0x04, 0x02, 0x07, 0x0E, 0x1A, + 0x69, 0x60, 0x59, 0x07, 0x01, 0x0D, 0x09, 0x2F, 0x98, 0x2F, 0x09, 0x0D, 0x01, 0x07, 0x01, 0x0E, 0x10, 0x0E, 0x05, 0x05, 0x1A, 0x0E, 0x07, 0x02, 0x04, + 0x18, 0x0E, 0x10, 0x11, 0x04, 0x14, 0x02, 0x08, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x1F, 0x0F, 0x1C, 0x04, 0x12, 0x02, 0x08, 0x46, 0x0F, 0x1B, + 0x02, 0x03, 0x11, 0x0D, 0x08, 0x02, 0x04, 0x0D, 0xFE, 0xFB, 0x36, 0x27, 0x09, 0x0C, 0x03, 0x0F, 0x0F, 0x03, 0x0C, 0x09, 0x27, 0x93, 0x04, 0x1C, 0x0F, + 0x0E, 0x0C, 0x04, 0x02, 0x08, 0x0D, 0x11, 0x02, 0x03, 0x1B, 0x0F, 0x46, 0x08, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, + 0x00, 0x07, 0x00, 0x14, 0x00, 0x21, 0x00, 0x2F, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x36, + 0x2F, 0x01, 0x37, 0x36, 0x26, 0x0F, 0x01, 0x17, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x34, 0x2F, 0x01, 0x26, 0x06, 0x12, 0x32, 0x36, 0x37, 0x36, 0x26, + 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x1A, 0x06, 0x06, 0x50, 0x08, 0x0E, 0x07, 0x21, 0x21, 0x07, + 0x0E, 0x08, 0xF3, 0x21, 0x21, 0x07, 0x0E, 0x08, 0x50, 0x06, 0x06, 0x50, 0x08, 0x0E, 0x58, 0x60, 0x59, 0x07, 0x01, 0x0D, 0x09, 0x2F, 0x98, 0x2F, 0x09, + 0x0D, 0x01, 0x07, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x2D, 0x03, 0x0E, 0x03, 0x30, 0x05, 0x0F, 0x08, 0x28, 0x28, 0x08, 0x0F, 0x05, 0x12, 0x28, + 0x28, 0x08, 0x0F, 0x05, 0x30, 0x03, 0x0E, 0x03, 0x30, 0x05, 0x0F, 0xFE, 0xF0, 0x36, 0x27, 0x09, 0x0C, 0x03, 0x0F, 0x0F, 0x03, 0x0C, 0x09, 0x27, 0x00, + 0x00, 0x06, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x01, 0x01, 0xC1, 0x00, 0x0B, 0x00, 0x17, 0x00, 0x2F, 0x00, 0x3C, 0x00, 0x49, 0x00, 0x59, 0x00, 0x00, 0x01, + 0x22, 0x26, 0x37, 0x36, 0x37, 0x36, 0x32, 0x16, 0x14, 0x07, 0x06, 0x01, 0x32, 0x16, 0x07, 0x06, 0x07, 0x06, 0x22, 0x26, 0x34, 0x37, 0x36, 0x01, 0x36, + 0x37, 0x16, 0x0E, 0x02, 0x27, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x07, 0x26, 0x3E, 0x02, 0x17, 0x06, 0x07, 0x06, 0x16, 0x27, 0x07, 0x06, 0x16, 0x3F, + 0x01, 0x36, 0x26, 0x2F, 0x02, 0x2E, 0x01, 0x07, 0x1E, 0x01, 0x3F, 0x01, 0x36, 0x26, 0x0F, 0x01, 0x06, 0x16, 0x1F, 0x02, 0x3E, 0x01, 0x27, 0x26, 0x06, + 0x07, 0x0E, 0x01, 0x07, 0x0E, 0x01, 0x17, 0x16, 0x32, 0x36, 0x01, 0x9A, 0x05, 0x06, 0x01, 0x0B, 0x10, 0x0E, 0x2A, 0x1D, 0x0E, 0x11, 0xFE, 0x85, 0x05, + 0x06, 0x01, 0x0B, 0x10, 0x0E, 0x29, 0x1E, 0x0E, 0x11, 0x01, 0x7F, 0x21, 0x18, 0x29, 0x14, 0x79, 0xA8, 0x47, 0x07, 0x05, 0x02, 0x19, 0x17, 0x21, 0x18, + 0x29, 0x14, 0x79, 0xA8, 0x47, 0x07, 0x05, 0x02, 0x19, 0x87, 0x17, 0x01, 0x09, 0x07, 0x5A, 0x0A, 0x02, 0x0A, 0x34, 0x05, 0x01, 0x14, 0x5D, 0x01, 0x14, + 0x02, 0x17, 0x02, 0x0A, 0x07, 0x5A, 0x0A, 0x02, 0x0A, 0x34, 0xDC, 0x22, 0x19, 0x17, 0x05, 0x12, 0x04, 0x17, 0x6B, 0x2C, 0x08, 0x02, 0x08, 0x15, 0x3C, + 0x40, 0x01, 0x50, 0x05, 0x05, 0x48, 0x10, 0x0E, 0x1E, 0x29, 0x0E, 0x11, 0xFE, 0xD6, 0x05, 0x05, 0x48, 0x10, 0x0E, 0x1E, 0x29, 0x0E, 0x11, 0x01, 0x0A, + 0x05, 0x07, 0x47, 0xA8, 0x79, 0x14, 0x29, 0x19, 0x20, 0x11, 0x1F, 0x02, 0x05, 0x07, 0x47, 0xA8, 0x79, 0x14, 0x29, 0x19, 0x20, 0x11, 0x1F, 0x28, 0x5B, + 0x06, 0x0A, 0x02, 0x17, 0x02, 0x14, 0x01, 0x05, 0x34, 0x0A, 0x02, 0xF0, 0x0A, 0x02, 0x0A, 0x5A, 0x07, 0x0A, 0x02, 0x17, 0x02, 0x14, 0x01, 0x05, 0x60, + 0x22, 0x61, 0x24, 0x07, 0x01, 0x08, 0x2C, 0x6B, 0x17, 0x04, 0x12, 0x05, 0x0F, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, + 0x01, 0xB8, 0x00, 0x07, 0x00, 0x20, 0x00, 0x2E, 0x00, 0x47, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x0E, 0x01, 0x1F, 0x01, + 0x07, 0x06, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x36, 0x2F, 0x01, 0x37, 0x36, 0x26, 0x2F, 0x02, 0x26, 0x22, 0x0F, 0x01, 0x12, 0x32, 0x36, 0x37, 0x36, 0x26, + 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, 0x25, 0x36, 0x26, 0x2F, 0x02, 0x26, 0x22, 0x0F, 0x02, 0x0E, 0x01, 0x1F, 0x01, 0x07, 0x06, 0x16, 0x3F, + 0x01, 0x17, 0x16, 0x36, 0x2F, 0x01, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x5F, 0x05, 0x03, 0x03, 0x1A, 0x06, 0x01, 0x07, 0x05, 0x1F, 0x1F, 0x04, 0x08, + 0x01, 0x06, 0x1A, 0x03, 0x03, 0x05, 0x23, 0x0F, 0x02, 0x0A, 0x02, 0x0F, 0x46, 0x60, 0x59, 0x07, 0x01, 0x0D, 0x09, 0x2F, 0x98, 0x2F, 0x09, 0x0D, 0x01, + 0x07, 0x01, 0x27, 0x03, 0x03, 0x05, 0x23, 0x0F, 0x02, 0x0A, 0x02, 0x0F, 0x23, 0x05, 0x03, 0x03, 0x1A, 0x06, 0x01, 0x07, 0x05, 0x1F, 0x1F, 0x05, 0x07, + 0x01, 0x06, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x10, 0x01, 0x09, 0x03, 0x19, 0x23, 0x04, 0x06, 0x02, 0x11, 0x11, 0x02, 0x06, 0x04, 0x23, 0x19, + 0x03, 0x09, 0x01, 0x05, 0x20, 0x04, 0x04, 0x20, 0xFE, 0xF4, 0x36, 0x27, 0x09, 0x0C, 0x03, 0x0F, 0x0F, 0x03, 0x0C, 0x09, 0x27, 0xC4, 0x03, 0x09, 0x01, + 0x05, 0x20, 0x04, 0x04, 0x20, 0x05, 0x01, 0x09, 0x03, 0x19, 0x23, 0x04, 0x06, 0x02, 0x11, 0x11, 0x02, 0x06, 0x04, 0x23, 0x00, 0x06, 0xFF, 0xFF, 0xFF, + 0xC8, 0x02, 0x81, 0x01, 0xB8, 0x00, 0x0B, 0x00, 0x17, 0x00, 0x35, 0x00, 0x45, 0x00, 0x55, 0x00, 0x63, 0x00, 0x00, 0x37, 0x32, 0x16, 0x07, 0x06, 0x07, + 0x06, 0x22, 0x26, 0x34, 0x37, 0x36, 0x05, 0x16, 0x14, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x36, 0x17, 0x16, 0x07, 0x16, 0x17, 0x1E, 0x01, 0x31, 0x0E, + 0x01, 0x22, 0x26, 0x27, 0x30, 0x36, 0x37, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x07, 0x3E, 0x01, 0x32, 0x16, 0x17, 0x26, 0x27, 0x26, 0x06, 0x26, 0x22, + 0x06, 0x07, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x1F, + 0x01, 0x16, 0x36, 0x27, 0x26, 0x06, 0x32, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, 0x66, 0x05, 0x06, 0x01, 0x0B, 0x10, + 0x0E, 0x29, 0x1E, 0x0E, 0x11, 0x02, 0x53, 0x0E, 0x1E, 0x29, 0x0E, 0x11, 0x0A, 0x01, 0x06, 0x05, 0x48, 0x72, 0x0C, 0x18, 0x01, 0x02, 0x20, 0x73, 0x88, + 0x73, 0x20, 0x02, 0x01, 0x18, 0x0C, 0x02, 0x19, 0x17, 0x0B, 0x0D, 0x0A, 0x8D, 0xBE, 0x8D, 0x0A, 0x0D, 0x0B, 0x14, 0x1C, 0x4B, 0x26, 0x23, 0x02, 0x0C, + 0x03, 0x0A, 0x0C, 0x26, 0x0D, 0x09, 0x03, 0x0D, 0x01, 0x02, 0xC3, 0x26, 0x23, 0x02, 0x0C, 0x03, 0x0A, 0x0C, 0x26, 0x0D, 0x09, 0x03, 0x0D, 0x01, 0x02, + 0x16, 0x60, 0x59, 0x07, 0x01, 0x0D, 0x09, 0x2F, 0x98, 0x2F, 0x09, 0x0D, 0x01, 0x07, 0xC0, 0x05, 0x05, 0x48, 0x10, 0x0E, 0x1E, 0x29, 0x0E, 0x11, 0x11, + 0x0E, 0x29, 0x1E, 0x0E, 0x11, 0x47, 0x05, 0x06, 0x01, 0x0B, 0x03, 0x52, 0x18, 0x01, 0x02, 0x39, 0x44, 0x44, 0x39, 0x02, 0x01, 0x18, 0x52, 0x11, 0x1F, + 0x02, 0x02, 0x02, 0x5D, 0x7F, 0x7F, 0x5D, 0x02, 0x02, 0x02, 0x1C, 0x62, 0x29, 0x1E, 0x07, 0x03, 0x05, 0x11, 0x16, 0x16, 0x11, 0x06, 0x04, 0x07, 0x1E, + 0x29, 0x29, 0x1E, 0x07, 0x03, 0x05, 0x11, 0x16, 0x16, 0x11, 0x06, 0x04, 0x07, 0x1E, 0xEF, 0x36, 0x27, 0x09, 0x0C, 0x03, 0x0F, 0x0F, 0x03, 0x0C, 0x09, + 0x27, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xBF, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x1D, 0x00, 0x25, 0x00, 0x2D, 0x00, 0x44, 0x00, 0x00, 0x12, 0x32, + 0x16, 0x15, 0x14, 0x06, 0x07, 0x36, 0x3D, 0x01, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, 0x17, 0x15, 0x14, 0x17, 0x2E, + 0x01, 0x35, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x07, 0x16, 0x17, 0x15, 0x14, 0x06, + 0x23, 0x22, 0x26, 0x3D, 0x01, 0x36, 0x33, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x32, 0x3F, 0x01, 0x3E, 0x01, 0x91, 0xCE, 0x91, 0x59, 0x48, 0x09, 0x2A, 0x06, + 0x01, 0x0D, 0x09, 0x2F, 0x98, 0x2F, 0x09, 0x0D, 0x01, 0x06, 0x2A, 0x09, 0x48, 0x59, 0x9B, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xB3, 0x1A, 0x13, 0x13, 0x1A, + 0x13, 0x03, 0x03, 0x10, 0x26, 0x1B, 0x1A, 0x25, 0x12, 0x01, 0x0B, 0x15, 0x03, 0x01, 0x02, 0x0E, 0x02, 0x01, 0x03, 0x15, 0x01, 0xB8, 0x91, 0x67, 0x4F, + 0x7E, 0x1B, 0x14, 0x14, 0x2E, 0x1B, 0x24, 0x09, 0x0C, 0x03, 0x0F, 0x0F, 0x03, 0x0C, 0x09, 0x24, 0x1B, 0x2E, 0x14, 0x14, 0x1B, 0x7E, 0x4F, 0x67, 0x57, + 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x9A, 0x01, 0x08, 0x40, 0x1B, 0x25, 0x27, 0x1A, 0x3F, 0x09, 0x05, 0x0B, 0x0B, 0x08, + 0x07, 0x07, 0x08, 0x0B, 0x0B, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xBF, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x16, 0x00, 0x34, 0x00, 0x41, 0x00, 0x4E, + 0x00, 0x00, 0x25, 0x16, 0x17, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x36, 0x33, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x32, 0x3F, 0x01, 0x3E, 0x01, + 0x02, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x36, 0x3D, 0x01, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, 0x17, 0x15, 0x14, + 0x17, 0x2E, 0x01, 0x35, 0x34, 0x17, 0x36, 0x34, 0x2F, 0x01, 0x26, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x27, 0x37, 0x36, 0x26, 0x0F, 0x01, + 0x06, 0x14, 0x1F, 0x01, 0x16, 0x36, 0x01, 0x25, 0x03, 0x10, 0x26, 0x1B, 0x1A, 0x25, 0x12, 0x01, 0x0B, 0x15, 0x03, 0x01, 0x02, 0x0E, 0x02, 0x01, 0x03, + 0x15, 0x89, 0xCE, 0x91, 0x59, 0x48, 0x09, 0x2A, 0x06, 0x01, 0x0D, 0x09, 0x2F, 0x98, 0x2F, 0x09, 0x0D, 0x01, 0x06, 0x2A, 0x09, 0x48, 0x59, 0xD6, 0x06, + 0x06, 0x50, 0x08, 0x0E, 0x07, 0x21, 0x21, 0x07, 0x0E, 0x08, 0xF3, 0x21, 0x21, 0x07, 0x0D, 0x09, 0x50, 0x06, 0x06, 0x50, 0x08, 0x0E, 0x49, 0x01, 0x08, + 0x40, 0x1B, 0x25, 0x27, 0x1A, 0x3F, 0x09, 0x05, 0x0B, 0x0B, 0x08, 0x07, 0x07, 0x08, 0x0B, 0x0B, 0x01, 0x6A, 0x91, 0x67, 0x4F, 0x7E, 0x1B, 0x14, 0x14, + 0x2E, 0x1B, 0x24, 0x09, 0x0C, 0x03, 0x0F, 0x0F, 0x03, 0x0C, 0x09, 0x24, 0x1B, 0x2E, 0x14, 0x14, 0x1B, 0x7E, 0x4F, 0x67, 0x41, 0x03, 0x0E, 0x03, 0x30, + 0x05, 0x0F, 0x08, 0x28, 0x28, 0x08, 0x0F, 0x05, 0x12, 0x28, 0x28, 0x08, 0x0F, 0x05, 0x30, 0x03, 0x0E, 0x03, 0x30, 0x05, 0x0F, 0x00, 0x00, 0x05, 0x00, + 0x00, 0xFF, 0xBF, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x25, 0x00, 0x35, 0x00, 0x3D, 0x00, 0x54, 0x00, 0x00, 0x00, 0x32, 0x16, 0x14, 0x06, 0x22, + 0x26, 0x34, 0x26, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x36, 0x3D, 0x01, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, 0x17, + 0x15, 0x14, 0x17, 0x2E, 0x01, 0x35, 0x34, 0x17, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x16, 0x32, + 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x17, 0x16, 0x17, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x36, 0x33, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x32, + 0x3F, 0x01, 0x3E, 0x01, 0x01, 0x4E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0xAF, 0xCE, 0x91, 0x59, 0x48, 0x09, 0x2A, 0x06, 0x01, 0x0D, 0x09, 0x2F, 0x98, 0x2F, + 0x09, 0x0D, 0x01, 0x06, 0x2A, 0x09, 0x48, 0x59, 0xC0, 0x06, 0x0F, 0x01, 0x03, 0x25, 0x28, 0x25, 0x03, 0x01, 0x0F, 0x06, 0x0A, 0x0B, 0x26, 0x0B, 0x88, + 0x34, 0x26, 0x26, 0x34, 0x26, 0x0D, 0x03, 0x10, 0x26, 0x1B, 0x1A, 0x25, 0x12, 0x01, 0x0B, 0x15, 0x03, 0x01, 0x02, 0x0E, 0x02, 0x01, 0x03, 0x15, 0x01, + 0x08, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0xBE, 0x91, 0x67, 0x4F, 0x7E, 0x1B, 0x14, 0x14, 0x2E, 0x1B, 0x24, 0x09, 0x0C, 0x03, 0x0F, 0x0F, 0x03, 0x0C, 0x09, + 0x24, 0x1B, 0x2E, 0x14, 0x14, 0x1B, 0x7E, 0x4F, 0x67, 0x50, 0x06, 0x08, 0x09, 0x12, 0x18, 0x18, 0x12, 0x09, 0x08, 0x06, 0x09, 0x09, 0x09, 0x30, 0x26, + 0x34, 0x26, 0x26, 0x34, 0x8D, 0x01, 0x08, 0x40, 0x1B, 0x25, 0x27, 0x1A, 0x3F, 0x09, 0x05, 0x0B, 0x0B, 0x08, 0x07, 0x07, 0x08, 0x0B, 0x0B, 0x00, 0x00, + 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2D, 0x00, 0x00, 0x3C, 0x01, 0x36, 0x32, 0x16, 0x14, + 0x06, 0x22, 0x12, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x37, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x32, + 0x17, 0x07, 0x26, 0x06, 0x17, 0x1E, 0x01, 0x32, 0x36, 0x37, 0x36, 0x26, 0x07, 0x06, 0x22, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x37, 0x13, 0x1A, 0x13, 0x13, + 0x1A, 0xBB, 0x06, 0x0F, 0x01, 0x03, 0x25, 0x28, 0x25, 0x03, 0x01, 0x0F, 0x06, 0x0A, 0x0B, 0x26, 0x0B, 0xE9, 0x09, 0x0D, 0x01, 0x07, 0x59, 0x60, 0x59, + 0x07, 0x01, 0x0D, 0x09, 0x2F, 0x98, 0x59, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x1B, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x07, 0x06, 0x09, 0x08, 0x12, 0x18, + 0x18, 0x12, 0x09, 0x08, 0x06, 0x09, 0x09, 0x09, 0x61, 0x03, 0x0C, 0x09, 0x27, 0x36, 0x36, 0x27, 0x09, 0x0C, 0x03, 0x0F, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x20, 0x01, 0xC0, 0x01, 0x60, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x5F, 0x00, 0x00, 0x37, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, + 0x13, 0x0D, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0xFF, 0x00, 0x0D, + 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, + 0x13, 0x13, 0x0D, 0xA0, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, + 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0xC0, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, + 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0x40, 0x01, + 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x5F, 0x00, 0x00, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x33, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, + 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x00, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, + 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0xA0, 0x13, + 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0xA0, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0xA0, 0x13, 0x0D, 0x40, 0x0D, + 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x01, 0x40, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0xA0, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, + 0x0D, 0x40, 0x0D, 0x13, 0xA0, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, + 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x3B, 0x00, 0x00, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x02, 0x32, 0x16, 0x17, 0x15, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x36, 0xA0, 0x0D, 0x13, 0x13, + 0x0D, 0x10, 0x1B, 0x25, 0x25, 0x1B, 0xE0, 0x1B, 0x25, 0x25, 0x1B, 0x10, 0x0D, 0x13, 0x13, 0x0D, 0xC9, 0xD2, 0x94, 0x03, 0x09, 0x07, 0x10, 0x07, 0x09, + 0x7A, 0xAC, 0x7A, 0x09, 0x07, 0x10, 0x07, 0x09, 0x03, 0xA0, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x26, 0x1A, 0x40, 0x1A, 0x26, 0x26, 0x1A, 0x40, 0x1A, 0x26, + 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x01, 0x00, 0x97, 0x69, 0x70, 0x07, 0x09, 0x09, 0x07, 0x70, 0x56, 0x7A, 0x7A, 0x56, 0x70, 0x07, 0x09, 0x09, 0x07, 0x70, + 0x69, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x46, 0x00, 0x00, 0x37, 0x15, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x02, 0x32, 0x16, 0x17, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x33, 0x32, 0x36, 0x35, + 0x34, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x36, 0xC0, 0x13, 0x0D, 0x10, 0x1B, 0x25, 0x25, 0x1B, + 0x10, 0x0D, 0x13, 0xB0, 0x10, 0x0D, 0x13, 0x13, 0x0D, 0x10, 0x1B, 0x25, 0x25, 0xF4, 0xD2, 0x94, 0x03, 0x35, 0x25, 0xB6, 0x14, 0x1C, 0x1C, 0x14, 0x20, + 0x14, 0x1C, 0x66, 0x11, 0x19, 0x7A, 0xAC, 0x7A, 0x09, 0x07, 0x10, 0x07, 0x09, 0x03, 0xF0, 0x70, 0x0D, 0x13, 0x25, 0x1B, 0x30, 0x1B, 0x25, 0x13, 0x9D, + 0x13, 0x0D, 0x70, 0x0D, 0x13, 0x25, 0x1B, 0x30, 0x1B, 0x25, 0x01, 0x60, 0x97, 0x69, 0xA6, 0x25, 0x35, 0x1C, 0x28, 0x1C, 0x1C, 0x14, 0x19, 0x11, 0xA4, + 0x02, 0x56, 0x7A, 0x7A, 0x56, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x69, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x21, 0x01, 0xC1, 0x00, 0x03, 0x00, + 0x11, 0x00, 0x1B, 0x00, 0x00, 0x15, 0x37, 0x17, 0x07, 0x13, 0x37, 0x17, 0x07, 0x06, 0x2F, 0x01, 0x07, 0x27, 0x37, 0x27, 0x26, 0x35, 0x34, 0x25, 0x1E, + 0x01, 0x0F, 0x01, 0x27, 0x37, 0x36, 0x16, 0x17, 0x44, 0x43, 0x23, 0x19, 0x29, 0xAD, 0x23, 0x10, 0x16, 0x2B, 0x33, 0x60, 0x33, 0x0D, 0x02, 0x01, 0xA0, + 0x0F, 0x02, 0x0F, 0xAA, 0xA9, 0xC7, 0x10, 0x2B, 0x10, 0x20, 0x46, 0x43, 0x23, 0x01, 0x10, 0x23, 0xAD, 0x2A, 0x11, 0x07, 0x0D, 0x33, 0x60, 0x33, 0x2B, + 0x05, 0x06, 0x10, 0xAC, 0x10, 0x2B, 0x10, 0xC7, 0xA9, 0xAA, 0x0F, 0x02, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, + 0xC0, 0x00, 0x13, 0x00, 0x27, 0x00, 0x3B, 0x00, 0x47, 0x00, 0x53, 0x00, 0x5F, 0x00, 0x6B, 0x00, 0x73, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26, 0x27, 0x26, + 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x17, + 0x16, 0x17, 0x16, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, + 0x01, 0x32, 0x1F, 0x01, 0x07, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, + 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, + 0x01, 0x32, 0x00, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x01, 0x9E, 0x05, 0x1B, 0x2B, 0x07, 0x01, 0x0A, 0x07, 0x10, 0x0E, 0x02, 0x05, 0x1B, 0x2B, + 0x07, 0x01, 0x0A, 0x07, 0x10, 0x0E, 0x6E, 0x05, 0x1B, 0x2B, 0x07, 0x01, 0x0A, 0x07, 0x10, 0x0E, 0x02, 0x05, 0x1B, 0x2B, 0x07, 0x01, 0x0A, 0x07, 0x10, + 0x0E, 0xAC, 0x0D, 0x13, 0x25, 0x1B, 0xFE, 0x80, 0x1B, 0x25, 0x25, 0x1B, 0x2B, 0x15, 0x11, 0x6F, 0x80, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x60, 0x08, + 0x10, 0x08, 0x08, 0x10, 0x08, 0x60, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0x60, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, 0xFE, 0xBB, 0x36, 0x25, 0x25, 0x36, + 0x25, 0x01, 0x0E, 0x28, 0x16, 0x24, 0x3E, 0x07, 0x0B, 0x0E, 0x28, 0x16, 0x24, 0x3E, 0x07, 0x0B, 0x0E, 0x28, 0x16, 0x24, 0x3E, 0x07, 0x0B, 0x0E, 0x28, + 0x16, 0x24, 0x3E, 0x07, 0x0B, 0x40, 0x13, 0x0D, 0xA0, 0x1B, 0x25, 0x25, 0x1B, 0xE0, 0x1B, 0x25, 0x0D, 0x53, 0xB8, 0x70, 0x08, 0x08, 0x70, 0x08, 0x08, + 0x70, 0x08, 0x08, 0x70, 0x08, 0x08, 0x70, 0x08, 0x08, 0x70, 0x08, 0x08, 0x70, 0x08, 0x08, 0x70, 0x08, 0x01, 0x40, 0x25, 0x36, 0x25, 0x25, 0x36, 0x00, + 0x08, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x2D, 0x00, 0x3D, 0x00, 0x4D, 0x00, 0x5D, 0x00, 0x6D, 0x00, 0x73, 0x00, 0x83, 0x00, 0x93, + 0x00, 0x00, 0x01, 0x23, 0x11, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x11, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x05, 0x15, + 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, + 0x26, 0x2B, 0x01, 0x22, 0x06, 0x27, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x17, 0x32, 0x36, 0x3D, + 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x33, 0x17, 0x33, 0x34, 0x26, 0x22, 0x06, 0x25, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, + 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, + 0x02, 0x30, 0x10, 0x10, 0x07, 0x09, 0x09, 0x07, 0xF0, 0x09, 0x07, 0x20, 0x07, 0x09, 0xF0, 0x07, 0x09, 0x09, 0x07, 0x10, 0x10, 0x07, 0x09, 0x09, 0x07, + 0x02, 0x20, 0x07, 0x09, 0x09, 0xFE, 0xC9, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, + 0x05, 0x08, 0x80, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x33, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x33, 0xC0, + 0x38, 0x50, 0x38, 0x01, 0x00, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, + 0x01, 0x80, 0xFE, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x50, 0x07, 0x09, 0x09, 0x07, 0x50, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x80, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x2D, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x65, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, + 0x08, 0x08, 0x5B, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x98, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x80, 0x28, + 0x38, 0x38, 0x65, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x65, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x36, 0x00, 0x3F, 0x00, 0x4B, 0x00, 0x00, 0x01, 0x26, 0x3D, + 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x17, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x05, 0x36, 0x1F, 0x01, 0x23, + 0x22, 0x27, 0x36, 0x01, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x34, 0x26, 0x27, 0x26, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, + 0x01, 0x14, 0x03, 0x32, 0x1F, 0x01, 0x23, 0x22, 0x2F, 0x01, 0x32, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x01, 0xBC, + 0x3C, 0x08, 0x30, 0x08, 0x28, 0x1A, 0x1E, 0x08, 0x30, 0x08, 0xFE, 0xE3, 0x24, 0x18, 0x71, 0x59, 0x97, 0x80, 0x5A, 0x01, 0xCF, 0x29, 0x2E, 0x08, 0x30, + 0x08, 0x24, 0x1F, 0x1D, 0x08, 0x30, 0x08, 0xB7, 0x1D, 0x14, 0x76, 0x59, 0x1D, 0x14, 0x75, 0x01, 0x01, 0x56, 0x0A, 0x0E, 0x0E, 0x0A, 0x11, 0x1E, 0x13, + 0x76, 0x01, 0x0B, 0x2A, 0x41, 0x42, 0x08, 0x08, 0x3E, 0x2C, 0x1C, 0x12, 0x39, 0x21, 0x1E, 0x08, 0x08, 0x1E, 0x2C, 0x99, 0x06, 0x1B, 0x84, 0x50, 0x38, + 0x01, 0x21, 0x1B, 0x57, 0x31, 0x1E, 0x08, 0x08, 0x1E, 0x26, 0x42, 0x14, 0x13, 0x25, 0x3E, 0x08, 0x08, 0x3E, 0x0B, 0xFE, 0xF1, 0x16, 0x8A, 0x16, 0x8A, + 0x0E, 0x0A, 0x70, 0x0A, 0x0E, 0x16, 0x8A, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x2C, 0x00, + 0x34, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x17, 0x34, 0x27, 0x36, 0x35, 0x34, + 0x26, 0x27, 0x26, 0x06, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x16, 0x37, 0x3E, 0x02, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x9B, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xA8, 0x23, 0x23, 0x29, 0x1F, 0x06, 0x03, 0x06, + 0x11, 0x15, 0x15, 0x11, 0x05, 0x05, 0x11, 0x15, 0x15, 0x11, 0x06, 0x03, 0x06, 0x1F, 0x29, 0x0B, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xB8, 0x91, 0xCE, + 0x91, 0x91, 0xCE, 0x57, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xAF, 0x16, 0x0E, 0x0E, 0x16, 0x10, 0x1B, 0x01, 0x01, 0x0D, 0x03, 0x07, 0x09, 0x19, 0x09, 0x07, + 0x02, 0x0B, 0x02, 0x07, 0x09, 0x1A, 0x08, 0x08, 0x02, 0x0E, 0x01, 0x02, 0x1B, 0xAB, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x17, 0x00, 0x34, 0x00, 0x44, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, + 0x17, 0x16, 0x36, 0x35, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x34, 0x27, 0x36, 0x35, 0x34, 0x26, 0x27, 0x26, + 0x06, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x16, 0x37, 0x3E, 0x01, 0x37, 0x16, 0x36, 0x35, 0x2E, + 0x01, 0x22, 0x06, 0x07, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xD1, 0x03, 0x0C, 0x02, 0x23, 0x26, 0x23, 0x02, + 0x0C, 0x03, 0x09, 0x0D, 0x26, 0x0D, 0x68, 0x23, 0x23, 0x29, 0x1F, 0x06, 0x03, 0x06, 0x11, 0x15, 0x15, 0x11, 0x05, 0x05, 0x11, 0x15, 0x15, 0x11, 0x06, + 0x03, 0x06, 0x1F, 0x29, 0x41, 0x03, 0x0C, 0x02, 0x23, 0x26, 0x23, 0x02, 0x0C, 0x03, 0x09, 0x0D, 0x26, 0x0D, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, + 0x4B, 0x06, 0x04, 0x07, 0x1E, 0x29, 0x29, 0x1E, 0x07, 0x03, 0x05, 0x11, 0x16, 0x16, 0xB9, 0x16, 0x0E, 0x0E, 0x16, 0x10, 0x1B, 0x01, 0x01, 0x0D, 0x03, + 0x07, 0x09, 0x19, 0x09, 0x07, 0x02, 0x0B, 0x02, 0x07, 0x09, 0x1A, 0x08, 0x08, 0x02, 0x0E, 0x01, 0x02, 0x1B, 0xB7, 0x06, 0x04, 0x07, 0x1E, 0x29, 0x29, + 0x1E, 0x07, 0x03, 0x05, 0x11, 0x16, 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xFC, 0x01, 0xB8, 0x00, 0x11, 0x00, 0x25, 0x00, 0x2D, + 0x00, 0x4A, 0x00, 0x5A, 0x00, 0x00, 0x25, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, 0x36, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x07, + 0x16, 0x15, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x26, 0x23, 0x2E, 0x01, 0x07, 0x06, 0x26, 0x32, 0x36, 0x34, 0x26, 0x22, + 0x06, 0x14, 0x17, 0x34, 0x27, 0x36, 0x35, 0x34, 0x26, 0x27, 0x26, 0x06, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x0E, 0x01, 0x1F, 0x01, 0x16, 0x14, 0x0F, + 0x01, 0x06, 0x16, 0x37, 0x3E, 0x01, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x06, 0x16, 0x01, 0xF5, 0x07, + 0x11, 0x12, 0x53, 0x0A, 0x03, 0x17, 0x05, 0x14, 0x13, 0x11, 0x1C, 0x04, 0x03, 0x08, 0x10, 0x1F, 0xAB, 0x17, 0x2F, 0x34, 0x67, 0x91, 0x91, 0xCE, 0x91, + 0x11, 0x0B, 0x08, 0x15, 0x54, 0x17, 0x11, 0xA0, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x98, 0x23, 0x23, 0x29, 0x1F, 0x06, 0x04, 0x07, 0x11, 0x15, 0x15, 0x11, + 0x04, 0x01, 0x05, 0x11, 0x15, 0x15, 0x11, 0x06, 0x03, 0x06, 0x1F, 0x29, 0x10, 0x0A, 0x0B, 0x27, 0x0B, 0x09, 0x07, 0x0E, 0x01, 0x03, 0x25, 0x28, 0x25, + 0x03, 0x01, 0x0F, 0x2E, 0x12, 0x21, 0x05, 0x16, 0x02, 0x09, 0x53, 0x12, 0x20, 0x03, 0x02, 0x13, 0x10, 0x09, 0x02, 0x05, 0x0F, 0x0B, 0x54, 0x01, 0x15, + 0x91, 0xCE, 0x91, 0x91, 0x67, 0x2E, 0x2C, 0x03, 0x25, 0x02, 0x23, 0x1C, 0x7F, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xAF, 0x16, 0x0E, 0x0E, 0x16, 0x10, 0x1B, + 0x01, 0x01, 0x0D, 0x03, 0x07, 0x09, 0x19, 0x09, 0x07, 0x02, 0x0B, 0x02, 0x07, 0x09, 0x1A, 0x08, 0x08, 0x02, 0x0E, 0x01, 0x02, 0x1B, 0xC2, 0x09, 0x09, + 0x09, 0x09, 0x06, 0x08, 0x09, 0x12, 0x18, 0x18, 0x12, 0x09, 0x08, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, + 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x25, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x04, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x32, 0x36, 0x37, 0x36, 0x26, 0x23, 0x21, 0x22, 0x06, 0x17, 0x1E, 0x01, 0x33, 0x91, 0xCE, 0x91, + 0x91, 0xCE, 0x91, 0x01, 0x55, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xB3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x38, 0x37, 0x51, 0x07, 0x01, 0x0A, 0x07, 0xFE, 0xF2, + 0x07, 0x0A, 0x01, 0x07, 0x51, 0x37, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x07, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, + 0xFD, 0x48, 0x36, 0x07, 0x0B, 0x0B, 0x07, 0x36, 0x48, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x17, 0x00, 0x27, + 0x00, 0x35, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x27, 0x2E, + 0x01, 0x22, 0x06, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x05, 0x36, 0x26, 0x23, 0x21, 0x22, + 0x06, 0x17, 0x1E, 0x01, 0x3B, 0x01, 0x32, 0x36, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x10, 0x01, 0x0D, 0x03, 0x0A, 0x0C, 0x26, 0x0D, 0x09, 0x03, + 0x0D, 0x01, 0x02, 0x23, 0x26, 0x23, 0xA2, 0x01, 0x0D, 0x03, 0x0A, 0x0C, 0x26, 0x0D, 0x09, 0x03, 0x0D, 0x01, 0x02, 0x23, 0x26, 0x23, 0x01, 0x1D, 0x01, + 0x0A, 0x07, 0xFE, 0xF2, 0x07, 0x0A, 0x01, 0x07, 0x51, 0x37, 0x10, 0x37, 0x51, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x36, 0x07, 0x03, 0x05, 0x11, + 0x16, 0x16, 0x11, 0x05, 0x03, 0x07, 0x1E, 0x29, 0x29, 0x1E, 0x07, 0x03, 0x05, 0x11, 0x16, 0x16, 0x11, 0x05, 0x03, 0x07, 0x1E, 0x29, 0x29, 0x81, 0x07, + 0x0B, 0x0B, 0x07, 0x36, 0x48, 0x48, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x14, 0x00, 0x21, 0x00, 0x2F, 0x00, + 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x36, 0x2F, 0x01, 0x37, 0x36, 0x26, 0x0F, 0x01, 0x17, 0x07, + 0x06, 0x16, 0x3F, 0x01, 0x36, 0x34, 0x2F, 0x01, 0x26, 0x06, 0x05, 0x36, 0x26, 0x23, 0x21, 0x22, 0x06, 0x17, 0x1E, 0x01, 0x3B, 0x01, 0x32, 0x36, 0x91, + 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x1A, 0x06, 0x06, 0x50, 0x08, 0x0E, 0x07, 0x21, 0x21, 0x07, 0x0E, 0x08, 0xF3, 0x21, 0x21, 0x07, 0x0E, 0x08, 0x50, + 0x06, 0x06, 0x50, 0x08, 0x0E, 0x01, 0x1F, 0x01, 0x0A, 0x07, 0xFE, 0xF2, 0x07, 0x0A, 0x01, 0x07, 0x51, 0x37, 0x10, 0x37, 0x51, 0x01, 0xB8, 0x91, 0xCE, + 0x91, 0x91, 0xCE, 0x11, 0x03, 0x0E, 0x03, 0x30, 0x05, 0x0F, 0x08, 0x28, 0x28, 0x08, 0x0F, 0x05, 0x12, 0x28, 0x28, 0x08, 0x0F, 0x05, 0x30, 0x03, 0x0E, + 0x03, 0x30, 0x05, 0x0F, 0xAE, 0x07, 0x0B, 0x0B, 0x07, 0x36, 0x48, 0x48, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, + 0x17, 0x00, 0x1F, 0x00, 0x2D, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, + 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x36, 0x26, 0x23, 0x21, 0x22, 0x06, 0x17, 0x1E, 0x01, 0x3B, + 0x01, 0x32, 0x36, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x0C, 0x01, 0x0F, 0x06, 0x0A, 0x0B, 0x26, 0x0C, 0x09, 0x06, 0x0F, 0x01, 0x03, 0x25, 0x28, + 0x25, 0x5A, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xC7, 0x01, 0x0A, 0x07, 0xFE, 0xF2, 0x07, 0x0A, 0x01, 0x07, 0x51, 0x37, 0x10, 0x37, 0x51, 0x01, 0xB8, 0x91, + 0xCE, 0x91, 0x91, 0xCE, 0x35, 0x08, 0x09, 0x06, 0x09, 0x09, 0x09, 0x09, 0x06, 0x09, 0x08, 0x12, 0x18, 0x18, 0x1C, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x7F, + 0x07, 0x0B, 0x0B, 0x07, 0x36, 0x48, 0x48, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x13, 0x00, + 0x41, 0x00, 0x4C, 0x00, 0x50, 0x00, 0x00, 0x37, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x25, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x33, 0x32, + 0x16, 0x15, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x23, 0x16, 0x15, 0x14, 0x06, + 0x22, 0x26, 0x35, 0x34, 0x37, 0x23, 0x22, 0x26, 0x35, 0x11, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, 0x01, 0x15, + 0x23, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x07, 0x35, 0x23, 0x15, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x01, 0x40, 0x13, 0x0D, 0x20, 0x20, + 0x0D, 0x13, 0x30, 0x07, 0x09, 0x09, 0x07, 0x53, 0x03, 0x1C, 0x28, 0x1C, 0x03, 0xC6, 0x03, 0x1C, 0x28, 0x1C, 0x03, 0x53, 0x07, 0x09, 0x30, 0x07, 0x09, + 0x09, 0x07, 0x60, 0x07, 0x09, 0x01, 0x60, 0xC0, 0x1C, 0x14, 0x60, 0x14, 0x1C, 0x30, 0x60, 0x80, 0x13, 0x0D, 0xA0, 0x0D, 0x13, 0xE0, 0x20, 0x0D, 0x13, + 0xE0, 0x13, 0x0D, 0xFF, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, 0x08, 0x08, 0x14, 0x1C, 0x1C, 0x14, 0x08, 0x08, 0x08, 0x08, 0x14, 0x1C, 0x1C, 0x14, 0x08, + 0x08, 0x09, 0x07, 0x01, 0x70, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x90, 0x01, 0x20, 0xE0, 0x01, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0x30, 0x30, + 0x30, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xBE, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x16, 0x00, 0x20, 0x00, 0x29, 0x00, 0x00, 0x12, 0x32, 0x16, 0x15, + 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x35, 0x34, 0x07, 0x37, 0x16, 0x17, 0x15, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x04, 0x32, 0x37, 0x36, 0x37, 0x15, + 0x27, 0x35, 0x16, 0x17, 0x25, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x11, 0xEC, 0x68, 0x4A, 0x72, 0x05, 0x0E, 0x05, 0x72, 0x8E, 0x77, 0x07, 0x0E, + 0x8A, 0x08, 0x0E, 0x01, 0x0A, 0x2C, 0x0F, 0x21, 0x1A, 0xC0, 0x1A, 0x21, 0x01, 0x2F, 0x08, 0x0E, 0x14, 0x8C, 0x01, 0xC0, 0x4A, 0x34, 0x3E, 0x86, 0x06, + 0x06, 0x86, 0x3E, 0x34, 0x8E, 0x30, 0x16, 0x19, 0xE9, 0x3F, 0x03, 0x0A, 0x08, 0xFA, 0x16, 0x88, 0x11, 0x28, 0x25, 0xF6, 0x40, 0xB6, 0x25, 0x28, 0xB6, + 0x03, 0x0A, 0x08, 0xFA, 0x16, 0x08, 0x38, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xBE, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x0B, 0x00, + 0x13, 0x00, 0x1E, 0x00, 0x28, 0x00, 0x31, 0x00, 0x00, 0x12, 0x32, 0x16, 0x15, 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x35, 0x34, 0x16, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x07, 0x37, 0x16, 0x17, 0x15, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x04, 0x32, 0x37, 0x36, 0x37, 0x15, 0x27, 0x35, 0x16, 0x17, + 0x25, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x11, 0xEC, 0x68, 0x4A, 0x72, 0x05, 0x0E, 0x05, 0x72, 0x6D, 0x22, 0x19, 0x19, 0x22, 0x19, 0xE2, 0x77, + 0x07, 0x0E, 0x8A, 0x08, 0x0E, 0x01, 0x0A, 0x2C, 0x0F, 0x21, 0x1A, 0xC0, 0x1A, 0x21, 0x01, 0x2F, 0x08, 0x0E, 0x14, 0x8C, 0x01, 0xC0, 0x4A, 0x34, 0x3E, + 0x86, 0x06, 0x06, 0x86, 0x3E, 0x34, 0x5E, 0x19, 0x22, 0x19, 0x19, 0x22, 0x49, 0x30, 0x16, 0x19, 0xE9, 0x3F, 0x03, 0x0A, 0x08, 0xFA, 0x16, 0x88, 0x11, + 0x28, 0x25, 0xF6, 0x40, 0xB6, 0x25, 0x28, 0xB6, 0x03, 0x0A, 0x08, 0xFA, 0x16, 0x08, 0x38, 0x01, 0x20, 0x00, 0x00, 0x02, 0xFF, 0xFE, 0xFF, 0xBE, 0x02, + 0x01, 0x01, 0xC1, 0x00, 0x09, 0x00, 0x1E, 0x00, 0x00, 0x3F, 0x01, 0x17, 0x07, 0x06, 0x07, 0x06, 0x26, 0x37, 0x36, 0x00, 0x16, 0x14, 0x0F, 0x01, 0x27, + 0x37, 0x27, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x5E, 0x4B, 0x80, 0x4B, 0x51, 0x72, 0x0C, 0x10, 0x01, 0x0D, + 0x01, 0xBE, 0x35, 0x1B, 0xA5, 0x80, 0x62, 0x13, 0x57, 0x0C, 0x0B, 0x17, 0x0B, 0x0B, 0x69, 0x0B, 0x21, 0x0C, 0x25, 0x15, 0x1B, 0x9E, 0x4B, 0x80, 0x4B, + 0x51, 0x0D, 0x01, 0x10, 0x0C, 0x72, 0x01, 0x73, 0x35, 0x4B, 0x1B, 0xA5, 0x80, 0x62, 0x14, 0x57, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x68, 0x0C, 0x0C, 0x24, + 0x15, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFD, 0xFF, 0xC0, 0x02, 0x03, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x13, 0x00, 0x1B, 0x00, 0x34, 0x00, 0x00, + 0x13, 0x06, 0x07, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x25, 0x32, 0x16, 0x0F, 0x01, 0x26, 0x27, 0x37, 0x36, 0x33, 0x06, 0x32, 0x16, 0x14, 0x06, + 0x22, 0x26, 0x34, 0x05, 0x36, 0x26, 0x2F, 0x02, 0x26, 0x22, 0x0F, 0x02, 0x0E, 0x01, 0x1F, 0x01, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x36, 0x2F, + 0x01, 0xE0, 0x3F, 0x2F, 0x6F, 0x06, 0x09, 0x0A, 0x6F, 0x12, 0x0A, 0x01, 0x55, 0x0A, 0x09, 0x06, 0x6F, 0x2F, 0x3F, 0x45, 0x0A, 0x12, 0xCA, 0x92, 0x67, + 0x67, 0x92, 0x67, 0x01, 0x0D, 0x05, 0x05, 0x07, 0x34, 0x18, 0x03, 0x0E, 0x03, 0x18, 0x34, 0x07, 0x05, 0x05, 0x26, 0x09, 0x01, 0x0C, 0x06, 0x2F, 0x2F, + 0x06, 0x0C, 0x01, 0x09, 0x01, 0x3D, 0x0A, 0x2B, 0x9F, 0x08, 0x11, 0x10, 0x10, 0x11, 0x08, 0x9F, 0x2B, 0x0A, 0x73, 0x10, 0xA0, 0x67, 0x92, 0x67, 0x67, + 0x92, 0x36, 0x05, 0x0D, 0x01, 0x08, 0x2F, 0x07, 0x07, 0x2F, 0x08, 0x01, 0x0D, 0x05, 0x25, 0x34, 0x07, 0x09, 0x03, 0x19, 0x19, 0x03, 0x09, 0x07, 0x34, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, + 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, + 0x9B, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xB3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x57, 0x13, 0x1A, 0x13, 0x13, 0x1A, + 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x19, 0x00, 0x21, 0x00, 0x33, + 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x27, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, + 0x34, 0x37, 0x06, 0x17, 0x32, 0x34, 0x2B, 0x01, 0x22, 0x14, 0x33, 0x36, 0x32, 0x36, 0x35, 0x34, 0x27, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, + 0x37, 0x06, 0x15, 0x14, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x58, 0x26, 0x34, 0x26, 0x22, 0x02, 0x13, 0x1A, 0x13, 0x02, 0x22, 0xE0, 0x10, 0x10, 0x80, + 0x10, 0x10, 0x86, 0x34, 0x26, 0x22, 0x02, 0x13, 0x1A, 0x13, 0x02, 0x22, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x47, 0x1A, 0x26, 0x26, 0x1A, 0x26, + 0x12, 0x06, 0x02, 0x0D, 0x13, 0x13, 0x0D, 0x02, 0x06, 0x12, 0xD6, 0x20, 0x20, 0x70, 0x26, 0x1A, 0x26, 0x12, 0x06, 0x02, 0x0D, 0x13, 0x13, 0x0D, 0x02, + 0x06, 0x12, 0x26, 0x1A, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC7, 0x00, 0x0F, 0x00, 0x1A, 0x00, 0x2A, 0x00, 0x00, 0x21, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x13, 0x21, 0x13, 0x36, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, + 0x07, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x01, 0x70, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xA0, 0x07, + 0x09, 0x09, 0x07, 0x01, 0x11, 0x1F, 0xFF, 0x00, 0x1F, 0x01, 0x08, 0x4D, 0x0B, 0x0B, 0x4D, 0x08, 0x30, 0x08, 0x05, 0x46, 0x05, 0x08, 0x08, 0x05, 0x46, + 0x05, 0x08, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x5B, 0xFE, 0xC5, 0x01, 0x3B, 0x0C, 0x08, 0x4C, 0x0C, 0x0C, 0x4C, 0x08, + 0xDA, 0x26, 0x05, 0x08, 0x08, 0x05, 0x26, 0x05, 0x08, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x03, 0x01, 0xC0, 0x00, 0x09, 0x00, + 0x2B, 0x00, 0x00, 0x01, 0x07, 0x23, 0x37, 0x36, 0x33, 0x32, 0x17, 0x1E, 0x01, 0x07, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x14, 0x06, 0x07, + 0x16, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x37, 0x36, 0x37, 0x2E, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0xF6, 0x64, + 0x97, 0xCC, 0x09, 0x0C, 0x09, 0x07, 0x11, 0x05, 0x12, 0x07, 0x09, 0x09, 0x07, 0x10, 0x43, 0x36, 0x14, 0x05, 0x01, 0x0A, 0x07, 0xE0, 0x07, 0x0A, 0x01, + 0x05, 0x14, 0x36, 0x43, 0x10, 0x07, 0x09, 0x09, 0x07, 0x01, 0x83, 0x63, 0x99, 0x07, 0x04, 0x08, 0x24, 0x90, 0x09, 0x07, 0x20, 0x07, 0x09, 0x3C, 0x61, + 0x15, 0x1B, 0x20, 0x07, 0x0C, 0x0C, 0x07, 0x20, 0x1B, 0x15, 0x61, 0x3C, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, + 0x02, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x30, 0x00, 0x00, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, + 0x15, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x33, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x36, 0x35, 0x01, 0xA0, 0x13, 0x0D, 0xFE, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x60, 0x0D, 0x13, 0x20, 0x1B, + 0x25, 0x38, 0x28, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x25, 0x1B, 0xA0, 0x0D, 0x13, 0x01, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x60, + 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x25, 0x1B, 0x40, 0x28, 0x38, 0x20, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x20, 0x1B, 0x25, 0x13, + 0x0D, 0x00, 0x09, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x04, 0x00, 0x09, 0x00, 0x10, 0x00, 0x17, 0x00, 0x1C, 0x00, 0x2C, 0x00, 0x38, + 0x00, 0x40, 0x00, 0x45, 0x00, 0x00, 0x13, 0x36, 0x37, 0x06, 0x0F, 0x01, 0x33, 0x16, 0x17, 0x26, 0x17, 0x2E, 0x01, 0x27, 0x33, 0x0E, 0x01, 0x27, 0x3E, + 0x01, 0x37, 0x1E, 0x01, 0x1F, 0x01, 0x36, 0x37, 0x33, 0x06, 0x13, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, + 0x33, 0x01, 0x32, 0x36, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x14, 0x16, 0x33, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, 0x16, 0x17, 0x23, + 0x26, 0x82, 0x08, 0x2D, 0x0C, 0x02, 0x27, 0x27, 0x02, 0x0C, 0x2D, 0x56, 0x07, 0x0F, 0x01, 0x2E, 0x01, 0x0F, 0x1E, 0x01, 0x0F, 0x07, 0x07, 0x0F, 0x01, + 0x12, 0x0C, 0x02, 0x27, 0x08, 0x6A, 0x0D, 0x13, 0x13, 0x0D, 0xFE, 0xA0, 0x1B, 0x25, 0x25, 0x1B, 0x01, 0x10, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, + 0x09, 0x07, 0x3B, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0xA9, 0x2D, 0x08, 0x27, 0x02, 0x01, 0x10, 0x31, 0x15, 0x1D, 0x29, 0x20, 0x29, 0x1D, 0x15, 0x1E, 0x07, + 0x2A, 0x1E, 0x1E, 0x2A, 0x68, 0x1E, 0x2A, 0x07, 0x07, 0x2A, 0x1E, 0x66, 0x1D, 0x29, 0x31, 0x01, 0x01, 0x13, 0x0D, 0xFE, 0x40, 0x0D, 0x13, 0x25, 0x1B, + 0x01, 0x80, 0x1B, 0x25, 0xFE, 0x60, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x60, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x8B, 0x15, 0x31, 0x29, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x07, 0x01, 0xCC, 0x00, 0x17, 0x00, 0x1E, 0x00, 0x00, 0x3F, 0x01, 0x17, 0x07, 0x06, 0x0F, 0x01, 0x27, 0x37, + 0x16, 0x33, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x15, 0x14, 0x17, 0x07, 0x27, 0x37, 0x36, 0x01, 0x36, 0x1E, 0x01, 0x0F, 0x01, 0x27, 0x4F, 0x54, 0x63, + 0x21, 0x05, 0x0F, 0xB1, 0x05, 0x5D, 0x06, 0x02, 0x0D, 0x13, 0x13, 0x1A, 0x13, 0x02, 0x5D, 0x05, 0x3B, 0x05, 0x01, 0x31, 0x23, 0x5D, 0x16, 0x24, 0xC7, + 0x62, 0xA5, 0x21, 0x63, 0x54, 0x0F, 0x05, 0x3B, 0x05, 0x5D, 0x02, 0x13, 0x1A, 0x13, 0x13, 0x0D, 0x02, 0x06, 0x5D, 0x05, 0xB1, 0x0F, 0x01, 0x04, 0x27, + 0x1E, 0x54, 0x28, 0xB7, 0x62, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x01, 0x01, 0xC1, 0x00, 0x17, 0x00, 0x21, 0x00, 0x00, 0x13, + 0x37, 0x17, 0x07, 0x06, 0x07, 0x05, 0x27, 0x37, 0x16, 0x33, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x15, 0x14, 0x17, 0x07, 0x27, 0x13, 0x36, 0x25, 0x16, + 0x14, 0x0F, 0x01, 0x27, 0x37, 0x36, 0x32, 0x17, 0x89, 0x97, 0x80, 0x2B, 0x09, 0x20, 0xFE, 0xE8, 0x0F, 0x96, 0x0A, 0x0B, 0x14, 0x1C, 0x1C, 0x28, 0x1C, + 0x05, 0x96, 0x0F, 0x5D, 0x0B, 0x01, 0x8A, 0x0E, 0x0E, 0x39, 0x80, 0x39, 0x0E, 0x28, 0x0E, 0x01, 0x35, 0x2B, 0x80, 0x97, 0x21, 0x0B, 0x5D, 0x0F, 0x96, + 0x05, 0x1C, 0x28, 0x1C, 0x1C, 0x14, 0x0B, 0x0A, 0x96, 0x0F, 0x01, 0x18, 0x20, 0x4A, 0x0E, 0x28, 0x0E, 0x39, 0x80, 0x39, 0x0E, 0x0E, 0x00, 0x00, 0x00, + 0x04, 0xFF, 0xFE, 0xFF, 0xBE, 0x02, 0x01, 0x01, 0xC1, 0x00, 0x12, 0x00, 0x1C, 0x00, 0x24, 0x00, 0x36, 0x00, 0x00, 0x37, 0x27, 0x26, 0x34, 0x3F, 0x01, + 0x36, 0x32, 0x1F, 0x01, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x32, 0x3F, 0x01, 0x1F, 0x01, 0x07, 0x27, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x27, 0x17, + 0x01, 0x07, 0x06, 0x26, 0x3F, 0x01, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x37, 0x17, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x6D, + 0x64, 0x09, 0x09, 0x5A, 0x09, 0x1B, 0x09, 0x22, 0x3E, 0x06, 0x06, 0x0B, 0x02, 0x07, 0x02, 0x3E, 0x2C, 0xFE, 0x2E, 0x71, 0x2E, 0x0E, 0x28, 0x0E, 0x2D, + 0x0E, 0xC4, 0x71, 0xFE, 0xD7, 0x6B, 0x0B, 0x10, 0x02, 0x13, 0x01, 0xE4, 0x09, 0x09, 0x5A, 0x09, 0x1B, 0x09, 0x64, 0x87, 0x2C, 0x3E, 0x06, 0x06, 0x0B, + 0x06, 0x05, 0x3E, 0xCC, 0x64, 0x09, 0x1B, 0x09, 0x5A, 0x09, 0x09, 0x22, 0x3E, 0x05, 0x06, 0x0B, 0x02, 0x02, 0x3E, 0x2C, 0x12, 0x2E, 0x71, 0x2E, 0x0E, + 0x0E, 0x2D, 0x0E, 0x28, 0x1E, 0x71, 0xFE, 0xD7, 0x13, 0x02, 0x10, 0x0B, 0x6B, 0x0C, 0x09, 0x1B, 0x09, 0x5A, 0x09, 0x09, 0x65, 0x86, 0x2C, 0x3E, 0x05, + 0x06, 0x0B, 0x06, 0x06, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC2, 0x00, 0x0F, 0x00, 0x2E, 0x00, 0x00, 0x21, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x1F, + 0x02, 0x27, 0x34, 0x36, 0x1F, 0x01, 0x16, 0x1F, 0x02, 0x16, 0x17, 0x16, 0x06, 0x07, 0x06, 0x27, 0x25, 0x26, 0x27, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, + 0xFD, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x1D, 0x0D, 0x0D, 0x08, 0x27, 0x08, 0x03, 0x1C, 0x66, 0x30, 0x0D, 0x08, 0x41, 0x09, 0x03, 0x64, 0x62, 0x2B, 0x1C, + 0x1D, 0x0D, 0x28, 0x26, 0x2B, 0xFE, 0xE0, 0x0E, 0x0B, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xF2, 0x0B, 0x0D, 0x65, 0x09, 0x09, + 0x02, 0x0B, 0x02, 0x08, 0x43, 0x1C, 0xA4, 0x08, 0x0B, 0x03, 0x11, 0x03, 0x09, 0xC0, 0x1B, 0x0B, 0x1D, 0x1E, 0x31, 0x0B, 0x0B, 0x0C, 0x4E, 0x04, 0x0A, + 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x89, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x31, 0x00, 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x27, 0x26, 0x36, 0x3F, 0x01, + 0x36, 0x33, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x17, 0x1E, 0x01, 0x07, 0x06, 0x07, 0x05, 0x06, 0x2B, 0x01, 0x22, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0xFD, + 0xA0, 0x07, 0x09, 0x09, 0x07, 0x41, 0x4D, 0x05, 0x03, 0x08, 0x28, 0x04, 0x08, 0x04, 0x48, 0x68, 0x9D, 0x06, 0x04, 0x08, 0x41, 0x04, 0x04, 0x06, 0x04, + 0xDB, 0x63, 0x2B, 0x2B, 0x2E, 0x18, 0x19, 0x17, 0x2C, 0xFE, 0xDD, 0x0E, 0x10, 0x82, 0x0F, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x6B, 0x53, 0x06, 0x12, 0x04, 0x14, 0x02, 0x02, 0x24, 0x34, 0x62, 0x07, 0x12, 0x04, 0x21, 0x02, 0x03, 0x52, 0x32, 0x16, 0x03, 0x03, 0x31, 0x27, 0x24, + 0x16, 0x94, 0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xD9, 0x01, 0x87, 0x01, 0xA0, 0x00, 0x2A, 0x00, 0x32, 0x00, 0x00, 0x25, 0x17, 0x16, 0x0F, 0x01, + 0x06, 0x2F, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x27, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x17, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x07, 0x25, 0x15, 0x33, 0x32, 0x36, 0x34, 0x26, 0x23, 0x01, 0x2D, 0x4E, 0x0C, + 0x0C, 0x16, 0x0C, 0x0B, 0x4E, 0x4E, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x4E, 0x80, 0x13, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x90, 0x28, 0x38, 0x30, + 0x24, 0x54, 0x4E, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0xFE, 0xC5, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x4E, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x4E, 0x4E, 0x0C, + 0x0C, 0x16, 0x0C, 0x0B, 0x4E, 0x80, 0x50, 0x07, 0x09, 0x09, 0x07, 0x01, 0x00, 0x07, 0x09, 0x38, 0x28, 0x24, 0x36, 0x05, 0x54, 0x4E, 0x0C, 0x0C, 0x16, + 0x0C, 0x0B, 0xB2, 0x40, 0x13, 0x1A, 0x13, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x1B, 0x00, 0x2B, 0x00, + 0x33, 0x00, 0x44, 0x00, 0x00, 0x12, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x06, 0x22, 0x27, 0x35, 0x34, 0x26, + 0x22, 0x06, 0x1D, 0x01, 0x2E, 0x01, 0x35, 0x34, 0x1F, 0x01, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x16, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x91, + 0xCE, 0x91, 0x41, 0x37, 0x09, 0x0E, 0x09, 0x2E, 0x64, 0x2E, 0x09, 0x0E, 0x09, 0x37, 0x41, 0xB6, 0x0A, 0x06, 0x0F, 0x01, 0x03, 0x25, 0x28, 0x25, 0x03, + 0x01, 0x0F, 0x06, 0x0A, 0x0B, 0x26, 0x39, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xC6, 0x07, 0x01, 0x03, 0x25, 0x28, 0x25, 0x03, 0x01, 0x0F, 0x06, 0x0A, 0x0B, + 0x26, 0x0C, 0x09, 0x06, 0x01, 0xB8, 0x91, 0x67, 0x42, 0x71, 0x21, 0xB4, 0x07, 0x09, 0x09, 0x07, 0xC5, 0x13, 0x13, 0xC5, 0x07, 0x09, 0x09, 0x07, 0xB4, + 0x21, 0x71, 0x42, 0x67, 0x47, 0x09, 0x06, 0x08, 0x09, 0x12, 0x18, 0x18, 0x12, 0x09, 0x08, 0x06, 0x09, 0x09, 0xC9, 0x26, 0x34, 0x26, 0x26, 0x34, 0x90, + 0x03, 0x09, 0x12, 0x18, 0x18, 0x12, 0x09, 0x08, 0x06, 0x09, 0x09, 0x09, 0x09, 0x06, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, + 0x07, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x23, 0x00, 0x2E, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x04, 0x22, 0x06, 0x14, 0x16, 0x32, + 0x36, 0x34, 0x06, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x22, 0x07, 0x06, 0x15, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x17, 0x16, 0x3E, + 0x01, 0x27, 0x26, 0x23, 0x22, 0x14, 0x33, 0x32, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x55, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xE4, 0x28, 0x1C, 0x2A, + 0x02, 0x08, 0x02, 0x2A, 0x33, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xCA, 0x06, 0x13, 0x05, 0x05, 0x2D, 0x46, 0x10, 0x10, 0x37, 0x01, 0xB8, 0x91, 0xCE, 0x91, + 0x91, 0xCE, 0x17, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xDD, 0x1C, 0x13, 0x17, 0x37, 0x03, 0x03, 0x37, 0x17, 0x13, 0x94, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xAD, + 0x08, 0x04, 0x10, 0x08, 0x36, 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x1D, 0x00, 0x21, 0x00, 0x29, 0x00, + 0x2D, 0x00, 0x35, 0x00, 0x39, 0x00, 0x00, 0x25, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x14, 0x06, 0x22, 0x26, 0x35, 0x23, 0x14, 0x06, 0x22, 0x26, + 0x35, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x17, 0x05, 0x33, 0x35, 0x23, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, + 0x35, 0x23, 0x15, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x27, 0x33, 0x27, 0x23, 0x02, 0x75, 0x0B, 0x13, 0x0D, 0x20, 0x38, 0x50, 0x38, 0x80, + 0x38, 0x50, 0x38, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0xAA, 0x16, 0x0E, 0xFE, 0x52, 0x60, 0x60, 0x4C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xD0, 0x60, 0xEC, + 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x30, 0x92, 0x50, 0x42, 0xED, 0x0D, 0x11, 0x6F, 0x0D, 0x13, 0x28, 0x38, 0x38, 0x28, 0x28, 0x38, 0x38, 0x28, 0x13, 0x0D, + 0x01, 0x20, 0x0D, 0x13, 0x11, 0x8F, 0x60, 0xFE, 0xB0, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xD4, 0x60, 0x60, 0xF0, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xD4, 0x60, + 0x00, 0x00, 0x01, 0xFF, 0xF9, 0x00, 0x00, 0x02, 0x80, 0x01, 0x83, 0x00, 0x3A, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x0E, 0x02, + 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x37, 0x06, 0x07, 0x06, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x26, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x3F, + 0x01, 0x36, 0x1E, 0x02, 0x0F, 0x01, 0x3E, 0x01, 0x37, 0x36, 0x1E, 0x01, 0x14, 0x07, 0x06, 0x16, 0x33, 0x32, 0x37, 0x3E, 0x02, 0x02, 0x6F, 0x07, 0x0A, + 0x09, 0x06, 0x12, 0x34, 0x3A, 0x0B, 0x43, 0x23, 0x2B, 0x17, 0x19, 0x05, 0x4D, 0x86, 0x0A, 0x0D, 0x13, 0x10, 0x05, 0x62, 0x07, 0x19, 0x0E, 0x3A, 0x06, + 0x0D, 0x03, 0x12, 0x08, 0x0D, 0x37, 0x1C, 0x3A, 0x26, 0x13, 0x0D, 0x2A, 0x4B, 0x4A, 0x15, 0x13, 0x15, 0x04, 0x01, 0x04, 0x09, 0x10, 0x16, 0x36, 0x0A, + 0x45, 0x3D, 0x01, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, 0x02, 0x19, 0x22, 0x05, 0x1E, 0x19, 0x1C, 0x38, 0x3D, 0x87, 0x09, 0x1E, 0x0E, 0xF6, 0x0E, 0x15, + 0x08, 0x27, 0x04, 0x03, 0x06, 0x1B, 0x0D, 0x09, 0x25, 0x11, 0x05, 0x23, 0x33, 0x1D, 0x68, 0x47, 0x36, 0x01, 0x01, 0x13, 0x21, 0x11, 0x08, 0x1C, 0x18, + 0x18, 0x05, 0x27, 0x1A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x17, 0x00, 0x23, 0x00, 0x33, 0x00, + 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, + 0x17, 0x36, 0x26, 0x07, 0x06, 0x22, 0x27, 0x26, 0x06, 0x17, 0x16, 0x32, 0x37, 0x16, 0x36, 0x27, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x14, 0x16, 0x3F, 0x01, + 0x36, 0x32, 0x17, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x70, 0x01, 0x0D, 0x03, 0x0A, 0x0C, 0x26, 0x0D, 0x09, 0x03, 0x0D, 0x01, 0x02, 0x23, 0x26, 0x23, + 0xF9, 0x0A, 0x19, 0x0A, 0x23, 0x6E, 0x23, 0x0A, 0x19, 0x0A, 0x2D, 0x8C, 0x33, 0x03, 0x0D, 0x01, 0x02, 0x23, 0x26, 0x23, 0x02, 0x0C, 0x03, 0x09, 0x0D, + 0x26, 0x0D, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x46, 0x07, 0x03, 0x05, 0x11, 0x16, 0x16, 0x11, 0x05, 0x03, 0x07, 0x1E, 0x29, 0x29, 0x99, 0x0C, + 0x14, 0x0C, 0x2A, 0x2A, 0x0C, 0x14, 0x0C, 0x36, 0xAC, 0x05, 0x03, 0x07, 0x1E, 0x29, 0x29, 0x1E, 0x07, 0x03, 0x05, 0x11, 0x16, 0x16, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x13, 0x00, 0x25, 0x00, 0x29, 0x00, 0x2D, 0x00, 0x31, 0x00, 0x35, 0x00, 0x39, 0x00, 0x3D, + 0x00, 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x33, 0x15, 0x13, 0x12, 0x15, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x13, 0x3E, 0x01, 0x33, 0x21, 0x32, 0x16, 0x05, 0x07, 0x33, 0x27, 0x03, 0x37, 0x23, 0x07, 0x3F, 0x01, + 0x23, 0x07, 0x17, 0x33, 0x27, 0x23, 0x37, 0x17, 0x33, 0x27, 0x03, 0x33, 0x27, 0x23, 0x01, 0xB0, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, + 0x30, 0x80, 0xC9, 0x37, 0x13, 0x0E, 0xFD, 0xC2, 0x0E, 0x13, 0x37, 0x02, 0x12, 0x0C, 0x01, 0xD2, 0x0C, 0x12, 0xFE, 0xBD, 0x0A, 0x8C, 0x0A, 0xC3, 0x0B, + 0x6A, 0x13, 0x82, 0x0A, 0x60, 0x11, 0x88, 0xAC, 0x0B, 0x96, 0xB8, 0x0A, 0x67, 0x11, 0x46, 0x72, 0x13, 0x6A, 0x09, 0x07, 0x20, 0x06, 0x0A, 0x09, 0x07, + 0x20, 0x06, 0x0A, 0x20, 0x20, 0x01, 0xA5, 0xFE, 0xBD, 0x02, 0x0D, 0x13, 0x13, 0x0D, 0x03, 0x01, 0x42, 0x0C, 0x0F, 0x0F, 0x31, 0x60, 0x60, 0xFF, 0x00, + 0x70, 0x70, 0xA0, 0x60, 0x60, 0xA0, 0x70, 0x90, 0x60, 0x60, 0xFF, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xE0, 0x02, 0x41, 0x01, + 0xA4, 0x00, 0x1E, 0x00, 0x2C, 0x00, 0x00, 0x01, 0x32, 0x15, 0x14, 0x0E, 0x02, 0x07, 0x06, 0x22, 0x27, 0x2E, 0x03, 0x35, 0x34, 0x33, 0x32, 0x1E, 0x02, + 0x17, 0x16, 0x17, 0x36, 0x37, 0x3E, 0x03, 0x05, 0x26, 0x27, 0x26, 0x27, 0x36, 0x37, 0x36, 0x17, 0x16, 0x17, 0x06, 0x07, 0x06, 0x02, 0x38, 0x08, 0x06, + 0x0F, 0x27, 0x1D, 0x53, 0xE8, 0x53, 0x1D, 0x27, 0x0F, 0x06, 0x08, 0x10, 0x27, 0x3F, 0x44, 0x1C, 0x2B, 0x17, 0x17, 0x2B, 0x1C, 0x44, 0x3F, 0x27, 0xFE, + 0xF8, 0x13, 0x1A, 0x1A, 0x21, 0x1A, 0x46, 0x08, 0x08, 0x47, 0x19, 0x22, 0x1A, 0x19, 0x01, 0x00, 0x08, 0x0F, 0x25, 0x3B, 0x3F, 0x19, 0x51, 0x51, 0x19, + 0x3F, 0x3B, 0x25, 0x0F, 0x08, 0x05, 0x0F, 0x24, 0x1B, 0x27, 0x38, 0x38, 0x27, 0x1B, 0x24, 0x0F, 0x05, 0x6F, 0x1D, 0x17, 0x19, 0x13, 0x6F, 0x3D, 0x07, + 0x07, 0x3D, 0x6F, 0x13, 0x1A, 0x16, 0x00, 0x01, 0xFF, 0xF4, 0xFF, 0xD7, 0x02, 0x03, 0x01, 0xA7, 0x00, 0x22, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x0F, 0x01, + 0x06, 0x0F, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x06, 0x26, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x26, 0x36, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x36, + 0x16, 0x1F, 0x01, 0x16, 0x17, 0x01, 0xD8, 0x25, 0x06, 0x22, 0x3E, 0x1C, 0x02, 0x05, 0x03, 0x48, 0x1E, 0x36, 0x19, 0x20, 0x46, 0x26, 0x33, 0x10, 0x1C, + 0x0D, 0x12, 0x26, 0x15, 0x29, 0x27, 0x48, 0x21, 0x15, 0x2E, 0x19, 0x4C, 0x09, 0x10, 0x07, 0x1F, 0xFC, 0x0C, 0x43, 0x12, 0x1F, 0x0F, 0x1C, 0x3E, 0x22, + 0x1A, 0x17, 0x28, 0x13, 0x07, 0x0F, 0x09, 0x34, 0x1F, 0x39, 0x1A, 0x18, 0x34, 0x1D, 0x39, 0x03, 0x06, 0x02, 0x16, 0x2F, 0x1A, 0x0F, 0x21, 0x3D, 0x1B, + 0x0B, 0x00, 0x09, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x11, 0x00, 0x21, 0x00, 0x29, 0x00, 0x31, 0x00, 0x39, 0x00, 0x41, + 0x00, 0x49, 0x00, 0x51, 0x00, 0x00, 0x13, 0x15, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1E, 0x01, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x07, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x00, 0x22, + 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x26, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, + 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0xE0, 0x80, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0xF3, 0x1A, 0x13, 0x13, 0x1A, + 0x13, 0xE0, 0x28, 0x38, 0x13, 0x0D, 0xFF, 0x00, 0x0D, 0x13, 0x38, 0x28, 0x1F, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0x9D, 0x1A, 0x13, 0x13, 0x1A, 0x13, + 0x8D, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x4D, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x73, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x73, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, + 0xA0, 0x60, 0x60, 0x0D, 0x13, 0x13, 0x6D, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x0D, 0x38, 0x28, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0xE0, 0x28, 0x38, 0xFF, 0x00, + 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x01, 0x11, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x33, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x73, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, + 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xAD, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC7, 0x00, 0x03, 0x00, + 0x2A, 0x00, 0x00, 0x17, 0x35, 0x21, 0x15, 0x03, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, + 0x36, 0x3D, 0x01, 0x34, 0x27, 0x26, 0x35, 0x34, 0x36, 0x17, 0x1E, 0x01, 0x17, 0x16, 0x07, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x33, 0x20, 0x01, 0xC0, 0x40, + 0x28, 0x38, 0x13, 0x0D, 0xFE, 0x40, 0x0D, 0x13, 0x38, 0x28, 0x43, 0x0C, 0x11, 0x17, 0x09, 0x44, 0x2D, 0x1D, 0x2B, 0x06, 0x05, 0x0F, 0x15, 0x11, 0x0C, + 0x40, 0x40, 0x40, 0x01, 0x00, 0x38, 0x28, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x28, 0x38, 0x11, 0x0C, 0x01, 0x28, 0x32, 0x13, 0x15, 0x2C, 0x3A, 0x08, + 0x05, 0x2B, 0x1D, 0x20, 0x1C, 0x2A, 0x24, 0x0A, 0x0C, 0x11, 0x00, 0x00, 0x02, 0xFF, 0xFB, 0xFF, 0xC0, 0x02, 0x1D, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x27, + 0x00, 0x00, 0x01, 0x1E, 0x01, 0x0F, 0x01, 0x17, 0x16, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x07, 0x06, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3F, + 0x02, 0x36, 0x32, 0x1F, 0x02, 0x37, 0x2F, 0x03, 0x11, 0x1F, 0x01, 0x2F, 0x01, 0x01, 0xFD, 0x13, 0x0D, 0x0F, 0x6A, 0x19, 0x03, 0x14, 0x0E, 0x08, 0x07, + 0x83, 0x83, 0x07, 0x08, 0x0E, 0x14, 0x03, 0x19, 0x6A, 0x0F, 0x0D, 0x13, 0x93, 0x41, 0x09, 0x28, 0x09, 0x41, 0x19, 0x52, 0x72, 0x19, 0x0B, 0x33, 0x16, + 0x66, 0x13, 0x04, 0x01, 0x14, 0x02, 0x26, 0x0E, 0x67, 0x92, 0x0F, 0x16, 0x04, 0x44, 0x44, 0x04, 0x16, 0x0F, 0x92, 0x67, 0x0E, 0x26, 0x03, 0x15, 0x84, + 0x12, 0x12, 0x84, 0x91, 0x51, 0x10, 0x04, 0x17, 0x67, 0xFE, 0xC3, 0x0C, 0x36, 0x72, 0x19, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, + 0x80, 0x01, 0xC0, 0x00, 0x23, 0x00, 0x2F, 0x00, 0x3B, 0x00, 0x49, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x05, + 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x27, 0x15, + 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x01, 0x50, 0x14, 0x1C, 0x1C, 0x14, 0x10, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x10, 0x08, 0xF0, 0x08, 0x08, 0xF0, 0x08, 0x08, 0xF0, 0x08, 0x08, 0xF0, 0x08, 0xB0, + 0x30, 0x1C, 0x14, 0x60, 0x14, 0x1C, 0x30, 0x01, 0x20, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x10, 0x07, 0x09, 0x09, 0x07, + 0x10, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0xD8, 0x10, 0x08, 0x08, 0x10, 0x08, 0x68, 0x10, 0x08, 0x08, 0x10, 0x08, 0xF0, 0x50, 0x50, 0x14, 0x1C, 0x1C, 0x14, + 0x50, 0x50, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x00, 0x12, 0x32, 0x16, + 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x88, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x43, 0x34, 0x26, 0x26, 0x34, 0x26, 0x83, 0x1A, 0x13, + 0x13, 0x1A, 0x13, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x2A, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xF0, 0x26, 0x34, 0x26, 0x26, 0x34, 0x8A, 0x13, 0x1A, + 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x0A, 0x00, 0x17, 0x00, 0x25, 0x00, 0x2D, 0x00, + 0x31, 0x00, 0x35, 0x00, 0x00, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x11, 0x37, 0x33, 0x36, 0x32, 0x1F, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, + 0x3E, 0x01, 0x3F, 0x01, 0x03, 0x11, 0x14, 0x06, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x37, 0x35, 0x23, 0x15, 0x37, 0x35, 0x23, 0x15, 0x01, 0xB3, 0x09, 0x09, 0xD3, 0x4B, 0x01, 0x09, 0x1A, 0x09, 0x88, 0x0D, 0x13, 0x13, 0x0D, 0xFE, + 0xD4, 0x01, 0x05, 0x01, 0xBA, 0xB5, 0x38, 0x50, 0x38, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x6A, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x38, 0x40, 0x40, 0x40, 0x01, + 0x18, 0x09, 0x1B, 0x09, 0xD3, 0x01, 0x0F, 0x4C, 0x09, 0x09, 0xF3, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x01, 0x03, 0x01, 0xBB, 0x01, 0x20, 0xFE, 0x80, 0x28, + 0x38, 0x38, 0x28, 0x01, 0x80, 0x0D, 0x13, 0x13, 0xFE, 0x5B, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0xAA, 0x40, 0x40, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x02, 0x80, 0x01, 0x68, 0x00, 0x1F, 0x00, 0x54, 0x00, 0x5C, 0x00, 0x00, 0x37, 0x26, 0x27, 0x37, 0x36, 0x3F, 0x01, 0x36, + 0x1F, 0x01, 0x1E, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x17, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x2B, 0x01, 0x22, 0x07, 0x06, 0x22, 0x05, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x06, 0x22, 0x27, 0x06, 0x22, 0x27, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x32, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x32, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x17, + 0x16, 0x33, 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0xBE, 0x07, 0x09, 0x44, 0x0B, 0x10, 0x50, 0x28, 0x31, 0x64, 0x13, 0x16, 0x08, 0x22, 0x13, + 0x64, 0x07, 0x06, 0x12, 0x71, 0x1B, 0x17, 0x0A, 0x30, 0x0A, 0x19, 0x1D, 0x10, 0x1D, 0x19, 0x0A, 0x30, 0x01, 0xA8, 0x07, 0x09, 0x09, 0x07, 0x10, 0x3A, + 0x26, 0x26, 0x74, 0x26, 0x26, 0x74, 0x26, 0x26, 0x3A, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x25, 0x13, 0x0F, 0x11, 0x10, 0x11, 0x0F, 0x13, 0x4A, 0x13, + 0x0F, 0x11, 0x10, 0x11, 0x0F, 0x13, 0x4A, 0x13, 0x0F, 0x11, 0x10, 0x11, 0x0F, 0x13, 0x25, 0xFE, 0x31, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x89, 0x07, 0x05, + 0x62, 0x10, 0x0B, 0x39, 0x1D, 0x0A, 0x16, 0x04, 0x22, 0x26, 0x16, 0x04, 0x16, 0x01, 0x04, 0x0D, 0x50, 0x02, 0x15, 0x09, 0x09, 0x17, 0x17, 0x09, 0x20, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x12, 0x0E, 0x0E, 0x12, 0x12, 0x0E, 0x0E, 0x12, 0x12, + 0x0E, 0x0E, 0x12, 0x60, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x34, 0x00, 0x6A, 0x00, 0x00, + 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x06, 0x22, 0x27, 0x06, 0x22, 0x27, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x3B, 0x01, 0x32, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x32, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x32, 0x37, 0x36, 0x3B, 0x01, 0x32, + 0x17, 0x16, 0x33, 0x25, 0x22, 0x27, 0x26, 0x27, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, + 0x22, 0x06, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x06, 0x1D, + 0x01, 0x06, 0x07, 0x06, 0x23, 0x35, 0x23, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0x10, 0x3A, 0x26, 0x26, 0x74, 0x26, 0x26, 0x74, 0x26, 0x26, 0x3A, 0x10, + 0x07, 0x09, 0x09, 0x07, 0x10, 0x25, 0x13, 0x0F, 0x11, 0x10, 0x11, 0x0F, 0x13, 0x4A, 0x13, 0x0F, 0x11, 0x10, 0x11, 0x0F, 0x13, 0x4A, 0x13, 0x0F, 0x11, + 0x10, 0x11, 0x0F, 0x13, 0x25, 0xFE, 0x80, 0x18, 0x0A, 0x0E, 0x10, 0x38, 0x50, 0x38, 0x09, 0x07, 0x20, 0x07, 0x09, 0x13, 0x1A, 0x13, 0xC0, 0x38, 0x50, + 0x38, 0x09, 0x07, 0x20, 0x07, 0x09, 0x13, 0x1A, 0x13, 0x10, 0x0E, 0x0A, 0x18, 0xC0, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x12, 0x0E, 0x0E, 0x12, 0x12, 0x0E, 0x0E, 0x12, 0x12, 0x0E, 0x0E, 0x12, 0x20, 0x09, 0x0D, 0x06, 0xE4, 0x28, 0x38, + 0x38, 0x28, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x60, 0x28, 0x38, 0x38, 0x28, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x0D, + 0x13, 0x13, 0x0D, 0xE5, 0x05, 0x0D, 0x09, 0x60, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xF9, 0xFF, 0xB9, 0x02, 0x87, 0x01, 0xC7, 0x00, 0x18, 0x00, 0x20, 0x00, + 0x00, 0x05, 0x16, 0x0F, 0x01, 0x06, 0x27, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x36, 0x37, 0x36, 0x32, 0x17, 0x1E, 0x03, 0x15, 0x14, 0x07, 0x25, + 0x34, 0x37, 0x05, 0x06, 0x23, 0x22, 0x26, 0x02, 0x7A, 0x0C, 0x09, 0x14, 0x0A, 0x0C, 0xFD, 0xB3, 0x0C, 0x09, 0x14, 0x0A, 0x0C, 0xBB, 0x28, 0x13, 0x07, + 0x2D, 0x06, 0x10, 0x36, 0x2C, 0x21, 0x01, 0xFE, 0xA1, 0x13, 0x01, 0x11, 0x32, 0x42, 0x49, 0x67, 0x0A, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0x01, 0xC7, 0x0A, + 0x0D, 0x19, 0x0C, 0x09, 0x91, 0x3E, 0x40, 0x16, 0x16, 0x34, 0x5F, 0x36, 0x49, 0x26, 0x06, 0x0B, 0x11, 0x28, 0x26, 0xD3, 0x2D, 0x68, 0x00, 0x04, 0x00, + 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x14, 0x00, 0x21, 0x00, 0x2F, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, + 0x05, 0x06, 0x14, 0x1F, 0x01, 0x16, 0x36, 0x2F, 0x01, 0x37, 0x36, 0x26, 0x0F, 0x01, 0x17, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x36, 0x34, 0x2F, 0x01, 0x26, + 0x06, 0x16, 0x22, 0x06, 0x07, 0x06, 0x16, 0x37, 0x36, 0x32, 0x17, 0x16, 0x36, 0x27, 0x26, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0x1A, 0x06, 0x06, + 0x50, 0x08, 0x0E, 0x07, 0x21, 0x21, 0x07, 0x0E, 0x08, 0xF3, 0x21, 0x21, 0x07, 0x0E, 0x08, 0x50, 0x06, 0x06, 0x50, 0x08, 0x0E, 0xB1, 0x52, 0x4D, 0x05, + 0x01, 0x0B, 0x07, 0x29, 0x82, 0x29, 0x07, 0x0B, 0x01, 0x05, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x2D, 0x03, 0x0E, 0x03, 0x30, 0x05, 0x0F, 0x08, + 0x28, 0x28, 0x08, 0x0F, 0x05, 0x12, 0x28, 0x28, 0x08, 0x0F, 0x05, 0x30, 0x03, 0x0E, 0x03, 0x30, 0x05, 0x0F, 0x80, 0x3E, 0x2D, 0x0A, 0x0D, 0x03, 0x11, + 0x11, 0x03, 0x0D, 0x0A, 0x2D, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xF5, 0xFF, 0xC0, 0x01, 0xCB, 0x01, 0xC9, 0x00, 0x31, 0x00, 0x00, 0x01, 0x16, 0x07, 0x06, + 0x07, 0x06, 0x0F, 0x01, 0x0E, 0x01, 0x22, 0x26, 0x2F, 0x01, 0x2E, 0x01, 0x22, 0x06, 0x0F, 0x01, 0x0E, 0x01, 0x22, 0x26, 0x2F, 0x01, 0x26, 0x27, 0x26, + 0x27, 0x26, 0x37, 0x3E, 0x01, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x36, 0x37, 0x36, 0x2F, 0x01, 0x36, 0x37, 0x36, 0x17, 0x1E, 0x01, 0x01, 0xBC, 0x0F, 0x25, + 0x1E, 0x06, 0x08, 0x0D, 0x08, 0x02, 0x11, 0x15, 0x10, 0x03, 0x22, 0x04, 0x16, 0x1C, 0x16, 0x04, 0x22, 0x03, 0x10, 0x15, 0x11, 0x02, 0x08, 0x0D, 0x08, + 0x06, 0x1E, 0x25, 0x0F, 0x08, 0x32, 0x22, 0x20, 0x23, 0x64, 0x06, 0x0D, 0x03, 0x09, 0x0D, 0x1D, 0x0A, 0x01, 0x30, 0x29, 0x22, 0x32, 0x01, 0x60, 0x3E, + 0x31, 0x28, 0x43, 0x53, 0x39, 0x22, 0x0B, 0x0D, 0x0D, 0x0A, 0x8B, 0x0D, 0x12, 0x12, 0x0D, 0x8B, 0x0A, 0x0D, 0x0D, 0x0B, 0x22, 0x39, 0x53, 0x43, 0x28, + 0x32, 0x3D, 0x22, 0x33, 0x08, 0x09, 0x13, 0x40, 0x04, 0x03, 0x05, 0x0E, 0x08, 0x13, 0x04, 0x01, 0x23, 0x0B, 0x08, 0x33, 0x00, 0x00, 0x04, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x82, 0x01, 0xC4, 0x00, 0x09, 0x00, 0x12, 0x00, 0x1D, 0x00, 0x31, 0x00, 0x00, 0x13, 0x2E, 0x01, 0x37, 0x3E, 0x01, 0x17, 0x0E, 0x01, + 0x07, 0x17, 0x3E, 0x01, 0x33, 0x32, 0x17, 0x1E, 0x01, 0x07, 0x37, 0x1E, 0x01, 0x07, 0x14, 0x06, 0x2F, 0x01, 0x36, 0x27, 0x26, 0x13, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x17, 0x07, 0x73, 0x07, 0x05, 0x05, 0x2D, 0x84, 0x47, 0x27, 0x49, + 0x1B, 0x1F, 0x21, 0x60, 0x2B, 0x0D, 0x0A, 0x2E, 0x18, 0x1B, 0x23, 0x3A, 0x3F, 0x02, 0x0E, 0x08, 0x66, 0x1B, 0x08, 0x04, 0x1D, 0x07, 0x09, 0x09, 0x07, + 0xFD, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xED, 0x49, 0x3C, 0x41, 0x01, 0x37, 0x03, 0x10, 0x06, 0x38, 0x3B, 0x03, 0x17, 0x5A, 0x3D, 0x0B, 0x4C, 0x5F, 0x04, + 0x11, 0x92, 0x5B, 0xD4, 0x2C, 0x82, 0x48, 0x08, 0x09, 0x03, 0x25, 0x5D, 0x4A, 0x1E, 0xFE, 0x96, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, + 0x09, 0xC8, 0x16, 0xB2, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x2F, 0x00, 0x33, 0x00, 0x37, 0x00, 0x3B, 0x00, + 0x3F, 0x00, 0x57, 0x00, 0x00, 0x01, 0x14, 0x06, 0x23, 0x15, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x23, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x35, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x33, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x15, 0x07, 0x15, 0x33, 0x35, 0x21, 0x15, 0x33, 0x35, 0x11, 0x35, 0x23, 0x15, 0x21, 0x35, 0x23, 0x15, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, + 0x01, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x33, 0x02, 0x00, 0x13, 0x0D, 0x0D, 0x13, 0x13, + 0x0D, 0x60, 0x0D, 0x13, 0xC0, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0xC0, 0x13, 0x0D, 0x60, 0x0D, 0x13, + 0x60, 0x20, 0xFE, 0x80, 0x20, 0x20, 0x01, 0x80, 0x20, 0x20, 0x0D, 0x13, 0xC0, 0x13, 0x0D, 0x20, 0x20, 0x0D, 0x13, 0xC0, 0x13, 0x0D, 0x01, 0x40, 0x0D, + 0x13, 0xC0, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0xC0, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x0D, + 0x13, 0x13, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0xFE, 0x80, 0x20, 0x20, 0x20, 0x20, 0x60, 0xC0, 0x13, 0x0D, 0x20, 0x20, 0x0D, 0x13, 0xC0, 0x13, 0x0D, + 0x20, 0x20, 0x0D, 0x13, 0x00, 0x00, 0x02, 0xFF, 0xFB, 0xFF, 0xC0, 0x02, 0x05, 0x01, 0xC0, 0x00, 0x19, 0x00, 0x21, 0x00, 0x00, 0x25, 0x16, 0x06, 0x23, + 0x21, 0x22, 0x26, 0x37, 0x13, 0x3E, 0x01, 0x3B, 0x01, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x32, 0x16, 0x17, 0x26, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xFE, 0x07, 0x1D, 0x18, 0xFE, 0x60, 0x18, 0x1D, 0x07, 0x49, 0x03, 0x11, 0x0B, 0x3C, 0x06, 0x38, 0x50, 0x38, 0x06, + 0x3C, 0x0B, 0x11, 0x03, 0xC2, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x02, 0x19, 0x29, 0x29, 0x19, 0x01, 0x24, 0x0C, 0x0E, 0x10, 0x10, 0x28, 0x38, 0x38, 0x28, + 0x0F, 0x11, 0x0E, 0x0C, 0x1A, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFB, 0xFF, 0xC0, 0x01, 0x25, 0x01, 0xC0, 0x00, 0x1D, + 0x00, 0x21, 0x00, 0x00, 0x17, 0x32, 0x16, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x2E, 0x01, 0x3F, 0x01, 0x34, 0x36, 0x3B, + 0x01, 0x32, 0x16, 0x15, 0x17, 0x16, 0x06, 0x07, 0x15, 0x03, 0x07, 0x33, 0x27, 0xD8, 0x11, 0x17, 0x08, 0xD0, 0x08, 0x17, 0x11, 0x28, 0x34, 0x40, 0x05, + 0x10, 0x09, 0x06, 0xE0, 0x06, 0x09, 0x10, 0x05, 0x40, 0x34, 0x72, 0x07, 0xB2, 0x07, 0x10, 0x17, 0x11, 0x08, 0x08, 0x11, 0x17, 0x75, 0x0C, 0x57, 0x37, + 0xB2, 0x07, 0x08, 0x08, 0x07, 0xB2, 0x37, 0x57, 0x0C, 0x75, 0x01, 0xA0, 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, + 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x21, 0x00, 0x35, 0x00, 0x49, 0x00, 0x5D, 0x00, 0x71, 0x00, 0x00, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x13, 0x15, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x17, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x02, 0x26, 0x34, 0x3F, 0x02, 0x36, 0x32, 0x1F, 0x02, 0x16, 0x14, 0x17, 0x27, 0x26, 0x34, 0x3F, 0x02, + 0x36, 0x32, 0x1F, 0x02, 0x16, 0x14, 0x0F, 0x02, 0x06, 0x22, 0x27, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x02, 0x06, 0x22, 0x2F, 0x02, 0x26, 0x34, 0x3F, 0x02, + 0x36, 0x32, 0x17, 0x27, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x02, 0x26, 0x34, 0x3F, 0x02, 0x36, 0x32, 0x1F, 0x02, 0x16, 0x14, 0xE0, 0x28, 0x38, 0x13, 0x0D, + 0xFF, 0x00, 0x0D, 0x13, 0x38, 0x28, 0x1F, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x90, 0x80, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x9E, 0x1E, 0x0C, 0x02, 0x04, 0x02, + 0x0C, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x02, 0x0C, 0x1E, 0x02, 0x40, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x02, 0x0C, 0x1E, 0x02, 0x02, + 0x1E, 0x0C, 0x02, 0x04, 0x02, 0x14, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x02, 0x0C, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x02, 0x16, 0x1E, + 0x0C, 0x02, 0x04, 0x02, 0x0C, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x02, 0x0C, 0x1E, 0x02, 0x01, 0x20, 0x38, 0x28, 0xE0, 0x0D, 0x13, 0x13, 0x0D, + 0xE0, 0x28, 0x38, 0xFF, 0x00, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x01, 0x51, 0x60, 0x60, 0x0D, 0x13, 0x13, 0x21, 0x0C, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x02, + 0x04, 0x02, 0x0C, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x0E, 0x0C, 0x02, 0x04, 0x02, 0x0C, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x02, 0x0C, + 0x1E, 0x02, 0x02, 0x82, 0x0C, 0x02, 0x04, 0x02, 0x0C, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x02, 0x0C, 0x1E, 0x02, 0x02, 0x2E, 0x0C, 0x1E, 0x02, + 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x02, 0x0C, 0x1E, 0x02, 0x02, 0x1E, 0x0C, 0x02, 0x04, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFC, 0xFF, 0xBF, 0x01, 0xC4, 0x01, + 0xC0, 0x00, 0x22, 0x00, 0x35, 0x00, 0x00, 0x01, 0x16, 0x17, 0x16, 0x17, 0x16, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x22, 0x07, 0x06, 0x23, + 0x22, 0x27, 0x26, 0x27, 0x26, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x27, 0x06, 0x07, 0x06, 0x23, 0x27, 0x26, 0x37, + 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x1F, 0x01, 0x14, 0x07, 0x06, 0x01, 0x5F, 0x27, 0x19, 0x16, 0x08, 0x07, 0x08, 0x0C, 0x24, 0x2B, 0x41, 0x10, 0x13, + 0x0D, 0x20, 0x0D, 0x13, 0x10, 0x41, 0x2B, 0x24, 0x0C, 0x08, 0x07, 0x08, 0x16, 0x19, 0x27, 0x18, 0x2A, 0x24, 0x19, 0x19, 0x24, 0x2A, 0x1F, 0x0E, 0x17, + 0x10, 0x13, 0x0F, 0x02, 0x02, 0x04, 0x13, 0x0E, 0x17, 0x10, 0x13, 0x0F, 0x01, 0x05, 0x06, 0x01, 0x3F, 0x07, 0x23, 0x1F, 0x2F, 0x2B, 0x2B, 0x47, 0x30, + 0x3A, 0x0A, 0x08, 0x08, 0x0A, 0x3A, 0x30, 0x47, 0x2B, 0x2B, 0x2F, 0x1F, 0x23, 0x07, 0x04, 0x0B, 0x0A, 0x0E, 0x0E, 0x0A, 0x0B, 0x25, 0x0D, 0x06, 0x05, + 0x01, 0x0E, 0x12, 0x24, 0x13, 0x0D, 0x06, 0x05, 0x01, 0x0F, 0x13, 0x10, 0x17, 0x00, 0x09, 0xFF, 0xEC, 0xFF, 0xC0, 0x01, 0xD4, 0x01, 0xC0, 0x00, 0x07, + 0x00, 0x1D, 0x00, 0x25, 0x00, 0x30, 0x00, 0x37, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4E, 0x00, 0x59, 0x00, 0x00, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, + 0x34, 0x37, 0x16, 0x07, 0x16, 0x07, 0x06, 0x27, 0x06, 0x22, 0x27, 0x06, 0x27, 0x26, 0x37, 0x26, 0x37, 0x36, 0x17, 0x36, 0x32, 0x17, 0x36, 0x01, 0x16, + 0x37, 0x26, 0x27, 0x26, 0x27, 0x06, 0x37, 0x36, 0x37, 0x22, 0x26, 0x23, 0x22, 0x07, 0x06, 0x17, 0x3E, 0x01, 0x22, 0x07, 0x16, 0x17, 0x36, 0x37, 0x02, + 0x32, 0x37, 0x26, 0x27, 0x06, 0x07, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x17, 0x36, 0x27, 0x06, 0x07, 0x06, 0x07, 0x16, 0x27, 0x36, 0x27, + 0x26, 0x23, 0x22, 0x06, 0x23, 0x16, 0x17, 0x16, 0xD3, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xF6, 0x1E, 0x37, 0x37, 0x1E, 0x1D, 0x57, 0x24, 0x7C, 0x24, 0x57, + 0x1D, 0x1E, 0x37, 0x37, 0x1E, 0x1D, 0x57, 0x24, 0x7C, 0x24, 0x57, 0xFE, 0xA6, 0x07, 0x25, 0x05, 0x02, 0x0B, 0x0B, 0x16, 0x2C, 0x03, 0x04, 0x01, 0x04, + 0x01, 0x1F, 0x07, 0x07, 0x16, 0x0B, 0x97, 0x20, 0x12, 0x11, 0x11, 0x11, 0x11, 0x32, 0x20, 0x12, 0x11, 0x11, 0x11, 0x11, 0x01, 0x42, 0x2F, 0x2F, 0x42, + 0x2F, 0xF1, 0x07, 0x16, 0x0B, 0x0B, 0x02, 0x05, 0x25, 0x08, 0x16, 0x07, 0x07, 0x1F, 0x01, 0x04, 0x01, 0x04, 0x03, 0x0B, 0xE0, 0x13, 0x1A, 0x13, 0x13, + 0x1A, 0x73, 0x35, 0x4B, 0x4B, 0x35, 0x34, 0x0A, 0x56, 0x56, 0x0A, 0x34, 0x35, 0x4B, 0x4B, 0x35, 0x34, 0x0A, 0x56, 0x56, 0x0A, 0xFE, 0xEC, 0x0C, 0x01, + 0x16, 0x12, 0x09, 0x0A, 0x23, 0x96, 0x14, 0x14, 0x01, 0x0C, 0x0D, 0x23, 0x0A, 0x86, 0x25, 0x06, 0x07, 0x07, 0x06, 0xFE, 0xA5, 0x25, 0x06, 0x07, 0x07, + 0x06, 0x4B, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x3F, 0x0D, 0x23, 0x0A, 0x09, 0x13, 0x15, 0x01, 0x9C, 0x23, 0x0D, 0x0C, 0x01, 0x14, 0x14, 0x09, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x02, 0x80, 0x01, 0x60, 0x00, 0x4D, 0x00, 0x00, 0x25, 0x06, 0x14, 0x17, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, + 0x23, 0x22, 0x26, 0x27, 0x34, 0x2E, 0x04, 0x23, 0x21, 0x22, 0x0E, 0x05, 0x15, 0x0E, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x37, 0x36, 0x34, + 0x27, 0x2E, 0x01, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x14, 0x1E, 0x04, 0x33, 0x21, 0x32, 0x3E, 0x05, 0x35, 0x3E, 0x01, 0x33, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x02, 0x57, 0x07, 0x07, 0x13, 0x16, 0x2C, 0x1E, 0x18, 0x27, 0x08, 0x06, 0x02, 0x06, 0x07, 0x0A, 0x07, 0xFE, 0xEE, 0x05, 0x09, + 0x07, 0x05, 0x05, 0x01, 0x06, 0x08, 0x27, 0x18, 0x1E, 0x2C, 0x16, 0x13, 0x07, 0x07, 0x13, 0x16, 0x2C, 0x1E, 0x18, 0x27, 0x08, 0x06, 0x02, 0x06, 0x07, + 0x0A, 0x07, 0x01, 0x12, 0x05, 0x09, 0x07, 0x05, 0x05, 0x01, 0x06, 0x08, 0x27, 0x18, 0x1E, 0x2C, 0x16, 0xCB, 0x03, 0x10, 0x03, 0x0A, 0x24, 0x15, 0x08, + 0x1E, 0x2C, 0x1C, 0x17, 0x01, 0x11, 0x05, 0x0D, 0x04, 0x05, 0x02, 0x06, 0x04, 0x0C, 0x04, 0x10, 0x01, 0x17, 0x1C, 0x2C, 0x1E, 0x08, 0x15, 0x24, 0x0A, + 0x03, 0x10, 0x03, 0x0A, 0x24, 0x15, 0x08, 0x1E, 0x2C, 0x1C, 0x17, 0x01, 0x11, 0x05, 0x0D, 0x04, 0x05, 0x02, 0x06, 0x04, 0x0C, 0x04, 0x10, 0x01, 0x17, + 0x1C, 0x2C, 0x1E, 0x08, 0x15, 0x24, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xBE, 0x02, 0x01, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x18, 0x00, 0x29, + 0x00, 0x00, 0x00, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x07, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x27, 0x26, 0x27, 0x2E, 0x01, 0x3D, 0x01, 0x34, 0x36, + 0x17, 0x16, 0x25, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x37, 0x36, 0x01, 0x60, 0x38, 0x50, 0x38, 0x38, + 0x50, 0x3E, 0x06, 0x0D, 0x07, 0x46, 0x7C, 0x0B, 0x0F, 0x12, 0x0C, 0x88, 0x01, 0x3C, 0x0C, 0x12, 0x0F, 0x0B, 0x7C, 0x45, 0x08, 0x0D, 0x06, 0x44, 0x01, + 0x88, 0x50, 0x38, 0x38, 0x50, 0x38, 0xF1, 0x04, 0x08, 0xF6, 0x07, 0x08, 0x04, 0x23, 0x06, 0x01, 0x0F, 0x0B, 0xDF, 0x0C, 0x10, 0x01, 0x08, 0x08, 0x01, + 0x10, 0x0C, 0xDF, 0x0B, 0x0F, 0x01, 0x07, 0x22, 0x04, 0x08, 0x07, 0xF6, 0x08, 0x04, 0x29, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, + 0xC0, 0x00, 0x25, 0x00, 0x4B, 0x00, 0x00, 0x13, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, + 0x2E, 0x01, 0x35, 0x34, 0x37, 0x26, 0x35, 0x34, 0x36, 0x37, 0x26, 0x35, 0x34, 0x36, 0x33, 0x30, 0x32, 0x31, 0x3E, 0x01, 0x01, 0x14, 0x06, 0x07, 0x16, + 0x15, 0x14, 0x06, 0x23, 0x22, 0x27, 0x0E, 0x01, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x30, 0x32, 0x31, 0x32, 0x16, 0x15, + 0x14, 0x07, 0x1E, 0x01, 0x15, 0x14, 0x07, 0x16, 0xD0, 0x1A, 0x26, 0x2A, 0x1E, 0x17, 0x26, 0x07, 0x07, 0x05, 0x1E, 0x2A, 0x01, 0x16, 0x1B, 0x28, 0x08, + 0x1B, 0x17, 0x02, 0x26, 0x1A, 0x02, 0x06, 0x22, 0x01, 0x86, 0x1B, 0x16, 0x01, 0x2A, 0x1E, 0x05, 0x07, 0x07, 0x26, 0x17, 0x1E, 0x2A, 0x26, 0x1A, 0x16, + 0x22, 0x06, 0x02, 0x1A, 0x26, 0x02, 0x17, 0x1B, 0x08, 0x28, 0x01, 0xC0, 0x26, 0x1A, 0xFE, 0x88, 0x1E, 0x2A, 0x1B, 0x16, 0x01, 0x2A, 0x1E, 0x07, 0x07, + 0x09, 0x28, 0x19, 0x2E, 0x17, 0x11, 0x12, 0x19, 0x28, 0x09, 0x07, 0x07, 0x1A, 0x26, 0x15, 0x1B, 0xFE, 0xD0, 0x19, 0x28, 0x09, 0x07, 0x07, 0x1E, 0x2A, + 0x01, 0x16, 0x1B, 0x2A, 0x1E, 0x01, 0x78, 0x1B, 0x25, 0x1B, 0x15, 0x26, 0x1A, 0x06, 0x08, 0x09, 0x28, 0x19, 0x12, 0x11, 0x17, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x01, 0x80, 0x00, 0x29, 0x00, 0x33, 0x00, 0x42, 0x00, 0x51, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x1D, 0x01, 0x14, + 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3F, 0x02, 0x3E, 0x01, 0x3B, 0x01, 0x32, 0x16, 0x1F, 0x01, 0x25, 0x07, 0x21, 0x27, 0x2E, 0x01, 0x2B, 0x01, 0x22, 0x06, 0x07, 0x3A, 0x02, 0x3E, 0x03, + 0x35, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x21, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x15, 0x14, 0x1E, 0x03, 0x3A, 0x01, 0x01, 0xB7, 0x12, 0x17, 0x10, + 0x13, 0x0D, 0x20, 0x0D, 0x13, 0xFF, 0x00, 0x13, 0x0D, 0x20, 0x0D, 0x13, 0x10, 0x17, 0x12, 0x0C, 0x14, 0x0C, 0x39, 0x22, 0x80, 0x22, 0x39, 0x0C, 0x14, + 0xFE, 0xD9, 0x14, 0x01, 0x00, 0x14, 0x05, 0x19, 0x0E, 0x80, 0x0E, 0x19, 0x39, 0x02, 0x0D, 0x06, 0x0B, 0x06, 0x07, 0x03, 0x22, 0x1C, 0x12, 0x12, 0x01, + 0x4E, 0x0E, 0x12, 0x12, 0x1C, 0x22, 0x03, 0x07, 0x06, 0x0B, 0x06, 0x0D, 0xEC, 0x07, 0x21, 0x14, 0x30, 0x18, 0x12, 0x36, 0x0D, 0x13, 0x13, 0x0D, 0x20, + 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x36, 0x12, 0x18, 0x30, 0x14, 0x21, 0x07, 0x1C, 0x32, 0x20, 0x26, 0x26, 0x20, 0x32, 0x1A, 0x32, 0x32, 0x0D, 0x11, 0x11, + 0xAF, 0x01, 0x02, 0x03, 0x06, 0x04, 0x0F, 0x21, 0x12, 0x1C, 0x12, 0x12, 0x1C, 0x12, 0x21, 0x0F, 0x04, 0x06, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x23, 0x00, 0x2F, 0x00, 0x4B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, + 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, + 0x1D, 0x01, 0x05, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x25, 0x35, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, + 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x01, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0xFE, 0x40, + 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x09, 0x07, 0x60, 0x07, 0x09, 0x80, 0x09, 0x07, 0x60, 0x07, 0x09, 0xFF, 0x00, 0x08, 0x70, 0x08, 0x08, 0x70, 0x08, 0x01, + 0x00, 0x08, 0x28, 0x08, 0x10, 0x08, 0x28, 0x08, 0x08, 0x28, 0x08, 0x10, 0x08, 0x28, 0x08, 0x01, 0x40, 0x13, 0x0D, 0xFF, 0x00, 0x0D, 0x13, 0x13, 0x0D, + 0x01, 0x00, 0x0D, 0x13, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x88, 0x10, 0x08, 0x08, 0x10, 0x08, 0x08, 0x10, 0x08, + 0x28, 0x08, 0x08, 0x28, 0x08, 0x10, 0x08, 0x28, 0x08, 0x08, 0x28, 0x00, 0x05, 0xFF, 0xFE, 0xFF, 0xBB, 0x02, 0x84, 0x01, 0xC2, 0x00, 0x2A, 0x00, 0x66, + 0x00, 0x75, 0x00, 0x82, 0x00, 0x91, 0x00, 0x00, 0x37, 0x07, 0x06, 0x17, 0x07, 0x06, 0x26, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x2E, 0x01, 0x3F, 0x01, 0x36, + 0x2F, 0x01, 0x26, 0x36, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x36, 0x16, 0x0F, 0x01, 0x06, 0x0F, 0x02, 0x0E, 0x01, + 0x05, 0x07, 0x06, 0x07, 0x06, 0x0F, 0x01, 0x06, 0x07, 0x06, 0x2F, 0x01, 0x2E, 0x01, 0x3F, 0x01, 0x27, 0x07, 0x0E, 0x01, 0x2F, 0x01, 0x26, 0x27, 0x26, + 0x3F, 0x01, 0x26, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x37, 0x36, 0x3F, 0x02, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x17, + 0x16, 0x17, 0x16, 0x1F, 0x02, 0x16, 0x17, 0x16, 0x24, 0x26, 0x0E, 0x01, 0x16, 0x17, 0x1E, 0x03, 0x3E, 0x02, 0x37, 0x36, 0x37, 0x27, 0x26, 0x27, 0x26, + 0x2F, 0x01, 0x26, 0x23, 0x22, 0x0F, 0x01, 0x17, 0x16, 0x26, 0x06, 0x07, 0x16, 0x06, 0x1E, 0x04, 0x17, 0x16, 0x3E, 0x01, 0x8F, 0x0C, 0x05, 0x02, 0x23, + 0x05, 0x0B, 0x02, 0x0F, 0x02, 0x0A, 0x4E, 0x06, 0x03, 0x05, 0x41, 0x09, 0x07, 0x32, 0x04, 0x07, 0x06, 0x4D, 0x0A, 0x01, 0x07, 0x01, 0x0C, 0x04, 0x2B, + 0x06, 0x07, 0x3D, 0x05, 0x0B, 0x02, 0x0B, 0x05, 0x03, 0x20, 0x0B, 0x18, 0x25, 0x01, 0xE8, 0x0D, 0x04, 0x0D, 0x04, 0x05, 0x0E, 0x02, 0x04, 0x0D, 0x14, + 0x1F, 0x0D, 0x0D, 0x03, 0x09, 0xF8, 0x08, 0x03, 0x17, 0x0D, 0x1F, 0x15, 0x02, 0x01, 0x01, 0x0E, 0x02, 0x02, 0x05, 0x05, 0x0C, 0x08, 0x1D, 0x09, 0x0A, + 0x12, 0x20, 0x05, 0x06, 0x0C, 0x0F, 0x07, 0x08, 0x0F, 0x11, 0x11, 0x10, 0x7B, 0x11, 0x0E, 0x15, 0x0E, 0x0D, 0x03, 0x07, 0x03, 0x10, 0x07, 0x07, 0xFE, + 0x8A, 0x1B, 0x16, 0x07, 0x0C, 0x0E, 0x02, 0x0C, 0x07, 0x0A, 0x07, 0x07, 0x05, 0x01, 0x03, 0xFD, 0x06, 0x01, 0x03, 0x09, 0x16, 0x7B, 0x06, 0x07, 0x18, + 0x0E, 0x20, 0xAC, 0x6C, 0x1C, 0x29, 0x04, 0x01, 0x02, 0x08, 0x03, 0x0C, 0x05, 0x0D, 0x02, 0x0E, 0x16, 0x07, 0xE3, 0x2E, 0x10, 0x13, 0x1D, 0x04, 0x07, + 0x06, 0x4D, 0x0A, 0x01, 0x07, 0x01, 0x0C, 0x04, 0x2B, 0x06, 0x07, 0x3D, 0x05, 0x0B, 0x02, 0x0F, 0x02, 0x0A, 0x4E, 0x06, 0x03, 0x05, 0x41, 0x09, 0x07, + 0x32, 0x04, 0x07, 0x06, 0x38, 0x07, 0x03, 0x2B, 0x0E, 0x07, 0x24, 0x9D, 0x2F, 0x11, 0x0C, 0x04, 0x03, 0x34, 0x07, 0x05, 0x10, 0x05, 0x08, 0x04, 0x17, + 0x0D, 0x1E, 0x43, 0x1F, 0x0D, 0x0D, 0x03, 0x08, 0x06, 0x15, 0x06, 0x07, 0x34, 0x05, 0x05, 0x12, 0x11, 0x2E, 0x1E, 0x0C, 0x04, 0x01, 0x18, 0x2B, 0x07, + 0x06, 0x0C, 0x07, 0x04, 0x03, 0x05, 0x01, 0x01, 0x05, 0x21, 0x04, 0x09, 0x0E, 0x15, 0x15, 0x1A, 0x35, 0x1E, 0x0C, 0x12, 0x13, 0x60, 0x07, 0x0C, 0x1C, + 0x15, 0x04, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x05, 0x04, 0x0E, 0x10, 0x36, 0x07, 0x07, 0x15, 0x05, 0x21, 0x02, 0x13, 0x2B, 0x2E, 0x4F, 0x08, 0x18, + 0x0E, 0x04, 0x06, 0x06, 0x03, 0x04, 0x01, 0x03, 0x01, 0x04, 0x0D, 0x1C, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x23, + 0x00, 0x2B, 0x00, 0x2F, 0x00, 0x33, 0x00, 0x3B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x14, 0x06, 0x22, 0x26, 0x35, 0x23, + 0x14, 0x06, 0x22, 0x26, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3F, 0x01, 0x3E, 0x01, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x04, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x37, 0x35, 0x23, 0x07, 0x3B, 0x01, 0x27, 0x23, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x20, 0x28, 0x38, 0x09, + 0x07, 0x30, 0x38, 0x50, 0x38, 0x80, 0x38, 0x50, 0x38, 0x30, 0x07, 0x09, 0x1B, 0x15, 0x30, 0x07, 0x21, 0x13, 0xD6, 0x1F, 0x13, 0x6D, 0xFE, 0x7C, 0x28, + 0x1C, 0x1C, 0x28, 0x1C, 0x78, 0x4D, 0x26, 0xA3, 0xA6, 0x4D, 0x59, 0xB4, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0x00, 0x38, 0x28, 0x50, 0x07, 0x09, 0x28, + 0x38, 0x38, 0x28, 0x28, 0x38, 0x38, 0x28, 0x09, 0x07, 0x70, 0x16, 0x22, 0x06, 0x7A, 0x12, 0x16, 0x18, 0x88, 0xF0, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xD4, + 0x60, 0x60, 0x60, 0xFE, 0xB0, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x51, 0x00, + 0x68, 0x00, 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x07, 0x15, 0x14, 0x06, 0x27, 0x2E, 0x01, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x15, 0x21, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x37, 0x3E, 0x01, 0x3D, 0x01, 0x2E, 0x01, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x32, + 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x05, 0x36, 0x26, 0x2B, 0x01, 0x37, 0x36, 0x26, 0x2B, 0x01, 0x22, 0x0F, 0x01, 0x06, 0x16, + 0x3B, 0x01, 0x07, 0x06, 0x16, 0x33, 0x32, 0x37, 0x01, 0x50, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x02, 0x10, 0x10, 0x07, 0x09, + 0x1F, 0x19, 0x32, 0x22, 0x1D, 0x27, 0x17, 0x11, 0x08, 0xFE, 0xE0, 0x25, 0x1B, 0xA0, 0x1B, 0x25, 0x08, 0x24, 0x34, 0x14, 0x0D, 0x0A, 0x0D, 0x19, 0x1F, + 0x09, 0x07, 0x10, 0x09, 0x0E, 0x09, 0x20, 0x09, 0x0E, 0x09, 0xFE, 0xE4, 0x04, 0x07, 0x07, 0x3A, 0x0C, 0x01, 0x07, 0x06, 0x44, 0x0B, 0x01, 0x10, 0x01, + 0x08, 0x05, 0x3B, 0x17, 0x01, 0x07, 0x06, 0x07, 0x03, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x40, 0x09, 0x07, 0x20, 0x1A, + 0x2A, 0x08, 0x78, 0x21, 0x2E, 0x03, 0x03, 0x2E, 0x1E, 0x19, 0x11, 0x17, 0x70, 0x01, 0x60, 0x1B, 0x25, 0x25, 0x1B, 0xC0, 0x34, 0x24, 0x1C, 0x0D, 0x11, + 0x02, 0x02, 0x11, 0x0B, 0x76, 0x08, 0x2A, 0x1A, 0x20, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0x09, 0x07, 0x60, 0x05, 0x0B, + 0x33, 0x05, 0x08, 0x09, 0x6B, 0x05, 0x07, 0x53, 0x05, 0x08, 0x05, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x27, + 0x00, 0x00, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x36, 0x2F, 0x01, 0x26, 0x06, 0x1D, + 0x01, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x15, 0x14, 0x16, 0x37, 0x01, 0xF7, 0x09, 0x09, 0xE0, 0x0A, 0x1A, 0x0A, + 0xE0, 0x09, 0x09, 0xE0, 0x0A, 0x1A, 0x0A, 0x7B, 0x06, 0x06, 0x55, 0x03, 0x0A, 0x70, 0x0D, 0x13, 0x08, 0x20, 0x08, 0x60, 0x0A, 0x03, 0xD7, 0x0A, 0x1A, + 0x0A, 0xE0, 0x09, 0x09, 0xE0, 0x0A, 0x1A, 0x0A, 0xE0, 0x09, 0x09, 0xED, 0x06, 0x06, 0x4E, 0x03, 0x04, 0x05, 0x36, 0x13, 0x0D, 0x50, 0x08, 0x08, 0x40, + 0x36, 0x05, 0x04, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x27, 0x00, 0x39, 0x00, 0x41, 0x00, 0x49, 0x00, + 0x51, 0x00, 0x59, 0x00, 0x61, 0x00, 0x00, 0x25, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x27, 0x23, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x26, + 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x33, 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x30, 0x23, 0x07, 0x16, 0x14, 0x07, 0x17, 0x32, 0x05, 0x16, 0x17, + 0x33, 0x27, 0x22, 0x31, 0x22, 0x26, 0x34, 0x36, 0x33, 0x30, 0x33, 0x37, 0x23, 0x06, 0x07, 0x16, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x24, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x02, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x04, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x80, 0x1B, 0x25, 0x25, 0x1B, 0x25, 0x12, 0xD2, 0x12, 0x25, 0x1B, 0x25, 0x20, 0x20, 0x25, 0x1B, 0x25, 0x12, 0xD2, + 0x12, 0x25, 0x1B, 0x25, 0x25, 0x1B, 0x01, 0x27, 0x08, 0x08, 0x27, 0x01, 0xFE, 0xE0, 0x0F, 0x08, 0xD0, 0x26, 0x01, 0x1B, 0x25, 0x25, 0x1B, 0x01, 0x26, + 0xD0, 0x08, 0x0F, 0xB0, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x77, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0xFE, 0xC0, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x20, 0x09, 0x0E, + 0x09, 0x09, 0x0E, 0x01, 0x40, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x60, 0x25, 0x36, 0x25, 0x20, 0x20, 0x25, 0x1B, 0x25, 0x12, 0xD2, 0x12, 0x25, 0x1B, 0x25, + 0x20, 0x20, 0x25, 0x36, 0x25, 0x41, 0x0F, 0x20, 0x0F, 0x41, 0x09, 0x08, 0x0F, 0x40, 0x25, 0x36, 0x25, 0x40, 0x0F, 0x08, 0x62, 0x0E, 0x09, 0x09, 0x0E, + 0x09, 0x89, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x20, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0xFE, 0xC0, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x20, 0x09, 0x0E, 0x09, 0x09, + 0x0E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x37, 0x00, 0x41, 0x00, 0x45, 0x00, 0x00, + 0x25, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x37, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x3F, 0x01, 0x36, + 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x06, 0x27, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x14, + 0x16, 0x3B, 0x01, 0x32, 0x36, 0x37, 0x13, 0x11, 0x21, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x03, 0x11, 0x21, 0x11, 0x00, 0xFF, 0x3A, 0x0C, 0x0C, + 0x3A, 0x0B, 0x0C, 0x0B, 0x0B, 0x0B, 0x24, 0x24, 0x0B, 0x0B, 0x0B, 0x0C, 0x55, 0x0B, 0x0B, 0x24, 0x24, 0x0B, 0x0B, 0x0B, 0x0C, 0x0B, 0x3A, 0x0C, 0x0C, + 0x3A, 0x0B, 0x0C, 0x01, 0x06, 0x07, 0x09, 0x26, 0x1A, 0xFE, 0x00, 0x1A, 0x26, 0x09, 0x07, 0xEF, 0x14, 0x0D, 0x3D, 0x0E, 0x12, 0x01, 0xC2, 0xFE, 0x00, + 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, 0x40, 0xFE, 0x80, 0xBA, 0x3B, 0x0B, 0x0B, 0x3B, 0x0B, 0x0B, 0x0C, 0x0B, 0x0B, 0x24, 0x24, 0x0B, 0x0B, 0x0C, 0x0B, + 0x17, 0x0B, 0x0B, 0x24, 0x24, 0x0B, 0x0B, 0x0C, 0x0B, 0x0B, 0x3B, 0x0B, 0x0B, 0x3B, 0x0B, 0x0B, 0x9A, 0x09, 0x07, 0x10, 0x1A, 0x26, 0x26, 0x1A, 0x10, + 0x07, 0x09, 0x0B, 0x15, 0x11, 0x0F, 0x01, 0x70, 0xFE, 0xB0, 0x01, 0x50, 0x14, 0x1C, 0x1C, 0xFE, 0xDC, 0x01, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, + 0xFF, 0xFF, 0xFF, 0xBD, 0x02, 0x01, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x1F, 0x00, 0x30, 0x00, 0x00, 0x13, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, + 0x16, 0x14, 0x0F, 0x01, 0x06, 0x27, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x17, 0x16, 0x32, 0x3F, 0x01, 0x17, 0x16, + 0x14, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x17, 0x16, 0x32, 0x3F, 0x01, 0x0C, 0x0C, 0x0C, 0xE9, 0x05, 0x0C, 0x05, 0xE9, 0x0C, 0x0C, + 0xE9, 0x0B, 0x0B, 0x00, 0xFF, 0x0C, 0x0C, 0xE9, 0x0B, 0x0B, 0xE9, 0x0C, 0x0C, 0x3B, 0xA1, 0x0C, 0x18, 0x0C, 0xA2, 0x3A, 0x0C, 0x0C, 0xE9, 0x0B, 0x0B, + 0xE9, 0x0C, 0x0C, 0x3A, 0xA2, 0x0C, 0x18, 0x0C, 0xA2, 0x01, 0x2C, 0x06, 0x1C, 0x06, 0x6A, 0x02, 0x02, 0x6A, 0x06, 0x1C, 0x06, 0x6A, 0x05, 0x05, 0x12, + 0x06, 0x1D, 0x05, 0x6A, 0x05, 0x05, 0x6A, 0x05, 0x1D, 0x06, 0x1A, 0x49, 0x05, 0x05, 0x49, 0x9A, 0x06, 0x1C, 0x06, 0x6A, 0x05, 0x05, 0x6A, 0x06, 0x1C, + 0x06, 0x1A, 0x49, 0x05, 0x05, 0x49, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xB6, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x58, 0x00, 0x00, 0x25, 0x16, 0x15, + 0x14, 0x06, 0x2F, 0x01, 0x2E, 0x01, 0x3D, 0x01, 0x17, 0x16, 0x33, 0x32, 0x3F, 0x01, 0x36, 0x35, 0x34, 0x2F, 0x01, 0x07, 0x06, 0x15, 0x14, 0x1F, 0x01, + 0x16, 0x33, 0x32, 0x3F, 0x01, 0x15, 0x14, 0x06, 0x0F, 0x01, 0x06, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x3E, 0x08, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x37, + 0x36, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x1E, 0x07, 0x17, 0x16, 0x02, 0x7C, + 0x04, 0x4E, 0x2F, 0x3C, 0x1F, 0x28, 0x56, 0x02, 0x02, 0x05, 0x02, 0x09, 0x01, 0x03, 0xA8, 0xA8, 0x03, 0x01, 0x09, 0x02, 0x05, 0x02, 0x02, 0x56, 0x28, + 0x1F, 0x3C, 0x2F, 0x4E, 0x04, 0x21, 0x45, 0x01, 0x0C, 0x02, 0x0B, 0x04, 0x0B, 0x08, 0x0B, 0x0D, 0x07, 0x1D, 0x29, 0x21, 0x07, 0x09, 0x07, 0x10, 0x07, + 0x09, 0x07, 0x21, 0x29, 0x1D, 0x07, 0x0D, 0x0B, 0x08, 0x0B, 0x04, 0x0B, 0x02, 0x0C, 0x01, 0x45, 0x3A, 0x0F, 0x0F, 0x2E, 0x37, 0x0D, 0x10, 0x08, 0x31, + 0x1F, 0x58, 0x3A, 0x01, 0x04, 0x0D, 0x02, 0x02, 0x05, 0x02, 0x70, 0x70, 0x02, 0x05, 0x02, 0x02, 0x0D, 0x04, 0x01, 0x3A, 0x58, 0x1F, 0x31, 0x08, 0x10, + 0x0D, 0x37, 0x2E, 0x0F, 0x0F, 0x7A, 0x6D, 0x02, 0x12, 0x04, 0x0F, 0x04, 0x0A, 0x03, 0x05, 0x02, 0x26, 0x1C, 0x3C, 0x16, 0x05, 0x08, 0xAB, 0x07, 0x09, + 0x09, 0x07, 0xAB, 0x08, 0x05, 0x16, 0x3C, 0x1C, 0x26, 0x02, 0x05, 0x03, 0x0A, 0x04, 0x0F, 0x04, 0x12, 0x02, 0x6D, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, + 0x02, 0x00, 0x01, 0xC0, 0x00, 0x21, 0x00, 0x3B, 0x00, 0x47, 0x00, 0x00, 0x37, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x35, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x1D, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x05, 0x32, 0x16, 0x15, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x21, 0x32, 0x36, 0x34, 0x26, 0x23, 0x35, 0x32, 0x16, 0x15, 0x14, 0x07, 0x25, 0x22, 0x3D, + 0x01, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x14, 0x23, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0x09, 0x07, 0x40, 0x07, 0x09, 0x0D, 0x13, 0x13, 0x0D, 0x0C, 0x09, + 0x07, 0x28, 0x07, 0x09, 0x01, 0x24, 0x14, 0x1C, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x1C, 0x14, 0x01, 0x10, 0x35, 0x4B, 0x4B, 0x35, 0x4F, 0x71, 0x31, + 0xFE, 0x99, 0x08, 0x08, 0xD0, 0x08, 0x08, 0x80, 0x13, 0x0D, 0xE0, 0x0D, 0x13, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x13, 0x0D, 0xE0, 0x0D, 0x13, 0x10, + 0x07, 0x09, 0x09, 0x07, 0x10, 0x80, 0x1C, 0x14, 0x07, 0x09, 0x09, 0x07, 0x14, 0x1C, 0x4B, 0x6A, 0x4B, 0x40, 0x71, 0x4F, 0x49, 0x37, 0x20, 0x08, 0x10, + 0x08, 0x08, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x02, 0x80, 0x01, 0x60, 0x00, 0x31, 0x00, 0x35, 0x00, 0x40, 0x00, 0x00, + 0x01, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x27, 0x2E, 0x01, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x32, 0x1F, + 0x01, 0x33, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x33, 0x32, 0x1F, 0x01, + 0x05, 0x35, 0x27, 0x15, 0x05, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x02, 0x76, 0x04, 0x06, 0x02, 0xD5, 0x09, 0x0D, 0xFE, 0xED, + 0x0D, 0x13, 0x46, 0x0B, 0x0F, 0x13, 0x0D, 0x03, 0x03, 0x8A, 0x38, 0x38, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x38, 0x39, 0x0F, 0x0E, + 0x32, 0xFE, 0xC0, 0x30, 0x01, 0xF5, 0x16, 0x0A, 0x0B, 0x2B, 0x19, 0x24, 0x19, 0x01, 0x20, 0x01, 0x05, 0x04, 0x12, 0x03, 0x03, 0xD6, 0x0A, 0x13, 0x0D, + 0x2F, 0x0C, 0x02, 0x12, 0x0C, 0x5F, 0x0D, 0x13, 0x01, 0x19, 0x30, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x30, 0x07, 0x19, 0x41, + 0x3F, 0x08, 0x3E, 0x5D, 0x0A, 0x2B, 0x10, 0x10, 0x3E, 0x17, 0x12, 0x19, 0x19, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, + 0xC0, 0x00, 0x30, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, + 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x36, 0x35, 0x34, 0x27, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, + 0x32, 0x16, 0x15, 0x14, 0x01, 0xC3, 0x1A, 0x23, 0x2A, 0x1E, 0xFE, 0x90, 0x1E, 0x2A, 0x23, 0x1A, 0x1D, 0x2A, 0x1E, 0x0E, 0x16, 0x25, 0x1B, 0x10, 0x21, + 0x2F, 0x0F, 0x0A, 0x05, 0x28, 0x38, 0x06, 0x06, 0x1B, 0x25, 0x16, 0x0E, 0x1E, 0x2A, 0x4F, 0x04, 0x28, 0x1B, 0x1E, 0x2A, 0x2A, 0x1E, 0x1B, 0x28, 0x04, + 0x16, 0x23, 0x1E, 0x2A, 0x13, 0x1D, 0x1B, 0x25, 0x2F, 0x21, 0x19, 0x15, 0x02, 0x38, 0x28, 0x0F, 0x11, 0x25, 0x1B, 0x1D, 0x13, 0x2A, 0x1E, 0x23, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x06, 0x01, 0xC1, 0x00, 0x07, 0x00, 0x13, 0x00, 0x23, 0x00, 0x00, 0x36, 0x32, 0x16, 0x14, 0x06, + 0x22, 0x26, 0x34, 0x25, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x01, 0xFB, 0x0B, 0x16, 0x15, 0xD6, 0x15, 0x16, 0x0B, 0x6B, 0x0B, 0x2A, 0x0B, + 0x50, 0x0D, 0x13, 0x13, 0x0D, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0xC0, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x82, 0x12, 0x25, 0x25, 0x12, 0xB7, 0x12, 0x12, 0xFE, + 0xF2, 0x13, 0x0D, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0xA0, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFE, 0xFF, 0xC0, 0x01, 0xE2, 0x01, 0xC0, 0x00, + 0x35, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x07, 0x06, 0x26, 0x2F, + 0x01, 0x26, 0x36, 0x3F, 0x01, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x37, 0x36, + 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x01, 0xD8, 0x06, 0x03, 0x03, 0x20, 0x03, 0x0D, 0x06, 0x88, 0x09, 0x07, 0x40, 0x07, 0x09, 0x88, 0x06, 0x0D, + 0x03, 0x20, 0x03, 0x03, 0x06, 0x88, 0x88, 0x06, 0x03, 0x03, 0x20, 0x03, 0x0D, 0x06, 0x88, 0x09, 0x07, 0x40, 0x07, 0x09, 0x88, 0x06, 0x0D, 0x03, 0x20, + 0x03, 0x03, 0x06, 0x88, 0x72, 0x04, 0x0D, 0x05, 0x38, 0x05, 0x04, 0x03, 0x4F, 0x9D, 0x07, 0x09, 0x09, 0x07, 0x9D, 0x4F, 0x03, 0x04, 0x05, 0x38, 0x05, + 0x0D, 0x04, 0x4E, 0x4E, 0x04, 0x0D, 0x05, 0x38, 0x05, 0x04, 0x03, 0x4F, 0x9D, 0x07, 0x09, 0x09, 0x07, 0x9D, 0x4F, 0x03, 0x04, 0x05, 0x38, 0x05, 0x0D, + 0x04, 0x4E, 0x00, 0x00, 0x09, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x1D, 0x00, 0x2B, 0x00, 0x39, 0x00, 0x47, 0x00, 0x55, + 0x00, 0x63, 0x00, 0x71, 0x00, 0x7F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x13, + 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, + 0x32, 0x36, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, + 0x16, 0x3B, 0x01, 0x32, 0x36, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x06, + 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, + 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x02, 0x20, 0x28, 0x38, 0x38, 0x28, 0xFE, 0x40, 0x28, 0x38, 0x38, 0x28, 0x40, 0x09, + 0x07, 0x40, 0x07, 0x09, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x09, 0x07, 0x40, 0x07, 0x09, 0x90, 0x09, 0x07, 0x50, 0x07, 0x09, 0x21, 0x2E, 0x21, 0x21, + 0x2E, 0x21, 0x09, 0x07, 0x50, 0x07, 0x09, 0x90, 0x09, 0x07, 0x50, 0x07, 0x09, 0x21, 0x2E, 0x21, 0x21, 0x2E, 0x21, 0x09, 0x07, 0x50, 0x07, 0x09, 0x80, + 0x09, 0x07, 0x40, 0x07, 0x09, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x09, 0x07, 0x40, 0x07, 0x09, 0x01, 0xC0, 0x38, 0x28, 0xFE, 0xC0, 0x28, 0x38, 0x38, + 0x28, 0x01, 0x40, 0x28, 0x38, 0xFE, 0x90, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x14, 0x1C, 0x1C, 0x94, 0x40, 0x14, 0x1C, 0x1C, 0x14, 0x40, 0x07, 0x09, + 0x09, 0x71, 0x38, 0x07, 0x09, 0x09, 0x07, 0x38, 0x17, 0x21, 0x21, 0x8F, 0x58, 0x17, 0x21, 0x21, 0x17, 0x58, 0x07, 0x09, 0x09, 0x71, 0x38, 0x07, 0x09, + 0x09, 0x07, 0x38, 0x17, 0x21, 0x21, 0x8F, 0x58, 0x17, 0x21, 0x21, 0x17, 0x58, 0x07, 0x09, 0x09, 0x79, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x14, 0x1C, + 0x1C, 0x94, 0x40, 0x14, 0x1C, 0x1C, 0x14, 0x40, 0x07, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, + 0x0F, 0x00, 0x1D, 0x00, 0x2B, 0x00, 0x39, 0x00, 0x47, 0x00, 0x57, 0x00, 0x65, 0x00, 0x73, 0x00, 0x81, 0x00, 0x8F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, + 0x36, 0x37, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x37, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, + 0x3B, 0x01, 0x32, 0x36, 0x37, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x15, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x37, 0x35, + 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, + 0x36, 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x02, 0x20, 0x28, 0x38, 0x25, 0x1B, 0xFE, 0x00, 0x1B, 0x25, + 0x38, 0x28, 0x40, 0x1C, 0x28, 0x1C, 0x09, 0x07, 0x40, 0x07, 0x09, 0x90, 0x21, 0x2E, 0x21, 0x09, 0x07, 0x50, 0x07, 0x09, 0x90, 0x21, 0x2E, 0x21, 0x09, + 0x07, 0x50, 0x07, 0x09, 0x80, 0x1C, 0x28, 0x1C, 0x09, 0x07, 0x40, 0x07, 0x09, 0x1B, 0x25, 0x38, 0x28, 0xFE, 0x40, 0x28, 0x38, 0x25, 0x1B, 0x60, 0x09, + 0x07, 0x40, 0x07, 0x09, 0x1C, 0x28, 0x1C, 0x90, 0x09, 0x07, 0x50, 0x07, 0x09, 0x21, 0x2E, 0x21, 0x90, 0x09, 0x07, 0x50, 0x07, 0x09, 0x21, 0x2E, 0x21, + 0x80, 0x09, 0x07, 0x40, 0x07, 0x09, 0x1C, 0x28, 0x1C, 0x01, 0xC0, 0x38, 0x28, 0x40, 0x1B, 0x25, 0x25, 0x1B, 0x40, 0x28, 0x38, 0xB0, 0x20, 0x14, 0x1C, + 0x1C, 0x14, 0x20, 0x07, 0x09, 0x09, 0x07, 0x38, 0x17, 0x21, 0x21, 0x17, 0x38, 0x07, 0x09, 0x09, 0x07, 0x38, 0x17, 0x21, 0x21, 0x17, 0x38, 0x07, 0x09, + 0x09, 0x07, 0x20, 0x14, 0x1C, 0x1C, 0x14, 0x20, 0x07, 0x09, 0x09, 0x89, 0x25, 0x1B, 0x20, 0x28, 0x38, 0x38, 0x28, 0x20, 0x1B, 0x25, 0x50, 0x20, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x14, 0x1C, 0x1C, 0x1C, 0x18, 0x07, 0x09, 0x09, 0x07, 0x18, 0x17, 0x21, 0x21, 0x17, 0x18, 0x07, 0x09, 0x09, 0x07, 0x18, 0x17, + 0x21, 0x21, 0x0F, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x14, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFD, 0xFF, 0xBB, 0x02, 0x83, 0x01, 0xC0, + 0x00, 0x05, 0x00, 0x26, 0x00, 0x32, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x57, 0x00, 0x63, 0x00, 0x00, 0x37, 0x07, 0x06, 0x07, 0x26, 0x36, 0x07, 0x1E, 0x01, + 0x17, 0x16, 0x17, 0x06, 0x23, 0x22, 0x2E, 0x01, 0x2F, 0x01, 0x26, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x06, 0x07, 0x06, 0x07, 0x2A, 0x01, + 0x23, 0x22, 0x07, 0x14, 0x15, 0x17, 0x16, 0x0E, 0x01, 0x26, 0x27, 0x26, 0x35, 0x16, 0x36, 0x37, 0x16, 0x25, 0x1E, 0x01, 0x0F, 0x01, 0x0E, 0x02, 0x2E, + 0x02, 0x3F, 0x01, 0x3E, 0x01, 0x37, 0x36, 0x07, 0x06, 0x15, 0x36, 0x16, 0x17, 0x36, 0x37, 0x36, 0x2E, 0x01, 0x06, 0x1E, 0x01, 0x36, 0x37, 0x06, 0x26, + 0x27, 0x06, 0x37, 0x36, 0x37, 0x36, 0x2E, 0x01, 0x06, 0x07, 0x06, 0x17, 0x36, 0x16, 0xCF, 0x08, 0x20, 0x12, 0x01, 0x20, 0x54, 0x04, 0x46, 0x26, 0x0D, + 0x1A, 0x07, 0x03, 0x23, 0x59, 0x4A, 0x06, 0x20, 0x04, 0x12, 0x12, 0x67, 0x75, 0x24, 0x24, 0x1A, 0x10, 0x20, 0x19, 0x1E, 0x16, 0x01, 0x03, 0x01, 0x64, + 0x59, 0x81, 0x03, 0x13, 0x20, 0x1C, 0x02, 0x01, 0x12, 0x2C, 0x0D, 0x03, 0x01, 0x9F, 0x12, 0x12, 0x04, 0x20, 0x07, 0x53, 0x61, 0x41, 0x4F, 0x36, 0x07, + 0x20, 0x04, 0x1D, 0x15, 0x9B, 0x88, 0x01, 0x12, 0x2C, 0x0D, 0x03, 0x01, 0x03, 0x13, 0x20, 0x1C, 0x1B, 0x53, 0x46, 0x0A, 0x2E, 0x83, 0x22, 0x03, 0xDE, + 0x03, 0x01, 0x03, 0x13, 0x20, 0x1C, 0x02, 0x01, 0x01, 0x11, 0x2C, 0xCB, 0x2B, 0x0B, 0x14, 0x18, 0x2A, 0x2A, 0x18, 0x32, 0x0B, 0x23, 0x20, 0x01, 0x24, + 0x44, 0x26, 0xB3, 0x15, 0x27, 0x0A, 0x39, 0x06, 0x04, 0x17, 0x01, 0x04, 0x05, 0x15, 0x31, 0x01, 0x01, 0x2B, 0x10, 0x1B, 0x06, 0x13, 0x11, 0x05, 0x07, + 0x09, 0x07, 0x0F, 0x06, 0x1F, 0x0A, 0x26, 0x15, 0xB4, 0x29, 0x48, 0x21, 0x0B, 0x41, 0x60, 0x29, 0xB3, 0x15, 0x1E, 0x03, 0x19, 0xAD, 0x05, 0x07, 0x09, + 0x07, 0x0F, 0x06, 0x05, 0x11, 0x1B, 0x06, 0x13, 0xD0, 0x0F, 0x2C, 0x27, 0x1C, 0x17, 0x2A, 0x28, 0x4F, 0x06, 0x05, 0x11, 0x1B, 0x05, 0x13, 0x10, 0x05, + 0x07, 0x09, 0x08, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x29, 0x00, 0x31, 0x00, 0x39, 0x00, 0x41, 0x00, + 0x00, 0x01, 0x14, 0x06, 0x07, 0x15, 0x33, 0x14, 0x06, 0x07, 0x0E, 0x01, 0x22, 0x26, 0x27, 0x2E, 0x01, 0x35, 0x33, 0x35, 0x2E, 0x01, 0x35, 0x33, 0x35, + 0x2E, 0x01, 0x35, 0x33, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x14, 0x06, 0x07, 0x15, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x80, 0x24, 0x1C, 0x40, 0x25, 0x1E, 0x09, + 0x46, 0x5C, 0x46, 0x09, 0x1E, 0x25, 0x40, 0x1C, 0x24, 0x40, 0x1C, 0x24, 0x40, 0x13, 0x0D, 0xC0, 0x0D, 0x13, 0x40, 0x24, 0x1C, 0x94, 0x28, 0x1C, 0x1C, + 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0x00, 0x1F, 0x31, 0x0A, 0x26, 0x20, 0x32, 0x09, 0x2C, 0x39, + 0x39, 0x2C, 0x09, 0x32, 0x20, 0x26, 0x0A, 0x31, 0x1F, 0x26, 0x0A, 0x31, 0x1F, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x1F, 0x31, 0x0A, 0x26, 0xE0, 0x1C, + 0x28, 0x1C, 0x1C, 0x28, 0x64, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x64, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, + 0x02, 0x80, 0x01, 0xC0, 0x00, 0x2E, 0x00, 0x32, 0x00, 0x82, 0x00, 0x8A, 0x00, 0xDA, 0x00, 0xE2, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x2B, 0x01, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x23, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, + 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x25, 0x33, 0x27, 0x23, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x2B, 0x01, 0x06, 0x07, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x06, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x26, 0x27, + 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x26, 0x27, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x36, 0x37, 0x27, 0x26, 0x3F, 0x01, 0x36, + 0x1F, 0x01, 0x36, 0x37, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x16, 0x17, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x16, 0x17, 0x06, + 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x27, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x06, 0x07, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, + 0x06, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x26, 0x27, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x26, 0x27, 0x23, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x36, 0x37, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x36, 0x37, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x16, 0x17, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x16, 0x17, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x70, 0x07, 0x09, 0x09, + 0x07, 0x11, 0x16, 0x43, 0x4C, 0x43, 0x16, 0x42, 0x16, 0x43, 0x4C, 0x43, 0x16, 0x11, 0x07, 0x09, 0x09, 0x07, 0x10, 0x09, 0x07, 0xB0, 0x13, 0x0D, 0x71, + 0x1F, 0x13, 0x53, 0x4A, 0x0D, 0x13, 0xFE, 0xC0, 0x84, 0x33, 0x51, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0x05, 0x03, 0x06, 0x04, 0x0B, 0x0B, 0x17, 0x0B, + 0x0B, 0x04, 0x0A, 0x0B, 0x09, 0x07, 0x20, 0x07, 0x09, 0x0B, 0x0A, 0x04, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x04, 0x05, 0x04, 0x05, 0x07, 0x09, 0x09, 0x07, + 0x05, 0x03, 0x06, 0x04, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x04, 0x0A, 0x0B, 0x09, 0x07, 0x20, 0x07, 0x09, 0x0B, 0x0A, 0x04, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, + 0x04, 0x05, 0x04, 0x7F, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x05, 0x03, 0x06, 0x04, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x04, 0x0A, + 0x0B, 0x09, 0x07, 0x20, 0x07, 0x09, 0x0B, 0x0A, 0x04, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x04, 0x05, 0x04, 0x05, 0x07, 0x09, 0x09, 0x07, 0x05, 0x03, 0x06, + 0x04, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x04, 0x0A, 0x0B, 0x09, 0x07, 0x20, 0x07, 0x09, 0x0B, 0x0A, 0x04, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x04, 0x05, 0x04, + 0x7F, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xE0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x1E, 0x22, 0x22, 0x1E, 0x1E, 0x22, 0x22, 0x1E, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x50, 0x07, 0x09, 0x60, 0x0D, 0x13, 0x18, 0x68, 0x13, 0x0D, 0x40, 0x60, 0x40, 0xFE, 0xE0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x0B, 0x0A, 0x04, 0x0B, 0x0B, + 0x17, 0x0B, 0x0B, 0x04, 0x05, 0x04, 0x05, 0x07, 0x09, 0x09, 0x07, 0x05, 0x03, 0x06, 0x04, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x04, 0x0A, 0x0B, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x0B, 0x0A, 0x04, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x04, 0x05, 0x04, 0x05, 0x07, 0x09, 0x09, 0x07, 0x05, 0x03, 0x06, 0x04, 0x0B, 0x0B, + 0x17, 0x0B, 0x0B, 0x04, 0x0A, 0x0B, 0x50, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x34, 0x09, 0x07, 0x20, 0x07, 0x09, 0x0B, 0x0A, 0x04, 0x0B, 0x0B, 0x17, 0x0B, + 0x0B, 0x04, 0x05, 0x04, 0x05, 0x07, 0x09, 0x09, 0x07, 0x05, 0x04, 0x05, 0x04, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x04, 0x0A, 0x0B, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x0B, 0x0A, 0x04, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x04, 0x05, 0x04, 0x05, 0x07, 0x09, 0x09, 0x07, 0x05, 0x03, 0x06, 0x04, 0x0B, 0x0B, 0x17, 0x0B, + 0x0B, 0x04, 0x0A, 0x0B, 0x50, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x36, 0x00, 0x3A, 0x00, + 0x42, 0x00, 0x4A, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x23, 0x16, + 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x25, 0x15, 0x33, 0x27, 0x02, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x04, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0x32, 0x02, 0x42, 0x5C, 0x42, 0x02, 0x44, 0x02, 0x42, 0x5C, 0x42, 0x02, 0x32, 0x07, + 0x09, 0x09, 0x07, 0x10, 0x13, 0x0D, 0xA0, 0x13, 0x0D, 0x71, 0x1F, 0x13, 0x6D, 0x30, 0x0D, 0x13, 0xFE, 0xC0, 0x9E, 0x4D, 0xD5, 0x28, 0x1C, 0x1C, 0x28, + 0x1C, 0x01, 0x3C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x0B, 0x05, 0x2E, 0x42, 0x42, 0x2E, 0x05, 0x0B, 0x0B, 0x05, 0x2E, + 0x42, 0x42, 0x2E, 0x05, 0x0B, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x0D, 0x13, 0x80, 0x0D, 0x13, 0x18, 0x88, 0x13, 0x0D, 0x40, 0xC0, 0x60, 0x60, 0xFE, + 0xC0, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, + 0x02, 0x00, 0x0A, 0x00, 0x1A, 0x00, 0x30, 0x00, 0x48, 0x00, 0x00, 0x3F, 0x01, 0x17, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x37, 0x32, 0x16, + 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x13, 0x32, 0x36, 0x2F, 0x01, 0x26, 0x2B, 0x01, 0x22, 0x0F, 0x01, 0x06, + 0x16, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x33, 0x17, 0x16, 0x33, 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x26, 0x23, 0x22, 0x06, 0x14, + 0x16, 0x33, 0x32, 0x37, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x9E, 0x12, 0x12, 0x94, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x88, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x60, + 0x14, 0x1C, 0x1C, 0x14, 0xCB, 0x08, 0x09, 0x02, 0x36, 0x06, 0x11, 0x1A, 0x11, 0x06, 0x36, 0x02, 0x09, 0x08, 0x11, 0x0C, 0x03, 0x08, 0x46, 0x08, 0x03, + 0x0C, 0xBE, 0x09, 0x07, 0x10, 0x07, 0x09, 0x0C, 0x0C, 0x1E, 0x2A, 0x2A, 0x1E, 0x0F, 0x0D, 0x05, 0x07, 0x10, 0x07, 0x09, 0xB0, 0x35, 0x35, 0x10, 0x0E, + 0x14, 0x0E, 0x0E, 0x14, 0xCE, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, 0xFE, 0xE0, 0x0D, 0x08, 0x9B, 0x10, 0x10, 0x9B, + 0x08, 0x0D, 0x0B, 0x15, 0x15, 0x0B, 0x10, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x24, 0x04, 0x2A, 0x3C, 0x2A, 0x06, 0x06, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xFF, 0xC0, 0x01, 0x40, 0x01, 0xC0, 0x00, 0x23, 0x00, 0x2E, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x26, + 0x22, 0x06, 0x15, 0x14, 0x16, 0x17, 0x3E, 0x01, 0x35, 0x34, 0x01, 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0x60, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x60, 0x0A, 0x0E, + 0x0E, 0x0A, 0x2D, 0x25, 0x4A, 0x6C, 0x4A, 0x25, 0x45, 0x2C, 0x1A, 0x1E, 0x12, 0x12, 0x1E, 0xC0, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x98, 0x0A, 0x0E, 0x0E, + 0x0A, 0x98, 0x0E, 0x0A, 0x20, 0x0A, 0x0E, 0x3B, 0x35, 0x41, 0x4F, 0x4F, 0x41, 0x35, 0x3B, 0xB0, 0x22, 0x1E, 0x18, 0x39, 0x14, 0x14, 0x39, 0x18, 0x1E, + 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x16, 0x00, 0x3A, 0x00, 0x42, 0x00, 0x00, 0x25, 0x14, 0x07, 0x06, 0x14, 0x17, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x15, 0x05, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x15, 0x14, 0x16, + 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x33, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, + 0x22, 0x06, 0x13, 0x35, 0x21, 0x22, 0x06, 0x14, 0x16, 0x33, 0x01, 0xC0, 0x0A, 0x02, 0x02, 0x0A, 0x0F, 0x0B, 0xFE, 0xBA, 0x29, 0x37, 0x37, 0x29, 0x01, + 0x46, 0x1A, 0xFE, 0xD0, 0x09, 0x07, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0x07, + 0x09, 0xED, 0xFE, 0xE3, 0x0D, 0x13, 0x12, 0x0E, 0x5A, 0x0F, 0x05, 0x09, 0x34, 0x0C, 0x0A, 0x09, 0x10, 0x0C, 0x0E, 0x37, 0x29, 0x01, 0x40, 0x29, 0x37, + 0x1A, 0x76, 0x20, 0x07, 0x09, 0x70, 0x07, 0x09, 0x09, 0x07, 0x70, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x09, 0xFE, 0xC9, + 0x40, 0x12, 0x1C, 0x12, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x17, 0x00, 0x2F, 0x00, 0x33, 0x00, 0x42, + 0x00, 0x00, 0x24, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, + 0x32, 0x27, 0x22, 0x07, 0x21, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x26, + 0x27, 0x35, 0x23, 0x15, 0x17, 0x06, 0x15, 0x14, 0x17, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x33, 0x15, 0x14, 0x16, 0x33, 0x01, 0xB4, 0x78, 0x54, 0x54, 0x78, + 0x54, 0xD0, 0x0A, 0x26, 0x0A, 0x0C, 0x0A, 0x0A, 0x3C, 0x0A, 0x40, 0x37, 0x2E, 0xFE, 0x75, 0x1D, 0x13, 0x50, 0x1D, 0x13, 0xA0, 0x13, 0x1D, 0x50, 0x13, + 0x1D, 0x09, 0xB7, 0x80, 0x87, 0x07, 0x13, 0xFE, 0xDD, 0x13, 0x1D, 0xC0, 0x09, 0x07, 0xE0, 0x54, 0x78, 0x54, 0x54, 0x78, 0x42, 0x0C, 0x0A, 0x36, 0x0A, + 0x0A, 0x4C, 0x0A, 0xC0, 0x20, 0x50, 0x13, 0x1D, 0x30, 0x13, 0x1D, 0x1D, 0x13, 0x30, 0x1D, 0x13, 0x31, 0x01, 0x60, 0x20, 0x20, 0xE0, 0x18, 0x18, 0x2A, + 0x26, 0x1D, 0x13, 0x90, 0x30, 0x07, 0x09, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x2D, 0x00, 0x39, 0x00, + 0x45, 0x00, 0x51, 0x00, 0x5D, 0x00, 0x69, 0x00, 0x75, 0x00, 0x81, 0x00, 0x8D, 0x00, 0x99, 0x00, 0xA5, 0x00, 0xB1, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, + 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, + 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x05, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, + 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, + 0x3B, 0x01, 0x32, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, + 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, + 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, + 0x13, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x02, + 0x68, 0x0A, 0x0E, 0x13, 0x0D, 0xFD, 0xC0, 0x0D, 0x13, 0x0E, 0x0A, 0x28, 0x09, 0x07, 0x10, 0x07, 0x09, 0x40, 0x09, 0x07, 0x10, 0x07, 0x09, 0x40, 0x0E, + 0x0A, 0x90, 0x0A, 0x0E, 0xFE, 0xA0, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x80, + 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0xA0, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, + 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0xA0, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, + 0x01, 0x00, 0x0E, 0x0A, 0xFE, 0xF8, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x68, 0x0A, 0x0E, 0x50, 0x07, 0x09, 0x09, 0x07, 0x50, 0x50, 0x07, 0x09, 0x09, 0x07, + 0x50, 0x48, 0x0A, 0x0E, 0x0E, 0x0A, 0xA8, 0xD4, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, + 0xB4, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x54, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, + 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0xFE, 0xEC, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x6C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x14, 0x00, 0x53, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x27, + 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x3E, 0x02, 0x37, 0x26, 0x35, 0x34, 0x05, 0x3E, 0x01, 0x27, 0x2E, 0x01, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3B, 0x02, + 0x32, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x26, 0x27, 0x26, 0x27, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x0E, 0x01, 0x17, 0x1E, 0x01, 0x1F, + 0x01, 0x16, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x16, 0x17, 0x16, 0x17, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x35, 0x96, + 0xD4, 0x96, 0x96, 0x6A, 0x38, 0x33, 0x41, 0x4C, 0x08, 0x02, 0x05, 0x0F, 0x1D, 0x06, 0x39, 0x01, 0x18, 0x17, 0x1D, 0x03, 0x02, 0x18, 0x11, 0x32, 0x06, + 0x09, 0x20, 0x01, 0x05, 0x05, 0x08, 0x06, 0x11, 0x04, 0x01, 0x04, 0x0E, 0x12, 0x09, 0x07, 0x10, 0x07, 0x09, 0x17, 0x1D, 0x03, 0x02, 0x18, 0x11, 0x32, + 0x06, 0x09, 0x20, 0x06, 0x05, 0x08, 0x06, 0x11, 0x04, 0x01, 0x04, 0x0E, 0x12, 0x09, 0x07, 0x10, 0x07, 0x09, 0x01, 0xA0, 0x7A, 0xAC, 0x7A, 0x13, 0x33, + 0x08, 0x03, 0x03, 0x04, 0x13, 0x32, 0x16, 0x39, 0x4A, 0x56, 0xB4, 0x02, 0x25, 0x18, 0x11, 0x19, 0x05, 0x0F, 0x01, 0x07, 0x08, 0x02, 0x04, 0x06, 0x11, + 0x04, 0x0C, 0x03, 0x09, 0x02, 0x12, 0x07, 0x09, 0x09, 0x07, 0x12, 0x02, 0x25, 0x18, 0x11, 0x19, 0x05, 0x0F, 0x01, 0x07, 0x08, 0x02, 0x04, 0x06, 0x11, + 0x04, 0x0C, 0x03, 0x09, 0x02, 0x12, 0x07, 0x09, 0x09, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x42, 0x01, 0xA0, 0x00, 0x12, 0x00, + 0x4C, 0x00, 0x64, 0x00, 0x00, 0x00, 0x14, 0x06, 0x23, 0x22, 0x27, 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x36, 0x37, 0x26, 0x35, 0x34, 0x36, 0x32, 0x03, + 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x3E, 0x01, 0x35, 0x34, 0x26, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x3F, 0x01, 0x36, + 0x27, 0x26, 0x27, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x27, + 0x26, 0x0F, 0x01, 0x06, 0x17, 0x16, 0x17, 0x05, 0x16, 0x17, 0x16, 0x06, 0x23, 0x22, 0x27, 0x06, 0x23, 0x22, 0x26, 0x27, 0x16, 0x33, 0x32, 0x36, 0x35, + 0x34, 0x27, 0x1E, 0x01, 0x15, 0x14, 0x01, 0xA0, 0x7A, 0x56, 0x3C, 0x33, 0x2B, 0x2E, 0x08, 0x02, 0x16, 0x0E, 0x26, 0x7A, 0xAC, 0x66, 0x08, 0x10, 0x08, + 0x12, 0x19, 0x12, 0x0E, 0x2D, 0x09, 0x07, 0x05, 0x1C, 0x07, 0x06, 0x06, 0x04, 0x0C, 0x07, 0x08, 0x0E, 0x11, 0x08, 0x10, 0x08, 0x12, 0x19, 0x12, 0x0E, + 0x2D, 0x09, 0x07, 0x05, 0x1C, 0x07, 0x06, 0x06, 0x04, 0x0C, 0x07, 0x08, 0x0E, 0x11, 0x01, 0x5A, 0x0E, 0x16, 0x03, 0x04, 0x05, 0x2E, 0x2B, 0x33, 0x3C, + 0x40, 0x68, 0x18, 0x12, 0x0E, 0x63, 0x8D, 0x01, 0x39, 0x48, 0x01, 0x42, 0x84, 0x5E, 0x19, 0x19, 0x08, 0x03, 0x03, 0x17, 0x1F, 0x29, 0x33, 0x42, 0x5E, + 0xFF, 0x00, 0x08, 0x08, 0x10, 0x01, 0x1A, 0x12, 0x0F, 0x18, 0x05, 0x0D, 0x03, 0x0A, 0x05, 0x08, 0x04, 0x03, 0x04, 0x0B, 0x07, 0x05, 0x0B, 0x01, 0x10, + 0x08, 0x08, 0x10, 0x01, 0x1A, 0x12, 0x0F, 0x18, 0x05, 0x0D, 0x03, 0x0A, 0x05, 0x08, 0x04, 0x03, 0x04, 0x0B, 0x07, 0x05, 0x0B, 0x01, 0x8C, 0x1F, 0x17, + 0x04, 0x0A, 0x19, 0x19, 0x36, 0x2C, 0x02, 0x71, 0x4F, 0x0A, 0x0A, 0x12, 0x50, 0x32, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, + 0x01, 0xC0, 0x00, 0x23, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x01, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x13, + 0x0D, 0x40, 0x0D, 0x13, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x01, 0x40, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0xE0, 0x0D, 0x13, + 0x13, 0x0D, 0xE0, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x01, + 0x01, 0xC0, 0x00, 0x57, 0x00, 0x5D, 0x00, 0x63, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x7D, 0x00, 0x83, 0x00, 0x89, 0x00, 0x8F, 0x00, 0x00, 0x25, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x27, 0x06, 0x07, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x06, 0x07, 0x17, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x35, 0x37, 0x26, 0x27, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x26, 0x27, 0x07, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x33, 0x17, 0x36, 0x37, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x36, 0x37, 0x27, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x07, 0x16, + 0x17, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x16, 0x17, 0x27, 0x07, 0x16, 0x17, 0x37, 0x26, 0x27, 0x06, 0x07, 0x17, 0x36, 0x37, 0x23, + 0x06, 0x07, 0x17, 0x36, 0x37, 0x07, 0x16, 0x17, 0x37, 0x26, 0x27, 0x17, 0x37, 0x26, 0x27, 0x07, 0x16, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, + 0x17, 0x36, 0x37, 0x27, 0x06, 0x07, 0x33, 0x36, 0x37, 0x27, 0x06, 0x07, 0x3F, 0x01, 0x26, 0x27, 0x07, 0x16, 0x01, 0xEF, 0x07, 0x0A, 0x0A, 0x07, 0x11, + 0x08, 0x24, 0x0D, 0x05, 0x01, 0x05, 0x16, 0x04, 0x0E, 0x05, 0x0B, 0x2F, 0x3B, 0x01, 0x09, 0x07, 0x1E, 0x07, 0x09, 0x01, 0x3B, 0x2F, 0x0B, 0x05, 0x0E, + 0x04, 0x16, 0x04, 0x05, 0x0D, 0x24, 0x08, 0x11, 0x07, 0x0A, 0x0A, 0x07, 0x11, 0x08, 0x24, 0x0D, 0x05, 0x04, 0x16, 0x04, 0x0E, 0x05, 0x0B, 0x2F, 0x3B, + 0x01, 0x09, 0x07, 0x1E, 0x07, 0x09, 0x01, 0x3B, 0x2F, 0x0B, 0x05, 0x0E, 0x04, 0x16, 0x04, 0x05, 0x0D, 0x24, 0x08, 0xC4, 0x04, 0x0F, 0x0D, 0x2B, 0x1E, + 0x59, 0x25, 0x1E, 0x2B, 0x0D, 0x0F, 0x6C, 0x15, 0x06, 0x40, 0x03, 0x09, 0x4C, 0x06, 0x15, 0x31, 0x09, 0x03, 0x43, 0x04, 0x0F, 0x0D, 0x2B, 0x1E, 0x32, + 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x3A, 0x25, 0x1E, 0x2B, 0x0D, 0x0F, 0x6C, 0x15, 0x06, 0x40, 0x03, 0x09, 0x0C, 0x40, 0x06, 0x15, 0x31, 0x09, 0xDF, 0x09, + 0x07, 0x1E, 0x07, 0x09, 0x01, 0x3B, 0x2F, 0x0B, 0x05, 0x0E, 0x04, 0x16, 0x04, 0x05, 0x0D, 0x24, 0x08, 0x11, 0x07, 0x0A, 0x0A, 0x07, 0x11, 0x08, 0x24, + 0x0D, 0x05, 0x04, 0x16, 0x04, 0x0E, 0x05, 0x0B, 0x2F, 0x3B, 0x01, 0x09, 0x07, 0x1E, 0x07, 0x09, 0x01, 0x3B, 0x2F, 0x0B, 0x05, 0x0E, 0x04, 0x16, 0x04, + 0x05, 0x0D, 0x24, 0x08, 0x11, 0x07, 0x0A, 0x0A, 0x07, 0x11, 0x08, 0x24, 0x0D, 0x05, 0x04, 0x16, 0x04, 0x0E, 0x05, 0x0B, 0x2F, 0x3B, 0x7F, 0x40, 0x03, + 0x09, 0x31, 0x15, 0x06, 0x06, 0x15, 0x31, 0x09, 0x03, 0x1E, 0x25, 0x04, 0x0F, 0x0D, 0x4C, 0x25, 0x1E, 0x2B, 0x0D, 0x0F, 0x87, 0x40, 0x03, 0x09, 0x31, + 0x15, 0x77, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x90, 0x06, 0x15, 0x31, 0x09, 0x03, 0x1E, 0x25, 0x04, 0x0F, 0x0D, 0x48, 0x04, 0x25, 0x1E, 0x2B, 0x0D, 0x00, + 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2D, 0x00, 0x54, 0x00, 0x00, 0x37, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x07, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x16, 0x32, 0x3F, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x17, 0x25, 0x16, 0x1D, 0x01, 0x07, 0x35, 0x21, 0x15, 0x27, 0x35, + 0x34, 0x37, 0x36, 0x37, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x3E, 0x05, 0x33, 0x32, 0x1E, 0x04, 0x17, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x16, 0xB0, 0x07, 0x09, + 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xB0, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x46, 0x34, 0x15, 0xD1, 0x1C, 0x14, 0xFE, + 0x60, 0x14, 0x1C, 0xD1, 0x01, 0x1D, 0x12, 0x60, 0xFE, 0xC0, 0x60, 0x12, 0x10, 0x0E, 0x1C, 0x14, 0x4E, 0x01, 0x07, 0x01, 0x1C, 0x0E, 0x17, 0x08, 0x08, + 0x17, 0x0E, 0x1C, 0x01, 0x07, 0x01, 0x4E, 0x14, 0x1C, 0x0E, 0xE8, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x50, 0x10, 0x07, 0x09, + 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x72, 0x0F, 0x97, 0xD5, 0x14, 0x1C, 0x1C, 0x14, 0xD5, 0x97, 0xEF, 0x0E, 0x18, 0x0A, 0x46, 0xB9, 0xB9, 0x46, 0x0A, + 0x18, 0x0E, 0x0D, 0x0A, 0x2C, 0x14, 0x1C, 0x01, 0x05, 0x01, 0x15, 0x09, 0x0B, 0x0B, 0x09, 0x15, 0x01, 0x05, 0x01, 0x1C, 0x14, 0x2C, 0x0B, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x11, 0x00, 0x21, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x1F, 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x01, 0xD0, + 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xA0, 0x40, 0x60, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x01, 0x40, + 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, 0x40, 0xA8, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x11, 0x00, 0x35, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x1F, 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x22, 0x06, + 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x33, 0x32, 0x36, 0x01, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xFE, + 0x60, 0x14, 0x1C, 0x1C, 0x14, 0xA0, 0x40, 0x58, 0x0A, 0x06, 0x40, 0x0A, 0x06, 0x10, 0x07, 0x09, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x09, 0x07, 0x10, + 0x06, 0x0A, 0x40, 0x06, 0x0A, 0x01, 0x40, 0x1C, 0x14, 0xE0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x20, 0x14, 0x1C, 0x40, 0xA8, 0x10, 0x07, 0x09, 0x40, 0x07, + 0x09, 0x09, 0x07, 0x40, 0x09, 0x07, 0x10, 0x07, 0x09, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x09, 0x00, 0x00, 0x03, 0xFF, 0xFA, 0xFF, 0xBC, 0x02, 0x80, + 0x01, 0xC0, 0x00, 0x14, 0x00, 0x1C, 0x00, 0x56, 0x00, 0x00, 0x01, 0x0E, 0x01, 0x15, 0x14, 0x17, 0x0E, 0x01, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x27, 0x26, + 0x36, 0x33, 0x21, 0x32, 0x16, 0x07, 0x06, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x3E, 0x01, 0x35, 0x34, 0x26, 0x2F, 0x01, 0x26, 0x35, 0x34, + 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x3F, 0x01, 0x36, 0x27, 0x26, 0x27, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x1F, + 0x01, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x26, 0x0F, 0x01, 0x06, 0x17, 0x16, 0x17, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x35, 0x01, 0xB1, 0x3F, + 0x52, 0x3B, 0x08, 0x23, 0x10, 0x50, 0x10, 0xB7, 0x0F, 0x11, 0x15, 0x01, 0xE0, 0x15, 0x11, 0x0F, 0x79, 0x84, 0x5E, 0x5E, 0x84, 0x5E, 0xB0, 0x12, 0x19, + 0x12, 0x0E, 0x2D, 0x09, 0x07, 0x05, 0x1C, 0x07, 0x06, 0x06, 0x04, 0x0C, 0x07, 0x08, 0x0E, 0x11, 0x08, 0x10, 0x08, 0x12, 0x19, 0x12, 0x0E, 0x2D, 0x09, + 0x07, 0x05, 0x1C, 0x07, 0x06, 0x06, 0x04, 0x0C, 0x07, 0x08, 0x0E, 0x11, 0x08, 0x10, 0x08, 0x01, 0x1A, 0x10, 0x67, 0x43, 0x51, 0x39, 0x10, 0x09, 0x0B, + 0x3C, 0x0C, 0x14, 0x9C, 0xCA, 0x0F, 0x27, 0x27, 0x0F, 0x8A, 0x5E, 0x84, 0x5E, 0x5E, 0x84, 0x92, 0x01, 0x1A, 0x12, 0x0F, 0x18, 0x05, 0x0D, 0x03, 0x0A, + 0x05, 0x08, 0x04, 0x03, 0x04, 0x0B, 0x07, 0x05, 0x0B, 0x01, 0x10, 0x08, 0x08, 0x10, 0x01, 0x1A, 0x12, 0x0F, 0x18, 0x05, 0x0D, 0x03, 0x0A, 0x05, 0x08, + 0x04, 0x03, 0x04, 0x0B, 0x07, 0x05, 0x0B, 0x01, 0x10, 0x08, 0x08, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x65, 0x00, 0x6F, + 0x00, 0x79, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x23, 0x35, 0x23, 0x35, 0x23, 0x15, 0x33, 0x15, 0x33, 0x15, 0x23, + 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x35, 0x33, 0x35, 0x33, 0x35, 0x23, 0x15, 0x23, 0x15, 0x23, 0x15, 0x23, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, + 0x36, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, + 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x27, 0x15, 0x33, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x17, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, + 0x01, 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x09, 0x07, 0x40, 0x07, 0x09, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x50, 0x07, 0x09, 0x09, 0x07, 0x10, 0x09, 0x07, 0x10, 0x09, 0x07, 0x10, 0x09, 0x0E, 0x09, 0x40, 0x09, 0x0E, 0x09, 0x40, 0x09, 0x0E, 0x09, 0x40, 0x09, + 0x0E, 0x09, 0x10, 0x07, 0x09, 0x10, 0x07, 0x09, 0xF8, 0x30, 0x09, 0x07, 0x10, 0x07, 0x09, 0x38, 0x09, 0x07, 0x20, 0x07, 0x09, 0x60, 0x09, 0x07, 0x80, + 0x07, 0x09, 0xA0, 0x80, 0x60, 0x60, 0x80, 0xA0, 0x50, 0x07, 0x09, 0x09, 0x07, 0x50, 0xA0, 0x80, 0x60, 0x60, 0x80, 0xA0, 0x09, 0x07, 0x80, 0x07, 0x09, + 0x70, 0x07, 0x09, 0x50, 0x07, 0x09, 0x70, 0x07, 0x09, 0x09, 0x07, 0x10, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x10, + 0x07, 0x09, 0x09, 0x07, 0x70, 0x09, 0x07, 0x50, 0x09, 0x07, 0x70, 0xB0, 0x30, 0x30, 0x07, 0x09, 0x09, 0xB7, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x00, + 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x31, 0x00, 0x3F, 0x00, 0x47, 0x00, 0x00, 0x25, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x22, + 0x2F, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x36, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x04, 0x32, 0x36, 0x3F, 0x01, 0x2E, 0x02, 0x22, + 0x06, 0x0F, 0x01, 0x1E, 0x01, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x01, 0xFD, 0x03, 0x09, 0x66, 0x38, 0xB2, 0x38, 0x66, 0x09, 0x03, 0x08, + 0x15, 0x40, 0x18, 0x20, 0x18, 0x0A, 0x14, 0x0A, 0x18, 0x20, 0x18, 0x0A, 0x14, 0x0A, 0x18, 0x20, 0x18, 0x40, 0x15, 0xFE, 0xF3, 0x30, 0x30, 0x0C, 0x0C, + 0x05, 0x11, 0x32, 0x30, 0x30, 0x0C, 0x0C, 0x05, 0x11, 0x3D, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x8D, 0x06, 0x07, 0x0D, 0x09, 0x6E, 0x3C, 0x3C, 0x6E, 0x09, + 0x0D, 0x07, 0x06, 0x13, 0xD0, 0x10, 0x18, 0x18, 0x10, 0x86, 0x0A, 0x0A, 0xAE, 0x10, 0x18, 0x18, 0x10, 0xAE, 0x0A, 0x0A, 0x86, 0x10, 0x18, 0x18, 0x10, + 0xD0, 0x80, 0x20, 0x10, 0x10, 0x07, 0x15, 0x24, 0x20, 0x10, 0x10, 0x07, 0x15, 0x3C, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x02, 0xFF, 0xFD, 0xFF, + 0xC0, 0x02, 0x03, 0x01, 0xC0, 0x00, 0x32, 0x00, 0x44, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x0F, 0x01, 0x17, 0x16, 0x06, 0x2F, 0x01, 0x17, 0x14, 0x06, 0x23, + 0x22, 0x2F, 0x01, 0x07, 0x06, 0x23, 0x22, 0x26, 0x35, 0x37, 0x07, 0x22, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x27, 0x26, 0x36, + 0x1F, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x0F, 0x02, 0x27, 0x37, 0x27, 0x37, 0x07, 0x27, 0x07, 0x27, 0x17, 0x07, 0x17, 0x07, 0x37, + 0x07, 0x37, 0x17, 0x27, 0x01, 0xF0, 0x0D, 0x05, 0x0C, 0x62, 0x4B, 0x09, 0x0E, 0x0D, 0x6C, 0x04, 0x0B, 0x08, 0x08, 0x06, 0x44, 0x44, 0x06, 0x08, 0x08, + 0x0B, 0x04, 0x6C, 0x02, 0x02, 0x0C, 0x0A, 0x08, 0x4B, 0x62, 0x0C, 0x05, 0x0D, 0x6E, 0x2A, 0x05, 0x14, 0x0C, 0x5E, 0x22, 0x04, 0x1A, 0x04, 0x22, 0x5E, + 0x0C, 0x14, 0x05, 0x2A, 0x2F, 0x24, 0x2F, 0x35, 0x14, 0x2D, 0x10, 0x10, 0x2D, 0x14, 0x35, 0x2F, 0x24, 0x34, 0x02, 0x21, 0x21, 0x02, 0xF5, 0x01, 0x1B, + 0x06, 0x35, 0x53, 0x0A, 0x18, 0x03, 0x18, 0x71, 0x08, 0x0B, 0x07, 0x59, 0x59, 0x07, 0x0B, 0x08, 0x71, 0x18, 0x15, 0x0A, 0x53, 0x35, 0x06, 0x1B, 0x01, + 0x10, 0x68, 0x0D, 0x11, 0x07, 0x3C, 0x6B, 0x0D, 0x0D, 0x6B, 0x3C, 0x07, 0x11, 0x0D, 0x68, 0x7D, 0x28, 0x19, 0x08, 0x32, 0x1D, 0x33, 0x33, 0x1D, 0x32, + 0x08, 0x19, 0x28, 0x0C, 0x36, 0x2A, 0x2A, 0x36, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0xFF, 0xC0, 0x02, 0x30, 0x01, 0xC0, 0x00, 0x82, 0x00, 0x00, + 0x25, 0x0E, 0x01, 0x23, 0x22, 0x23, 0x2E, 0x01, 0x27, 0x33, 0x27, 0x26, 0x27, 0x34, 0x35, 0x34, 0x37, 0x33, 0x27, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, + 0x16, 0x15, 0x14, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x15, 0x14, 0x16, 0x17, 0x37, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, + 0x34, 0x3F, 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x26, 0x35, 0x34, 0x33, 0x32, 0x1F, 0x01, 0x13, 0x34, 0x33, 0x31, 0x32, 0x15, 0x13, 0x37, 0x36, + 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x17, 0x3E, + 0x01, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x07, + 0x33, 0x16, 0x31, 0x14, 0x0F, 0x01, 0x02, 0x18, 0x21, 0x86, 0x51, 0x06, 0x07, 0x4D, 0x7F, 0x1F, 0x28, 0x3B, 0x04, 0x01, 0x01, 0x2F, 0x29, 0x16, 0x56, + 0x04, 0x05, 0x08, 0x05, 0x03, 0x01, 0x0A, 0x3A, 0x07, 0x06, 0x29, 0x39, 0x2B, 0x02, 0x1B, 0x02, 0x02, 0x04, 0x02, 0x02, 0x01, 0x14, 0x2A, 0x07, 0x07, + 0x2A, 0x14, 0x01, 0x08, 0x02, 0x02, 0x1E, 0x0C, 0x08, 0x08, 0x0B, 0x1F, 0x02, 0x02, 0x04, 0x02, 0x02, 0x01, 0x14, 0x2A, 0x07, 0x07, 0x2A, 0x14, 0x01, + 0x02, 0x02, 0x04, 0x02, 0x02, 0x1B, 0x02, 0x25, 0x35, 0x08, 0x02, 0x29, 0x06, 0x07, 0x3A, 0x0A, 0x01, 0x03, 0x04, 0x09, 0x05, 0x04, 0x56, 0x16, 0x29, + 0x2F, 0x01, 0x05, 0x3B, 0x60, 0x48, 0x58, 0x04, 0x57, 0x45, 0x3B, 0x13, 0x14, 0x05, 0x06, 0x09, 0x0A, 0x29, 0x66, 0x3C, 0x03, 0x07, 0x04, 0x05, 0x03, + 0x03, 0x19, 0x1A, 0x47, 0x2B, 0x05, 0x08, 0x07, 0x05, 0x25, 0x37, 0x2D, 0x44, 0x09, 0x41, 0x12, 0x01, 0x02, 0x02, 0x04, 0x02, 0x02, 0x21, 0x09, 0x01, + 0x0E, 0x01, 0x09, 0x21, 0x02, 0x02, 0x08, 0x01, 0x15, 0x01, 0x20, 0x08, 0x08, 0xFE, 0xE0, 0x15, 0x01, 0x02, 0x02, 0x04, 0x02, 0x02, 0x21, 0x09, 0x01, + 0x0E, 0x01, 0x09, 0x21, 0x02, 0x02, 0x04, 0x02, 0x02, 0x01, 0x12, 0x41, 0x07, 0x35, 0x25, 0x0C, 0x0D, 0x37, 0x25, 0x05, 0x07, 0x08, 0x05, 0x2B, 0x47, + 0x1B, 0x18, 0x03, 0x03, 0x05, 0x04, 0x07, 0x02, 0x3D, 0x66, 0x29, 0x11, 0x1A, 0x1A, 0x3B, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, + 0x01, 0xC0, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x98, 0x00, 0x00, 0x25, 0x06, 0x14, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, + 0x34, 0x36, 0x33, 0x21, 0x32, 0x15, 0x11, 0x14, 0x07, 0x21, 0x22, 0x06, 0x14, 0x16, 0x33, 0x21, 0x03, 0x30, 0x14, 0x15, 0x17, 0x16, 0x15, 0x14, 0x23, + 0x22, 0x2F, 0x01, 0x1E, 0x01, 0x32, 0x36, 0x37, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x3C, 0x01, 0x31, 0x34, 0x27, 0x07, 0x06, + 0x23, 0x22, 0x35, 0x34, 0x3F, 0x01, 0x26, 0x27, 0x16, 0x15, 0x14, 0x07, 0x16, 0x15, 0x14, 0x06, 0x07, 0x27, 0x17, 0x16, 0x33, 0x31, 0x32, 0x35, 0x34, + 0x35, 0x27, 0x37, 0x36, 0x34, 0x2F, 0x01, 0x37, 0x34, 0x35, 0x34, 0x23, 0x22, 0x23, 0x07, 0x27, 0x34, 0x22, 0x15, 0x07, 0x27, 0x22, 0x23, 0x22, 0x15, + 0x14, 0x1F, 0x01, 0x07, 0x06, 0x14, 0x1F, 0x01, 0x07, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x3F, 0x01, 0x07, 0x2E, 0x01, 0x35, 0x34, 0x37, 0x26, 0x35, + 0x34, 0x37, 0x06, 0x07, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x2F, 0x01, 0x06, 0x01, 0xB6, 0x02, 0x02, 0x0A, 0x0F, 0x0B, 0xFE, 0xBA, 0x29, 0x37, 0x37, + 0x29, 0x01, 0x46, 0x1A, 0x43, 0xFE, 0xE3, 0x0D, 0x13, 0x12, 0x0E, 0x01, 0x1D, 0xFD, 0x25, 0x03, 0x08, 0x03, 0x02, 0x18, 0x09, 0x3D, 0x4E, 0x3D, 0x09, + 0x18, 0x02, 0x03, 0x04, 0x02, 0x02, 0x03, 0x25, 0x05, 0x15, 0x03, 0x03, 0x08, 0x02, 0x1B, 0x10, 0x1F, 0x0A, 0x18, 0x10, 0x19, 0x13, 0x02, 0x0D, 0x01, + 0x01, 0x04, 0x09, 0x12, 0x03, 0x03, 0x12, 0x09, 0x04, 0x01, 0x01, 0x0E, 0x05, 0x08, 0x05, 0x0C, 0x01, 0x01, 0x04, 0x01, 0x08, 0x12, 0x03, 0x03, 0x12, + 0x08, 0x01, 0x03, 0x01, 0x01, 0x01, 0x0B, 0x02, 0x13, 0x19, 0x10, 0x18, 0x0A, 0x1F, 0x10, 0x1B, 0x02, 0x08, 0x03, 0x03, 0x15, 0x05, 0x46, 0x09, 0x34, + 0x0C, 0x0A, 0x09, 0x10, 0x0C, 0x0E, 0x37, 0x29, 0x01, 0x40, 0x29, 0x37, 0x1A, 0xFE, 0xB4, 0x0F, 0x0B, 0x12, 0x1C, 0x12, 0x01, 0x10, 0x01, 0x01, 0x20, + 0x02, 0x04, 0x08, 0x02, 0x15, 0x26, 0x31, 0x31, 0x26, 0x15, 0x02, 0x03, 0x02, 0x03, 0x04, 0x02, 0x20, 0x01, 0x01, 0x0E, 0x12, 0x16, 0x02, 0x08, 0x03, + 0x03, 0x1A, 0x20, 0x11, 0x0F, 0x12, 0x1E, 0x13, 0x11, 0x16, 0x14, 0x1F, 0x04, 0x23, 0x09, 0x01, 0x04, 0x01, 0x01, 0x0F, 0x03, 0x01, 0x06, 0x01, 0x04, + 0x0E, 0x01, 0x01, 0x04, 0x0A, 0x70, 0x04, 0x04, 0x6F, 0x09, 0x04, 0x01, 0x01, 0x0E, 0x04, 0x01, 0x06, 0x01, 0x03, 0x0F, 0x01, 0x01, 0x01, 0x03, 0x01, + 0x07, 0x21, 0x04, 0x1F, 0x14, 0x16, 0x11, 0x13, 0x1E, 0x12, 0x0F, 0x11, 0x20, 0x1A, 0x03, 0x03, 0x08, 0x02, 0x16, 0x12, 0x00, 0x00, 0x06, 0x00, 0x00, + 0xFF, 0xBF, 0x02, 0x41, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x1F, 0x00, 0x2D, 0x00, 0x3B, 0x00, 0x49, 0x00, 0x57, 0x00, 0x00, 0x01, 0x16, 0x1D, 0x01, 0x25, + 0x26, 0x07, 0x05, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x07, 0x36, 0x17, 0x05, 0x15, 0x14, 0x06, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x2E, 0x01, + 0x3D, 0x01, 0x17, 0x35, 0x34, 0x26, 0x0F, 0x01, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3F, 0x01, 0x36, 0x37, 0x35, 0x34, 0x26, 0x0F, 0x01, 0x06, 0x1D, 0x01, + 0x14, 0x16, 0x3F, 0x01, 0x36, 0x17, 0x15, 0x14, 0x1F, 0x01, 0x16, 0x36, 0x3D, 0x01, 0x34, 0x2F, 0x01, 0x26, 0x06, 0x27, 0x15, 0x14, 0x1F, 0x01, 0x16, + 0x36, 0x3D, 0x01, 0x34, 0x2F, 0x01, 0x26, 0x06, 0x02, 0x2A, 0x16, 0xFE, 0xF7, 0x17, 0x17, 0xFE, 0xF7, 0x16, 0xEC, 0x0E, 0x20, 0x0E, 0x2C, 0x0E, 0x0E, + 0x01, 0x12, 0x0E, 0x0B, 0xF2, 0x0A, 0x16, 0x0A, 0xF2, 0x0B, 0x0E, 0x80, 0x06, 0x04, 0x50, 0x06, 0x06, 0x04, 0x50, 0x06, 0x90, 0x06, 0x04, 0x60, 0x06, + 0x06, 0x04, 0x60, 0x06, 0xB0, 0x06, 0x50, 0x04, 0x06, 0x06, 0x50, 0x04, 0x06, 0x90, 0x06, 0x60, 0x04, 0x06, 0x06, 0x60, 0x04, 0x06, 0x01, 0x6C, 0x07, + 0x17, 0x31, 0x50, 0x07, 0x07, 0x50, 0x31, 0x17, 0x07, 0x4F, 0x05, 0x05, 0x6D, 0x04, 0x04, 0x52, 0xE5, 0x0B, 0x11, 0x03, 0x36, 0x02, 0x02, 0x36, 0x03, + 0x11, 0x0B, 0xE5, 0x22, 0x10, 0x04, 0x05, 0x01, 0x16, 0x01, 0x06, 0x11, 0x04, 0x05, 0x01, 0x16, 0x02, 0x2D, 0x11, 0x04, 0x05, 0x02, 0x1A, 0x01, 0x06, + 0x11, 0x04, 0x05, 0x01, 0x1A, 0x02, 0x11, 0x10, 0x06, 0x02, 0x16, 0x01, 0x05, 0x04, 0x11, 0x06, 0x01, 0x16, 0x01, 0x05, 0x24, 0x11, 0x06, 0x02, 0x1A, + 0x01, 0x05, 0x04, 0x11, 0x06, 0x01, 0x1A, 0x02, 0x05, 0x00, 0x00, 0x03, 0xFF, 0xF3, 0xFF, 0xBF, 0x02, 0x0B, 0x01, 0xC0, 0x00, 0x6A, 0x00, 0x72, 0x00, + 0x7A, 0x00, 0x00, 0x01, 0x1E, 0x01, 0x07, 0x06, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x07, 0x17, 0x36, 0x31, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26, 0x2F, + 0x01, 0x15, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x07, 0x0E, 0x01, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x30, 0x17, 0x37, 0x27, + 0x07, 0x06, 0x2F, 0x01, 0x26, 0x27, 0x26, 0x36, 0x37, 0x36, 0x17, 0x16, 0x07, 0x06, 0x15, 0x14, 0x16, 0x1F, 0x01, 0x35, 0x27, 0x26, 0x3F, 0x01, 0x2E, + 0x01, 0x35, 0x34, 0x36, 0x37, 0x27, 0x26, 0x3F, 0x01, 0x17, 0x16, 0x0F, 0x01, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x07, 0x17, 0x16, 0x0F, 0x01, 0x15, 0x37, + 0x3E, 0x01, 0x35, 0x34, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x07, 0x34, 0x27, 0x07, 0x06, 0x1F, 0x01, 0x36, 0x27, 0x14, 0x17, 0x37, 0x36, 0x2F, 0x01, + 0x06, 0x01, 0xA0, 0x38, 0x32, 0x10, 0x0A, 0x1F, 0x35, 0x08, 0x0B, 0x50, 0x1D, 0x2F, 0x05, 0x0A, 0x0E, 0x0E, 0x0A, 0x09, 0x0D, 0x01, 0x29, 0x10, 0x13, + 0x1A, 0x13, 0x10, 0x29, 0x01, 0x0D, 0x09, 0x0A, 0x0E, 0x0E, 0x0A, 0x05, 0x2F, 0x1D, 0x50, 0x0B, 0x08, 0x38, 0x15, 0x0A, 0x19, 0x2F, 0x3C, 0x0B, 0x09, + 0x09, 0x07, 0x19, 0x26, 0x21, 0x4D, 0x2C, 0x07, 0x04, 0x08, 0x1A, 0x1F, 0x1E, 0x19, 0x06, 0x04, 0x08, 0x3B, 0x3B, 0x07, 0x04, 0x05, 0x19, 0x1E, 0x1F, + 0x1A, 0x08, 0x03, 0x06, 0x2C, 0x4C, 0x22, 0x26, 0x19, 0x03, 0x04, 0x09, 0x55, 0x1B, 0x08, 0x0D, 0x0D, 0x06, 0x1D, 0x80, 0x1D, 0x05, 0x0E, 0x0E, 0x07, + 0x1B, 0x01, 0x7E, 0x1E, 0x73, 0x3F, 0x27, 0x24, 0x3D, 0x0A, 0x06, 0x2A, 0x14, 0x21, 0x01, 0x0E, 0x14, 0x0E, 0x0C, 0x09, 0x1C, 0x1E, 0x09, 0x12, 0x0D, + 0x13, 0x13, 0x0D, 0x12, 0x09, 0x1E, 0x1C, 0x09, 0x0C, 0x0E, 0x14, 0x0E, 0x01, 0x21, 0x14, 0x2A, 0x06, 0x0A, 0x41, 0x18, 0x19, 0x45, 0x80, 0x20, 0x07, + 0x09, 0x0A, 0x0A, 0x28, 0x2F, 0x28, 0x46, 0x16, 0x36, 0x14, 0x24, 0x07, 0x09, 0x11, 0x0F, 0x33, 0x1F, 0x1E, 0x33, 0x0F, 0x0B, 0x09, 0x07, 0x35, 0x35, + 0x07, 0x09, 0x0B, 0x0F, 0x33, 0x1E, 0x1F, 0x33, 0x0F, 0x11, 0x09, 0x07, 0x24, 0x14, 0x36, 0x16, 0x46, 0x28, 0x2F, 0x28, 0x04, 0x05, 0x06, 0x05, 0x09, + 0x74, 0x20, 0x14, 0x11, 0x26, 0x26, 0x0C, 0x13, 0x22, 0x22, 0x13, 0x0C, 0x26, 0x26, 0x11, 0x14, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, + 0xC0, 0x00, 0x11, 0x00, 0x27, 0x00, 0x37, 0x00, 0x00, 0x01, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x36, + 0x32, 0x17, 0x07, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x21, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x05, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0xF6, 0x0A, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x0A, + 0xEB, 0x05, 0x0C, 0x05, 0xCB, 0x40, 0x60, 0x40, 0x60, 0x40, 0x10, 0x07, 0x09, 0xFE, 0x40, 0x09, 0x07, 0x10, 0x01, 0xB0, 0x07, 0x09, 0x09, 0x07, 0xFE, + 0x20, 0x07, 0x09, 0x09, 0x07, 0x01, 0x64, 0x04, 0x0B, 0x25, 0x07, 0x09, 0x09, 0x07, 0x25, 0x0B, 0x04, 0x5A, 0x02, 0x02, 0xBE, 0xA0, 0xA0, 0xA0, 0xA0, + 0xA0, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, + 0x40, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x27, 0x00, 0x39, 0x00, 0x3D, 0x00, 0x4C, 0x00, 0x00, 0x3A, 0x01, 0x37, 0x36, 0x37, 0x15, 0x14, 0x06, 0x23, 0x21, + 0x22, 0x26, 0x3D, 0x01, 0x16, 0x17, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x0E, 0x02, 0x07, 0x22, 0x06, 0x23, 0x22, 0x2E, 0x01, 0x27, 0x2E, 0x02, 0x27, 0x35, + 0x34, 0x36, 0x33, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x2E, 0x01, 0x2B, 0x01, 0x35, 0x34, 0x36, 0x33, 0x05, 0x35, 0x23, 0x15, + 0x25, 0x15, 0x23, 0x35, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x22, 0x06, 0x8B, 0x2A, 0x2B, 0x20, 0x40, 0x13, 0x0D, 0xFF, 0x00, 0x0D, + 0x13, 0x40, 0x20, 0xC0, 0x0D, 0x13, 0x07, 0x17, 0x2C, 0x29, 0x02, 0x22, 0x09, 0x07, 0x11, 0x14, 0x01, 0x29, 0x2C, 0x17, 0x07, 0x13, 0x0D, 0x02, 0x00, + 0x0D, 0x13, 0x13, 0x0D, 0xC0, 0x03, 0x24, 0x19, 0x60, 0x13, 0x0D, 0x01, 0x20, 0x40, 0xFE, 0xE0, 0x60, 0x13, 0x0D, 0x01, 0x40, 0x0D, 0x13, 0xE0, 0x1A, + 0x26, 0x20, 0x16, 0x30, 0x86, 0x0D, 0x13, 0x13, 0x0D, 0x86, 0x30, 0x16, 0xA0, 0x13, 0x0D, 0x13, 0x06, 0x12, 0x21, 0x1E, 0x16, 0x09, 0x10, 0x01, 0x1D, + 0x22, 0x12, 0x05, 0x10, 0x0D, 0x13, 0x60, 0x13, 0x0D, 0xC0, 0x0D, 0x13, 0x86, 0x19, 0x21, 0x20, 0x0D, 0x13, 0x80, 0x40, 0x40, 0x60, 0x20, 0xC0, 0x0D, + 0x13, 0x13, 0x0D, 0x60, 0x26, 0x00, 0x0C, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x13, 0x00, 0x1D, 0x00, 0x27, 0x00, 0x32, + 0x00, 0x3D, 0x00, 0x48, 0x00, 0x53, 0x00, 0x5E, 0x00, 0x69, 0x00, 0x74, 0x00, 0xB2, 0x00, 0x00, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x23, 0x35, 0x34, 0x36, 0x33, 0x36, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, + 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, + 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, + 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x05, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x33, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x36, 0x90, 0x07, 0x09, 0x40, 0x09, + 0x07, 0x80, 0x07, 0x09, 0x40, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x40, 0x09, 0x07, 0x80, 0x07, 0x09, 0x40, 0x09, 0x07, 0x7D, 0x1A, 0x13, 0x10, 0x08, 0x08, + 0x20, 0x73, 0x1A, 0x13, 0x10, 0x08, 0x08, 0x20, 0x73, 0x1A, 0x13, 0x10, 0x08, 0x08, 0x20, 0x73, 0x1A, 0x13, 0x10, 0x08, 0x08, 0x20, 0x73, 0x1A, 0x13, + 0x10, 0x08, 0x08, 0x20, 0x73, 0x1A, 0x13, 0x10, 0x08, 0x08, 0x20, 0x73, 0x1A, 0x13, 0x10, 0x08, 0x08, 0x20, 0x02, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x38, 0x28, 0xC0, 0xB0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0xB0, 0xC0, 0x28, 0x38, 0x09, 0x07, 0x20, 0x07, 0x09, 0x13, 0x0D, + 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, 0x0D, 0x13, 0x01, 0x40, 0x09, 0x07, 0x90, 0x90, 0x07, 0x09, 0x09, 0x07, 0x90, 0x90, 0x07, 0x09, 0x09, 0x07, + 0x90, 0x90, 0x07, 0x09, 0x09, 0x07, 0x90, 0x90, 0x07, 0x09, 0x20, 0x13, 0x0D, 0x08, 0x20, 0x0C, 0x0C, 0x2E, 0x12, 0x0D, 0x13, 0x13, 0x0D, 0x08, 0x20, + 0x0C, 0x0C, 0x2E, 0x12, 0x0D, 0x13, 0x13, 0x0D, 0x08, 0x20, 0x0C, 0x0C, 0x2E, 0x12, 0x0D, 0x13, 0x13, 0x0D, 0x08, 0x20, 0x0C, 0x0C, 0x2E, 0x12, 0x0D, + 0x13, 0x13, 0x0D, 0x08, 0x20, 0x0C, 0x0C, 0x2E, 0x12, 0x0D, 0x13, 0x13, 0x0D, 0x08, 0x20, 0x0C, 0x0C, 0x2E, 0x12, 0x0D, 0x13, 0x13, 0x0D, 0x08, 0x20, + 0x0C, 0x0C, 0x2E, 0x12, 0x0D, 0xD3, 0x90, 0x07, 0x09, 0x09, 0x07, 0x90, 0x28, 0x38, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x40, 0x38, 0x28, 0x90, 0x07, 0x09, 0x09, 0x07, 0x90, 0x0D, 0x13, 0xB0, 0x07, 0x09, 0x09, 0x07, 0xB0, 0x13, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, + 0x02, 0x80, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x18, 0x00, 0x43, 0x00, 0x50, 0x00, 0x00, 0x15, 0x11, 0x33, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x25, + 0x21, 0x26, 0x35, 0x34, 0x37, 0x36, 0x3F, 0x01, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x15, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x34, + 0x26, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x26, 0x2F, 0x01, 0x0E, 0x02, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x03, 0x1E, 0x04, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x36, 0x37, 0x80, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x02, 0x43, 0xFE, + 0x9A, 0x1D, 0x58, 0x45, 0x2B, 0x08, 0x08, 0x2B, 0x45, 0x58, 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x13, 0x1A, 0x13, 0x40, 0x18, 0x0C, 0x0C, 0x05, 0x10, 0x1B, + 0x40, 0x13, 0x1A, 0x13, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x03, 0x08, 0x16, 0x11, 0x0E, 0x80, 0x20, 0x10, 0x20, 0x01, 0x40, 0xFE, 0xC0, 0x0D, 0x13, + 0x13, 0xCD, 0x1C, 0x1F, 0x43, 0x38, 0x2B, 0x35, 0x0A, 0x0A, 0x35, 0x2B, 0x38, 0x43, 0x1F, 0x3C, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x40, 0x0D, 0x13, 0x13, + 0x0D, 0x40, 0x48, 0x15, 0x24, 0x07, 0x08, 0x03, 0x0A, 0x26, 0x15, 0x48, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x01, 0x40, + 0x01, 0x05, 0x12, 0x15, 0x21, 0x12, 0x20, 0x20, 0x1C, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC5, 0x00, + 0x0E, 0x00, 0x67, 0x00, 0x80, 0x00, 0x00, 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x16, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x23, 0x22, 0x2E, 0x02, 0x35, 0x27, 0x35, 0x34, 0x36, 0x17, 0x16, 0x33, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x0F, 0x01, + 0x06, 0x2B, 0x01, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2E, 0x02, 0x35, 0x34, 0x36, 0x17, 0x16, 0x17, 0x1E, 0x03, 0x33, 0x32, 0x36, 0x34, 0x26, 0x2B, + 0x01, 0x26, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x34, 0x37, 0x36, 0x17, 0x1E, 0x01, + 0x17, 0x16, 0x07, 0x33, 0x32, 0x3F, 0x02, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x07, 0x0E, 0x02, 0x23, 0x22, 0x2E, 0x03, 0x27, 0x26, 0x36, 0x17, 0x1E, 0x03, + 0x36, 0x01, 0x69, 0x16, 0x03, 0x03, 0x16, 0x07, 0x07, 0x16, 0x03, 0x03, 0x16, 0x03, 0x08, 0x07, 0x52, 0x3B, 0x3B, 0x25, 0x1B, 0x27, 0x13, 0x0A, 0x01, + 0x0B, 0x03, 0x23, 0x2F, 0x0B, 0x15, 0x15, 0x1E, 0x0A, 0x19, 0x1D, 0x29, 0x16, 0x12, 0x4B, 0x35, 0x2A, 0x41, 0x24, 0x11, 0x0B, 0x04, 0x01, 0x03, 0x0B, + 0x10, 0x21, 0x31, 0x20, 0x1A, 0x26, 0x26, 0x1A, 0x21, 0x09, 0x04, 0x10, 0x04, 0x09, 0x09, 0x20, 0x14, 0x1C, 0x1C, 0x14, 0x11, 0x0D, 0x0A, 0x0A, 0x1A, + 0x06, 0x05, 0x28, 0x38, 0x21, 0x31, 0x08, 0x09, 0x11, 0x2F, 0x0F, 0x0A, 0x18, 0x71, 0x08, 0x12, 0x02, 0x02, 0x0E, 0x31, 0x24, 0x16, 0x29, 0x19, 0x16, + 0x07, 0x02, 0x06, 0x13, 0x0B, 0x04, 0x0E, 0x26, 0x27, 0x35, 0x01, 0x83, 0x16, 0x03, 0x08, 0x03, 0x16, 0x07, 0x07, 0x16, 0x03, 0x08, 0x03, 0x16, 0x03, + 0x80, 0x3B, 0x29, 0x64, 0x24, 0x34, 0x0D, 0x13, 0x13, 0x06, 0x07, 0x26, 0x06, 0x03, 0x04, 0x2B, 0x0F, 0x09, 0x64, 0x0F, 0x15, 0x0A, 0x19, 0x1D, 0x1F, + 0x21, 0x35, 0x4B, 0x1F, 0x30, 0x31, 0x17, 0x06, 0x05, 0x06, 0x02, 0x04, 0x14, 0x15, 0x1F, 0x0E, 0x26, 0x34, 0x26, 0x01, 0x08, 0x20, 0x08, 0x0F, 0x1C, + 0x28, 0x1C, 0x0B, 0x07, 0x07, 0x14, 0x04, 0x0F, 0x06, 0x26, 0x0A, 0x05, 0x2E, 0x20, 0x27, 0x24, 0x0A, 0x19, 0x9A, 0x06, 0x09, 0x0A, 0x24, 0x03, 0x03, + 0x07, 0x0D, 0x12, 0x0F, 0x13, 0x18, 0x0B, 0x03, 0x0C, 0x11, 0x08, 0x04, 0x08, 0x0F, 0x05, 0x0D, 0x00, 0x03, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x82, 0x01, + 0xC0, 0x00, 0xA1, 0x00, 0xA9, 0x00, 0xB1, 0x00, 0x00, 0x24, 0x1E, 0x01, 0x0E, 0x01, 0x26, 0x07, 0x06, 0x23, 0x22, 0x27, 0x2E, 0x02, 0x27, 0x26, 0x27, + 0x06, 0x07, 0x1E, 0x01, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x2E, 0x02, 0x27, 0x06, 0x22, 0x27, 0x0E, 0x03, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, + 0x32, 0x36, 0x37, 0x26, 0x27, 0x06, 0x07, 0x0E, 0x02, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x06, 0x2E, 0x01, 0x3E, 0x02, 0x1E, 0x02, 0x17, 0x16, 0x36, + 0x37, 0x36, 0x37, 0x26, 0x27, 0x06, 0x23, 0x22, 0x2E, 0x01, 0x27, 0x26, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x1E, 0x01, 0x17, 0x16, 0x33, 0x32, + 0x3E, 0x01, 0x37, 0x27, 0x2E, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x17, 0x36, 0x32, 0x17, 0x37, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, + 0x15, 0x14, 0x06, 0x0F, 0x01, 0x1E, 0x02, 0x33, 0x32, 0x37, 0x3E, 0x02, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x07, 0x0E, 0x02, 0x23, 0x22, 0x27, + 0x06, 0x07, 0x16, 0x17, 0x1E, 0x01, 0x37, 0x3E, 0x03, 0x02, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x24, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, + 0x02, 0x67, 0x13, 0x08, 0x07, 0x12, 0x13, 0x16, 0x1F, 0x15, 0x0C, 0x0B, 0x0F, 0x15, 0x06, 0x04, 0x03, 0x03, 0x1C, 0x21, 0x09, 0x20, 0x13, 0x0A, 0x0E, + 0x0E, 0x0A, 0x17, 0x28, 0x19, 0x0E, 0x05, 0x0D, 0x10, 0x0D, 0x05, 0x0E, 0x19, 0x28, 0x17, 0x0A, 0x0E, 0x0E, 0x0A, 0x13, 0x20, 0x09, 0x21, 0x1C, 0x03, + 0x03, 0x04, 0x06, 0x15, 0x0F, 0x0B, 0x0C, 0x15, 0x1F, 0x16, 0x13, 0x12, 0x07, 0x08, 0x13, 0x13, 0x0E, 0x11, 0x08, 0x08, 0x16, 0x13, 0x06, 0x08, 0x0A, + 0x04, 0x02, 0x13, 0x17, 0x10, 0x1A, 0x0C, 0x08, 0x0E, 0x08, 0x0A, 0x0E, 0x0E, 0x0A, 0x10, 0x1A, 0x0C, 0x08, 0x0E, 0x08, 0x07, 0x17, 0x2A, 0x19, 0x11, + 0x19, 0x23, 0x25, 0x36, 0x25, 0x0B, 0x13, 0x1B, 0x3A, 0x1B, 0x13, 0x0B, 0x25, 0x36, 0x25, 0x23, 0x19, 0x11, 0x19, 0x2A, 0x17, 0x07, 0x08, 0x0E, 0x08, + 0x0C, 0x1A, 0x10, 0x0A, 0x0E, 0x0E, 0x0A, 0x08, 0x0E, 0x08, 0x0C, 0x1A, 0x10, 0x18, 0x12, 0x02, 0x04, 0x0A, 0x08, 0x06, 0x13, 0x16, 0x08, 0x08, 0x11, + 0x0E, 0x8D, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0xFE, 0xF7, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x68, 0x07, 0x12, 0x13, 0x08, 0x07, 0x0F, 0x15, 0x05, 0x05, 0x19, + 0x11, 0x0F, 0x0D, 0x06, 0x17, 0x0B, 0x23, 0x38, 0x0E, 0x14, 0x0E, 0x1C, 0x2D, 0x25, 0x13, 0x01, 0x01, 0x13, 0x25, 0x2D, 0x1C, 0x0E, 0x14, 0x0E, 0x38, + 0x23, 0x0B, 0x17, 0x06, 0x0D, 0x0F, 0x11, 0x19, 0x05, 0x05, 0x15, 0x0F, 0x07, 0x08, 0x13, 0x12, 0x07, 0x01, 0x03, 0x08, 0x05, 0x05, 0x0F, 0x07, 0x1A, + 0x1D, 0x0E, 0x05, 0x03, 0x11, 0x10, 0x0E, 0x0D, 0x15, 0x0E, 0x14, 0x0E, 0x10, 0x0F, 0x0C, 0x15, 0x21, 0x34, 0x11, 0x22, 0x02, 0x25, 0x19, 0x1B, 0x25, + 0x25, 0x1B, 0x13, 0x10, 0x25, 0x08, 0x08, 0x25, 0x10, 0x13, 0x1B, 0x25, 0x25, 0x1B, 0x19, 0x25, 0x02, 0x22, 0x11, 0x34, 0x21, 0x15, 0x0D, 0x0E, 0x10, + 0x0E, 0x14, 0x0E, 0x15, 0x0D, 0x0E, 0x10, 0x11, 0x03, 0x05, 0x0E, 0x1D, 0x1A, 0x07, 0x0F, 0x05, 0x05, 0x08, 0x03, 0x01, 0x27, 0x09, 0x0E, 0x09, 0x09, + 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x12, 0x00, + 0x16, 0x00, 0x1D, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x34, 0x26, 0x27, 0x15, 0x17, 0x36, 0x07, 0x35, 0x07, 0x16, 0x37, + 0x15, 0x36, 0x37, 0x03, 0x0E, 0x01, 0x15, 0x14, 0x17, 0x37, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0xB0, 0x57, 0x41, 0x81, 0x17, 0xD8, 0x59, 0x26, + 0x73, 0x33, 0x26, 0x99, 0x41, 0x57, 0x17, 0x81, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x67, 0x43, 0x67, 0x0B, 0xA6, 0x67, 0x29, 0x86, 0x72, 0x47, + 0x22, 0x69, 0x72, 0x09, 0x22, 0x01, 0x3F, 0x0B, 0x67, 0x43, 0x2F, 0x29, 0x67, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, + 0xC7, 0x00, 0x08, 0x00, 0x11, 0x00, 0x2C, 0x00, 0x00, 0x25, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x05, 0x34, 0x3F, 0x01, 0x15, 0x23, 0x22, + 0x26, 0x35, 0x25, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x3F, 0x01, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x1F, + 0x01, 0x16, 0x1D, 0x01, 0x02, 0x6D, 0x13, 0x09, 0x07, 0x70, 0xFE, 0x00, 0x13, 0x6D, 0x70, 0x07, 0x09, 0x01, 0xD0, 0x10, 0x60, 0x25, 0x36, 0x25, 0x60, + 0x10, 0x30, 0x09, 0x4C, 0x0B, 0x0B, 0x4C, 0x09, 0x51, 0x08, 0x15, 0x64, 0x07, 0x09, 0xC0, 0x4C, 0x15, 0x08, 0x2F, 0xC0, 0x09, 0x07, 0xF9, 0x09, 0x12, + 0xEE, 0x60, 0x1B, 0x25, 0x25, 0x1B, 0x60, 0xEE, 0x12, 0x09, 0x1D, 0x73, 0x0E, 0x09, 0x4B, 0x0C, 0x0C, 0x4B, 0x09, 0x0E, 0x73, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x13, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, + 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, + 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x70, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xFE, 0xB0, 0x80, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, + 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x00, 0x25, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x05, 0x33, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, + 0x16, 0x17, 0x33, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x17, 0x33, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, + 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xFE, 0xB0, 0x80, + 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, + 0x07, 0x09, 0x09, 0x10, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x70, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x82, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x28, 0x00, 0x00, 0x00, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, + 0x27, 0x07, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x36, 0x37, 0x36, 0x1F, 0x01, 0x37, 0x36, + 0x1E, 0x01, 0x06, 0x0F, 0x01, 0x06, 0x26, 0x01, 0x1B, 0x36, 0x25, 0x25, 0x36, 0x25, 0x5F, 0x18, 0x23, 0x6E, 0x13, 0x15, 0x1A, 0xD0, 0x11, 0x17, 0x17, + 0x11, 0x5C, 0x2D, 0x20, 0x14, 0x12, 0x31, 0x12, 0x26, 0x28, 0x18, 0x27, 0x3A, 0x0C, 0x21, 0x15, 0x03, 0x0D, 0x58, 0x0C, 0x21, 0x01, 0x40, 0x25, 0x36, + 0x25, 0x25, 0x36, 0xCF, 0x1D, 0x41, 0x6E, 0x13, 0x31, 0x17, 0x22, 0x17, 0x23, 0x14, 0x47, 0x21, 0x5C, 0x21, 0x04, 0x04, 0x1E, 0x2E, 0x2F, 0x0A, 0x03, + 0x19, 0x21, 0x0B, 0x48, 0x0A, 0x03, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC2, 0x00, 0x28, 0x00, 0x51, 0x00, 0x00, 0x00, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x35, 0x34, 0x3F, 0x01, 0x30, 0x33, 0x3E, 0x01, 0x17, + 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x05, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x2E, + 0x01, 0x3D, 0x01, 0x34, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x2F, 0x01, 0x26, 0x36, 0x37, 0x36, 0x16, 0x17, 0x32, + 0x31, 0x17, 0x16, 0x1D, 0x01, 0x01, 0x03, 0x1A, 0x13, 0x2F, 0x26, 0xB3, 0x04, 0x04, 0x10, 0x10, 0x16, 0x5A, 0x10, 0x75, 0x01, 0x07, 0x19, 0x0A, 0x0C, + 0x06, 0x07, 0x4D, 0x0E, 0x09, 0x0E, 0x09, 0x01, 0x7A, 0x16, 0x10, 0x10, 0x04, 0x04, 0xB3, 0x26, 0x2F, 0x13, 0x1A, 0x13, 0x09, 0x0E, 0x09, 0x0E, 0x4D, + 0x07, 0x06, 0x0C, 0x0A, 0x19, 0x07, 0x01, 0x75, 0x10, 0x01, 0x00, 0x13, 0x0D, 0x80, 0x27, 0x3F, 0x0A, 0x2F, 0x01, 0x15, 0x0B, 0x60, 0x17, 0x07, 0x1E, + 0x51, 0x1D, 0x18, 0xB0, 0x0B, 0x05, 0x06, 0x07, 0x1A, 0x0B, 0x82, 0x17, 0x1A, 0x4D, 0x07, 0x09, 0x09, 0x07, 0x50, 0x0D, 0x8F, 0x07, 0x17, 0x60, 0x0B, + 0x15, 0x01, 0x2F, 0x0A, 0x3F, 0x27, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x50, 0x07, 0x09, 0x09, 0x07, 0x4D, 0x1A, 0x17, 0x82, 0x0B, 0x1A, 0x06, 0x07, 0x06, + 0x0A, 0xB0, 0x18, 0x1D, 0x51, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x16, 0x00, 0x31, 0x00, 0x4E, 0x00, 0x56, 0x00, + 0x00, 0x25, 0x14, 0x07, 0x06, 0x14, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x15, 0x0F, + 0x02, 0x22, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x33, 0x32, 0x33, 0x37, 0x17, 0x32, 0x33, 0x32, 0x2F, 0x01, 0x37, 0x36, 0x26, 0x23, 0x2F, 0x01, 0x26, 0x22, + 0x27, 0x22, 0x06, 0x14, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x23, 0x30, 0x22, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x3A, 0x01, 0x31, 0x16, 0x33, + 0x32, 0x34, 0x23, 0x26, 0x13, 0x35, 0x21, 0x22, 0x06, 0x14, 0x16, 0x33, 0x01, 0xC0, 0x0A, 0x02, 0x02, 0x0A, 0x0F, 0x0B, 0xFE, 0xBA, 0x29, 0x37, 0x37, + 0x29, 0x01, 0x46, 0x1A, 0x93, 0x0B, 0x19, 0x02, 0x01, 0x01, 0x12, 0x04, 0x01, 0x04, 0x01, 0x01, 0x16, 0x16, 0x01, 0x01, 0x04, 0x01, 0x04, 0x12, 0x01, + 0x01, 0x02, 0x19, 0x0B, 0x01, 0x04, 0x3B, 0x2F, 0x44, 0x44, 0x2F, 0x15, 0x13, 0x05, 0x07, 0x03, 0x01, 0x27, 0x38, 0x38, 0x27, 0x01, 0x03, 0x01, 0x02, + 0x06, 0x06, 0x14, 0x75, 0xFE, 0xE3, 0x0D, 0x13, 0x12, 0x0E, 0x5A, 0x0F, 0x05, 0x09, 0x34, 0x0C, 0x0A, 0x09, 0x10, 0x0C, 0x0E, 0x37, 0x29, 0x01, 0x40, + 0x29, 0x37, 0x1A, 0x78, 0x16, 0x04, 0x04, 0x02, 0x11, 0x19, 0x04, 0x0C, 0x0C, 0x04, 0x19, 0x11, 0x02, 0x04, 0x04, 0x16, 0x02, 0x43, 0x43, 0x60, 0x43, + 0x07, 0x02, 0x05, 0x06, 0x38, 0x4E, 0x38, 0x01, 0x0E, 0x07, 0xFE, 0x8D, 0x40, 0x12, 0x1C, 0x12, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x01, + 0x01, 0xC0, 0x00, 0x19, 0x00, 0x21, 0x00, 0x5B, 0x00, 0x00, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x06, 0x23, 0x22, + 0x26, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x32, 0x17, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, 0x1E, 0x01, 0x15, 0x14, 0x06, + 0x07, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x26, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x17, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x35, 0x34, 0x2F, 0x01, 0x2E, + 0x01, 0x35, 0x34, 0x36, 0x37, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x16, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x27, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x15, + 0x14, 0x17, 0x01, 0xF9, 0x07, 0x07, 0x1C, 0x07, 0x14, 0x07, 0x64, 0x07, 0x38, 0x48, 0x56, 0x7A, 0x7A, 0xAC, 0x7A, 0x2C, 0x10, 0x0A, 0x07, 0xFE, 0xFF, + 0x78, 0x54, 0x54, 0x78, 0x54, 0xAB, 0x0E, 0x12, 0x19, 0x12, 0x08, 0x10, 0x08, 0x11, 0x0E, 0x08, 0x07, 0x0C, 0x04, 0x06, 0x06, 0x07, 0x1C, 0x05, 0x07, + 0x09, 0x2D, 0x0E, 0x12, 0x19, 0x12, 0x08, 0x10, 0x08, 0x11, 0x0E, 0x08, 0x07, 0x0C, 0x04, 0x06, 0x06, 0x07, 0x1C, 0x05, 0x07, 0x09, 0x05, 0x07, 0x14, + 0x07, 0x1C, 0x07, 0x07, 0x64, 0x07, 0x0A, 0x10, 0x2C, 0x7A, 0xAC, 0x7A, 0x7A, 0x56, 0x48, 0x38, 0x07, 0x09, 0x54, 0x78, 0x54, 0x54, 0x78, 0x45, 0x05, + 0x18, 0x0F, 0x12, 0x1A, 0x01, 0x10, 0x08, 0x08, 0x10, 0x01, 0x0B, 0x05, 0x07, 0x0B, 0x04, 0x03, 0x04, 0x08, 0x05, 0x0A, 0x03, 0x0D, 0x05, 0x18, 0x0F, + 0x12, 0x1A, 0x01, 0x10, 0x08, 0x08, 0x10, 0x01, 0x0B, 0x05, 0x07, 0x0B, 0x04, 0x03, 0x04, 0x08, 0x05, 0x0A, 0x03, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, + 0x02, 0x01, 0x01, 0xC0, 0x00, 0x19, 0x00, 0x21, 0x00, 0x2D, 0x00, 0x35, 0x00, 0x00, 0x25, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x3D, + 0x01, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x32, 0x17, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, + 0x16, 0x15, 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x35, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xF9, 0x07, 0x07, 0x1C, 0x07, 0x14, + 0x07, 0x64, 0x07, 0x38, 0x48, 0x56, 0x7A, 0x7A, 0xAC, 0x7A, 0x2C, 0x10, 0x0A, 0x07, 0xFE, 0xFF, 0x78, 0x54, 0x54, 0x78, 0x54, 0x71, 0x3E, 0x2B, 0x43, + 0x03, 0x08, 0x03, 0x43, 0x40, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x05, 0x07, 0x14, 0x07, 0x1C, 0x07, 0x07, 0x64, 0x07, 0x0A, 0x10, 0x2C, 0x7A, 0xAC, 0x7A, + 0x7A, 0x56, 0x48, 0x38, 0x07, 0x09, 0x54, 0x78, 0x54, 0x54, 0x78, 0x9C, 0x2B, 0x1F, 0x24, 0x4F, 0x03, 0x03, 0x4F, 0x24, 0x1F, 0x35, 0x0E, 0x14, 0x0E, + 0x0E, 0x14, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFA, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x10, 0x00, 0x1B, 0x00, 0x25, 0x00, 0x34, 0x00, 0x00, 0x37, + 0x0E, 0x01, 0x17, 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x35, 0x33, 0x15, 0x35, 0x15, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, + 0x17, 0x06, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x36, 0x33, 0x03, 0x35, 0x33, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x26, 0x27, 0x26, + 0x36, 0x37, 0xD7, 0x28, 0x16, 0x16, 0x15, 0x1A, 0x20, 0x19, 0x2E, 0x0D, 0x12, 0x11, 0x1E, 0x57, 0xA0, 0xA0, 0x13, 0x0D, 0x80, 0x02, 0x06, 0x08, 0xC0, + 0x0D, 0x13, 0xC0, 0x13, 0x0D, 0x20, 0xC0, 0x33, 0x73, 0x1A, 0x20, 0x19, 0x2D, 0x0D, 0x12, 0x11, 0x1E, 0x89, 0x1E, 0x5E, 0x29, 0x11, 0x13, 0x19, 0x17, + 0x21, 0x48, 0x16, 0x41, 0xB0, 0xA0, 0xE0, 0x20, 0x20, 0x0D, 0x13, 0x02, 0x0E, 0x10, 0x13, 0x0D, 0x20, 0x20, 0x0D, 0x13, 0xFE, 0xF0, 0xB0, 0xD0, 0x40, + 0x26, 0x57, 0x13, 0x19, 0x17, 0x21, 0x48, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x47, 0x01, 0xC0, 0x00, 0x1B, 0x00, 0x3B, 0x00, + 0x00, 0x25, 0x16, 0x0F, 0x01, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, + 0x01, 0x37, 0x36, 0x17, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x03, 0x0E, 0x01, 0x23, 0x22, 0x2F, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x13, 0x3E, 0x01, 0x33, 0x02, 0x3B, 0x0C, 0x0C, 0x2E, 0x2E, 0x0C, 0x0C, 0x16, 0x0C, 0x0B, 0x2E, 0x2E, 0x0B, + 0x0C, 0x16, 0x0C, 0x0C, 0x2E, 0x2E, 0x0C, 0x0C, 0x16, 0x0C, 0x0B, 0x2E, 0x2E, 0x0B, 0x0C, 0x03, 0x0A, 0x0E, 0x0E, 0x0A, 0xC3, 0x62, 0x06, 0x20, 0x10, + 0x1F, 0x12, 0x58, 0x2C, 0x0A, 0x0E, 0x0E, 0x0A, 0x51, 0x13, 0x0A, 0x3A, 0x55, 0x02, 0x12, 0x0B, 0xC5, 0x0C, 0x0B, 0x2E, 0x2E, 0x0B, 0x0C, 0x16, 0x0C, + 0x0C, 0x2E, 0x2E, 0x0C, 0x0C, 0x16, 0x0C, 0x0B, 0x2E, 0x2E, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x2E, 0x2E, 0x0C, 0x0C, 0xE5, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, + 0xFE, 0x89, 0x15, 0x14, 0x1C, 0xA4, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x11, 0x6A, 0x01, 0x43, 0x0B, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, + 0x02, 0x02, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x39, 0x00, 0x00, 0x05, 0x32, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, + 0x16, 0x07, 0x06, 0x23, 0x30, 0x26, 0x23, 0x22, 0x06, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x1E, 0x01, 0x0F, 0x01, 0x17, 0x16, 0x06, 0x23, 0x22, 0x2F, + 0x01, 0x07, 0x06, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3F, 0x02, 0x36, 0x32, 0x1F, 0x01, 0x01, 0x54, 0x07, 0x09, 0x0B, 0x2B, 0x2E, 0x6A, + 0x96, 0x96, 0x6A, 0x2E, 0x2C, 0x0C, 0x03, 0x02, 0x0D, 0x07, 0x02, 0x57, 0x7C, 0x7C, 0x57, 0x02, 0x07, 0xA3, 0x07, 0x03, 0x04, 0x37, 0x0D, 0x01, 0x07, + 0x04, 0x02, 0x03, 0x44, 0x44, 0x03, 0x02, 0x04, 0x07, 0x01, 0x0D, 0x37, 0x04, 0x03, 0x07, 0x4C, 0x22, 0x03, 0x0C, 0x03, 0x22, 0x12, 0x09, 0x06, 0x0B, + 0x04, 0x10, 0x96, 0xD4, 0x96, 0x10, 0x05, 0x0D, 0x0C, 0x01, 0x7C, 0xAE, 0x7C, 0x01, 0xFC, 0x01, 0x0C, 0x04, 0x36, 0x4C, 0x04, 0x07, 0x01, 0x24, 0x24, + 0x01, 0x06, 0x05, 0x4C, 0x36, 0x04, 0x0C, 0x01, 0x0B, 0x45, 0x06, 0x06, 0x45, 0x00, 0x00, 0x00, 0x00, 0x08, 0xFF, 0xFA, 0xFF, 0xC0, 0x01, 0xD6, 0x01, + 0xC0, 0x00, 0x1D, 0x00, 0x20, 0x00, 0x26, 0x00, 0x29, 0x00, 0x2C, 0x00, 0x2F, 0x00, 0x32, 0x00, 0x35, 0x00, 0x00, 0x25, 0x17, 0x16, 0x06, 0x2B, 0x01, + 0x07, 0x06, 0x22, 0x2F, 0x01, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x0F, 0x01, + 0x23, 0x17, 0x07, 0x27, 0x23, 0x07, 0x17, 0x33, 0x03, 0x07, 0x33, 0x07, 0x17, 0x37, 0x07, 0x33, 0x27, 0x17, 0x37, 0x23, 0x37, 0x33, 0x27, 0x01, 0x96, + 0x35, 0x0B, 0x16, 0x15, 0x6B, 0x38, 0x0B, 0x2A, 0x0B, 0x38, 0x6B, 0x15, 0x16, 0x0B, 0x35, 0x35, 0x0B, 0x16, 0x15, 0x6B, 0x38, 0x0B, 0x2A, 0x0B, 0x38, + 0x6B, 0x15, 0x16, 0x0B, 0x42, 0x28, 0x14, 0x20, 0x35, 0x70, 0x35, 0x35, 0x70, 0x38, 0x17, 0x2E, 0xB8, 0x14, 0x14, 0x28, 0x28, 0x14, 0x8D, 0x17, 0x2E, + 0x90, 0x28, 0x14, 0xC0, 0x59, 0x13, 0x24, 0x5E, 0x12, 0x12, 0x5E, 0x24, 0x13, 0x59, 0x59, 0x13, 0x24, 0x5E, 0x12, 0x12, 0x5E, 0x24, 0x13, 0x01, 0x21, + 0x37, 0x58, 0x58, 0x58, 0x01, 0x0E, 0x26, 0x38, 0x21, 0x21, 0xB0, 0x21, 0x7F, 0x26, 0x38, 0x21, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, + 0x01, 0xC9, 0x00, 0x09, 0x00, 0x13, 0x00, 0x27, 0x00, 0x45, 0x00, 0x00, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x11, 0x23, 0x35, 0x34, 0x37, 0x21, 0x16, 0x1D, + 0x01, 0x23, 0x11, 0x37, 0x36, 0x32, 0x17, 0x27, 0x17, 0x16, 0x15, 0x11, 0x23, 0x35, 0x34, 0x26, 0x07, 0x0E, 0x01, 0x1D, 0x01, 0x23, 0x11, 0x34, 0x3F, + 0x01, 0x36, 0x17, 0x27, 0x37, 0x36, 0x26, 0x2B, 0x01, 0x27, 0x26, 0x22, 0x0F, 0x01, 0x23, 0x22, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x16, 0x3B, 0x01, 0x17, + 0x16, 0x32, 0x3F, 0x01, 0x33, 0x32, 0x36, 0x46, 0x04, 0x0C, 0x04, 0x26, 0x80, 0x07, 0x02, 0x72, 0x07, 0x80, 0x26, 0x04, 0x0C, 0x04, 0xE6, 0x80, 0x0C, + 0x60, 0x2D, 0x1E, 0x17, 0x1E, 0x60, 0x0C, 0x80, 0x14, 0x48, 0x13, 0x13, 0x02, 0x03, 0x03, 0x27, 0x19, 0x01, 0x06, 0x01, 0x19, 0x27, 0x03, 0x03, 0x02, + 0x13, 0x13, 0x02, 0x03, 0x03, 0x27, 0x19, 0x01, 0x06, 0x01, 0x19, 0x27, 0x03, 0x03, 0xFB, 0x05, 0x05, 0x2B, 0xFE, 0xF0, 0xE2, 0x0A, 0x08, 0x08, 0x0A, + 0xE2, 0x01, 0x10, 0x2B, 0x05, 0x05, 0xBE, 0x66, 0x0A, 0x0F, 0xFE, 0x86, 0x60, 0x1D, 0x27, 0x05, 0x04, 0x26, 0x18, 0x5D, 0x01, 0x7A, 0x0F, 0x0A, 0x66, + 0x10, 0xE8, 0x1F, 0x1F, 0x02, 0x05, 0x28, 0x02, 0x02, 0x28, 0x05, 0x02, 0x1F, 0x1F, 0x02, 0x05, 0x28, 0x02, 0x02, 0x28, 0x05, 0x00, 0x0B, 0x00, 0x00, + 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x02, 0x00, 0x05, 0x00, 0x11, 0x00, 0x14, 0x00, 0x17, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x51, 0x00, 0x54, 0x00, + 0x57, 0x00, 0x5D, 0x00, 0x00, 0x25, 0x27, 0x33, 0x37, 0x07, 0x27, 0x24, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x22, 0x26, 0x35, 0x11, 0x34, 0x13, 0x37, + 0x17, 0x33, 0x37, 0x17, 0x05, 0x11, 0x21, 0x11, 0x01, 0x06, 0x14, 0x1F, 0x01, 0x07, 0x06, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x17, 0x16, 0x33, 0x32, 0x3F, + 0x01, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x2F, 0x01, 0x37, 0x36, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x27, 0x26, 0x23, 0x31, 0x22, 0x0F, 0x01, 0x23, 0x22, + 0x24, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x22, 0x26, 0x35, 0x11, 0x34, 0x07, 0x17, 0x23, 0x0F, 0x01, 0x27, 0x17, 0x27, 0x37, 0x33, 0x17, 0x07, 0x01, + 0x40, 0x12, 0x24, 0x51, 0x12, 0x13, 0xFE, 0x9E, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xDD, 0x12, 0x13, 0x7C, 0x13, 0x12, 0xFE, 0xDD, 0x01, 0x80, 0xFE, 0xC3, + 0x03, 0x03, 0x1D, 0x1D, 0x03, 0x0C, 0x09, 0x3C, 0x1D, 0x06, 0x0C, 0x0C, 0x06, 0x1D, 0x3C, 0x0C, 0x06, 0x03, 0x03, 0x1D, 0x1D, 0x03, 0x0C, 0x09, 0x3C, + 0x1D, 0x06, 0x0C, 0x0C, 0x06, 0x1D, 0x3C, 0x0C, 0x01, 0x73, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xE0, 0x12, 0x24, 0x2C, 0x13, 0x12, 0x42, 0x21, 0x21, 0x42, + 0x21, 0x21, 0x52, 0x1D, 0x89, 0x1F, 0x1F, 0xC8, 0x13, 0x0D, 0xFE, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0xC0, 0x0D, 0xFE, 0xDB, 0x1F, 0x1F, 0x1F, 0x1F, + 0x98, 0x01, 0xA0, 0xFE, 0x60, 0x01, 0x16, 0x05, 0x0B, 0x05, 0x31, 0x31, 0x05, 0x06, 0x08, 0x0D, 0x31, 0x0A, 0x0A, 0x31, 0x0B, 0x05, 0x05, 0x06, 0x05, + 0x31, 0x31, 0x05, 0x06, 0x08, 0x0D, 0x31, 0x0A, 0x0A, 0x31, 0xAF, 0x13, 0x0D, 0xFE, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0xC0, 0x0D, 0x7F, 0x1D, 0x1A, + 0x1E, 0x1E, 0x6F, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x35, 0x00, 0x39, 0x00, 0x3D, + 0x00, 0x00, 0x01, 0x32, 0x37, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, + 0x22, 0x26, 0x3D, 0x01, 0x16, 0x33, 0x07, 0x15, 0x33, 0x35, 0x17, 0x35, 0x23, 0x15, 0x01, 0x78, 0x48, 0x40, 0x13, 0x0D, 0x20, 0x30, 0x07, 0x09, 0x09, + 0x07, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0xFF, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x20, 0x0D, 0x13, 0x40, 0x48, + 0x08, 0x60, 0xA0, 0x60, 0x01, 0xA0, 0x20, 0x60, 0x0D, 0x13, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0xF0, 0x07, 0x09, 0x09, 0x07, 0xF0, 0xF0, 0x07, 0x09, + 0x09, 0x07, 0xF0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x13, 0x0D, 0x60, 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x03, 0xFF, 0xFE, 0xFF, 0xC0, + 0x02, 0x82, 0x01, 0xC0, 0x00, 0x40, 0x00, 0x44, 0x00, 0x48, 0x00, 0x00, 0x25, 0x16, 0x07, 0x06, 0x0F, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, + 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x27, 0x26, 0x27, + 0x26, 0x3F, 0x01, 0x35, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x35, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x15, 0x17, 0x16, 0x14, 0x0F, + 0x01, 0x15, 0x25, 0x15, 0x33, 0x35, 0x05, 0x21, 0x35, 0x21, 0x02, 0x79, 0x08, 0x01, 0x01, 0x08, 0x37, 0x09, 0x07, 0x20, 0x07, 0x09, 0xA0, 0x09, 0x07, + 0x20, 0x07, 0x09, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x37, 0x08, 0x01, 0x01, 0x08, 0x59, 0x37, 0x09, 0x09, 0x77, 0x1B, 0x06, 0x03, 0x07, 0xB7, 0xB7, + 0x07, 0x03, 0x06, 0x1B, 0x77, 0x09, 0x09, 0x37, 0xFE, 0xC0, 0xC0, 0xFF, 0x00, 0x01, 0x40, 0xFE, 0xC0, 0x2F, 0x05, 0x0A, 0x08, 0x04, 0x14, 0x30, 0x07, + 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x14, 0x04, 0x08, 0x0A, 0x05, 0x31, 0x40, 0x12, 0x04, + 0x14, 0x04, 0x32, 0x40, 0x10, 0x06, 0x10, 0x04, 0x56, 0x56, 0x04, 0x10, 0x06, 0x10, 0x40, 0x32, 0x04, 0x14, 0x04, 0x12, 0x40, 0xE0, 0x40, 0x40, 0xE0, + 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xFB, 0x02, 0x07, 0x01, 0x85, 0x00, 0x11, 0x00, 0x2D, 0x00, 0x00, 0x13, 0x36, 0x16, 0x15, 0x11, 0x14, 0x06, + 0x2F, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x05, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x2F, 0x01, 0x26, 0x3F, + 0x01, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x07, 0xD7, 0x0B, 0x1E, 0x1E, 0x0B, 0x59, 0x66, 0x0A, 0x0E, 0x0E, 0x0A, + 0x66, 0x01, 0x50, 0x2D, 0x0C, 0x0C, 0x17, 0x0B, 0x0B, 0x2E, 0x2E, 0x0B, 0x0B, 0x17, 0x0C, 0x0C, 0x2D, 0x2D, 0x0C, 0x0C, 0x17, 0x0B, 0x0B, 0x2E, 0x2E, + 0x0B, 0x0B, 0x17, 0x0C, 0x0C, 0x01, 0x79, 0x0B, 0x0C, 0x10, 0xFE, 0xB0, 0x10, 0x0C, 0x0B, 0x59, 0x0E, 0x0A, 0x90, 0x0A, 0x0E, 0x60, 0x2E, 0x0B, 0x0B, + 0x17, 0x0C, 0x0C, 0x2D, 0x2D, 0x0C, 0x0C, 0x17, 0x0B, 0x0B, 0x2E, 0x2E, 0x0B, 0x0B, 0x17, 0x0C, 0x0C, 0x2D, 0x2D, 0x0C, 0x0C, 0x17, 0x0B, 0x0B, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1D, 0x00, 0x25, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, + 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x26, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x06, 0x14, 0x16, 0x33, 0x22, 0x26, 0x34, + 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xEB, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x08, 0x50, 0x38, 0x38, 0x28, + 0x50, 0x70, 0x70, 0x50, 0x28, 0x38, 0x53, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0xE7, 0x13, 0x1A, 0x13, 0x13, 0x1A, + 0x6D, 0x38, 0x50, 0x38, 0x70, 0xA0, 0x70, 0x38, 0x50, 0xB8, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x40, 0x01, + 0xC2, 0x00, 0x1B, 0x00, 0x34, 0x00, 0x44, 0x00, 0x4C, 0x00, 0x00, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x07, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, + 0x01, 0x07, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x07, 0x21, 0x11, 0x21, 0x07, 0x01, 0x16, 0x0F, 0x01, 0x06, 0x26, 0x27, 0x2E, 0x01, 0x37, 0x3E, + 0x01, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x06, 0x17, 0x37, 0x36, 0x17, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x33, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x88, 0x08, 0x08, 0x9E, 0x12, 0x8C, 0x08, 0x08, 0x84, 0x12, 0x72, + 0x08, 0x08, 0x69, 0x11, 0xFE, 0xE0, 0x01, 0x80, 0x11, 0xFE, 0x70, 0x05, 0x0C, 0x27, 0x0A, 0x19, 0x07, 0x46, 0x02, 0x46, 0x08, 0x19, 0x0B, 0x27, 0x0C, + 0x05, 0x1A, 0x05, 0x0C, 0x2D, 0x1B, 0x1B, 0x2D, 0x0C, 0x05, 0x01, 0x5B, 0x1B, 0x25, 0x13, 0x0D, 0xFE, 0xA0, 0x0D, 0x13, 0x25, 0x1B, 0x83, 0x1A, 0x13, + 0x13, 0x1A, 0x13, 0x01, 0x80, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, 0x40, 0x08, 0x10, 0x08, 0x40, 0x01, 0x60, 0x40, 0xFE, 0xF1, 0x0D, 0x07, 0x18, + 0x06, 0x03, 0x08, 0x4D, 0xCF, 0x4E, 0x09, 0x05, 0x07, 0x18, 0x07, 0x0D, 0x3F, 0x0C, 0x01, 0x05, 0x4A, 0x4A, 0x05, 0x01, 0x0C, 0x70, 0x25, 0x1B, 0x20, + 0x0D, 0x13, 0x13, 0x0D, 0x20, 0x1B, 0x25, 0x60, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, + 0x00, 0x07, 0x00, 0x1E, 0x00, 0x30, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x17, 0x14, 0x07, + 0x06, 0x14, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x15, 0x06, 0x22, 0x06, 0x15, 0x14, + 0x17, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x36, 0x35, 0x34, 0x07, 0x06, 0x1F, 0x01, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x17, + 0x16, 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x37, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x07, 0x17, 0x35, 0x21, 0x22, 0x06, 0x14, 0x16, 0x33, 0x12, + 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x01, 0x17, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0xA0, 0x0A, 0x02, 0x02, 0x0A, 0x0F, 0x0B, 0xFE, 0xBA, 0x29, 0x37, + 0x37, 0x29, 0x01, 0x46, 0x1A, 0xAF, 0x42, 0x2F, 0x20, 0x09, 0x07, 0x40, 0x07, 0x09, 0x20, 0xC3, 0x03, 0x07, 0x47, 0x47, 0x07, 0x03, 0x06, 0x03, 0x08, + 0x62, 0x62, 0x08, 0x03, 0x06, 0x03, 0x07, 0x46, 0x46, 0x07, 0x03, 0x06, 0x03, 0x08, 0x62, 0x62, 0x08, 0x03, 0xFA, 0xFE, 0xE3, 0x0D, 0x13, 0x12, 0x0E, + 0x77, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0x38, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0xE7, 0x0F, 0x05, 0x09, 0x34, 0x0C, 0x0A, 0x09, 0x10, 0x0C, 0x0E, 0x37, + 0x29, 0x01, 0x40, 0x29, 0x37, 0x1A, 0x1E, 0x26, 0x1A, 0x20, 0x13, 0x0D, 0x07, 0x09, 0x09, 0x07, 0x0D, 0x13, 0x20, 0x1A, 0x81, 0x08, 0x03, 0x1E, 0x1E, + 0x03, 0x08, 0x0E, 0x08, 0x03, 0x2B, 0x2B, 0x03, 0x08, 0x0E, 0x08, 0x03, 0x1E, 0x1E, 0x03, 0x08, 0x0E, 0x08, 0x03, 0x2A, 0x2A, 0x03, 0x08, 0xEF, 0x40, + 0x12, 0x1C, 0x12, 0x01, 0x38, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC7, 0x00, 0x20, 0x00, + 0x23, 0x00, 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x13, 0x27, 0x26, 0x3F, 0x01, + 0x36, 0x1F, 0x01, 0x37, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x13, 0x25, 0x07, 0x33, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0xFD, 0xA0, 0x07, 0x09, 0x09, + 0x07, 0x19, 0xEF, 0x35, 0x09, 0x0D, 0x19, 0x0D, 0x0A, 0x29, 0x29, 0x0A, 0x0D, 0x19, 0x0D, 0x09, 0x35, 0xEF, 0xFE, 0xE9, 0x74, 0xE8, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x4A, 0x4A, 0x0D, 0x09, 0x13, 0x09, 0x0D, 0x38, 0x38, 0x0D, 0x09, 0x13, 0x09, 0x0D, 0x4A, 0xFE, 0xB6, + 0xA0, 0xA0, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x2B, 0x00, 0x35, 0x00, 0x3D, 0x00, 0x45, 0x00, 0x00, 0x01, 0x1E, + 0x01, 0x33, 0x32, 0x37, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x07, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, + 0x35, 0x11, 0x34, 0x26, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x3E, 0x03, 0x3F, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x17, + 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x23, 0x09, 0x46, 0x2E, 0x0F, 0x11, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x80, 0x20, 0x0D, 0x13, 0x09, 0x07, 0xB0, 0x1A, 0x26, 0x13, 0x1A, 0x13, 0x13, 0x0D, 0x28, 0x38, 0x13, 0x33, 0x33, 0x1C, 0xAB, 0x40, + 0x38, 0x50, 0x38, 0x40, 0x0F, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x59, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0x00, 0x2C, 0x3A, 0x04, 0xCE, 0x07, 0x09, 0x09, + 0x07, 0x90, 0x60, 0x13, 0x0D, 0x10, 0x07, 0x09, 0x26, 0x1A, 0x01, 0x00, 0x0D, 0x13, 0x13, 0x1A, 0x13, 0x38, 0x28, 0x56, 0x1D, 0x27, 0x0E, 0x04, 0x60, + 0x40, 0x86, 0x28, 0x38, 0x38, 0x28, 0x86, 0x40, 0x50, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x02, 0xFF, 0xFC, 0xFF, + 0xC0, 0x01, 0xC4, 0x01, 0xC0, 0x00, 0x17, 0x00, 0x37, 0x00, 0x00, 0x13, 0x15, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, + 0x34, 0x27, 0x15, 0x23, 0x35, 0x23, 0x15, 0x23, 0x35, 0x06, 0x01, 0x16, 0x06, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x21, 0x15, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x33, 0x21, 0x32, 0x17, 0x70, 0x30, 0x4B, 0x35, 0x40, 0x35, 0x4B, 0x30, + 0x28, 0x30, 0x30, 0x30, 0x28, 0x01, 0x4E, 0x05, 0x13, 0x10, 0x09, 0x07, 0x20, 0x07, 0x09, 0xFF, 0x00, 0x09, 0x07, 0x20, 0x07, 0x09, 0x10, 0x14, 0x06, + 0x0A, 0x08, 0x17, 0x01, 0x6A, 0x17, 0x08, 0x01, 0x40, 0x80, 0x80, 0x35, 0x4B, 0x4B, 0x35, 0x80, 0x80, 0x2E, 0x17, 0xC5, 0xD0, 0xD0, 0xC5, 0x17, 0xFE, + 0xFC, 0x0F, 0x1B, 0x70, 0x07, 0x09, 0x09, 0x07, 0x70, 0x70, 0x07, 0x09, 0x09, 0x07, 0x70, 0x1B, 0x0F, 0x20, 0x16, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xFF, 0xC0, 0x02, 0x42, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, + 0x36, 0x37, 0x34, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x37, 0x36, 0x16, 0x07, 0x06, 0x07, 0x26, 0x27, + 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x1E, 0x01, 0x07, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x01, + 0x57, 0x1F, 0x2A, 0x2F, 0x21, 0xF0, 0x28, 0x38, 0x24, 0x1D, 0x01, 0x38, 0x28, 0x1B, 0x2C, 0x0D, 0x12, 0x1A, 0x1A, 0x26, 0xD5, 0x06, 0x07, 0x04, 0x35, + 0x54, 0x11, 0x25, 0x01, 0x38, 0x28, 0x13, 0x11, 0x07, 0x0A, 0x02, 0x71, 0x4F, 0x11, 0x12, 0x06, 0x02, 0x05, 0x23, 0x29, 0x6D, 0x5F, 0x02, 0x2E, 0x1F, + 0x21, 0x2F, 0x38, 0x28, 0x1F, 0x31, 0x0A, 0x01, 0x04, 0x01, 0x28, 0x38, 0x1B, 0x17, 0x12, 0x26, 0x1A, 0x11, 0x27, 0x01, 0x0B, 0x05, 0x41, 0x05, 0x24, + 0x10, 0x06, 0x05, 0x28, 0x38, 0x07, 0x07, 0x07, 0x0D, 0x0C, 0x50, 0x70, 0x03, 0x01, 0x0D, 0x03, 0x14, 0x46, 0x29, 0x46, 0x5B, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x1D, 0x00, 0x43, 0x00, 0x50, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x35, 0x34, 0x36, 0x37, 0x34, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x25, 0x16, 0x17, 0x06, + 0x0F, 0x01, 0x06, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x0F, + 0x01, 0x06, 0x07, 0x26, 0x27, 0x26, 0x22, 0x06, 0x14, 0x37, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x06, 0x07, 0x06, 0x07, 0x2E, 0x01, 0x02, 0x3F, 0x1D, + 0x24, 0x38, 0x28, 0xFE, 0xF0, 0x28, 0x38, 0x34, 0x25, 0x01, 0x42, 0x2E, 0x22, 0x36, 0x0E, 0x10, 0x12, 0x1A, 0x26, 0x01, 0xFE, 0x52, 0x0F, 0x15, 0x0F, + 0x09, 0x4C, 0x09, 0x0D, 0x03, 0x1D, 0x53, 0x08, 0x08, 0x53, 0x1D, 0x03, 0x0D, 0x09, 0x58, 0x29, 0x05, 0x12, 0x05, 0x29, 0x58, 0x09, 0x0D, 0x03, 0x1E, + 0x11, 0x0D, 0x09, 0x0E, 0x21, 0x5C, 0x42, 0x1C, 0x31, 0x23, 0x19, 0x29, 0x0A, 0x3B, 0x08, 0x0C, 0x0D, 0x1D, 0x27, 0x7A, 0x0A, 0x31, 0x1F, 0x28, 0x38, + 0x38, 0x28, 0x26, 0x36, 0x03, 0x01, 0x06, 0x02, 0x2E, 0x42, 0x24, 0x1E, 0x0A, 0x26, 0x1A, 0x01, 0x04, 0x16, 0x10, 0x08, 0x0F, 0x13, 0x19, 0x03, 0x0D, + 0x09, 0x58, 0x29, 0x05, 0x12, 0x05, 0x29, 0x58, 0x09, 0x0D, 0x03, 0x1D, 0x53, 0x08, 0x08, 0x53, 0x1D, 0x03, 0x0D, 0x09, 0x59, 0x02, 0x06, 0x14, 0x0D, + 0x21, 0x42, 0x5C, 0x2E, 0x23, 0x31, 0x1B, 0x17, 0x24, 0x44, 0x04, 0x08, 0x05, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xFF, 0xFE, 0xFF, 0xBE, 0x01, 0xE2, + 0x01, 0xC0, 0x00, 0x05, 0x00, 0x0E, 0x00, 0x17, 0x00, 0x20, 0x00, 0x27, 0x00, 0x30, 0x00, 0x39, 0x00, 0x42, 0x00, 0x48, 0x00, 0x4C, 0x00, 0x00, 0x37, + 0x17, 0x27, 0x22, 0x26, 0x3F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x1F, 0x01, 0x07, 0x26, 0x36, 0x33, 0x17, 0x15, 0x14, 0x06, 0x27, 0x03, 0x27, + 0x26, 0x34, 0x3F, 0x01, 0x36, 0x16, 0x07, 0x17, 0x23, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x03, 0x26, 0x36, + 0x1F, 0x01, 0x16, 0x14, 0x07, 0x03, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x26, 0x3D, 0x01, 0x37, 0x17, 0x16, 0x06, 0x23, 0x07, 0x27, 0x33, 0x07, 0x27, 0x6B, + 0x6C, 0xD0, 0x04, 0x04, 0x02, 0x06, 0x01, 0x06, 0x04, 0x02, 0x4D, 0x41, 0x03, 0x02, 0x03, 0xCC, 0x07, 0x04, 0x72, 0x51, 0x02, 0x02, 0x97, 0x05, 0x09, + 0x04, 0x3D, 0x6D, 0x5F, 0x05, 0x12, 0x05, 0x5F, 0x7D, 0x02, 0x04, 0x06, 0x01, 0x4C, 0x10, 0x50, 0x04, 0x09, 0x05, 0x97, 0x02, 0x02, 0x02, 0x03, 0x02, + 0x03, 0xC3, 0x04, 0x07, 0x75, 0x6A, 0x02, 0x04, 0x04, 0xD0, 0x19, 0x64, 0x64, 0x64, 0xE9, 0xBE, 0x16, 0x08, 0x04, 0x38, 0x03, 0x02, 0x03, 0xA2, 0x03, + 0x02, 0x01, 0x2E, 0xE7, 0x02, 0x06, 0x16, 0x42, 0x04, 0x05, 0x02, 0x01, 0x59, 0x31, 0x01, 0x04, 0x02, 0x62, 0x03, 0x09, 0x05, 0x99, 0xA8, 0x08, 0x08, + 0xA8, 0x1D, 0x01, 0x02, 0x03, 0xA2, 0x03, 0x02, 0x03, 0x7A, 0x1B, 0x8F, 0x05, 0x09, 0x03, 0x62, 0x02, 0x04, 0x01, 0xFE, 0xD5, 0x06, 0x02, 0x57, 0x02, + 0x05, 0x04, 0x42, 0xDF, 0x9C, 0x04, 0x08, 0x16, 0xC5, 0xB0, 0xB0, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xBD, 0x01, 0xC0, 0x01, 0xCB, 0x00, 0x0B, 0x00, 0x17, + 0x00, 0x23, 0x00, 0x00, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x06, + 0x26, 0x3D, 0x01, 0x27, 0x34, 0x36, 0x1F, 0x01, 0x15, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x35, 0x01, 0xA6, 0x04, 0x04, 0xC6, 0xC6, 0x04, 0x04, 0xA6, 0x20, + 0x20, 0xB4, 0x04, 0x08, 0x20, 0x98, 0x08, 0x10, 0xF0, 0x08, 0x04, 0xC4, 0x10, 0x08, 0x98, 0x20, 0x01, 0x52, 0x02, 0x0A, 0x02, 0x77, 0x77, 0x02, 0x0A, + 0x02, 0x65, 0x14, 0x14, 0x92, 0x03, 0x05, 0x05, 0xC6, 0x26, 0x13, 0x5D, 0x05, 0x0A, 0x0A, 0xE0, 0x6D, 0x05, 0x05, 0x03, 0x74, 0xE0, 0x0A, 0x0A, 0x05, + 0x5D, 0x13, 0x26, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x20, 0xFF, 0xC0, 0x02, 0x20, 0x01, 0xA3, 0x00, 0x1E, 0x00, 0x33, 0x00, 0x3B, 0x00, 0x00, 0x25, + 0x17, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x2E, 0x01, 0x35, 0x34, 0x36, + 0x32, 0x16, 0x14, 0x16, 0x33, 0x25, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x27, 0x35, 0x34, 0x36, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x1F, 0x01, 0x33, 0x32, + 0x16, 0x06, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x01, 0x2A, 0x96, 0x09, 0x07, 0x40, 0x07, 0x09, 0xA0, 0x09, 0x07, 0x40, 0x07, 0x09, 0x1C, 0x24, + 0x13, 0x1A, 0x13, 0x13, 0x0D, 0x01, 0xA0, 0x26, 0x1A, 0x20, 0x80, 0x14, 0x07, 0x1C, 0x35, 0x08, 0x11, 0x04, 0x07, 0x40, 0x07, 0x09, 0x70, 0x09, 0x0E, + 0x09, 0x09, 0x0E, 0xE0, 0x36, 0xDA, 0x07, 0x09, 0x09, 0x07, 0x70, 0x70, 0x07, 0x09, 0x09, 0x07, 0xD6, 0x0A, 0x31, 0x1F, 0x0D, 0x13, 0x13, 0x1A, 0x13, + 0x70, 0x20, 0x1A, 0x26, 0x24, 0x2E, 0x96, 0x0B, 0x08, 0x08, 0x1B, 0x0A, 0x08, 0x0E, 0x09, 0x0E, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x00, 0x00, 0x00, 0x00, + 0x03, 0xFF, 0xFC, 0xFF, 0xBF, 0x02, 0x82, 0x01, 0xC0, 0x00, 0x10, 0x00, 0x41, 0x00, 0x47, 0x00, 0x00, 0x37, 0x06, 0x26, 0x3F, 0x01, 0x3E, 0x01, 0x1F, + 0x01, 0x15, 0x14, 0x17, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x05, 0x1E, 0x01, 0x07, 0x0E, 0x01, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x37, 0x3E, 0x02, 0x37, + 0x2E, 0x01, 0x3D, 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x2B, 0x01, + 0x22, 0x2F, 0x01, 0x23, 0x15, 0x14, 0x17, 0x37, 0x06, 0x16, 0x17, 0x16, 0x37, 0x12, 0x0C, 0x09, 0x09, 0x75, 0x11, 0x2A, 0x12, 0x78, 0x0F, 0xDF, 0x0B, + 0x08, 0x08, 0x5B, 0x01, 0x7F, 0x20, 0x23, 0x02, 0x03, 0x48, 0x30, 0xFE, 0x0D, 0x08, 0x0A, 0x0E, 0x47, 0x55, 0xBC, 0x5A, 0x2D, 0x33, 0x3C, 0x04, 0x04, + 0x3C, 0x3E, 0x03, 0x04, 0x05, 0xED, 0x10, 0x0A, 0x4B, 0x06, 0x03, 0x0F, 0x09, 0x13, 0x1F, 0x0E, 0x09, 0x1C, 0x40, 0x1B, 0x0E, 0x03, 0x0E, 0x0B, 0x13, + 0x05, 0xC0, 0x01, 0x16, 0x07, 0x75, 0x0E, 0x02, 0x0C, 0x57, 0x2B, 0x2A, 0x29, 0x14, 0x07, 0x45, 0x42, 0x10, 0x3C, 0x23, 0x2F, 0x40, 0x0A, 0x08, 0x0E, + 0x03, 0x10, 0x11, 0x19, 0x03, 0x1E, 0x5F, 0x36, 0x6D, 0x19, 0x02, 0x0A, 0x02, 0x19, 0x32, 0x04, 0x0A, 0x0D, 0x63, 0x09, 0x0A, 0x08, 0x07, 0x1C, 0x12, + 0x09, 0x17, 0x25, 0x1D, 0x0E, 0xAE, 0x0C, 0x11, 0x01, 0x01, 0x13, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x03, 0x01, 0xC1, 0x00, 0x28, 0x00, 0x00, + 0x01, 0x16, 0x07, 0x26, 0x06, 0x07, 0x0E, 0x01, 0x17, 0x06, 0x23, 0x22, 0x2B, 0x01, 0x07, 0x06, 0x17, 0x16, 0x15, 0x14, 0x06, 0x22, 0x27, 0x26, 0x37, + 0x06, 0x27, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x16, 0x3F, 0x01, 0x35, 0x34, 0x37, 0x36, 0x32, 0x01, 0xCF, 0x33, 0x02, 0x1F, 0x48, 0x1A, 0x1E, 0x01, + 0x1E, 0x1D, 0x1F, 0x01, 0x01, 0x56, 0x28, 0x0F, 0x09, 0x04, 0x23, 0x32, 0x12, 0x17, 0x08, 0x22, 0x16, 0x12, 0x23, 0x19, 0x0C, 0x0B, 0x16, 0x0F, 0x28, + 0x3F, 0x32, 0x8C, 0x01, 0x8E, 0x33, 0x49, 0x11, 0x09, 0x19, 0x1E, 0x58, 0x21, 0x0A, 0x29, 0x0E, 0x16, 0x0B, 0x0C, 0x19, 0x23, 0x12, 0x16, 0x22, 0x08, + 0x17, 0x12, 0x31, 0x24, 0x04, 0x09, 0x0F, 0x28, 0x56, 0x4F, 0x3F, 0x32, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, + 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x5F, 0x00, 0x6F, 0x00, 0x7F, 0x00, 0x8F, 0x00, 0x99, 0x00, 0xA2, 0x00, 0xAB, 0x00, 0x00, + 0x37, 0x16, 0x07, 0x06, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x37, 0x36, 0x37, 0x3E, 0x01, 0x17, 0x25, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x22, + 0x2F, 0x01, 0x26, 0x36, 0x37, 0x36, 0x32, 0x03, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x13, 0x16, 0x07, 0x06, 0x07, 0x06, 0x2F, 0x01, 0x2E, 0x01, 0x37, + 0x36, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x16, 0x17, 0x16, 0x17, 0x16, 0x06, 0x23, 0x27, 0x16, 0x06, 0x0F, + 0x01, 0x06, 0x27, 0x26, 0x27, 0x26, 0x3F, 0x01, 0x3E, 0x01, 0x17, 0x16, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x33, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x27, 0x36, 0x32, 0x17, 0x11, 0x14, + 0x2B, 0x01, 0x22, 0x35, 0x27, 0x36, 0x37, 0x11, 0x14, 0x2B, 0x01, 0x22, 0x35, 0x13, 0x16, 0x17, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x35, 0x81, 0x0B, 0x05, + 0x05, 0x01, 0x02, 0x0D, 0x61, 0x07, 0x0A, 0x01, 0x03, 0x13, 0x03, 0x0E, 0x06, 0x01, 0x11, 0x07, 0x06, 0x03, 0x25, 0x04, 0x0B, 0x2A, 0x0B, 0x04, 0x25, + 0x03, 0x06, 0x07, 0x1F, 0x40, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, + 0xAD, 0x05, 0x0B, 0x09, 0x08, 0x09, 0x0B, 0x53, 0x06, 0x03, 0x05, 0x1E, 0x2A, 0x06, 0x0D, 0x03, 0xF5, 0x0D, 0x02, 0x01, 0x05, 0x05, 0x0B, 0x53, 0x06, + 0x0E, 0x03, 0x13, 0x03, 0x01, 0x0A, 0x07, 0x2A, 0x05, 0x03, 0x06, 0x53, 0x0B, 0x09, 0x08, 0x09, 0x0B, 0x05, 0x24, 0x03, 0x0D, 0x06, 0x2A, 0x49, 0x07, + 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x0A, 0x0C, 0x0A, 0x08, 0x10, 0x08, + 0x40, 0x0C, 0x14, 0x08, 0x10, 0x08, 0x80, 0x14, 0x0C, 0x08, 0x10, 0x08, 0xFD, 0x07, 0x0D, 0x0D, 0x0E, 0x0E, 0x0A, 0x07, 0x2E, 0x2B, 0x06, 0x04, 0x04, + 0x88, 0x02, 0x0D, 0x06, 0x68, 0x0B, 0x0B, 0x68, 0x06, 0x0D, 0x02, 0x08, 0xFE, 0xE0, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x80, + 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x01, 0x1C, 0x0C, 0x08, 0x06, 0x08, 0x09, 0x07, 0x33, 0x04, 0x0E, 0x06, 0x24, 0x18, 0x03, + 0x05, 0x07, 0xD6, 0x0E, 0x0E, 0x0D, 0x0D, 0x07, 0x33, 0x04, 0x04, 0x06, 0x2B, 0x2E, 0x07, 0x0A, 0xA3, 0x06, 0x0E, 0x04, 0x33, 0x07, 0x09, 0x08, 0x06, + 0x08, 0x0C, 0x5A, 0x07, 0x05, 0x03, 0x18, 0xE7, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x80, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, + 0x07, 0x40, 0x07, 0x09, 0xEE, 0x02, 0x02, 0xFE, 0xDA, 0x08, 0x08, 0xFD, 0x12, 0x0C, 0xFE, 0xE5, 0x08, 0x08, 0x01, 0x1B, 0x0C, 0x12, 0xFD, 0x08, 0x08, + 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x2D, 0x00, 0x4F, 0x00, 0x68, 0x00, 0x71, 0x00, 0x00, 0x13, + 0x14, 0x16, 0x3B, 0x01, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x03, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x06, 0x1D, + 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x32, 0x36, 0x35, 0x34, + 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x06, 0x15, 0x14, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x2B, 0x01, 0x22, + 0x1D, 0x01, 0x14, 0x33, 0x37, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x17, 0x16, 0x32, 0x37, 0x36, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, + 0x14, 0x07, 0x26, 0x35, 0x37, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x33, 0x32, 0x17, 0xE0, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0xFE, 0xB0, 0x0A, 0x0E, 0x0E, 0x0A, + 0xC8, 0x60, 0x08, 0x08, 0x14, 0x1C, 0x1C, 0x14, 0x08, 0x08, 0x08, 0x08, 0x07, 0x09, 0x09, 0x07, 0x08, 0x08, 0x2C, 0x12, 0x19, 0x0E, 0x16, 0x02, 0x0B, + 0x0C, 0x08, 0x08, 0x0C, 0x12, 0x19, 0x0E, 0x16, 0x02, 0x0B, 0x0C, 0x08, 0x08, 0x60, 0x08, 0x10, 0x08, 0x24, 0x05, 0x0E, 0x05, 0x24, 0x08, 0x10, 0x08, + 0x10, 0x10, 0x79, 0x07, 0x80, 0x06, 0x0A, 0x07, 0x01, 0x38, 0x0A, 0x0E, 0xFE, 0xB8, 0x0A, 0x0E, 0x0E, 0x0A, 0x01, 0xD0, 0x0A, 0x0E, 0xFE, 0xE8, 0x10, + 0x08, 0x1C, 0x14, 0x20, 0x14, 0x1C, 0x08, 0x10, 0x08, 0x09, 0x07, 0x20, 0x07, 0x09, 0x60, 0x17, 0x10, 0x10, 0x0C, 0x13, 0x01, 0x02, 0x07, 0x08, 0x10, + 0x08, 0x17, 0x10, 0x10, 0x0C, 0x13, 0x01, 0x02, 0x07, 0x08, 0x10, 0x08, 0x78, 0x08, 0x08, 0x15, 0x37, 0x27, 0x05, 0x05, 0x27, 0x37, 0x15, 0x08, 0x08, + 0x15, 0x1F, 0x1A, 0x1A, 0x1F, 0xB4, 0x07, 0x0A, 0x06, 0x80, 0x07, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x42, + 0x00, 0x4E, 0x00, 0x5E, 0x00, 0x6E, 0x00, 0x00, 0x01, 0x23, 0x22, 0x07, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x17, 0x15, 0x14, 0x0F, 0x01, + 0x15, 0x21, 0x35, 0x27, 0x26, 0x3D, 0x01, 0x16, 0x3B, 0x01, 0x32, 0x37, 0x16, 0x3B, 0x01, 0x32, 0x37, 0x16, 0x17, 0x06, 0x0F, 0x01, 0x06, 0x15, 0x14, + 0x1F, 0x01, 0x16, 0x33, 0x32, 0x3F, 0x01, 0x3E, 0x01, 0x37, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, + 0x27, 0x26, 0x2B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x05, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x33, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x01, 0x00, 0x30, 0x08, 0x08, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x80, 0x1C, 0x24, 0xFF, 0x00, 0x1B, 0x25, 0x08, 0x08, 0x20, 0x12, 0x0E, 0x0E, 0x12, 0x20, 0x0B, 0x0B, 0x0C, 0x1B, 0x15, 0x1B, + 0x06, 0x01, 0x03, 0x0E, 0x02, 0x02, 0x04, 0x03, 0x06, 0x1A, 0x27, 0x1F, 0x08, 0x0D, 0x23, 0x14, 0x1C, 0x09, 0x07, 0x70, 0x1A, 0x26, 0x20, 0x11, 0x0F, + 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0xFE, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x09, 0x07, 0x01, 0x20, 0x03, 0x93, 0x07, 0x09, 0x09, 0x07, 0xF0, 0x58, 0x28, 0x1C, 0x24, 0x40, 0x40, 0x1B, 0x25, 0x35, 0x4E, 0x03, 0x0C, 0x0C, 0x06, + 0x1A, 0x09, 0x12, 0x28, 0x09, 0x02, 0x03, 0x04, 0x03, 0x08, 0x02, 0x04, 0x09, 0x28, 0x1F, 0x02, 0x08, 0x10, 0x08, 0x1C, 0x14, 0x07, 0x09, 0x25, 0x3F, + 0x06, 0x70, 0x07, 0x09, 0x09, 0x07, 0xB0, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, 0x09, 0x09, 0x07, 0xA0, + 0x07, 0x09, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xB9, 0x01, 0x80, 0x01, 0xC3, 0x00, 0x1E, 0x00, 0x26, 0x00, 0x2E, 0x00, 0x00, 0x13, 0x36, 0x16, 0x15, + 0x11, 0x14, 0x06, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x06, 0x26, 0x35, 0x11, + 0x34, 0x36, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0xBA, 0x52, 0x74, 0x14, 0x07, 0x19, 0x0C, + 0x0A, 0x2B, 0x0B, 0x0B, 0x29, 0x05, 0x0E, 0x05, 0x29, 0x0B, 0x0B, 0x2B, 0x0A, 0x0C, 0x19, 0x07, 0x14, 0x6C, 0x07, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x93, + 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xC0, 0x02, 0x71, 0x51, 0xFE, 0xF0, 0x0B, 0x08, 0x08, 0x12, 0x09, 0x0B, 0x30, 0x0C, 0x0C, 0x2E, 0x05, 0x05, 0x2E, + 0x0C, 0x0C, 0x30, 0x0B, 0x09, 0x12, 0x08, 0x08, 0x0B, 0x01, 0x08, 0x50, 0x76, 0xDE, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x1A, + 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x47, 0x01, 0xC0, 0x00, 0x1B, 0x00, 0x27, 0x00, 0x00, 0x25, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, + 0x3F, 0x01, 0x27, 0x06, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x27, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x07, 0x17, 0x37, 0x36, 0x17, 0x05, 0x17, 0x16, 0x17, 0x07, + 0x06, 0x22, 0x26, 0x34, 0x37, 0x25, 0x16, 0x02, 0x3B, 0x0C, 0x0C, 0x5A, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0x0B, 0x1D, 0x24, 0x1A, 0x31, 0x13, 0x5A, 0x2F, + 0x84, 0x2F, 0x2D, 0x1A, 0x09, 0x1D, 0x0B, 0x0B, 0x0C, 0xFE, 0xF8, 0x31, 0x04, 0x07, 0xEE, 0x12, 0x34, 0x25, 0x14, 0x00, 0xFF, 0x05, 0xFE, 0x0B, 0x0C, + 0x5A, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x0C, 0x1C, 0x09, 0x1A, 0x31, 0x13, 0x1A, 0x13, 0x2D, 0x2F, 0x2F, 0x2D, 0x1A, 0x24, 0x1D, 0x0C, 0x0B, 0x0B, 0x08, + 0x31, 0x04, 0x05, 0xFF, 0x14, 0x25, 0x34, 0x12, 0xEE, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, + 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x6D, 0x00, 0x78, 0x00, 0x83, 0x00, 0x8E, 0x00, 0x99, 0x00, 0xA4, 0x00, 0xAF, 0x00, 0xBA, + 0x00, 0xC5, 0x00, 0xD0, 0x00, 0x00, 0x13, 0x33, 0x32, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x23, 0x33, 0x32, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x3B, 0x01, 0x32, + 0x1D, 0x01, 0x23, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x23, 0x35, 0x34, 0x17, 0x15, 0x23, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x21, 0x33, 0x32, 0x1D, + 0x01, 0x23, 0x35, 0x34, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x35, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x36, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, + 0x15, 0x14, 0x04, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x24, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x06, + 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x16, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x16, 0x22, 0x26, 0x35, + 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x16, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0x16, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, + 0x01, 0x16, 0x15, 0x14, 0x16, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3F, 0x01, 0x16, 0x15, 0x14, 0xE8, 0x10, 0x08, 0x20, 0x38, 0x10, 0x08, 0x20, 0xE8, 0x10, + 0x08, 0x20, 0x48, 0x10, 0x08, 0x20, 0x60, 0x20, 0x08, 0x10, 0x08, 0xFE, 0x48, 0x10, 0x08, 0x20, 0x02, 0x10, 0x07, 0x09, 0x38, 0x28, 0xC0, 0xB0, 0x07, + 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0xB0, 0xC0, 0x28, 0x38, 0x09, 0x07, 0x20, 0x07, 0x09, 0x13, 0x0D, 0xC0, 0x09, 0x07, 0x20, 0x07, + 0x09, 0xC0, 0x0D, 0x13, 0x09, 0x07, 0x1A, 0x14, 0x0E, 0x0C, 0x06, 0x06, 0x18, 0xFD, 0xB2, 0x14, 0x0E, 0x0C, 0x06, 0x06, 0x18, 0x01, 0x12, 0x14, 0x0E, + 0x0C, 0x06, 0x06, 0x18, 0xDE, 0x14, 0x0E, 0x0C, 0x06, 0x06, 0x18, 0x32, 0x14, 0x0E, 0x0C, 0x06, 0x06, 0x18, 0x32, 0x14, 0x0E, 0x0C, 0x06, 0x06, 0x18, + 0x92, 0x14, 0x0E, 0x0C, 0x06, 0x06, 0x18, 0x32, 0x14, 0x0E, 0x0C, 0x06, 0x06, 0x18, 0x32, 0x14, 0x0E, 0x0C, 0x06, 0x06, 0x18, 0x01, 0x20, 0x08, 0x78, + 0x78, 0x08, 0x08, 0x78, 0x78, 0x08, 0x08, 0x78, 0x78, 0x08, 0x08, 0x78, 0x78, 0x08, 0x08, 0x78, 0x78, 0x08, 0x08, 0x78, 0x78, 0x08, 0x09, 0x07, 0x70, + 0x28, 0x38, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x38, 0x28, 0x70, 0x07, 0x09, 0x09, 0x07, 0x70, 0x0D, 0x13, 0xC0, + 0x07, 0x09, 0x09, 0x07, 0xC0, 0x13, 0x0D, 0x70, 0x07, 0x09, 0x20, 0x10, 0x0B, 0x06, 0x1B, 0x0A, 0x0A, 0x27, 0x0E, 0x0B, 0x10, 0x10, 0x0B, 0x06, 0x1B, + 0x0A, 0x0A, 0x27, 0x0E, 0x0B, 0x20, 0x10, 0x0B, 0x06, 0x1B, 0x0A, 0x0A, 0x27, 0x0E, 0x0B, 0x40, 0x10, 0x0B, 0x06, 0x1B, 0x0A, 0x0A, 0x27, 0x0E, 0x0B, + 0x10, 0x10, 0x0B, 0x06, 0x1B, 0x0A, 0x0A, 0x27, 0x0E, 0x0B, 0x10, 0x10, 0x0B, 0x06, 0x1B, 0x0A, 0x0A, 0x27, 0x0E, 0x0B, 0x10, 0x10, 0x0B, 0x06, 0x1B, + 0x0A, 0x0A, 0x27, 0x0E, 0x0B, 0x10, 0x10, 0x0B, 0x06, 0x1B, 0x0A, 0x0A, 0x27, 0x0E, 0x0B, 0x10, 0x10, 0x0B, 0x06, 0x1B, 0x0A, 0x0A, 0x27, 0x0E, 0x0B, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x23, 0x00, 0x2B, 0x00, 0x00, 0x21, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x17, 0x23, 0x37, 0x36, 0x3F, 0x01, 0x07, 0x06, 0x15, 0x14, 0x1F, 0x01, 0x23, + 0x3F, 0x01, 0x2F, 0x01, 0x0F, 0x01, 0x37, 0x07, 0x1F, 0x01, 0x3F, 0x01, 0x2F, 0x01, 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x09, + 0x07, 0xB0, 0x10, 0x90, 0x6F, 0x11, 0x24, 0xBC, 0x38, 0x04, 0x06, 0x56, 0xD0, 0x10, 0x40, 0x40, 0x20, 0x20, 0x40, 0x80, 0x20, 0x20, 0x10, 0x10, 0x20, + 0x20, 0x10, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x20, 0xFA, 0x26, 0x15, 0x6B, 0xA9, 0x0A, 0x0A, 0x0D, 0x0C, 0xCA, 0x20, + 0x20, 0x20, 0x40, 0x40, 0x20, 0xC0, 0x10, 0x10, 0x20, 0x20, 0x10, 0x10, 0x20, 0x00, 0x04, 0xFF, 0xFE, 0xFF, 0xBF, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x0A, + 0x00, 0x19, 0x00, 0x48, 0x00, 0x50, 0x00, 0x00, 0x17, 0x37, 0x17, 0x07, 0x0E, 0x01, 0x23, 0x22, 0x27, 0x2E, 0x01, 0x37, 0x0E, 0x01, 0x2F, 0x01, 0x2E, + 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x07, 0x17, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x2F, + 0x01, 0x07, 0x06, 0x31, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x27, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x3E, 0x01, 0x33, 0x32, 0x1F, + 0x01, 0x33, 0x35, 0x34, 0x36, 0x33, 0x26, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x51, 0x23, 0x34, 0x19, 0x03, 0x11, 0x0B, 0x04, 0x04, 0x0D, 0x0D, + 0x12, 0x02, 0x0B, 0x07, 0x40, 0x06, 0x07, 0x01, 0x1A, 0x08, 0x3A, 0x21, 0x07, 0x07, 0x02, 0xE7, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x30, 0x0D, + 0x0A, 0x16, 0x14, 0x01, 0x2F, 0x13, 0x13, 0x1A, 0x13, 0x57, 0x09, 0x01, 0x1B, 0x05, 0x20, 0x14, 0x18, 0x11, 0x2F, 0x23, 0x09, 0x07, 0x5C, 0x28, 0x1C, + 0x1C, 0x28, 0x1C, 0x18, 0x8A, 0x35, 0x65, 0x0B, 0x0D, 0x01, 0x03, 0x17, 0xD1, 0x06, 0x07, 0x01, 0x10, 0x01, 0x0B, 0x07, 0x62, 0x1F, 0x22, 0x08, 0x02, + 0x0B, 0x06, 0x2B, 0x09, 0x07, 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, 0xF0, 0x09, 0x17, 0x50, 0x01, 0x2F, 0x13, 0x1A, 0x53, 0x0D, 0x13, 0x13, 0x0D, 0x53, + 0x56, 0x0A, 0x0D, 0x04, 0x04, 0x6B, 0x14, 0x19, 0x11, 0x2F, 0x10, 0x07, 0x09, 0x40, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, + 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x06, 0x22, 0x27, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x33, 0x32, 0x17, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x36, 0x33, 0x32, 0x16, 0x17, 0x3E, 0x02, 0x06, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x02, 0x45, 0x19, 0x22, 0x13, 0x0D, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x40, 0x07, 0x09, 0x33, 0x7A, 0x33, 0x09, + 0x07, 0x40, 0x07, 0x09, 0x70, 0x50, 0x49, 0x37, 0x0E, 0x0A, 0x10, 0x0A, 0x0E, 0x11, 0x0F, 0x1D, 0x30, 0x0C, 0x07, 0x1F, 0x1A, 0x80, 0x0E, 0x09, 0x09, + 0x0E, 0x09, 0x01, 0x60, 0x2A, 0x1A, 0x5C, 0x0D, 0x13, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x47, 0x17, 0x17, 0x47, 0x07, + 0x09, 0x09, 0x07, 0xF0, 0x42, 0x5E, 0x29, 0x31, 0x0A, 0x0E, 0x0E, 0x0A, 0x0E, 0x06, 0x21, 0x1A, 0x03, 0x0F, 0x09, 0x50, 0x09, 0x0E, 0x09, 0x09, 0x0E, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x41, 0x01, 0xC0, 0x00, 0x49, 0x00, 0x51, 0x00, 0x00, 0x01, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x02, + 0x15, 0x30, 0x15, 0x14, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x27, 0x07, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x26, + 0x35, 0x34, 0x3F, 0x01, 0x26, 0x35, 0x34, 0x36, 0x35, 0x06, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x15, 0x36, + 0x3B, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x40, 0x14, + 0x21, 0x0B, 0x18, 0x05, 0x13, 0x10, 0x20, 0x09, 0x07, 0x40, 0x07, 0x09, 0x86, 0x18, 0x1A, 0x02, 0x09, 0x08, 0x42, 0x0C, 0x03, 0x19, 0x02, 0x04, 0x1A, + 0x1F, 0x01, 0x11, 0x09, 0x07, 0x10, 0x07, 0x09, 0x34, 0x24, 0x1D, 0x2B, 0xA0, 0x4B, 0x35, 0x78, 0x04, 0x05, 0x01, 0x04, 0x12, 0x07, 0x06, 0x09, 0x47, + 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0x73, 0x4D, 0x16, 0x08, 0x0D, 0x05, 0x09, 0x0B, 0x26, 0x07, 0x66, 0x01, 0x2D, 0x21, 0xB2, 0x07, 0x09, 0x09, 0x07, + 0x96, 0x17, 0x40, 0x69, 0x08, 0x0C, 0x0C, 0x64, 0x07, 0x08, 0x0C, 0x0B, 0x44, 0x1D, 0x29, 0x02, 0x05, 0x01, 0x0D, 0x13, 0x38, 0x07, 0x09, 0x09, 0x07, + 0x38, 0x24, 0x34, 0x01, 0x21, 0x35, 0x4B, 0x06, 0x04, 0x13, 0x0B, 0x08, 0x07, 0x09, 0x20, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x02, 0xFF, 0xF9, 0xFF, + 0xC0, 0x02, 0x47, 0x01, 0xC1, 0x00, 0x17, 0x00, 0x34, 0x00, 0x00, 0x01, 0x17, 0x1E, 0x01, 0x33, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x27, 0x37, 0x27, 0x17, + 0x07, 0x17, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x32, 0x36, 0x35, 0x25, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x26, 0x37, + 0x25, 0x36, 0x32, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x01, 0x20, 0xDB, 0x01, 0x03, 0x01, 0x09, 0x07, 0xB0, 0x28, 0x68, + 0x94, 0x3C, 0x68, 0x25, 0x95, 0x07, 0x09, 0x01, 0x04, 0x01, 0xF6, 0x0C, 0x0B, 0x15, 0x0B, 0x0C, 0xE5, 0x0B, 0x0B, 0xE5, 0x0C, 0x0A, 0x16, 0x0B, 0x0C, + 0x01, 0x00, 0x0C, 0x1E, 0x0C, 0x65, 0x09, 0x07, 0x40, 0x07, 0x09, 0x01, 0x4D, 0xC1, 0x01, 0x02, 0xB9, 0x07, 0x09, 0x37, 0x40, 0x89, 0x77, 0x40, 0x49, + 0x09, 0x07, 0xB9, 0x02, 0x01, 0x48, 0x0B, 0x0C, 0x18, 0x0C, 0x0B, 0xCA, 0x0A, 0x0A, 0xCA, 0x0B, 0x0C, 0x18, 0x0C, 0x0B, 0xE2, 0x0A, 0x0A, 0x5A, 0x34, + 0x07, 0x09, 0x09, 0x07, 0x88, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0x80, 0x01, 0xA0, 0x00, 0x59, 0x00, 0x00, 0x25, 0x23, 0x07, 0x33, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x07, 0x06, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x27, 0x26, 0x37, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, + 0x01, 0x37, 0x36, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x17, + 0x16, 0x07, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x01, 0x70, 0x64, 0x22, 0x86, 0x07, 0x09, 0x09, 0x07, 0xCC, 0x1D, 0x07, 0x0C, 0x09, 0x54, 0x09, + 0x06, 0x0C, 0x08, 0x13, 0x07, 0x14, 0x07, 0x02, 0x08, 0x0C, 0x1D, 0x25, 0x4F, 0x1C, 0x32, 0x0E, 0x1B, 0x17, 0x2A, 0x07, 0x09, 0x09, 0x07, 0x64, 0x22, + 0x86, 0x07, 0x09, 0x09, 0x07, 0xCC, 0x1D, 0x07, 0x0C, 0x09, 0x54, 0x09, 0x06, 0x0C, 0x08, 0x13, 0x07, 0x14, 0x07, 0x02, 0x08, 0x0C, 0x1D, 0x25, 0x4F, + 0x1C, 0x32, 0x0E, 0x1B, 0x17, 0x2A, 0x07, 0x09, 0x09, 0xD0, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x1B, 0x07, 0x09, 0x09, 0x0C, 0x06, 0x09, 0x07, 0x02, + 0x08, 0x18, 0x08, 0x14, 0x06, 0x0A, 0x18, 0x1A, 0x18, 0x2E, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x1B, 0x07, 0x09, + 0x09, 0x0C, 0x06, 0x09, 0x07, 0x02, 0x08, 0x18, 0x08, 0x14, 0x06, 0x0A, 0x18, 0x1A, 0x18, 0x2E, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x00, + 0x03, 0xFF, 0xF1, 0x00, 0x00, 0x02, 0x95, 0x01, 0x80, 0x00, 0x17, 0x00, 0x21, 0x00, 0x2B, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x07, 0x06, 0x07, 0x06, + 0x23, 0x22, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x26, 0x37, 0x36, 0x37, 0x36, 0x06, 0x32, 0x37, 0x36, 0x27, 0x26, 0x22, 0x07, 0x06, + 0x17, 0x04, 0x32, 0x37, 0x36, 0x27, 0x26, 0x22, 0x07, 0x06, 0x17, 0x01, 0x41, 0xD7, 0x4A, 0x32, 0x1F, 0x1B, 0x3F, 0x1D, 0x1F, 0x3F, 0x26, 0x1A, 0x0C, + 0x27, 0x0C, 0x19, 0x26, 0x40, 0x4F, 0x61, 0x13, 0x17, 0x72, 0x4A, 0x4F, 0x5E, 0x21, 0x09, 0x09, 0x21, 0x5E, 0x21, 0x09, 0x09, 0x01, 0x31, 0x5E, 0x21, + 0x09, 0x09, 0x21, 0x5E, 0x21, 0x09, 0x09, 0x01, 0x80, 0x6D, 0x49, 0x57, 0x48, 0x1E, 0x0D, 0x38, 0x26, 0x11, 0x11, 0x26, 0x38, 0x88, 0x50, 0x60, 0x2C, + 0x1C, 0xF4, 0x29, 0x0B, 0x0B, 0x29, 0x29, 0x0B, 0x0B, 0x29, 0x29, 0x0B, 0x0B, 0x29, 0x29, 0x0B, 0x0B, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, + 0x80, 0x01, 0xC0, 0x00, 0x11, 0x00, 0x16, 0x00, 0x00, 0x05, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x21, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x01, 0x36, + 0x32, 0x17, 0x0F, 0x01, 0x17, 0x37, 0x33, 0x02, 0x7B, 0x05, 0x04, 0x09, 0x13, 0xFD, 0xC0, 0x13, 0x09, 0x04, 0x05, 0x01, 0x20, 0x0A, 0x22, 0x0A, 0x1B, + 0x66, 0x26, 0x40, 0x55, 0x0F, 0x08, 0x09, 0x08, 0x07, 0x11, 0x11, 0x07, 0x08, 0x09, 0x08, 0x01, 0xC0, 0x0F, 0x0F, 0x4C, 0x9F, 0x26, 0x40, 0x00, 0x04, + 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x4B, 0x00, 0x4F, 0x00, 0x53, 0x00, 0x57, 0x00, 0x00, 0x25, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x33, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x21, 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x35, 0x23, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x21, 0x32, 0x16, 0x15, 0x25, 0x33, 0x35, 0x23, 0x03, 0x35, + 0x23, 0x15, 0x21, 0x35, 0x23, 0x15, 0x02, 0x80, 0x09, 0x07, 0x68, 0x38, 0x0D, 0x13, 0x13, 0x0D, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0x38, 0xFE, 0xD0, 0x38, + 0x0D, 0x13, 0x13, 0x0D, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0x38, 0x68, 0x07, 0x09, 0x09, 0x07, 0x01, 0x18, 0x48, 0x0D, 0x13, 0x13, 0x0D, 0xC0, 0x0D, 0x13, + 0x13, 0x0D, 0x48, 0x01, 0x18, 0x07, 0x09, 0xFE, 0x80, 0x80, 0x80, 0x40, 0x60, 0x01, 0xC0, 0x60, 0xB8, 0x07, 0x09, 0x28, 0x13, 0x0D, 0x80, 0x0D, 0x13, + 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x28, 0x28, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x28, 0x09, 0x07, 0x10, 0x07, 0x09, 0x28, 0x13, + 0x0D, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x28, 0x09, 0x07, 0x78, 0x40, 0xFE, 0x80, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x03, 0xFF, + 0xF9, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC1, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4E, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x07, + 0x17, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x27, 0x07, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x06, 0x14, 0x16, + 0x3B, 0x01, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x27, 0x26, 0x37, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x02, 0x32, + 0x1F, 0x01, 0x06, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x17, 0x32, 0x36, 0x37, 0x23, 0x07, 0x17, 0x37, 0x02, 0x60, 0x0D, 0x13, 0x38, 0x28, 0x17, + 0x5C, 0x37, 0x1C, 0x0D, 0x13, 0x09, 0x07, 0x50, 0x4B, 0x95, 0x40, 0x0D, 0x13, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x70, 0x0D, 0x13, 0x13, 0x0D, + 0x6C, 0x1E, 0x30, 0x05, 0x07, 0x1E, 0x28, 0x70, 0x50, 0x38, 0x99, 0x0F, 0x11, 0x14, 0x01, 0x1A, 0x13, 0x0D, 0x39, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x10, + 0x0F, 0x19, 0x05, 0x4D, 0x77, 0x0E, 0x66, 0x01, 0xA0, 0x13, 0x0D, 0x20, 0x28, 0x38, 0x32, 0x6E, 0x13, 0x0D, 0x10, 0x07, 0x09, 0x90, 0x50, 0x13, 0x0D, + 0x10, 0x07, 0x09, 0x09, 0x0E, 0x09, 0x13, 0x1A, 0x13, 0x25, 0x1D, 0x2A, 0x1E, 0x26, 0x2E, 0x02, 0x50, 0x70, 0x58, 0x08, 0x13, 0x0D, 0x10, 0x09, 0x0E, + 0x09, 0x09, 0x0E, 0x57, 0x12, 0x0E, 0x3B, 0x1C, 0x37, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x0B, 0x00, 0x17, 0x00, 0x1D, + 0x00, 0x00, 0x12, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x24, 0x22, 0x06, 0x15, 0x14, 0x17, 0x36, 0x32, 0x17, 0x36, 0x35, + 0x34, 0x05, 0x16, 0x32, 0x37, 0x26, 0x22, 0x93, 0xDA, 0x93, 0x96, 0xD4, 0x96, 0x01, 0x50, 0xA0, 0x70, 0x0B, 0x49, 0xD8, 0x49, 0x0B, 0xFE, 0xB8, 0x39, + 0x9E, 0x39, 0x3A, 0x9C, 0x01, 0x80, 0x52, 0x3E, 0x62, 0x3B, 0x53, 0x53, 0x3B, 0x62, 0x3E, 0x12, 0x2F, 0x21, 0x0D, 0x0D, 0x2A, 0x2A, 0x0D, 0x0D, 0x21, + 0x5A, 0x17, 0x17, 0x19, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xA0, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x15, 0x00, 0x42, 0x00, 0x00, 0x00, 0x22, + 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x16, 0x1F, 0x01, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x25, 0x32, 0x16, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x07, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x27, + 0x26, 0x0F, 0x01, 0x06, 0x2E, 0x01, 0x36, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x1F, 0x01, 0x01, 0x24, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xCE, 0x0C, 0x1A, + 0x0A, 0x08, 0x0D, 0x20, 0x4D, 0x0D, 0x13, 0x13, 0x0D, 0x43, 0x01, 0x1D, 0x0D, 0x13, 0x13, 0x0D, 0x36, 0x1E, 0x0D, 0x14, 0x20, 0x3E, 0x0E, 0x0C, 0x05, + 0x1F, 0x07, 0x18, 0x05, 0x05, 0x0C, 0x0C, 0x03, 0x1C, 0x55, 0x15, 0x0F, 0x0A, 0x25, 0x0F, 0x0D, 0x0C, 0x28, 0x0A, 0x1A, 0x10, 0x03, 0x0B, 0x27, 0x25, + 0x2C, 0x47, 0x2A, 0x14, 0x1A, 0x01, 0x60, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xF9, 0x1C, 0x0F, 0x06, 0x15, 0x1D, 0x13, 0x1A, 0x13, 0x80, 0x13, 0x1A, 0x13, + 0x1B, 0x29, 0x4E, 0x24, 0x09, 0x1E, 0x0F, 0x66, 0x16, 0x02, 0x03, 0x18, 0x0D, 0x57, 0x32, 0x0D, 0x2E, 0x16, 0x57, 0x05, 0x03, 0x0A, 0x1E, 0x08, 0x03, + 0x15, 0x1B, 0x08, 0x1E, 0x1C, 0x0B, 0x15, 0x0B, 0x28, 0x35, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x0A, + 0x00, 0x1A, 0x00, 0x26, 0x00, 0x00, 0x12, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x01, 0x14, 0x06, 0x07, 0x06, 0x26, 0x35, 0x11, + 0x34, 0x27, 0x21, 0x32, 0x16, 0x15, 0x11, 0x21, 0x17, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x21, 0x32, 0x36, 0x35, 0x1C, 0x28, 0x1C, 0x50, 0x07, + 0x09, 0x01, 0x00, 0x1E, 0x17, 0x1E, 0x2D, 0x10, 0x01, 0x50, 0x28, 0x38, 0xFE, 0xE0, 0x20, 0x01, 0x50, 0x07, 0x09, 0x42, 0x2E, 0xFE, 0xB0, 0x28, 0x38, + 0x01, 0xC0, 0x1C, 0x14, 0x50, 0x09, 0x07, 0x40, 0x14, 0xFE, 0x7F, 0x18, 0x26, 0x04, 0x05, 0x27, 0x1D, 0x01, 0x70, 0x1A, 0x16, 0x38, 0x28, 0xFF, 0x00, + 0x20, 0x09, 0x07, 0x2E, 0x42, 0x38, 0x28, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0xFF, 0xBE, 0x01, 0xC2, 0x01, 0xC0, 0x00, 0x23, 0x00, 0x37, 0x00, 0x3F, 0x00, + 0x47, 0x00, 0x00, 0x05, 0x1E, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x07, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x27, 0x2E, 0x01, 0x3F, + 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x27, 0x2E, 0x01, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, + 0x07, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x37, 0x36, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, + 0x01, 0xB7, 0x06, 0x04, 0x03, 0x0E, 0x03, 0x0D, 0x05, 0xBB, 0xBB, 0x05, 0x0D, 0x03, 0x0E, 0x03, 0x04, 0x06, 0x8E, 0x8E, 0x06, 0x04, 0x03, 0x0E, 0x03, + 0x0D, 0x05, 0xBB, 0xBB, 0x05, 0x0D, 0x03, 0x0E, 0x03, 0x04, 0x06, 0x8E, 0x93, 0x20, 0x26, 0x54, 0x78, 0x54, 0x26, 0x20, 0x06, 0x02, 0x0B, 0x08, 0x7E, + 0x08, 0x0A, 0x02, 0x94, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x83, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x05, 0x03, 0x0D, 0x06, 0x1C, 0x06, 0x04, 0x03, 0x5A, 0x5A, + 0x03, 0x04, 0x06, 0x1C, 0x06, 0x0D, 0x03, 0x45, 0x45, 0x03, 0x0D, 0x06, 0x1C, 0x06, 0x04, 0x03, 0x5A, 0x5A, 0x03, 0x04, 0x06, 0x1C, 0x06, 0x0D, 0x03, + 0x45, 0x93, 0x11, 0x3A, 0x22, 0x35, 0x4B, 0x4B, 0x35, 0x22, 0x3A, 0x11, 0x1A, 0x0A, 0x0F, 0x0F, 0x0A, 0x97, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x13, + 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xF9, 0xFF, 0xB9, 0x02, 0x87, 0x01, 0xC7, 0x00, 0x0B, 0x00, 0x00, 0x05, 0x01, 0x26, 0x3F, + 0x01, 0x36, 0x17, 0x01, 0x16, 0x0F, 0x01, 0x06, 0x02, 0x53, 0xFD, 0xB3, 0x0C, 0x09, 0x14, 0x0A, 0x0C, 0x02, 0x4D, 0x0C, 0x09, 0x14, 0x0A, 0x3D, 0x01, + 0xC7, 0x0A, 0x0D, 0x19, 0x0C, 0x09, 0xFE, 0x39, 0x0A, 0x0D, 0x19, 0x0C, 0x00, 0x00, 0x03, 0xFF, 0xF9, 0xFF, 0xC0, 0x02, 0x47, 0x01, 0xC2, 0x00, 0x13, + 0x00, 0x6F, 0x00, 0x83, 0x00, 0x00, 0x13, 0x27, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x1E, 0x01, 0x0F, 0x01, 0x17, 0x06, 0x0F, 0x01, + 0x23, 0x05, 0x16, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x23, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x27, 0x16, 0x15, 0x14, + 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x23, 0x07, 0x06, 0x2F, 0x01, 0x26, + 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x27, 0x26, 0x2F, 0x01, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x02, 0x33, 0x37, 0x3E, 0x03, 0x32, 0x1E, 0x02, 0x1F, 0x01, 0x33, + 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x16, 0x0F, 0x01, 0x06, 0x0F, 0x01, 0x33, 0x32, 0x17, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x16, 0x1F, 0x01, 0x16, + 0x15, 0x14, 0x0F, 0x02, 0x23, 0x27, 0x26, 0x27, 0x97, 0x1B, 0x03, 0x01, 0x1A, 0x02, 0x0C, 0x06, 0x10, 0x06, 0x06, 0x02, 0x18, 0x14, 0x02, 0x01, 0x05, + 0x05, 0x01, 0x8C, 0x09, 0x0D, 0x0D, 0x0E, 0x09, 0x30, 0x2F, 0x3D, 0x05, 0x09, 0x07, 0x10, 0x07, 0x09, 0x4A, 0x02, 0x37, 0x52, 0x37, 0x02, 0x4A, 0x09, + 0x07, 0x10, 0x07, 0x09, 0x05, 0x3D, 0x2F, 0x30, 0x09, 0x0E, 0x0D, 0x0D, 0x09, 0x34, 0x0A, 0x11, 0x4E, 0x45, 0x0A, 0x07, 0x35, 0x09, 0x0D, 0x0E, 0x0D, + 0x09, 0x32, 0x3D, 0x24, 0x0A, 0x02, 0x07, 0x0F, 0x1C, 0x24, 0x1C, 0x0F, 0x07, 0x02, 0x0A, 0x24, 0x3D, 0x32, 0x09, 0x0D, 0x0E, 0x0D, 0x09, 0x35, 0x07, + 0x0A, 0x45, 0x4E, 0x11, 0x0A, 0x73, 0x18, 0x02, 0x06, 0x06, 0x10, 0x06, 0x0C, 0x02, 0x1A, 0x01, 0x03, 0x1B, 0x1A, 0x05, 0x05, 0x01, 0x02, 0x01, 0x19, + 0x36, 0x07, 0x07, 0x05, 0x05, 0x4E, 0x06, 0x06, 0x02, 0x05, 0x02, 0x0C, 0x06, 0x48, 0x28, 0x06, 0x06, 0x1A, 0xAD, 0x0E, 0x09, 0x08, 0x09, 0x0D, 0x48, + 0x61, 0x08, 0x09, 0x4E, 0x07, 0x09, 0x09, 0x07, 0x49, 0x77, 0x1E, 0x0D, 0x28, 0x3D, 0x3D, 0x28, 0x0E, 0x1D, 0x77, 0x49, 0x07, 0x09, 0x09, 0x07, 0x4E, + 0x09, 0x08, 0x61, 0x48, 0x0D, 0x09, 0x08, 0x09, 0x0E, 0x4F, 0x0E, 0x18, 0x04, 0x09, 0x50, 0x0E, 0x09, 0x08, 0x09, 0x0D, 0x4C, 0x14, 0x34, 0x06, 0x10, + 0x17, 0x0F, 0x0F, 0x17, 0x10, 0x06, 0x34, 0x14, 0x4C, 0x0D, 0x09, 0x08, 0x09, 0x0E, 0x50, 0x09, 0x04, 0x18, 0x0E, 0xAC, 0x48, 0x06, 0x0C, 0x02, 0x05, + 0x02, 0x06, 0x06, 0x4E, 0x04, 0x06, 0x07, 0x07, 0x36, 0x09, 0x1A, 0x06, 0x06, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, + 0x19, 0x00, 0x21, 0x00, 0x29, 0x00, 0x31, 0x00, 0x39, 0x00, 0x41, 0x00, 0x49, 0x00, 0x00, 0x13, 0x21, 0x0E, 0x01, 0x1D, 0x01, 0x14, 0x0E, 0x01, 0x07, + 0x06, 0x23, 0x21, 0x22, 0x26, 0x37, 0x3E, 0x05, 0x3D, 0x01, 0x34, 0x36, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, + 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x80, 0x01, 0x1C, 0x1C, 0x20, 0x08, 0x08, 0x09, 0x07, 0x17, 0xFE, 0xE7, 0x08, 0x0A, 0x03, + 0x03, 0x0D, 0x04, 0x07, 0x02, 0x02, 0x38, 0x01, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x49, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x49, 0x0E, 0x09, 0x09, 0x0E, 0x09, + 0x49, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0xA8, 0x50, 0x38, 0x38, 0x50, 0x38, 0x53, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xC0, 0x1D, 0x65, 0x3E, 0xAC, 0x19, + 0x31, 0x1A, 0x1A, 0x16, 0x0D, 0x08, 0x09, 0x26, 0x0C, 0x19, 0x0D, 0x14, 0x0A, 0xAC, 0x50, 0x70, 0xE0, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, + 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0xD7, 0x70, 0xA0, 0x70, 0x70, 0xA0, 0x90, 0x25, 0x36, 0x25, + 0x25, 0x36, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC1, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x6B, 0x00, 0x73, 0x00, 0x78, + 0x00, 0x00, 0x24, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x0F, + 0x01, 0x26, 0x23, 0x22, 0x07, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x06, 0x07, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x06, 0x07, 0x15, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x26, 0x27, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x26, 0x27, 0x23, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x3B, 0x01, 0x36, 0x37, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x17, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x33, 0x35, 0x34, + 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x07, 0x06, 0x1D, 0x01, 0x00, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, 0x33, 0x27, 0x23, 0x15, 0x01, 0xEC, + 0x48, 0x34, 0x34, 0x48, 0x34, 0x4E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x68, 0x0D, 0x13, 0x09, 0x33, 0x19, 0x1B, 0x3B, 0x24, 0x51, 0x0D, 0x09, 0x07, 0x05, + 0x07, 0x05, 0x06, 0x06, 0x1F, 0x07, 0x12, 0x06, 0x05, 0x0E, 0x0F, 0x0D, 0x09, 0x2C, 0x09, 0x0D, 0x0F, 0x0E, 0x05, 0x06, 0x12, 0x07, 0x1F, 0x06, 0x06, + 0x05, 0x07, 0x05, 0x07, 0x09, 0x0D, 0x0D, 0x09, 0x07, 0x05, 0x07, 0x05, 0x06, 0x06, 0x1F, 0x0E, 0x0F, 0x1C, 0x14, 0x85, 0x20, 0x0D, 0x38, 0x66, 0x1E, + 0x04, 0x0F, 0x05, 0x16, 0x09, 0x08, 0x0D, 0xFE, 0x6F, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x66, 0x6E, 0x29, 0x6B, 0x70, 0x34, 0x48, 0x34, 0x34, 0x48, 0x3C, + 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x01, 0x12, 0x13, 0x0D, 0x33, 0x0D, 0x09, 0x33, 0x0C, 0x30, 0x06, 0x09, 0x0D, 0x0F, 0x0E, 0x05, 0x06, 0x12, 0x07, 0x1F, + 0x06, 0x06, 0x05, 0x07, 0x05, 0x07, 0x09, 0x0D, 0x0D, 0x09, 0x07, 0x05, 0x07, 0x05, 0x06, 0x06, 0x1F, 0x07, 0x12, 0x06, 0x05, 0x0E, 0x0F, 0x0D, 0x09, + 0x2C, 0x09, 0x0D, 0x0F, 0x0E, 0x05, 0x06, 0x12, 0x07, 0x1F, 0x0D, 0x0C, 0x93, 0x14, 0x1C, 0x1D, 0x83, 0x28, 0x2E, 0x24, 0x06, 0x05, 0x18, 0x0A, 0x0A, + 0x11, 0x16, 0x28, 0xFF, 0x00, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0xD1, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, + 0xC0, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x19, 0x00, 0x20, 0x00, 0x28, 0x00, 0x3C, 0x00, 0x00, 0x01, 0x07, 0x23, 0x3E, 0x01, 0x33, 0x32, 0x17, + 0x23, 0x37, 0x16, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x33, 0x16, 0x15, 0x14, 0x05, 0x36, 0x37, 0x17, 0x23, 0x27, 0x35, 0x34, 0x37, 0x15, 0x22, 0x26, + 0x25, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x27, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x36, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x27, 0x33, + 0x16, 0x32, 0x37, 0x01, 0x15, 0x5A, 0x52, 0x0F, 0x40, 0x28, 0x1B, 0x5C, 0x67, 0x42, 0x19, 0x36, 0x6A, 0x4B, 0x02, 0xFC, 0x02, 0xFE, 0xF0, 0x0E, 0x10, + 0x62, 0x80, 0x50, 0x30, 0x14, 0x1C, 0x01, 0x00, 0x14, 0x1C, 0x1C, 0x14, 0x0D, 0x2A, 0x71, 0x37, 0x4F, 0x1C, 0x14, 0x50, 0x10, 0x2F, 0x21, 0x46, 0x2A, + 0x07, 0x23, 0x4C, 0x23, 0x01, 0xB4, 0x44, 0x24, 0x2C, 0x50, 0x32, 0x15, 0xCD, 0x4B, 0x35, 0x03, 0x0D, 0x0D, 0x03, 0x35, 0x77, 0x07, 0x03, 0xDE, 0x30, + 0x2A, 0x3D, 0x29, 0xC0, 0x1C, 0x44, 0x1C, 0x28, 0x1C, 0x60, 0x80, 0x4F, 0x37, 0x2A, 0x14, 0x1C, 0x16, 0x1A, 0x21, 0x2F, 0x60, 0x10, 0x10, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x01, 0x80, 0x00, 0x1B, 0x00, 0x23, 0x00, 0x2B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x01, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x16, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0xA0, 0x13, 0x20, 0x08, 0x1B, 0x0D, 0x3A, + 0x0D, 0x1B, 0x08, 0x20, 0x13, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0x65, 0x36, 0x25, 0x25, 0x36, 0x25, 0x01, 0x65, 0x36, 0x25, 0x25, 0x36, 0x25, 0x01, 0x80, + 0x13, 0x0D, 0xFE, 0xC0, 0x0D, 0x13, 0x15, 0x11, 0x3D, 0x1D, 0x1D, 0x3D, 0x11, 0x15, 0x13, 0x0D, 0x01, 0x40, 0x0D, 0x13, 0xF0, 0x25, 0x36, 0x25, 0x25, + 0x36, 0x25, 0x25, 0x36, 0x25, 0x25, 0x36, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xD9, 0x02, 0x0A, 0x01, 0xA7, 0x00, 0x1F, 0x00, 0x3F, 0x00, 0x59, 0x00, 0x00, + 0x37, 0x32, 0x16, 0x17, 0x16, 0x06, 0x23, 0x22, 0x26, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x33, 0x32, 0x36, 0x27, 0x2E, 0x01, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x35, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x36, 0x37, 0x36, 0x26, 0x23, 0x22, 0x07, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x17, 0x16, 0x06, 0x23, 0x17, 0x32, 0x16, 0x07, 0x0E, 0x01, 0x07, 0x06, 0x26, 0x27, 0x26, + 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x33, 0x32, 0x36, 0x34, 0x26, 0x2B, 0x01, 0x26, 0x27, 0x9D, 0x25, 0x39, 0x04, 0x06, 0x3A, 0x2B, 0x23, 0x35, 0x06, + 0x02, 0x0A, 0x08, 0x20, 0x0C, 0x04, 0x07, 0x17, 0x0F, 0x13, 0x02, 0x02, 0x14, 0x0C, 0x8E, 0x07, 0x09, 0x09, 0x07, 0x07, 0x09, 0x09, 0x07, 0x01, 0x4E, + 0x0C, 0x14, 0x02, 0x02, 0x13, 0x0F, 0x17, 0x07, 0x04, 0x0C, 0x20, 0x08, 0x0A, 0x02, 0x07, 0x43, 0x29, 0x1B, 0x28, 0x06, 0x09, 0x3A, 0x2D, 0x30, 0x36, + 0x44, 0x0D, 0x07, 0x2F, 0x1F, 0x2B, 0x48, 0x0E, 0x03, 0x0A, 0x08, 0x22, 0x0A, 0x04, 0x0E, 0x1C, 0x14, 0x1C, 0x1C, 0x14, 0x74, 0x0B, 0x1D, 0xC0, 0x2F, + 0x24, 0x2C, 0x41, 0x2C, 0x22, 0x07, 0x0B, 0x0A, 0x16, 0x17, 0x0E, 0x0C, 0x0F, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x0F, + 0x0C, 0x0E, 0x17, 0x16, 0x0A, 0x0B, 0x07, 0x27, 0x2D, 0x08, 0x06, 0x28, 0x1B, 0x2E, 0x47, 0x20, 0x54, 0x37, 0x1E, 0x2E, 0x06, 0x0A, 0x2B, 0x27, 0x08, + 0x0D, 0x08, 0x18, 0x1C, 0x28, 0x1C, 0x26, 0x1A, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x07, 0x01, 0xC7, 0x00, 0x1B, 0x00, 0x1F, 0x00, 0x00, + 0x01, 0x16, 0x0F, 0x01, 0x06, 0x27, 0x07, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x3E, 0x01, 0x17, 0x37, 0x26, 0x3F, + 0x01, 0x36, 0x17, 0x01, 0x37, 0x27, 0x07, 0x01, 0xFB, 0x0C, 0x0C, 0x16, 0x0C, 0x0B, 0x4D, 0x10, 0x0F, 0x1C, 0x9E, 0x13, 0x35, 0x13, 0x5A, 0x13, 0x13, + 0x9E, 0x1C, 0x4E, 0x23, 0x4C, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0xFE, 0xFC, 0x7A, 0x5A, 0x7A, 0x01, 0x77, 0x0B, 0x0B, 0x17, 0x0B, 0x0B, 0x4C, 0x23, 0x4E, + 0x1C, 0x9E, 0x13, 0x13, 0x5A, 0x13, 0x35, 0x13, 0x9E, 0x1C, 0x0F, 0x10, 0x4D, 0x0B, 0x0C, 0x16, 0x0C, 0x0C, 0xFE, 0x5E, 0x7A, 0x5A, 0x7A, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x2D, 0x00, 0x57, 0x00, 0x00, 0x36, 0x32, 0x16, 0x14, 0x06, + 0x22, 0x26, 0x34, 0x24, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x27, 0x16, 0x14, 0x07, 0x16, 0x07, 0x06, 0x23, 0x22, 0x27, 0x06, 0x22, 0x27, 0x06, + 0x23, 0x22, 0x27, 0x26, 0x37, 0x26, 0x34, 0x37, 0x26, 0x36, 0x17, 0x36, 0x32, 0x17, 0x36, 0x16, 0x36, 0x14, 0x06, 0x2B, 0x01, 0x26, 0x27, 0x26, 0x23, + 0x26, 0x22, 0x07, 0x22, 0x07, 0x06, 0x07, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x36, 0x33, 0x32, + 0x16, 0x15, 0x14, 0x07, 0x3A, 0x01, 0x31, 0x32, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0xBC, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x47, 0x17, 0x17, 0x08, + 0x12, 0x0C, 0x11, 0x05, 0x08, 0x0C, 0x32, 0x0C, 0x07, 0x06, 0x11, 0x0C, 0x12, 0x08, 0x17, 0x17, 0x08, 0x24, 0x18, 0x0C, 0x32, 0x0C, 0x19, 0x23, 0x9F, + 0x38, 0x28, 0x2B, 0x06, 0x09, 0x15, 0x1E, 0x15, 0x3C, 0x15, 0x1E, 0x15, 0x09, 0x06, 0x2B, 0x28, 0x38, 0x25, 0x1D, 0x02, 0x42, 0x2E, 0x20, 0x35, 0x0E, + 0x18, 0x25, 0x21, 0x2F, 0x02, 0x01, 0x01, 0x28, 0x60, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x11, 0x0C, 0x32, 0x0C, 0x19, + 0x11, 0x0D, 0x03, 0x17, 0x17, 0x03, 0x0D, 0x12, 0x18, 0x0C, 0x32, 0x0C, 0x19, 0x23, 0x08, 0x17, 0x17, 0x08, 0x24, 0x9B, 0x50, 0x38, 0x0C, 0x0A, 0x15, + 0x15, 0x15, 0x15, 0x09, 0x0D, 0x38, 0x28, 0x1F, 0x32, 0x0A, 0x0B, 0x0A, 0x2E, 0x42, 0x21, 0x1C, 0x1D, 0x2F, 0x21, 0x09, 0x07, 0x00, 0x00, 0x00, 0x06, + 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x42, 0x01, 0xC0, 0x00, 0x19, 0x00, 0x35, 0x00, 0x42, 0x00, 0x4F, 0x00, 0x5C, 0x00, 0x69, 0x00, 0x00, 0x25, 0x1E, 0x01, + 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x3C, 0x01, 0x31, 0x34, 0x36, 0x33, 0x32, 0x17, 0x36, 0x33, 0x32, 0x16, 0x17, 0x36, + 0x16, 0x07, 0x06, 0x23, 0x22, 0x26, 0x22, 0x27, 0x2E, 0x01, 0x27, 0x26, 0x27, 0x3E, 0x01, 0x33, 0x32, 0x17, 0x1E, 0x01, 0x07, 0x0E, 0x01, 0x15, 0x14, + 0x16, 0x07, 0x16, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x26, 0x3F, 0x01, 0x3E, 0x01, 0x07, 0x16, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x26, 0x3F, 0x01, + 0x3E, 0x01, 0x07, 0x16, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x26, 0x3F, 0x01, 0x3E, 0x01, 0x07, 0x16, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x26, 0x3F, + 0x01, 0x3E, 0x01, 0x01, 0x5E, 0x1D, 0x25, 0x2F, 0x21, 0xFF, 0x00, 0x21, 0x2F, 0x25, 0x1B, 0x38, 0x28, 0x31, 0x1D, 0x10, 0x12, 0x1D, 0x2C, 0xDF, 0x05, + 0x04, 0x03, 0x2B, 0x45, 0x03, 0x05, 0x06, 0x02, 0x04, 0x26, 0x1C, 0x10, 0x2B, 0x03, 0x54, 0x3A, 0x0D, 0x0D, 0x05, 0x02, 0x05, 0x1A, 0x1F, 0x52, 0x97, + 0x0E, 0x08, 0x24, 0x05, 0x09, 0x04, 0x04, 0x0E, 0x08, 0x25, 0x03, 0x0D, 0x5B, 0x0E, 0x08, 0x24, 0x05, 0x09, 0x04, 0x04, 0x0E, 0x08, 0x25, 0x03, 0x0D, + 0x5B, 0x0E, 0x08, 0x24, 0x05, 0x09, 0x04, 0x04, 0x0E, 0x08, 0x25, 0x03, 0x0D, 0x5B, 0x0E, 0x08, 0x24, 0x05, 0x09, 0x04, 0x04, 0x0E, 0x08, 0x25, 0x03, + 0x0D, 0xDE, 0x05, 0x2C, 0x1D, 0x21, 0x2F, 0x2F, 0x21, 0x1D, 0x2C, 0x05, 0x01, 0x01, 0x28, 0x38, 0x28, 0x08, 0x25, 0x1B, 0x01, 0x08, 0x04, 0x35, 0x01, + 0x01, 0x1D, 0x2F, 0x0A, 0x2B, 0x13, 0x3A, 0x50, 0x02, 0x01, 0x0A, 0x02, 0x0F, 0x35, 0x1E, 0x35, 0x44, 0xB8, 0x08, 0x0E, 0x40, 0x08, 0x02, 0x08, 0x0E, + 0x40, 0x06, 0x03, 0x03, 0x08, 0x0E, 0x40, 0x08, 0x02, 0x08, 0x0E, 0x40, 0x06, 0x03, 0x03, 0x08, 0x0E, 0x40, 0x08, 0x02, 0x08, 0x0E, 0x40, 0x06, 0x03, + 0x03, 0x08, 0x0E, 0x40, 0x08, 0x02, 0x08, 0x0E, 0x40, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, + 0x1D, 0x00, 0x2B, 0x00, 0x39, 0x00, 0x47, 0x00, 0x00, 0x01, 0x32, 0x16, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x26, 0x35, 0x34, + 0x36, 0x33, 0x32, 0x16, 0x17, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x3A, 0x01, 0x05, 0x36, 0x32, 0x17, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, + 0x35, 0x34, 0x36, 0x37, 0x36, 0x32, 0x17, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x36, 0x32, 0x17, 0x1E, 0x01, 0x15, 0x14, + 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x01, 0xA0, 0x28, 0x38, 0x38, 0x28, 0xFE, 0xC0, 0x28, 0x38, 0x25, 0x1D, 0x02, 0x42, 0x2E, 0x20, 0x35, 0x0E, 0x18, + 0x25, 0x21, 0x2F, 0x02, 0x01, 0x01, 0xFE, 0xB8, 0x02, 0x0C, 0x02, 0x06, 0x22, 0x1C, 0x28, 0x1C, 0x22, 0xA6, 0x02, 0x0C, 0x02, 0x06, 0x22, 0x1C, 0x28, + 0x1C, 0x22, 0xA6, 0x02, 0x0C, 0x02, 0x06, 0x22, 0x1C, 0x28, 0x1C, 0x22, 0x01, 0x40, 0x38, 0x50, 0x38, 0x38, 0x28, 0x1F, 0x32, 0x0A, 0x0B, 0x0A, 0x2E, + 0x42, 0x21, 0x1C, 0x1D, 0x2F, 0x21, 0x09, 0x07, 0xF6, 0x06, 0x06, 0x15, 0x32, 0x11, 0x15, 0x1D, 0x1D, 0x15, 0x10, 0x33, 0x15, 0x06, 0x06, 0x15, 0x32, + 0x11, 0x15, 0x1D, 0x1D, 0x15, 0x10, 0x33, 0x15, 0x06, 0x06, 0x15, 0x32, 0x11, 0x15, 0x1D, 0x1D, 0x15, 0x10, 0x33, 0x00, 0x00, 0x00, 0x00, 0x06, 0xFF, + 0xFE, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x0D, 0x00, 0x1B, 0x00, 0x29, 0x00, 0x37, 0x00, 0x45, 0x00, 0x63, 0x00, 0x00, 0x36, 0x1E, 0x01, 0x0F, + 0x01, 0x06, 0x23, 0x22, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x36, 0x26, + 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x36, 0x24, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x2E, 0x01, 0x3F, + 0x01, 0x36, 0x26, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x36, 0x37, 0x32, 0x16, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x35, 0x34, 0x36, 0x37, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x3A, 0x01, 0xB2, 0x0C, 0x03, 0x03, + 0x40, 0x05, 0x09, 0x04, 0x04, 0x06, 0x03, 0x03, 0x40, 0x03, 0x6D, 0x0C, 0x03, 0x03, 0x40, 0x05, 0x09, 0x04, 0x04, 0x06, 0x03, 0x03, 0x40, 0x03, 0xB3, + 0x0C, 0x03, 0x03, 0x40, 0x05, 0x09, 0x04, 0x04, 0x06, 0x03, 0x03, 0x40, 0x03, 0x01, 0x8D, 0x0C, 0x03, 0x03, 0x40, 0x05, 0x09, 0x04, 0x04, 0x06, 0x03, + 0x03, 0x40, 0x03, 0x53, 0x0C, 0x03, 0x03, 0x40, 0x05, 0x09, 0x04, 0x04, 0x06, 0x03, 0x03, 0x40, 0x03, 0x3B, 0x28, 0x38, 0x38, 0x28, 0xFE, 0xC0, 0x28, + 0x38, 0x25, 0x1D, 0x02, 0x42, 0x2E, 0x20, 0x35, 0x0E, 0x18, 0x25, 0x21, 0x2F, 0x02, 0x01, 0x01, 0x51, 0x06, 0x0D, 0x06, 0x70, 0x08, 0x02, 0x03, 0x0D, + 0x06, 0x70, 0x06, 0x03, 0x06, 0x0D, 0x06, 0x70, 0x08, 0x02, 0x03, 0x0D, 0x06, 0x70, 0x06, 0x03, 0x06, 0x0D, 0x06, 0x70, 0x08, 0x02, 0x03, 0x0D, 0x06, + 0x70, 0x06, 0x03, 0x06, 0x0D, 0x06, 0x70, 0x08, 0x02, 0x03, 0x0D, 0x06, 0x70, 0x06, 0x03, 0x06, 0x0D, 0x06, 0x70, 0x08, 0x02, 0x03, 0x0D, 0x06, 0x70, + 0x06, 0xF2, 0x38, 0x50, 0x38, 0x38, 0x28, 0x1F, 0x32, 0x0A, 0x0B, 0x0A, 0x2E, 0x42, 0x21, 0x1C, 0x1D, 0x2F, 0x21, 0x09, 0x07, 0x00, 0x00, 0x07, 0xFF, + 0xFF, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC1, 0x00, 0x19, 0x00, 0x44, 0x00, 0x4F, 0x00, 0x5C, 0x00, 0x69, 0x00, 0x76, 0x00, 0x83, 0x00, 0x00, 0x25, 0x1E, + 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x3C, 0x01, 0x31, 0x34, 0x36, 0x33, 0x32, 0x17, 0x36, 0x33, 0x32, 0x16, 0x05, + 0x16, 0x17, 0x06, 0x15, 0x14, 0x16, 0x31, 0x07, 0x06, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x1F, 0x01, 0x37, 0x36, 0x32, + 0x1F, 0x01, 0x37, 0x36, 0x16, 0x0F, 0x01, 0x30, 0x22, 0x31, 0x22, 0x07, 0x26, 0x06, 0x07, 0x06, 0x14, 0x37, 0x06, 0x07, 0x26, 0x35, 0x34, 0x36, 0x33, + 0x32, 0x17, 0x06, 0x05, 0x16, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x26, 0x3F, 0x01, 0x3E, 0x01, 0x07, 0x16, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x26, + 0x3F, 0x01, 0x3E, 0x01, 0x07, 0x16, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x26, 0x3F, 0x01, 0x3E, 0x01, 0x07, 0x16, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, + 0x26, 0x3F, 0x01, 0x3E, 0x01, 0x01, 0xFE, 0x1D, 0x25, 0x2F, 0x21, 0xFF, 0x00, 0x21, 0x2F, 0x24, 0x1C, 0x38, 0x28, 0x31, 0x1D, 0x10, 0x12, 0x1D, 0x2C, + 0xFE, 0x83, 0x03, 0x07, 0x06, 0x01, 0x3B, 0x08, 0x0B, 0x02, 0x19, 0x47, 0x07, 0x07, 0x47, 0x19, 0x02, 0x0B, 0x08, 0x4B, 0x23, 0x04, 0x10, 0x04, 0x23, + 0x4B, 0x08, 0x0B, 0x02, 0x09, 0x02, 0x25, 0x20, 0x1C, 0x49, 0x1A, 0x1C, 0x62, 0x1B, 0x12, 0x15, 0x26, 0x1A, 0x12, 0x10, 0x1A, 0x01, 0x44, 0x0E, 0x08, + 0x24, 0x05, 0x09, 0x04, 0x04, 0x0E, 0x08, 0x25, 0x03, 0x0D, 0x5B, 0x0E, 0x08, 0x24, 0x05, 0x09, 0x04, 0x04, 0x0E, 0x08, 0x25, 0x03, 0x0D, 0x5B, 0x0E, + 0x08, 0x24, 0x05, 0x09, 0x04, 0x04, 0x0E, 0x08, 0x25, 0x03, 0x0D, 0x5B, 0x0E, 0x08, 0x24, 0x05, 0x09, 0x04, 0x04, 0x0E, 0x08, 0x25, 0x03, 0x0D, 0xDE, + 0x05, 0x2C, 0x1D, 0x21, 0x2F, 0x2F, 0x21, 0x1D, 0x2C, 0x05, 0x01, 0x01, 0x28, 0x38, 0x28, 0x08, 0x25, 0x3F, 0x02, 0x06, 0x12, 0x12, 0x02, 0x05, 0x14, + 0x02, 0x0B, 0x08, 0x4B, 0x23, 0x04, 0x10, 0x04, 0x23, 0x4B, 0x08, 0x0B, 0x02, 0x19, 0x47, 0x07, 0x07, 0x47, 0x19, 0x02, 0x0B, 0x08, 0x1A, 0x15, 0x17, + 0x04, 0x1A, 0x1C, 0x50, 0x1E, 0x0C, 0x19, 0x13, 0x1C, 0x1A, 0x26, 0x0A, 0x1C, 0xFC, 0x08, 0x0E, 0x40, 0x08, 0x02, 0x08, 0x0E, 0x40, 0x06, 0x03, 0x03, + 0x08, 0x0E, 0x40, 0x08, 0x02, 0x08, 0x0E, 0x40, 0x06, 0x03, 0x03, 0x08, 0x0E, 0x40, 0x08, 0x02, 0x08, 0x0E, 0x40, 0x06, 0x03, 0x03, 0x08, 0x0E, 0x40, + 0x08, 0x02, 0x08, 0x0E, 0x40, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x05, 0xFF, 0xFA, 0xFF, 0xC0, 0x02, 0x87, 0x01, 0xC5, 0x00, 0x30, 0x00, 0x49, 0x00, + 0x62, 0x00, 0x7B, 0x00, 0x8F, 0x00, 0x00, 0x25, 0x16, 0x0F, 0x01, 0x06, 0x27, 0x2E, 0x06, 0x27, 0x15, 0x21, 0x27, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x2F, + 0x01, 0x26, 0x3F, 0x01, 0x36, 0x37, 0x26, 0x27, 0x2E, 0x01, 0x37, 0x36, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x17, 0x16, 0x06, 0x07, 0x17, 0x33, 0x32, 0x16, + 0x17, 0x05, 0x36, 0x26, 0x23, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x02, 0x22, 0x06, 0x1F, 0x01, 0x07, 0x14, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x36, 0x35, 0x27, + 0x37, 0x36, 0x26, 0x23, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x02, 0x22, 0x06, 0x1F, 0x01, 0x07, 0x14, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x36, 0x35, 0x27, 0x37, + 0x36, 0x26, 0x23, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x02, 0x22, 0x06, 0x1F, 0x01, 0x07, 0x14, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x36, 0x35, 0x27, 0x05, 0x35, + 0x21, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x02, 0x7D, 0x09, 0x0D, 0x1B, 0x0D, 0x09, + 0x03, 0x0A, 0x03, 0x07, 0x03, 0x05, 0x05, 0x04, 0xFE, 0xA0, 0x36, 0x26, 0x0A, 0x0D, 0x1F, 0x13, 0x09, 0x0F, 0x08, 0x0B, 0x4B, 0x01, 0x05, 0x08, 0x03, + 0x0C, 0x03, 0x09, 0x05, 0x07, 0x2B, 0x2A, 0x03, 0x0A, 0x02, 0x0C, 0x04, 0x0F, 0x51, 0xEC, 0x26, 0x43, 0x15, 0xFE, 0xBE, 0x02, 0x01, 0x03, 0x17, 0x0A, + 0x02, 0x06, 0x01, 0x0B, 0x16, 0x03, 0x02, 0x02, 0x10, 0x04, 0x05, 0x03, 0x14, 0x14, 0x03, 0x05, 0x04, 0x80, 0x02, 0x01, 0x03, 0x17, 0x0A, 0x02, 0x06, + 0x01, 0x0B, 0x16, 0x03, 0x02, 0x02, 0x10, 0x04, 0x05, 0x03, 0x14, 0x14, 0x03, 0x05, 0x04, 0x80, 0x02, 0x01, 0x03, 0x17, 0x0A, 0x02, 0x06, 0x01, 0x0B, + 0x16, 0x03, 0x02, 0x02, 0x10, 0x04, 0x05, 0x03, 0x14, 0x14, 0x03, 0x05, 0x04, 0xFE, 0xC8, 0x01, 0x60, 0x09, 0x07, 0x40, 0x07, 0x09, 0xA0, 0x09, 0x07, + 0x40, 0x07, 0x09, 0xBF, 0x0D, 0x09, 0x12, 0x09, 0x0E, 0x04, 0x0F, 0x05, 0x0A, 0x03, 0x06, 0x04, 0x03, 0x4E, 0x6C, 0x23, 0x09, 0x12, 0x1C, 0x12, 0x10, + 0x63, 0x01, 0x04, 0x05, 0x03, 0x0C, 0x23, 0x0D, 0x09, 0x07, 0x2B, 0x2A, 0x03, 0x01, 0x04, 0x11, 0x2A, 0x0F, 0x51, 0x24, 0x20, 0x0F, 0x02, 0x06, 0x03, + 0x15, 0x03, 0x03, 0x15, 0x03, 0x06, 0x02, 0x10, 0x17, 0x03, 0x04, 0x02, 0x0A, 0x0A, 0x02, 0x04, 0x03, 0x17, 0x10, 0x02, 0x06, 0x03, 0x15, 0x03, 0x03, + 0x15, 0x03, 0x06, 0x02, 0x10, 0x17, 0x03, 0x04, 0x02, 0x0A, 0x0A, 0x02, 0x04, 0x03, 0x17, 0x10, 0x02, 0x06, 0x03, 0x15, 0x03, 0x03, 0x15, 0x03, 0x06, + 0x02, 0x10, 0x17, 0x03, 0x04, 0x02, 0x0A, 0x0A, 0x02, 0x04, 0x03, 0x17, 0xED, 0x90, 0x90, 0x07, 0x09, 0x09, 0x07, 0x50, 0x50, 0x07, 0x09, 0x09, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC5, 0x00, 0x0D, 0x00, 0x1F, 0x00, 0x31, 0x00, 0x53, 0x00, 0x5B, 0x00, 0x63, 0x00, 0x6B, + 0x00, 0x73, 0x00, 0x00, 0x12, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x01, 0x16, 0x33, 0x32, 0x37, 0x15, 0x14, + 0x07, 0x0E, 0x01, 0x2E, 0x01, 0x06, 0x07, 0x35, 0x3E, 0x01, 0x16, 0x37, 0x16, 0x33, 0x32, 0x37, 0x15, 0x0E, 0x01, 0x26, 0x27, 0x2E, 0x01, 0x06, 0x07, + 0x35, 0x3E, 0x01, 0x16, 0x37, 0x26, 0x27, 0x15, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x15, 0x0E, 0x01, 0x26, 0x27, 0x2E, 0x01, 0x06, 0x07, 0x35, 0x3E, + 0x01, 0x1E, 0x01, 0x36, 0x37, 0x36, 0x16, 0x1D, 0x01, 0x0E, 0x01, 0x2E, 0x01, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x13, 0x1A, 0x13, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x01, 0x2C, 0x3E, 0x26, 0x33, 0x3D, 0x12, 0x31, 0x53, 0x3F, 0x41, 0x57, 0x33, 0x2B, 0x4F, 0x2D, 0x25, 0x3E, 0x26, 0x33, 0x3D, 0x2B, + 0x4F, 0x2D, 0x25, 0x26, 0x2E, 0x54, 0x2C, 0x2B, 0x4F, 0x2D, 0x2E, 0x0C, 0x09, 0x05, 0x07, 0x35, 0x21, 0x36, 0x48, 0x2B, 0x4F, 0x2D, 0x25, 0x26, 0x2E, + 0x54, 0x2C, 0x3A, 0x57, 0x35, 0x32, 0x48, 0x2F, 0x11, 0x20, 0x26, 0x3B, 0x33, 0x1D, 0xB6, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, + 0x09, 0x49, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0xC0, 0x13, 0x0D, 0xFE, 0x30, 0x07, 0x09, 0x09, 0x07, 0x01, 0xD0, + 0x0D, 0xFE, 0xE3, 0x10, 0x18, 0x24, 0x15, 0x08, 0x15, 0x03, 0x13, 0x11, 0x0A, 0x19, 0x45, 0x13, 0x09, 0x07, 0x56, 0x10, 0x18, 0x3E, 0x12, 0x09, 0x07, + 0x09, 0x0A, 0x08, 0x08, 0x11, 0x3D, 0x13, 0x09, 0x07, 0x74, 0x04, 0x02, 0x21, 0x01, 0x02, 0x10, 0x1F, 0x45, 0x12, 0x09, 0x07, 0x09, 0x0A, 0x08, 0x08, + 0x11, 0x98, 0x1A, 0x09, 0x13, 0x12, 0x06, 0x18, 0x09, 0x11, 0x13, 0x1F, 0x11, 0x11, 0x01, 0x06, 0x27, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x2F, 0x09, 0x0D, + 0x0A, 0x0A, 0x0D, 0x39, 0x09, 0x0D, 0x0A, 0x0A, 0x0D, 0x2F, 0x09, 0x0D, 0x0A, 0x0A, 0x0D, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x00, 0x01, + 0xC0, 0x00, 0x25, 0x00, 0x2D, 0x00, 0x37, 0x00, 0x3F, 0x00, 0x00, 0x01, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0E, 0x01, 0x15, + 0x06, 0x22, 0x26, 0x34, 0x37, 0x32, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x02, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x27, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x15, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, + 0x01, 0xFF, 0x1D, 0x20, 0x0F, 0x04, 0x0B, 0x02, 0x4C, 0x42, 0x01, 0x02, 0x39, 0xA2, 0x72, 0x39, 0x01, 0x02, 0x01, 0x44, 0x92, 0x03, 0x04, 0x0C, 0x04, + 0x01, 0x04, 0x5B, 0x61, 0x02, 0x03, 0x07, 0x09, 0xC0, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x35, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x20, 0x09, 0x0E, 0x09, + 0x09, 0x0E, 0x01, 0xAB, 0x61, 0x5B, 0x04, 0x01, 0x04, 0x0B, 0x04, 0x04, 0x92, 0x44, 0x01, 0x02, 0x01, 0x39, 0x72, 0xA2, 0x39, 0x02, 0x01, 0x42, 0x4C, + 0x02, 0x0B, 0x03, 0x10, 0x20, 0x1D, 0x01, 0x0A, 0x06, 0x03, 0xFE, 0x9E, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0xA0, 0x0D, 0x13, 0x13, 0x1A, 0x13, 0x13, 0x0D, + 0x49, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x31, 0x00, 0x39, 0x00, + 0x4E, 0x00, 0x55, 0x00, 0x62, 0x00, 0x00, 0x17, 0x35, 0x33, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x13, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x2F, 0x01, 0x15, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x27, 0x30, 0x26, 0x35, 0x15, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x02, 0x34, + 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x26, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x37, 0x35, 0x33, 0x11, 0x14, 0x06, 0x22, 0x26, 0x35, 0x14, 0x06, + 0x23, 0x22, 0x26, 0x27, 0x06, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x27, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x23, 0x25, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x35, 0x11, 0xC0, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x0D, 0x13, 0x13, 0x0D, 0x3A, 0x13, 0x0E, 0x15, 0x29, 0x07, 0x13, 0x1B, + 0x12, 0x1E, 0x02, 0x13, 0x1A, 0x13, 0x26, 0x1A, 0x13, 0x1A, 0x13, 0x2D, 0x59, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xB0, 0xC0, 0x13, 0x1A, 0x13, 0x13, 0x0D, + 0x0D, 0x12, 0x01, 0x06, 0x1A, 0x0E, 0x15, 0x04, 0x1F, 0x80, 0x13, 0x0D, 0x20, 0x40, 0x01, 0x60, 0x0D, 0x13, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, 0xB0, + 0xB0, 0x07, 0x09, 0x09, 0x01, 0x17, 0x13, 0x1A, 0x13, 0x0E, 0x15, 0x51, 0x3D, 0x0D, 0x10, 0x38, 0x0D, 0x13, 0x13, 0x0D, 0x38, 0x2B, 0x01, 0x01, 0x65, + 0x0D, 0x13, 0x13, 0x0D, 0xA0, 0x60, 0x1A, 0x26, 0x13, 0x2D, 0x60, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x44, 0x20, 0xFE, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x0D, + 0x13, 0x12, 0x0C, 0x1E, 0x17, 0x0F, 0x9B, 0xDF, 0x0D, 0x13, 0xC0, 0xC0, 0x13, 0x0D, 0xFE, 0x30, 0x07, 0x09, 0x09, 0x07, 0x01, 0xF0, 0x00, 0x02, 0x00, + 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x16, 0x00, 0x4C, 0x00, 0x00, 0x25, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x23, + 0x22, 0x26, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x37, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x37, 0x36, 0x27, 0x26, 0x2B, 0x01, + 0x37, 0x36, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x0F, 0x01, 0x15, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x26, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x36, + 0x35, 0x34, 0x27, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x32, 0x16, 0x15, 0x14, 0x01, 0x34, 0x07, 0x07, 0x04, 0x58, 0x03, 0x07, 0x06, 0x07, + 0x01, 0x17, 0x3B, 0x05, 0x08, 0x01, 0x10, 0x02, 0x0A, 0x44, 0x06, 0x07, 0x01, 0x12, 0x7C, 0x1F, 0x2B, 0x2F, 0x21, 0x1E, 0x08, 0x0D, 0x0D, 0x0D, 0x19, + 0x10, 0x06, 0x06, 0x1A, 0x16, 0x44, 0x10, 0x19, 0x03, 0x10, 0x30, 0x21, 0x2F, 0x2B, 0x1F, 0x0A, 0x26, 0x1A, 0x10, 0x21, 0x2F, 0x0F, 0x09, 0x06, 0x28, + 0x38, 0x06, 0x06, 0x1A, 0x26, 0x70, 0x0C, 0x06, 0x98, 0x06, 0x09, 0x06, 0x61, 0x08, 0x06, 0x78, 0x0A, 0x09, 0x06, 0x41, 0x6F, 0x02, 0x2E, 0x1F, 0x21, + 0x2F, 0x0E, 0x16, 0x16, 0x16, 0x19, 0x15, 0x22, 0x16, 0x10, 0x78, 0x02, 0x2F, 0x21, 0x1F, 0x2E, 0x02, 0x10, 0x11, 0x1A, 0x26, 0x2F, 0x21, 0x19, 0x15, + 0x02, 0x38, 0x28, 0x0F, 0x11, 0x26, 0x1A, 0x11, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x40, 0x01, 0xA5, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x59, + 0x00, 0x00, 0x01, 0x36, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x27, 0x26, 0x06, 0x1D, 0x01, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x17, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x26, 0x27, 0x26, + 0x06, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x17, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x01, 0x0C, 0x53, 0x8E, 0x53, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x6F, 0x53, 0x66, 0x98, 0x09, 0x07, 0x20, 0x07, 0x09, 0x9B, 0x6C, 0x57, 0x82, 0x09, 0x07, 0x20, 0x07, 0x09, 0x42, 0x31, 0x39, 0x54, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x5F, 0x4E, 0x2D, 0x46, 0x09, 0x07, 0x20, 0x07, 0x09, 0x13, 0x1A, 0x13, 0x09, 0x07, 0x20, 0x07, 0x09, 0x2B, 0x01, 0x9F, 0x06, + 0x4B, 0x89, 0x51, 0x90, 0x07, 0x09, 0x09, 0x07, 0x88, 0x56, 0x85, 0x0B, 0x0D, 0x86, 0x65, 0x90, 0x07, 0x09, 0x09, 0x07, 0x86, 0x74, 0xAE, 0x5A, 0x0C, + 0x74, 0x56, 0x90, 0x07, 0x09, 0x09, 0x07, 0x8A, 0x33, 0x4E, 0x04, 0x06, 0x4D, 0x38, 0x90, 0x07, 0x09, 0x09, 0x07, 0x89, 0x4A, 0x72, 0x57, 0x09, 0x3A, + 0x2D, 0x90, 0x07, 0x09, 0x09, 0x07, 0x90, 0x0D, 0x13, 0x13, 0x0D, 0x90, 0x07, 0x09, 0x09, 0x07, 0x8C, 0x23, 0x39, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, + 0xDC, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x09, 0x00, 0x22, 0x00, 0x3B, 0x00, 0x54, 0x00, 0x7F, 0x00, 0x00, 0x01, 0x15, 0x21, 0x35, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x05, 0x36, 0x26, 0x2F, 0x02, 0x26, 0x22, 0x0F, 0x02, 0x0E, 0x01, 0x1F, 0x01, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x36, 0x2F, 0x01, + 0x37, 0x36, 0x26, 0x2F, 0x02, 0x26, 0x22, 0x0F, 0x02, 0x0E, 0x01, 0x1F, 0x01, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x36, 0x2F, 0x01, 0x37, 0x36, + 0x26, 0x2F, 0x02, 0x26, 0x22, 0x0F, 0x02, 0x0E, 0x01, 0x1F, 0x01, 0x07, 0x06, 0x16, 0x3F, 0x01, 0x17, 0x16, 0x36, 0x2F, 0x01, 0x17, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x27, 0x2E, 0x01, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x02, 0x20, 0xFD, 0xE0, 0x5E, 0x42, 0xE0, 0x42, 0x5E, 0xFE, 0x90, + 0x03, 0x02, 0x04, 0x1B, 0x0D, 0x01, 0x08, 0x01, 0x0D, 0x1B, 0x04, 0x02, 0x03, 0x14, 0x05, 0x01, 0x06, 0x04, 0x18, 0x18, 0x04, 0x06, 0x01, 0x05, 0xA4, + 0x03, 0x02, 0x04, 0x1B, 0x0D, 0x01, 0x08, 0x01, 0x0D, 0x1B, 0x04, 0x02, 0x03, 0x14, 0x05, 0x01, 0x06, 0x04, 0x18, 0x18, 0x04, 0x06, 0x01, 0x05, 0xA4, + 0x03, 0x02, 0x04, 0x1B, 0x0D, 0x01, 0x08, 0x01, 0x0D, 0x1B, 0x04, 0x02, 0x03, 0x14, 0x05, 0x01, 0x06, 0x04, 0x18, 0x18, 0x04, 0x06, 0x01, 0x05, 0xB4, + 0x07, 0x09, 0x35, 0x23, 0x1F, 0x29, 0x20, 0x09, 0x07, 0x60, 0x07, 0x09, 0xC0, 0x09, 0x07, 0x60, 0x07, 0x09, 0x02, 0x20, 0x09, 0x0E, 0x09, 0x09, 0x07, + 0x01, 0x00, 0x40, 0x40, 0x42, 0x5E, 0x5E, 0x2C, 0x02, 0x07, 0x01, 0x04, 0x19, 0x03, 0x03, 0x19, 0x04, 0x01, 0x07, 0x02, 0x14, 0x1B, 0x04, 0x04, 0x02, + 0x0D, 0x0D, 0x02, 0x04, 0x04, 0x1B, 0x14, 0x02, 0x07, 0x01, 0x04, 0x19, 0x03, 0x03, 0x19, 0x04, 0x01, 0x07, 0x02, 0x14, 0x1B, 0x04, 0x04, 0x02, 0x0D, + 0x0D, 0x02, 0x04, 0x04, 0x1B, 0x14, 0x02, 0x07, 0x01, 0x04, 0x19, 0x03, 0x03, 0x19, 0x04, 0x01, 0x07, 0x02, 0x14, 0x1B, 0x04, 0x04, 0x02, 0x0D, 0x0D, + 0x02, 0x04, 0x04, 0x1B, 0x82, 0x09, 0x07, 0x40, 0x23, 0x30, 0x03, 0x04, 0x31, 0x20, 0x2B, 0x70, 0x07, 0x09, 0x09, 0x07, 0x50, 0x50, 0x07, 0x09, 0x09, + 0x07, 0xB0, 0x70, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x0F, + 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x47, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x27, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x36, 0x33, 0x32, 0x16, 0x17, 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, + 0x2B, 0x01, 0x06, 0x22, 0x27, 0x02, 0x70, 0x07, 0x09, 0x09, 0x07, 0xFD, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, + 0x09, 0x07, 0x02, 0x20, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xB0, 0x07, 0x09, 0x09, 0x07, 0x50, 0x3C, 0x54, 0x54, 0x3C, 0x3D, 0x2B, 0x2B, 0x3D, 0x28, 0x44, + 0x12, 0x18, 0x1A, 0x2E, 0x42, 0x42, 0x2E, 0x3C, 0x25, 0x5E, 0x25, 0x50, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x60, 0x09, 0x07, + 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0xB0, 0x54, 0x78, 0x54, 0x2D, 0x2D, 0x2A, + 0x22, 0x0C, 0x42, 0x5C, 0x42, 0x20, 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1F, + 0x00, 0x2F, 0x00, 0x41, 0x00, 0x00, 0x00, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x07, 0x15, 0x16, + 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x34, 0x36, 0x32, 0x16, 0x02, 0x32, 0x36, 0x35, 0x34, 0x27, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, + 0x01, 0x06, 0x15, 0x14, 0x37, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x01, 0x78, 0x50, + 0x38, 0x38, 0x50, 0x38, 0x53, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x80, 0x20, 0x54, 0x78, 0x54, 0x20, 0x42, 0x5C, 0x42, 0x91, 0x42, 0x2F, 0x20, 0x1C, 0x28, + 0x1C, 0x20, 0x60, 0x0E, 0x12, 0x1C, 0x28, 0x1C, 0x12, 0x0E, 0x09, 0x0E, 0x09, 0x01, 0xC0, 0x38, 0x50, 0x38, 0x38, 0x50, 0x48, 0x13, 0x1A, 0x13, 0x13, + 0x1A, 0x03, 0xA6, 0x28, 0x32, 0x3C, 0x54, 0x54, 0x3C, 0x31, 0x29, 0xA6, 0x2E, 0x42, 0x42, 0xFE, 0x82, 0x2F, 0x21, 0x28, 0x18, 0xC0, 0x14, 0x1C, 0x1C, + 0x14, 0xC0, 0x18, 0x28, 0x21, 0x4E, 0x05, 0x19, 0x0F, 0x14, 0x1C, 0x1C, 0x14, 0x0F, 0x19, 0x05, 0xD3, 0x07, 0x09, 0x09, 0x07, 0x00, 0x00, 0x05, 0x00, + 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x41, 0x00, 0x00, 0x00, 0x32, 0x16, 0x14, 0x06, 0x22, + 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x07, 0x15, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x35, 0x34, 0x36, 0x32, + 0x16, 0x02, 0x32, 0x36, 0x35, 0x34, 0x27, 0x35, 0x34, 0x26, 0x22, 0x06, 0x1D, 0x01, 0x06, 0x15, 0x14, 0x37, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, + 0x35, 0x34, 0x36, 0x37, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x01, 0x78, 0x50, 0x38, 0x38, 0x50, 0x38, 0x53, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x80, 0x20, + 0x54, 0x78, 0x54, 0x20, 0x42, 0x5C, 0x42, 0x91, 0x42, 0x2F, 0x20, 0x1C, 0x28, 0x1C, 0x20, 0x60, 0x0E, 0x12, 0x1C, 0x28, 0x1C, 0x12, 0x0E, 0x09, 0x0E, + 0x09, 0x01, 0xC0, 0x38, 0x50, 0x38, 0x38, 0x50, 0x48, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x03, 0xA6, 0x28, 0x32, 0x3C, 0x54, 0x54, 0x3C, 0x31, 0x29, 0xA6, + 0x2E, 0x42, 0x42, 0xFE, 0x82, 0x2F, 0x21, 0x28, 0x18, 0xC0, 0x14, 0x1C, 0x1C, 0x14, 0xC0, 0x18, 0x28, 0x21, 0x4E, 0x05, 0x19, 0x0F, 0x14, 0x1C, 0x1C, + 0x14, 0x0F, 0x19, 0x05, 0x13, 0x07, 0x09, 0x09, 0x07, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x1F, 0x00, 0x29, 0x00, + 0x39, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x15, 0x23, 0x22, 0x1D, 0x01, + 0x14, 0x33, 0x21, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x35, 0x07, 0x21, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x15, 0x05, 0x06, 0x1F, 0x01, 0x16, + 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x27, 0x26, 0x07, 0x02, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0xFD, 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x16, + 0x0A, 0x0A, 0x01, 0xEC, 0x0A, 0x0A, 0x16, 0x20, 0xFE, 0x80, 0x13, 0x0D, 0x01, 0x40, 0x0D, 0x13, 0xFE, 0xD3, 0x07, 0x07, 0x4A, 0x08, 0x07, 0x81, 0x08, + 0x08, 0x19, 0x08, 0x08, 0x5F, 0x29, 0x08, 0x07, 0x80, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x60, 0x0D, 0x13, 0x40, 0x08, 0x10, 0x08, 0x08, 0x10, + 0x08, 0x40, 0x40, 0x01, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x8A, 0x08, 0x07, 0x4B, 0x08, 0x08, 0x7F, 0x08, 0x07, 0x1A, 0x08, 0x08, 0x5E, 0x29, 0x08, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xFF, 0x02, 0x40, 0x01, 0x81, 0x00, 0x2A, 0x00, 0x55, 0x00, 0x80, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x1D, + 0x01, 0x14, 0x06, 0x23, 0x26, 0x27, 0x06, 0x22, 0x27, 0x06, 0x22, 0x27, 0x06, 0x07, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x37, 0x36, 0x37, 0x3E, 0x01, + 0x17, 0x1E, 0x01, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x37, 0x36, 0x32, 0x17, 0x16, 0x37, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x26, 0x27, 0x06, + 0x22, 0x27, 0x06, 0x22, 0x27, 0x06, 0x07, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x37, 0x36, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x37, 0x3E, 0x01, 0x17, + 0x1E, 0x01, 0x37, 0x36, 0x32, 0x17, 0x16, 0x37, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x26, 0x27, 0x06, 0x22, 0x27, 0x06, 0x22, 0x27, 0x06, 0x07, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x37, 0x36, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x37, 0x36, 0x32, 0x17, 0x16, + 0x02, 0x32, 0x06, 0x08, 0x0A, 0x07, 0x2B, 0x24, 0x29, 0x6C, 0x2B, 0x29, 0x6C, 0x2B, 0x23, 0x2C, 0x07, 0x0A, 0x08, 0x06, 0x21, 0x18, 0x0B, 0x1A, 0x0A, + 0x1D, 0x58, 0x1D, 0x0A, 0x1A, 0x0A, 0x1D, 0x59, 0x1C, 0x0B, 0x1B, 0x0A, 0x19, 0x21, 0x06, 0x08, 0x0A, 0x07, 0x2B, 0x24, 0x29, 0x6C, 0x2B, 0x29, 0x6C, + 0x2B, 0x23, 0x2C, 0x07, 0x0A, 0x08, 0x06, 0x21, 0x18, 0x0B, 0x1A, 0x0A, 0x1D, 0x58, 0x1D, 0x0A, 0x1A, 0x0A, 0x1D, 0x59, 0x1C, 0x0B, 0x1B, 0x0A, 0x19, + 0x21, 0x06, 0x08, 0x0A, 0x07, 0x2B, 0x24, 0x29, 0x6C, 0x2B, 0x29, 0x6C, 0x2B, 0x23, 0x2C, 0x07, 0x0A, 0x08, 0x06, 0x21, 0x18, 0x0B, 0x1A, 0x0A, 0x1D, + 0x58, 0x1D, 0x0A, 0x1A, 0x0A, 0x1D, 0x59, 0x1C, 0x0B, 0x1B, 0x0A, 0x18, 0x40, 0x01, 0x09, 0x06, 0x20, 0x07, 0x09, 0x04, 0x16, 0x1A, 0x1A, 0x1A, 0x1A, + 0x16, 0x04, 0x09, 0x07, 0x20, 0x06, 0x09, 0x01, 0x04, 0x12, 0x09, 0x02, 0x09, 0x17, 0x01, 0x17, 0x08, 0x02, 0x09, 0x17, 0x01, 0x17, 0x08, 0x08, 0x13, + 0x8C, 0x01, 0x09, 0x06, 0x20, 0x07, 0x09, 0x04, 0x16, 0x1A, 0x1A, 0x1A, 0x1A, 0x16, 0x04, 0x09, 0x07, 0x20, 0x06, 0x09, 0x01, 0x04, 0x12, 0x09, 0x02, + 0x09, 0x17, 0x01, 0x17, 0x08, 0x02, 0x09, 0x17, 0x01, 0x17, 0x08, 0x08, 0x13, 0x8C, 0x01, 0x09, 0x06, 0x20, 0x07, 0x09, 0x04, 0x16, 0x1A, 0x1A, 0x1A, + 0x1A, 0x16, 0x04, 0x09, 0x07, 0x20, 0x06, 0x09, 0x01, 0x04, 0x12, 0x09, 0x02, 0x09, 0x17, 0x01, 0x17, 0x08, 0x02, 0x09, 0x17, 0x01, 0x17, 0x08, 0x08, + 0x13, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFD, 0xFF, 0xC0, 0x01, 0x83, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x16, 0x00, 0x25, 0x00, 0x3D, 0x00, 0x00, 0x12, + 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x03, 0x17, 0x16, 0x06, 0x07, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x17, 0x37, 0x17, 0x16, + 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x27, 0x36, 0x16, 0x06, 0x0F, 0x01, 0x06, 0x07, 0x15, 0x23, 0x35, 0x26, 0x2F, 0x01, + 0x2E, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x16, 0x32, 0x3F, 0x01, 0x36, 0xE1, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x85, 0x1D, 0x0A, 0x05, 0x0D, 0x0B, 0x0D, 0x14, + 0x0C, 0x30, 0x08, 0x09, 0x2E, 0x3D, 0x75, 0x2E, 0x09, 0x08, 0x30, 0x0C, 0x14, 0x0D, 0x0B, 0x0D, 0x05, 0x0A, 0x1D, 0x19, 0x93, 0x13, 0x05, 0x0E, 0x29, + 0x17, 0x1F, 0xA0, 0x1F, 0x17, 0x29, 0x0E, 0x05, 0x13, 0x20, 0x0E, 0x29, 0x27, 0x62, 0x27, 0x29, 0x0E, 0x01, 0x20, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0xFE, + 0xD8, 0x27, 0x0D, 0x21, 0x0A, 0x08, 0x10, 0x40, 0x0B, 0x1B, 0x0B, 0x39, 0x33, 0x33, 0x39, 0x0B, 0x1B, 0x0B, 0x40, 0x10, 0x08, 0x0A, 0x21, 0x0D, 0x27, + 0x20, 0xF6, 0x1C, 0x20, 0x0A, 0x1C, 0x11, 0x0B, 0x1F, 0x1F, 0x0B, 0x11, 0x1C, 0x0A, 0x20, 0x1C, 0x05, 0x09, 0x1D, 0x1B, 0x1B, 0x1D, 0x09, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC3, 0x00, 0x07, 0x00, 0x31, 0x00, 0x39, 0x00, 0x41, 0x00, 0x00, 0x13, 0x17, 0x21, 0x34, 0x36, + 0x37, 0x36, 0x16, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x07, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, + 0x06, 0x22, 0x27, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x26, 0x35, 0x21, 0x35, 0x34, 0x36, 0x33, 0x00, 0x32, 0x36, 0x34, 0x26, + 0x22, 0x06, 0x14, 0x20, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x91, 0x6F, 0xFF, 0x00, 0x30, 0x2B, 0x0C, 0x21, 0x01, 0x68, 0x07, 0x09, 0x09, 0x07, + 0x30, 0x3C, 0x1A, 0x22, 0x2F, 0x42, 0x2F, 0x04, 0x21, 0x46, 0x21, 0x04, 0x2F, 0x42, 0x2F, 0x22, 0x1A, 0x3C, 0x01, 0x80, 0x26, 0x1A, 0xFE, 0x83, 0x1A, + 0x13, 0x13, 0x1A, 0x13, 0x01, 0x60, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x01, 0xAF, 0xAF, 0x36, 0x60, 0x22, 0x0A, 0x06, 0x5C, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x40, 0x4B, 0x38, 0x06, 0x2B, 0x1C, 0x21, 0x2F, 0x2F, 0x21, 0x0C, 0x0D, 0x09, 0x09, 0x0D, 0x0C, 0x21, 0x2F, 0x2F, 0x21, 0x1C, 0x2B, 0x06, 0x38, 0x4B, + 0x40, 0x1A, 0x26, 0xFE, 0x90, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x00, 0x00, 0x00, 0x05, 0xFF, 0xFE, 0xFF, 0xB6, 0x02, 0x42, + 0x01, 0xC3, 0x00, 0x0A, 0x00, 0x15, 0x00, 0x20, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x00, 0x01, 0x22, 0x07, 0x26, 0x27, 0x36, 0x32, 0x17, 0x06, 0x07, 0x26, + 0x03, 0x2E, 0x01, 0x27, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x06, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x0E, 0x01, 0x07, 0x26, 0x37, 0x16, 0x17, + 0x16, 0x06, 0x27, 0x26, 0x27, 0x26, 0x0E, 0x01, 0x16, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x27, 0x26, 0x34, + 0x37, 0x36, 0x37, 0x3E, 0x01, 0x2E, 0x01, 0x07, 0x06, 0x07, 0x06, 0x26, 0x37, 0x36, 0x37, 0x36, 0x37, 0x26, 0x35, 0x34, 0x37, 0x36, 0x16, 0x07, 0x06, + 0x15, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x36, 0x17, 0x16, 0x15, 0x14, 0x07, 0x16, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, + 0x20, 0x19, 0x1C, 0x14, 0x09, 0x27, 0x56, 0x27, 0x09, 0x14, 0x1C, 0x95, 0x25, 0x2C, 0x03, 0x0B, 0x0C, 0x0C, 0x0E, 0x06, 0x35, 0x06, 0xCE, 0x34, 0x06, + 0x0F, 0x0C, 0x0B, 0x0B, 0x03, 0x2C, 0x24, 0x12, 0x6B, 0x36, 0x14, 0x03, 0x0C, 0x04, 0x0E, 0x0F, 0x2B, 0x60, 0x32, 0x1A, 0x2B, 0x0F, 0x14, 0x07, 0x07, + 0x3D, 0x36, 0x19, 0x14, 0x14, 0x19, 0x36, 0x3E, 0x06, 0x06, 0x15, 0x0F, 0x2B, 0x1A, 0x32, 0x60, 0x2B, 0x0F, 0x0E, 0x04, 0x0C, 0x02, 0x15, 0x36, 0x18, + 0x1F, 0x0A, 0x29, 0x04, 0x0C, 0x02, 0x07, 0x46, 0x64, 0x46, 0x07, 0x02, 0x0C, 0x04, 0x29, 0x0A, 0x1F, 0xD1, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0x50, + 0x0A, 0x10, 0x19, 0x11, 0x11, 0x19, 0x10, 0x0A, 0xFE, 0xB9, 0x1B, 0x50, 0x2F, 0x03, 0x05, 0x43, 0x2A, 0x19, 0x19, 0x2A, 0x43, 0x05, 0x03, 0x2F, 0x50, + 0x1B, 0x12, 0xE6, 0x20, 0x3D, 0x06, 0x07, 0x05, 0x10, 0x09, 0x1A, 0x1B, 0x58, 0x62, 0x1A, 0x09, 0x04, 0x01, 0x0E, 0x01, 0x0C, 0x20, 0x0F, 0x19, 0x19, + 0x0F, 0x20, 0x0C, 0x01, 0x0E, 0x01, 0x05, 0x08, 0x1A, 0x62, 0x58, 0x1B, 0x1A, 0x08, 0x11, 0x05, 0x07, 0x06, 0x3D, 0x20, 0x0E, 0x06, 0x1D, 0x1B, 0x3F, + 0x31, 0x05, 0x06, 0x07, 0x14, 0x12, 0x33, 0x48, 0x48, 0x33, 0x12, 0x14, 0x07, 0x06, 0x05, 0x30, 0x40, 0x1B, 0x1D, 0x06, 0x8F, 0x1C, 0x28, 0x1C, 0x1C, + 0x28, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xB4, 0x02, 0x01, 0x01, 0xC0, 0x00, 0x1F, 0x00, 0x33, 0x00, 0x47, 0x00, 0x00, 0x37, 0x1E, 0x01, 0x07, + 0x0E, 0x01, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x37, 0x1E, 0x01, 0x17, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x2E, 0x01, 0x27, 0x2E, 0x01, 0x3D, 0x01, 0x34, 0x36, 0x17, 0x1E, + 0x01, 0x17, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x2E, 0x01, 0x27, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0xAC, 0x3A, 0x44, 0x0D, 0x09, 0x3C, 0x29, + 0x45, 0x6A, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x1C, 0x28, 0x1C, 0x11, 0x0E, 0x11, 0x11, 0x30, 0x7A, 0xAF, 0x06, 0x09, 0x07, 0x20, 0x07, 0x09, 0x06, 0x8A, + 0x61, 0x06, 0x09, 0x0A, 0x07, 0x53, 0x76, 0x06, 0x09, 0x07, 0x20, 0x07, 0x09, 0x05, 0x53, 0x39, 0x06, 0x09, 0x0A, 0xDD, 0x0B, 0x64, 0x3D, 0x29, 0x3C, + 0x09, 0x0E, 0x57, 0x44, 0xF8, 0x0A, 0x0E, 0x0E, 0x0A, 0xF8, 0x14, 0x1C, 0x1C, 0x14, 0x0F, 0x19, 0x05, 0x06, 0x10, 0x32, 0x0C, 0x0E, 0xE1, 0x06, 0xAF, + 0x7A, 0x07, 0x0A, 0x09, 0x06, 0x61, 0x8B, 0x05, 0x01, 0x09, 0x06, 0x20, 0x07, 0x09, 0x60, 0x06, 0x76, 0x53, 0x07, 0x0A, 0x08, 0x07, 0x3A, 0x52, 0x05, + 0x0A, 0x06, 0x20, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x19, 0x00, 0x37, 0x00, 0x00, + 0x15, 0x11, 0x21, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x37, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, + 0x06, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x21, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x40, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, + 0x01, 0x50, 0x14, 0x1C, 0xFE, 0x40, 0x1C, 0x14, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x10, 0x01, 0x10, 0xFE, 0xF0, + 0x14, 0x1C, 0x1C, 0xD4, 0x60, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0xC9, 0x1C, 0x14, 0x30, 0x30, 0x14, 0x1C, 0x30, 0x07, 0x09, 0x09, 0x07, + 0x30, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x09, 0x00, 0x19, 0x00, 0x37, + 0x00, 0x00, 0x15, 0x11, 0x21, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x37, 0x15, 0x14, 0x16, 0x33, 0x21, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x23, + 0x21, 0x22, 0x06, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x21, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x35, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x01, 0xC0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x40, 0x09, 0x07, 0x01, 0x20, 0x07, 0x09, 0x09, 0x07, + 0xFE, 0xE0, 0x07, 0x09, 0x01, 0x50, 0x14, 0x1C, 0xFE, 0x40, 0x1C, 0x14, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x10, + 0x01, 0x10, 0xFE, 0xF0, 0x14, 0x1C, 0x1C, 0xD4, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0xC9, 0x1C, 0x14, 0x30, 0x30, 0x14, 0x1C, 0x30, + 0x07, 0x09, 0x09, 0x07, 0x30, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x00, 0x07, 0xFF, 0xFD, 0xFF, 0xC0, 0x02, 0x0C, 0x01, 0xC0, 0x00, 0x22, 0x00, 0x29, + 0x00, 0x2D, 0x00, 0x31, 0x00, 0x35, 0x00, 0x3B, 0x00, 0x43, 0x00, 0x00, 0x01, 0x16, 0x06, 0x07, 0x05, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x37, + 0x25, 0x3E, 0x01, 0x27, 0x26, 0x23, 0x22, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x16, 0x07, 0x36, 0x37, + 0x27, 0x06, 0x07, 0x17, 0x03, 0x37, 0x27, 0x07, 0x3F, 0x01, 0x27, 0x07, 0x3F, 0x01, 0x27, 0x07, 0x37, 0x16, 0x17, 0x37, 0x26, 0x27, 0x17, 0x36, 0x37, + 0x27, 0x14, 0x07, 0x06, 0x07, 0x01, 0xF2, 0x1A, 0x29, 0x36, 0xFE, 0xA4, 0x08, 0x08, 0x12, 0x0A, 0x20, 0x07, 0x06, 0x0C, 0x01, 0x61, 0x0C, 0x06, 0x07, + 0x09, 0x12, 0x09, 0x08, 0x1B, 0x08, 0x09, 0x12, 0x09, 0x21, 0x07, 0x07, 0x0B, 0x1C, 0x25, 0x2C, 0x2E, 0x4F, 0x9D, 0x0C, 0x10, 0x15, 0x10, 0x0E, 0x14, + 0xAB, 0x1F, 0x3D, 0x1F, 0xA8, 0x1F, 0x3C, 0x1F, 0xAB, 0x1F, 0x3C, 0x1F, 0x51, 0x0E, 0x09, 0x2D, 0x0A, 0x0C, 0x24, 0x07, 0x03, 0x3D, 0x01, 0x02, 0x06, + 0x01, 0x64, 0x39, 0x77, 0x21, 0xCF, 0x04, 0x10, 0x36, 0x0C, 0x1A, 0x06, 0xD2, 0x07, 0x1A, 0x0B, 0x10, 0x04, 0x11, 0x04, 0x0F, 0x37, 0x0B, 0x1A, 0x07, + 0x10, 0x17, 0x31, 0x38, 0x07, 0x01, 0x3E, 0x03, 0x07, 0x3D, 0xFE, 0xBA, 0x12, 0x27, 0x12, 0x19, 0x12, 0x27, 0x12, 0x1B, 0x12, 0x27, 0x13, 0x9F, 0x08, + 0x0E, 0x2E, 0x0D, 0x09, 0x99, 0x0E, 0x10, 0x14, 0x07, 0x07, 0x08, 0x09, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFD, 0xFF, 0xBE, 0x02, 0x00, 0x01, 0xC0, 0x00, + 0x1D, 0x00, 0x2A, 0x00, 0x00, 0x01, 0x1E, 0x01, 0x07, 0x06, 0x0F, 0x01, 0x27, 0x26, 0x07, 0x06, 0x14, 0x1F, 0x01, 0x07, 0x06, 0x26, 0x27, 0x26, 0x37, + 0x13, 0x17, 0x16, 0x32, 0x37, 0x36, 0x2F, 0x01, 0x3E, 0x01, 0x37, 0x36, 0x16, 0x17, 0x0E, 0x01, 0x2F, 0x01, 0x26, 0x36, 0x37, 0x1E, 0x01, 0x01, 0x2A, + 0x2E, 0x22, 0x17, 0x12, 0x27, 0x66, 0x39, 0x0B, 0x0B, 0x05, 0x05, 0x31, 0x86, 0x08, 0x12, 0x04, 0x04, 0x04, 0x80, 0x33, 0x04, 0x0D, 0x05, 0x0C, 0x0C, + 0x37, 0x1B, 0x53, 0x84, 0x1E, 0x44, 0x18, 0x1F, 0x58, 0x21, 0x08, 0x22, 0x04, 0x26, 0x1D, 0x10, 0x01, 0x23, 0x16, 0x62, 0x2E, 0x26, 0x13, 0x32, 0x39, + 0x0C, 0x0C, 0x04, 0x0E, 0x04, 0x31, 0x42, 0x04, 0x06, 0x09, 0x09, 0x0A, 0x01, 0x07, 0x32, 0x05, 0x05, 0x0B, 0x0B, 0x38, 0x20, 0x13, 0x10, 0x0F, 0x10, + 0x1D, 0x26, 0x04, 0x22, 0x08, 0x21, 0x58, 0x1F, 0x18, 0x44, 0x00, 0x00, 0x00, 0x0A, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x01, 0x01, 0xC0, 0x00, 0x29, 0x00, + 0x39, 0x00, 0x49, 0x00, 0x59, 0x00, 0x5D, 0x00, 0x6D, 0x00, 0x7D, 0x00, 0x89, 0x00, 0x99, 0x00, 0xA9, 0x00, 0x00, 0x25, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x3E, 0x01, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x33, 0x32, 0x16, 0x17, 0x07, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, + 0x22, 0x06, 0x07, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x23, 0x27, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x14, + 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x27, 0x33, 0x35, 0x23, 0x17, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, + 0x01, 0x14, 0x16, 0x33, 0x17, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x15, 0x17, 0x35, 0x34, 0x2B, 0x01, + 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x37, 0x35, + 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x01, 0xFF, 0x01, 0x13, 0x0D, 0xFE, 0x40, 0x0D, 0x13, 0x01, 0x1B, + 0x01, 0x12, 0x0C, 0x55, 0x60, 0x07, 0x09, 0x09, 0x07, 0x01, 0x00, 0x07, 0x09, 0x09, 0x07, 0x60, 0xF5, 0x0C, 0x11, 0x02, 0xCC, 0x09, 0x07, 0x10, 0x07, + 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x20, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x30, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, + 0x09, 0x8F, 0xC0, 0xC0, 0x28, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x20, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, + 0xD8, 0x08, 0xB0, 0x08, 0x08, 0xB0, 0x08, 0x18, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x30, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, + 0x07, 0x10, 0x07, 0x09, 0x45, 0x05, 0x05, 0x5B, 0x0D, 0x13, 0x13, 0x0D, 0x5B, 0x05, 0x05, 0xA0, 0x0C, 0x0F, 0x40, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, + 0x07, 0x60, 0x07, 0x09, 0x40, 0x0F, 0x0C, 0x1D, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x47, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, + 0x10, 0x07, 0x09, 0x50, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x98, 0x20, 0xE8, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, + 0x07, 0x09, 0x40, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x80, 0x10, 0x08, 0x08, 0x10, 0x08, 0x78, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, + 0x07, 0x09, 0x09, 0x57, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xB9, 0x02, 0x00, 0x01, 0xC0, + 0x00, 0x15, 0x00, 0x2B, 0x00, 0x40, 0x00, 0x56, 0x00, 0x00, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, + 0x34, 0x3F, 0x01, 0x27, 0x26, 0x36, 0x33, 0x37, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, + 0x17, 0x16, 0x06, 0x23, 0x07, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x2F, 0x01, 0x07, 0x06, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x07, + 0x01, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3F, 0x01, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0xC8, 0x0A, 0x0E, + 0x1E, 0x0B, 0x1F, 0x63, 0x05, 0x0D, 0x05, 0x19, 0x05, 0x05, 0x63, 0x21, 0x0B, 0x0C, 0x10, 0xE0, 0x0A, 0x0E, 0x1E, 0x0B, 0x1F, 0x63, 0x05, 0x0D, 0x05, + 0x19, 0x05, 0x05, 0x63, 0x21, 0x0B, 0x0C, 0x10, 0x10, 0x63, 0x05, 0x05, 0x19, 0x0B, 0x0C, 0x63, 0x1F, 0x0B, 0x1E, 0x0E, 0x0A, 0x70, 0x10, 0x0C, 0x0B, + 0xFE, 0xFE, 0x0B, 0x1E, 0x0E, 0x0A, 0x70, 0x10, 0x0C, 0x0B, 0x21, 0x63, 0x05, 0x05, 0x19, 0x05, 0x0D, 0x05, 0x63, 0xA0, 0x0E, 0x0A, 0x70, 0x10, 0x0C, + 0x0B, 0x21, 0x63, 0x05, 0x05, 0x19, 0x05, 0x0D, 0x05, 0x63, 0x1F, 0x0B, 0x1E, 0x40, 0x0E, 0x0A, 0x70, 0x10, 0x0C, 0x0B, 0x21, 0x63, 0x05, 0x05, 0x19, + 0x05, 0x0D, 0x05, 0x63, 0x1F, 0x0B, 0x1E, 0x88, 0x63, 0x05, 0x0D, 0x05, 0x19, 0x0C, 0x0C, 0x63, 0x21, 0x0B, 0x0C, 0x10, 0x70, 0x0A, 0x0E, 0x1E, 0x0B, + 0x01, 0x02, 0x0B, 0x0C, 0x10, 0x70, 0x0A, 0x0E, 0x1E, 0x0B, 0x1F, 0x63, 0x05, 0x0D, 0x05, 0x19, 0x05, 0x05, 0x63, 0x00, 0x00, 0x00, 0x05, 0xFF, 0xFE, + 0xFF, 0xE0, 0x02, 0x42, 0x01, 0xA0, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x19, 0x00, 0x43, 0x00, 0x00, 0x01, 0x23, 0x27, 0x33, 0x32, 0x1F, 0x01, + 0x16, 0x06, 0x25, 0x15, 0x23, 0x37, 0x33, 0x17, 0x23, 0x35, 0x05, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x07, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x2B, 0x01, 0x07, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x27, 0x23, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x27, 0x21, 0x07, 0x02, 0x30, 0x61, 0x1A, 0x63, 0x0C, 0x04, 0x18, 0x01, 0x09, 0xFE, 0xD8, 0x7E, 0x1A, + 0xE8, 0x1A, 0x7E, 0xFE, 0xE0, 0x08, 0x09, 0x01, 0x18, 0x04, 0x0C, 0x63, 0x1A, 0x01, 0xBF, 0x07, 0x09, 0x09, 0x07, 0x1C, 0x14, 0x09, 0x07, 0x20, 0x07, + 0x09, 0xFE, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x14, 0x1C, 0x07, 0x09, 0x09, 0x07, 0x14, 0x04, 0x02, 0x00, 0x04, 0x01, 0x20, 0x80, 0x0C, 0x60, 0x08, + 0x0C, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0C, 0x08, 0x60, 0x0C, 0x80, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0xA0, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, + 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0xFF, 0xE0, 0x02, 0x80, + 0x01, 0xA1, 0x00, 0x05, 0x00, 0x09, 0x00, 0x1C, 0x00, 0x25, 0x00, 0x3F, 0x00, 0x4E, 0x00, 0x5E, 0x00, 0x00, 0x01, 0x06, 0x07, 0x23, 0x35, 0x33, 0x23, + 0x15, 0x23, 0x37, 0x05, 0x2F, 0x01, 0x33, 0x32, 0x1F, 0x01, 0x32, 0x06, 0x31, 0x30, 0x27, 0x26, 0x2F, 0x01, 0x07, 0x06, 0x07, 0x26, 0x05, 0x22, 0x26, + 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x07, 0x17, 0x06, 0x15, 0x14, 0x17, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x27, 0x23, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x27, 0x25, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x16, 0x17, 0x36, 0x17, 0x3E, 0x01, + 0x27, 0x26, 0x27, 0x07, 0x26, 0x27, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x33, 0x32, 0x01, 0xA3, 0x1D, 0x19, 0x3D, 0x64, 0x84, 0x7E, 0x1A, 0x01, 0x21, 0x0C, + 0x0C, 0x63, 0x0D, 0x02, 0x18, 0x01, 0x01, 0x01, 0x01, 0x01, 0x15, 0x15, 0x07, 0x0B, 0x17, 0xFE, 0x27, 0x08, 0x09, 0x01, 0x18, 0x04, 0x0C, 0x63, 0x1A, + 0xE4, 0x35, 0x31, 0xD1, 0x09, 0x07, 0x20, 0x07, 0x09, 0x14, 0x1C, 0x07, 0x09, 0x09, 0x07, 0x14, 0x04, 0x02, 0x07, 0x25, 0x34, 0x5E, 0x84, 0x5E, 0x44, + 0x34, 0x28, 0x1F, 0x13, 0x02, 0x19, 0x0C, 0x0E, 0x03, 0x05, 0x27, 0x3F, 0x05, 0x1B, 0x16, 0x33, 0x26, 0x1D, 0x01, 0x58, 0x19, 0x1F, 0x80, 0x80, 0x80, + 0x48, 0x0A, 0x3E, 0x0C, 0x60, 0x02, 0x01, 0x01, 0x01, 0x13, 0x13, 0x06, 0x0B, 0x1B, 0x1F, 0x0C, 0x08, 0x60, 0x0C, 0x80, 0x20, 0x4B, 0x37, 0x48, 0x36, + 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x20, 0x1D, 0x21, 0x60, 0x1E, 0x41, 0x5D, 0x5D, 0x41, 0x26, 0x6D, 0x2F, 0x24, + 0x28, 0x16, 0xD3, 0x12, 0x3F, 0x1B, 0x07, 0x07, 0x2F, 0x53, 0x05, 0x21, 0x28, 0x13, 0x27, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x01, 0x80, 0x00, 0x33, 0x00, 0x00, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x35, 0x23, 0x15, 0x23, 0x35, 0x23, 0x15, 0x23, 0x35, + 0x23, 0x15, 0x23, 0x35, 0x23, 0x15, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, 0x50, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x50, 0x07, + 0x09, 0x09, 0x07, 0x30, 0x09, 0x07, 0x30, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x30, 0x07, 0x09, 0x01, 0x00, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x30, 0x07, 0x09, 0x30, 0x07, 0x09, 0x09, 0x07, 0x30, 0x09, 0x07, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC2, 0x00, 0x35, 0x00, 0x3C, 0x00, 0x43, 0x00, 0x63, 0x00, 0x6D, 0x00, 0x77, 0x00, 0x00, 0x37, + 0x0E, 0x01, 0x1D, 0x01, 0x14, 0x17, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x27, 0x26, 0x3F, 0x01, 0x36, 0x1F, 0x01, 0x27, 0x26, 0x36, + 0x3F, 0x01, 0x36, 0x16, 0x1F, 0x01, 0x37, 0x3E, 0x01, 0x1F, 0x01, 0x1E, 0x01, 0x0F, 0x01, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x33, + 0x32, 0x17, 0x06, 0x03, 0x35, 0x33, 0x15, 0x23, 0x22, 0x26, 0x17, 0x35, 0x33, 0x15, 0x14, 0x06, 0x23, 0x11, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x2B, + 0x03, 0x15, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x23, 0x33, 0x26, + 0x23, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x37, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x33, 0x36, 0xF1, 0x15, 0x1C, 0x09, 0xA9, 0x0D, 0x13, 0x13, + 0x0D, 0x1D, 0x1E, 0x0D, 0x09, 0x09, 0x09, 0x0E, 0x20, 0x0C, 0x02, 0x05, 0x06, 0x10, 0x06, 0x0C, 0x02, 0x14, 0x14, 0x02, 0x0C, 0x06, 0x10, 0x06, 0x05, + 0x02, 0x0C, 0x20, 0x06, 0x0D, 0x04, 0x09, 0x04, 0x02, 0x06, 0x1E, 0x1D, 0x14, 0x09, 0x29, 0x14, 0xC0, 0xA0, 0x0D, 0x13, 0xE0, 0xC0, 0x13, 0x0D, 0x0D, + 0x13, 0xC0, 0x0F, 0x01, 0x01, 0x0F, 0xC0, 0x13, 0x0D, 0x14, 0x04, 0x28, 0x20, 0x37, 0x21, 0x21, 0x37, 0x20, 0x28, 0x04, 0xFC, 0x35, 0x15, 0x18, 0x0C, + 0x0C, 0x09, 0x03, 0xCB, 0x09, 0x0C, 0x0C, 0x18, 0x15, 0x35, 0x04, 0xFE, 0x05, 0x23, 0x16, 0xE0, 0x11, 0x0F, 0x13, 0x0D, 0x01, 0x60, 0x0D, 0x13, 0x16, + 0x09, 0x0D, 0x0D, 0x0D, 0x09, 0x17, 0x1F, 0x06, 0x0C, 0x02, 0x06, 0x02, 0x05, 0x06, 0x36, 0x36, 0x06, 0x05, 0x02, 0x06, 0x02, 0x0C, 0x06, 0x1F, 0x17, + 0x04, 0x02, 0x06, 0x0D, 0x05, 0x0D, 0x04, 0x16, 0x12, 0x1D, 0xFE, 0xAF, 0x60, 0x80, 0x13, 0x13, 0x80, 0x60, 0x0D, 0x13, 0x01, 0x20, 0x13, 0x0D, 0x60, + 0x80, 0x80, 0x60, 0x0D, 0x13, 0x0C, 0x0C, 0x1C, 0x2C, 0x4B, 0x4B, 0x2C, 0x1C, 0x0B, 0x0D, 0x30, 0x0F, 0x09, 0x0B, 0x08, 0x03, 0x03, 0x08, 0x0B, 0x09, + 0x0F, 0x30, 0x02, 0x00, 0x03, 0xFF, 0xFD, 0xFF, 0xBD, 0x02, 0x83, 0x01, 0xC3, 0x00, 0x39, 0x00, 0x3D, 0x00, 0x41, 0x00, 0x00, 0x25, 0x16, 0x0F, 0x01, + 0x06, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x27, 0x06, 0x23, 0x22, 0x26, 0x2F, 0x01, 0x07, 0x0E, 0x01, 0x23, 0x22, 0x27, 0x07, 0x17, 0x1E, 0x01, 0x07, 0x06, + 0x2F, 0x01, 0x26, 0x37, 0x3E, 0x01, 0x1F, 0x01, 0x37, 0x2E, 0x01, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x06, 0x07, + 0x17, 0x37, 0x36, 0x16, 0x01, 0x37, 0x27, 0x07, 0x17, 0x37, 0x27, 0x07, 0x02, 0x7F, 0x03, 0x07, 0xA2, 0x08, 0x03, 0x06, 0x0D, 0x0F, 0x16, 0x27, 0x0C, + 0x01, 0x28, 0x3F, 0x0B, 0x14, 0x14, 0x0B, 0x3F, 0x28, 0x01, 0x0C, 0x27, 0x16, 0x0F, 0x0D, 0x06, 0x03, 0x08, 0xA2, 0x07, 0x03, 0x06, 0x1E, 0x10, 0x16, + 0x27, 0x25, 0x14, 0x16, 0x57, 0x06, 0x17, 0x0B, 0x72, 0x72, 0x0B, 0x17, 0x06, 0x57, 0x16, 0x14, 0x25, 0x27, 0x16, 0x10, 0x1E, 0xFE, 0x9B, 0x13, 0x5F, + 0x24, 0xC8, 0x70, 0x24, 0x5F, 0x0E, 0x07, 0x03, 0x43, 0x04, 0x08, 0x0F, 0x1F, 0x06, 0x09, 0x68, 0x01, 0x2E, 0x27, 0x4B, 0x4B, 0x27, 0x2E, 0x01, 0x68, + 0x09, 0x06, 0x1F, 0x0F, 0x07, 0x03, 0x43, 0x03, 0x07, 0x10, 0x0C, 0x06, 0x09, 0x66, 0x1A, 0x57, 0x28, 0x96, 0x0A, 0x08, 0x04, 0x30, 0x30, 0x04, 0x08, + 0x0A, 0x96, 0x28, 0x57, 0x1A, 0x66, 0x09, 0x06, 0x0C, 0x01, 0x00, 0x47, 0x27, 0x40, 0x2E, 0x2E, 0x40, 0x27, 0x00, 0x00, 0x02, 0xFF, 0xFE, 0xFF, 0xE0, + 0x02, 0x02, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x13, 0x00, 0x00, 0x01, 0x32, 0x16, 0x07, 0x03, 0x0E, 0x01, 0x23, 0x21, 0x22, 0x26, 0x27, 0x03, 0x26, 0x36, + 0x33, 0x05, 0x21, 0x17, 0x21, 0x01, 0xE0, 0x0F, 0x13, 0x02, 0x38, 0x03, 0x24, 0x18, 0xFE, 0xEF, 0x18, 0x24, 0x04, 0x38, 0x02, 0x13, 0x0F, 0x01, 0x9B, + 0xFE, 0x8A, 0x1F, 0x01, 0x39, 0x01, 0xA0, 0x16, 0x0E, 0xFE, 0x9B, 0x18, 0x1F, 0x1F, 0x18, 0x01, 0x65, 0x0E, 0x16, 0x40, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, 0x07, 0x00, 0x64, 0x00, 0x74, 0x00, 0x92, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, + 0x26, 0x34, 0x05, 0x34, 0x26, 0x23, 0x22, 0x23, 0x22, 0x23, 0x07, 0x06, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x37, 0x33, 0x32, 0x16, 0x14, + 0x0F, 0x01, 0x06, 0x0F, 0x01, 0x06, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x14, + 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x36, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x0F, + 0x01, 0x06, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x16, 0x1D, 0x01, 0x07, 0x06, 0x1F, 0x01, 0x16, 0x3B, 0x01, 0x36, 0x24, 0x14, 0x16, 0x3B, 0x01, + 0x32, 0x3F, 0x01, 0x36, 0x3D, 0x01, 0x34, 0x26, 0x22, 0x0F, 0x01, 0x13, 0x3E, 0x01, 0x37, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x2B, 0x01, 0x27, 0x26, 0x2B, + 0x01, 0x22, 0x0F, 0x01, 0x06, 0x1D, 0x01, 0x14, 0x1F, 0x01, 0x16, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0x01, 0xC0, 0x75, + 0x53, 0x01, 0x03, 0x01, 0x01, 0x1D, 0x03, 0x08, 0x10, 0x08, 0x10, 0x15, 0x04, 0x07, 0x03, 0x1B, 0x02, 0x02, 0x28, 0x06, 0x07, 0x14, 0x05, 0x09, 0x07, + 0x16, 0x0A, 0x04, 0x0A, 0x02, 0x05, 0x03, 0x08, 0x08, 0x10, 0x08, 0x06, 0x1F, 0x0B, 0x09, 0x07, 0x25, 0x04, 0x07, 0x07, 0x04, 0x20, 0x05, 0x03, 0x0A, + 0x03, 0x07, 0x04, 0x10, 0x05, 0x03, 0x0A, 0x03, 0x0C, 0x09, 0x09, 0x20, 0x04, 0x07, 0x14, 0x0B, 0xFE, 0xC2, 0x07, 0x04, 0x10, 0x05, 0x03, 0x0A, 0x03, + 0x07, 0x09, 0x03, 0x1A, 0x7D, 0x35, 0x57, 0x19, 0x0D, 0x08, 0x05, 0x12, 0x09, 0x0D, 0x13, 0x2B, 0x0C, 0x11, 0x20, 0x0C, 0x0B, 0x2B, 0x16, 0x12, 0x16, + 0x10, 0x14, 0x14, 0x07, 0x09, 0x01, 0xB8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x67, 0x53, 0x75, 0x16, 0x02, 0x04, 0x14, 0x08, 0x08, 0x08, 0x10, 0x07, 0x09, + 0x04, 0x1A, 0x02, 0x01, 0x0D, 0x02, 0x06, 0x0A, 0x08, 0x14, 0x04, 0x07, 0x19, 0x07, 0x09, 0x08, 0x13, 0x05, 0x10, 0x08, 0x02, 0x06, 0x01, 0x0B, 0x04, + 0x0B, 0x05, 0x06, 0x0A, 0x07, 0x05, 0x09, 0x05, 0x06, 0x04, 0x09, 0x03, 0x0A, 0x06, 0x04, 0x09, 0x03, 0x05, 0x09, 0x0C, 0x09, 0x08, 0x21, 0x04, 0x1F, + 0x91, 0x0A, 0x06, 0x03, 0x09, 0x04, 0x04, 0x10, 0x05, 0x07, 0x04, 0x19, 0xFE, 0xC5, 0x03, 0x38, 0x2D, 0x05, 0x11, 0x0A, 0x25, 0x0B, 0x07, 0x1A, 0x0D, + 0x1A, 0x18, 0x16, 0x0E, 0x11, 0x0B, 0x0A, 0x06, 0x00, 0x02, 0x00, 0x00, 0x00, 0x60, 0x02, 0x00, 0x01, 0x20, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x00, 0x25, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0xF0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x09, 0x07, 0x01, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xFE, + 0x20, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0xFF, 0xC0, 0x00, 0xE0, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x00, 0x17, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x13, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x15, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x30, + 0x07, 0x09, 0x09, 0x07, 0x01, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x09, 0x07, 0x01, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x02, 0xFF, 0xFB, 0xFF, 0xBB, 0x02, 0x00, 0x01, 0xC1, 0x00, 0x2B, 0x00, 0x33, 0x00, 0x00, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x0F, 0x02, 0x16, + 0x17, 0x16, 0x07, 0x06, 0x07, 0x0E, 0x01, 0x07, 0x06, 0x07, 0x06, 0x2E, 0x02, 0x37, 0x36, 0x37, 0x3E, 0x01, 0x37, 0x36, 0x37, 0x36, 0x17, 0x16, 0x17, + 0x3F, 0x01, 0x36, 0x3F, 0x01, 0x36, 0x32, 0x17, 0x00, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xF7, 0x09, 0x09, 0x2F, 0x06, 0x08, 0x24, 0x4C, + 0x0E, 0x05, 0x0D, 0x23, 0x0E, 0x14, 0x0D, 0x14, 0x01, 0x04, 0x18, 0x23, 0x6B, 0x53, 0x0B, 0x23, 0x18, 0x26, 0x0E, 0x18, 0x04, 0x06, 0x0F, 0x22, 0x37, + 0x14, 0x15, 0x4C, 0x0C, 0x03, 0x05, 0x2F, 0x09, 0x1B, 0x09, 0xFE, 0xE3, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x01, 0x99, 0x09, 0x1B, 0x09, 0x2F, 0x05, 0x03, + 0x0C, 0x4C, 0x15, 0x14, 0x37, 0x22, 0x0F, 0x06, 0x04, 0x18, 0x0E, 0x26, 0x19, 0x22, 0x0B, 0x53, 0x6B, 0x23, 0x18, 0x04, 0x01, 0x13, 0x0E, 0x14, 0x0E, + 0x23, 0x0D, 0x05, 0x0E, 0x4C, 0x25, 0x07, 0x06, 0x2F, 0x09, 0x09, 0xFE, 0xA9, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x00, 0x01, 0xFF, 0xFE, 0xFF, 0xDF, 0x02, + 0x02, 0x01, 0xA4, 0x00, 0x18, 0x00, 0x00, 0x01, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3F, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x07, + 0x17, 0x27, 0x37, 0x27, 0x36, 0x16, 0x17, 0x01, 0xDA, 0x24, 0x04, 0x21, 0xD4, 0x06, 0x0F, 0x05, 0xD4, 0x21, 0x04, 0x24, 0x03, 0x22, 0x62, 0x26, 0x1D, + 0x60, 0x90, 0x30, 0x60, 0x22, 0x26, 0x61, 0x22, 0x01, 0x76, 0x25, 0x69, 0x28, 0xDB, 0x05, 0x05, 0xDB, 0x28, 0x69, 0x25, 0x03, 0x23, 0x07, 0x1C, 0x57, + 0x40, 0x90, 0x80, 0x40, 0x68, 0x1B, 0x07, 0x23, 0x00, 0x00, 0x00, 0x05, 0xFF, 0xFE, 0xFF, 0xBC, 0x01, 0xC2, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, + 0x17, 0x00, 0x3F, 0x00, 0x69, 0x00, 0x00, 0x12, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x32, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x22, + 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x06, 0x17, 0x16, 0x06, 0x07, 0x06, 0x07, 0x0E, 0x01, 0x17, 0x16, 0x17, 0x16, 0x06, 0x07, 0x06, 0x07, 0x06, + 0x26, 0x35, 0x34, 0x27, 0x26, 0x36, 0x37, 0x36, 0x37, 0x3E, 0x01, 0x27, 0x26, 0x27, 0x26, 0x36, 0x33, 0x36, 0x37, 0x36, 0x16, 0x17, 0x32, 0x16, 0x07, + 0x06, 0x15, 0x14, 0x06, 0x27, 0x26, 0x27, 0x2E, 0x01, 0x37, 0x36, 0x37, 0x36, 0x26, 0x27, 0x22, 0x27, 0x36, 0x27, 0x26, 0x35, 0x3C, 0x01, 0x35, 0x34, + 0x36, 0x17, 0x16, 0x17, 0x1E, 0x01, 0x07, 0x06, 0x07, 0x06, 0x16, 0x17, 0x16, 0xA4, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x40, 0x1C, 0x28, 0x1C, 0x1C, 0x28, + 0x28, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x40, 0x01, 0x18, 0x03, 0x08, 0x07, 0x17, 0x16, 0x0B, 0x0C, 0x03, 0x05, 0x09, 0x03, 0x07, 0x07, 0x37, 0x32, 0x09, + 0x13, 0x17, 0x03, 0x08, 0x07, 0x16, 0x17, 0x0B, 0x0C, 0x03, 0x05, 0x09, 0x03, 0x07, 0x07, 0x39, 0x34, 0x08, 0x10, 0xE3, 0x07, 0x08, 0x04, 0x16, 0x13, + 0x09, 0x32, 0x37, 0x07, 0x08, 0x04, 0x09, 0x05, 0x03, 0x0C, 0x0B, 0x01, 0x0E, 0x0A, 0x09, 0x14, 0x10, 0x08, 0x34, 0x39, 0x07, 0x07, 0x03, 0x09, 0x05, + 0x03, 0x0C, 0x0B, 0x17, 0x01, 0x00, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x60, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xA7, 0x3D, 0x33, + 0x07, 0x0D, 0x01, 0x02, 0x07, 0x03, 0x14, 0x0C, 0x17, 0x15, 0x06, 0x0D, 0x01, 0x05, 0x1D, 0x05, 0x0B, 0x0A, 0x3A, 0x32, 0x07, 0x0C, 0x01, 0x02, 0x07, + 0x04, 0x14, 0x0B, 0x18, 0x14, 0x07, 0x0D, 0x06, 0x1F, 0x04, 0x09, 0x8C, 0x0D, 0x07, 0x31, 0x3A, 0x0B, 0x0B, 0x06, 0x1C, 0x05, 0x01, 0x0D, 0x07, 0x15, + 0x16, 0x0C, 0x14, 0x04, 0x03, 0x14, 0x13, 0x2B, 0x33, 0x01, 0x03, 0x01, 0x09, 0x0A, 0x05, 0x1F, 0x05, 0x01, 0x0D, 0x07, 0x15, 0x16, 0x0C, 0x14, 0x03, + 0x07, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x06, 0x01, 0xC3, 0x00, 0x2E, 0x00, 0x36, 0x00, 0x00, 0x25, 0x16, 0x0F, 0x01, 0x06, 0x2B, 0x01, 0x22, + 0x2F, 0x01, 0x06, 0x23, 0x22, 0x26, 0x27, 0x2E, 0x01, 0x0F, 0x01, 0x06, 0x17, 0x1E, 0x01, 0x17, 0x15, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x3E, 0x02, 0x3F, 0x01, 0x36, 0x17, 0x16, 0x07, 0x1E, 0x01, 0x17, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xFE, 0x07, 0x0E, + 0x2E, 0x09, 0x0D, 0x33, 0x10, 0x0A, 0x2E, 0x16, 0x18, 0x1D, 0x2F, 0x0C, 0x01, 0x09, 0x03, 0x0C, 0x04, 0x03, 0x0F, 0x37, 0x22, 0x29, 0x08, 0x13, 0x12, + 0xEC, 0x0D, 0x13, 0x10, 0x25, 0x42, 0x30, 0xCA, 0x0A, 0x02, 0x0E, 0x30, 0x20, 0x32, 0x0B, 0x7A, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x74, 0x14, 0x0F, 0x28, + 0x09, 0x0D, 0x40, 0x0D, 0x20, 0x19, 0x04, 0x02, 0x03, 0x0C, 0x05, 0x05, 0x1D, 0x26, 0x02, 0x01, 0x52, 0x10, 0x1E, 0x13, 0x0D, 0x51, 0x3F, 0x62, 0x55, + 0x3B, 0x12, 0x4B, 0x04, 0x0A, 0x36, 0x1C, 0x06, 0x2A, 0x1F, 0x38, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFC, 0xFF, 0xBF, + 0x02, 0x03, 0x01, 0xC0, 0x00, 0x1A, 0x00, 0x00, 0x01, 0x03, 0x06, 0x22, 0x27, 0x03, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x07, + 0x06, 0x22, 0x27, 0x03, 0x26, 0x36, 0x33, 0x21, 0x32, 0x16, 0x01, 0xFF, 0x57, 0x01, 0x0E, 0x01, 0x42, 0x2E, 0x02, 0x0C, 0x02, 0x22, 0x2E, 0x02, 0x0C, + 0x02, 0x2C, 0x24, 0x02, 0x0C, 0x02, 0x57, 0x04, 0x13, 0x10, 0x01, 0xC0, 0x0F, 0x13, 0x01, 0x9A, 0xFE, 0x2C, 0x06, 0x06, 0x01, 0x6C, 0xAC, 0x06, 0x06, + 0x85, 0xC5, 0x06, 0x06, 0xBC, 0x7D, 0x05, 0x05, 0x01, 0x12, 0x0F, 0x1A, 0x17, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x40, 0x01, 0xA0, + 0x00, 0x06, 0x00, 0x0B, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x1D, 0x00, 0x27, 0x00, 0x30, 0x00, 0x38, 0x00, 0x00, 0x01, 0x15, 0x21, 0x3E, 0x01, 0x33, 0x32, + 0x07, 0x15, 0x23, 0x34, 0x37, 0x25, 0x16, 0x17, 0x23, 0x17, 0x35, 0x33, 0x16, 0x15, 0x07, 0x34, 0x27, 0x33, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x13, 0x15, + 0x23, 0x2E, 0x01, 0x22, 0x06, 0x07, 0x23, 0x35, 0x03, 0x35, 0x33, 0x06, 0x1D, 0x01, 0x23, 0x22, 0x26, 0x36, 0x32, 0x16, 0x1D, 0x01, 0x23, 0x35, 0x34, + 0x01, 0x40, 0xFE, 0xF1, 0x27, 0x7E, 0x4A, 0x0F, 0xCF, 0x60, 0x1E, 0x01, 0x42, 0x70, 0x3F, 0xAF, 0x80, 0x42, 0x1E, 0xA0, 0x04, 0xA4, 0x13, 0x0D, 0x80, + 0x20, 0x32, 0x11, 0x3A, 0x46, 0x3A, 0x11, 0x32, 0x80, 0xA4, 0x04, 0x80, 0x0D, 0x13, 0xF8, 0x50, 0x38, 0xC0, 0x01, 0x9E, 0x7E, 0x3B, 0x45, 0xA0, 0x80, + 0x43, 0x3D, 0x99, 0x1A, 0x5F, 0xA0, 0x80, 0x3D, 0x43, 0x40, 0x0E, 0x12, 0x60, 0x0D, 0x13, 0x01, 0x20, 0x80, 0x1D, 0x23, 0x23, 0x1D, 0x80, 0xFF, 0x00, + 0x60, 0x12, 0x0E, 0x60, 0x13, 0xAD, 0x38, 0x28, 0x60, 0x60, 0x28, 0x00, 0x00, 0x02, 0xFF, 0xF6, 0xFF, 0xC0, 0x01, 0xC3, 0x01, 0xCA, 0x00, 0x0F, 0x00, + 0x1E, 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x24, 0x1E, 0x01, 0x0F, 0x01, 0x21, + 0x27, 0x26, 0x3E, 0x01, 0x16, 0x1F, 0x01, 0x37, 0x36, 0x01, 0x70, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xC0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x65, 0x28, 0x05, + 0x11, 0x48, 0xFE, 0xCB, 0x30, 0x0E, 0x40, 0x74, 0x65, 0x0D, 0x1E, 0x15, 0x11, 0x20, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0xE2, + 0x22, 0x35, 0x14, 0x57, 0xD0, 0x3A, 0x65, 0x1B, 0x40, 0x3A, 0x80, 0x19, 0x14, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, + 0xC0, 0x00, 0x13, 0x00, 0x27, 0x00, 0x39, 0x00, 0x41, 0x00, 0x00, 0x13, 0x26, 0x27, 0x26, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, + 0x17, 0x16, 0x06, 0x2B, 0x01, 0x22, 0x37, 0x26, 0x27, 0x26, 0x27, 0x26, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x06, 0x2B, 0x01, + 0x22, 0x17, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x05, 0x32, 0x36, 0x34, 0x26, 0x2B, + 0x01, 0x15, 0x7F, 0x04, 0x12, 0x23, 0x06, 0x01, 0x0A, 0x07, 0x11, 0x0E, 0x02, 0x04, 0x16, 0x1F, 0x06, 0x01, 0x0A, 0x07, 0x11, 0x0E, 0x6E, 0x04, 0x12, + 0x23, 0x06, 0x01, 0x0A, 0x07, 0x11, 0x0E, 0x02, 0x04, 0x16, 0x1F, 0x06, 0x01, 0x0A, 0x07, 0x11, 0x0E, 0x9F, 0x2E, 0x42, 0x42, 0x2E, 0x10, 0x38, 0x28, + 0xC0, 0x28, 0x38, 0x13, 0x0D, 0x01, 0x70, 0x14, 0x1C, 0x1C, 0x14, 0x10, 0x01, 0x2E, 0x19, 0x13, 0x23, 0x31, 0x07, 0x0B, 0x0E, 0x1F, 0x16, 0x1F, 0x2C, + 0x07, 0x0B, 0x0E, 0x19, 0x13, 0x23, 0x31, 0x07, 0x0B, 0x0E, 0x1F, 0x16, 0x1F, 0x2C, 0x07, 0x0B, 0x20, 0x42, 0x5C, 0x42, 0x28, 0x38, 0x38, 0x28, 0xC0, + 0x0D, 0x13, 0xA0, 0x1C, 0x28, 0x1C, 0x60, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xC8, 0x01, 0xF1, 0x01, 0x8E, 0x00, 0x0C, 0x00, 0x1A, 0x00, 0x22, 0x00, + 0x2F, 0x00, 0x00, 0x25, 0x34, 0x27, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x17, 0x14, 0x06, 0x23, 0x07, 0x17, 0x16, 0x06, 0x07, 0x06, 0x22, 0x27, 0x2E, + 0x01, 0x3F, 0x01, 0x16, 0x32, 0x26, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x25, 0x22, 0x26, 0x35, 0x3E, 0x01, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x06, + 0x15, 0x01, 0x48, 0x26, 0x51, 0x03, 0x0E, 0x06, 0x2C, 0x36, 0x04, 0x09, 0x07, 0xBE, 0x51, 0x03, 0x03, 0x06, 0x37, 0x7C, 0x37, 0x06, 0x03, 0x03, 0x51, + 0x14, 0x2D, 0x03, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0xFE, 0xE8, 0x07, 0x09, 0x04, 0x36, 0x2C, 0x06, 0x0E, 0x03, 0x51, 0x26, 0xC0, 0x2C, 0x18, 0x80, 0x06, + 0x03, 0x04, 0x20, 0x60, 0x38, 0x07, 0x0A, 0x44, 0x80, 0x06, 0x0D, 0x03, 0x1E, 0x1E, 0x03, 0x0D, 0x06, 0x80, 0x0C, 0x20, 0x1C, 0x28, 0x1C, 0x1C, 0x28, + 0x14, 0x0A, 0x07, 0x38, 0x60, 0x20, 0x04, 0x03, 0x06, 0x80, 0x18, 0x2C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC8, 0x01, 0xF0, 0x01, 0xB8, 0x00, + 0x0B, 0x00, 0x19, 0x00, 0x25, 0x00, 0x2D, 0x00, 0x35, 0x00, 0x3D, 0x00, 0x00, 0x25, 0x34, 0x27, 0x37, 0x3E, 0x01, 0x17, 0x16, 0x17, 0x16, 0x06, 0x23, + 0x07, 0x16, 0x32, 0x37, 0x17, 0x16, 0x06, 0x07, 0x06, 0x22, 0x27, 0x2E, 0x01, 0x37, 0x27, 0x22, 0x26, 0x37, 0x36, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x06, + 0x15, 0x16, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x02, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, + 0x01, 0x38, 0x1E, 0x2A, 0x03, 0x0F, 0x06, 0x34, 0x07, 0x01, 0x0A, 0x07, 0xB1, 0x10, 0x24, 0x10, 0x2A, 0x03, 0x03, 0x06, 0x22, 0x48, 0x22, 0x06, 0x03, + 0x03, 0x43, 0x07, 0x0A, 0x01, 0x07, 0x34, 0x06, 0x0F, 0x03, 0x2A, 0x1E, 0xA7, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xAC, 0x98, 0x6C, 0x6C, 0x98, 0x6C, 0xAB, + 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xC0, 0x23, 0x13, 0x43, 0x06, 0x02, 0x04, 0x2A, 0x42, 0x07, 0x0A, 0x36, 0x0A, 0x0A, 0x43, 0x06, 0x0D, 0x04, 0x10, 0x10, + 0x04, 0x0D, 0x06, 0x79, 0x0A, 0x07, 0x42, 0x2A, 0x04, 0x02, 0x06, 0x43, 0x13, 0x23, 0xF8, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0x01, 0x1F, 0x6C, 0x98, 0x6C, + 0x6C, 0x98, 0x6C, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0xFF, 0xC0, 0x02, 0x83, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, + 0x29, 0x00, 0x39, 0x00, 0x55, 0x00, 0x00, 0x12, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x04, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x13, 0x16, + 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x37, 0x16, 0x32, 0x37, 0x16, 0x17, 0x25, + 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x07, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x37, 0x16, 0x32, 0x9A, 0x34, 0x26, 0x26, 0x34, 0x26, 0x01, + 0x5A, 0x34, 0x26, 0x26, 0x34, 0x26, 0x3F, 0x03, 0x0F, 0x0C, 0x37, 0x0E, 0x0A, 0x30, 0x0A, 0x0E, 0x37, 0x0C, 0x0F, 0x02, 0x2E, 0x06, 0x18, 0x18, 0x38, + 0x18, 0x18, 0x06, 0xFE, 0xFE, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x7C, 0x13, 0x19, 0x0E, 0x0A, 0x08, 0x0E, 0x0A, 0x50, 0x0A, 0x0E, + 0x08, 0x0A, 0x0E, 0x19, 0x13, 0x18, 0x38, 0x01, 0x40, 0x26, 0x34, 0x26, 0x26, 0x34, 0x26, 0x26, 0x34, 0x26, 0x26, 0x34, 0xFE, 0xF8, 0x0C, 0x12, 0x68, + 0x0A, 0x0E, 0x0E, 0x0A, 0x68, 0x12, 0x0C, 0xB9, 0x16, 0x03, 0x10, 0x10, 0x03, 0x16, 0xA9, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x09, 0x07, 0x01, 0xE0, + 0x07, 0x09, 0x90, 0x02, 0x1B, 0x13, 0x88, 0x0A, 0x0E, 0x88, 0x0A, 0x0E, 0x0E, 0x0A, 0x88, 0x0E, 0x0A, 0x88, 0x13, 0x1B, 0x02, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x01, 0x01, 0xC1, 0x00, 0x3B, 0x00, 0x3F, 0x00, 0x43, 0x00, 0x00, 0x25, 0x07, 0x06, 0x22, 0x2F, 0x01, 0x07, + 0x16, 0x15, 0x14, 0x07, 0x0E, 0x01, 0x2F, 0x01, 0x07, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x37, 0x27, 0x26, 0x36, 0x37, + 0x36, 0x33, 0x32, 0x17, 0x37, 0x27, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, + 0x17, 0x16, 0x14, 0x25, 0x37, 0x27, 0x07, 0x05, 0x27, 0x07, 0x17, 0x01, 0xF7, 0x61, 0x09, 0x1B, 0x09, 0x50, 0x0A, 0x11, 0x17, 0x03, 0x0F, 0x05, 0x6B, + 0x12, 0x01, 0x12, 0x1B, 0x13, 0x13, 0x0D, 0x02, 0x06, 0x12, 0x6C, 0x05, 0x02, 0x06, 0x2A, 0x30, 0x29, 0x26, 0x0A, 0x51, 0x09, 0x09, 0x61, 0x09, 0x0D, + 0x01, 0x0D, 0x09, 0x50, 0x30, 0x0A, 0x1C, 0x0A, 0x2F, 0x0A, 0x0A, 0x30, 0x51, 0x09, 0xFE, 0xDC, 0x49, 0x45, 0x49, 0x01, 0x32, 0x45, 0x49, 0x44, 0x8A, + 0x61, 0x09, 0x09, 0x51, 0x0A, 0x26, 0x29, 0x30, 0x2A, 0x06, 0x02, 0x05, 0x6C, 0x12, 0x06, 0x02, 0x0D, 0x13, 0x13, 0x1B, 0x12, 0x01, 0x12, 0x6B, 0x05, + 0x0F, 0x03, 0x17, 0x11, 0x09, 0x51, 0x09, 0x1B, 0x09, 0x61, 0x09, 0x09, 0x51, 0x30, 0x0A, 0x0A, 0x2F, 0x0A, 0x1C, 0x0A, 0x30, 0x50, 0x09, 0x1B, 0x68, + 0x49, 0x45, 0x4A, 0x9F, 0x45, 0x49, 0x45, 0x00, 0x00, 0x03, 0xFF, 0xF8, 0xFF, 0xB8, 0x02, 0x01, 0x01, 0xC0, 0x00, 0x19, 0x00, 0x31, 0x00, 0x49, 0x00, + 0x00, 0x05, 0x16, 0x06, 0x07, 0x06, 0x2E, 0x02, 0x37, 0x3E, 0x01, 0x1F, 0x01, 0x37, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x27, + 0x07, 0x25, 0x14, 0x31, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x2E, 0x01, 0x27, 0x2E, 0x01, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x32, 0x31, 0x1E, 0x01, + 0x07, 0x30, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x2E, 0x01, 0x27, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x32, 0x31, 0x1E, 0x01, 0x01, + 0x31, 0x06, 0x02, 0x07, 0x39, 0x88, 0x62, 0x12, 0x1F, 0x04, 0x10, 0x05, 0x75, 0x1C, 0x02, 0x13, 0x1A, 0x13, 0x13, 0x0D, 0x02, 0x06, 0x1B, 0x01, 0x43, + 0x09, 0x07, 0x20, 0x06, 0x0A, 0x06, 0x8A, 0x61, 0x06, 0x09, 0x09, 0x07, 0x01, 0x7A, 0xAF, 0x5A, 0x09, 0x07, 0x20, 0x07, 0x09, 0x05, 0x53, 0x39, 0x06, + 0x09, 0x09, 0x07, 0x01, 0x53, 0x76, 0x0F, 0x05, 0x10, 0x04, 0x20, 0x13, 0x62, 0x88, 0x39, 0x07, 0x02, 0x06, 0x74, 0x1B, 0x06, 0x02, 0x0D, 0x13, 0x13, + 0x1A, 0x13, 0x01, 0x1B, 0x2B, 0x01, 0x07, 0x09, 0x09, 0x06, 0x61, 0x8B, 0x05, 0x01, 0x09, 0x06, 0x20, 0x07, 0x09, 0x06, 0xAF, 0x7A, 0x01, 0x07, 0x09, + 0x08, 0x07, 0x3A, 0x52, 0x05, 0x09, 0x07, 0x20, 0x07, 0x09, 0x06, 0x76, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x0D, 0x00, + 0x11, 0x00, 0x15, 0x00, 0x19, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x37, 0x17, 0x35, 0x23, 0x15, + 0x33, 0x35, 0x23, 0x15, 0x33, 0x35, 0x23, 0x15, 0x01, 0x40, 0x1A, 0x26, 0x26, 0x1A, 0xFF, 0x00, 0x1A, 0x26, 0x80, 0x20, 0x30, 0x80, 0x30, 0x80, 0x30, + 0x01, 0xC0, 0x26, 0x1A, 0xFE, 0x80, 0x1A, 0x26, 0x26, 0x1A, 0x01, 0x40, 0x80, 0xA0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, + 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x0D, 0x00, 0x11, 0x00, 0x18, 0x00, 0x1F, 0x00, 0x23, 0x00, 0x2A, 0x00, 0x2E, 0x00, 0x35, 0x00, 0x00, 0x11, + 0x34, 0x36, 0x3B, 0x01, 0x17, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x37, 0x35, 0x23, 0x15, 0x33, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x1D, 0x02, + 0x33, 0x32, 0x36, 0x3D, 0x01, 0x23, 0x15, 0x33, 0x35, 0x23, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x35, 0x27, 0x15, 0x21, 0x35, 0x25, 0x15, 0x33, 0x35, 0x23, + 0x22, 0x06, 0x26, 0x1A, 0xC0, 0x80, 0x26, 0x1A, 0xFF, 0x00, 0x1A, 0x26, 0xE0, 0x40, 0xA0, 0x13, 0x0D, 0x20, 0x20, 0x0D, 0x13, 0xA0, 0x40, 0xA0, 0x13, + 0x0D, 0x20, 0x40, 0x01, 0x00, 0xFF, 0x00, 0x40, 0x20, 0x0D, 0x13, 0x01, 0x80, 0x1A, 0x26, 0x80, 0xFE, 0xC0, 0x1A, 0x26, 0x26, 0x1A, 0xC0, 0x40, 0x40, + 0x20, 0x0D, 0x13, 0x40, 0x80, 0x40, 0x13, 0x0D, 0x20, 0x40, 0x40, 0x20, 0x0D, 0x13, 0x40, 0x60, 0x40, 0x40, 0x40, 0x20, 0x40, 0x13, 0x00, 0x00, 0x05, + 0xFF, 0xF9, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x18, 0x00, 0x28, 0x00, 0x32, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x32, 0x16, 0x14, 0x06, + 0x22, 0x26, 0x34, 0x12, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x36, 0x34, 0x21, 0x36, 0x17, 0x16, 0x14, + 0x07, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x1F, 0x01, 0x16, 0x32, 0x37, 0x16, 0x1F, 0x01, 0x07, 0x06, 0x22, 0x26, 0x34, 0x3F, 0x01, 0x22, 0x26, 0x34, + 0x36, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x22, 0x06, 0x31, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, 0x27, 0x26, 0x36, 0x3F, 0x01, + 0x01, 0x7C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x29, 0x0E, 0x09, 0x1C, 0x14, 0x60, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0xFE, 0xF6, 0x0B, 0x0B, 0x05, + 0x05, 0x0E, 0x27, 0x0E, 0x44, 0x0C, 0x17, 0x0B, 0x44, 0x05, 0x0D, 0x3D, 0x06, 0x07, 0x1E, 0x5C, 0x09, 0x1A, 0x13, 0x09, 0x30, 0x0D, 0x13, 0x13, 0x0D, + 0xCD, 0x1A, 0x15, 0x13, 0x52, 0x01, 0x01, 0x3D, 0x0E, 0x13, 0x1A, 0x13, 0x4E, 0x14, 0x02, 0x15, 0x15, 0x01, 0xC0, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xFE, + 0x5C, 0x09, 0x07, 0x14, 0x1C, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x0C, 0x0C, 0x04, 0x0E, 0x04, 0x0E, 0x0E, 0x44, 0x0B, 0x17, 0x0C, 0x44, 0x04, 0xB8, 0x09, + 0x08, 0x1E, 0x5C, 0x09, 0x13, 0x1A, 0x0A, 0xD2, 0x13, 0x1A, 0x13, 0x31, 0x13, 0x53, 0x01, 0x3D, 0x0E, 0x14, 0x59, 0x0D, 0x13, 0x13, 0x0D, 0x53, 0x4E, + 0x14, 0x38, 0x12, 0x11, 0x00, 0x00, 0x03, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x24, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, + 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x12, 0x16, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x25, 0x2E, 0x01, 0x3E, 0x01, 0x1F, 0x01, 0x37, 0x27, 0x26, 0x37, + 0x1F, 0x01, 0x1E, 0x01, 0x0F, 0x01, 0x17, 0x16, 0x37, 0x36, 0x01, 0x27, 0x26, 0x37, 0x36, 0x1F, 0x01, 0x37, 0x16, 0x15, 0x17, 0x37, 0x36, 0x16, 0x1F, + 0x02, 0x1E, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x26, 0x2F, 0x01, 0x07, 0x2F, 0x01, 0x06, 0x27, 0x01, 0xC4, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x12, 0x0E, 0x07, + 0x1A, 0x25, 0x14, 0x11, 0xFE, 0x78, 0x09, 0x06, 0x09, 0x13, 0x09, 0xC6, 0x2E, 0x4B, 0x17, 0x05, 0x6B, 0x28, 0x0D, 0x03, 0x0A, 0x31, 0x88, 0x19, 0x14, + 0x07, 0xFE, 0x9A, 0x1A, 0x04, 0x03, 0x02, 0x03, 0x23, 0x0B, 0x15, 0x3E, 0x52, 0x1D, 0x30, 0x07, 0x11, 0x34, 0x0C, 0x09, 0x0C, 0x19, 0x0C, 0x3A, 0x12, + 0x06, 0x07, 0x20, 0x73, 0x2F, 0x13, 0x18, 0x01, 0x60, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xFE, 0x87, 0x0E, 0x14, 0x07, 0x1A, 0x08, 0xCB, 0x04, 0x13, 0x12, + 0x06, 0x05, 0x66, 0x45, 0x4B, 0x17, 0x1F, 0x35, 0x28, 0x0C, 0x23, 0x0E, 0x4A, 0x46, 0x0B, 0x14, 0x07, 0x01, 0x61, 0x17, 0x04, 0x04, 0x02, 0x01, 0x06, + 0x15, 0x0B, 0x18, 0x1F, 0x20, 0x0C, 0x1D, 0x16, 0x33, 0x1A, 0x06, 0x19, 0x18, 0x09, 0x06, 0x1D, 0x09, 0x13, 0x13, 0x0D, 0x39, 0x18, 0x11, 0x0C, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x2E, 0x00, 0x42, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x22, 0x26, 0x34, 0x36, + 0x32, 0x16, 0x14, 0x12, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x13, 0x30, 0x26, 0x35, 0x26, 0x36, 0x3F, 0x01, + 0x36, 0x1F, 0x01, 0x16, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x33, 0x32, 0x36, 0x34, 0x07, 0x37, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x27, + 0x26, 0x0F, 0x01, 0x06, 0x07, 0x03, 0x33, 0x37, 0x16, 0x1F, 0x01, 0x07, 0x33, 0x37, 0x23, 0x22, 0x2F, 0x01, 0x07, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x01, + 0x64, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x9E, 0x14, 0x0E, 0x2A, 0x1E, 0xFE, 0x20, 0x0A, 0x0E, 0x0E, 0x0A, 0x2B, 0x36, 0x02, 0x08, 0x03, 0x0A, 0x28, 0x25, + 0x2C, 0x47, 0x2A, 0x14, 0x1A, 0x2C, 0x0D, 0x13, 0x14, 0x1A, 0x46, 0x0A, 0x0E, 0xEC, 0x19, 0x55, 0x15, 0x0F, 0x0A, 0x25, 0x0F, 0x0D, 0x0C, 0x27, 0x06, + 0x06, 0x34, 0x18, 0x3E, 0x0C, 0x12, 0x16, 0x2B, 0xCF, 0x19, 0x21, 0x1E, 0x0D, 0x14, 0x20, 0x3D, 0x0F, 0x0C, 0x05, 0x18, 0x01, 0x60, 0x1C, 0x28, 0x1C, + 0x1C, 0x28, 0xFE, 0xA4, 0x0E, 0x0A, 0x1E, 0x2A, 0x0E, 0x14, 0x0E, 0x01, 0x0F, 0x01, 0x01, 0x0A, 0x1B, 0x08, 0x1E, 0x1C, 0x0B, 0x15, 0x0B, 0x28, 0x35, + 0x13, 0x0D, 0x16, 0x08, 0xB2, 0x0E, 0x14, 0x22, 0x51, 0x32, 0x0D, 0x2E, 0x16, 0x57, 0x05, 0x03, 0x0A, 0x1E, 0x04, 0x02, 0xFE, 0xFB, 0x84, 0x12, 0x0A, + 0x0D, 0x5B, 0xB0, 0x1B, 0x29, 0x4E, 0x24, 0x09, 0x1E, 0x0F, 0x4C, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x83, 0x01, 0xA0, 0x00, 0x19, 0x00, 0x3E, + 0x00, 0x00, 0x25, 0x16, 0x07, 0x0E, 0x01, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x36, 0x35, 0x34, 0x2F, 0x01, 0x26, 0x3F, + 0x01, 0x36, 0x17, 0x25, 0x35, 0x22, 0x26, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x1E, 0x02, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x33, 0x32, 0x16, 0x14, 0x06, + 0x23, 0x15, 0x14, 0x06, 0x23, 0x15, 0x23, 0x35, 0x23, 0x15, 0x23, 0x35, 0x2E, 0x01, 0x02, 0x65, 0x1D, 0x02, 0x02, 0x2C, 0x1E, 0xFD, 0xFC, 0x07, 0x09, + 0x09, 0x07, 0x02, 0x07, 0x0B, 0x0E, 0x09, 0x0A, 0x0C, 0x0A, 0x0A, 0x0A, 0x0C, 0xFD, 0xC5, 0x0D, 0x13, 0x13, 0x0D, 0x15, 0x31, 0x54, 0x2C, 0x54, 0x31, + 0x15, 0x1A, 0x26, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x38, 0x28, 0x40, 0xC0, 0x40, 0x2A, 0x36, 0x61, 0x17, 0x26, 0x1D, 0x27, 0x09, 0x07, 0x10, 0x07, 0x09, + 0x0E, 0x0B, 0x0B, 0x08, 0x07, 0x0A, 0x0D, 0x0C, 0x0D, 0x0A, 0x77, 0x80, 0x13, 0x1A, 0x13, 0x34, 0x58, 0x34, 0x26, 0x1A, 0x40, 0x13, 0x1A, 0x13, 0x60, + 0x28, 0x38, 0x30, 0x30, 0x30, 0x34, 0x0B, 0x45, 0x00, 0x04, 0xFF, 0xFE, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x12, 0x00, 0x34, 0x00, 0x55, 0x00, + 0x77, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x27, 0x06, 0x23, 0x22, 0x26, 0x3E, 0x02, 0x37, 0x26, 0x35, 0x34, 0x17, 0x32, 0x36, 0x35, + 0x34, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x06, 0x15, 0x14, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x2B, 0x01, + 0x22, 0x1D, 0x01, 0x14, 0x33, 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x0F, 0x01, 0x27, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x3B, 0x01, + 0x32, 0x3D, 0x01, 0x17, 0x16, 0x32, 0x3F, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x33, 0x32, 0x36, 0x35, 0x34, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x3B, 0x01, + 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x06, 0x15, 0x14, 0x1F, 0x01, 0x16, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x33, 0x96, 0xD4, 0x96, + 0x96, 0x6A, 0x38, 0x33, 0x41, 0x4C, 0x05, 0x04, 0x07, 0x11, 0x1C, 0x06, 0x39, 0x80, 0x12, 0x19, 0x0E, 0x16, 0x02, 0x0B, 0x0C, 0x08, 0x08, 0x0C, 0x12, + 0x19, 0x0E, 0x16, 0x02, 0x0B, 0x0C, 0x08, 0x08, 0xCC, 0x09, 0x07, 0x10, 0x0A, 0x04, 0x12, 0x12, 0x04, 0x0A, 0x10, 0x07, 0x09, 0x08, 0x10, 0x08, 0x19, + 0x02, 0x0A, 0x02, 0x19, 0x08, 0x10, 0x08, 0x30, 0x12, 0x19, 0x0E, 0x16, 0x02, 0x0B, 0x0C, 0x08, 0x08, 0x0C, 0x12, 0x19, 0x0E, 0x16, 0x02, 0x0B, 0x0C, + 0x08, 0x08, 0x01, 0xA0, 0x7A, 0xAC, 0x7A, 0x13, 0x33, 0x0A, 0x07, 0x15, 0x31, 0x16, 0x39, 0x4A, 0x56, 0x96, 0x17, 0x10, 0x10, 0x0C, 0x13, 0x01, 0x02, + 0x07, 0x08, 0x10, 0x08, 0x17, 0x10, 0x11, 0x0B, 0x13, 0x01, 0x02, 0x07, 0x08, 0x10, 0x08, 0x08, 0x68, 0x07, 0x09, 0x09, 0x23, 0x23, 0x09, 0x09, 0x07, + 0x68, 0x08, 0x08, 0x44, 0x38, 0x04, 0x04, 0x38, 0x44, 0x08, 0x17, 0x10, 0x10, 0x0C, 0x13, 0x01, 0x02, 0x07, 0x08, 0x10, 0x08, 0x17, 0x10, 0x11, 0x0B, + 0x13, 0x01, 0x02, 0x07, 0x08, 0x10, 0x08, 0x00, 0x00, 0x03, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x02, 0x01, 0xC3, 0x00, 0x07, 0x00, 0x45, 0x00, 0x51, 0x00, + 0x00, 0x00, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x27, 0x07, 0x17, 0x16, 0x0F, 0x01, 0x06, 0x07, 0x17, 0x16, 0x37, 0x36, 0x1E, 0x01, 0x06, + 0x07, 0x06, 0x23, 0x22, 0x27, 0x25, 0x26, 0x27, 0x26, 0x3E, 0x01, 0x16, 0x17, 0x16, 0x1F, 0x01, 0x26, 0x27, 0x26, 0x36, 0x3F, 0x01, 0x35, 0x34, 0x3F, + 0x01, 0x27, 0x26, 0x2F, 0x01, 0x26, 0x3E, 0x01, 0x16, 0x1F, 0x02, 0x16, 0x1F, 0x01, 0x1E, 0x01, 0x07, 0x06, 0x23, 0x22, 0x07, 0x27, 0x15, 0x14, 0x06, + 0x0F, 0x01, 0x06, 0x07, 0x17, 0x26, 0x37, 0x01, 0xC4, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x13, 0x54, 0x42, 0x34, 0x19, 0x07, 0x15, 0x04, 0x0E, 0x5A, 0x10, + 0x0E, 0x09, 0x13, 0x08, 0x07, 0x09, 0x11, 0x13, 0x0F, 0x0F, 0xFE, 0x93, 0x21, 0x10, 0x04, 0x07, 0x12, 0x13, 0x04, 0x07, 0x0F, 0x26, 0x06, 0x02, 0x05, + 0x0C, 0x0D, 0x4A, 0x23, 0x2A, 0x11, 0x13, 0x09, 0x1D, 0x06, 0x09, 0x18, 0x19, 0x06, 0x1A, 0x3F, 0x19, 0x15, 0x6F, 0x0B, 0x04, 0x08, 0x0A, 0x10, 0x0B, + 0x99, 0x3C, 0x12, 0x0F, 0x55, 0x02, 0x06, 0xAA, 0x05, 0x02, 0x01, 0x60, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xB6, 0x3F, 0x1E, 0x27, 0x13, 0x1E, 0x66, 0x0F, + 0x06, 0x22, 0x05, 0x07, 0x04, 0x07, 0x12, 0x13, 0x04, 0x08, 0x05, 0x85, 0x0C, 0x21, 0x09, 0x12, 0x09, 0x07, 0x09, 0x0F, 0x05, 0x0E, 0x06, 0x07, 0x0D, + 0x17, 0x04, 0x19, 0x35, 0x28, 0x11, 0x15, 0x06, 0x06, 0x12, 0x3A, 0x0B, 0x1A, 0x0B, 0x08, 0x0C, 0x34, 0x15, 0x08, 0x10, 0x53, 0x08, 0x1B, 0x0A, 0x0D, + 0x2D, 0x2D, 0x14, 0x10, 0x19, 0x05, 0x1C, 0x01, 0x01, 0x3D, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x02, 0x01, 0xC1, 0x00, + 0x51, 0x00, 0x59, 0x00, 0x61, 0x00, 0x69, 0x00, 0x71, 0x00, 0x7C, 0x00, 0x84, 0x00, 0x00, 0x01, 0x16, 0x06, 0x0F, 0x01, 0x14, 0x16, 0x14, 0x15, 0x14, + 0x07, 0x16, 0x17, 0x16, 0x06, 0x07, 0x06, 0x2B, 0x01, 0x22, 0x27, 0x2E, 0x01, 0x35, 0x34, 0x37, 0x26, 0x35, 0x30, 0x37, 0x27, 0x2E, 0x01, 0x3F, 0x01, + 0x3E, 0x01, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x31, 0x15, 0x17, 0x36, 0x37, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, + 0x15, 0x14, 0x07, 0x16, 0x17, 0x37, 0x30, 0x34, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x37, 0x36, 0x16, 0x17, 0x24, 0x32, 0x36, + 0x34, 0x26, 0x22, 0x06, 0x14, 0x12, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x37, 0x36, 0x35, 0x34, 0x26, 0x22, 0x06, 0x15, 0x14, 0x16, 0x17, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xFF, + 0x02, 0x05, 0x06, 0x87, 0x01, 0x04, 0x21, 0x08, 0x09, 0x23, 0x25, 0x10, 0x15, 0x63, 0x12, 0x0D, 0x21, 0x26, 0x2C, 0x04, 0x01, 0x87, 0x06, 0x05, 0x02, + 0x06, 0x03, 0x0C, 0x06, 0x1C, 0x09, 0x07, 0x10, 0x07, 0x09, 0x38, 0x09, 0x0D, 0x16, 0x38, 0x50, 0x38, 0x16, 0x0D, 0x09, 0x38, 0x09, 0x07, 0x10, 0x07, + 0x09, 0x1C, 0x06, 0x0D, 0x02, 0xFE, 0xE0, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x29, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x09, + 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x10, 0x10, 0x09, 0x0E, 0x09, 0x08, 0x04, 0x1D, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x01, 0x28, 0x06, 0x0C, 0x03, 0x37, 0x01, + 0x05, 0x04, 0x02, 0x0D, 0x10, 0x22, 0x2D, 0x2E, 0x51, 0x19, 0x0C, 0x08, 0x15, 0x43, 0x28, 0x3F, 0x2C, 0x10, 0x0D, 0x0C, 0x37, 0x03, 0x0C, 0x06, 0x0E, + 0x06, 0x05, 0x02, 0x0C, 0x1D, 0x07, 0x09, 0x09, 0x07, 0x2E, 0x01, 0x01, 0x17, 0x0F, 0x0C, 0x1B, 0x21, 0x28, 0x38, 0x38, 0x28, 0x22, 0x1A, 0x0C, 0x0F, + 0x17, 0x01, 0x01, 0x2E, 0x07, 0x09, 0x09, 0x07, 0x1D, 0x0C, 0x02, 0x05, 0x06, 0x2A, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0xFE, 0xE7, 0x09, 0x0E, 0x09, 0x09, + 0x0E, 0x37, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x37, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x4F, 0x17, 0x09, 0x07, 0x09, 0x09, 0x07, 0x04, 0x10, 0x06, 0x32, 0x09, + 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, + 0x00, 0x5A, 0x00, 0x5F, 0x00, 0x6B, 0x00, 0x00, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, + 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x05, 0x17, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, + 0x26, 0x3D, 0x01, 0x23, 0x16, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, + 0x01, 0x32, 0x1F, 0x01, 0x16, 0x1D, 0x01, 0x33, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x1D, 0x01, 0x14, 0x01, + 0x15, 0x17, 0x33, 0x27, 0x13, 0x32, 0x36, 0x34, 0x26, 0x23, 0x21, 0x22, 0x06, 0x14, 0x16, 0x33, 0x6E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x5E, 0x14, 0x0E, + 0x0E, 0x14, 0x0E, 0x5E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x5E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x01, 0x07, 0x24, 0x05, 0x05, 0x16, 0x05, 0x0D, 0x05, 0x25, + 0x29, 0x2B, 0x0B, 0x42, 0x2E, 0xFF, 0x00, 0x2E, 0x42, 0x23, 0x1D, 0x1C, 0x14, 0x10, 0x1C, 0x14, 0x90, 0x20, 0x0C, 0x4F, 0x05, 0x40, 0x29, 0x25, 0x05, + 0x0D, 0x05, 0x16, 0x05, 0x05, 0x24, 0x17, 0xFE, 0x80, 0x40, 0x7A, 0x44, 0x3A, 0x14, 0x1C, 0x1C, 0x14, 0xFF, 0x00, 0x14, 0x1C, 0x1C, 0x14, 0x48, 0x0E, + 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x23, 0x25, 0x05, + 0x0D, 0x05, 0x16, 0x05, 0x05, 0x24, 0x2A, 0x3A, 0x13, 0x17, 0x19, 0x2E, 0x42, 0x42, 0x2E, 0x21, 0x36, 0x0E, 0x5B, 0x14, 0x1C, 0x70, 0x14, 0x1C, 0x1D, + 0xB7, 0x0C, 0x0D, 0x33, 0x13, 0x3A, 0x2A, 0x24, 0x05, 0x05, 0x16, 0x05, 0x0D, 0x05, 0x25, 0x16, 0x20, 0x66, 0x20, 0x01, 0x53, 0x60, 0x40, 0xA0, 0xFE, + 0x80, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0x80, 0x01, 0xA0, 0x00, 0x13, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x32, + 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x23, 0x22, 0x3D, 0x01, 0x34, 0x33, 0x25, 0x32, 0x1D, 0x01, 0x14, 0x23, 0x21, + 0x22, 0x3D, 0x01, 0x34, 0x33, 0x01, 0x74, 0x0C, 0x0C, 0x8C, 0x0C, 0x38, 0x0C, 0x8C, 0x0C, 0x0C, 0x01, 0x68, 0x0C, 0x0C, 0xFE, 0x98, 0x0C, 0x0C, 0x01, + 0x20, 0x0C, 0x38, 0x0C, 0xE4, 0x0C, 0x0C, 0xE4, 0x0C, 0x38, 0x0C, 0x80, 0x0C, 0x38, 0x0C, 0x0C, 0x38, 0x0C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, + 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x25, 0x00, 0x31, 0x00, 0x39, 0x00, 0x00, 0x01, 0x23, 0x15, 0x16, 0x15, 0x14, 0x06, 0x07, 0x17, 0x16, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x3F, 0x01, 0x2E, 0x01, 0x35, 0x34, 0x37, 0x35, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x05, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x70, 0x10, 0x20, + 0x2F, 0x28, 0x16, 0x04, 0x13, 0x10, 0xC0, 0x10, 0x13, 0x04, 0x16, 0x28, 0x2F, 0x20, 0x10, 0x07, 0x09, 0x09, 0x07, 0x01, 0x60, 0x07, 0x09, 0x09, 0xFE, + 0xD9, 0x08, 0x30, 0x08, 0x08, 0x30, 0x08, 0x36, 0x74, 0x52, 0x52, 0x74, 0x52, 0x01, 0x90, 0x9D, 0x10, 0x13, 0x32, 0x54, 0x1A, 0x47, 0x0F, 0x1A, 0x1A, + 0x0F, 0x47, 0x1A, 0x54, 0x32, 0x13, 0x10, 0x9D, 0x09, 0x07, 0x10, 0x07, 0x09, 0x09, 0x07, 0x10, 0x07, 0x09, 0x18, 0x10, 0x08, 0x08, 0x10, 0x08, 0xD0, + 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x05, 0x01, 0xC5, 0x00, 0x15, 0x00, 0x2F, 0x00, 0x39, 0x00, 0x41, 0x00, 0x00, + 0x25, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x2E, 0x01, 0x37, 0x27, 0x23, 0x27, 0x37, 0x17, 0x15, 0x17, 0x36, 0x16, 0x17, 0x27, 0x22, 0x07, + 0x27, 0x26, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x1F, 0x01, 0x37, 0x36, 0x16, 0x17, 0x16, 0x06, 0x07, 0x06, 0x07, 0x27, 0x26, 0x07, 0x06, + 0x17, 0x07, 0x06, 0x22, 0x26, 0x34, 0x3F, 0x01, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xF5, 0x0B, 0x0B, 0x35, 0x0A, 0x1F, 0x0B, 0x75, + 0x11, 0x08, 0x0B, 0x6B, 0x3E, 0x60, 0x40, 0x80, 0x6B, 0x14, 0x30, 0x11, 0x34, 0x0D, 0x0C, 0x52, 0x01, 0x2A, 0x1B, 0x49, 0x25, 0x07, 0x03, 0x05, 0x4A, + 0x0B, 0x44, 0x4B, 0x05, 0x0D, 0x02, 0x09, 0x14, 0x1B, 0x13, 0x19, 0x13, 0x1F, 0x94, 0x07, 0x0C, 0x7C, 0x13, 0x35, 0x25, 0x13, 0x98, 0x75, 0x14, 0x0E, + 0x0E, 0x14, 0x0E, 0x34, 0x0B, 0x1E, 0x0B, 0x35, 0x0B, 0x0B, 0x75, 0x11, 0x30, 0x14, 0x6B, 0x80, 0x40, 0x60, 0x3E, 0x6B, 0x0B, 0x08, 0x11, 0x36, 0x03, + 0x52, 0x3D, 0x2B, 0x1B, 0x14, 0x09, 0x02, 0x0E, 0x04, 0x4B, 0x44, 0x0B, 0x4A, 0x05, 0x03, 0x07, 0x24, 0x4A, 0x1B, 0x12, 0x0B, 0x13, 0x1F, 0x52, 0x1F, + 0x20, 0x7B, 0x13, 0x25, 0x35, 0x13, 0x99, 0xDE, 0x0E, 0x14, 0x0E, 0x0E, 0x14, 0x00, 0x06, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x02, 0x01, 0xC0, 0x00, 0x07, + 0x00, 0x29, 0x00, 0x2D, 0x00, 0x31, 0x00, 0x35, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x32, 0x16, 0x06, 0x0F, 0x01, + 0x15, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x07, 0x22, 0x23, 0x22, 0x27, 0x26, + 0x36, 0x37, 0x25, 0x36, 0x01, 0x35, 0x23, 0x15, 0x25, 0x15, 0x33, 0x35, 0x2B, 0x01, 0x15, 0x33, 0x02, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x01, + 0x2D, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0xBE, 0x03, 0x06, 0x07, 0xE4, 0xB0, 0x0D, 0x13, 0x13, 0x0D, 0xFE, 0x80, 0x0D, 0x13, 0x13, 0x0D, 0xB0, 0xDC, 0x02, + 0x02, 0x0C, 0x03, 0x02, 0x07, 0x06, 0x01, 0xE0, 0x06, 0xFE, 0xBE, 0x60, 0x01, 0x00, 0x60, 0x80, 0x60, 0x60, 0x63, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, + 0x80, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x0D, 0x0C, 0x02, 0x3C, 0x5C, 0x13, 0x0D, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0xE0, 0x0D, 0x13, 0x53, 0x3B, 0x0C, 0x06, + 0x0C, 0x01, 0x80, 0x02, 0xFE, 0xA7, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x01, 0x20, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x00, 0x01, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, + 0x16, 0x17, 0x36, 0x13, 0x3E, 0x01, 0x27, 0x26, 0x27, 0x07, 0x26, 0x27, 0x0E, 0x01, 0x15, 0x14, 0x16, 0x33, 0x32, 0x01, 0x44, 0x34, 0x48, 0x83, 0xBA, + 0x83, 0x5F, 0x49, 0x39, 0x2A, 0x1B, 0x0A, 0x24, 0x13, 0x15, 0x06, 0x06, 0x3A, 0x5C, 0x07, 0x28, 0x21, 0x4B, 0x38, 0x2B, 0x01, 0x8D, 0x30, 0x8C, 0x2B, + 0x5F, 0x87, 0x87, 0x5F, 0x36, 0xA0, 0x44, 0x35, 0x3A, 0x20, 0xFE, 0xC7, 0x1A, 0x59, 0x27, 0x09, 0x0B, 0x43, 0x75, 0x08, 0x30, 0x38, 0x1B, 0x38, 0x45, + 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x41, 0x01, 0xC0, 0x00, 0x28, 0x00, 0x51, 0x00, 0x00, 0x36, 0x0E, 0x02, 0x07, 0x06, 0x07, 0x27, 0x26, + 0x36, 0x37, 0x36, 0x37, 0x30, 0x37, 0x36, 0x37, 0x3E, 0x04, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x06, 0x07, 0x0E, 0x05, 0x07, 0x0E, 0x01, + 0x25, 0x16, 0x06, 0x07, 0x06, 0x07, 0x22, 0x07, 0x06, 0x07, 0x0E, 0x04, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x36, 0x37, 0x3E, 0x05, 0x37, + 0x3E, 0x05, 0x37, 0x36, 0x37, 0xEB, 0x20, 0x21, 0x14, 0x11, 0x35, 0x23, 0x24, 0x09, 0x01, 0x0A, 0x24, 0x37, 0x02, 0x45, 0x1C, 0x05, 0x08, 0x20, 0x24, + 0x43, 0x29, 0x1B, 0x0E, 0x08, 0x0A, 0x0D, 0x09, 0x25, 0x1E, 0x2E, 0x13, 0x16, 0x26, 0x25, 0x1A, 0x0A, 0x07, 0x07, 0x08, 0x01, 0x35, 0x09, 0x01, 0x0A, + 0x24, 0x37, 0x01, 0x01, 0x45, 0x1C, 0x06, 0x07, 0x20, 0x25, 0x43, 0x28, 0x1B, 0x0E, 0x08, 0x0A, 0x0D, 0x09, 0x25, 0x1E, 0x2E, 0x13, 0x16, 0x26, 0x25, + 0x1A, 0x0A, 0x07, 0x06, 0x09, 0x17, 0x20, 0x21, 0x14, 0x11, 0x35, 0x23, 0x80, 0x21, 0x16, 0x09, 0x06, 0x14, 0x21, 0x23, 0x0A, 0x1B, 0x08, 0x1E, 0x15, + 0x01, 0x17, 0x4A, 0x0F, 0x12, 0x36, 0x26, 0x30, 0x0F, 0x0A, 0x0A, 0x06, 0x09, 0x25, 0x1C, 0x12, 0x07, 0x0A, 0x1A, 0x25, 0x26, 0x15, 0x13, 0x12, 0x13, + 0xB7, 0x0A, 0x1B, 0x08, 0x1E, 0x15, 0x01, 0x17, 0x4A, 0x0F, 0x12, 0x36, 0x27, 0x2F, 0x0F, 0x0A, 0x0A, 0x06, 0x09, 0x25, 0x1C, 0x12, 0x07, 0x0A, 0x19, + 0x26, 0x26, 0x15, 0x13, 0x12, 0x13, 0x21, 0x21, 0x16, 0x09, 0x06, 0x14, 0x21, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, + 0xC0, 0x00, 0x16, 0x00, 0x32, 0x00, 0x3A, 0x00, 0x00, 0x25, 0x14, 0x07, 0x06, 0x14, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, + 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x15, 0x05, 0x15, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x2B, + 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x13, 0x35, 0x21, 0x22, 0x06, 0x14, 0x16, 0x33, 0x01, 0xC0, 0x0A, 0x02, 0x02, 0x0A, 0x0F, + 0x0B, 0xFE, 0xBA, 0x29, 0x37, 0x37, 0x29, 0x01, 0x46, 0x1A, 0xFE, 0xD0, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, + 0x08, 0xED, 0xFE, 0xE3, 0x0D, 0x13, 0x12, 0x0E, 0x5A, 0x0F, 0x05, 0x09, 0x34, 0x0C, 0x0A, 0x09, 0x10, 0x0C, 0x0E, 0x37, 0x29, 0x01, 0x40, 0x29, 0x37, + 0x1A, 0x8E, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0xFE, 0xE0, 0x40, 0x12, 0x1C, 0x12, 0x00, 0x00, 0x01, 0x00, + 0x00, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC0, 0x00, 0x13, 0x00, 0x00, 0x12, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x35, 0x11, 0x22, 0x26, 0x35, 0x34, 0xA1, 0xFE, 0xA1, 0x23, 0x1D, 0x15, 0x0F, 0xFE, 0x88, 0x0F, 0x15, 0x1D, 0x23, 0x01, 0xC0, 0x6B, 0x3E, 0x18, 0x1F, + 0xFF, 0x00, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x00, 0x1F, 0x18, 0x3E, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA1, 0x00, 0x09, 0x00, 0x12, + 0x00, 0x00, 0x35, 0x21, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x01, 0x1E, 0x01, 0x15, 0x21, 0x25, 0x36, 0x33, 0x30, 0x02, 0x00, 0x13, 0x0D, + 0xFE, 0x40, 0x0D, 0x13, 0x01, 0x2C, 0x59, 0x7B, 0xFE, 0x00, 0x01, 0x17, 0x08, 0x0C, 0xA0, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0xA0, 0x05, 0x81, 0x5A, + 0xD9, 0x07, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x02, 0x40, 0x01, 0xC1, 0x00, 0x10, 0x00, 0x2C, 0x00, 0x48, 0x00, 0x00, 0x01, 0x17, 0x1E, + 0x01, 0x33, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x32, 0x36, 0x35, 0x05, 0x35, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, + 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x37, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, + 0x22, 0x2F, 0x01, 0x26, 0x22, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x2F, 0x01, 0x26, 0x35, 0x34, 0x37, 0x25, 0x36, 0x32, 0x17, 0x01, 0x20, 0xDB, 0x01, 0x03, + 0x01, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x01, 0x04, 0x01, 0x3B, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, + 0xBB, 0x05, 0x04, 0x15, 0x05, 0x07, 0x07, 0x04, 0xE5, 0x05, 0x0C, 0x05, 0xE5, 0x04, 0x07, 0x07, 0x04, 0x16, 0x04, 0x05, 0x01, 0x00, 0x0C, 0x1E, 0x0C, + 0x01, 0x4D, 0xC1, 0x01, 0x02, 0xB9, 0x07, 0x09, 0x09, 0x07, 0xB9, 0x02, 0x01, 0x44, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, + 0x08, 0x38, 0x94, 0x05, 0x07, 0x06, 0x05, 0x18, 0x05, 0x04, 0xCA, 0x04, 0x04, 0xCA, 0x04, 0x05, 0x18, 0x05, 0x06, 0x07, 0x05, 0xE2, 0x0A, 0x0A, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x16, 0x00, 0x32, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x31, 0x22, + 0x27, 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x3E, 0x02, 0x37, 0x26, 0x35, 0x34, 0x05, 0x35, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, + 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x96, 0xD4, 0x96, 0x96, 0x6A, 0x01, 0x37, 0x33, 0x41, + 0x4C, 0x08, 0x02, 0x04, 0x11, 0x1C, 0x06, 0x39, 0x01, 0x60, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x01, + 0xA0, 0x7A, 0xAC, 0x7A, 0x13, 0x33, 0x08, 0x03, 0x03, 0x03, 0x15, 0x31, 0x16, 0x3A, 0x49, 0x56, 0x6E, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, + 0x08, 0x38, 0x08, 0x08, 0x38, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x25, 0x00, 0x2E, 0x00, 0x00, + 0x01, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x17, 0x07, 0x06, 0x0F, 0x02, 0x06, 0x22, + 0x2F, 0x01, 0x26, 0x34, 0x3F, 0x02, 0x36, 0x3F, 0x01, 0x17, 0x07, 0x17, 0x37, 0x27, 0x07, 0x06, 0x0F, 0x01, 0x37, 0x36, 0x01, 0xFB, 0x05, 0x05, 0x16, + 0x05, 0x0D, 0x05, 0xB5, 0x05, 0x05, 0x17, 0x04, 0x0E, 0x04, 0x02, 0x37, 0x2D, 0x6E, 0x13, 0x1B, 0x78, 0x66, 0x05, 0x0D, 0x05, 0x16, 0x05, 0x05, 0x66, + 0x1B, 0x07, 0x13, 0x6E, 0x2D, 0x37, 0x0D, 0x0A, 0x44, 0x0A, 0x06, 0x02, 0x13, 0x50, 0x09, 0x01, 0x06, 0x04, 0x0E, 0x04, 0x17, 0x05, 0x05, 0xB5, 0x05, + 0x0D, 0x05, 0x16, 0x05, 0x05, 0xF7, 0x37, 0x2D, 0x6E, 0x13, 0x07, 0x1B, 0x66, 0x05, 0x05, 0x16, 0x05, 0x0D, 0x05, 0x66, 0x78, 0x1B, 0x13, 0x6E, 0x2D, + 0x37, 0x7B, 0x0A, 0x44, 0x0A, 0x06, 0x09, 0x50, 0x13, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xF4, 0xFF, 0xD7, 0x02, 0x03, 0x01, 0xA7, 0x00, 0x22, + 0x00, 0x2A, 0x00, 0x32, 0x00, 0x3A, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x0F, 0x01, 0x0E, 0x01, 0x2F, 0x01, 0x26, 0x0F, 0x01, 0x06, 0x26, + 0x3F, 0x01, 0x36, 0x2F, 0x01, 0x26, 0x36, 0x1F, 0x01, 0x16, 0x3F, 0x01, 0x36, 0x16, 0x1F, 0x01, 0x16, 0x17, 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0xD8, 0x25, 0x06, 0x22, 0x3E, 0x1C, 0x02, + 0x05, 0x03, 0x48, 0x1D, 0x37, 0x19, 0x20, 0x46, 0x26, 0x33, 0x10, 0x1C, 0x0D, 0x12, 0x26, 0x15, 0x29, 0x27, 0x48, 0x21, 0x15, 0x2E, 0x19, 0x4C, 0x09, + 0x10, 0x07, 0x1F, 0xFE, 0xFE, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x93, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x29, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0xFC, 0x0C, 0x43, + 0x12, 0x1F, 0x0F, 0x1C, 0x3E, 0x22, 0x1A, 0x16, 0x29, 0x13, 0x07, 0x0F, 0x09, 0x34, 0x1F, 0x39, 0x1A, 0x18, 0x34, 0x1D, 0x39, 0x03, 0x06, 0x02, 0x16, + 0x2F, 0x1A, 0x0F, 0x21, 0x3D, 0x1B, 0x0B, 0x53, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x73, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x6D, 0x09, 0x0E, 0x09, 0x09, 0x0E, + 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x0B, 0x00, 0x00, 0x12, 0x32, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, + 0x34, 0x36, 0x8F, 0x62, 0x5D, 0x32, 0x70, 0xA0, 0x70, 0x32, 0x01, 0xC0, 0x75, 0x94, 0x37, 0x50, 0x70, 0x70, 0x50, 0x37, 0x94, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0B, 0x00, 0x1B, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x3F, 0x00, 0x00, 0x25, 0x32, + 0x16, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x34, 0x36, 0x33, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x33, 0x37, 0x22, 0x26, 0x37, 0x3E, 0x01, 0x32, 0x16, 0x17, 0x16, 0x06, 0x23, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, + 0x16, 0x32, 0x36, 0x34, 0x06, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x01, 0xD0, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0x60, 0x14, 0x1C, 0x1C, 0x14, 0x01, + 0xB0, 0x07, 0x09, 0x26, 0x1A, 0xFE, 0xA0, 0x1A, 0x26, 0x09, 0x07, 0x1B, 0x1A, 0x18, 0x0F, 0x1F, 0x7E, 0x96, 0x7E, 0x1F, 0x0F, 0x18, 0x1A, 0x3E, 0x0E, + 0x09, 0x09, 0x0E, 0x09, 0x89, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0x89, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0xC0, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x80, 0x09, + 0x07, 0x10, 0x1A, 0x26, 0x26, 0x1A, 0x10, 0x07, 0x09, 0xA0, 0x34, 0x18, 0x32, 0x42, 0x42, 0x32, 0x18, 0x34, 0x70, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x29, + 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x17, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x00, 0x00, 0x01, 0x00, 0x20, 0xFF, 0xC0, 0x01, 0xE0, 0x01, 0xC1, 0x00, 0x37, 0x00, + 0x00, 0x25, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x15, 0x14, 0x32, 0x3D, 0x01, 0x34, 0x36, 0x3F, 0x01, + 0x36, 0x16, 0x1D, 0x01, 0x14, 0x32, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x32, 0x31, 0x1E, 0x01, 0x1D, 0x01, 0x14, 0x32, 0x3D, 0x01, 0x34, 0x36, 0x1F, 0x01, + 0x1E, 0x01, 0x1D, 0x01, 0x17, 0x1E, 0x01, 0x01, 0xE0, 0x42, 0x2E, 0xD7, 0x2E, 0x21, 0x1F, 0x0B, 0x15, 0x1B, 0x10, 0x11, 0x0E, 0x1F, 0x0D, 0x15, 0x10, + 0x1C, 0x14, 0x01, 0x14, 0x1B, 0x10, 0x15, 0x0D, 0x27, 0x0A, 0x0D, 0x24, 0x0C, 0x10, 0x83, 0x53, 0x2E, 0x42, 0x21, 0x1F, 0x0B, 0x0F, 0x4A, 0x17, 0x0A, + 0x0F, 0x4C, 0x08, 0x08, 0x93, 0x0B, 0x12, 0x02, 0x06, 0x02, 0x0F, 0x0B, 0x20, 0x08, 0x08, 0xC8, 0x14, 0x1C, 0x01, 0x1D, 0x14, 0xC6, 0x08, 0x08, 0x20, + 0x0B, 0x0F, 0x02, 0x07, 0x02, 0x0D, 0x08, 0x32, 0x09, 0x03, 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, + 0x13, 0x00, 0x23, 0x00, 0x00, 0x25, 0x15, 0x21, 0x35, 0x34, 0x36, 0x37, 0x17, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x37, 0x1E, 0x01, + 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x01, 0xE0, 0xFE, 0x40, 0x42, 0x35, 0x29, 0x09, 0x07, + 0x60, 0x07, 0x09, 0x29, 0x35, 0x42, 0x10, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x20, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x40, 0x40, 0x3B, 0x61, 0x16, 0x52, 0x70, + 0x07, 0x09, 0x09, 0x07, 0x70, 0x52, 0x16, 0x61, 0x9B, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0xFF, 0xC0, 0x02, 0x81, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0x4A, 0x00, 0x56, 0x00, 0x72, 0x00, 0x7E, 0x00, 0x8A, 0x00, 0x00, + 0x24, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x32, 0x16, 0x15, 0x30, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x30, 0x35, 0x34, 0x36, + 0x33, 0x32, 0x17, 0x16, 0x32, 0x37, 0x36, 0x07, 0x06, 0x15, 0x30, 0x15, 0x14, 0x17, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, + 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x06, 0x07, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, + 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x37, 0x35, 0x33, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, + 0x22, 0x1D, 0x01, 0x23, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, + 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x02, 0x08, 0x50, 0x38, 0x38, 0x50, 0x38, 0x30, 0x2E, 0x42, 0x1C, + 0x14, 0xE0, 0x14, 0x1C, 0x42, 0x2E, 0x04, 0x03, 0x14, 0x2A, 0x14, 0x03, 0xC2, 0x2A, 0x10, 0xFE, 0xE0, 0x07, 0x09, 0x13, 0x0D, 0x20, 0x13, 0x0D, 0xA0, + 0x0D, 0x13, 0x20, 0x0D, 0x13, 0x0C, 0xC4, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x30, 0x1A, 0x06, 0x06, 0x1A, 0x06, + 0x14, 0x06, 0x1A, 0x06, 0x06, 0x1A, 0x06, 0x14, 0x06, 0x50, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x80, 0x38, 0x50, + 0x38, 0x38, 0x50, 0x58, 0x42, 0x2E, 0x01, 0x13, 0x1C, 0x1C, 0x13, 0x01, 0x2E, 0x42, 0x01, 0x07, 0x07, 0x01, 0x0A, 0x2A, 0x3C, 0x01, 0x1A, 0x15, 0x09, + 0x07, 0x01, 0x70, 0x0D, 0x13, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x13, 0x0D, 0xD9, 0x07, 0x34, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x8C, 0x28, 0x0C, 0x0C, + 0x28, 0x0C, 0x86, 0x1A, 0x06, 0x14, 0x06, 0x1A, 0x06, 0x06, 0x1A, 0x06, 0x14, 0x06, 0x1A, 0x06, 0xF4, 0x28, 0x0C, 0x0C, 0x28, 0x0C, 0x8C, 0x28, 0x0C, + 0x0C, 0x28, 0x0C, 0x00, 0x00, 0x04, 0xFF, 0xFE, 0xFF, 0xBE, 0x02, 0x02, 0x01, 0xC2, 0x00, 0x0D, 0x00, 0x37, 0x00, 0x41, 0x00, 0x4B, 0x00, 0x00, 0x00, + 0x16, 0x14, 0x07, 0x01, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x01, 0x36, 0x17, 0x36, 0x34, 0x26, 0x22, 0x07, 0x06, 0x07, 0x0E, 0x01, 0x07, 0x0E, + 0x01, 0x07, 0x0E, 0x01, 0x07, 0x0E, 0x01, 0x07, 0x06, 0x07, 0x06, 0x14, 0x16, 0x32, 0x37, 0x36, 0x37, 0x3E, 0x01, 0x37, 0x3E, 0x01, 0x37, 0x3E, 0x01, + 0x37, 0x3E, 0x01, 0x37, 0x36, 0x05, 0x27, 0x2E, 0x01, 0x3F, 0x01, 0x36, 0x16, 0x1F, 0x03, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x26, 0x2F, 0x01, 0x01, 0xD1, + 0x2F, 0x17, 0xFE, 0xA0, 0x18, 0x22, 0x21, 0x2F, 0x18, 0x01, 0x60, 0x18, 0x28, 0x04, 0x09, 0x0D, 0x05, 0x0C, 0x17, 0x20, 0x27, 0x06, 0x04, 0x18, 0x17, + 0x20, 0x27, 0x06, 0x04, 0x18, 0x17, 0x20, 0x14, 0x04, 0x09, 0x0D, 0x05, 0x0C, 0x17, 0x20, 0x27, 0x06, 0x04, 0x18, 0x17, 0x20, 0x27, 0x06, 0x04, 0x18, + 0x17, 0x20, 0xFE, 0x7C, 0x0B, 0x13, 0x02, 0x11, 0xD0, 0x11, 0x33, 0x13, 0x0B, 0x9F, 0x0B, 0x13, 0x02, 0x11, 0xD0, 0x11, 0x33, 0x13, 0x0B, 0x01, 0xC0, + 0x2F, 0x42, 0x18, 0xFE, 0xA0, 0x18, 0x2F, 0x21, 0x22, 0x18, 0x01, 0x60, 0x17, 0x77, 0x05, 0x0D, 0x0A, 0x05, 0x0C, 0x04, 0x06, 0x27, 0x20, 0x17, 0x18, + 0x04, 0x06, 0x27, 0x20, 0x17, 0x18, 0x04, 0x06, 0x13, 0x05, 0x0D, 0x0A, 0x05, 0x0C, 0x04, 0x06, 0x27, 0x20, 0x17, 0x18, 0x04, 0x06, 0x27, 0x20, 0x17, + 0x18, 0x04, 0x06, 0xB8, 0x0B, 0x13, 0x33, 0x11, 0xD0, 0x11, 0x02, 0x13, 0x0B, 0x9F, 0x0B, 0x13, 0x33, 0x11, 0xD0, 0x11, 0x02, 0x13, 0x0B, 0x00, 0x02, + 0x00, 0x20, 0xFF, 0xBF, 0x01, 0xA0, 0x01, 0xC1, 0x00, 0x15, 0x00, 0x1B, 0x00, 0x00, 0x01, 0x32, 0x16, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x34, 0x36, + 0x3B, 0x01, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x03, 0x27, 0x21, 0x07, 0x06, 0x22, 0x01, 0x70, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xE0, + 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x01, 0x54, 0x78, 0x54, 0x01, 0xAC, 0x63, 0x01, 0x00, 0x63, 0x09, 0x28, 0x01, 0x20, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, + 0x08, 0x09, 0x3B, 0x55, 0x55, 0x3B, 0x09, 0x08, 0xFE, 0xB2, 0xCE, 0xCE, 0x12, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, + 0x00, 0x1B, 0x00, 0x25, 0x00, 0x29, 0x00, 0x41, 0x00, 0x00, 0x37, 0x22, 0x3D, 0x01, 0x34, 0x3B, 0x01, 0x35, 0x34, 0x3B, 0x01, 0x32, 0x1D, 0x01, 0x33, + 0x32, 0x1D, 0x01, 0x14, 0x2B, 0x01, 0x15, 0x14, 0x2B, 0x01, 0x22, 0x3D, 0x01, 0x25, 0x11, 0x21, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x03, 0x11, + 0x21, 0x11, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, + 0x37, 0xE8, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x01, 0x20, 0xFE, 0x00, 0x1C, 0x14, 0x01, 0xA0, 0x14, 0x1C, + 0x40, 0xFE, 0x80, 0x01, 0xF0, 0x07, 0x09, 0x26, 0x1A, 0xFE, 0x00, 0x1A, 0x26, 0x09, 0x07, 0xEF, 0x14, 0x0D, 0x3D, 0x0E, 0x12, 0x01, 0xE0, 0x08, 0x30, + 0x08, 0x38, 0x08, 0x08, 0x38, 0x08, 0x30, 0x08, 0x38, 0x08, 0x08, 0x38, 0xB0, 0xFE, 0xB0, 0x01, 0x50, 0x14, 0x1C, 0x1C, 0xFE, 0xDC, 0x01, 0x00, 0xFF, + 0x00, 0x60, 0x09, 0x07, 0x10, 0x1A, 0x26, 0x26, 0x1A, 0x10, 0x07, 0x09, 0x0B, 0x15, 0x11, 0x0F, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x80, 0x00, 0x0F, 0x00, 0x19, 0x00, 0x23, 0x00, 0x33, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, + 0x36, 0x33, 0x13, 0x35, 0x23, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x33, 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x15, 0x33, 0x32, 0x36, 0x37, 0x35, 0x34, + 0x26, 0x23, 0x21, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x33, 0x21, 0x32, 0x36, 0x01, 0xC0, 0x1A, 0x26, 0x26, 0x1A, 0xFE, 0x80, 0x1A, 0x26, 0x26, 0x1A, + 0x60, 0x50, 0x07, 0x09, 0x09, 0x07, 0xD0, 0x09, 0x07, 0x50, 0x50, 0x07, 0x09, 0xA0, 0x13, 0x0D, 0xFE, 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x40, 0x0D, + 0x13, 0x01, 0x80, 0x26, 0x1A, 0xFF, 0x00, 0x1A, 0x26, 0x26, 0x1A, 0x01, 0x00, 0x1A, 0x26, 0xFE, 0xD0, 0x30, 0x09, 0x07, 0x10, 0x07, 0x09, 0x10, 0x10, + 0x07, 0x09, 0x30, 0x09, 0x87, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, 0x01, 0xC0, 0x00, + 0x13, 0x00, 0x2E, 0x00, 0x00, 0x25, 0x33, 0x17, 0x0E, 0x03, 0x23, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x3E, 0x03, 0x37, 0x17, 0x37, 0x16, 0x15, 0x14, + 0x07, 0x27, 0x23, 0x35, 0x27, 0x36, 0x33, 0x32, 0x17, 0x36, 0x27, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x17, 0x1E, 0x01, 0x06, 0x01, 0x4B, + 0x6B, 0x25, 0x13, 0x4B, 0x6A, 0x8F, 0x4C, 0x17, 0x21, 0x21, 0x17, 0x28, 0x3F, 0x29, 0x1E, 0x21, 0x0F, 0x35, 0x83, 0x32, 0x06, 0x36, 0x59, 0x4B, 0x24, + 0x28, 0x1E, 0x1C, 0x15, 0x14, 0x02, 0x03, 0x17, 0x02, 0x03, 0x04, 0x03, 0x0A, 0x0C, 0x04, 0xB9, 0x27, 0x22, 0x47, 0x40, 0x29, 0x21, 0x2E, 0x21, 0x26, + 0x3E, 0x40, 0x45, 0x12, 0x18, 0x26, 0x2E, 0x44, 0x11, 0x16, 0x39, 0x4E, 0x22, 0x17, 0x0C, 0x2B, 0x1D, 0x02, 0x03, 0x03, 0x03, 0x17, 0x02, 0x03, 0x0D, + 0x24, 0x37, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x02, 0x01, 0xC1, 0x00, 0x0D, 0x00, 0x19, 0x00, 0x21, 0x00, 0x29, 0x00, 0x31, 0x00, + 0x00, 0x13, 0x1E, 0x01, 0x17, 0x16, 0x06, 0x0F, 0x01, 0x2E, 0x01, 0x27, 0x37, 0x3E, 0x01, 0x07, 0x1E, 0x01, 0x17, 0x05, 0x06, 0x23, 0x22, 0x26, 0x35, + 0x34, 0x37, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x36, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x9F, 0x88, 0xC9, 0x10, 0x01, 0x0D, 0x0C, 0x39, 0x06, 0xB0, 0x8C, 0x0F, 0x03, 0x14, 0x2F, 0x84, 0xA4, 0x04, 0xFE, 0x85, 0x03, 0x02, 0x06, 0x0A, + 0x01, 0x72, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x43, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x7B, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0xC0, 0x0D, 0xC5, 0x88, 0x0C, + 0x15, 0x03, 0x10, 0x8C, 0xAD, 0x04, 0x39, 0x0B, 0x0E, 0x71, 0x02, 0xA1, 0x83, 0x69, 0x01, 0x0A, 0x06, 0x02, 0x02, 0x4C, 0x13, 0x1A, 0x13, 0x13, 0x1A, + 0x85, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x7B, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC1, 0x00, + 0x09, 0x00, 0x1F, 0x00, 0x37, 0x00, 0x00, 0x17, 0x03, 0x21, 0x03, 0x0E, 0x01, 0x2B, 0x01, 0x22, 0x26, 0x37, 0x06, 0x16, 0x3B, 0x01, 0x15, 0x14, 0x16, + 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x33, 0x32, 0x36, 0x2F, 0x01, 0x26, 0x22, 0x07, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x35, 0x15, 0x01, 0x80, 0x15, 0x01, 0x1C, 0x13, 0xF6, 0x13, 0x1C, 0x45, + 0x07, 0x08, 0x0B, 0x39, 0x09, 0x07, 0x20, 0x07, 0x09, 0x39, 0x0B, 0x08, 0x07, 0x5A, 0x04, 0x0E, 0x04, 0xDB, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, + 0x09, 0x09, 0x07, 0x78, 0x09, 0x07, 0x0F, 0x72, 0x0F, 0x07, 0x09, 0x13, 0x01, 0x53, 0xFE, 0xAD, 0x13, 0x1A, 0x1A, 0xC3, 0x08, 0x15, 0x70, 0x07, 0x09, + 0x09, 0x07, 0x70, 0x15, 0x08, 0x5E, 0x05, 0x05, 0xA5, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x13, 0x0D, 0x0D, 0x13, 0x00, 0x00, + 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC1, 0x00, 0x09, 0x00, 0x1F, 0x00, 0x37, 0x00, 0x00, 0x17, 0x11, 0x21, 0x11, 0x14, 0x06, 0x23, 0x21, + 0x22, 0x26, 0x37, 0x06, 0x16, 0x3B, 0x01, 0x15, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x3D, 0x01, 0x33, 0x32, 0x36, 0x2F, 0x01, 0x26, 0x22, 0x07, 0x37, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x20, 0x01, + 0x80, 0x1C, 0x14, 0xFE, 0xE0, 0x14, 0x1C, 0x5B, 0x07, 0x08, 0x0B, 0x39, 0x09, 0x07, 0x20, 0x07, 0x09, 0x39, 0x0B, 0x08, 0x07, 0x5A, 0x04, 0x0E, 0x04, + 0xDB, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x07, 0x09, 0x09, 0x07, 0x78, 0x09, 0x07, 0x0F, 0x72, 0x0F, 0x07, 0x09, 0x10, 0x01, 0x50, 0xFE, 0xB0, 0x14, + 0x1C, 0x1C, 0xC1, 0x08, 0x15, 0x70, 0x07, 0x09, 0x09, 0x07, 0x70, 0x15, 0x08, 0x5E, 0x05, 0x05, 0xA5, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x13, 0x0D, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x3A, + 0x00, 0x42, 0x00, 0x00, 0x25, 0x1E, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x17, 0x36, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x1D, 0x01, 0x14, 0x27, 0x15, 0x14, 0x3B, 0x01, 0x15, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x33, 0x32, 0x3D, + 0x01, 0x34, 0x2B, 0x01, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x23, 0x22, 0x07, 0x15, 0x14, 0x16, 0x32, 0x36, 0x3D, 0x01, 0x01, 0x3F, 0x36, 0x4B, + 0x22, 0x18, 0xFE, 0xB4, 0x18, 0x22, 0x4B, 0x36, 0x5F, 0x35, 0x6A, 0x4B, 0x15, 0x55, 0x0A, 0x18, 0x0A, 0x55, 0x15, 0xA8, 0x05, 0x16, 0x05, 0x10, 0x05, + 0x16, 0x05, 0x05, 0x16, 0x05, 0x10, 0x05, 0x16, 0x05, 0x28, 0x2F, 0x42, 0x2F, 0x80, 0x02, 0x4E, 0x36, 0x18, 0x22, 0x22, 0x18, 0x36, 0x4E, 0x02, 0x5F, + 0x6F, 0x4B, 0x35, 0x6E, 0x16, 0x08, 0x20, 0x04, 0x04, 0x20, 0x08, 0x16, 0x6E, 0x35, 0x9D, 0x10, 0x05, 0x16, 0x05, 0x05, 0x16, 0x05, 0x10, 0x05, 0x16, + 0x05, 0x05, 0x16, 0x5D, 0x10, 0x21, 0x2F, 0x2F, 0x21, 0x10, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x2D, 0x00, 0x00, 0x05, + 0x23, 0x22, 0x26, 0x35, 0x11, 0x23, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x15, 0x11, 0x33, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x15, 0x14, 0x06, 0x01, 0xDC, 0x98, 0x0F, 0x15, + 0x60, 0x15, 0x0F, 0x8C, 0x07, 0x09, 0x09, 0x07, 0x70, 0x15, 0x0F, 0x98, 0x0F, 0x15, 0x60, 0x15, 0x0F, 0x8C, 0x07, 0x09, 0x09, 0x07, 0x70, 0x15, 0x20, + 0x15, 0x0F, 0x01, 0x5C, 0x9C, 0x0F, 0x15, 0x09, 0x07, 0x20, 0x07, 0x09, 0x9C, 0x0F, 0x15, 0x15, 0x0F, 0xFE, 0xA4, 0x9C, 0x0F, 0x15, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x9C, 0x0F, 0x15, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x27, 0x00, 0x2F, 0x00, 0x37, 0x00, 0x3F, + 0x00, 0x47, 0x00, 0x00, 0x00, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x07, 0x27, 0x07, 0x17, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x22, 0x26, 0x3D, 0x01, + 0x27, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x33, 0x32, 0x16, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x16, 0x32, 0x16, 0x14, 0x06, 0x22, + 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x24, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, + 0x14, 0x01, 0xA4, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x34, 0x29, 0x3B, 0x2A, 0x0E, 0x13, 0x1A, 0x13, 0x52, 0x0E, 0x0B, 0x70, 0x09, 0x0C, 0x0B, 0x09, 0x47, + 0x35, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0B, 0x36, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x66, 0x34, 0x26, 0x26, 0x34, 0x26, 0xFE, 0x8B, 0x6A, 0x4B, 0x4B, 0x6A, + 0x4B, 0x66, 0x34, 0x26, 0x26, 0x34, 0x26, 0x01, 0x60, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0x95, 0x21, 0x32, 0x1B, 0x0A, 0x11, 0x80, 0x0D, 0x13, 0x13, 0x0D, + 0x6F, 0x36, 0x0A, 0x11, 0x0F, 0x09, 0x60, 0x08, 0x07, 0x39, 0x13, 0x1A, 0x13, 0x20, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x75, 0x26, 0x34, 0x26, 0x26, 0x34, + 0x9A, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x75, 0x26, 0x34, 0x26, 0x26, 0x34, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, + 0x00, 0x13, 0x00, 0x17, 0x00, 0x1B, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, + 0x33, 0x05, 0x23, 0x15, 0x33, 0x27, 0x23, 0x15, 0x33, 0x07, 0x33, 0x35, 0x23, 0x17, 0x33, 0x35, 0x23, 0x01, 0xA0, 0x0D, 0x13, 0x13, 0x0D, 0xFE, 0x80, + 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x60, 0x80, 0x80, 0xC0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xC0, 0x80, 0x80, 0x01, 0xA0, 0x13, 0x0D, 0xFE, 0x80, 0x0D, 0x13, + 0x13, 0x0D, 0x01, 0x80, 0x0D, 0x13, 0x40, 0x80, 0x80, 0x80, 0xC0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, + 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x5F, 0x00, 0x6F, 0x00, 0x7F, 0x00, 0x8F, 0x00, 0x9F, 0x00, 0xAF, 0x00, + 0xBF, 0x00, 0xCF, 0x00, 0xDF, 0x00, 0xEF, 0x00, 0xFF, 0x01, 0x0F, 0x01, 0x1F, 0x01, 0x2F, 0x01, 0x3F, 0x01, 0x4F, 0x00, 0x00, 0x37, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x07, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x03, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, + 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, + 0x36, 0x33, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, + 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0xF0, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0xFF, 0x00, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0xA0, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0xE0, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x07, 0x09, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, + 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xFE, 0xE0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x80, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0x20, 0x07, 0x09, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x60, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, + 0xE0, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x5F, 0x00, 0x6F, 0x00, 0x84, 0x00, 0x00, 0x37, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x23, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, + 0x34, 0x36, 0x33, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x13, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x37, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, + 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0xF0, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0xE0, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x90, 0x09, 0x07, 0x20, 0x07, 0x09, 0x13, 0x0D, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x01, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0xFE, 0x90, 0x07, + 0x09, 0x09, 0x07, 0x01, 0x90, 0x0D, 0x13, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0x01, 0x01, 0xC1, 0x00, 0x23, 0x00, 0x2B, 0x00, + 0x00, 0x01, 0x32, 0x16, 0x17, 0x16, 0x06, 0x2F, 0x01, 0x16, 0x15, 0x14, 0x06, 0x07, 0x06, 0x26, 0x3F, 0x01, 0x06, 0x23, 0x22, 0x26, 0x27, 0x26, 0x36, + 0x1F, 0x01, 0x26, 0x35, 0x34, 0x36, 0x37, 0x36, 0x16, 0x0F, 0x01, 0x36, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x01, 0x61, 0x3D, 0x5A, 0x08, + 0x01, 0x0B, 0x08, 0x7B, 0x0D, 0x51, 0x3C, 0x08, 0x0C, 0x01, 0x0C, 0x23, 0x2A, 0x3D, 0x5A, 0x08, 0x01, 0x0B, 0x08, 0x7B, 0x0D, 0x51, 0x3C, 0x08, 0x0C, + 0x01, 0x0C, 0x23, 0x44, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0x40, 0x51, 0x3C, 0x08, 0x0C, 0x01, 0x0C, 0x23, 0x2A, 0x3D, 0x5A, 0x08, 0x01, 0x0B, 0x08, + 0x7B, 0x0D, 0x51, 0x3C, 0x08, 0x0C, 0x01, 0x0C, 0x23, 0x2A, 0x3D, 0x5A, 0x08, 0x01, 0x0B, 0x08, 0x7B, 0x0D, 0xA0, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0x00, + 0x00, 0x05, 0xFF, 0xFE, 0xFF, 0xC0, 0x02, 0x02, 0x01, 0xC2, 0x00, 0x12, 0x00, 0x2A, 0x00, 0x32, 0x00, 0x48, 0x00, 0x66, 0x00, 0x00, 0x37, 0x27, 0x26, + 0x36, 0x37, 0x36, 0x16, 0x1F, 0x01, 0x37, 0x3E, 0x01, 0x17, 0x1E, 0x01, 0x0F, 0x01, 0x06, 0x22, 0x17, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, + 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x36, 0x3B, 0x01, 0x32, 0x1F, 0x01, 0x06, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x25, 0x32, + 0x16, 0x0F, 0x01, 0x06, 0x22, 0x26, 0x3F, 0x01, 0x23, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x0F, 0x01, 0x13, 0x36, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x35, 0x07, 0x15, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x33, 0x32, 0x17, 0x35, 0x34, 0x36, 0x37, + 0x75, 0x61, 0x15, 0x02, 0x18, 0x15, 0x35, 0x13, 0x0A, 0x0A, 0x13, 0x35, 0x15, 0x18, 0x02, 0x15, 0x61, 0x04, 0x0E, 0x8C, 0x0B, 0x10, 0x10, 0x0B, 0xEA, + 0x0B, 0x10, 0x10, 0x0B, 0x30, 0x07, 0x07, 0x13, 0x48, 0x13, 0x06, 0x08, 0x5B, 0x2C, 0x1E, 0x1E, 0x2C, 0x1E, 0x01, 0x97, 0x08, 0x07, 0x04, 0x5C, 0x04, + 0x0D, 0x08, 0x02, 0x18, 0x3E, 0x06, 0x08, 0x01, 0x11, 0x01, 0x0B, 0x4C, 0x06, 0x08, 0x02, 0x16, 0x27, 0x0E, 0x14, 0x26, 0x35, 0x25, 0x25, 0x1B, 0x08, + 0x08, 0x70, 0x26, 0x35, 0x25, 0x25, 0x1B, 0x08, 0x08, 0x0F, 0x0B, 0xE5, 0x63, 0x16, 0x3E, 0x14, 0x12, 0x05, 0x13, 0x0B, 0x0B, 0x13, 0x05, 0x12, 0x14, + 0x3E, 0x16, 0x63, 0x05, 0x60, 0x10, 0x0B, 0x8A, 0x0B, 0x10, 0x10, 0x0B, 0x8A, 0x0B, 0x10, 0x0E, 0x12, 0x12, 0x0E, 0x94, 0x1E, 0x2C, 0x1E, 0x1E, 0x2C, + 0x56, 0x0B, 0x05, 0x8B, 0x05, 0x08, 0x05, 0x53, 0x07, 0x05, 0x6B, 0x09, 0x08, 0x05, 0x33, 0x01, 0x60, 0x02, 0x13, 0x0F, 0x90, 0x14, 0x1C, 0x1C, 0x28, + 0x1C, 0x02, 0x30, 0x12, 0x6C, 0x14, 0x1C, 0x1C, 0x28, 0x1C, 0x02, 0x6B, 0x0C, 0x12, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x00, + 0x01, 0xC1, 0x00, 0x1E, 0x00, 0x00, 0x25, 0x16, 0x15, 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x00, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x1F, 0x01, + 0x16, 0x15, 0x14, 0x0F, 0x01, 0x16, 0x17, 0x37, 0x36, 0x33, 0x32, 0x17, 0x01, 0xF1, 0x0F, 0x01, 0x18, 0x04, 0x13, 0xC0, 0xFE, 0xF0, 0x13, 0x68, 0x02, + 0x03, 0x10, 0x06, 0x30, 0x02, 0x09, 0x3C, 0x38, 0x79, 0x31, 0x08, 0x0B, 0x05, 0x04, 0x56, 0x06, 0x10, 0x03, 0x02, 0x68, 0x13, 0x01, 0x10, 0xC0, 0x13, + 0x04, 0x18, 0x01, 0x0F, 0x70, 0x04, 0x05, 0x0B, 0x08, 0x31, 0x79, 0x38, 0x3C, 0x09, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xC0, + 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x2E, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x01, + 0x34, 0x35, 0x34, 0x2F, 0x01, 0x26, 0x23, 0x22, 0x0F, 0x01, 0x26, 0x27, 0x37, 0x36, 0x35, 0x34, 0x2F, 0x01, 0x26, 0x23, 0x22, 0x23, 0x07, 0x06, 0x15, + 0x14, 0x16, 0x33, 0x32, 0x37, 0x01, 0x90, 0x14, 0x1C, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, 0x1C, 0x14, 0x01, 0x50, 0x09, 0x46, 0x03, 0x03, 0x07, 0x05, + 0x1F, 0x4B, 0x23, 0x26, 0x05, 0x01, 0x1E, 0x04, 0x0A, 0x02, 0x01, 0x41, 0x0C, 0xAA, 0x78, 0x0C, 0x03, 0x01, 0xA0, 0x1C, 0x14, 0xFE, 0xA0, 0x14, 0x1C, + 0x1C, 0x14, 0x01, 0x60, 0x14, 0x1C, 0xFE, 0xCD, 0x01, 0x02, 0x0A, 0x04, 0x1E, 0x01, 0x05, 0x26, 0x23, 0x4B, 0x1F, 0x05, 0x07, 0x03, 0x03, 0x46, 0x09, + 0x0F, 0x03, 0x0C, 0x78, 0xAA, 0x0C, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x10, 0x00, 0x1C, 0x00, 0x28, 0x00, 0x34, + 0x00, 0x40, 0x00, 0x50, 0x00, 0x58, 0x00, 0x5F, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x11, 0x23, 0x15, 0x23, 0x35, 0x34, + 0x36, 0x33, 0x17, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x05, 0x35, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, + 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, 0x3D, 0x01, 0x34, 0x2B, 0x01, 0x22, 0x1D, 0x01, 0x14, 0x3B, 0x01, 0x32, + 0x07, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x16, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x05, + 0x35, 0x27, 0x07, 0x27, 0x07, 0x15, 0x02, 0x60, 0x0D, 0x13, 0x13, 0x0D, 0x80, 0xC0, 0xA0, 0x13, 0x0D, 0x48, 0x09, 0x1E, 0x09, 0x09, 0x1E, 0x09, 0x01, + 0x60, 0x09, 0x1E, 0x09, 0x09, 0x1E, 0x09, 0x09, 0x1E, 0x09, 0x09, 0x1E, 0x09, 0x09, 0x1E, 0x09, 0x09, 0x1E, 0x09, 0xA8, 0x0D, 0x13, 0x13, 0x0D, 0xFE, + 0x80, 0x0D, 0x13, 0x13, 0x0D, 0x4D, 0x1A, 0x13, 0x13, 0x1A, 0x13, 0x01, 0x00, 0x60, 0x80, 0x20, 0x40, 0x01, 0xC0, 0x13, 0x0D, 0xFE, 0xC0, 0x0D, 0x13, + 0x01, 0x40, 0x40, 0x60, 0x0D, 0x13, 0x67, 0x1E, 0x09, 0x09, 0x1E, 0x09, 0xC7, 0x1E, 0x09, 0x09, 0x1E, 0x09, 0x71, 0x1E, 0x09, 0x09, 0x1E, 0x09, 0x71, + 0x1E, 0x09, 0x09, 0x1E, 0x09, 0x30, 0x13, 0x0D, 0xFE, 0xE0, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x20, 0x0D, 0x13, 0x40, 0x13, 0x1A, 0x13, 0x13, 0x1A, 0xCD, + 0x60, 0x60, 0x80, 0x20, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x02, 0x80, 0x01, 0xC0, 0x00, 0x13, 0x00, 0x3B, 0x00, 0x3F, + 0x00, 0x00, 0x25, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x37, 0x17, 0x07, 0x05, 0x16, 0x15, + 0x14, 0x0F, 0x01, 0x06, 0x23, 0x22, 0x27, 0x01, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x1F, 0x01, 0x35, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x23, 0x07, 0x27, 0x37, 0x23, 0x15, 0x01, 0x50, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, + 0x09, 0x07, 0x20, 0x1B, 0x43, 0x09, 0x01, 0x35, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0xFD, 0xB3, 0x06, 0x03, 0x14, 0x05, 0x08, 0x05, 0x04, 0x73, + 0x09, 0x07, 0x01, 0xA0, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x76, 0x31, 0x43, 0x20, 0x76, 0x20, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, + 0x07, 0x09, 0x50, 0x34, 0x1C, 0x2A, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x01, 0xC7, 0x05, 0x08, 0x05, 0x05, 0x19, 0x06, 0x03, 0x59, 0x2C, 0x07, + 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x20, 0x94, 0x34, 0x60, 0x1D, 0x00, 0x00, 0x04, 0xFF, 0xFD, 0xFF, 0xDF, 0x01, 0xC0, 0x01, 0xA0, 0x00, + 0x15, 0x00, 0x35, 0x00, 0x4F, 0x00, 0x52, 0x00, 0x00, 0x37, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x11, 0x34, 0x36, + 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, 0x37, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x0F, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x17, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x23, 0x07, + 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x07, 0x33, 0x27, 0xB0, 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, 0x04, + 0x50, 0x08, 0x08, 0x0B, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0xA0, 0x07, 0x09, 0x0B, 0x3D, 0x38, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x0B, 0x3D, + 0x38, 0x07, 0x09, 0x09, 0x07, 0x1F, 0x01, 0x09, 0x07, 0x19, 0x0C, 0x03, 0x05, 0x47, 0x04, 0x04, 0x0B, 0x19, 0x07, 0x09, 0x01, 0x3B, 0x04, 0x0B, 0x2A, + 0x0B, 0x04, 0x34, 0x20, 0x10, 0x60, 0x14, 0x07, 0x60, 0x05, 0x05, 0x60, 0x07, 0x14, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xD0, 0x80, 0x09, 0x07, + 0x12, 0x0E, 0x0A, 0x46, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x12, 0x0E, 0x0A, 0x46, 0x09, 0x07, 0x20, 0x07, 0x09, 0xEB, 0x02, 0x03, 0x07, 0x09, + 0x0B, 0x0D, 0x0D, 0x0B, 0x09, 0x07, 0x03, 0x02, 0xA0, 0x0B, 0x0B, 0x65, 0x30, 0x00, 0x04, 0xFF, 0xFD, 0xFF, 0xDF, 0x01, 0xC0, 0x01, 0xA0, 0x00, 0x15, + 0x00, 0x35, 0x00, 0x4F, 0x00, 0x52, 0x00, 0x00, 0x13, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x11, 0x14, 0x06, 0x2B, + 0x01, 0x22, 0x26, 0x35, 0x11, 0x17, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x3F, 0x01, 0x23, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x0F, 0x01, 0x33, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x17, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x23, 0x07, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x17, 0x07, 0x33, 0x27, 0x10, 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, 0x04, 0x50, + 0x08, 0x08, 0x0B, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0xE0, 0x07, 0x09, 0x0B, 0x3D, 0x38, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x0B, 0x3D, 0x38, + 0x07, 0x09, 0x09, 0x07, 0x1F, 0x01, 0x09, 0x07, 0x19, 0x0C, 0x03, 0x05, 0x47, 0x04, 0x04, 0x0B, 0x19, 0x07, 0x09, 0x01, 0x3B, 0x04, 0x0B, 0x2A, 0x0B, + 0x04, 0x34, 0x20, 0x10, 0x01, 0x20, 0x14, 0x07, 0x60, 0x05, 0x05, 0x60, 0x07, 0x14, 0xFE, 0xD0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x30, 0x40, 0x09, 0x07, + 0x12, 0x0E, 0x0A, 0x46, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x12, 0x0E, 0x0A, 0x46, 0x09, 0x07, 0x20, 0x07, 0x09, 0xEB, 0x02, 0x03, 0x07, 0x09, + 0x0B, 0x0D, 0x0D, 0x0B, 0x09, 0x07, 0x03, 0x02, 0xA0, 0x0B, 0x0B, 0x65, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0xFF, 0xFD, 0xFF, 0xE0, 0x02, 0x00, 0x01, + 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x55, 0x00, 0x00, 0x13, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, + 0x01, 0x14, 0x06, 0x23, 0x07, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x17, 0x32, 0x16, 0x1D, 0x01, + 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x35, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, + 0x06, 0x23, 0x21, 0x32, 0x16, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, 0xF0, + 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0xFF, + 0x00, 0x07, 0x09, 0x09, 0x07, 0x07, 0x09, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x09, 0x07, 0xFF, 0x00, 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, 0x04, 0x50, 0x08, + 0x08, 0x0B, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x14, 0x07, 0x60, 0x05, 0x05, 0x60, 0x07, 0x14, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xD0, 0x00, 0x05, 0xFF, 0xFD, 0xFF, 0xE0, + 0x02, 0x00, 0x01, 0xA0, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, 0x00, 0x55, 0x00, 0x00, 0x13, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, + 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x07, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x17, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x33, 0x35, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, + 0x1D, 0x01, 0x14, 0x06, 0x23, 0x25, 0x22, 0x26, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x16, 0x06, 0x2B, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, + 0x35, 0x11, 0xF0, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x40, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, 0x09, 0x07, 0x80, 0x07, 0x09, + 0x09, 0x07, 0xFF, 0x00, 0x07, 0x09, 0x09, 0x07, 0x07, 0x09, 0x09, 0x07, 0xC0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0x60, 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, + 0x04, 0x50, 0x08, 0x08, 0x0B, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x60, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x80, 0x09, + 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0xC0, 0x14, 0x07, 0x60, 0x05, 0x05, 0x60, 0x07, 0x14, 0xFE, 0xD0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x04, 0xFF, 0xFD, 0xFF, 0xE0, 0x01, 0xB1, 0x01, 0xA8, 0x00, 0x15, 0x00, 0x35, 0x00, 0x4A, 0x00, 0x52, 0x00, 0x00, 0x37, 0x32, 0x16, 0x0F, + 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, 0x36, 0x3B, 0x01, 0x11, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x15, 0x11, 0x05, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, + 0x03, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x07, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x37, 0x36, 0x37, 0x2E, 0x01, 0x37, 0x3E, 0x01, 0x16, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0xB0, 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, 0x04, 0x50, 0x08, 0x08, 0x0B, 0x30, 0x09, 0x07, 0x20, 0x07, 0x09, 0x01, 0x10, 0x07, + 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x10, 0x10, 0x07, 0x09, 0x02, 0x10, 0x04, 0x0A, 0x30, 0x07, 0x09, 0x36, 0x28, 0x3E, 0x2A, 0x2C, 0x06, + 0x0D, 0x02, 0x0A, 0x05, 0x0D, 0x0C, 0x09, 0x24, 0x2B, 0x0A, 0x06, 0x1D, 0x22, 0x10, 0x0C, 0x0C, 0x10, 0x0C, 0x60, 0x14, 0x07, 0x60, 0x05, 0x05, 0x60, + 0x07, 0x14, 0x01, 0x30, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xD0, 0x40, 0x09, 0x07, 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x09, 0x07, 0x04, + 0x03, 0x20, 0x09, 0x09, 0x07, 0x70, 0x01, 0x7D, 0x0B, 0x31, 0x27, 0x0B, 0x33, 0x3E, 0x13, 0x02, 0x06, 0x06, 0x14, 0x0F, 0x05, 0x05, 0x08, 0x04, 0x3D, + 0x26, 0x14, 0x1D, 0x5C, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFD, 0xFF, 0xE0, 0x01, 0xB1, 0x01, 0xA8, 0x00, 0x15, 0x00, + 0x35, 0x00, 0x4A, 0x00, 0x52, 0x00, 0x00, 0x13, 0x17, 0x16, 0x06, 0x2B, 0x01, 0x11, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x35, 0x11, 0x23, 0x22, 0x26, + 0x3F, 0x01, 0x36, 0x32, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x35, 0x23, 0x22, 0x26, + 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x1D, 0x01, 0x03, 0x36, 0x16, 0x1D, 0x01, 0x14, 0x06, 0x07, 0x06, 0x26, 0x2F, 0x01, 0x26, 0x37, + 0x36, 0x37, 0x2E, 0x01, 0x37, 0x3E, 0x01, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x6B, 0x50, 0x08, 0x08, 0x0B, 0x30, 0x09, 0x07, 0x20, 0x07, + 0x09, 0x30, 0x0B, 0x08, 0x08, 0x50, 0x04, 0x0E, 0x01, 0x29, 0x07, 0x09, 0x09, 0x07, 0x60, 0x07, 0x09, 0x09, 0x07, 0x10, 0x10, 0x07, 0x09, 0x02, 0x10, + 0x04, 0x0A, 0x30, 0x07, 0x09, 0x36, 0x28, 0x3E, 0x2A, 0x2C, 0x06, 0x0D, 0x02, 0x0A, 0x05, 0x0D, 0x0C, 0x09, 0x24, 0x2B, 0x0A, 0x06, 0x1D, 0x22, 0x10, + 0x0C, 0x0C, 0x10, 0x0C, 0x01, 0x9B, 0x60, 0x07, 0x14, 0xFE, 0xD0, 0x07, 0x09, 0x09, 0x07, 0x01, 0x30, 0x14, 0x07, 0x60, 0x05, 0xFE, 0x80, 0x09, 0x07, + 0x20, 0x07, 0x09, 0x09, 0x07, 0x20, 0x07, 0x09, 0x40, 0x09, 0x07, 0x04, 0x03, 0x20, 0x09, 0x09, 0x07, 0x70, 0x01, 0x7D, 0x0B, 0x31, 0x27, 0x0B, 0x33, + 0x3E, 0x13, 0x02, 0x06, 0x06, 0x14, 0x0F, 0x05, 0x05, 0x08, 0x04, 0x3D, 0x26, 0x14, 0x1D, 0x5C, 0x0C, 0x10, 0x0C, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x06, + 0x00, 0x00, 0xFF, 0xBF, 0x02, 0x41, 0x01, 0xC0, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x26, 0x00, 0x40, 0x00, 0x43, 0x00, 0x58, 0x00, 0x00, 0x25, 0x22, 0x26, + 0x3D, 0x01, 0x34, 0x36, 0x3B, 0x01, 0x32, 0x16, 0x17, 0x14, 0x15, 0x14, 0x07, 0x16, 0x15, 0x14, 0x15, 0x0E, 0x01, 0x23, 0x27, 0x15, 0x33, 0x32, 0x36, + 0x34, 0x26, 0x23, 0x07, 0x15, 0x33, 0x32, 0x36, 0x34, 0x26, 0x23, 0x27, 0x17, 0x16, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x2F, 0x01, 0x23, 0x07, 0x06, + 0x2B, 0x01, 0x22, 0x26, 0x35, 0x34, 0x3F, 0x01, 0x36, 0x3B, 0x01, 0x32, 0x07, 0x33, 0x27, 0x05, 0x16, 0x14, 0x0F, 0x01, 0x06, 0x22, 0x2F, 0x01, 0x26, + 0x34, 0x3F, 0x01, 0x36, 0x32, 0x1F, 0x01, 0x37, 0x36, 0x32, 0x17, 0x01, 0x10, 0x07, 0x09, 0x09, 0x07, 0x4B, 0x20, 0x32, 0x03, 0x09, 0x19, 0x02, 0x32, + 0x21, 0x33, 0x28, 0x0A, 0x0E, 0x0E, 0x0A, 0x28, 0x38, 0x0A, 0x0E, 0x0E, 0x0A, 0xD5, 0x44, 0x01, 0x09, 0x07, 0x19, 0x0C, 0x03, 0x0C, 0x58, 0x0C, 0x03, + 0x0C, 0x19, 0x07, 0x09, 0x01, 0x44, 0x07, 0x17, 0x1A, 0x17, 0x3B, 0x2E, 0x17, 0x01, 0xCB, 0x05, 0x05, 0xD0, 0x04, 0x0E, 0x04, 0x70, 0x05, 0x05, 0x2D, + 0x05, 0x0D, 0x05, 0x37, 0x98, 0x04, 0x0D, 0x05, 0xC0, 0x09, 0x07, 0xE0, 0x07, 0x09, 0x2A, 0x1F, 0x03, 0x04, 0x14, 0x12, 0x17, 0x23, 0x02, 0x03, 0x20, + 0x2B, 0xC8, 0x30, 0x0E, 0x14, 0x0E, 0x60, 0x30, 0x0E, 0x14, 0x0E, 0x82, 0xD6, 0x02, 0x02, 0x07, 0x09, 0x0C, 0x24, 0x24, 0x0C, 0x09, 0x07, 0x02, 0x02, + 0xD6, 0x16, 0x90, 0x45, 0xC9, 0x05, 0x0D, 0x05, 0xD0, 0x05, 0x05, 0x70, 0x05, 0x0D, 0x05, 0x2D, 0x05, 0x05, 0x38, 0x98, 0x05, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x20, 0x02, 0x80, 0x01, 0x40, 0x00, 0x13, 0x00, 0x1B, 0x00, 0x23, 0x00, 0x00, 0x00, 0x32, 0x16, 0x14, 0x06, 0x23, 0x21, + 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x26, 0x35, 0x34, 0x04, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x04, 0x32, 0x36, 0x34, + 0x26, 0x22, 0x06, 0x14, 0x01, 0xB4, 0x78, 0x54, 0x54, 0x3C, 0xFE, 0xA0, 0x3C, 0x54, 0x54, 0x78, 0x54, 0x18, 0x70, 0x18, 0xFE, 0xE0, 0x2F, 0x42, 0x2F, + 0x2F, 0x42, 0x01, 0x60, 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0x01, 0x40, 0x54, 0x78, 0x54, 0x54, 0x77, 0x55, 0x55, 0x3B, 0x2C, 0x24, 0x24, 0x2C, 0x3C, 0x1B, + 0x42, 0x2F, 0x2F, 0x42, 0x2F, 0xA0, 0x2F, 0x42, 0x2F, 0x2F, 0x42, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0x80, 0x00, 0x0D, 0x00, + 0x32, 0x00, 0x00, 0x25, 0x06, 0x22, 0x27, 0x36, 0x33, 0x32, 0x17, 0x16, 0x32, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x0E, 0x04, 0x22, + 0x2E, 0x03, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x1E, 0x04, 0x33, 0x32, 0x3E, 0x03, 0x37, 0x36, 0x33, 0x32, 0x01, 0xEA, 0x47, 0xC6, 0x47, 0x27, + 0x3B, 0x12, 0x13, 0x0F, 0x28, 0x0F, 0x13, 0x12, 0x3B, 0xB6, 0x07, 0x01, 0x03, 0x0E, 0x34, 0x42, 0x74, 0x88, 0x74, 0x42, 0x34, 0x0E, 0x03, 0x01, 0x09, + 0x07, 0x06, 0x09, 0x10, 0x38, 0x3F, 0x65, 0x35, 0x36, 0x64, 0x3F, 0x37, 0x11, 0x04, 0x05, 0x06, 0x05, 0x97, 0x17, 0x17, 0xE9, 0x0E, 0x0C, 0x0C, 0x0E, + 0xC4, 0x04, 0x09, 0x03, 0x03, 0x07, 0x1E, 0x44, 0x35, 0x2B, 0x2B, 0x35, 0x44, 0x1E, 0x07, 0x03, 0x03, 0x07, 0x09, 0x08, 0x0C, 0x20, 0x18, 0x13, 0x13, + 0x18, 0x1F, 0x0D, 0x04, 0x04, 0x00, 0x00, 0x02, 0xFF, 0xFB, 0xFF, 0xE0, 0x02, 0x80, 0x01, 0x81, 0x00, 0x0D, 0x00, 0x2A, 0x00, 0x00, 0x25, 0x17, 0x1E, + 0x01, 0x33, 0x21, 0x22, 0x27, 0x26, 0x37, 0x3E, 0x01, 0x33, 0x32, 0x05, 0x1E, 0x03, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2E, 0x02, 0x2F, 0x01, 0x26, 0x23, + 0x22, 0x07, 0x37, 0x3E, 0x01, 0x3F, 0x01, 0x36, 0x33, 0x32, 0x16, 0x17, 0x01, 0x05, 0x62, 0x42, 0x5F, 0x48, 0xFD, 0xDE, 0x16, 0x0E, 0x0E, 0x05, 0x0F, + 0x5A, 0x3A, 0x35, 0x01, 0x16, 0x29, 0x3D, 0x1D, 0x0E, 0x1C, 0x14, 0x23, 0x38, 0x34, 0x25, 0x20, 0x62, 0x36, 0x40, 0x04, 0x10, 0x06, 0x03, 0x1C, 0x14, + 0xBF, 0x06, 0x07, 0x18, 0x23, 0x04, 0x9D, 0x55, 0x39, 0x2F, 0x15, 0x15, 0x1A, 0x46, 0x56, 0x11, 0x03, 0x20, 0x2C, 0x24, 0x0C, 0x14, 0x1C, 0x0B, 0x1E, + 0x1C, 0x1C, 0x54, 0x2B, 0x02, 0x41, 0x15, 0x1F, 0x04, 0x29, 0x01, 0x1E, 0x17, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xC0, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x09, + 0x00, 0x10, 0x00, 0x17, 0x00, 0x00, 0x3D, 0x01, 0x21, 0x15, 0x14, 0x06, 0x2B, 0x01, 0x22, 0x26, 0x13, 0x15, 0x23, 0x35, 0x34, 0x36, 0x3B, 0x01, 0x32, + 0x16, 0x1D, 0x01, 0x23, 0x35, 0x01, 0x80, 0x5E, 0x42, 0x40, 0x42, 0x5E, 0xB0, 0xB0, 0x5E, 0x42, 0x40, 0x42, 0x5E, 0xB0, 0x60, 0x80, 0x80, 0x42, 0x5E, + 0x5E, 0x01, 0xA2, 0xC0, 0x20, 0x42, 0x5E, 0x5E, 0x42, 0x20, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0xFF, 0xC8, 0x01, 0xF8, 0x01, 0xB8, 0x00, + 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, 0x00, 0x00, 0x12, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, + 0x02, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0xD5, 0x56, 0x3D, 0x3D, 0x56, 0x3D, 0x5E, 0x14, 0x0E, + 0x0E, 0x14, 0x0E, 0x4F, 0xCE, 0x91, 0x91, 0xCE, 0x91, 0xC3, 0x6A, 0x4B, 0x4B, 0x6A, 0x4B, 0x01, 0x28, 0x3D, 0x56, 0x3D, 0x3D, 0x56, 0x43, 0x0E, 0x14, + 0x0E, 0x0E, 0x14, 0x01, 0x02, 0x91, 0xCE, 0x91, 0x91, 0xCE, 0xE7, 0x4B, 0x6A, 0x4B, 0x4B, 0x6A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xFF, 0xE0, 0x02, + 0x80, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x3A, 0x00, 0x44, 0x00, 0x00, 0x24, 0x32, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34, 0x17, 0x32, + 0x16, 0x1D, 0x01, 0x14, 0x06, 0x23, 0x21, 0x14, 0x06, 0x22, 0x26, 0x35, 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x36, 0x33, 0x21, 0x32, 0x16, 0x1D, 0x01, + 0x04, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x37, 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x14, 0x16, 0x3B, 0x01, 0x32, 0x36, 0x17, + 0x35, 0x34, 0x26, 0x2B, 0x01, 0x22, 0x06, 0x1D, 0x01, 0x01, 0x99, 0x0E, 0x09, 0x09, 0x0E, 0x09, 0xE0, 0x07, 0x09, 0x09, 0x07, 0xFE, 0xB0, 0x38, 0x50, + 0x38, 0x20, 0x1A, 0x26, 0x26, 0x1A, 0x01, 0x60, 0x42, 0x5E, 0xFE, 0x6C, 0x28, 0x1C, 0x1C, 0x28, 0x1C, 0x70, 0x13, 0x0D, 0x80, 0x0D, 0x13, 0x13, 0x0D, + 0x80, 0x0D, 0x13, 0xC0, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0xF0, 0x09, 0x0E, 0x09, 0x09, 0x0E, 0x67, 0x09, 0x07, 0x20, 0x07, 0x09, 0x28, 0x38, 0x38, 0x28, + 0x26, 0x1A, 0x01, 0x00, 0x1A, 0x26, 0x5E, 0x42, 0xA0, 0x70, 0x1C, 0x28, 0x1C, 0x1C, 0x28, 0xD4, 0x40, 0x0D, 0x13, 0x13, 0x0D, 0x40, 0x0D, 0x13, 0x13, + 0x73, 0xC0, 0x0D, 0x13, 0x13, 0x0D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x01, 0x56, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1A, 0x00, 0x36, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x19, 0x00, 0x85, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, + 0x00, 0xAB, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x20, 0x00, 0xF3, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x19, 0x01, + 0x48, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x26, 0x01, 0xB0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x16, 0x02, 0x05, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x2C, 0x02, 0x76, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x17, 0x02, 0xD3, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x13, 0x03, 0x13, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x05, 0x03, 0x33, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x19, 0x03, 0x6D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x13, 0x03, 0xAF, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x05, 0x03, 0xCF, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, + 0x04, 0x09, 0x00, 0x01, 0x00, 0x32, 0x00, 0x51, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x9F, 0x00, 0x03, 0x00, 0x01, 0x04, + 0x09, 0x00, 0x03, 0x00, 0x40, 0x00, 0xB1, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x04, 0x00, 0x32, 0x01, 0x14, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, + 0x00, 0x05, 0x00, 0x4C, 0x01, 0x62, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x06, 0x00, 0x2C, 0x01, 0xD7, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, + 0x0A, 0x00, 0x58, 0x02, 0x1C, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x0B, 0x00, 0x2E, 0x02, 0xA3, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x10, + 0x00, 0x26, 0x02, 0xEB, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x11, 0x00, 0x0A, 0x03, 0x27, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x12, 0x00, + 0x32, 0x03, 0x39, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x15, 0x00, 0x26, 0x03, 0x87, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x16, 0x00, 0x0A, + 0x03, 0xC3, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x79, 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x20, 0x00, 0x28, 0x00, + 0x63, 0x00, 0x29, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x41, 0x00, 0x77, 0x00, 0x65, 0x00, 0x73, 0x00, 0x6F, + 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x46, 0x6F, 0x6E, 0x74, 0x20, + 0x41, 0x77, 0x65, 0x73, 0x6F, 0x6D, 0x65, 0x00, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x41, 0x00, 0x77, 0x00, 0x65, 0x00, + 0x73, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x35, 0x00, 0x20, 0x00, 0x46, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, + 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x64, 0x00, 0x00, 0x46, 0x6F, 0x6E, 0x74, 0x20, 0x41, 0x77, 0x65, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x35, 0x20, + 0x46, 0x72, 0x65, 0x65, 0x20, 0x53, 0x6F, 0x6C, 0x69, 0x64, 0x00, 0x00, 0x53, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x64, 0x00, 0x00, 0x53, 0x6F, + 0x6C, 0x69, 0x64, 0x00, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x41, 0x00, 0x77, 0x00, 0x65, 0x00, 0x73, 0x00, 0x6F, 0x00, + 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x35, 0x00, 0x20, 0x00, 0x46, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6F, 0x00, 0x6C, + 0x00, 0x69, 0x00, 0x64, 0x00, 0x2D, 0x00, 0x35, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x35, 0x00, 0x2E, 0x00, 0x33, 0x00, 0x00, 0x46, 0x6F, 0x6E, 0x74, 0x20, + 0x41, 0x77, 0x65, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x35, 0x20, 0x46, 0x72, 0x65, 0x65, 0x20, 0x53, 0x6F, 0x6C, 0x69, 0x64, 0x2D, 0x35, 0x2E, 0x31, 0x35, + 0x2E, 0x33, 0x00, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x41, 0x00, 0x77, 0x00, 0x65, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6D, + 0x00, 0x65, 0x00, 0x20, 0x00, 0x35, 0x00, 0x20, 0x00, 0x46, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6F, 0x00, 0x6C, 0x00, + 0x69, 0x00, 0x64, 0x00, 0x00, 0x46, 0x6F, 0x6E, 0x74, 0x20, 0x41, 0x77, 0x65, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x35, 0x20, 0x46, 0x72, 0x65, 0x65, 0x20, + 0x53, 0x6F, 0x6C, 0x69, 0x64, 0x00, 0x00, 0x33, 0x00, 0x33, 0x00, 0x31, 0x00, 0x2E, 0x00, 0x35, 0x00, 0x32, 0x00, 0x33, 0x00, 0x20, 0x00, 0x28, 0x00, + 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x41, 0x00, 0x77, 0x00, 0x65, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, + 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x35, 0x00, 0x2E, 0x00, 0x31, 0x00, + 0x35, 0x00, 0x2E, 0x00, 0x33, 0x00, 0x29, 0x00, 0x00, 0x33, 0x33, 0x31, 0x2E, 0x35, 0x32, 0x33, 0x20, 0x28, 0x46, 0x6F, 0x6E, 0x74, 0x20, 0x41, 0x77, + 0x65, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x35, 0x2E, 0x31, 0x35, 0x2E, 0x33, 0x29, 0x00, 0x00, 0x46, + 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x41, 0x00, 0x77, 0x00, 0x65, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x35, 0x00, 0x46, 0x00, + 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x2D, 0x00, 0x53, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x64, 0x00, 0x00, 0x46, 0x6F, 0x6E, 0x74, 0x41, 0x77, + 0x65, 0x73, 0x6F, 0x6D, 0x65, 0x35, 0x46, 0x72, 0x65, 0x65, 0x2D, 0x53, 0x6F, 0x6C, 0x69, 0x64, 0x00, 0x00, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, + 0x00, 0x77, 0x00, 0x65, 0x00, 0x62, 0x00, 0x27, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x74, 0x00, 0x20, 0x00, 0x70, 0x00, + 0x6F, 0x00, 0x70, 0x00, 0x75, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x72, 0x00, 0x20, 0x00, 0x69, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x73, + 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x6B, 0x00, + 0x69, 0x00, 0x74, 0x00, 0x2E, 0x00, 0x00, 0x54, 0x68, 0x65, 0x20, 0x77, 0x65, 0x62, 0x27, 0x73, 0x20, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x70, 0x6F, 0x70, + 0x75, 0x6C, 0x61, 0x72, 0x20, 0x69, 0x63, 0x6F, 0x6E, 0x20, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x6F, 0x6F, 0x6C, 0x6B, 0x69, 0x74, + 0x2E, 0x00, 0x00, 0x68, 0x00, 0x74, 0x00, 0x74, 0x00, 0x70, 0x00, 0x73, 0x00, 0x3A, 0x00, 0x2F, 0x00, 0x2F, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x6E, 0x00, + 0x74, 0x00, 0x61, 0x00, 0x77, 0x00, 0x65, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x2E, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x00, + 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x66, 0x6F, 0x6E, 0x74, 0x61, 0x77, 0x65, 0x73, 0x6F, 0x6D, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x00, 0x00, + 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x41, 0x00, 0x77, 0x00, 0x65, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, + 0x00, 0x35, 0x00, 0x20, 0x00, 0x46, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x00, 0x46, 0x6F, 0x6E, 0x74, 0x20, 0x41, 0x77, 0x65, 0x73, 0x6F, 0x6D, + 0x65, 0x20, 0x35, 0x20, 0x46, 0x72, 0x65, 0x65, 0x00, 0x00, 0x53, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x64, 0x00, 0x00, 0x53, 0x6F, 0x6C, 0x69, + 0x64, 0x00, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x41, 0x00, 0x77, 0x00, 0x65, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6D, 0x00, + 0x65, 0x00, 0x20, 0x00, 0x35, 0x00, 0x20, 0x00, 0x46, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x69, + 0x00, 0x64, 0x00, 0x00, 0x46, 0x6F, 0x6E, 0x74, 0x20, 0x41, 0x77, 0x65, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x35, 0x20, 0x46, 0x72, 0x65, 0x65, 0x20, 0x53, + 0x6F, 0x6C, 0x69, 0x64, 0x00, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x41, 0x00, 0x77, 0x00, 0x65, 0x00, 0x73, 0x00, 0x6F, + 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x35, 0x00, 0x20, 0x00, 0x46, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x00, 0x46, 0x6F, 0x6E, 0x74, 0x20, + 0x41, 0x77, 0x65, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x35, 0x20, 0x46, 0x72, 0x65, 0x65, 0x00, 0x00, 0x53, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x64, + 0x00, 0x00, 0x53, 0x6F, 0x6C, 0x69, 0x64, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xDB, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xEC, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x01, + 0x02, 0x01, 0x03, 0x01, 0x04, 0x01, 0x05, 0x01, 0x06, 0x01, 0x07, 0x01, 0x08, 0x01, 0x09, 0x01, 0x0A, 0x01, 0x0B, 0x01, 0x0C, 0x01, 0x0D, 0x01, 0x0E, + 0x01, 0x0F, 0x01, 0x10, 0x01, 0x11, 0x01, 0x12, 0x01, 0x13, 0x01, 0x14, 0x01, 0x15, 0x01, 0x16, 0x01, 0x17, 0x01, 0x18, 0x01, 0x19, 0x01, 0x1A, 0x01, + 0x1B, 0x01, 0x1C, 0x01, 0x1D, 0x01, 0x1E, 0x01, 0x1F, 0x01, 0x20, 0x01, 0x21, 0x01, 0x22, 0x01, 0x23, 0x01, 0x24, 0x01, 0x25, 0x01, 0x26, 0x01, 0x27, + 0x01, 0x28, 0x01, 0x29, 0x01, 0x2A, 0x01, 0x2B, 0x01, 0x2C, 0x01, 0x2D, 0x01, 0x2E, 0x01, 0x2F, 0x01, 0x30, 0x01, 0x31, 0x01, 0x32, 0x01, 0x33, 0x01, + 0x34, 0x01, 0x35, 0x01, 0x36, 0x01, 0x37, 0x01, 0x38, 0x01, 0x39, 0x01, 0x3A, 0x01, 0x3B, 0x01, 0x3C, 0x01, 0x3D, 0x01, 0x3E, 0x01, 0x3F, 0x01, 0x40, + 0x01, 0x41, 0x01, 0x42, 0x01, 0x43, 0x01, 0x44, 0x01, 0x45, 0x01, 0x46, 0x01, 0x47, 0x01, 0x48, 0x01, 0x49, 0x01, 0x4A, 0x01, 0x4B, 0x01, 0x4C, 0x01, + 0x4D, 0x01, 0x4E, 0x01, 0x4F, 0x01, 0x50, 0x01, 0x51, 0x01, 0x52, 0x01, 0x53, 0x01, 0x54, 0x01, 0x55, 0x01, 0x56, 0x01, 0x57, 0x01, 0x58, 0x01, 0x59, + 0x01, 0x5A, 0x01, 0x5B, 0x01, 0x5C, 0x01, 0x5D, 0x01, 0x5E, 0x01, 0x5F, 0x01, 0x60, 0x01, 0x61, 0x01, 0x62, 0x01, 0x63, 0x01, 0x64, 0x01, 0x65, 0x01, + 0x66, 0x01, 0x67, 0x01, 0x68, 0x01, 0x69, 0x01, 0x6A, 0x01, 0x6B, 0x01, 0x6C, 0x01, 0x6D, 0x01, 0x6E, 0x01, 0x6F, 0x01, 0x70, 0x01, 0x71, 0x01, 0x72, + 0x01, 0x73, 0x01, 0x74, 0x01, 0x75, 0x01, 0x76, 0x01, 0x77, 0x00, 0x0E, 0x00, 0xEF, 0x00, 0x0D, 0x01, 0x78, 0x01, 0x79, 0x01, 0x7A, 0x01, 0x7B, 0x01, + 0x7C, 0x01, 0x7D, 0x01, 0x7E, 0x01, 0x7F, 0x01, 0x80, 0x01, 0x81, 0x01, 0x82, 0x01, 0x83, 0x01, 0x84, 0x01, 0x85, 0x01, 0x86, 0x01, 0x87, 0x01, 0x88, + 0x01, 0x89, 0x01, 0x8A, 0x01, 0x8B, 0x01, 0x8C, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x8F, 0x01, 0x90, 0x01, 0x91, 0x01, 0x92, 0x01, 0x93, 0x01, 0x94, 0x01, + 0x95, 0x01, 0x96, 0x01, 0x97, 0x01, 0x98, 0x01, 0x99, 0x01, 0x9A, 0x01, 0x9B, 0x01, 0x9C, 0x01, 0x9D, 0x01, 0x9E, 0x01, 0x9F, 0x01, 0xA0, 0x01, 0xA1, + 0x01, 0xA2, 0x01, 0xA3, 0x01, 0xA4, 0x01, 0xA5, 0x01, 0xA6, 0x01, 0xA7, 0x01, 0xA8, 0x01, 0xA9, 0x01, 0xAA, 0x01, 0xAB, 0x01, 0xAC, 0x01, 0xAD, 0x01, + 0xAE, 0x01, 0xAF, 0x01, 0xB0, 0x01, 0xB1, 0x01, 0xB2, 0x01, 0xB3, 0x01, 0xB4, 0x01, 0xB5, 0x01, 0xB6, 0x01, 0xB7, 0x01, 0xB8, 0x01, 0xB9, 0x01, 0xBA, + 0x01, 0xBB, 0x01, 0xBC, 0x01, 0xBD, 0x01, 0xBE, 0x01, 0xBF, 0x01, 0xC0, 0x01, 0xC1, 0x01, 0xC2, 0x01, 0xC3, 0x01, 0xC4, 0x01, 0xC5, 0x01, 0xC6, 0x01, + 0xC7, 0x01, 0xC8, 0x01, 0xC9, 0x01, 0xCA, 0x01, 0xCB, 0x01, 0xCC, 0x01, 0xCD, 0x01, 0xCE, 0x01, 0xCF, 0x01, 0xD0, 0x01, 0xD1, 0x01, 0xD2, 0x01, 0xD3, + 0x01, 0xD4, 0x01, 0xD5, 0x01, 0xD6, 0x01, 0xD7, 0x01, 0xD8, 0x01, 0xD9, 0x01, 0xDA, 0x01, 0xDB, 0x01, 0xDC, 0x01, 0xDD, 0x01, 0xDE, 0x01, 0xDF, 0x01, + 0xE0, 0x01, 0xE1, 0x01, 0xE2, 0x01, 0xE3, 0x01, 0xE4, 0x01, 0xE5, 0x01, 0xE6, 0x01, 0xE7, 0x01, 0xE8, 0x01, 0xE9, 0x01, 0xEA, 0x01, 0xEB, 0x01, 0xEC, + 0x01, 0xED, 0x01, 0xEE, 0x01, 0xEF, 0x01, 0xF0, 0x01, 0xF1, 0x01, 0xF2, 0x01, 0xF3, 0x01, 0xF4, 0x00, 0x22, 0x01, 0xF5, 0x01, 0xF6, 0x01, 0xF7, 0x01, + 0xF8, 0x01, 0xF9, 0x01, 0xFA, 0x01, 0xFB, 0x01, 0xFC, 0x01, 0xFD, 0x01, 0xFE, 0x01, 0xFF, 0x02, 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03, 0x02, 0x04, + 0x02, 0x05, 0x02, 0x06, 0x02, 0x07, 0x02, 0x08, 0x02, 0x09, 0x02, 0x0A, 0x02, 0x0B, 0x02, 0x0C, 0x02, 0x0D, 0x02, 0x0E, 0x02, 0x0F, 0x02, 0x10, 0x02, + 0x11, 0x02, 0x12, 0x02, 0x13, 0x02, 0x14, 0x02, 0x15, 0x02, 0x16, 0x02, 0x17, 0x02, 0x18, 0x02, 0x19, 0x02, 0x1A, 0x02, 0x1B, 0x02, 0x1C, 0x02, 0x1D, + 0x02, 0x1E, 0x02, 0x1F, 0x02, 0x20, 0x02, 0x21, 0x02, 0x22, 0x02, 0x23, 0x02, 0x24, 0x02, 0x25, 0x02, 0x26, 0x02, 0x27, 0x02, 0x28, 0x02, 0x29, 0x02, + 0x2A, 0x02, 0x2B, 0x02, 0x2C, 0x02, 0x2D, 0x02, 0x2E, 0x02, 0x2F, 0x02, 0x30, 0x02, 0x31, 0x02, 0x32, 0x02, 0x33, 0x02, 0x34, 0x02, 0x35, 0x02, 0x36, + 0x02, 0x37, 0x02, 0x38, 0x02, 0x39, 0x02, 0x3A, 0x02, 0x3B, 0x02, 0x3C, 0x02, 0x3D, 0x02, 0x3E, 0x02, 0x3F, 0x02, 0x40, 0x02, 0x41, 0x02, 0x42, 0x02, + 0x43, 0x02, 0x44, 0x02, 0x45, 0x02, 0x46, 0x02, 0x47, 0x02, 0x48, 0x02, 0x49, 0x02, 0x4A, 0x02, 0x4B, 0x00, 0x88, 0x02, 0x4C, 0x02, 0x4D, 0x02, 0x4E, + 0x02, 0x4F, 0x02, 0x50, 0x02, 0x51, 0x02, 0x52, 0x02, 0x53, 0x02, 0x54, 0x02, 0x55, 0x02, 0x56, 0x02, 0x57, 0x02, 0x58, 0x00, 0x8B, 0x00, 0x23, 0x02, + 0x59, 0x02, 0x5A, 0x02, 0x5B, 0x02, 0x5C, 0x02, 0x5D, 0x02, 0x5E, 0x02, 0x5F, 0x02, 0x60, 0x02, 0x61, 0x02, 0x62, 0x02, 0x63, 0x02, 0x64, 0x02, 0x65, + 0x02, 0x66, 0x02, 0x67, 0x02, 0x68, 0x02, 0x69, 0x02, 0x6A, 0x02, 0x6B, 0x02, 0x6C, 0x02, 0x6D, 0x02, 0x6E, 0x02, 0x6F, 0x02, 0x70, 0x02, 0x71, 0x02, + 0x72, 0x02, 0x73, 0x02, 0x74, 0x02, 0x75, 0x02, 0x76, 0x02, 0x77, 0x02, 0x78, 0x02, 0x79, 0x02, 0x7A, 0x02, 0x7B, 0x02, 0x7C, 0x02, 0x7D, 0x02, 0x7E, + 0x02, 0x7F, 0x02, 0x80, 0x02, 0x81, 0x02, 0x82, 0x02, 0x83, 0x02, 0x84, 0x02, 0x85, 0x02, 0x86, 0x02, 0x87, 0x02, 0x88, 0x02, 0x89, 0x02, 0x8A, 0x02, + 0x8B, 0x02, 0x8C, 0x02, 0x8D, 0x02, 0x8E, 0x02, 0x8F, 0x02, 0x90, 0x02, 0x91, 0x02, 0x92, 0x02, 0x93, 0x02, 0x94, 0x02, 0x95, 0x00, 0x8C, 0x00, 0x8A, + 0x02, 0x96, 0x02, 0x97, 0x02, 0x98, 0x02, 0x99, 0x02, 0x9A, 0x02, 0x9B, 0x02, 0x9C, 0x02, 0x9D, 0x02, 0x9E, 0x02, 0x9F, 0x02, 0xA0, 0x02, 0xA1, 0x02, + 0xA2, 0x02, 0xA3, 0x02, 0xA4, 0x00, 0x08, 0x02, 0xA5, 0x02, 0xA6, 0x02, 0xA7, 0x02, 0xA8, 0x02, 0xA9, 0x02, 0xAA, 0x02, 0xAB, 0x02, 0xAC, 0x02, 0xAD, + 0x02, 0xAE, 0x02, 0xAF, 0x02, 0xB0, 0x02, 0xB1, 0x02, 0xB2, 0x02, 0xB3, 0x02, 0xB4, 0x02, 0xB5, 0x02, 0xB6, 0x02, 0xB7, 0x02, 0xB8, 0x02, 0xB9, 0x02, + 0xBA, 0x02, 0xBB, 0x02, 0xBC, 0x02, 0xBD, 0x02, 0xBE, 0x02, 0xBF, 0x02, 0xC0, 0x02, 0xC1, 0x02, 0xC2, 0x02, 0xC3, 0x02, 0xC4, 0x02, 0xC5, 0x02, 0xC6, + 0x02, 0xC7, 0x02, 0xC8, 0x02, 0xC9, 0x02, 0xCA, 0x02, 0xCB, 0x02, 0xCC, 0x02, 0xCD, 0x02, 0xCE, 0x02, 0xCF, 0x02, 0xD0, 0x02, 0xD1, 0x02, 0xD2, 0x02, + 0xD3, 0x02, 0xD4, 0x02, 0xD5, 0x02, 0xD6, 0x02, 0xD7, 0x02, 0xD8, 0x02, 0xD9, 0x02, 0xDA, 0x02, 0xDB, 0x02, 0xDC, 0x02, 0xDD, 0x02, 0xDE, 0x02, 0xDF, + 0x02, 0xE0, 0x02, 0xE1, 0x02, 0xE2, 0x02, 0xE3, 0x02, 0xE4, 0x02, 0xE5, 0x02, 0xE6, 0x02, 0xE7, 0x02, 0xE8, 0x02, 0xE9, 0x02, 0xEA, 0x02, 0xEB, 0x02, + 0xEC, 0x02, 0xED, 0x02, 0xEE, 0x02, 0xEF, 0x02, 0xF0, 0x02, 0xF1, 0x02, 0xF2, 0x02, 0xF3, 0x02, 0xF4, 0x02, 0xF5, 0x02, 0xF6, 0x02, 0xF7, 0x02, 0xF8, + 0x02, 0xF9, 0x02, 0xFA, 0x02, 0xFB, 0x02, 0xFC, 0x02, 0xFD, 0x02, 0xFE, 0x02, 0xFF, 0x03, 0x00, 0x03, 0x01, 0x03, 0x02, 0x03, 0x03, 0x03, 0x04, 0x03, + 0x05, 0x03, 0x06, 0x03, 0x07, 0x03, 0x08, 0x03, 0x09, 0x03, 0x0A, 0x03, 0x0B, 0x03, 0x0C, 0x03, 0x0D, 0x03, 0x0E, 0x03, 0x0F, 0x03, 0x10, 0x03, 0x11, + 0x03, 0x12, 0x03, 0x13, 0x03, 0x14, 0x03, 0x15, 0x03, 0x16, 0x03, 0x17, 0x03, 0x18, 0x03, 0x19, 0x03, 0x1A, 0x03, 0x1B, 0x03, 0x1C, 0x03, 0x1D, 0x03, + 0x1E, 0x03, 0x1F, 0x03, 0x20, 0x03, 0x21, 0x03, 0x22, 0x03, 0x23, 0x03, 0x24, 0x03, 0x25, 0x03, 0x26, 0x03, 0x27, 0x03, 0x28, 0x03, 0x29, 0x03, 0x2A, + 0x03, 0x2B, 0x03, 0x2C, 0x03, 0x2D, 0x03, 0x2E, 0x03, 0x2F, 0x03, 0x30, 0x03, 0x31, 0x03, 0x32, 0x03, 0x33, 0x03, 0x34, 0x03, 0x35, 0x03, 0x36, 0x03, + 0x37, 0x03, 0x38, 0x03, 0x39, 0x03, 0x3A, 0x03, 0x3B, 0x03, 0x3C, 0x03, 0x3D, 0x03, 0x3E, 0x03, 0x3F, 0x03, 0x40, 0x03, 0x41, 0x03, 0x42, 0x03, 0x43, + 0x03, 0x44, 0x03, 0x45, 0x03, 0x46, 0x03, 0x47, 0x03, 0x48, 0x03, 0x49, 0x03, 0x4A, 0x03, 0x4B, 0x03, 0x4C, 0x03, 0x4D, 0x03, 0x4E, 0x03, 0x4F, 0x03, + 0x50, 0x03, 0x51, 0x03, 0x52, 0x03, 0x53, 0x03, 0x54, 0x03, 0x55, 0x03, 0x56, 0x03, 0x57, 0x03, 0x58, 0x03, 0x59, 0x03, 0x5A, 0x03, 0x5B, 0x03, 0x5C, + 0x03, 0x5D, 0x03, 0x5E, 0x03, 0x5F, 0x03, 0x60, 0x03, 0x61, 0x03, 0x62, 0x03, 0x63, 0x03, 0x64, 0x03, 0x65, 0x03, 0x66, 0x03, 0x67, 0x00, 0xB8, 0x03, + 0x68, 0x03, 0x69, 0x03, 0x6A, 0x03, 0x6B, 0x03, 0x6C, 0x03, 0x6D, 0x03, 0x6E, 0x03, 0x6F, 0x03, 0x70, 0x03, 0x71, 0x00, 0x92, 0x03, 0x72, 0x03, 0x73, + 0x03, 0x74, 0x03, 0x75, 0x03, 0x76, 0x03, 0x77, 0x03, 0x78, 0x03, 0x79, 0x03, 0x7A, 0x03, 0x7B, 0x03, 0x7C, 0x03, 0x7D, 0x03, 0x7E, 0x03, 0x7F, 0x03, + 0x80, 0x03, 0x81, 0x03, 0x82, 0x03, 0x83, 0x03, 0x84, 0x03, 0x85, 0x03, 0x86, 0x03, 0x87, 0x03, 0x88, 0x03, 0x89, 0x03, 0x8A, 0x03, 0x8B, 0x03, 0x8C, + 0x03, 0x8D, 0x03, 0x8E, 0x03, 0x8F, 0x03, 0x90, 0x03, 0x91, 0x03, 0x92, 0x03, 0x93, 0x03, 0x94, 0x03, 0x95, 0x03, 0x96, 0x03, 0x97, 0x03, 0x98, 0x03, + 0x99, 0x03, 0x9A, 0x03, 0x9B, 0x03, 0x9C, 0x03, 0x9D, 0x03, 0x9E, 0x03, 0x9F, 0x03, 0xA0, 0x03, 0xA1, 0x03, 0xA2, 0x03, 0xA3, 0x03, 0xA4, 0x03, 0xA5, + 0x03, 0xA6, 0x03, 0xA7, 0x03, 0xA8, 0x03, 0xA9, 0x03, 0xAA, 0x03, 0xAB, 0x03, 0xAC, 0x03, 0xAD, 0x03, 0xAE, 0x03, 0xAF, 0x03, 0xB0, 0x03, 0xB1, 0x03, + 0xB2, 0x03, 0xB3, 0x03, 0xB4, 0x03, 0xB5, 0x03, 0xB6, 0x03, 0xB7, 0x03, 0xB8, 0x03, 0xB9, 0x03, 0xBA, 0x03, 0xBB, 0x03, 0xBC, 0x03, 0xBD, 0x03, 0xBE, + 0x03, 0xBF, 0x03, 0xC0, 0x03, 0xC1, 0x03, 0xC2, 0x03, 0xC3, 0x03, 0xC4, 0x03, 0xC5, 0x03, 0xC6, 0x03, 0xC7, 0x03, 0xC8, 0x03, 0xC9, 0x03, 0xCA, 0x03, + 0xCB, 0x03, 0xCC, 0x03, 0xCD, 0x03, 0xCE, 0x03, 0xCF, 0x03, 0xD0, 0x03, 0xD1, 0x03, 0xD2, 0x03, 0xD3, 0x03, 0xD4, 0x03, 0xD5, 0x03, 0xD6, 0x03, 0xD7, + 0x03, 0xD8, 0x03, 0xD9, 0x03, 0xDA, 0x03, 0xDB, 0x03, 0xDC, 0x03, 0xDD, 0x03, 0xDE, 0x03, 0xDF, 0x03, 0xE0, 0x03, 0xE1, 0x03, 0xE2, 0x03, 0xE3, 0x03, + 0xE4, 0x03, 0xE5, 0x03, 0xE6, 0x03, 0xE7, 0x03, 0xE8, 0x03, 0xE9, 0x03, 0xEA, 0x03, 0xEB, 0x03, 0xEC, 0x03, 0xED, 0x03, 0xEE, 0x03, 0xEF, 0x03, 0xF0, + 0x03, 0xF1, 0x03, 0xF2, 0x03, 0xF3, 0x03, 0xF4, 0x03, 0xF5, 0x03, 0xF6, 0x03, 0xF7, 0x03, 0xF8, 0x03, 0xF9, 0x03, 0xFA, 0x03, 0xFB, 0x03, 0xFC, 0x03, + 0xFD, 0x03, 0xFE, 0x03, 0xFF, 0x04, 0x00, 0x04, 0x01, 0x04, 0x02, 0x04, 0x03, 0x04, 0x04, 0x04, 0x05, 0x04, 0x06, 0x04, 0x07, 0x04, 0x08, 0x04, 0x09, + 0x04, 0x0A, 0x04, 0x0B, 0x04, 0x0C, 0x04, 0x0D, 0x04, 0x0E, 0x04, 0x0F, 0x04, 0x10, 0x04, 0x11, 0x04, 0x12, 0x04, 0x13, 0x04, 0x14, 0x04, 0x15, 0x04, + 0x16, 0x04, 0x17, 0x04, 0x18, 0x04, 0x19, 0x04, 0x1A, 0x04, 0x1B, 0x04, 0x1C, 0x04, 0x1D, 0x04, 0x1E, 0x04, 0x1F, 0x04, 0x20, 0x04, 0x21, 0x04, 0x22, + 0x04, 0x23, 0x04, 0x24, 0x04, 0x25, 0x04, 0x26, 0x04, 0x27, 0x04, 0x28, 0x04, 0x29, 0x04, 0x2A, 0x04, 0x2B, 0x04, 0x2C, 0x04, 0x2D, 0x04, 0x2E, 0x04, + 0x2F, 0x04, 0x30, 0x04, 0x31, 0x04, 0x32, 0x04, 0x33, 0x04, 0x34, 0x04, 0x35, 0x04, 0x36, 0x04, 0x37, 0x04, 0x38, 0x04, 0x39, 0x04, 0x3A, 0x04, 0x3B, + 0x04, 0x3C, 0x04, 0x3D, 0x04, 0x3E, 0x04, 0x3F, 0x04, 0x40, 0x04, 0x41, 0x04, 0x42, 0x04, 0x43, 0x04, 0x44, 0x04, 0x45, 0x04, 0x46, 0x04, 0x47, 0x04, + 0x48, 0x04, 0x49, 0x04, 0x4A, 0x04, 0x4B, 0x04, 0x4C, 0x04, 0x4D, 0x04, 0x4E, 0x04, 0x4F, 0x04, 0x50, 0x04, 0x51, 0x04, 0x52, 0x04, 0x53, 0x04, 0x54, + 0x04, 0x55, 0x04, 0x56, 0x04, 0x57, 0x04, 0x58, 0x04, 0x59, 0x04, 0x5A, 0x04, 0x5B, 0x04, 0x5C, 0x04, 0x5D, 0x04, 0x5E, 0x04, 0x5F, 0x04, 0x60, 0x04, + 0x61, 0x04, 0x62, 0x04, 0x63, 0x04, 0x64, 0x00, 0xDD, 0x04, 0x65, 0x04, 0x66, 0x04, 0x67, 0x00, 0x12, 0x04, 0x68, 0x04, 0x69, 0x04, 0x6A, 0x04, 0x6B, + 0x04, 0x6C, 0x04, 0x6D, 0x04, 0x6E, 0x04, 0x6F, 0x04, 0x70, 0x04, 0x71, 0x04, 0x72, 0x04, 0x73, 0x04, 0x74, 0x04, 0x75, 0x04, 0x76, 0x04, 0x77, 0x04, + 0x78, 0x04, 0x79, 0x04, 0x7A, 0x04, 0x7B, 0x04, 0x7C, 0x04, 0x7D, 0x04, 0x7E, 0x04, 0x7F, 0x04, 0x80, 0x04, 0x81, 0x04, 0x82, 0x04, 0x83, 0x04, 0x84, + 0x04, 0x85, 0x04, 0x86, 0x04, 0x87, 0x04, 0x88, 0x04, 0x89, 0x04, 0x8A, 0x04, 0x8B, 0x04, 0x8C, 0x04, 0x8D, 0x04, 0x8E, 0x04, 0x8F, 0x04, 0x90, 0x04, + 0x91, 0x04, 0x92, 0x04, 0x93, 0x04, 0x94, 0x04, 0x95, 0x04, 0x96, 0x04, 0x97, 0x04, 0x98, 0x04, 0x99, 0x04, 0x9A, 0x04, 0x9B, 0x04, 0x9C, 0x04, 0x9D, + 0x04, 0x9E, 0x04, 0x9F, 0x04, 0xA0, 0x04, 0xA1, 0x04, 0xA2, 0x04, 0xA3, 0x04, 0xA4, 0x04, 0xA5, 0x04, 0xA6, 0x04, 0xA7, 0x04, 0xA8, 0x04, 0xA9, 0x04, + 0xAA, 0x04, 0xAB, 0x04, 0xAC, 0x04, 0xAD, 0x04, 0xAE, 0x04, 0xAF, 0x04, 0xB0, 0x04, 0xB1, 0x04, 0xB2, 0x04, 0xB3, 0x04, 0xB4, 0x04, 0xB5, 0x04, 0xB6, + 0x04, 0xB7, 0x04, 0xB8, 0x04, 0xB9, 0x04, 0xBA, 0x04, 0xBB, 0x04, 0xBC, 0x04, 0xBD, 0x04, 0xBE, 0x04, 0xBF, 0x04, 0xC0, 0x04, 0xC1, 0x04, 0xC2, 0x04, + 0xC3, 0x04, 0xC4, 0x04, 0xC5, 0x04, 0xC6, 0x04, 0xC7, 0x04, 0xC8, 0x04, 0xC9, 0x04, 0xCA, 0x04, 0xCB, 0x04, 0xCC, 0x04, 0xCD, 0x04, 0xCE, 0x04, 0xCF, + 0x04, 0xD0, 0x04, 0xD1, 0x04, 0xD2, 0x04, 0xD3, 0x04, 0xD4, 0x04, 0xD5, 0x04, 0xD6, 0x04, 0xD7, 0x04, 0xD8, 0x04, 0xD9, 0x04, 0xDA, 0x04, 0xDB, 0x04, + 0xDC, 0x06, 0x66, 0x61, 0x75, 0x63, 0x65, 0x74, 0x07, 0x74, 0x72, 0x61, 0x69, 0x6C, 0x65, 0x72, 0x08, 0x62, 0x61, 0x63, 0x74, 0x65, 0x72, 0x69, 0x61, + 0x09, 0x62, 0x61, 0x63, 0x74, 0x65, 0x72, 0x69, 0x75, 0x6D, 0x0A, 0x62, 0x6F, 0x78, 0x2D, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x14, 0x68, 0x61, 0x6E, + 0x64, 0x2D, 0x68, 0x6F, 0x6C, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x6D, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6C, 0x0D, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x73, 0x70, + 0x61, 0x72, 0x6B, 0x6C, 0x65, 0x73, 0x0A, 0x68, 0x61, 0x6E, 0x64, 0x73, 0x2D, 0x77, 0x61, 0x73, 0x68, 0x13, 0x68, 0x61, 0x6E, 0x64, 0x73, 0x68, 0x61, + 0x6B, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x2D, 0x73, 0x6C, 0x61, 0x73, 0x68, 0x0F, 0x68, 0x61, 0x6E, 0x64, 0x73, 0x68, 0x61, 0x6B, 0x65, 0x2D, 0x73, 0x6C, + 0x61, 0x73, 0x68, 0x0F, 0x68, 0x65, 0x61, 0x64, 0x2D, 0x73, 0x69, 0x64, 0x65, 0x2D, 0x63, 0x6F, 0x75, 0x67, 0x68, 0x15, 0x68, 0x65, 0x61, 0x64, 0x2D, + 0x73, 0x69, 0x64, 0x65, 0x2D, 0x63, 0x6F, 0x75, 0x67, 0x68, 0x2D, 0x73, 0x6C, 0x61, 0x73, 0x68, 0x0E, 0x68, 0x65, 0x61, 0x64, 0x2D, 0x73, 0x69, 0x64, + 0x65, 0x2D, 0x6D, 0x61, 0x73, 0x6B, 0x0F, 0x68, 0x65, 0x61, 0x64, 0x2D, 0x73, 0x69, 0x64, 0x65, 0x2D, 0x76, 0x69, 0x72, 0x75, 0x73, 0x0A, 0x68, 0x6F, + 0x75, 0x73, 0x65, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x0C, 0x6C, 0x61, 0x70, 0x74, 0x6F, 0x70, 0x2D, 0x68, 0x6F, 0x75, 0x73, 0x65, 0x0B, 0x6C, 0x75, 0x6E, + 0x67, 0x73, 0x2D, 0x76, 0x69, 0x72, 0x75, 0x73, 0x0D, 0x70, 0x65, 0x6F, 0x70, 0x6C, 0x65, 0x2D, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x73, 0x0B, 0x70, 0x6C, + 0x61, 0x6E, 0x65, 0x2D, 0x73, 0x6C, 0x61, 0x73, 0x68, 0x0C, 0x70, 0x75, 0x6D, 0x70, 0x2D, 0x6D, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6C, 0x09, 0x70, 0x75, + 0x6D, 0x70, 0x2D, 0x73, 0x6F, 0x61, 0x70, 0x0C, 0x73, 0x68, 0x69, 0x65, 0x6C, 0x64, 0x2D, 0x76, 0x69, 0x72, 0x75, 0x73, 0x04, 0x73, 0x69, 0x6E, 0x6B, + 0x04, 0x73, 0x6F, 0x61, 0x70, 0x0C, 0x73, 0x74, 0x6F, 0x70, 0x77, 0x61, 0x74, 0x63, 0x68, 0x2D, 0x32, 0x30, 0x0F, 0x73, 0x74, 0x6F, 0x72, 0x65, 0x2D, + 0x61, 0x6C, 0x74, 0x2D, 0x73, 0x6C, 0x61, 0x73, 0x68, 0x0B, 0x73, 0x74, 0x6F, 0x72, 0x65, 0x2D, 0x73, 0x6C, 0x61, 0x73, 0x68, 0x12, 0x74, 0x6F, 0x69, + 0x6C, 0x65, 0x74, 0x2D, 0x70, 0x61, 0x70, 0x65, 0x72, 0x2D, 0x73, 0x6C, 0x61, 0x73, 0x68, 0x0B, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2D, 0x73, 0x6C, 0x61, + 0x73, 0x68, 0x05, 0x76, 0x69, 0x72, 0x75, 0x73, 0x0B, 0x76, 0x69, 0x72, 0x75, 0x73, 0x2D, 0x73, 0x6C, 0x61, 0x73, 0x68, 0x07, 0x76, 0x69, 0x72, 0x75, + 0x73, 0x65, 0x73, 0x04, 0x76, 0x65, 0x73, 0x74, 0x0C, 0x76, 0x65, 0x73, 0x74, 0x2D, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x0D, 0x67, 0x6C, 0x61, + 0x73, 0x73, 0x2D, 0x6D, 0x61, 0x72, 0x74, 0x69, 0x6E, 0x69, 0x05, 0x6D, 0x75, 0x73, 0x69, 0x63, 0x06, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x05, 0x68, + 0x65, 0x61, 0x72, 0x74, 0x04, 0x73, 0x74, 0x61, 0x72, 0x04, 0x75, 0x73, 0x65, 0x72, 0x04, 0x66, 0x69, 0x6C, 0x6D, 0x08, 0x74, 0x68, 0x2D, 0x6C, 0x61, + 0x72, 0x67, 0x65, 0x02, 0x74, 0x68, 0x07, 0x74, 0x68, 0x2D, 0x6C, 0x69, 0x73, 0x74, 0x05, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x05, 0x74, 0x69, 0x6D, 0x65, + 0x73, 0x0B, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2D, 0x70, 0x6C, 0x75, 0x73, 0x0C, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2D, 0x6D, 0x69, 0x6E, 0x75, + 0x73, 0x09, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x2D, 0x6F, 0x66, 0x66, 0x06, 0x73, 0x69, 0x67, 0x6E, 0x61, 0x6C, 0x03, 0x63, 0x6F, 0x67, 0x04, 0x68, 0x6F, + 0x6D, 0x65, 0x05, 0x63, 0x6C, 0x6F, 0x63, 0x6B, 0x04, 0x72, 0x6F, 0x61, 0x64, 0x08, 0x64, 0x6F, 0x77, 0x6E, 0x6C, 0x6F, 0x61, 0x64, 0x05, 0x69, 0x6E, + 0x62, 0x6F, 0x78, 0x04, 0x72, 0x65, 0x64, 0x6F, 0x04, 0x73, 0x79, 0x6E, 0x63, 0x08, 0x6C, 0x69, 0x73, 0x74, 0x2D, 0x61, 0x6C, 0x74, 0x04, 0x6C, 0x6F, + 0x63, 0x6B, 0x04, 0x66, 0x6C, 0x61, 0x67, 0x0A, 0x68, 0x65, 0x61, 0x64, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x73, 0x0A, 0x76, 0x6F, 0x6C, 0x75, 0x6D, 0x65, + 0x2D, 0x6F, 0x66, 0x66, 0x0B, 0x76, 0x6F, 0x6C, 0x75, 0x6D, 0x65, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x09, 0x76, 0x6F, 0x6C, 0x75, 0x6D, 0x65, 0x2D, 0x75, + 0x70, 0x06, 0x71, 0x72, 0x63, 0x6F, 0x64, 0x65, 0x07, 0x62, 0x61, 0x72, 0x63, 0x6F, 0x64, 0x65, 0x03, 0x74, 0x61, 0x67, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x04, 0x62, 0x6F, 0x6F, 0x6B, 0x08, 0x62, 0x6F, 0x6F, 0x6B, 0x6D, 0x61, 0x72, 0x6B, 0x05, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x06, 0x63, 0x61, 0x6D, 0x65, + 0x72, 0x61, 0x04, 0x66, 0x6F, 0x6E, 0x74, 0x04, 0x62, 0x6F, 0x6C, 0x64, 0x06, 0x69, 0x74, 0x61, 0x6C, 0x69, 0x63, 0x0B, 0x74, 0x65, 0x78, 0x74, 0x2D, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x0A, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x0A, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x2D, 0x6C, + 0x65, 0x66, 0x74, 0x0C, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x2D, 0x63, 0x65, 0x6E, 0x74, 0x65, 0x72, 0x0B, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x2D, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x0D, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x2D, 0x6A, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x04, 0x6C, 0x69, 0x73, 0x74, 0x07, 0x6F, 0x75, + 0x74, 0x64, 0x65, 0x6E, 0x74, 0x06, 0x69, 0x6E, 0x64, 0x65, 0x6E, 0x74, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x05, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x0A, + 0x6D, 0x61, 0x70, 0x2D, 0x6D, 0x61, 0x72, 0x6B, 0x65, 0x72, 0x06, 0x61, 0x64, 0x6A, 0x75, 0x73, 0x74, 0x04, 0x74, 0x69, 0x6E, 0x74, 0x04, 0x65, 0x64, + 0x69, 0x74, 0x0D, 0x73, 0x74, 0x65, 0x70, 0x2D, 0x62, 0x61, 0x63, 0x6B, 0x77, 0x61, 0x72, 0x64, 0x0D, 0x66, 0x61, 0x73, 0x74, 0x2D, 0x62, 0x61, 0x63, + 0x6B, 0x77, 0x61, 0x72, 0x64, 0x08, 0x62, 0x61, 0x63, 0x6B, 0x77, 0x61, 0x72, 0x64, 0x04, 0x70, 0x6C, 0x61, 0x79, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x04, 0x73, 0x74, 0x6F, 0x70, 0x07, 0x66, 0x6F, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0C, 0x66, 0x61, 0x73, 0x74, 0x2D, 0x66, 0x6F, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x0C, 0x73, 0x74, 0x65, 0x70, 0x2D, 0x66, 0x6F, 0x72, 0x77, 0x61, 0x72, 0x64, 0x05, 0x65, 0x6A, 0x65, 0x63, 0x74, 0x0C, 0x63, 0x68, 0x65, 0x76, + 0x72, 0x6F, 0x6E, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x0D, 0x63, 0x68, 0x65, 0x76, 0x72, 0x6F, 0x6E, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0B, 0x70, 0x6C, + 0x75, 0x73, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x0C, 0x6D, 0x69, 0x6E, 0x75, 0x73, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x0C, 0x74, 0x69, + 0x6D, 0x65, 0x73, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x0C, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x0F, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6F, 0x6E, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x0B, 0x69, 0x6E, 0x66, 0x6F, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, + 0x65, 0x0A, 0x63, 0x72, 0x6F, 0x73, 0x73, 0x68, 0x61, 0x69, 0x72, 0x73, 0x03, 0x62, 0x61, 0x6E, 0x0A, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x6C, 0x65, + 0x66, 0x74, 0x0B, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, 0x08, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x75, 0x70, 0x0A, 0x61, + 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x06, 0x65, 0x78, 0x70, 0x61, 0x6E, 0x64, 0x08, 0x63, 0x6F, + 0x6D, 0x70, 0x72, 0x65, 0x73, 0x73, 0x12, 0x65, 0x78, 0x63, 0x6C, 0x61, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, + 0x04, 0x67, 0x69, 0x66, 0x74, 0x04, 0x6C, 0x65, 0x61, 0x66, 0x04, 0x66, 0x69, 0x72, 0x65, 0x03, 0x65, 0x79, 0x65, 0x09, 0x65, 0x79, 0x65, 0x2D, 0x73, + 0x6C, 0x61, 0x73, 0x68, 0x14, 0x65, 0x78, 0x63, 0x6C, 0x61, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2D, 0x74, 0x72, 0x69, 0x61, 0x6E, 0x67, 0x6C, 0x65, + 0x05, 0x70, 0x6C, 0x61, 0x6E, 0x65, 0x0C, 0x63, 0x61, 0x6C, 0x65, 0x6E, 0x64, 0x61, 0x72, 0x2D, 0x61, 0x6C, 0x74, 0x06, 0x72, 0x61, 0x6E, 0x64, 0x6F, + 0x6D, 0x07, 0x63, 0x6F, 0x6D, 0x6D, 0x65, 0x6E, 0x74, 0x06, 0x6D, 0x61, 0x67, 0x6E, 0x65, 0x74, 0x0A, 0x63, 0x68, 0x65, 0x76, 0x72, 0x6F, 0x6E, 0x2D, + 0x75, 0x70, 0x0C, 0x63, 0x68, 0x65, 0x76, 0x72, 0x6F, 0x6E, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x07, 0x72, 0x65, 0x74, 0x77, 0x65, 0x65, 0x74, 0x0D, 0x73, + 0x68, 0x6F, 0x70, 0x70, 0x69, 0x6E, 0x67, 0x2D, 0x63, 0x61, 0x72, 0x74, 0x06, 0x66, 0x6F, 0x6C, 0x64, 0x65, 0x72, 0x0B, 0x66, 0x6F, 0x6C, 0x64, 0x65, + 0x72, 0x2D, 0x6F, 0x70, 0x65, 0x6E, 0x09, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2D, 0x62, 0x61, 0x72, 0x0C, 0x63, 0x61, 0x6D, 0x65, 0x72, 0x61, 0x2D, 0x72, + 0x65, 0x74, 0x72, 0x6F, 0x03, 0x6B, 0x65, 0x79, 0x04, 0x63, 0x6F, 0x67, 0x73, 0x08, 0x63, 0x6F, 0x6D, 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x2D, 0x68, 0x61, 0x6C, 0x66, 0x09, 0x74, 0x68, 0x75, 0x6D, 0x62, 0x74, 0x61, 0x63, 0x6B, 0x06, 0x74, 0x72, 0x6F, 0x70, 0x68, 0x79, 0x06, + 0x75, 0x70, 0x6C, 0x6F, 0x61, 0x64, 0x05, 0x6C, 0x65, 0x6D, 0x6F, 0x6E, 0x05, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x0C, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x2D, + 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x06, 0x75, 0x6E, 0x6C, 0x6F, 0x63, 0x6B, 0x0B, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2D, 0x63, 0x61, 0x72, 0x64, + 0x03, 0x72, 0x73, 0x73, 0x03, 0x68, 0x64, 0x64, 0x08, 0x62, 0x75, 0x6C, 0x6C, 0x68, 0x6F, 0x72, 0x6E, 0x0B, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x10, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0F, 0x68, 0x61, 0x6E, + 0x64, 0x2D, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x0D, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x2D, 0x75, + 0x70, 0x0F, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x11, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x63, + 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x12, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x0F, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x75, 0x70, 0x11, 0x61, 0x72, 0x72, 0x6F, + 0x77, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x05, 0x67, 0x6C, 0x6F, 0x62, 0x65, 0x06, 0x77, 0x72, 0x65, 0x6E, 0x63, + 0x68, 0x05, 0x74, 0x61, 0x73, 0x6B, 0x73, 0x06, 0x66, 0x69, 0x6C, 0x74, 0x65, 0x72, 0x09, 0x62, 0x72, 0x69, 0x65, 0x66, 0x63, 0x61, 0x73, 0x65, 0x0A, + 0x61, 0x72, 0x72, 0x6F, 0x77, 0x73, 0x2D, 0x61, 0x6C, 0x74, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x04, 0x6C, 0x69, 0x6E, 0x6B, 0x05, 0x63, 0x6C, 0x6F, + 0x75, 0x64, 0x05, 0x66, 0x6C, 0x61, 0x73, 0x6B, 0x03, 0x63, 0x75, 0x74, 0x04, 0x63, 0x6F, 0x70, 0x79, 0x09, 0x70, 0x61, 0x70, 0x65, 0x72, 0x63, 0x6C, + 0x69, 0x70, 0x04, 0x73, 0x61, 0x76, 0x65, 0x06, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x04, 0x62, 0x61, 0x72, 0x73, 0x07, 0x6C, 0x69, 0x73, 0x74, 0x2D, + 0x75, 0x6C, 0x07, 0x6C, 0x69, 0x73, 0x74, 0x2D, 0x6F, 0x6C, 0x0D, 0x73, 0x74, 0x72, 0x69, 0x6B, 0x65, 0x74, 0x68, 0x72, 0x6F, 0x75, 0x67, 0x68, 0x09, + 0x75, 0x6E, 0x64, 0x65, 0x72, 0x6C, 0x69, 0x6E, 0x65, 0x05, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x05, 0x6D, 0x61, 0x67, 0x69, 0x63, 0x05, 0x74, 0x72, 0x75, + 0x63, 0x6B, 0x0A, 0x6D, 0x6F, 0x6E, 0x65, 0x79, 0x2D, 0x62, 0x69, 0x6C, 0x6C, 0x0A, 0x63, 0x61, 0x72, 0x65, 0x74, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x08, + 0x63, 0x61, 0x72, 0x65, 0x74, 0x2D, 0x75, 0x70, 0x0A, 0x63, 0x61, 0x72, 0x65, 0x74, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x0B, 0x63, 0x61, 0x72, 0x65, 0x74, + 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, 0x07, 0x63, 0x6F, 0x6C, 0x75, 0x6D, 0x6E, 0x73, 0x04, 0x73, 0x6F, 0x72, 0x74, 0x09, 0x73, 0x6F, 0x72, 0x74, 0x2D, + 0x64, 0x6F, 0x77, 0x6E, 0x07, 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x75, 0x70, 0x08, 0x65, 0x6E, 0x76, 0x65, 0x6C, 0x6F, 0x70, 0x65, 0x04, 0x75, 0x6E, 0x64, + 0x6F, 0x05, 0x67, 0x61, 0x76, 0x65, 0x6C, 0x04, 0x62, 0x6F, 0x6C, 0x74, 0x07, 0x73, 0x69, 0x74, 0x65, 0x6D, 0x61, 0x70, 0x08, 0x75, 0x6D, 0x62, 0x72, + 0x65, 0x6C, 0x6C, 0x61, 0x05, 0x70, 0x61, 0x73, 0x74, 0x65, 0x09, 0x6C, 0x69, 0x67, 0x68, 0x74, 0x62, 0x75, 0x6C, 0x62, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x2D, 0x6D, 0x64, 0x0B, 0x73, 0x74, 0x65, 0x74, 0x68, 0x6F, 0x73, 0x63, 0x6F, 0x70, 0x65, 0x08, 0x73, 0x75, 0x69, 0x74, 0x63, 0x61, 0x73, 0x65, 0x04, + 0x62, 0x65, 0x6C, 0x6C, 0x06, 0x63, 0x6F, 0x66, 0x66, 0x65, 0x65, 0x08, 0x68, 0x6F, 0x73, 0x70, 0x69, 0x74, 0x61, 0x6C, 0x09, 0x61, 0x6D, 0x62, 0x75, + 0x6C, 0x61, 0x6E, 0x63, 0x65, 0x06, 0x6D, 0x65, 0x64, 0x6B, 0x69, 0x74, 0x0B, 0x66, 0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x2D, 0x6A, 0x65, 0x74, 0x04, + 0x62, 0x65, 0x65, 0x72, 0x08, 0x68, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x0B, 0x70, 0x6C, 0x75, 0x73, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, + 0x11, 0x61, 0x6E, 0x67, 0x6C, 0x65, 0x2D, 0x64, 0x6F, 0x75, 0x62, 0x6C, 0x65, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x12, 0x61, 0x6E, 0x67, 0x6C, 0x65, 0x2D, + 0x64, 0x6F, 0x75, 0x62, 0x6C, 0x65, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0F, 0x61, 0x6E, 0x67, 0x6C, 0x65, 0x2D, 0x64, 0x6F, 0x75, 0x62, 0x6C, 0x65, + 0x2D, 0x75, 0x70, 0x11, 0x61, 0x6E, 0x67, 0x6C, 0x65, 0x2D, 0x64, 0x6F, 0x75, 0x62, 0x6C, 0x65, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x0A, 0x61, 0x6E, 0x67, + 0x6C, 0x65, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x0B, 0x61, 0x6E, 0x67, 0x6C, 0x65, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, 0x08, 0x61, 0x6E, 0x67, 0x6C, 0x65, + 0x2D, 0x75, 0x70, 0x0A, 0x61, 0x6E, 0x67, 0x6C, 0x65, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x07, 0x64, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x06, 0x6C, 0x61, + 0x70, 0x74, 0x6F, 0x70, 0x06, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x74, 0x06, 0x6D, 0x6F, 0x62, 0x69, 0x6C, 0x65, 0x0A, 0x71, 0x75, 0x6F, 0x74, 0x65, 0x2D, + 0x6C, 0x65, 0x66, 0x74, 0x0B, 0x71, 0x75, 0x6F, 0x74, 0x65, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, 0x07, 0x73, 0x70, 0x69, 0x6E, 0x6E, 0x65, 0x72, 0x06, + 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x05, 0x73, 0x6D, 0x69, 0x6C, 0x65, 0x05, 0x66, 0x72, 0x6F, 0x77, 0x6E, 0x03, 0x6D, 0x65, 0x68, 0x07, 0x67, 0x61, + 0x6D, 0x65, 0x70, 0x61, 0x64, 0x08, 0x6B, 0x65, 0x79, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x0E, 0x66, 0x6C, 0x61, 0x67, 0x2D, 0x63, 0x68, 0x65, 0x63, 0x6B, + 0x65, 0x72, 0x65, 0x64, 0x08, 0x74, 0x65, 0x72, 0x6D, 0x69, 0x6E, 0x61, 0x6C, 0x04, 0x63, 0x6F, 0x64, 0x65, 0x09, 0x72, 0x65, 0x70, 0x6C, 0x79, 0x2D, + 0x61, 0x6C, 0x6C, 0x0E, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2D, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x04, 0x63, 0x72, 0x6F, 0x70, 0x0B, 0x63, + 0x6F, 0x64, 0x65, 0x2D, 0x62, 0x72, 0x61, 0x6E, 0x63, 0x68, 0x06, 0x75, 0x6E, 0x6C, 0x69, 0x6E, 0x6B, 0x04, 0x69, 0x6E, 0x66, 0x6F, 0x0B, 0x65, 0x78, + 0x63, 0x6C, 0x61, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x0B, 0x73, 0x75, 0x70, 0x65, 0x72, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x09, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x06, 0x65, 0x72, 0x61, 0x73, 0x65, 0x72, 0x0C, 0x70, 0x75, 0x7A, 0x7A, 0x6C, 0x65, 0x2D, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x0A, 0x6D, 0x69, 0x63, 0x72, 0x6F, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x10, 0x6D, 0x69, 0x63, 0x72, 0x6F, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x2D, 0x73, + 0x6C, 0x61, 0x73, 0x68, 0x08, 0x63, 0x61, 0x6C, 0x65, 0x6E, 0x64, 0x61, 0x72, 0x11, 0x66, 0x69, 0x72, 0x65, 0x2D, 0x65, 0x78, 0x74, 0x69, 0x6E, 0x67, + 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x06, 0x72, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x13, 0x63, 0x68, 0x65, 0x76, 0x72, 0x6F, 0x6E, 0x2D, 0x63, 0x69, 0x72, + 0x63, 0x6C, 0x65, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x14, 0x63, 0x68, 0x65, 0x76, 0x72, 0x6F, 0x6E, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x11, 0x63, 0x68, 0x65, 0x76, 0x72, 0x6F, 0x6E, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x75, 0x70, 0x13, 0x63, 0x68, + 0x65, 0x76, 0x72, 0x6F, 0x6E, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x06, 0x61, 0x6E, 0x63, 0x68, 0x6F, 0x72, 0x0A, + 0x75, 0x6E, 0x6C, 0x6F, 0x63, 0x6B, 0x2D, 0x61, 0x6C, 0x74, 0x08, 0x62, 0x75, 0x6C, 0x6C, 0x73, 0x65, 0x79, 0x65, 0x0A, 0x65, 0x6C, 0x6C, 0x69, 0x70, + 0x73, 0x69, 0x73, 0x2D, 0x68, 0x0A, 0x65, 0x6C, 0x6C, 0x69, 0x70, 0x73, 0x69, 0x73, 0x2D, 0x76, 0x0A, 0x72, 0x73, 0x73, 0x2D, 0x73, 0x71, 0x75, 0x61, + 0x72, 0x65, 0x0B, 0x70, 0x6C, 0x61, 0x79, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x0C, 0x6D, 0x69, 0x6E, 0x75, 0x73, 0x2D, 0x73, 0x71, 0x75, 0x61, + 0x72, 0x65, 0x0C, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x0A, 0x70, 0x65, 0x6E, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, + 0x65, 0x0C, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x07, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x73, 0x73, 0x11, 0x63, 0x61, + 0x72, 0x65, 0x74, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x0F, 0x63, 0x61, 0x72, 0x65, 0x74, 0x2D, 0x73, 0x71, 0x75, + 0x61, 0x72, 0x65, 0x2D, 0x75, 0x70, 0x12, 0x63, 0x61, 0x72, 0x65, 0x74, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x09, 0x65, 0x75, 0x72, 0x6F, 0x2D, 0x73, 0x69, 0x67, 0x6E, 0x0A, 0x70, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x73, 0x69, 0x67, 0x6E, 0x0B, 0x64, 0x6F, 0x6C, + 0x6C, 0x61, 0x72, 0x2D, 0x73, 0x69, 0x67, 0x6E, 0x0A, 0x72, 0x75, 0x70, 0x65, 0x65, 0x2D, 0x73, 0x69, 0x67, 0x6E, 0x08, 0x79, 0x65, 0x6E, 0x2D, 0x73, + 0x69, 0x67, 0x6E, 0x0A, 0x72, 0x75, 0x62, 0x6C, 0x65, 0x2D, 0x73, 0x69, 0x67, 0x6E, 0x08, 0x77, 0x6F, 0x6E, 0x2D, 0x73, 0x69, 0x67, 0x6E, 0x04, 0x66, + 0x69, 0x6C, 0x65, 0x08, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x0F, 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x2D, 0x64, + 0x6F, 0x77, 0x6E, 0x0D, 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x2D, 0x75, 0x70, 0x10, 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x61, 0x6D, + 0x6F, 0x75, 0x6E, 0x74, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x0E, 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x61, 0x6D, 0x6F, 0x75, 0x6E, 0x74, 0x2D, 0x75, 0x70, 0x11, + 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x6E, 0x75, 0x6D, 0x65, 0x72, 0x69, 0x63, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x0F, 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x6E, 0x75, + 0x6D, 0x65, 0x72, 0x69, 0x63, 0x2D, 0x75, 0x70, 0x09, 0x74, 0x68, 0x75, 0x6D, 0x62, 0x73, 0x2D, 0x75, 0x70, 0x0B, 0x74, 0x68, 0x75, 0x6D, 0x62, 0x73, + 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x06, 0x66, 0x65, 0x6D, 0x61, 0x6C, 0x65, 0x04, 0x6D, 0x61, 0x6C, 0x65, 0x03, 0x73, 0x75, 0x6E, 0x04, 0x6D, 0x6F, 0x6F, + 0x6E, 0x07, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x03, 0x62, 0x75, 0x67, 0x11, 0x63, 0x61, 0x72, 0x65, 0x74, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, + 0x65, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x0A, 0x64, 0x6F, 0x74, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x0A, 0x77, 0x68, 0x65, 0x65, 0x6C, 0x63, 0x68, + 0x61, 0x69, 0x72, 0x09, 0x6C, 0x69, 0x72, 0x61, 0x2D, 0x73, 0x69, 0x67, 0x6E, 0x0D, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2D, 0x73, 0x68, 0x75, 0x74, 0x74, + 0x6C, 0x65, 0x0F, 0x65, 0x6E, 0x76, 0x65, 0x6C, 0x6F, 0x70, 0x65, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x0A, 0x75, 0x6E, 0x69, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x74, 0x79, 0x0E, 0x67, 0x72, 0x61, 0x64, 0x75, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2D, 0x63, 0x61, 0x70, 0x08, 0x6C, 0x61, 0x6E, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x03, 0x66, 0x61, 0x78, 0x08, 0x62, 0x75, 0x69, 0x6C, 0x64, 0x69, 0x6E, 0x67, 0x05, 0x63, 0x68, 0x69, 0x6C, 0x64, 0x03, 0x70, 0x61, + 0x77, 0x04, 0x63, 0x75, 0x62, 0x65, 0x05, 0x63, 0x75, 0x62, 0x65, 0x73, 0x07, 0x72, 0x65, 0x63, 0x79, 0x63, 0x6C, 0x65, 0x03, 0x63, 0x61, 0x72, 0x04, + 0x74, 0x61, 0x78, 0x69, 0x04, 0x74, 0x72, 0x65, 0x65, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x08, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x70, + 0x64, 0x66, 0x09, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x77, 0x6F, 0x72, 0x64, 0x0A, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x65, 0x78, 0x63, 0x65, 0x6C, 0x0F, 0x66, + 0x69, 0x6C, 0x65, 0x2D, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x0A, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x69, 0x6D, 0x61, 0x67, 0x65, + 0x0C, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x0A, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x61, 0x75, 0x64, 0x69, 0x6F, 0x0A, + 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x09, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x63, 0x6F, 0x64, 0x65, 0x09, 0x6C, 0x69, 0x66, 0x65, + 0x2D, 0x72, 0x69, 0x6E, 0x67, 0x0C, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x6E, 0x6F, 0x74, 0x63, 0x68, 0x0B, 0x70, 0x61, 0x70, 0x65, 0x72, 0x2D, + 0x70, 0x6C, 0x61, 0x6E, 0x65, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6F, 0x72, 0x79, 0x07, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6E, 0x67, 0x09, 0x73, 0x6C, 0x69, + 0x64, 0x65, 0x72, 0x73, 0x2D, 0x68, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x10, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2D, 0x61, 0x6C, + 0x74, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x04, 0x62, 0x6F, 0x6D, 0x62, 0x06, 0x66, 0x75, 0x74, 0x62, 0x6F, 0x6C, 0x03, 0x74, 0x74, 0x79, 0x0A, + 0x62, 0x69, 0x6E, 0x6F, 0x63, 0x75, 0x6C, 0x61, 0x72, 0x73, 0x04, 0x70, 0x6C, 0x75, 0x67, 0x09, 0x6E, 0x65, 0x77, 0x73, 0x70, 0x61, 0x70, 0x65, 0x72, + 0x04, 0x77, 0x69, 0x66, 0x69, 0x0A, 0x63, 0x61, 0x6C, 0x63, 0x75, 0x6C, 0x61, 0x74, 0x6F, 0x72, 0x0A, 0x62, 0x65, 0x6C, 0x6C, 0x2D, 0x73, 0x6C, 0x61, + 0x73, 0x68, 0x05, 0x74, 0x72, 0x61, 0x73, 0x68, 0x0B, 0x65, 0x79, 0x65, 0x2D, 0x64, 0x72, 0x6F, 0x70, 0x70, 0x65, 0x72, 0x0B, 0x70, 0x61, 0x69, 0x6E, + 0x74, 0x2D, 0x62, 0x72, 0x75, 0x73, 0x68, 0x0D, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x2D, 0x63, 0x61, 0x6B, 0x65, 0x0A, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x2D, 0x61, 0x72, 0x65, 0x61, 0x09, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2D, 0x70, 0x69, 0x65, 0x0A, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2D, 0x6C, + 0x69, 0x6E, 0x65, 0x0A, 0x74, 0x6F, 0x67, 0x67, 0x6C, 0x65, 0x2D, 0x6F, 0x66, 0x66, 0x09, 0x74, 0x6F, 0x67, 0x67, 0x6C, 0x65, 0x2D, 0x6F, 0x6E, 0x07, + 0x62, 0x69, 0x63, 0x79, 0x63, 0x6C, 0x65, 0x03, 0x62, 0x75, 0x73, 0x11, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x64, 0x2D, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6F, + 0x6E, 0x69, 0x6E, 0x67, 0x0B, 0x73, 0x68, 0x65, 0x6B, 0x65, 0x6C, 0x2D, 0x73, 0x69, 0x67, 0x6E, 0x09, 0x63, 0x61, 0x72, 0x74, 0x2D, 0x70, 0x6C, 0x75, + 0x73, 0x0F, 0x63, 0x61, 0x72, 0x74, 0x2D, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x04, 0x73, 0x68, 0x69, 0x70, 0x0B, 0x75, 0x73, + 0x65, 0x72, 0x2D, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x0A, 0x6D, 0x6F, 0x74, 0x6F, 0x72, 0x63, 0x79, 0x63, 0x6C, 0x65, 0x0B, 0x73, 0x74, 0x72, 0x65, + 0x65, 0x74, 0x2D, 0x76, 0x69, 0x65, 0x77, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x05, 0x76, 0x65, 0x6E, 0x75, 0x73, 0x04, 0x6D, + 0x61, 0x72, 0x73, 0x07, 0x6D, 0x65, 0x72, 0x63, 0x75, 0x72, 0x79, 0x0B, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x67, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x0F, 0x74, + 0x72, 0x61, 0x6E, 0x73, 0x67, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x2D, 0x61, 0x6C, 0x74, 0x0C, 0x76, 0x65, 0x6E, 0x75, 0x73, 0x2D, 0x64, 0x6F, 0x75, 0x62, + 0x6C, 0x65, 0x0B, 0x6D, 0x61, 0x72, 0x73, 0x2D, 0x64, 0x6F, 0x75, 0x62, 0x6C, 0x65, 0x0A, 0x76, 0x65, 0x6E, 0x75, 0x73, 0x2D, 0x6D, 0x61, 0x72, 0x73, + 0x0B, 0x6D, 0x61, 0x72, 0x73, 0x2D, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x0D, 0x6D, 0x61, 0x72, 0x73, 0x2D, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x2D, + 0x76, 0x0D, 0x6D, 0x61, 0x72, 0x73, 0x2D, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x2D, 0x68, 0x06, 0x6E, 0x65, 0x75, 0x74, 0x65, 0x72, 0x0A, 0x67, 0x65, + 0x6E, 0x64, 0x65, 0x72, 0x6C, 0x65, 0x73, 0x73, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x09, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x70, 0x6C, 0x75, 0x73, + 0x0A, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x74, 0x69, 0x6D, 0x65, 0x73, 0x03, 0x62, 0x65, 0x64, 0x05, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x06, 0x73, 0x75, 0x62, + 0x77, 0x61, 0x79, 0x0C, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x2D, 0x66, 0x75, 0x6C, 0x6C, 0x16, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x2D, + 0x74, 0x68, 0x72, 0x65, 0x65, 0x2D, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x73, 0x0C, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x2D, 0x68, 0x61, + 0x6C, 0x66, 0x0F, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x2D, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x0D, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x79, 0x2D, 0x65, 0x6D, 0x70, 0x74, 0x79, 0x0D, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x2D, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x08, 0x69, 0x2D, 0x63, + 0x75, 0x72, 0x73, 0x6F, 0x72, 0x0C, 0x6F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x2D, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x0E, 0x6F, 0x62, 0x6A, 0x65, 0x63, 0x74, + 0x2D, 0x75, 0x6E, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x0B, 0x73, 0x74, 0x69, 0x63, 0x6B, 0x79, 0x2D, 0x6E, 0x6F, 0x74, 0x65, 0x05, 0x63, 0x6C, 0x6F, 0x6E, + 0x65, 0x0D, 0x62, 0x61, 0x6C, 0x61, 0x6E, 0x63, 0x65, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x0F, 0x68, 0x6F, 0x75, 0x72, 0x67, 0x6C, 0x61, 0x73, 0x73, + 0x2D, 0x73, 0x74, 0x61, 0x72, 0x74, 0x0E, 0x68, 0x6F, 0x75, 0x72, 0x67, 0x6C, 0x61, 0x73, 0x73, 0x2D, 0x68, 0x61, 0x6C, 0x66, 0x0D, 0x68, 0x6F, 0x75, + 0x72, 0x67, 0x6C, 0x61, 0x73, 0x73, 0x2D, 0x65, 0x6E, 0x64, 0x09, 0x68, 0x6F, 0x75, 0x72, 0x67, 0x6C, 0x61, 0x73, 0x73, 0x09, 0x68, 0x61, 0x6E, 0x64, + 0x2D, 0x72, 0x6F, 0x63, 0x6B, 0x0A, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x70, 0x61, 0x70, 0x65, 0x72, 0x0D, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x73, 0x63, 0x69, + 0x73, 0x73, 0x6F, 0x72, 0x73, 0x0B, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x6C, 0x69, 0x7A, 0x61, 0x72, 0x64, 0x0A, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x73, 0x70, + 0x6F, 0x63, 0x6B, 0x0C, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x0A, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x70, 0x65, 0x61, + 0x63, 0x65, 0x02, 0x74, 0x76, 0x0D, 0x63, 0x61, 0x6C, 0x65, 0x6E, 0x64, 0x61, 0x72, 0x2D, 0x70, 0x6C, 0x75, 0x73, 0x0E, 0x63, 0x61, 0x6C, 0x65, 0x6E, + 0x64, 0x61, 0x72, 0x2D, 0x6D, 0x69, 0x6E, 0x75, 0x73, 0x0E, 0x63, 0x61, 0x6C, 0x65, 0x6E, 0x64, 0x61, 0x72, 0x2D, 0x74, 0x69, 0x6D, 0x65, 0x73, 0x0E, + 0x63, 0x61, 0x6C, 0x65, 0x6E, 0x64, 0x61, 0x72, 0x2D, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x08, 0x69, 0x6E, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x07, 0x6D, + 0x61, 0x70, 0x2D, 0x70, 0x69, 0x6E, 0x09, 0x6D, 0x61, 0x70, 0x2D, 0x73, 0x69, 0x67, 0x6E, 0x73, 0x03, 0x6D, 0x61, 0x70, 0x0B, 0x63, 0x6F, 0x6D, 0x6D, + 0x65, 0x6E, 0x74, 0x2D, 0x61, 0x6C, 0x74, 0x0C, 0x70, 0x61, 0x75, 0x73, 0x65, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x0B, 0x73, 0x74, 0x6F, 0x70, + 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x0C, 0x73, 0x68, 0x6F, 0x70, 0x70, 0x69, 0x6E, 0x67, 0x2D, 0x62, 0x61, 0x67, 0x0F, 0x73, 0x68, 0x6F, 0x70, + 0x70, 0x69, 0x6E, 0x67, 0x2D, 0x62, 0x61, 0x73, 0x6B, 0x65, 0x74, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x10, 0x75, 0x6E, 0x69, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x6C, 0x2D, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x05, 0x62, 0x6C, 0x69, 0x6E, 0x64, 0x11, 0x61, 0x75, 0x64, 0x69, 0x6F, 0x2D, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x0C, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x2D, 0x76, 0x6F, 0x6C, 0x75, 0x6D, 0x65, 0x07, 0x62, + 0x72, 0x61, 0x69, 0x6C, 0x6C, 0x65, 0x1B, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x69, 0x76, 0x65, 0x2D, 0x6C, 0x69, 0x73, 0x74, 0x65, 0x6E, 0x69, 0x6E, + 0x67, 0x2D, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x73, 0x23, 0x61, 0x6D, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6E, 0x2D, 0x73, 0x69, 0x67, 0x6E, 0x2D, 0x6C, + 0x61, 0x6E, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2D, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x69, 0x6E, 0x67, 0x04, 0x64, 0x65, 0x61, 0x66, + 0x0D, 0x73, 0x69, 0x67, 0x6E, 0x2D, 0x6C, 0x61, 0x6E, 0x67, 0x75, 0x61, 0x67, 0x65, 0x0A, 0x6C, 0x6F, 0x77, 0x2D, 0x76, 0x69, 0x73, 0x69, 0x6F, 0x6E, + 0x09, 0x68, 0x61, 0x6E, 0x64, 0x73, 0x68, 0x61, 0x6B, 0x65, 0x0D, 0x65, 0x6E, 0x76, 0x65, 0x6C, 0x6F, 0x70, 0x65, 0x2D, 0x6F, 0x70, 0x65, 0x6E, 0x0C, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2D, 0x62, 0x6F, 0x6F, 0x6B, 0x0C, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2D, 0x63, 0x61, 0x72, 0x64, + 0x0B, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x08, 0x69, 0x64, 0x2D, 0x62, 0x61, 0x64, 0x67, 0x65, 0x07, 0x69, 0x64, 0x2D, + 0x63, 0x61, 0x72, 0x64, 0x10, 0x74, 0x68, 0x65, 0x72, 0x6D, 0x6F, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x2D, 0x66, 0x75, 0x6C, 0x6C, 0x1A, 0x74, 0x68, 0x65, + 0x72, 0x6D, 0x6F, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x2D, 0x74, 0x68, 0x72, 0x65, 0x65, 0x2D, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x73, 0x10, 0x74, + 0x68, 0x65, 0x72, 0x6D, 0x6F, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x2D, 0x68, 0x61, 0x6C, 0x66, 0x13, 0x74, 0x68, 0x65, 0x72, 0x6D, 0x6F, 0x6D, 0x65, 0x74, + 0x65, 0x72, 0x2D, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x11, 0x74, 0x68, 0x65, 0x72, 0x6D, 0x6F, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x2D, 0x65, 0x6D, + 0x70, 0x74, 0x79, 0x06, 0x73, 0x68, 0x6F, 0x77, 0x65, 0x72, 0x04, 0x62, 0x61, 0x74, 0x68, 0x07, 0x70, 0x6F, 0x64, 0x63, 0x61, 0x73, 0x74, 0x0F, 0x77, + 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2D, 0x6D, 0x61, 0x78, 0x69, 0x6D, 0x69, 0x7A, 0x65, 0x0F, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2D, 0x6D, 0x69, 0x6E, + 0x69, 0x6D, 0x69, 0x7A, 0x65, 0x0E, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2D, 0x72, 0x65, 0x73, 0x74, 0x6F, 0x72, 0x65, 0x09, 0x6D, 0x69, 0x63, 0x72, + 0x6F, 0x63, 0x68, 0x69, 0x70, 0x09, 0x73, 0x6E, 0x6F, 0x77, 0x66, 0x6C, 0x61, 0x6B, 0x65, 0x0D, 0x75, 0x74, 0x65, 0x6E, 0x73, 0x69, 0x6C, 0x2D, 0x73, + 0x70, 0x6F, 0x6F, 0x6E, 0x08, 0x75, 0x74, 0x65, 0x6E, 0x73, 0x69, 0x6C, 0x73, 0x08, 0x75, 0x6E, 0x64, 0x6F, 0x2D, 0x61, 0x6C, 0x74, 0x09, 0x74, 0x72, + 0x61, 0x73, 0x68, 0x2D, 0x61, 0x6C, 0x74, 0x08, 0x73, 0x79, 0x6E, 0x63, 0x2D, 0x61, 0x6C, 0x74, 0x09, 0x73, 0x74, 0x6F, 0x70, 0x77, 0x61, 0x74, 0x63, + 0x68, 0x0C, 0x73, 0x69, 0x67, 0x6E, 0x2D, 0x6F, 0x75, 0x74, 0x2D, 0x61, 0x6C, 0x74, 0x0B, 0x73, 0x69, 0x67, 0x6E, 0x2D, 0x69, 0x6E, 0x2D, 0x61, 0x6C, + 0x74, 0x08, 0x72, 0x65, 0x64, 0x6F, 0x2D, 0x61, 0x6C, 0x74, 0x03, 0x70, 0x6F, 0x6F, 0x06, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x73, 0x0A, 0x70, 0x65, 0x6E, + 0x63, 0x69, 0x6C, 0x2D, 0x61, 0x6C, 0x74, 0x03, 0x70, 0x65, 0x6E, 0x07, 0x70, 0x65, 0x6E, 0x2D, 0x61, 0x6C, 0x74, 0x13, 0x6C, 0x6F, 0x6E, 0x67, 0x2D, + 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x61, 0x6C, 0x74, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x13, 0x6C, 0x6F, 0x6E, 0x67, 0x2D, 0x61, 0x72, 0x72, 0x6F, 0x77, + 0x2D, 0x61, 0x6C, 0x74, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x14, 0x6C, 0x6F, 0x6E, 0x67, 0x2D, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x61, 0x6C, 0x74, 0x2D, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x11, 0x6C, 0x6F, 0x6E, 0x67, 0x2D, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x61, 0x6C, 0x74, 0x2D, 0x75, 0x70, 0x11, 0x65, + 0x78, 0x70, 0x61, 0x6E, 0x64, 0x2D, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x73, 0x2D, 0x61, 0x6C, 0x74, 0x09, 0x63, 0x6C, 0x69, 0x70, 0x62, 0x6F, 0x61, 0x72, + 0x64, 0x0C, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x73, 0x2D, 0x61, 0x6C, 0x74, 0x2D, 0x68, 0x0C, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x73, 0x2D, 0x61, 0x6C, 0x74, + 0x2D, 0x76, 0x15, 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x61, 0x6C, 0x74, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x15, + 0x61, 0x72, 0x72, 0x6F, 0x77, 0x2D, 0x61, 0x6C, 0x74, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x16, 0x61, 0x72, 0x72, + 0x6F, 0x77, 0x2D, 0x61, 0x6C, 0x74, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, 0x13, 0x61, 0x72, 0x72, 0x6F, 0x77, + 0x2D, 0x61, 0x6C, 0x74, 0x2D, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2D, 0x75, 0x70, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6E, 0x61, 0x6C, 0x2D, 0x6C, + 0x69, 0x6E, 0x6B, 0x2D, 0x61, 0x6C, 0x74, 0x18, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6E, 0x61, 0x6C, 0x2D, 0x6C, 0x69, 0x6E, 0x6B, 0x2D, 0x73, 0x71, 0x75, + 0x61, 0x72, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x0C, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x12, 0x63, 0x6C, 0x6F, 0x75, + 0x64, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x6C, 0x6F, 0x61, 0x64, 0x2D, 0x61, 0x6C, 0x74, 0x10, 0x63, 0x6C, 0x6F, 0x75, 0x64, 0x2D, 0x75, 0x70, 0x6C, 0x6F, + 0x61, 0x64, 0x2D, 0x61, 0x6C, 0x74, 0x03, 0x67, 0x65, 0x6D, 0x0E, 0x6C, 0x65, 0x76, 0x65, 0x6C, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x2D, 0x61, 0x6C, 0x74, + 0x0C, 0x6C, 0x65, 0x76, 0x65, 0x6C, 0x2D, 0x75, 0x70, 0x2D, 0x61, 0x6C, 0x74, 0x09, 0x6C, 0x6F, 0x63, 0x6B, 0x2D, 0x6F, 0x70, 0x65, 0x6E, 0x0E, 0x6D, + 0x61, 0x70, 0x2D, 0x6D, 0x61, 0x72, 0x6B, 0x65, 0x72, 0x2D, 0x61, 0x6C, 0x74, 0x0E, 0x6D, 0x69, 0x63, 0x72, 0x6F, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x2D, + 0x61, 0x6C, 0x74, 0x0A, 0x6D, 0x6F, 0x62, 0x69, 0x6C, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x0E, 0x6D, 0x6F, 0x6E, 0x65, 0x79, 0x2D, 0x62, 0x69, 0x6C, 0x6C, + 0x2D, 0x61, 0x6C, 0x74, 0x0B, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x2D, 0x73, 0x6C, 0x61, 0x73, 0x68, 0x08, 0x70, 0x6F, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x05, 0x72, 0x65, 0x70, 0x6C, 0x79, 0x0A, 0x73, 0x68, 0x69, 0x65, 0x6C, 0x64, 0x2D, 0x61, 0x6C, 0x74, 0x0A, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x74, 0x2D, + 0x61, 0x6C, 0x74, 0x0E, 0x74, 0x61, 0x63, 0x68, 0x6F, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x2D, 0x61, 0x6C, 0x74, 0x0A, 0x74, 0x69, 0x63, 0x6B, 0x65, 0x74, + 0x2D, 0x61, 0x6C, 0x74, 0x08, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x61, 0x6C, 0x74, 0x0C, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2D, 0x63, 0x6C, 0x6F, 0x73, + 0x65, 0x0C, 0x63, 0x6F, 0x6D, 0x70, 0x72, 0x65, 0x73, 0x73, 0x2D, 0x61, 0x6C, 0x74, 0x0A, 0x65, 0x78, 0x70, 0x61, 0x6E, 0x64, 0x2D, 0x61, 0x6C, 0x74, + 0x0D, 0x62, 0x61, 0x73, 0x65, 0x62, 0x61, 0x6C, 0x6C, 0x2D, 0x62, 0x61, 0x6C, 0x6C, 0x0F, 0x62, 0x61, 0x73, 0x6B, 0x65, 0x74, 0x62, 0x61, 0x6C, 0x6C, + 0x2D, 0x62, 0x61, 0x6C, 0x6C, 0x0C, 0x62, 0x6F, 0x77, 0x6C, 0x69, 0x6E, 0x67, 0x2D, 0x62, 0x61, 0x6C, 0x6C, 0x05, 0x63, 0x68, 0x65, 0x73, 0x73, 0x0C, + 0x63, 0x68, 0x65, 0x73, 0x73, 0x2D, 0x62, 0x69, 0x73, 0x68, 0x6F, 0x70, 0x0B, 0x63, 0x68, 0x65, 0x73, 0x73, 0x2D, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x0A, + 0x63, 0x68, 0x65, 0x73, 0x73, 0x2D, 0x6B, 0x69, 0x6E, 0x67, 0x0C, 0x63, 0x68, 0x65, 0x73, 0x73, 0x2D, 0x6B, 0x6E, 0x69, 0x67, 0x68, 0x74, 0x0A, 0x63, + 0x68, 0x65, 0x73, 0x73, 0x2D, 0x70, 0x61, 0x77, 0x6E, 0x0B, 0x63, 0x68, 0x65, 0x73, 0x73, 0x2D, 0x71, 0x75, 0x65, 0x65, 0x6E, 0x0A, 0x63, 0x68, 0x65, + 0x73, 0x73, 0x2D, 0x72, 0x6F, 0x6F, 0x6B, 0x08, 0x64, 0x75, 0x6D, 0x62, 0x62, 0x65, 0x6C, 0x6C, 0x0D, 0x66, 0x6F, 0x6F, 0x74, 0x62, 0x61, 0x6C, 0x6C, + 0x2D, 0x62, 0x61, 0x6C, 0x6C, 0x09, 0x67, 0x6F, 0x6C, 0x66, 0x2D, 0x62, 0x61, 0x6C, 0x6C, 0x0B, 0x68, 0x6F, 0x63, 0x6B, 0x65, 0x79, 0x2D, 0x70, 0x75, + 0x63, 0x6B, 0x09, 0x71, 0x75, 0x69, 0x64, 0x64, 0x69, 0x74, 0x63, 0x68, 0x0B, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x2D, 0x66, 0x75, 0x6C, 0x6C, 0x0C, + 0x74, 0x61, 0x62, 0x6C, 0x65, 0x2D, 0x74, 0x65, 0x6E, 0x6E, 0x69, 0x73, 0x0F, 0x76, 0x6F, 0x6C, 0x6C, 0x65, 0x79, 0x62, 0x61, 0x6C, 0x6C, 0x2D, 0x62, + 0x61, 0x6C, 0x6C, 0x09, 0x61, 0x6C, 0x6C, 0x65, 0x72, 0x67, 0x69, 0x65, 0x73, 0x08, 0x62, 0x61, 0x6E, 0x64, 0x2D, 0x61, 0x69, 0x64, 0x03, 0x62, 0x6F, + 0x78, 0x05, 0x62, 0x6F, 0x78, 0x65, 0x73, 0x11, 0x62, 0x72, 0x69, 0x65, 0x66, 0x63, 0x61, 0x73, 0x65, 0x2D, 0x6D, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6C, + 0x04, 0x62, 0x75, 0x72, 0x6E, 0x08, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6C, 0x65, 0x73, 0x0F, 0x63, 0x6C, 0x69, 0x70, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x2D, + 0x63, 0x68, 0x65, 0x63, 0x6B, 0x0E, 0x63, 0x6C, 0x69, 0x70, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x2D, 0x6C, 0x69, 0x73, 0x74, 0x09, 0x64, 0x69, 0x61, 0x67, + 0x6E, 0x6F, 0x73, 0x65, 0x73, 0x03, 0x64, 0x6E, 0x61, 0x05, 0x64, 0x6F, 0x6C, 0x6C, 0x79, 0x0D, 0x64, 0x6F, 0x6C, 0x6C, 0x79, 0x2D, 0x66, 0x6C, 0x61, + 0x74, 0x62, 0x65, 0x64, 0x0C, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x6D, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6C, 0x10, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x6D, 0x65, + 0x64, 0x69, 0x63, 0x61, 0x6C, 0x2D, 0x61, 0x6C, 0x74, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2D, 0x61, 0x69, 0x64, 0x0C, 0x68, 0x6F, 0x73, 0x70, 0x69, + 0x74, 0x61, 0x6C, 0x2D, 0x61, 0x6C, 0x74, 0x0F, 0x68, 0x6F, 0x73, 0x70, 0x69, 0x74, 0x61, 0x6C, 0x2D, 0x73, 0x79, 0x6D, 0x62, 0x6F, 0x6C, 0x0B, 0x69, + 0x64, 0x2D, 0x63, 0x61, 0x72, 0x64, 0x2D, 0x61, 0x6C, 0x74, 0x0D, 0x6E, 0x6F, 0x74, 0x65, 0x73, 0x2D, 0x6D, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6C, 0x06, + 0x70, 0x61, 0x6C, 0x6C, 0x65, 0x74, 0x05, 0x70, 0x69, 0x6C, 0x6C, 0x73, 0x13, 0x70, 0x72, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6C, 0x65, 0x17, 0x70, 0x72, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, + 0x6C, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x0A, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x73, 0x0D, 0x73, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6E, + 0x67, 0x2D, 0x66, 0x61, 0x73, 0x74, 0x07, 0x73, 0x6D, 0x6F, 0x6B, 0x69, 0x6E, 0x67, 0x07, 0x73, 0x79, 0x72, 0x69, 0x6E, 0x67, 0x65, 0x07, 0x74, 0x61, + 0x62, 0x6C, 0x65, 0x74, 0x73, 0x0B, 0x74, 0x68, 0x65, 0x72, 0x6D, 0x6F, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x04, 0x76, 0x69, 0x61, 0x6C, 0x05, 0x76, 0x69, + 0x61, 0x6C, 0x73, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6F, 0x75, 0x73, 0x65, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x05, 0x78, 0x2D, 0x72, 0x61, + 0x79, 0x08, 0x62, 0x6F, 0x78, 0x2D, 0x6F, 0x70, 0x65, 0x6E, 0x0C, 0x63, 0x6F, 0x6D, 0x6D, 0x65, 0x6E, 0x74, 0x2D, 0x64, 0x6F, 0x74, 0x73, 0x0D, 0x63, + 0x6F, 0x6D, 0x6D, 0x65, 0x6E, 0x74, 0x2D, 0x73, 0x6C, 0x61, 0x73, 0x68, 0x05, 0x63, 0x6F, 0x75, 0x63, 0x68, 0x06, 0x64, 0x6F, 0x6E, 0x61, 0x74, 0x65, + 0x04, 0x64, 0x6F, 0x76, 0x65, 0x0C, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x68, 0x6F, 0x6C, 0x64, 0x69, 0x6E, 0x67, 0x12, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x68, + 0x6F, 0x6C, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x68, 0x65, 0x61, 0x72, 0x74, 0x10, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x68, 0x6F, 0x6C, 0x64, 0x69, 0x6E, 0x67, + 0x2D, 0x75, 0x73, 0x64, 0x12, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x68, 0x6F, 0x6C, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x77, 0x61, 0x74, 0x65, 0x72, 0x05, 0x68, + 0x61, 0x6E, 0x64, 0x73, 0x0D, 0x68, 0x61, 0x6E, 0x64, 0x73, 0x2D, 0x68, 0x65, 0x6C, 0x70, 0x69, 0x6E, 0x67, 0x0D, 0x70, 0x61, 0x72, 0x61, 0x63, 0x68, + 0x75, 0x74, 0x65, 0x2D, 0x62, 0x6F, 0x78, 0x0C, 0x70, 0x65, 0x6F, 0x70, 0x6C, 0x65, 0x2D, 0x63, 0x61, 0x72, 0x72, 0x79, 0x0A, 0x70, 0x69, 0x67, 0x67, + 0x79, 0x2D, 0x62, 0x61, 0x6E, 0x6B, 0x06, 0x72, 0x69, 0x62, 0x62, 0x6F, 0x6E, 0x05, 0x72, 0x6F, 0x75, 0x74, 0x65, 0x08, 0x73, 0x65, 0x65, 0x64, 0x6C, + 0x69, 0x6E, 0x67, 0x04, 0x73, 0x69, 0x67, 0x6E, 0x0A, 0x73, 0x6D, 0x69, 0x6C, 0x65, 0x2D, 0x77, 0x69, 0x6E, 0x6B, 0x04, 0x74, 0x61, 0x70, 0x65, 0x0D, + 0x74, 0x72, 0x75, 0x63, 0x6B, 0x2D, 0x6C, 0x6F, 0x61, 0x64, 0x69, 0x6E, 0x67, 0x0C, 0x74, 0x72, 0x75, 0x63, 0x6B, 0x2D, 0x6D, 0x6F, 0x76, 0x69, 0x6E, + 0x67, 0x0B, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x2D, 0x73, 0x6C, 0x61, 0x73, 0x68, 0x0A, 0x77, 0x69, 0x6E, 0x65, 0x2D, 0x67, 0x6C, 0x61, 0x73, 0x73, 0x0E, + 0x75, 0x73, 0x65, 0x72, 0x2D, 0x61, 0x6C, 0x74, 0x2D, 0x73, 0x6C, 0x61, 0x73, 0x68, 0x0E, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x61, 0x73, 0x74, 0x72, 0x6F, + 0x6E, 0x61, 0x75, 0x74, 0x0A, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x0A, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x63, 0x6C, 0x6F, 0x63, + 0x6B, 0x08, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x63, 0x6F, 0x67, 0x09, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x65, 0x64, 0x69, 0x74, 0x0C, 0x75, 0x73, 0x65, 0x72, + 0x2D, 0x66, 0x72, 0x69, 0x65, 0x6E, 0x64, 0x73, 0x0D, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x67, 0x72, 0x61, 0x64, 0x75, 0x61, 0x74, 0x65, 0x09, 0x75, 0x73, + 0x65, 0x72, 0x2D, 0x6C, 0x6F, 0x63, 0x6B, 0x0A, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x6D, 0x69, 0x6E, 0x75, 0x73, 0x0A, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x6E, + 0x69, 0x6E, 0x6A, 0x61, 0x0B, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, 0x68, 0x69, 0x65, 0x6C, 0x64, 0x0A, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, 0x6C, 0x61, + 0x73, 0x68, 0x08, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x74, 0x61, 0x67, 0x08, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x74, 0x69, 0x65, 0x09, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x2D, 0x63, 0x6F, 0x67, 0x12, 0x62, 0x61, 0x6C, 0x61, 0x6E, 0x63, 0x65, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x13, + 0x62, 0x61, 0x6C, 0x61, 0x6E, 0x63, 0x65, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, 0x07, 0x62, 0x6C, 0x65, 0x6E, 0x64, + 0x65, 0x72, 0x09, 0x62, 0x6F, 0x6F, 0x6B, 0x2D, 0x6F, 0x70, 0x65, 0x6E, 0x0F, 0x62, 0x72, 0x6F, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x2D, 0x74, 0x6F, + 0x77, 0x65, 0x72, 0x05, 0x62, 0x72, 0x6F, 0x6F, 0x6D, 0x0A, 0x63, 0x68, 0x61, 0x6C, 0x6B, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x12, 0x63, 0x68, 0x61, 0x6C, + 0x6B, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x2D, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x06, 0x63, 0x68, 0x75, 0x72, 0x63, 0x68, 0x05, 0x63, 0x6F, 0x69, + 0x6E, 0x73, 0x0C, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x63, 0x74, 0x2D, 0x64, 0x69, 0x73, 0x63, 0x04, 0x63, 0x72, 0x6F, 0x77, 0x05, 0x63, 0x72, 0x6F, 0x77, + 0x6E, 0x04, 0x64, 0x69, 0x63, 0x65, 0x09, 0x64, 0x69, 0x63, 0x65, 0x2D, 0x66, 0x69, 0x76, 0x65, 0x09, 0x64, 0x69, 0x63, 0x65, 0x2D, 0x66, 0x6F, 0x75, + 0x72, 0x08, 0x64, 0x69, 0x63, 0x65, 0x2D, 0x6F, 0x6E, 0x65, 0x08, 0x64, 0x69, 0x63, 0x65, 0x2D, 0x73, 0x69, 0x78, 0x0A, 0x64, 0x69, 0x63, 0x65, 0x2D, + 0x74, 0x68, 0x72, 0x65, 0x65, 0x08, 0x64, 0x69, 0x63, 0x65, 0x2D, 0x74, 0x77, 0x6F, 0x0B, 0x64, 0x6F, 0x6F, 0x72, 0x2D, 0x63, 0x6C, 0x6F, 0x73, 0x65, + 0x64, 0x09, 0x64, 0x6F, 0x6F, 0x72, 0x2D, 0x6F, 0x70, 0x65, 0x6E, 0x06, 0x65, 0x71, 0x75, 0x61, 0x6C, 0x73, 0x07, 0x66, 0x65, 0x61, 0x74, 0x68, 0x65, + 0x72, 0x04, 0x66, 0x72, 0x6F, 0x67, 0x08, 0x67, 0x61, 0x73, 0x2D, 0x70, 0x75, 0x6D, 0x70, 0x07, 0x67, 0x6C, 0x61, 0x73, 0x73, 0x65, 0x73, 0x0C, 0x67, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x2D, 0x74, 0x68, 0x61, 0x6E, 0x12, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x2D, 0x74, 0x68, 0x61, 0x6E, 0x2D, + 0x65, 0x71, 0x75, 0x61, 0x6C, 0x0A, 0x68, 0x65, 0x6C, 0x69, 0x63, 0x6F, 0x70, 0x74, 0x65, 0x72, 0x09, 0x6B, 0x69, 0x77, 0x69, 0x2D, 0x62, 0x69, 0x72, + 0x64, 0x09, 0x6C, 0x65, 0x73, 0x73, 0x2D, 0x74, 0x68, 0x61, 0x6E, 0x0F, 0x6C, 0x65, 0x73, 0x73, 0x2D, 0x74, 0x68, 0x61, 0x6E, 0x2D, 0x65, 0x71, 0x75, + 0x61, 0x6C, 0x06, 0x6D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x14, 0x6D, 0x69, 0x63, 0x72, 0x6F, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x2D, + 0x73, 0x6C, 0x61, 0x73, 0x68, 0x0F, 0x6D, 0x6F, 0x6E, 0x65, 0x79, 0x2D, 0x62, 0x69, 0x6C, 0x6C, 0x2D, 0x77, 0x61, 0x76, 0x65, 0x13, 0x6D, 0x6F, 0x6E, + 0x65, 0x79, 0x2D, 0x62, 0x69, 0x6C, 0x6C, 0x2D, 0x77, 0x61, 0x76, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x0B, 0x6D, 0x6F, 0x6E, 0x65, 0x79, 0x2D, 0x63, 0x68, + 0x65, 0x63, 0x6B, 0x0F, 0x6D, 0x6F, 0x6E, 0x65, 0x79, 0x2D, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x2D, 0x61, 0x6C, 0x74, 0x09, 0x6E, 0x6F, 0x74, 0x2D, 0x65, + 0x71, 0x75, 0x61, 0x6C, 0x07, 0x70, 0x61, 0x6C, 0x65, 0x74, 0x74, 0x65, 0x07, 0x70, 0x61, 0x72, 0x6B, 0x69, 0x6E, 0x67, 0x0A, 0x70, 0x65, 0x72, 0x63, + 0x65, 0x6E, 0x74, 0x61, 0x67, 0x65, 0x0F, 0x70, 0x72, 0x6F, 0x6A, 0x65, 0x63, 0x74, 0x2D, 0x64, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6D, 0x07, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x70, 0x74, 0x05, 0x72, 0x6F, 0x62, 0x6F, 0x74, 0x05, 0x72, 0x75, 0x6C, 0x65, 0x72, 0x0E, 0x72, 0x75, 0x6C, 0x65, 0x72, 0x2D, 0x63, + 0x6F, 0x6D, 0x62, 0x69, 0x6E, 0x65, 0x64, 0x10, 0x72, 0x75, 0x6C, 0x65, 0x72, 0x2D, 0x68, 0x6F, 0x72, 0x69, 0x7A, 0x6F, 0x6E, 0x74, 0x61, 0x6C, 0x0E, + 0x72, 0x75, 0x6C, 0x65, 0x72, 0x2D, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, 0x06, 0x73, 0x63, 0x68, 0x6F, 0x6F, 0x6C, 0x0B, 0x73, 0x63, 0x72, + 0x65, 0x77, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x0B, 0x73, 0x68, 0x6F, 0x65, 0x2D, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x73, 0x05, 0x73, 0x6B, 0x75, 0x6C, + 0x6C, 0x0B, 0x73, 0x6D, 0x6F, 0x6B, 0x69, 0x6E, 0x67, 0x2D, 0x62, 0x61, 0x6E, 0x05, 0x73, 0x74, 0x6F, 0x72, 0x65, 0x09, 0x73, 0x74, 0x6F, 0x72, 0x65, + 0x2D, 0x61, 0x6C, 0x74, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D, 0x0B, 0x73, 0x74, 0x72, 0x6F, 0x6F, 0x70, 0x77, 0x61, 0x66, 0x65, 0x6C, 0x07, 0x74, + 0x6F, 0x6F, 0x6C, 0x62, 0x6F, 0x78, 0x06, 0x74, 0x73, 0x68, 0x69, 0x72, 0x74, 0x07, 0x77, 0x61, 0x6C, 0x6B, 0x69, 0x6E, 0x67, 0x06, 0x77, 0x61, 0x6C, + 0x6C, 0x65, 0x74, 0x05, 0x61, 0x6E, 0x67, 0x72, 0x79, 0x07, 0x61, 0x72, 0x63, 0x68, 0x77, 0x61, 0x79, 0x05, 0x61, 0x74, 0x6C, 0x61, 0x73, 0x05, 0x61, + 0x77, 0x61, 0x72, 0x64, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x73, 0x70, 0x61, 0x63, 0x65, 0x0C, 0x62, 0x65, 0x7A, 0x69, 0x65, 0x72, 0x2D, 0x63, 0x75, 0x72, + 0x76, 0x65, 0x04, 0x62, 0x6F, 0x6E, 0x67, 0x05, 0x62, 0x72, 0x75, 0x73, 0x68, 0x07, 0x62, 0x75, 0x73, 0x2D, 0x61, 0x6C, 0x74, 0x08, 0x63, 0x61, 0x6E, + 0x6E, 0x61, 0x62, 0x69, 0x73, 0x0C, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x2D, 0x64, 0x6F, 0x75, 0x62, 0x6C, 0x65, 0x08, 0x63, 0x6F, 0x63, 0x6B, 0x74, 0x61, + 0x69, 0x6C, 0x0E, 0x63, 0x6F, 0x6E, 0x63, 0x69, 0x65, 0x72, 0x67, 0x65, 0x2D, 0x62, 0x65, 0x6C, 0x6C, 0x06, 0x63, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x0B, + 0x63, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x2D, 0x62, 0x69, 0x74, 0x65, 0x08, 0x63, 0x72, 0x6F, 0x70, 0x2D, 0x61, 0x6C, 0x74, 0x12, 0x64, 0x69, 0x67, 0x69, + 0x74, 0x61, 0x6C, 0x2D, 0x74, 0x61, 0x63, 0x68, 0x6F, 0x67, 0x72, 0x61, 0x70, 0x68, 0x05, 0x64, 0x69, 0x7A, 0x7A, 0x79, 0x10, 0x64, 0x72, 0x61, 0x66, + 0x74, 0x69, 0x6E, 0x67, 0x2D, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x73, 0x73, 0x04, 0x64, 0x72, 0x75, 0x6D, 0x0D, 0x64, 0x72, 0x75, 0x6D, 0x2D, 0x73, 0x74, + 0x65, 0x65, 0x6C, 0x70, 0x61, 0x6E, 0x0B, 0x66, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x2D, 0x61, 0x6C, 0x74, 0x0D, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x63, + 0x6F, 0x6E, 0x74, 0x72, 0x61, 0x63, 0x74, 0x0D, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x6C, 0x6F, 0x61, 0x64, 0x0B, 0x66, 0x69, 0x6C, + 0x65, 0x2D, 0x65, 0x78, 0x70, 0x6F, 0x72, 0x74, 0x0B, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x0C, 0x66, 0x69, 0x6C, 0x65, + 0x2D, 0x69, 0x6E, 0x76, 0x6F, 0x69, 0x63, 0x65, 0x13, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x69, 0x6E, 0x76, 0x6F, 0x69, 0x63, 0x65, 0x2D, 0x64, 0x6F, 0x6C, + 0x6C, 0x61, 0x72, 0x11, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x70, 0x72, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x0E, 0x66, 0x69, 0x6C, + 0x65, 0x2D, 0x73, 0x69, 0x67, 0x6E, 0x61, 0x74, 0x75, 0x72, 0x65, 0x0B, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x75, 0x70, 0x6C, 0x6F, 0x61, 0x64, 0x04, 0x66, + 0x69, 0x6C, 0x6C, 0x09, 0x66, 0x69, 0x6C, 0x6C, 0x2D, 0x64, 0x72, 0x69, 0x70, 0x0B, 0x66, 0x69, 0x6E, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6E, 0x74, + 0x04, 0x66, 0x69, 0x73, 0x68, 0x07, 0x66, 0x6C, 0x75, 0x73, 0x68, 0x65, 0x64, 0x0A, 0x66, 0x72, 0x6F, 0x77, 0x6E, 0x2D, 0x6F, 0x70, 0x65, 0x6E, 0x11, + 0x67, 0x6C, 0x61, 0x73, 0x73, 0x2D, 0x6D, 0x61, 0x72, 0x74, 0x69, 0x6E, 0x69, 0x2D, 0x61, 0x6C, 0x74, 0x0C, 0x67, 0x6C, 0x6F, 0x62, 0x65, 0x2D, 0x61, + 0x66, 0x72, 0x69, 0x63, 0x61, 0x0E, 0x67, 0x6C, 0x6F, 0x62, 0x65, 0x2D, 0x61, 0x6D, 0x65, 0x72, 0x69, 0x63, 0x61, 0x73, 0x0A, 0x67, 0x6C, 0x6F, 0x62, + 0x65, 0x2D, 0x61, 0x73, 0x69, 0x61, 0x07, 0x67, 0x72, 0x69, 0x6D, 0x61, 0x63, 0x65, 0x04, 0x67, 0x72, 0x69, 0x6E, 0x08, 0x67, 0x72, 0x69, 0x6E, 0x2D, + 0x61, 0x6C, 0x74, 0x09, 0x67, 0x72, 0x69, 0x6E, 0x2D, 0x62, 0x65, 0x61, 0x6D, 0x0F, 0x67, 0x72, 0x69, 0x6E, 0x2D, 0x62, 0x65, 0x61, 0x6D, 0x2D, 0x73, + 0x77, 0x65, 0x61, 0x74, 0x0B, 0x67, 0x72, 0x69, 0x6E, 0x2D, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, 0x0B, 0x67, 0x72, 0x69, 0x6E, 0x2D, 0x73, 0x71, 0x75, + 0x69, 0x6E, 0x74, 0x11, 0x67, 0x72, 0x69, 0x6E, 0x2D, 0x73, 0x71, 0x75, 0x69, 0x6E, 0x74, 0x2D, 0x74, 0x65, 0x61, 0x72, 0x73, 0x0A, 0x67, 0x72, 0x69, + 0x6E, 0x2D, 0x73, 0x74, 0x61, 0x72, 0x73, 0x0A, 0x67, 0x72, 0x69, 0x6E, 0x2D, 0x74, 0x65, 0x61, 0x72, 0x73, 0x0B, 0x67, 0x72, 0x69, 0x6E, 0x2D, 0x74, + 0x6F, 0x6E, 0x67, 0x75, 0x65, 0x12, 0x67, 0x72, 0x69, 0x6E, 0x2D, 0x74, 0x6F, 0x6E, 0x67, 0x75, 0x65, 0x2D, 0x73, 0x71, 0x75, 0x69, 0x6E, 0x74, 0x10, + 0x67, 0x72, 0x69, 0x6E, 0x2D, 0x74, 0x6F, 0x6E, 0x67, 0x75, 0x65, 0x2D, 0x77, 0x69, 0x6E, 0x6B, 0x09, 0x67, 0x72, 0x69, 0x6E, 0x2D, 0x77, 0x69, 0x6E, + 0x6B, 0x0F, 0x67, 0x72, 0x69, 0x70, 0x2D, 0x68, 0x6F, 0x72, 0x69, 0x7A, 0x6F, 0x6E, 0x74, 0x61, 0x6C, 0x0D, 0x67, 0x72, 0x69, 0x70, 0x2D, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, 0x0E, 0x68, 0x65, 0x61, 0x64, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x73, 0x2D, 0x61, 0x6C, 0x74, 0x07, 0x68, 0x65, 0x61, + 0x64, 0x73, 0x65, 0x74, 0x0B, 0x68, 0x69, 0x67, 0x68, 0x6C, 0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x07, 0x68, 0x6F, 0x74, 0x2D, 0x74, 0x75, 0x62, 0x05, + 0x68, 0x6F, 0x74, 0x65, 0x6C, 0x05, 0x6A, 0x6F, 0x69, 0x6E, 0x74, 0x04, 0x6B, 0x69, 0x73, 0x73, 0x09, 0x6B, 0x69, 0x73, 0x73, 0x2D, 0x62, 0x65, 0x61, + 0x6D, 0x0F, 0x6B, 0x69, 0x73, 0x73, 0x2D, 0x77, 0x69, 0x6E, 0x6B, 0x2D, 0x68, 0x65, 0x61, 0x72, 0x74, 0x05, 0x6C, 0x61, 0x75, 0x67, 0x68, 0x0A, 0x6C, + 0x61, 0x75, 0x67, 0x68, 0x2D, 0x62, 0x65, 0x61, 0x6D, 0x0C, 0x6C, 0x61, 0x75, 0x67, 0x68, 0x2D, 0x73, 0x71, 0x75, 0x69, 0x6E, 0x74, 0x0A, 0x6C, 0x61, + 0x75, 0x67, 0x68, 0x2D, 0x77, 0x69, 0x6E, 0x6B, 0x0C, 0x6C, 0x75, 0x67, 0x67, 0x61, 0x67, 0x65, 0x2D, 0x63, 0x61, 0x72, 0x74, 0x0A, 0x6D, 0x61, 0x70, + 0x2D, 0x6D, 0x61, 0x72, 0x6B, 0x65, 0x64, 0x0E, 0x6D, 0x61, 0x70, 0x2D, 0x6D, 0x61, 0x72, 0x6B, 0x65, 0x64, 0x2D, 0x61, 0x6C, 0x74, 0x06, 0x6D, 0x61, + 0x72, 0x6B, 0x65, 0x72, 0x05, 0x6D, 0x65, 0x64, 0x61, 0x6C, 0x09, 0x6D, 0x65, 0x68, 0x2D, 0x62, 0x6C, 0x61, 0x6E, 0x6B, 0x10, 0x6D, 0x65, 0x68, 0x2D, + 0x72, 0x6F, 0x6C, 0x6C, 0x69, 0x6E, 0x67, 0x2D, 0x65, 0x79, 0x65, 0x73, 0x08, 0x6D, 0x6F, 0x6E, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x0D, 0x6D, 0x6F, 0x72, + 0x74, 0x61, 0x72, 0x2D, 0x70, 0x65, 0x73, 0x74, 0x6C, 0x65, 0x0C, 0x70, 0x61, 0x69, 0x6E, 0x74, 0x2D, 0x72, 0x6F, 0x6C, 0x6C, 0x65, 0x72, 0x08, 0x70, + 0x61, 0x73, 0x73, 0x70, 0x6F, 0x72, 0x74, 0x09, 0x70, 0x65, 0x6E, 0x2D, 0x66, 0x61, 0x6E, 0x63, 0x79, 0x07, 0x70, 0x65, 0x6E, 0x2D, 0x6E, 0x69, 0x62, + 0x0C, 0x70, 0x65, 0x6E, 0x63, 0x69, 0x6C, 0x2D, 0x72, 0x75, 0x6C, 0x65, 0x72, 0x0D, 0x70, 0x6C, 0x61, 0x6E, 0x65, 0x2D, 0x61, 0x72, 0x72, 0x69, 0x76, + 0x61, 0x6C, 0x0F, 0x70, 0x6C, 0x61, 0x6E, 0x65, 0x2D, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x0C, 0x70, 0x72, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x07, 0x73, 0x61, 0x64, 0x2D, 0x63, 0x72, 0x79, 0x08, 0x73, 0x61, 0x64, 0x2D, 0x74, 0x65, 0x61, 0x72, 0x0B, 0x73, + 0x68, 0x75, 0x74, 0x74, 0x6C, 0x65, 0x2D, 0x76, 0x61, 0x6E, 0x09, 0x73, 0x69, 0x67, 0x6E, 0x61, 0x74, 0x75, 0x72, 0x65, 0x0A, 0x73, 0x6D, 0x69, 0x6C, + 0x65, 0x2D, 0x62, 0x65, 0x61, 0x6D, 0x0B, 0x73, 0x6F, 0x6C, 0x61, 0x72, 0x2D, 0x70, 0x61, 0x6E, 0x65, 0x6C, 0x03, 0x73, 0x70, 0x61, 0x07, 0x73, 0x70, + 0x6C, 0x6F, 0x74, 0x63, 0x68, 0x09, 0x73, 0x70, 0x72, 0x61, 0x79, 0x2D, 0x63, 0x61, 0x6E, 0x05, 0x73, 0x74, 0x61, 0x6D, 0x70, 0x0D, 0x73, 0x74, 0x61, + 0x72, 0x2D, 0x68, 0x61, 0x6C, 0x66, 0x2D, 0x61, 0x6C, 0x74, 0x10, 0x73, 0x75, 0x69, 0x74, 0x63, 0x61, 0x73, 0x65, 0x2D, 0x72, 0x6F, 0x6C, 0x6C, 0x69, + 0x6E, 0x67, 0x08, 0x73, 0x75, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x0A, 0x73, 0x77, 0x61, 0x74, 0x63, 0x68, 0x62, 0x6F, 0x6F, 0x6B, 0x07, 0x73, 0x77, + 0x69, 0x6D, 0x6D, 0x65, 0x72, 0x0D, 0x73, 0x77, 0x69, 0x6D, 0x6D, 0x69, 0x6E, 0x67, 0x2D, 0x70, 0x6F, 0x6F, 0x6C, 0x0A, 0x74, 0x69, 0x6E, 0x74, 0x2D, + 0x73, 0x6C, 0x61, 0x73, 0x68, 0x05, 0x74, 0x69, 0x72, 0x65, 0x64, 0x05, 0x74, 0x6F, 0x6F, 0x74, 0x68, 0x0E, 0x75, 0x6D, 0x62, 0x72, 0x65, 0x6C, 0x6C, + 0x61, 0x2D, 0x62, 0x65, 0x61, 0x63, 0x68, 0x0D, 0x76, 0x65, 0x63, 0x74, 0x6F, 0x72, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x0E, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x2D, 0x68, 0x61, 0x6E, 0x67, 0x69, 0x6E, 0x67, 0x0E, 0x77, 0x69, 0x6E, 0x65, 0x2D, 0x67, 0x6C, 0x61, 0x73, 0x73, 0x2D, 0x61, 0x6C, + 0x74, 0x0D, 0x61, 0x69, 0x72, 0x2D, 0x66, 0x72, 0x65, 0x73, 0x68, 0x65, 0x6E, 0x65, 0x72, 0x09, 0x61, 0x70, 0x70, 0x6C, 0x65, 0x2D, 0x61, 0x6C, 0x74, + 0x04, 0x61, 0x74, 0x6F, 0x6D, 0x04, 0x62, 0x6F, 0x6E, 0x65, 0x0B, 0x62, 0x6F, 0x6F, 0x6B, 0x2D, 0x72, 0x65, 0x61, 0x64, 0x65, 0x72, 0x05, 0x62, 0x72, + 0x61, 0x69, 0x6E, 0x07, 0x63, 0x61, 0x72, 0x2D, 0x61, 0x6C, 0x74, 0x0B, 0x63, 0x61, 0x72, 0x2D, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x09, 0x63, + 0x61, 0x72, 0x2D, 0x63, 0x72, 0x61, 0x73, 0x68, 0x08, 0x63, 0x61, 0x72, 0x2D, 0x73, 0x69, 0x64, 0x65, 0x10, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6E, + 0x67, 0x2D, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x0A, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x0C, 0x64, 0x72, 0x61, 0x77, + 0x2D, 0x70, 0x6F, 0x6C, 0x79, 0x67, 0x6F, 0x6E, 0x0B, 0x6C, 0x61, 0x70, 0x74, 0x6F, 0x70, 0x2D, 0x63, 0x6F, 0x64, 0x65, 0x0B, 0x6C, 0x61, 0x79, 0x65, + 0x72, 0x2D, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x05, 0x6C, 0x75, 0x6E, 0x67, 0x73, 0x0A, 0x6D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x63, 0x6F, 0x70, 0x65, 0x07, + 0x6F, 0x69, 0x6C, 0x2D, 0x63, 0x61, 0x6E, 0x04, 0x70, 0x6F, 0x6F, 0x70, 0x06, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x0C, 0x73, 0x74, 0x61, 0x72, 0x2D, + 0x6F, 0x66, 0x2D, 0x6C, 0x69, 0x66, 0x65, 0x05, 0x74, 0x65, 0x65, 0x74, 0x68, 0x0A, 0x74, 0x65, 0x65, 0x74, 0x68, 0x2D, 0x6F, 0x70, 0x65, 0x6E, 0x0D, + 0x74, 0x68, 0x65, 0x61, 0x74, 0x65, 0x72, 0x2D, 0x6D, 0x61, 0x73, 0x6B, 0x73, 0x0D, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x2D, 0x6C, 0x69, 0x67, + 0x68, 0x74, 0x0D, 0x74, 0x72, 0x75, 0x63, 0x6B, 0x2D, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x0C, 0x74, 0x72, 0x75, 0x63, 0x6B, 0x2D, 0x70, 0x69, + 0x63, 0x6B, 0x75, 0x70, 0x02, 0x61, 0x64, 0x04, 0x61, 0x6E, 0x6B, 0x68, 0x05, 0x62, 0x69, 0x62, 0x6C, 0x65, 0x0D, 0x62, 0x75, 0x73, 0x69, 0x6E, 0x65, + 0x73, 0x73, 0x2D, 0x74, 0x69, 0x6D, 0x65, 0x04, 0x63, 0x69, 0x74, 0x79, 0x0E, 0x63, 0x6F, 0x6D, 0x6D, 0x65, 0x6E, 0x74, 0x2D, 0x64, 0x6F, 0x6C, 0x6C, + 0x61, 0x72, 0x0F, 0x63, 0x6F, 0x6D, 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x2D, 0x64, 0x6F, 0x6C, 0x6C, 0x61, 0x72, 0x05, 0x63, 0x72, 0x6F, 0x73, 0x73, 0x0C, + 0x64, 0x68, 0x61, 0x72, 0x6D, 0x61, 0x63, 0x68, 0x61, 0x6B, 0x72, 0x61, 0x12, 0x65, 0x6E, 0x76, 0x65, 0x6C, 0x6F, 0x70, 0x65, 0x2D, 0x6F, 0x70, 0x65, + 0x6E, 0x2D, 0x74, 0x65, 0x78, 0x74, 0x0C, 0x66, 0x6F, 0x6C, 0x64, 0x65, 0x72, 0x2D, 0x6D, 0x69, 0x6E, 0x75, 0x73, 0x0B, 0x66, 0x6F, 0x6C, 0x64, 0x65, + 0x72, 0x2D, 0x70, 0x6C, 0x75, 0x73, 0x0D, 0x66, 0x75, 0x6E, 0x6E, 0x65, 0x6C, 0x2D, 0x64, 0x6F, 0x6C, 0x6C, 0x61, 0x72, 0x07, 0x67, 0x6F, 0x70, 0x75, + 0x72, 0x61, 0x6D, 0x05, 0x68, 0x61, 0x6D, 0x73, 0x61, 0x05, 0x62, 0x61, 0x68, 0x61, 0x69, 0x04, 0x6A, 0x65, 0x64, 0x69, 0x0E, 0x6A, 0x6F, 0x75, 0x72, + 0x6E, 0x61, 0x6C, 0x2D, 0x77, 0x68, 0x69, 0x6C, 0x6C, 0x73, 0x05, 0x6B, 0x61, 0x61, 0x62, 0x61, 0x06, 0x6B, 0x68, 0x61, 0x6E, 0x64, 0x61, 0x08, 0x6C, + 0x61, 0x6E, 0x64, 0x6D, 0x61, 0x72, 0x6B, 0x09, 0x6D, 0x61, 0x69, 0x6C, 0x2D, 0x62, 0x75, 0x6C, 0x6B, 0x07, 0x6D, 0x65, 0x6E, 0x6F, 0x72, 0x61, 0x68, + 0x06, 0x6D, 0x6F, 0x73, 0x71, 0x75, 0x65, 0x02, 0x6F, 0x6D, 0x0E, 0x70, 0x61, 0x73, 0x74, 0x61, 0x66, 0x61, 0x72, 0x69, 0x61, 0x6E, 0x69, 0x73, 0x6D, + 0x05, 0x70, 0x65, 0x61, 0x63, 0x65, 0x10, 0x70, 0x6C, 0x61, 0x63, 0x65, 0x2D, 0x6F, 0x66, 0x2D, 0x77, 0x6F, 0x72, 0x73, 0x68, 0x69, 0x70, 0x04, 0x70, + 0x6F, 0x6C, 0x6C, 0x06, 0x70, 0x6F, 0x6C, 0x6C, 0x2D, 0x68, 0x04, 0x70, 0x72, 0x61, 0x79, 0x0D, 0x70, 0x72, 0x61, 0x79, 0x69, 0x6E, 0x67, 0x2D, 0x68, + 0x61, 0x6E, 0x64, 0x73, 0x05, 0x71, 0x75, 0x72, 0x61, 0x6E, 0x0D, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2D, 0x64, 0x6F, 0x6C, 0x6C, 0x61, 0x72, 0x0F, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2D, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x05, 0x73, 0x6F, 0x63, 0x6B, 0x73, 0x0F, 0x73, 0x71, 0x75, + 0x61, 0x72, 0x65, 0x2D, 0x72, 0x6F, 0x6F, 0x74, 0x2D, 0x61, 0x6C, 0x74, 0x11, 0x73, 0x74, 0x61, 0x72, 0x2D, 0x61, 0x6E, 0x64, 0x2D, 0x63, 0x72, 0x65, + 0x73, 0x63, 0x65, 0x6E, 0x74, 0x0D, 0x73, 0x74, 0x61, 0x72, 0x2D, 0x6F, 0x66, 0x2D, 0x64, 0x61, 0x76, 0x69, 0x64, 0x09, 0x73, 0x79, 0x6E, 0x61, 0x67, + 0x6F, 0x67, 0x75, 0x65, 0x05, 0x74, 0x6F, 0x72, 0x61, 0x68, 0x0A, 0x74, 0x6F, 0x72, 0x69, 0x69, 0x2D, 0x67, 0x61, 0x74, 0x65, 0x06, 0x76, 0x69, 0x68, + 0x61, 0x72, 0x61, 0x0B, 0x76, 0x6F, 0x6C, 0x75, 0x6D, 0x65, 0x2D, 0x6D, 0x75, 0x74, 0x65, 0x08, 0x79, 0x69, 0x6E, 0x2D, 0x79, 0x61, 0x6E, 0x67, 0x0D, + 0x62, 0x6C, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x2D, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x09, 0x62, 0x6F, 0x6F, 0x6B, 0x2D, 0x64, 0x65, 0x61, 0x64, 0x0A, 0x63, + 0x61, 0x6D, 0x70, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x03, 0x63, 0x61, 0x74, 0x05, 0x63, 0x68, 0x61, 0x69, 0x72, 0x0A, 0x63, 0x6C, 0x6F, 0x75, 0x64, + 0x2D, 0x6D, 0x6F, 0x6F, 0x6E, 0x09, 0x63, 0x6C, 0x6F, 0x75, 0x64, 0x2D, 0x73, 0x75, 0x6E, 0x08, 0x64, 0x69, 0x63, 0x65, 0x2D, 0x64, 0x32, 0x30, 0x07, + 0x64, 0x69, 0x63, 0x65, 0x2D, 0x64, 0x36, 0x03, 0x64, 0x6F, 0x67, 0x06, 0x64, 0x72, 0x61, 0x67, 0x6F, 0x6E, 0x0E, 0x64, 0x72, 0x75, 0x6D, 0x73, 0x74, + 0x69, 0x63, 0x6B, 0x2D, 0x62, 0x69, 0x74, 0x65, 0x07, 0x64, 0x75, 0x6E, 0x67, 0x65, 0x6F, 0x6E, 0x08, 0x66, 0x69, 0x6C, 0x65, 0x2D, 0x63, 0x73, 0x76, + 0x0B, 0x66, 0x69, 0x73, 0x74, 0x2D, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x05, 0x67, 0x68, 0x6F, 0x73, 0x74, 0x06, 0x68, 0x61, 0x6D, 0x6D, 0x65, 0x72, + 0x08, 0x68, 0x61, 0x6E, 0x75, 0x6B, 0x69, 0x61, 0x68, 0x0A, 0x68, 0x61, 0x74, 0x2D, 0x77, 0x69, 0x7A, 0x61, 0x72, 0x64, 0x06, 0x68, 0x69, 0x6B, 0x69, + 0x6E, 0x67, 0x05, 0x68, 0x69, 0x70, 0x70, 0x6F, 0x05, 0x68, 0x6F, 0x72, 0x73, 0x65, 0x0C, 0x68, 0x6F, 0x75, 0x73, 0x65, 0x2D, 0x64, 0x61, 0x6D, 0x61, + 0x67, 0x65, 0x07, 0x68, 0x72, 0x79, 0x76, 0x6E, 0x69, 0x61, 0x04, 0x6D, 0x61, 0x73, 0x6B, 0x08, 0x6D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x0D, + 0x6E, 0x65, 0x74, 0x77, 0x6F, 0x72, 0x6B, 0x2D, 0x77, 0x69, 0x72, 0x65, 0x64, 0x05, 0x6F, 0x74, 0x74, 0x65, 0x72, 0x07, 0x72, 0x75, 0x6E, 0x6E, 0x69, + 0x6E, 0x67, 0x06, 0x73, 0x63, 0x72, 0x6F, 0x6C, 0x6C, 0x10, 0x73, 0x6B, 0x75, 0x6C, 0x6C, 0x2D, 0x63, 0x72, 0x6F, 0x73, 0x73, 0x62, 0x6F, 0x6E, 0x65, + 0x73, 0x06, 0x73, 0x70, 0x69, 0x64, 0x65, 0x72, 0x0C, 0x74, 0x6F, 0x69, 0x6C, 0x65, 0x74, 0x2D, 0x70, 0x61, 0x70, 0x65, 0x72, 0x07, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x6F, 0x72, 0x0C, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x69, 0x6E, 0x6A, 0x75, 0x72, 0x65, 0x64, 0x0C, 0x76, 0x72, 0x2D, 0x63, 0x61, 0x72, 0x64, + 0x62, 0x6F, 0x61, 0x72, 0x64, 0x04, 0x77, 0x69, 0x6E, 0x64, 0x0B, 0x77, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6C, 0x65, 0x0E, 0x63, 0x6C, + 0x6F, 0x75, 0x64, 0x2D, 0x6D, 0x65, 0x61, 0x74, 0x62, 0x61, 0x6C, 0x6C, 0x0F, 0x63, 0x6C, 0x6F, 0x75, 0x64, 0x2D, 0x6D, 0x6F, 0x6F, 0x6E, 0x2D, 0x72, + 0x61, 0x69, 0x6E, 0x0A, 0x63, 0x6C, 0x6F, 0x75, 0x64, 0x2D, 0x72, 0x61, 0x69, 0x6E, 0x13, 0x63, 0x6C, 0x6F, 0x75, 0x64, 0x2D, 0x73, 0x68, 0x6F, 0x77, + 0x65, 0x72, 0x73, 0x2D, 0x68, 0x65, 0x61, 0x76, 0x79, 0x0E, 0x63, 0x6C, 0x6F, 0x75, 0x64, 0x2D, 0x73, 0x75, 0x6E, 0x2D, 0x72, 0x61, 0x69, 0x6E, 0x08, + 0x64, 0x65, 0x6D, 0x6F, 0x63, 0x72, 0x61, 0x74, 0x08, 0x66, 0x6C, 0x61, 0x67, 0x2D, 0x75, 0x73, 0x61, 0x06, 0x6D, 0x65, 0x74, 0x65, 0x6F, 0x72, 0x0C, + 0x70, 0x65, 0x72, 0x73, 0x6F, 0x6E, 0x2D, 0x62, 0x6F, 0x6F, 0x74, 0x68, 0x09, 0x70, 0x6F, 0x6F, 0x2D, 0x73, 0x74, 0x6F, 0x72, 0x6D, 0x07, 0x72, 0x61, + 0x69, 0x6E, 0x62, 0x6F, 0x77, 0x0A, 0x72, 0x65, 0x70, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x61, 0x6E, 0x04, 0x73, 0x6D, 0x6F, 0x67, 0x10, 0x74, 0x65, 0x6D, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2D, 0x68, 0x69, 0x67, 0x68, 0x0F, 0x74, 0x65, 0x6D, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x2D, 0x6C, 0x6F, 0x77, 0x08, 0x76, 0x6F, 0x74, 0x65, 0x2D, 0x79, 0x65, 0x61, 0x05, 0x77, 0x61, 0x74, 0x65, 0x72, 0x04, 0x62, 0x61, 0x62, 0x79, 0x0D, + 0x62, 0x61, 0x62, 0x79, 0x2D, 0x63, 0x61, 0x72, 0x72, 0x69, 0x61, 0x67, 0x65, 0x09, 0x62, 0x69, 0x6F, 0x68, 0x61, 0x7A, 0x61, 0x72, 0x64, 0x04, 0x62, + 0x6C, 0x6F, 0x67, 0x0C, 0x63, 0x61, 0x6C, 0x65, 0x6E, 0x64, 0x61, 0x72, 0x2D, 0x64, 0x61, 0x79, 0x0D, 0x63, 0x61, 0x6C, 0x65, 0x6E, 0x64, 0x61, 0x72, + 0x2D, 0x77, 0x65, 0x65, 0x6B, 0x0A, 0x63, 0x61, 0x6E, 0x64, 0x79, 0x2D, 0x63, 0x61, 0x6E, 0x65, 0x06, 0x63, 0x61, 0x72, 0x72, 0x6F, 0x74, 0x0D, 0x63, + 0x61, 0x73, 0x68, 0x2D, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x13, 0x63, 0x6F, 0x6D, 0x70, 0x72, 0x65, 0x73, 0x73, 0x2D, 0x61, 0x72, 0x72, + 0x6F, 0x77, 0x73, 0x2D, 0x61, 0x6C, 0x74, 0x08, 0x64, 0x75, 0x6D, 0x70, 0x73, 0x74, 0x65, 0x72, 0x0D, 0x64, 0x75, 0x6D, 0x70, 0x73, 0x74, 0x65, 0x72, + 0x2D, 0x66, 0x69, 0x72, 0x65, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6E, 0x65, 0x74, 0x05, 0x67, 0x69, 0x66, 0x74, 0x73, 0x0C, 0x67, 0x6C, 0x61, 0x73, + 0x73, 0x2D, 0x63, 0x68, 0x65, 0x65, 0x72, 0x73, 0x0D, 0x67, 0x6C, 0x61, 0x73, 0x73, 0x2D, 0x77, 0x68, 0x69, 0x73, 0x6B, 0x65, 0x79, 0x0C, 0x67, 0x6C, + 0x6F, 0x62, 0x65, 0x2D, 0x65, 0x75, 0x72, 0x6F, 0x70, 0x65, 0x0A, 0x67, 0x72, 0x69, 0x70, 0x2D, 0x6C, 0x69, 0x6E, 0x65, 0x73, 0x13, 0x67, 0x72, 0x69, + 0x70, 0x2D, 0x6C, 0x69, 0x6E, 0x65, 0x73, 0x2D, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, 0x06, 0x67, 0x75, 0x69, 0x74, 0x61, 0x72, 0x0C, 0x68, + 0x65, 0x61, 0x72, 0x74, 0x2D, 0x62, 0x72, 0x6F, 0x6B, 0x65, 0x6E, 0x0B, 0x68, 0x6F, 0x6C, 0x6C, 0x79, 0x2D, 0x62, 0x65, 0x72, 0x72, 0x79, 0x0A, 0x68, + 0x6F, 0x72, 0x73, 0x65, 0x2D, 0x68, 0x65, 0x61, 0x64, 0x07, 0x69, 0x63, 0x69, 0x63, 0x6C, 0x65, 0x73, 0x05, 0x69, 0x67, 0x6C, 0x6F, 0x6F, 0x06, 0x6D, + 0x69, 0x74, 0x74, 0x65, 0x6E, 0x07, 0x6D, 0x75, 0x67, 0x2D, 0x68, 0x6F, 0x74, 0x09, 0x72, 0x61, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x0D, 0x72, + 0x61, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2D, 0x61, 0x6C, 0x74, 0x08, 0x72, 0x65, 0x73, 0x74, 0x72, 0x6F, 0x6F, 0x6D, 0x09, 0x73, 0x61, 0x74, + 0x65, 0x6C, 0x6C, 0x69, 0x74, 0x65, 0x0E, 0x73, 0x61, 0x74, 0x65, 0x6C, 0x6C, 0x69, 0x74, 0x65, 0x2D, 0x64, 0x69, 0x73, 0x68, 0x07, 0x73, 0x64, 0x2D, + 0x63, 0x61, 0x72, 0x64, 0x08, 0x73, 0x69, 0x6D, 0x2D, 0x63, 0x61, 0x72, 0x64, 0x07, 0x73, 0x6B, 0x61, 0x74, 0x69, 0x6E, 0x67, 0x06, 0x73, 0x6B, 0x69, + 0x69, 0x6E, 0x67, 0x0D, 0x73, 0x6B, 0x69, 0x69, 0x6E, 0x67, 0x2D, 0x6E, 0x6F, 0x72, 0x64, 0x69, 0x63, 0x06, 0x73, 0x6C, 0x65, 0x69, 0x67, 0x68, 0x03, + 0x73, 0x6D, 0x73, 0x0C, 0x73, 0x6E, 0x6F, 0x77, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x69, 0x6E, 0x67, 0x07, 0x73, 0x6E, 0x6F, 0x77, 0x6D, 0x61, 0x6E, 0x08, + 0x73, 0x6E, 0x6F, 0x77, 0x70, 0x6C, 0x6F, 0x77, 0x05, 0x74, 0x65, 0x6E, 0x67, 0x65, 0x06, 0x74, 0x6F, 0x69, 0x6C, 0x65, 0x74, 0x05, 0x74, 0x6F, 0x6F, + 0x6C, 0x73, 0x04, 0x74, 0x72, 0x61, 0x6D, 0x08, 0x66, 0x69, 0x72, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x05, 0x62, 0x61, 0x63, 0x6F, 0x6E, 0x0C, 0x62, 0x6F, + 0x6F, 0x6B, 0x2D, 0x6D, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6C, 0x0B, 0x62, 0x72, 0x65, 0x61, 0x64, 0x2D, 0x73, 0x6C, 0x69, 0x63, 0x65, 0x06, 0x63, 0x68, + 0x65, 0x65, 0x73, 0x65, 0x0E, 0x63, 0x6C, 0x69, 0x6E, 0x69, 0x63, 0x2D, 0x6D, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6C, 0x0F, 0x63, 0x6F, 0x6D, 0x6D, 0x65, + 0x6E, 0x74, 0x2D, 0x6D, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6C, 0x06, 0x63, 0x72, 0x75, 0x74, 0x63, 0x68, 0x07, 0x64, 0x69, 0x73, 0x65, 0x61, 0x73, 0x65, + 0x03, 0x65, 0x67, 0x67, 0x09, 0x68, 0x61, 0x6D, 0x62, 0x75, 0x72, 0x67, 0x65, 0x72, 0x12, 0x68, 0x61, 0x6E, 0x64, 0x2D, 0x6D, 0x69, 0x64, 0x64, 0x6C, + 0x65, 0x2D, 0x66, 0x69, 0x6E, 0x67, 0x65, 0x72, 0x08, 0x68, 0x61, 0x72, 0x64, 0x2D, 0x68, 0x61, 0x74, 0x0D, 0x68, 0x6F, 0x73, 0x70, 0x69, 0x74, 0x61, + 0x6C, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x06, 0x68, 0x6F, 0x74, 0x64, 0x6F, 0x67, 0x09, 0x69, 0x63, 0x65, 0x2D, 0x63, 0x72, 0x65, 0x61, 0x6D, 0x0E, 0x6C, + 0x61, 0x70, 0x74, 0x6F, 0x70, 0x2D, 0x6D, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6C, 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x0A, 0x70, 0x65, 0x70, 0x70, 0x65, + 0x72, 0x2D, 0x68, 0x6F, 0x74, 0x0B, 0x70, 0x69, 0x7A, 0x7A, 0x61, 0x2D, 0x73, 0x6C, 0x69, 0x63, 0x65, 0x0D, 0x74, 0x72, 0x61, 0x73, 0x68, 0x2D, 0x72, + 0x65, 0x73, 0x74, 0x6F, 0x72, 0x65, 0x11, 0x74, 0x72, 0x61, 0x73, 0x68, 0x2D, 0x72, 0x65, 0x73, 0x74, 0x6F, 0x72, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x0A, + 0x75, 0x73, 0x65, 0x72, 0x2D, 0x6E, 0x75, 0x72, 0x73, 0x65, 0x0B, 0x77, 0x61, 0x76, 0x65, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x06, 0x62, 0x69, + 0x6B, 0x69, 0x6E, 0x67, 0x0A, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x61, 0x6C, 0x6C, 0x0B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x6E, 0x6F, + 0x6E, 0x65, 0x0C, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x03, 0x66, 0x61, 0x6E, 0x05, 0x69, 0x63, 0x6F, 0x6E, 0x73, + 0x09, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x2D, 0x61, 0x6C, 0x74, 0x10, 0x70, 0x68, 0x6F, 0x6E, 0x65, 0x2D, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x2D, 0x61, + 0x6C, 0x74, 0x0B, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x2D, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x0D, 0x72, 0x65, 0x6D, 0x6F, 0x76, 0x65, 0x2D, 0x66, 0x6F, 0x72, + 0x6D, 0x61, 0x74, 0x13, 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x2D, 0x61, 0x6C, 0x74, 0x11, 0x73, + 0x6F, 0x72, 0x74, 0x2D, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x2D, 0x75, 0x70, 0x2D, 0x61, 0x6C, 0x74, 0x14, 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x61, 0x6D, 0x6F, + 0x75, 0x6E, 0x74, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x2D, 0x61, 0x6C, 0x74, 0x12, 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x61, 0x6D, 0x6F, 0x75, 0x6E, 0x74, 0x2D, + 0x75, 0x70, 0x2D, 0x61, 0x6C, 0x74, 0x15, 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x6E, 0x75, 0x6D, 0x65, 0x72, 0x69, 0x63, 0x2D, 0x64, 0x6F, 0x77, 0x6E, 0x2D, + 0x61, 0x6C, 0x74, 0x13, 0x73, 0x6F, 0x72, 0x74, 0x2D, 0x6E, 0x75, 0x6D, 0x65, 0x72, 0x69, 0x63, 0x2D, 0x75, 0x70, 0x2D, 0x61, 0x6C, 0x74, 0x0B, 0x73, + 0x70, 0x65, 0x6C, 0x6C, 0x2D, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x09, 0x76, 0x6F, 0x69, 0x63, 0x65, 0x6D, 0x61, 0x69, 0x6C, 0x0A, 0x68, 0x61, 0x74, 0x2D, + 0x63, 0x6F, 0x77, 0x62, 0x6F, 0x79, 0x0F, 0x68, 0x61, 0x74, 0x2D, 0x63, 0x6F, 0x77, 0x62, 0x6F, 0x79, 0x2D, 0x73, 0x69, 0x64, 0x65, 0x05, 0x6D, 0x6F, + 0x75, 0x73, 0x65, 0x0C, 0x72, 0x65, 0x63, 0x6F, 0x72, 0x64, 0x2D, 0x76, 0x69, 0x6E, 0x79, 0x6C, 0x07, 0x63, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x03, 0x03, 0xEB, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xDB, + 0xD8, 0x66, 0xD4, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x76, 0x7B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x76, 0x7B, 0x92 +}; diff --git a/cheat-base/vendor/imgui-notify-v2/font_awesome_5.h b/cheat-base/vendor/imgui-notify-v2/font_awesome_5.h new file mode 100644 index 0000000..634a0f0 --- /dev/null +++ b/cheat-base/vendor/imgui-notify-v2/font_awesome_5.h @@ -0,0 +1,1821 @@ +#pragma once + +#define ICON_MIN_FA 0xf000 +#define ICON_MAX_FA 0xf950 +#define ICON_FA_ABACUS "\xef\x99\x80" // U+f640 +#define ICON_FA_ACORN "\xef\x9a\xae" // U+f6ae +#define ICON_FA_AD "\xef\x99\x81" // U+f641 +#define ICON_FA_ADDRESS_BOOK "\xef\x8a\xb9" // U+f2b9 +#define ICON_FA_ADDRESS_CARD "\xef\x8a\xbb" // U+f2bb +#define ICON_FA_ADJUST "\xef\x81\x82" // U+f042 +#define ICON_FA_AIR_CONDITIONER "\xef\xa3\xb4" // U+f8f4 +#define ICON_FA_AIR_FRESHENER "\xef\x97\x90" // U+f5d0 +#define ICON_FA_ALARM_CLOCK "\xef\x8d\x8e" // U+f34e +#define ICON_FA_ALARM_EXCLAMATION "\xef\xa1\x83" // U+f843 +#define ICON_FA_ALARM_PLUS "\xef\xa1\x84" // U+f844 +#define ICON_FA_ALARM_SNOOZE "\xef\xa1\x85" // U+f845 +#define ICON_FA_ALBUM "\xef\xa2\x9f" // U+f89f +#define ICON_FA_ALBUM_COLLECTION "\xef\xa2\xa0" // U+f8a0 +#define ICON_FA_ALICORN "\xef\x9a\xb0" // U+f6b0 +#define ICON_FA_ALIEN "\xef\xa3\xb5" // U+f8f5 +#define ICON_FA_ALIEN_MONSTER "\xef\xa3\xb6" // U+f8f6 +#define ICON_FA_ALIGN_CENTER "\xef\x80\xb7" // U+f037 +#define ICON_FA_ALIGN_JUSTIFY "\xef\x80\xb9" // U+f039 +#define ICON_FA_ALIGN_LEFT "\xef\x80\xb6" // U+f036 +#define ICON_FA_ALIGN_RIGHT "\xef\x80\xb8" // U+f038 +#define ICON_FA_ALIGN_SLASH "\xef\xa1\x86" // U+f846 +#define ICON_FA_ALLERGIES "\xef\x91\xa1" // U+f461 +#define ICON_FA_AMBULANCE "\xef\x83\xb9" // U+f0f9 +#define ICON_FA_AMERICAN_SIGN_LANGUAGE_INTERPRETING "\xef\x8a\xa3" // U+f2a3 +#define ICON_FA_AMP_GUITAR "\xef\xa2\xa1" // U+f8a1 +#define ICON_FA_ANALYTICS "\xef\x99\x83" // U+f643 +#define ICON_FA_ANCHOR "\xef\x84\xbd" // U+f13d +#define ICON_FA_ANGEL "\xef\x9d\xb9" // U+f779 +#define ICON_FA_ANGLE_DOUBLE_DOWN "\xef\x84\x83" // U+f103 +#define ICON_FA_ANGLE_DOUBLE_LEFT "\xef\x84\x80" // U+f100 +#define ICON_FA_ANGLE_DOUBLE_RIGHT "\xef\x84\x81" // U+f101 +#define ICON_FA_ANGLE_DOUBLE_UP "\xef\x84\x82" // U+f102 +#define ICON_FA_ANGLE_DOWN "\xef\x84\x87" // U+f107 +#define ICON_FA_ANGLE_LEFT "\xef\x84\x84" // U+f104 +#define ICON_FA_ANGLE_RIGHT "\xef\x84\x85" // U+f105 +#define ICON_FA_ANGLE_UP "\xef\x84\x86" // U+f106 +#define ICON_FA_ANGRY "\xef\x95\x96" // U+f556 +#define ICON_FA_ANKH "\xef\x99\x84" // U+f644 +#define ICON_FA_APPLE_ALT "\xef\x97\x91" // U+f5d1 +#define ICON_FA_APPLE_CRATE "\xef\x9a\xb1" // U+f6b1 +#define ICON_FA_ARCHIVE "\xef\x86\x87" // U+f187 +#define ICON_FA_ARCHWAY "\xef\x95\x97" // U+f557 +#define ICON_FA_ARROW_ALT_CIRCLE_DOWN "\xef\x8d\x98" // U+f358 +#define ICON_FA_ARROW_ALT_CIRCLE_LEFT "\xef\x8d\x99" // U+f359 +#define ICON_FA_ARROW_ALT_CIRCLE_RIGHT "\xef\x8d\x9a" // U+f35a +#define ICON_FA_ARROW_ALT_CIRCLE_UP "\xef\x8d\x9b" // U+f35b +#define ICON_FA_ARROW_ALT_DOWN "\xef\x8d\x94" // U+f354 +#define ICON_FA_ARROW_ALT_FROM_BOTTOM "\xef\x8d\x86" // U+f346 +#define ICON_FA_ARROW_ALT_FROM_LEFT "\xef\x8d\x87" // U+f347 +#define ICON_FA_ARROW_ALT_FROM_RIGHT "\xef\x8d\x88" // U+f348 +#define ICON_FA_ARROW_ALT_FROM_TOP "\xef\x8d\x89" // U+f349 +#define ICON_FA_ARROW_ALT_LEFT "\xef\x8d\x95" // U+f355 +#define ICON_FA_ARROW_ALT_RIGHT "\xef\x8d\x96" // U+f356 +#define ICON_FA_ARROW_ALT_SQUARE_DOWN "\xef\x8d\x90" // U+f350 +#define ICON_FA_ARROW_ALT_SQUARE_LEFT "\xef\x8d\x91" // U+f351 +#define ICON_FA_ARROW_ALT_SQUARE_RIGHT "\xef\x8d\x92" // U+f352 +#define ICON_FA_ARROW_ALT_SQUARE_UP "\xef\x8d\x93" // U+f353 +#define ICON_FA_ARROW_ALT_TO_BOTTOM "\xef\x8d\x8a" // U+f34a +#define ICON_FA_ARROW_ALT_TO_LEFT "\xef\x8d\x8b" // U+f34b +#define ICON_FA_ARROW_ALT_TO_RIGHT "\xef\x8d\x8c" // U+f34c +#define ICON_FA_ARROW_ALT_TO_TOP "\xef\x8d\x8d" // U+f34d +#define ICON_FA_ARROW_ALT_UP "\xef\x8d\x97" // U+f357 +#define ICON_FA_ARROW_CIRCLE_DOWN "\xef\x82\xab" // U+f0ab +#define ICON_FA_ARROW_CIRCLE_LEFT "\xef\x82\xa8" // U+f0a8 +#define ICON_FA_ARROW_CIRCLE_RIGHT "\xef\x82\xa9" // U+f0a9 +#define ICON_FA_ARROW_CIRCLE_UP "\xef\x82\xaa" // U+f0aa +#define ICON_FA_ARROW_DOWN "\xef\x81\xa3" // U+f063 +#define ICON_FA_ARROW_FROM_BOTTOM "\xef\x8d\x82" // U+f342 +#define ICON_FA_ARROW_FROM_LEFT "\xef\x8d\x83" // U+f343 +#define ICON_FA_ARROW_FROM_RIGHT "\xef\x8d\x84" // U+f344 +#define ICON_FA_ARROW_FROM_TOP "\xef\x8d\x85" // U+f345 +#define ICON_FA_ARROW_LEFT "\xef\x81\xa0" // U+f060 +#define ICON_FA_ARROW_RIGHT "\xef\x81\xa1" // U+f061 +#define ICON_FA_ARROW_SQUARE_DOWN "\xef\x8c\xb9" // U+f339 +#define ICON_FA_ARROW_SQUARE_LEFT "\xef\x8c\xba" // U+f33a +#define ICON_FA_ARROW_SQUARE_RIGHT "\xef\x8c\xbb" // U+f33b +#define ICON_FA_ARROW_SQUARE_UP "\xef\x8c\xbc" // U+f33c +#define ICON_FA_ARROW_TO_BOTTOM "\xef\x8c\xbd" // U+f33d +#define ICON_FA_ARROW_TO_LEFT "\xef\x8c\xbe" // U+f33e +#define ICON_FA_ARROW_TO_RIGHT "\xef\x8d\x80" // U+f340 +#define ICON_FA_ARROW_TO_TOP "\xef\x8d\x81" // U+f341 +#define ICON_FA_ARROW_UP "\xef\x81\xa2" // U+f062 +#define ICON_FA_ARROWS "\xef\x81\x87" // U+f047 +#define ICON_FA_ARROWS_ALT "\xef\x82\xb2" // U+f0b2 +#define ICON_FA_ARROWS_ALT_H "\xef\x8c\xb7" // U+f337 +#define ICON_FA_ARROWS_ALT_V "\xef\x8c\xb8" // U+f338 +#define ICON_FA_ARROWS_H "\xef\x81\xbe" // U+f07e +#define ICON_FA_ARROWS_V "\xef\x81\xbd" // U+f07d +#define ICON_FA_ASSISTIVE_LISTENING_SYSTEMS "\xef\x8a\xa2" // U+f2a2 +#define ICON_FA_ASTERISK "\xef\x81\xa9" // U+f069 +#define ICON_FA_AT "\xef\x87\xba" // U+f1fa +#define ICON_FA_ATLAS "\xef\x95\x98" // U+f558 +#define ICON_FA_ATOM "\xef\x97\x92" // U+f5d2 +#define ICON_FA_ATOM_ALT "\xef\x97\x93" // U+f5d3 +#define ICON_FA_AUDIO_DESCRIPTION "\xef\x8a\x9e" // U+f29e +#define ICON_FA_AWARD "\xef\x95\x99" // U+f559 +#define ICON_FA_AXE "\xef\x9a\xb2" // U+f6b2 +#define ICON_FA_AXE_BATTLE "\xef\x9a\xb3" // U+f6b3 +#define ICON_FA_BABY "\xef\x9d\xbc" // U+f77c +#define ICON_FA_BABY_CARRIAGE "\xef\x9d\xbd" // U+f77d +#define ICON_FA_BACKPACK "\xef\x97\x94" // U+f5d4 +#define ICON_FA_BACKSPACE "\xef\x95\x9a" // U+f55a +#define ICON_FA_BACKWARD "\xef\x81\x8a" // U+f04a +#define ICON_FA_BACON "\xef\x9f\xa5" // U+f7e5 +#define ICON_FA_BADGE "\xef\x8c\xb5" // U+f335 +#define ICON_FA_BADGE_CHECK "\xef\x8c\xb6" // U+f336 +#define ICON_FA_BADGE_DOLLAR "\xef\x99\x85" // U+f645 +#define ICON_FA_BADGE_PERCENT "\xef\x99\x86" // U+f646 +#define ICON_FA_BADGE_SHERIFF "\xef\xa2\xa2" // U+f8a2 +#define ICON_FA_BADGER_HONEY "\xef\x9a\xb4" // U+f6b4 +#define ICON_FA_BAGS_SHOPPING "\xef\xa1\x87" // U+f847 +#define ICON_FA_BAHAI "\xef\x99\xa6" // U+f666 +#define ICON_FA_BALANCE_SCALE "\xef\x89\x8e" // U+f24e +#define ICON_FA_BALANCE_SCALE_LEFT "\xef\x94\x95" // U+f515 +#define ICON_FA_BALANCE_SCALE_RIGHT "\xef\x94\x96" // U+f516 +#define ICON_FA_BALL_PILE "\xef\x9d\xbe" // U+f77e +#define ICON_FA_BALLOT "\xef\x9c\xb2" // U+f732 +#define ICON_FA_BALLOT_CHECK "\xef\x9c\xb3" // U+f733 +#define ICON_FA_BAN "\xef\x81\x9e" // U+f05e +#define ICON_FA_BAND_AID "\xef\x91\xa2" // U+f462 +#define ICON_FA_BANJO "\xef\xa2\xa3" // U+f8a3 +#define ICON_FA_BARCODE "\xef\x80\xaa" // U+f02a +#define ICON_FA_BARCODE_ALT "\xef\x91\xa3" // U+f463 +#define ICON_FA_BARCODE_READ "\xef\x91\xa4" // U+f464 +#define ICON_FA_BARCODE_SCAN "\xef\x91\xa5" // U+f465 +#define ICON_FA_BARS "\xef\x83\x89" // U+f0c9 +#define ICON_FA_BASEBALL "\xef\x90\xb2" // U+f432 +#define ICON_FA_BASEBALL_BALL "\xef\x90\xb3" // U+f433 +#define ICON_FA_BASKETBALL_BALL "\xef\x90\xb4" // U+f434 +#define ICON_FA_BASKETBALL_HOOP "\xef\x90\xb5" // U+f435 +#define ICON_FA_BAT "\xef\x9a\xb5" // U+f6b5 +#define ICON_FA_BATH "\xef\x8b\x8d" // U+f2cd +#define ICON_FA_BATTERY_BOLT "\xef\x8d\xb6" // U+f376 +#define ICON_FA_BATTERY_EMPTY "\xef\x89\x84" // U+f244 +#define ICON_FA_BATTERY_FULL "\xef\x89\x80" // U+f240 +#define ICON_FA_BATTERY_HALF "\xef\x89\x82" // U+f242 +#define ICON_FA_BATTERY_QUARTER "\xef\x89\x83" // U+f243 +#define ICON_FA_BATTERY_SLASH "\xef\x8d\xb7" // U+f377 +#define ICON_FA_BATTERY_THREE_QUARTERS "\xef\x89\x81" // U+f241 +#define ICON_FA_BED "\xef\x88\xb6" // U+f236 +#define ICON_FA_BED_ALT "\xef\xa3\xb7" // U+f8f7 +#define ICON_FA_BED_BUNK "\xef\xa3\xb8" // U+f8f8 +#define ICON_FA_BED_EMPTY "\xef\xa3\xb9" // U+f8f9 +#define ICON_FA_BEER "\xef\x83\xbc" // U+f0fc +#define ICON_FA_BELL "\xef\x83\xb3" // U+f0f3 +#define ICON_FA_BELL_EXCLAMATION "\xef\xa1\x88" // U+f848 +#define ICON_FA_BELL_ON "\xef\xa3\xba" // U+f8fa +#define ICON_FA_BELL_PLUS "\xef\xa1\x89" // U+f849 +#define ICON_FA_BELL_SCHOOL "\xef\x97\x95" // U+f5d5 +#define ICON_FA_BELL_SCHOOL_SLASH "\xef\x97\x96" // U+f5d6 +#define ICON_FA_BELL_SLASH "\xef\x87\xb6" // U+f1f6 +#define ICON_FA_BELLS "\xef\x9d\xbf" // U+f77f +#define ICON_FA_BETAMAX "\xef\xa2\xa4" // U+f8a4 +#define ICON_FA_BEZIER_CURVE "\xef\x95\x9b" // U+f55b +#define ICON_FA_BIBLE "\xef\x99\x87" // U+f647 +#define ICON_FA_BICYCLE "\xef\x88\x86" // U+f206 +#define ICON_FA_BIKING "\xef\xa1\x8a" // U+f84a +#define ICON_FA_BIKING_MOUNTAIN "\xef\xa1\x8b" // U+f84b +#define ICON_FA_BINOCULARS "\xef\x87\xa5" // U+f1e5 +#define ICON_FA_BIOHAZARD "\xef\x9e\x80" // U+f780 +#define ICON_FA_BIRTHDAY_CAKE "\xef\x87\xbd" // U+f1fd +#define ICON_FA_BLANKET "\xef\x92\x98" // U+f498 +#define ICON_FA_BLENDER "\xef\x94\x97" // U+f517 +#define ICON_FA_BLENDER_PHONE "\xef\x9a\xb6" // U+f6b6 +#define ICON_FA_BLIND "\xef\x8a\x9d" // U+f29d +#define ICON_FA_BLINDS "\xef\xa3\xbb" // U+f8fb +#define ICON_FA_BLINDS_OPEN "\xef\xa3\xbc" // U+f8fc +#define ICON_FA_BLINDS_RAISED "\xef\xa3\xbd" // U+f8fd +#define ICON_FA_BLOG "\xef\x9e\x81" // U+f781 +#define ICON_FA_BOLD "\xef\x80\xb2" // U+f032 +#define ICON_FA_BOLT "\xef\x83\xa7" // U+f0e7 +#define ICON_FA_BOMB "\xef\x87\xa2" // U+f1e2 +#define ICON_FA_BONE "\xef\x97\x97" // U+f5d7 +#define ICON_FA_BONE_BREAK "\xef\x97\x98" // U+f5d8 +#define ICON_FA_BONG "\xef\x95\x9c" // U+f55c +#define ICON_FA_BOOK "\xef\x80\xad" // U+f02d +#define ICON_FA_BOOK_ALT "\xef\x97\x99" // U+f5d9 +#define ICON_FA_BOOK_DEAD "\xef\x9a\xb7" // U+f6b7 +#define ICON_FA_BOOK_HEART "\xef\x92\x99" // U+f499 +#define ICON_FA_BOOK_MEDICAL "\xef\x9f\xa6" // U+f7e6 +#define ICON_FA_BOOK_OPEN "\xef\x94\x98" // U+f518 +#define ICON_FA_BOOK_READER "\xef\x97\x9a" // U+f5da +#define ICON_FA_BOOK_SPELLS "\xef\x9a\xb8" // U+f6b8 +#define ICON_FA_BOOK_USER "\xef\x9f\xa7" // U+f7e7 +#define ICON_FA_BOOKMARK "\xef\x80\xae" // U+f02e +#define ICON_FA_BOOKS "\xef\x97\x9b" // U+f5db +#define ICON_FA_BOOKS_MEDICAL "\xef\x9f\xa8" // U+f7e8 +#define ICON_FA_BOOMBOX "\xef\xa2\xa5" // U+f8a5 +#define ICON_FA_BOOT "\xef\x9e\x82" // U+f782 +#define ICON_FA_BOOTH_CURTAIN "\xef\x9c\xb4" // U+f734 +#define ICON_FA_BORDER_ALL "\xef\xa1\x8c" // U+f84c +#define ICON_FA_BORDER_BOTTOM "\xef\xa1\x8d" // U+f84d +#define ICON_FA_BORDER_CENTER_H "\xef\xa2\x9c" // U+f89c +#define ICON_FA_BORDER_CENTER_V "\xef\xa2\x9d" // U+f89d +#define ICON_FA_BORDER_INNER "\xef\xa1\x8e" // U+f84e +#define ICON_FA_BORDER_LEFT "\xef\xa1\x8f" // U+f84f +#define ICON_FA_BORDER_NONE "\xef\xa1\x90" // U+f850 +#define ICON_FA_BORDER_OUTER "\xef\xa1\x91" // U+f851 +#define ICON_FA_BORDER_RIGHT "\xef\xa1\x92" // U+f852 +#define ICON_FA_BORDER_STYLE "\xef\xa1\x93" // U+f853 +#define ICON_FA_BORDER_STYLE_ALT "\xef\xa1\x94" // U+f854 +#define ICON_FA_BORDER_TOP "\xef\xa1\x95" // U+f855 +#define ICON_FA_BOW_ARROW "\xef\x9a\xb9" // U+f6b9 +#define ICON_FA_BOWLING_BALL "\xef\x90\xb6" // U+f436 +#define ICON_FA_BOWLING_PINS "\xef\x90\xb7" // U+f437 +#define ICON_FA_BOX "\xef\x91\xa6" // U+f466 +#define ICON_FA_BOX_ALT "\xef\x92\x9a" // U+f49a +#define ICON_FA_BOX_BALLOT "\xef\x9c\xb5" // U+f735 +#define ICON_FA_BOX_CHECK "\xef\x91\xa7" // U+f467 +#define ICON_FA_BOX_FRAGILE "\xef\x92\x9b" // U+f49b +#define ICON_FA_BOX_FULL "\xef\x92\x9c" // U+f49c +#define ICON_FA_BOX_HEART "\xef\x92\x9d" // U+f49d +#define ICON_FA_BOX_OPEN "\xef\x92\x9e" // U+f49e +#define ICON_FA_BOX_UP "\xef\x92\x9f" // U+f49f +#define ICON_FA_BOX_USD "\xef\x92\xa0" // U+f4a0 +#define ICON_FA_BOXES "\xef\x91\xa8" // U+f468 +#define ICON_FA_BOXES_ALT "\xef\x92\xa1" // U+f4a1 +#define ICON_FA_BOXING_GLOVE "\xef\x90\xb8" // U+f438 +#define ICON_FA_BRACKETS "\xef\x9f\xa9" // U+f7e9 +#define ICON_FA_BRACKETS_CURLY "\xef\x9f\xaa" // U+f7ea +#define ICON_FA_BRAILLE "\xef\x8a\xa1" // U+f2a1 +#define ICON_FA_BRAIN "\xef\x97\x9c" // U+f5dc +#define ICON_FA_BREAD_LOAF "\xef\x9f\xab" // U+f7eb +#define ICON_FA_BREAD_SLICE "\xef\x9f\xac" // U+f7ec +#define ICON_FA_BRIEFCASE "\xef\x82\xb1" // U+f0b1 +#define ICON_FA_BRIEFCASE_MEDICAL "\xef\x91\xa9" // U+f469 +#define ICON_FA_BRING_FORWARD "\xef\xa1\x96" // U+f856 +#define ICON_FA_BRING_FRONT "\xef\xa1\x97" // U+f857 +#define ICON_FA_BROADCAST_TOWER "\xef\x94\x99" // U+f519 +#define ICON_FA_BROOM "\xef\x94\x9a" // U+f51a +#define ICON_FA_BROWSER "\xef\x8d\xbe" // U+f37e +#define ICON_FA_BRUSH "\xef\x95\x9d" // U+f55d +#define ICON_FA_BUG "\xef\x86\x88" // U+f188 +#define ICON_FA_BUILDING "\xef\x86\xad" // U+f1ad +#define ICON_FA_BULLHORN "\xef\x82\xa1" // U+f0a1 +#define ICON_FA_BULLSEYE "\xef\x85\x80" // U+f140 +#define ICON_FA_BULLSEYE_ARROW "\xef\x99\x88" // U+f648 +#define ICON_FA_BULLSEYE_POINTER "\xef\x99\x89" // U+f649 +#define ICON_FA_BURGER_SODA "\xef\xa1\x98" // U+f858 +#define ICON_FA_BURN "\xef\x91\xaa" // U+f46a +#define ICON_FA_BURRITO "\xef\x9f\xad" // U+f7ed +#define ICON_FA_BUS "\xef\x88\x87" // U+f207 +#define ICON_FA_BUS_ALT "\xef\x95\x9e" // U+f55e +#define ICON_FA_BUS_SCHOOL "\xef\x97\x9d" // U+f5dd +#define ICON_FA_BUSINESS_TIME "\xef\x99\x8a" // U+f64a +#define ICON_FA_CABINET_FILING "\xef\x99\x8b" // U+f64b +#define ICON_FA_CACTUS "\xef\xa2\xa7" // U+f8a7 +#define ICON_FA_CALCULATOR "\xef\x87\xac" // U+f1ec +#define ICON_FA_CALCULATOR_ALT "\xef\x99\x8c" // U+f64c +#define ICON_FA_CALENDAR "\xef\x84\xb3" // U+f133 +#define ICON_FA_CALENDAR_ALT "\xef\x81\xb3" // U+f073 +#define ICON_FA_CALENDAR_CHECK "\xef\x89\xb4" // U+f274 +#define ICON_FA_CALENDAR_DAY "\xef\x9e\x83" // U+f783 +#define ICON_FA_CALENDAR_EDIT "\xef\x8c\xb3" // U+f333 +#define ICON_FA_CALENDAR_EXCLAMATION "\xef\x8c\xb4" // U+f334 +#define ICON_FA_CALENDAR_MINUS "\xef\x89\xb2" // U+f272 +#define ICON_FA_CALENDAR_PLUS "\xef\x89\xb1" // U+f271 +#define ICON_FA_CALENDAR_STAR "\xef\x9c\xb6" // U+f736 +#define ICON_FA_CALENDAR_TIMES "\xef\x89\xb3" // U+f273 +#define ICON_FA_CALENDAR_WEEK "\xef\x9e\x84" // U+f784 +#define ICON_FA_CAMCORDER "\xef\xa2\xa8" // U+f8a8 +#define ICON_FA_CAMERA "\xef\x80\xb0" // U+f030 +#define ICON_FA_CAMERA_ALT "\xef\x8c\xb2" // U+f332 +#define ICON_FA_CAMERA_HOME "\xef\xa3\xbe" // U+f8fe +#define ICON_FA_CAMERA_MOVIE "\xef\xa2\xa9" // U+f8a9 +#define ICON_FA_CAMERA_POLAROID "\xef\xa2\xaa" // U+f8aa +#define ICON_FA_CAMERA_RETRO "\xef\x82\x83" // U+f083 +#define ICON_FA_CAMPFIRE "\xef\x9a\xba" // U+f6ba +#define ICON_FA_CAMPGROUND "\xef\x9a\xbb" // U+f6bb +#define ICON_FA_CANDLE_HOLDER "\xef\x9a\xbc" // U+f6bc +#define ICON_FA_CANDY_CANE "\xef\x9e\x86" // U+f786 +#define ICON_FA_CANDY_CORN "\xef\x9a\xbd" // U+f6bd +#define ICON_FA_CANNABIS "\xef\x95\x9f" // U+f55f +#define ICON_FA_CAPSULES "\xef\x91\xab" // U+f46b +#define ICON_FA_CAR "\xef\x86\xb9" // U+f1b9 +#define ICON_FA_CAR_ALT "\xef\x97\x9e" // U+f5de +#define ICON_FA_CAR_BATTERY "\xef\x97\x9f" // U+f5df +#define ICON_FA_CAR_BUILDING "\xef\xa1\x99" // U+f859 +#define ICON_FA_CAR_BUMP "\xef\x97\xa0" // U+f5e0 +#define ICON_FA_CAR_BUS "\xef\xa1\x9a" // U+f85a +#define ICON_FA_CAR_CRASH "\xef\x97\xa1" // U+f5e1 +#define ICON_FA_CAR_GARAGE "\xef\x97\xa2" // U+f5e2 +#define ICON_FA_CAR_MECHANIC "\xef\x97\xa3" // U+f5e3 +#define ICON_FA_CAR_SIDE "\xef\x97\xa4" // U+f5e4 +#define ICON_FA_CAR_TILT "\xef\x97\xa5" // U+f5e5 +#define ICON_FA_CAR_WASH "\xef\x97\xa6" // U+f5e6 +#define ICON_FA_CARAVAN "\xef\xa3\xbf" // U+f8ff +#define ICON_FA_CARAVAN_ALT "\xef\xa4\x80" // U+f900 +#define ICON_FA_CARET_CIRCLE_DOWN "\xef\x8c\xad" // U+f32d +#define ICON_FA_CARET_CIRCLE_LEFT "\xef\x8c\xae" // U+f32e +#define ICON_FA_CARET_CIRCLE_RIGHT "\xef\x8c\xb0" // U+f330 +#define ICON_FA_CARET_CIRCLE_UP "\xef\x8c\xb1" // U+f331 +#define ICON_FA_CARET_DOWN "\xef\x83\x97" // U+f0d7 +#define ICON_FA_CARET_LEFT "\xef\x83\x99" // U+f0d9 +#define ICON_FA_CARET_RIGHT "\xef\x83\x9a" // U+f0da +#define ICON_FA_CARET_SQUARE_DOWN "\xef\x85\x90" // U+f150 +#define ICON_FA_CARET_SQUARE_LEFT "\xef\x86\x91" // U+f191 +#define ICON_FA_CARET_SQUARE_RIGHT "\xef\x85\x92" // U+f152 +#define ICON_FA_CARET_SQUARE_UP "\xef\x85\x91" // U+f151 +#define ICON_FA_CARET_UP "\xef\x83\x98" // U+f0d8 +#define ICON_FA_CARROT "\xef\x9e\x87" // U+f787 +#define ICON_FA_CARS "\xef\xa1\x9b" // U+f85b +#define ICON_FA_CART_ARROW_DOWN "\xef\x88\x98" // U+f218 +#define ICON_FA_CART_PLUS "\xef\x88\x97" // U+f217 +#define ICON_FA_CASH_REGISTER "\xef\x9e\x88" // U+f788 +#define ICON_FA_CASSETTE_TAPE "\xef\xa2\xab" // U+f8ab +#define ICON_FA_CAT "\xef\x9a\xbe" // U+f6be +#define ICON_FA_CAT_SPACE "\xef\xa4\x81" // U+f901 +#define ICON_FA_CAULDRON "\xef\x9a\xbf" // U+f6bf +#define ICON_FA_CCTV "\xef\xa2\xac" // U+f8ac +#define ICON_FA_CERTIFICATE "\xef\x82\xa3" // U+f0a3 +#define ICON_FA_CHAIR "\xef\x9b\x80" // U+f6c0 +#define ICON_FA_CHAIR_OFFICE "\xef\x9b\x81" // U+f6c1 +#define ICON_FA_CHALKBOARD "\xef\x94\x9b" // U+f51b +#define ICON_FA_CHALKBOARD_TEACHER "\xef\x94\x9c" // U+f51c +#define ICON_FA_CHARGING_STATION "\xef\x97\xa7" // U+f5e7 +#define ICON_FA_CHART_AREA "\xef\x87\xbe" // U+f1fe +#define ICON_FA_CHART_BAR "\xef\x82\x80" // U+f080 +#define ICON_FA_CHART_LINE "\xef\x88\x81" // U+f201 +#define ICON_FA_CHART_LINE_DOWN "\xef\x99\x8d" // U+f64d +#define ICON_FA_CHART_NETWORK "\xef\x9e\x8a" // U+f78a +#define ICON_FA_CHART_PIE "\xef\x88\x80" // U+f200 +#define ICON_FA_CHART_PIE_ALT "\xef\x99\x8e" // U+f64e +#define ICON_FA_CHART_SCATTER "\xef\x9f\xae" // U+f7ee +#define ICON_FA_CHECK "\xef\x80\x8c" // U+f00c +#define ICON_FA_CHECK_CIRCLE "\xef\x81\x98" // U+f058 +#define ICON_FA_CHECK_DOUBLE "\xef\x95\xa0" // U+f560 +#define ICON_FA_CHECK_SQUARE "\xef\x85\x8a" // U+f14a +#define ICON_FA_CHEESE "\xef\x9f\xaf" // U+f7ef +#define ICON_FA_CHEESE_SWISS "\xef\x9f\xb0" // U+f7f0 +#define ICON_FA_CHEESEBURGER "\xef\x9f\xb1" // U+f7f1 +#define ICON_FA_CHESS "\xef\x90\xb9" // U+f439 +#define ICON_FA_CHESS_BISHOP "\xef\x90\xba" // U+f43a +#define ICON_FA_CHESS_BISHOP_ALT "\xef\x90\xbb" // U+f43b +#define ICON_FA_CHESS_BOARD "\xef\x90\xbc" // U+f43c +#define ICON_FA_CHESS_CLOCK "\xef\x90\xbd" // U+f43d +#define ICON_FA_CHESS_CLOCK_ALT "\xef\x90\xbe" // U+f43e +#define ICON_FA_CHESS_KING "\xef\x90\xbf" // U+f43f +#define ICON_FA_CHESS_KING_ALT "\xef\x91\x80" // U+f440 +#define ICON_FA_CHESS_KNIGHT "\xef\x91\x81" // U+f441 +#define ICON_FA_CHESS_KNIGHT_ALT "\xef\x91\x82" // U+f442 +#define ICON_FA_CHESS_PAWN "\xef\x91\x83" // U+f443 +#define ICON_FA_CHESS_PAWN_ALT "\xef\x91\x84" // U+f444 +#define ICON_FA_CHESS_QUEEN "\xef\x91\x85" // U+f445 +#define ICON_FA_CHESS_QUEEN_ALT "\xef\x91\x86" // U+f446 +#define ICON_FA_CHESS_ROOK "\xef\x91\x87" // U+f447 +#define ICON_FA_CHESS_ROOK_ALT "\xef\x91\x88" // U+f448 +#define ICON_FA_CHEVRON_CIRCLE_DOWN "\xef\x84\xba" // U+f13a +#define ICON_FA_CHEVRON_CIRCLE_LEFT "\xef\x84\xb7" // U+f137 +#define ICON_FA_CHEVRON_CIRCLE_RIGHT "\xef\x84\xb8" // U+f138 +#define ICON_FA_CHEVRON_CIRCLE_UP "\xef\x84\xb9" // U+f139 +#define ICON_FA_CHEVRON_DOUBLE_DOWN "\xef\x8c\xa2" // U+f322 +#define ICON_FA_CHEVRON_DOUBLE_LEFT "\xef\x8c\xa3" // U+f323 +#define ICON_FA_CHEVRON_DOUBLE_RIGHT "\xef\x8c\xa4" // U+f324 +#define ICON_FA_CHEVRON_DOUBLE_UP "\xef\x8c\xa5" // U+f325 +#define ICON_FA_CHEVRON_DOWN "\xef\x81\xb8" // U+f078 +#define ICON_FA_CHEVRON_LEFT "\xef\x81\x93" // U+f053 +#define ICON_FA_CHEVRON_RIGHT "\xef\x81\x94" // U+f054 +#define ICON_FA_CHEVRON_SQUARE_DOWN "\xef\x8c\xa9" // U+f329 +#define ICON_FA_CHEVRON_SQUARE_LEFT "\xef\x8c\xaa" // U+f32a +#define ICON_FA_CHEVRON_SQUARE_RIGHT "\xef\x8c\xab" // U+f32b +#define ICON_FA_CHEVRON_SQUARE_UP "\xef\x8c\xac" // U+f32c +#define ICON_FA_CHEVRON_UP "\xef\x81\xb7" // U+f077 +#define ICON_FA_CHILD "\xef\x86\xae" // U+f1ae +#define ICON_FA_CHIMNEY "\xef\x9e\x8b" // U+f78b +#define ICON_FA_CHURCH "\xef\x94\x9d" // U+f51d +#define ICON_FA_CIRCLE "\xef\x84\x91" // U+f111 +#define ICON_FA_CIRCLE_NOTCH "\xef\x87\x8e" // U+f1ce +#define ICON_FA_CITY "\xef\x99\x8f" // U+f64f +#define ICON_FA_CLARINET "\xef\xa2\xad" // U+f8ad +#define ICON_FA_CLAW_MARKS "\xef\x9b\x82" // U+f6c2 +#define ICON_FA_CLINIC_MEDICAL "\xef\x9f\xb2" // U+f7f2 +#define ICON_FA_CLIPBOARD "\xef\x8c\xa8" // U+f328 +#define ICON_FA_CLIPBOARD_CHECK "\xef\x91\xac" // U+f46c +#define ICON_FA_CLIPBOARD_LIST "\xef\x91\xad" // U+f46d +#define ICON_FA_CLIPBOARD_LIST_CHECK "\xef\x9c\xb7" // U+f737 +#define ICON_FA_CLIPBOARD_PRESCRIPTION "\xef\x97\xa8" // U+f5e8 +#define ICON_FA_CLIPBOARD_USER "\xef\x9f\xb3" // U+f7f3 +#define ICON_FA_CLOCK "\xef\x80\x97" // U+f017 +#define ICON_FA_CLONE "\xef\x89\x8d" // U+f24d +#define ICON_FA_CLOSED_CAPTIONING "\xef\x88\x8a" // U+f20a +#define ICON_FA_CLOUD "\xef\x83\x82" // U+f0c2 +#define ICON_FA_CLOUD_DOWNLOAD "\xef\x83\xad" // U+f0ed +#define ICON_FA_CLOUD_DOWNLOAD_ALT "\xef\x8e\x81" // U+f381 +#define ICON_FA_CLOUD_DRIZZLE "\xef\x9c\xb8" // U+f738 +#define ICON_FA_CLOUD_HAIL "\xef\x9c\xb9" // U+f739 +#define ICON_FA_CLOUD_HAIL_MIXED "\xef\x9c\xba" // U+f73a +#define ICON_FA_CLOUD_MEATBALL "\xef\x9c\xbb" // U+f73b +#define ICON_FA_CLOUD_MOON "\xef\x9b\x83" // U+f6c3 +#define ICON_FA_CLOUD_MOON_RAIN "\xef\x9c\xbc" // U+f73c +#define ICON_FA_CLOUD_MUSIC "\xef\xa2\xae" // U+f8ae +#define ICON_FA_CLOUD_RAIN "\xef\x9c\xbd" // U+f73d +#define ICON_FA_CLOUD_RAINBOW "\xef\x9c\xbe" // U+f73e +#define ICON_FA_CLOUD_SHOWERS "\xef\x9c\xbf" // U+f73f +#define ICON_FA_CLOUD_SHOWERS_HEAVY "\xef\x9d\x80" // U+f740 +#define ICON_FA_CLOUD_SLEET "\xef\x9d\x81" // U+f741 +#define ICON_FA_CLOUD_SNOW "\xef\x9d\x82" // U+f742 +#define ICON_FA_CLOUD_SUN "\xef\x9b\x84" // U+f6c4 +#define ICON_FA_CLOUD_SUN_RAIN "\xef\x9d\x83" // U+f743 +#define ICON_FA_CLOUD_UPLOAD "\xef\x83\xae" // U+f0ee +#define ICON_FA_CLOUD_UPLOAD_ALT "\xef\x8e\x82" // U+f382 +#define ICON_FA_CLOUDS "\xef\x9d\x84" // U+f744 +#define ICON_FA_CLOUDS_MOON "\xef\x9d\x85" // U+f745 +#define ICON_FA_CLOUDS_SUN "\xef\x9d\x86" // U+f746 +#define ICON_FA_CLUB "\xef\x8c\xa7" // U+f327 +#define ICON_FA_COCKTAIL "\xef\x95\xa1" // U+f561 +#define ICON_FA_CODE "\xef\x84\xa1" // U+f121 +#define ICON_FA_CODE_BRANCH "\xef\x84\xa6" // U+f126 +#define ICON_FA_CODE_COMMIT "\xef\x8e\x86" // U+f386 +#define ICON_FA_CODE_MERGE "\xef\x8e\x87" // U+f387 +#define ICON_FA_COFFEE "\xef\x83\xb4" // U+f0f4 +#define ICON_FA_COFFEE_POT "\xef\xa4\x82" // U+f902 +#define ICON_FA_COFFEE_TOGO "\xef\x9b\x85" // U+f6c5 +#define ICON_FA_COFFIN "\xef\x9b\x86" // U+f6c6 +#define ICON_FA_COG "\xef\x80\x93" // U+f013 +#define ICON_FA_COGS "\xef\x82\x85" // U+f085 +#define ICON_FA_COIN "\xef\xa1\x9c" // U+f85c +#define ICON_FA_COINS "\xef\x94\x9e" // U+f51e +#define ICON_FA_COLUMNS "\xef\x83\x9b" // U+f0db +#define ICON_FA_COMET "\xef\xa4\x83" // U+f903 +#define ICON_FA_COMMENT "\xef\x81\xb5" // U+f075 +#define ICON_FA_COMMENT_ALT "\xef\x89\xba" // U+f27a +#define ICON_FA_COMMENT_ALT_CHECK "\xef\x92\xa2" // U+f4a2 +#define ICON_FA_COMMENT_ALT_DOLLAR "\xef\x99\x90" // U+f650 +#define ICON_FA_COMMENT_ALT_DOTS "\xef\x92\xa3" // U+f4a3 +#define ICON_FA_COMMENT_ALT_EDIT "\xef\x92\xa4" // U+f4a4 +#define ICON_FA_COMMENT_ALT_EXCLAMATION "\xef\x92\xa5" // U+f4a5 +#define ICON_FA_COMMENT_ALT_LINES "\xef\x92\xa6" // U+f4a6 +#define ICON_FA_COMMENT_ALT_MEDICAL "\xef\x9f\xb4" // U+f7f4 +#define ICON_FA_COMMENT_ALT_MINUS "\xef\x92\xa7" // U+f4a7 +#define ICON_FA_COMMENT_ALT_MUSIC "\xef\xa2\xaf" // U+f8af +#define ICON_FA_COMMENT_ALT_PLUS "\xef\x92\xa8" // U+f4a8 +#define ICON_FA_COMMENT_ALT_SLASH "\xef\x92\xa9" // U+f4a9 +#define ICON_FA_COMMENT_ALT_SMILE "\xef\x92\xaa" // U+f4aa +#define ICON_FA_COMMENT_ALT_TIMES "\xef\x92\xab" // U+f4ab +#define ICON_FA_COMMENT_CHECK "\xef\x92\xac" // U+f4ac +#define ICON_FA_COMMENT_DOLLAR "\xef\x99\x91" // U+f651 +#define ICON_FA_COMMENT_DOTS "\xef\x92\xad" // U+f4ad +#define ICON_FA_COMMENT_EDIT "\xef\x92\xae" // U+f4ae +#define ICON_FA_COMMENT_EXCLAMATION "\xef\x92\xaf" // U+f4af +#define ICON_FA_COMMENT_LINES "\xef\x92\xb0" // U+f4b0 +#define ICON_FA_COMMENT_MEDICAL "\xef\x9f\xb5" // U+f7f5 +#define ICON_FA_COMMENT_MINUS "\xef\x92\xb1" // U+f4b1 +#define ICON_FA_COMMENT_MUSIC "\xef\xa2\xb0" // U+f8b0 +#define ICON_FA_COMMENT_PLUS "\xef\x92\xb2" // U+f4b2 +#define ICON_FA_COMMENT_SLASH "\xef\x92\xb3" // U+f4b3 +#define ICON_FA_COMMENT_SMILE "\xef\x92\xb4" // U+f4b4 +#define ICON_FA_COMMENT_TIMES "\xef\x92\xb5" // U+f4b5 +#define ICON_FA_COMMENTS "\xef\x82\x86" // U+f086 +#define ICON_FA_COMMENTS_ALT "\xef\x92\xb6" // U+f4b6 +#define ICON_FA_COMMENTS_ALT_DOLLAR "\xef\x99\x92" // U+f652 +#define ICON_FA_COMMENTS_DOLLAR "\xef\x99\x93" // U+f653 +#define ICON_FA_COMPACT_DISC "\xef\x94\x9f" // U+f51f +#define ICON_FA_COMPASS "\xef\x85\x8e" // U+f14e +#define ICON_FA_COMPASS_SLASH "\xef\x97\xa9" // U+f5e9 +#define ICON_FA_COMPRESS "\xef\x81\xa6" // U+f066 +#define ICON_FA_COMPRESS_ALT "\xef\x90\xa2" // U+f422 +#define ICON_FA_COMPRESS_ARROWS_ALT "\xef\x9e\x8c" // U+f78c +#define ICON_FA_COMPRESS_WIDE "\xef\x8c\xa6" // U+f326 +#define ICON_FA_COMPUTER_CLASSIC "\xef\xa2\xb1" // U+f8b1 +#define ICON_FA_COMPUTER_SPEAKER "\xef\xa2\xb2" // U+f8b2 +#define ICON_FA_CONCIERGE_BELL "\xef\x95\xa2" // U+f562 +#define ICON_FA_CONSTRUCTION "\xef\xa1\x9d" // U+f85d +#define ICON_FA_CONTAINER_STORAGE "\xef\x92\xb7" // U+f4b7 +#define ICON_FA_CONVEYOR_BELT "\xef\x91\xae" // U+f46e +#define ICON_FA_CONVEYOR_BELT_ALT "\xef\x91\xaf" // U+f46f +#define ICON_FA_COOKIE "\xef\x95\xa3" // U+f563 +#define ICON_FA_COOKIE_BITE "\xef\x95\xa4" // U+f564 +#define ICON_FA_COPY "\xef\x83\x85" // U+f0c5 +#define ICON_FA_COPYRIGHT "\xef\x87\xb9" // U+f1f9 +#define ICON_FA_CORN "\xef\x9b\x87" // U+f6c7 +#define ICON_FA_COUCH "\xef\x92\xb8" // U+f4b8 +#define ICON_FA_COW "\xef\x9b\x88" // U+f6c8 +#define ICON_FA_COWBELL "\xef\xa2\xb3" // U+f8b3 +#define ICON_FA_COWBELL_MORE "\xef\xa2\xb4" // U+f8b4 +#define ICON_FA_CREDIT_CARD "\xef\x82\x9d" // U+f09d +#define ICON_FA_CREDIT_CARD_BLANK "\xef\x8e\x89" // U+f389 +#define ICON_FA_CREDIT_CARD_FRONT "\xef\x8e\x8a" // U+f38a +#define ICON_FA_CRICKET "\xef\x91\x89" // U+f449 +#define ICON_FA_CROISSANT "\xef\x9f\xb6" // U+f7f6 +#define ICON_FA_CROP "\xef\x84\xa5" // U+f125 +#define ICON_FA_CROP_ALT "\xef\x95\xa5" // U+f565 +#define ICON_FA_CROSS "\xef\x99\x94" // U+f654 +#define ICON_FA_CROSSHAIRS "\xef\x81\x9b" // U+f05b +#define ICON_FA_CROW "\xef\x94\xa0" // U+f520 +#define ICON_FA_CROWN "\xef\x94\xa1" // U+f521 +#define ICON_FA_CRUTCH "\xef\x9f\xb7" // U+f7f7 +#define ICON_FA_CRUTCHES "\xef\x9f\xb8" // U+f7f8 +#define ICON_FA_CUBE "\xef\x86\xb2" // U+f1b2 +#define ICON_FA_CUBES "\xef\x86\xb3" // U+f1b3 +#define ICON_FA_CURLING "\xef\x91\x8a" // U+f44a +#define ICON_FA_CUT "\xef\x83\x84" // U+f0c4 +#define ICON_FA_DAGGER "\xef\x9b\x8b" // U+f6cb +#define ICON_FA_DATABASE "\xef\x87\x80" // U+f1c0 +#define ICON_FA_DEAF "\xef\x8a\xa4" // U+f2a4 +#define ICON_FA_DEBUG "\xef\x9f\xb9" // U+f7f9 +#define ICON_FA_DEER "\xef\x9e\x8e" // U+f78e +#define ICON_FA_DEER_RUDOLPH "\xef\x9e\x8f" // U+f78f +#define ICON_FA_DEMOCRAT "\xef\x9d\x87" // U+f747 +#define ICON_FA_DESKTOP "\xef\x84\x88" // U+f108 +#define ICON_FA_DESKTOP_ALT "\xef\x8e\x90" // U+f390 +#define ICON_FA_DEWPOINT "\xef\x9d\x88" // U+f748 +#define ICON_FA_DHARMACHAKRA "\xef\x99\x95" // U+f655 +#define ICON_FA_DIAGNOSES "\xef\x91\xb0" // U+f470 +#define ICON_FA_DIAMOND "\xef\x88\x99" // U+f219 +#define ICON_FA_DICE "\xef\x94\xa2" // U+f522 +#define ICON_FA_DICE_D10 "\xef\x9b\x8d" // U+f6cd +#define ICON_FA_DICE_D12 "\xef\x9b\x8e" // U+f6ce +#define ICON_FA_DICE_D20 "\xef\x9b\x8f" // U+f6cf +#define ICON_FA_DICE_D4 "\xef\x9b\x90" // U+f6d0 +#define ICON_FA_DICE_D6 "\xef\x9b\x91" // U+f6d1 +#define ICON_FA_DICE_D8 "\xef\x9b\x92" // U+f6d2 +#define ICON_FA_DICE_FIVE "\xef\x94\xa3" // U+f523 +#define ICON_FA_DICE_FOUR "\xef\x94\xa4" // U+f524 +#define ICON_FA_DICE_ONE "\xef\x94\xa5" // U+f525 +#define ICON_FA_DICE_SIX "\xef\x94\xa6" // U+f526 +#define ICON_FA_DICE_THREE "\xef\x94\xa7" // U+f527 +#define ICON_FA_DICE_TWO "\xef\x94\xa8" // U+f528 +#define ICON_FA_DIGGING "\xef\xa1\x9e" // U+f85e +#define ICON_FA_DIGITAL_TACHOGRAPH "\xef\x95\xa6" // U+f566 +#define ICON_FA_DIPLOMA "\xef\x97\xaa" // U+f5ea +#define ICON_FA_DIRECTIONS "\xef\x97\xab" // U+f5eb +#define ICON_FA_DISC_DRIVE "\xef\xa2\xb5" // U+f8b5 +#define ICON_FA_DISEASE "\xef\x9f\xba" // U+f7fa +#define ICON_FA_DIVIDE "\xef\x94\xa9" // U+f529 +#define ICON_FA_DIZZY "\xef\x95\xa7" // U+f567 +#define ICON_FA_DNA "\xef\x91\xb1" // U+f471 +#define ICON_FA_DO_NOT_ENTER "\xef\x97\xac" // U+f5ec +#define ICON_FA_DOG "\xef\x9b\x93" // U+f6d3 +#define ICON_FA_DOG_LEASHED "\xef\x9b\x94" // U+f6d4 +#define ICON_FA_DOLLAR_SIGN "\xef\x85\x95" // U+f155 +#define ICON_FA_DOLLY "\xef\x91\xb2" // U+f472 +#define ICON_FA_DOLLY_EMPTY "\xef\x91\xb3" // U+f473 +#define ICON_FA_DOLLY_FLATBED "\xef\x91\xb4" // U+f474 +#define ICON_FA_DOLLY_FLATBED_ALT "\xef\x91\xb5" // U+f475 +#define ICON_FA_DOLLY_FLATBED_EMPTY "\xef\x91\xb6" // U+f476 +#define ICON_FA_DONATE "\xef\x92\xb9" // U+f4b9 +#define ICON_FA_DOOR_CLOSED "\xef\x94\xaa" // U+f52a +#define ICON_FA_DOOR_OPEN "\xef\x94\xab" // U+f52b +#define ICON_FA_DOT_CIRCLE "\xef\x86\x92" // U+f192 +#define ICON_FA_DOVE "\xef\x92\xba" // U+f4ba +#define ICON_FA_DOWNLOAD "\xef\x80\x99" // U+f019 +#define ICON_FA_DRAFTING_COMPASS "\xef\x95\xa8" // U+f568 +#define ICON_FA_DRAGON "\xef\x9b\x95" // U+f6d5 +#define ICON_FA_DRAW_CIRCLE "\xef\x97\xad" // U+f5ed +#define ICON_FA_DRAW_POLYGON "\xef\x97\xae" // U+f5ee +#define ICON_FA_DRAW_SQUARE "\xef\x97\xaf" // U+f5ef +#define ICON_FA_DREIDEL "\xef\x9e\x92" // U+f792 +#define ICON_FA_DRONE "\xef\xa1\x9f" // U+f85f +#define ICON_FA_DRONE_ALT "\xef\xa1\xa0" // U+f860 +#define ICON_FA_DRUM "\xef\x95\xa9" // U+f569 +#define ICON_FA_DRUM_STEELPAN "\xef\x95\xaa" // U+f56a +#define ICON_FA_DRUMSTICK "\xef\x9b\x96" // U+f6d6 +#define ICON_FA_DRUMSTICK_BITE "\xef\x9b\x97" // U+f6d7 +#define ICON_FA_DRYER "\xef\xa1\xa1" // U+f861 +#define ICON_FA_DRYER_ALT "\xef\xa1\xa2" // U+f862 +#define ICON_FA_DUCK "\xef\x9b\x98" // U+f6d8 +#define ICON_FA_DUMBBELL "\xef\x91\x8b" // U+f44b +#define ICON_FA_DUMPSTER "\xef\x9e\x93" // U+f793 +#define ICON_FA_DUMPSTER_FIRE "\xef\x9e\x94" // U+f794 +#define ICON_FA_DUNGEON "\xef\x9b\x99" // U+f6d9 +#define ICON_FA_EAR "\xef\x97\xb0" // U+f5f0 +#define ICON_FA_EAR_MUFFS "\xef\x9e\x95" // U+f795 +#define ICON_FA_ECLIPSE "\xef\x9d\x89" // U+f749 +#define ICON_FA_ECLIPSE_ALT "\xef\x9d\x8a" // U+f74a +#define ICON_FA_EDIT "\xef\x81\x84" // U+f044 +#define ICON_FA_EGG "\xef\x9f\xbb" // U+f7fb +#define ICON_FA_EGG_FRIED "\xef\x9f\xbc" // U+f7fc +#define ICON_FA_EJECT "\xef\x81\x92" // U+f052 +#define ICON_FA_ELEPHANT "\xef\x9b\x9a" // U+f6da +#define ICON_FA_ELLIPSIS_H "\xef\x85\x81" // U+f141 +#define ICON_FA_ELLIPSIS_H_ALT "\xef\x8e\x9b" // U+f39b +#define ICON_FA_ELLIPSIS_V "\xef\x85\x82" // U+f142 +#define ICON_FA_ELLIPSIS_V_ALT "\xef\x8e\x9c" // U+f39c +#define ICON_FA_EMPTY_SET "\xef\x99\x96" // U+f656 +#define ICON_FA_ENGINE_WARNING "\xef\x97\xb2" // U+f5f2 +#define ICON_FA_ENVELOPE "\xef\x83\xa0" // U+f0e0 +#define ICON_FA_ENVELOPE_OPEN "\xef\x8a\xb6" // U+f2b6 +#define ICON_FA_ENVELOPE_OPEN_DOLLAR "\xef\x99\x97" // U+f657 +#define ICON_FA_ENVELOPE_OPEN_TEXT "\xef\x99\x98" // U+f658 +#define ICON_FA_ENVELOPE_SQUARE "\xef\x86\x99" // U+f199 +#define ICON_FA_EQUALS "\xef\x94\xac" // U+f52c +#define ICON_FA_ERASER "\xef\x84\xad" // U+f12d +#define ICON_FA_ETHERNET "\xef\x9e\x96" // U+f796 +#define ICON_FA_EURO_SIGN "\xef\x85\x93" // U+f153 +#define ICON_FA_EXCHANGE "\xef\x83\xac" // U+f0ec +#define ICON_FA_EXCHANGE_ALT "\xef\x8d\xa2" // U+f362 +#define ICON_FA_EXCLAMATION "\xef\x84\xaa" // U+f12a +#define ICON_FA_EXCLAMATION_CIRCLE "\xef\x81\xaa" // U+f06a +#define ICON_FA_EXCLAMATION_SQUARE "\xef\x8c\xa1" // U+f321 +#define ICON_FA_EXCLAMATION_TRIANGLE "\xef\x81\xb1" // U+f071 +#define ICON_FA_EXPAND "\xef\x81\xa5" // U+f065 +#define ICON_FA_EXPAND_ALT "\xef\x90\xa4" // U+f424 +#define ICON_FA_EXPAND_ARROWS "\xef\x8c\x9d" // U+f31d +#define ICON_FA_EXPAND_ARROWS_ALT "\xef\x8c\x9e" // U+f31e +#define ICON_FA_EXPAND_WIDE "\xef\x8c\xa0" // U+f320 +#define ICON_FA_EXTERNAL_LINK "\xef\x82\x8e" // U+f08e +#define ICON_FA_EXTERNAL_LINK_ALT "\xef\x8d\x9d" // U+f35d +#define ICON_FA_EXTERNAL_LINK_SQUARE "\xef\x85\x8c" // U+f14c +#define ICON_FA_EXTERNAL_LINK_SQUARE_ALT "\xef\x8d\xa0" // U+f360 +#define ICON_FA_EYE "\xef\x81\xae" // U+f06e +#define ICON_FA_EYE_DROPPER "\xef\x87\xbb" // U+f1fb +#define ICON_FA_EYE_EVIL "\xef\x9b\x9b" // U+f6db +#define ICON_FA_EYE_SLASH "\xef\x81\xb0" // U+f070 +#define ICON_FA_FAN "\xef\xa1\xa3" // U+f863 +#define ICON_FA_FAN_TABLE "\xef\xa4\x84" // U+f904 +#define ICON_FA_FARM "\xef\xa1\xa4" // U+f864 +#define ICON_FA_FAST_BACKWARD "\xef\x81\x89" // U+f049 +#define ICON_FA_FAST_FORWARD "\xef\x81\x90" // U+f050 +#define ICON_FA_FAUCET "\xef\xa4\x85" // U+f905 +#define ICON_FA_FAUCET_DRIP "\xef\xa4\x86" // U+f906 +#define ICON_FA_FAX "\xef\x86\xac" // U+f1ac +#define ICON_FA_FEATHER "\xef\x94\xad" // U+f52d +#define ICON_FA_FEATHER_ALT "\xef\x95\xab" // U+f56b +#define ICON_FA_FEMALE "\xef\x86\x82" // U+f182 +#define ICON_FA_FIELD_HOCKEY "\xef\x91\x8c" // U+f44c +#define ICON_FA_FIGHTER_JET "\xef\x83\xbb" // U+f0fb +#define ICON_FA_FILE "\xef\x85\x9b" // U+f15b +#define ICON_FA_FILE_ALT "\xef\x85\x9c" // U+f15c +#define ICON_FA_FILE_ARCHIVE "\xef\x87\x86" // U+f1c6 +#define ICON_FA_FILE_AUDIO "\xef\x87\x87" // U+f1c7 +#define ICON_FA_FILE_CERTIFICATE "\xef\x97\xb3" // U+f5f3 +#define ICON_FA_FILE_CHART_LINE "\xef\x99\x99" // U+f659 +#define ICON_FA_FILE_CHART_PIE "\xef\x99\x9a" // U+f65a +#define ICON_FA_FILE_CHECK "\xef\x8c\x96" // U+f316 +#define ICON_FA_FILE_CODE "\xef\x87\x89" // U+f1c9 +#define ICON_FA_FILE_CONTRACT "\xef\x95\xac" // U+f56c +#define ICON_FA_FILE_CSV "\xef\x9b\x9d" // U+f6dd +#define ICON_FA_FILE_DOWNLOAD "\xef\x95\xad" // U+f56d +#define ICON_FA_FILE_EDIT "\xef\x8c\x9c" // U+f31c +#define ICON_FA_FILE_EXCEL "\xef\x87\x83" // U+f1c3 +#define ICON_FA_FILE_EXCLAMATION "\xef\x8c\x9a" // U+f31a +#define ICON_FA_FILE_EXPORT "\xef\x95\xae" // U+f56e +#define ICON_FA_FILE_IMAGE "\xef\x87\x85" // U+f1c5 +#define ICON_FA_FILE_IMPORT "\xef\x95\xaf" // U+f56f +#define ICON_FA_FILE_INVOICE "\xef\x95\xb0" // U+f570 +#define ICON_FA_FILE_INVOICE_DOLLAR "\xef\x95\xb1" // U+f571 +#define ICON_FA_FILE_MEDICAL "\xef\x91\xb7" // U+f477 +#define ICON_FA_FILE_MEDICAL_ALT "\xef\x91\xb8" // U+f478 +#define ICON_FA_FILE_MINUS "\xef\x8c\x98" // U+f318 +#define ICON_FA_FILE_MUSIC "\xef\xa2\xb6" // U+f8b6 +#define ICON_FA_FILE_PDF "\xef\x87\x81" // U+f1c1 +#define ICON_FA_FILE_PLUS "\xef\x8c\x99" // U+f319 +#define ICON_FA_FILE_POWERPOINT "\xef\x87\x84" // U+f1c4 +#define ICON_FA_FILE_PRESCRIPTION "\xef\x95\xb2" // U+f572 +#define ICON_FA_FILE_SEARCH "\xef\xa1\xa5" // U+f865 +#define ICON_FA_FILE_SIGNATURE "\xef\x95\xb3" // U+f573 +#define ICON_FA_FILE_SPREADSHEET "\xef\x99\x9b" // U+f65b +#define ICON_FA_FILE_TIMES "\xef\x8c\x97" // U+f317 +#define ICON_FA_FILE_UPLOAD "\xef\x95\xb4" // U+f574 +#define ICON_FA_FILE_USER "\xef\x99\x9c" // U+f65c +#define ICON_FA_FILE_VIDEO "\xef\x87\x88" // U+f1c8 +#define ICON_FA_FILE_WORD "\xef\x87\x82" // U+f1c2 +#define ICON_FA_FILES_MEDICAL "\xef\x9f\xbd" // U+f7fd +#define ICON_FA_FILL "\xef\x95\xb5" // U+f575 +#define ICON_FA_FILL_DRIP "\xef\x95\xb6" // U+f576 +#define ICON_FA_FILM "\xef\x80\x88" // U+f008 +#define ICON_FA_FILM_ALT "\xef\x8e\xa0" // U+f3a0 +#define ICON_FA_FILM_CANISTER "\xef\xa2\xb7" // U+f8b7 +#define ICON_FA_FILTER "\xef\x82\xb0" // U+f0b0 +#define ICON_FA_FINGERPRINT "\xef\x95\xb7" // U+f577 +#define ICON_FA_FIRE "\xef\x81\xad" // U+f06d +#define ICON_FA_FIRE_ALT "\xef\x9f\xa4" // U+f7e4 +#define ICON_FA_FIRE_EXTINGUISHER "\xef\x84\xb4" // U+f134 +#define ICON_FA_FIRE_SMOKE "\xef\x9d\x8b" // U+f74b +#define ICON_FA_FIREPLACE "\xef\x9e\x9a" // U+f79a +#define ICON_FA_FIRST_AID "\xef\x91\xb9" // U+f479 +#define ICON_FA_FISH "\xef\x95\xb8" // U+f578 +#define ICON_FA_FISH_COOKED "\xef\x9f\xbe" // U+f7fe +#define ICON_FA_FIST_RAISED "\xef\x9b\x9e" // U+f6de +#define ICON_FA_FLAG "\xef\x80\xa4" // U+f024 +#define ICON_FA_FLAG_ALT "\xef\x9d\x8c" // U+f74c +#define ICON_FA_FLAG_CHECKERED "\xef\x84\x9e" // U+f11e +#define ICON_FA_FLAG_USA "\xef\x9d\x8d" // U+f74d +#define ICON_FA_FLAME "\xef\x9b\x9f" // U+f6df +#define ICON_FA_FLASHLIGHT "\xef\xa2\xb8" // U+f8b8 +#define ICON_FA_FLASK "\xef\x83\x83" // U+f0c3 +#define ICON_FA_FLASK_POISON "\xef\x9b\xa0" // U+f6e0 +#define ICON_FA_FLASK_POTION "\xef\x9b\xa1" // U+f6e1 +#define ICON_FA_FLOWER "\xef\x9f\xbf" // U+f7ff +#define ICON_FA_FLOWER_DAFFODIL "\xef\xa0\x80" // U+f800 +#define ICON_FA_FLOWER_TULIP "\xef\xa0\x81" // U+f801 +#define ICON_FA_FLUSHED "\xef\x95\xb9" // U+f579 +#define ICON_FA_FLUTE "\xef\xa2\xb9" // U+f8b9 +#define ICON_FA_FLUX_CAPACITOR "\xef\xa2\xba" // U+f8ba +#define ICON_FA_FOG "\xef\x9d\x8e" // U+f74e +#define ICON_FA_FOLDER "\xef\x81\xbb" // U+f07b +#define ICON_FA_FOLDER_MINUS "\xef\x99\x9d" // U+f65d +#define ICON_FA_FOLDER_OPEN "\xef\x81\xbc" // U+f07c +#define ICON_FA_FOLDER_PLUS "\xef\x99\x9e" // U+f65e +#define ICON_FA_FOLDER_TIMES "\xef\x99\x9f" // U+f65f +#define ICON_FA_FOLDER_TREE "\xef\xa0\x82" // U+f802 +#define ICON_FA_FOLDERS "\xef\x99\xa0" // U+f660 +#define ICON_FA_FONT "\xef\x80\xb1" // U+f031 +#define ICON_FA_FONT_AWESOME_LOGO_FULL "\xef\x93\xa6" // U+f4e6 +#define ICON_FA_FONT_CASE "\xef\xa1\xa6" // U+f866 +#define ICON_FA_FOOTBALL_BALL "\xef\x91\x8e" // U+f44e +#define ICON_FA_FOOTBALL_HELMET "\xef\x91\x8f" // U+f44f +#define ICON_FA_FORKLIFT "\xef\x91\xba" // U+f47a +#define ICON_FA_FORWARD "\xef\x81\x8e" // U+f04e +#define ICON_FA_FRAGILE "\xef\x92\xbb" // U+f4bb +#define ICON_FA_FRENCH_FRIES "\xef\xa0\x83" // U+f803 +#define ICON_FA_FROG "\xef\x94\xae" // U+f52e +#define ICON_FA_FROSTY_HEAD "\xef\x9e\x9b" // U+f79b +#define ICON_FA_FROWN "\xef\x84\x99" // U+f119 +#define ICON_FA_FROWN_OPEN "\xef\x95\xba" // U+f57a +#define ICON_FA_FUNCTION "\xef\x99\xa1" // U+f661 +#define ICON_FA_FUNNEL_DOLLAR "\xef\x99\xa2" // U+f662 +#define ICON_FA_FUTBOL "\xef\x87\xa3" // U+f1e3 +#define ICON_FA_GALAXY "\xef\xa4\x88" // U+f908 +#define ICON_FA_GAME_BOARD "\xef\xa1\xa7" // U+f867 +#define ICON_FA_GAME_BOARD_ALT "\xef\xa1\xa8" // U+f868 +#define ICON_FA_GAME_CONSOLE_HANDHELD "\xef\xa2\xbb" // U+f8bb +#define ICON_FA_GAMEPAD "\xef\x84\x9b" // U+f11b +#define ICON_FA_GAMEPAD_ALT "\xef\xa2\xbc" // U+f8bc +#define ICON_FA_GARAGE "\xef\xa4\x89" // U+f909 +#define ICON_FA_GARAGE_CAR "\xef\xa4\x8a" // U+f90a +#define ICON_FA_GARAGE_OPEN "\xef\xa4\x8b" // U+f90b +#define ICON_FA_GAS_PUMP "\xef\x94\xaf" // U+f52f +#define ICON_FA_GAS_PUMP_SLASH "\xef\x97\xb4" // U+f5f4 +#define ICON_FA_GAVEL "\xef\x83\xa3" // U+f0e3 +#define ICON_FA_GEM "\xef\x8e\xa5" // U+f3a5 +#define ICON_FA_GENDERLESS "\xef\x88\xad" // U+f22d +#define ICON_FA_GHOST "\xef\x9b\xa2" // U+f6e2 +#define ICON_FA_GIFT "\xef\x81\xab" // U+f06b +#define ICON_FA_GIFT_CARD "\xef\x99\xa3" // U+f663 +#define ICON_FA_GIFTS "\xef\x9e\x9c" // U+f79c +#define ICON_FA_GINGERBREAD_MAN "\xef\x9e\x9d" // U+f79d +#define ICON_FA_GLASS "\xef\xa0\x84" // U+f804 +#define ICON_FA_GLASS_CHAMPAGNE "\xef\x9e\x9e" // U+f79e +#define ICON_FA_GLASS_CHEERS "\xef\x9e\x9f" // U+f79f +#define ICON_FA_GLASS_CITRUS "\xef\xa1\xa9" // U+f869 +#define ICON_FA_GLASS_MARTINI "\xef\x80\x80" // U+f000 +#define ICON_FA_GLASS_MARTINI_ALT "\xef\x95\xbb" // U+f57b +#define ICON_FA_GLASS_WHISKEY "\xef\x9e\xa0" // U+f7a0 +#define ICON_FA_GLASS_WHISKEY_ROCKS "\xef\x9e\xa1" // U+f7a1 +#define ICON_FA_GLASSES "\xef\x94\xb0" // U+f530 +#define ICON_FA_GLASSES_ALT "\xef\x97\xb5" // U+f5f5 +#define ICON_FA_GLOBE "\xef\x82\xac" // U+f0ac +#define ICON_FA_GLOBE_AFRICA "\xef\x95\xbc" // U+f57c +#define ICON_FA_GLOBE_AMERICAS "\xef\x95\xbd" // U+f57d +#define ICON_FA_GLOBE_ASIA "\xef\x95\xbe" // U+f57e +#define ICON_FA_GLOBE_EUROPE "\xef\x9e\xa2" // U+f7a2 +#define ICON_FA_GLOBE_SNOW "\xef\x9e\xa3" // U+f7a3 +#define ICON_FA_GLOBE_STAND "\xef\x97\xb6" // U+f5f6 +#define ICON_FA_GOLF_BALL "\xef\x91\x90" // U+f450 +#define ICON_FA_GOLF_CLUB "\xef\x91\x91" // U+f451 +#define ICON_FA_GOPURAM "\xef\x99\xa4" // U+f664 +#define ICON_FA_GRADUATION_CAP "\xef\x86\x9d" // U+f19d +#define ICON_FA_GRAMOPHONE "\xef\xa2\xbd" // U+f8bd +#define ICON_FA_GREATER_THAN "\xef\x94\xb1" // U+f531 +#define ICON_FA_GREATER_THAN_EQUAL "\xef\x94\xb2" // U+f532 +#define ICON_FA_GRIMACE "\xef\x95\xbf" // U+f57f +#define ICON_FA_GRIN "\xef\x96\x80" // U+f580 +#define ICON_FA_GRIN_ALT "\xef\x96\x81" // U+f581 +#define ICON_FA_GRIN_BEAM "\xef\x96\x82" // U+f582 +#define ICON_FA_GRIN_BEAM_SWEAT "\xef\x96\x83" // U+f583 +#define ICON_FA_GRIN_HEARTS "\xef\x96\x84" // U+f584 +#define ICON_FA_GRIN_SQUINT "\xef\x96\x85" // U+f585 +#define ICON_FA_GRIN_SQUINT_TEARS "\xef\x96\x86" // U+f586 +#define ICON_FA_GRIN_STARS "\xef\x96\x87" // U+f587 +#define ICON_FA_GRIN_TEARS "\xef\x96\x88" // U+f588 +#define ICON_FA_GRIN_TONGUE "\xef\x96\x89" // U+f589 +#define ICON_FA_GRIN_TONGUE_SQUINT "\xef\x96\x8a" // U+f58a +#define ICON_FA_GRIN_TONGUE_WINK "\xef\x96\x8b" // U+f58b +#define ICON_FA_GRIN_WINK "\xef\x96\x8c" // U+f58c +#define ICON_FA_GRIP_HORIZONTAL "\xef\x96\x8d" // U+f58d +#define ICON_FA_GRIP_LINES "\xef\x9e\xa4" // U+f7a4 +#define ICON_FA_GRIP_LINES_VERTICAL "\xef\x9e\xa5" // U+f7a5 +#define ICON_FA_GRIP_VERTICAL "\xef\x96\x8e" // U+f58e +#define ICON_FA_GUITAR "\xef\x9e\xa6" // U+f7a6 +#define ICON_FA_GUITAR_ELECTRIC "\xef\xa2\xbe" // U+f8be +#define ICON_FA_GUITARS "\xef\xa2\xbf" // U+f8bf +#define ICON_FA_H_SQUARE "\xef\x83\xbd" // U+f0fd +#define ICON_FA_H1 "\xef\x8c\x93" // U+f313 +#define ICON_FA_H2 "\xef\x8c\x94" // U+f314 +#define ICON_FA_H3 "\xef\x8c\x95" // U+f315 +#define ICON_FA_H4 "\xef\xa1\xaa" // U+f86a +#define ICON_FA_HAMBURGER "\xef\xa0\x85" // U+f805 +#define ICON_FA_HAMMER "\xef\x9b\xa3" // U+f6e3 +#define ICON_FA_HAMMER_WAR "\xef\x9b\xa4" // U+f6e4 +#define ICON_FA_HAMSA "\xef\x99\xa5" // U+f665 +#define ICON_FA_HAND_HEART "\xef\x92\xbc" // U+f4bc +#define ICON_FA_HAND_HOLDING "\xef\x92\xbd" // U+f4bd +#define ICON_FA_HAND_HOLDING_BOX "\xef\x91\xbb" // U+f47b +#define ICON_FA_HAND_HOLDING_HEART "\xef\x92\xbe" // U+f4be +#define ICON_FA_HAND_HOLDING_MAGIC "\xef\x9b\xa5" // U+f6e5 +#define ICON_FA_HAND_HOLDING_SEEDLING "\xef\x92\xbf" // U+f4bf +#define ICON_FA_HAND_HOLDING_USD "\xef\x93\x80" // U+f4c0 +#define ICON_FA_HAND_HOLDING_WATER "\xef\x93\x81" // U+f4c1 +#define ICON_FA_HAND_LIZARD "\xef\x89\x98" // U+f258 +#define ICON_FA_HAND_MIDDLE_FINGER "\xef\xa0\x86" // U+f806 +#define ICON_FA_HAND_PAPER "\xef\x89\x96" // U+f256 +#define ICON_FA_HAND_PEACE "\xef\x89\x9b" // U+f25b +#define ICON_FA_HAND_POINT_DOWN "\xef\x82\xa7" // U+f0a7 +#define ICON_FA_HAND_POINT_LEFT "\xef\x82\xa5" // U+f0a5 +#define ICON_FA_HAND_POINT_RIGHT "\xef\x82\xa4" // U+f0a4 +#define ICON_FA_HAND_POINT_UP "\xef\x82\xa6" // U+f0a6 +#define ICON_FA_HAND_POINTER "\xef\x89\x9a" // U+f25a +#define ICON_FA_HAND_RECEIVING "\xef\x91\xbc" // U+f47c +#define ICON_FA_HAND_ROCK "\xef\x89\x95" // U+f255 +#define ICON_FA_HAND_SCISSORS "\xef\x89\x97" // U+f257 +#define ICON_FA_HAND_SPOCK "\xef\x89\x99" // U+f259 +#define ICON_FA_HANDS "\xef\x93\x82" // U+f4c2 +#define ICON_FA_HANDS_HEART "\xef\x93\x83" // U+f4c3 +#define ICON_FA_HANDS_HELPING "\xef\x93\x84" // U+f4c4 +#define ICON_FA_HANDS_USD "\xef\x93\x85" // U+f4c5 +#define ICON_FA_HANDSHAKE "\xef\x8a\xb5" // U+f2b5 +#define ICON_FA_HANDSHAKE_ALT "\xef\x93\x86" // U+f4c6 +#define ICON_FA_HANUKIAH "\xef\x9b\xa6" // U+f6e6 +#define ICON_FA_HARD_HAT "\xef\xa0\x87" // U+f807 +#define ICON_FA_HASHTAG "\xef\x8a\x92" // U+f292 +#define ICON_FA_HAT_CHEF "\xef\xa1\xab" // U+f86b +#define ICON_FA_HAT_COWBOY "\xef\xa3\x80" // U+f8c0 +#define ICON_FA_HAT_COWBOY_SIDE "\xef\xa3\x81" // U+f8c1 +#define ICON_FA_HAT_SANTA "\xef\x9e\xa7" // U+f7a7 +#define ICON_FA_HAT_WINTER "\xef\x9e\xa8" // U+f7a8 +#define ICON_FA_HAT_WITCH "\xef\x9b\xa7" // U+f6e7 +#define ICON_FA_HAT_WIZARD "\xef\x9b\xa8" // U+f6e8 +#define ICON_FA_HDD "\xef\x82\xa0" // U+f0a0 +#define ICON_FA_HEAD_SIDE "\xef\x9b\xa9" // U+f6e9 +#define ICON_FA_HEAD_SIDE_BRAIN "\xef\xa0\x88" // U+f808 +#define ICON_FA_HEAD_SIDE_HEADPHONES "\xef\xa3\x82" // U+f8c2 +#define ICON_FA_HEAD_SIDE_MEDICAL "\xef\xa0\x89" // U+f809 +#define ICON_FA_HEAD_VR "\xef\x9b\xaa" // U+f6ea +#define ICON_FA_HEADING "\xef\x87\x9c" // U+f1dc +#define ICON_FA_HEADPHONES "\xef\x80\xa5" // U+f025 +#define ICON_FA_HEADPHONES_ALT "\xef\x96\x8f" // U+f58f +#define ICON_FA_HEADSET "\xef\x96\x90" // U+f590 +#define ICON_FA_HEART "\xef\x80\x84" // U+f004 +#define ICON_FA_HEART_BROKEN "\xef\x9e\xa9" // U+f7a9 +#define ICON_FA_HEART_CIRCLE "\xef\x93\x87" // U+f4c7 +#define ICON_FA_HEART_RATE "\xef\x97\xb8" // U+f5f8 +#define ICON_FA_HEART_SQUARE "\xef\x93\x88" // U+f4c8 +#define ICON_FA_HEARTBEAT "\xef\x88\x9e" // U+f21e +#define ICON_FA_HEAT "\xef\xa4\x8c" // U+f90c +#define ICON_FA_HELICOPTER "\xef\x94\xb3" // U+f533 +#define ICON_FA_HELMET_BATTLE "\xef\x9b\xab" // U+f6eb +#define ICON_FA_HEXAGON "\xef\x8c\x92" // U+f312 +#define ICON_FA_HIGHLIGHTER "\xef\x96\x91" // U+f591 +#define ICON_FA_HIKING "\xef\x9b\xac" // U+f6ec +#define ICON_FA_HIPPO "\xef\x9b\xad" // U+f6ed +#define ICON_FA_HISTORY "\xef\x87\x9a" // U+f1da +#define ICON_FA_HOCKEY_MASK "\xef\x9b\xae" // U+f6ee +#define ICON_FA_HOCKEY_PUCK "\xef\x91\x93" // U+f453 +#define ICON_FA_HOCKEY_STICKS "\xef\x91\x94" // U+f454 +#define ICON_FA_HOLLY_BERRY "\xef\x9e\xaa" // U+f7aa +#define ICON_FA_HOME "\xef\x80\x95" // U+f015 +#define ICON_FA_HOME_ALT "\xef\xa0\x8a" // U+f80a +#define ICON_FA_HOME_HEART "\xef\x93\x89" // U+f4c9 +#define ICON_FA_HOME_LG "\xef\xa0\x8b" // U+f80b +#define ICON_FA_HOME_LG_ALT "\xef\xa0\x8c" // U+f80c +#define ICON_FA_HOOD_CLOAK "\xef\x9b\xaf" // U+f6ef +#define ICON_FA_HORIZONTAL_RULE "\xef\xa1\xac" // U+f86c +#define ICON_FA_HORSE "\xef\x9b\xb0" // U+f6f0 +#define ICON_FA_HORSE_HEAD "\xef\x9e\xab" // U+f7ab +#define ICON_FA_HORSE_SADDLE "\xef\xa3\x83" // U+f8c3 +#define ICON_FA_HOSPITAL "\xef\x83\xb8" // U+f0f8 +#define ICON_FA_HOSPITAL_ALT "\xef\x91\xbd" // U+f47d +#define ICON_FA_HOSPITAL_SYMBOL "\xef\x91\xbe" // U+f47e +#define ICON_FA_HOSPITAL_USER "\xef\xa0\x8d" // U+f80d +#define ICON_FA_HOSPITALS "\xef\xa0\x8e" // U+f80e +#define ICON_FA_HOT_TUB "\xef\x96\x93" // U+f593 +#define ICON_FA_HOTDOG "\xef\xa0\x8f" // U+f80f +#define ICON_FA_HOTEL "\xef\x96\x94" // U+f594 +#define ICON_FA_HOURGLASS "\xef\x89\x94" // U+f254 +#define ICON_FA_HOURGLASS_END "\xef\x89\x93" // U+f253 +#define ICON_FA_HOURGLASS_HALF "\xef\x89\x92" // U+f252 +#define ICON_FA_HOURGLASS_START "\xef\x89\x91" // U+f251 +#define ICON_FA_HOUSE "\xef\xa4\x8d" // U+f90d +#define ICON_FA_HOUSE_DAMAGE "\xef\x9b\xb1" // U+f6f1 +#define ICON_FA_HOUSE_DAY "\xef\xa4\x8e" // U+f90e +#define ICON_FA_HOUSE_FLOOD "\xef\x9d\x8f" // U+f74f +#define ICON_FA_HOUSE_LEAVE "\xef\xa4\x8f" // U+f90f +#define ICON_FA_HOUSE_NIGHT "\xef\xa4\x90" // U+f910 +#define ICON_FA_HOUSE_RETURN "\xef\xa4\x91" // U+f911 +#define ICON_FA_HOUSE_SIGNAL "\xef\xa4\x92" // U+f912 +#define ICON_FA_HRYVNIA "\xef\x9b\xb2" // U+f6f2 +#define ICON_FA_HUMIDITY "\xef\x9d\x90" // U+f750 +#define ICON_FA_HURRICANE "\xef\x9d\x91" // U+f751 +#define ICON_FA_I_CURSOR "\xef\x89\x86" // U+f246 +#define ICON_FA_ICE_CREAM "\xef\xa0\x90" // U+f810 +#define ICON_FA_ICE_SKATE "\xef\x9e\xac" // U+f7ac +#define ICON_FA_ICICLES "\xef\x9e\xad" // U+f7ad +#define ICON_FA_ICONS "\xef\xa1\xad" // U+f86d +#define ICON_FA_ICONS_ALT "\xef\xa1\xae" // U+f86e +#define ICON_FA_ID_BADGE "\xef\x8b\x81" // U+f2c1 +#define ICON_FA_ID_CARD "\xef\x8b\x82" // U+f2c2 +#define ICON_FA_ID_CARD_ALT "\xef\x91\xbf" // U+f47f +#define ICON_FA_IGLOO "\xef\x9e\xae" // U+f7ae +#define ICON_FA_IMAGE "\xef\x80\xbe" // U+f03e +#define ICON_FA_IMAGE_POLAROID "\xef\xa3\x84" // U+f8c4 +#define ICON_FA_IMAGES "\xef\x8c\x82" // U+f302 +#define ICON_FA_INBOX "\xef\x80\x9c" // U+f01c +#define ICON_FA_INBOX_IN "\xef\x8c\x90" // U+f310 +#define ICON_FA_INBOX_OUT "\xef\x8c\x91" // U+f311 +#define ICON_FA_INDENT "\xef\x80\xbc" // U+f03c +#define ICON_FA_INDUSTRY "\xef\x89\xb5" // U+f275 +#define ICON_FA_INDUSTRY_ALT "\xef\x8e\xb3" // U+f3b3 +#define ICON_FA_INFINITY "\xef\x94\xb4" // U+f534 +#define ICON_FA_INFO "\xef\x84\xa9" // U+f129 +#define ICON_FA_INFO_CIRCLE "\xef\x81\x9a" // U+f05a +#define ICON_FA_INFO_SQUARE "\xef\x8c\x8f" // U+f30f +#define ICON_FA_INHALER "\xef\x97\xb9" // U+f5f9 +#define ICON_FA_INTEGRAL "\xef\x99\xa7" // U+f667 +#define ICON_FA_INTERSECTION "\xef\x99\xa8" // U+f668 +#define ICON_FA_INVENTORY "\xef\x92\x80" // U+f480 +#define ICON_FA_ISLAND_TROPICAL "\xef\xa0\x91" // U+f811 +#define ICON_FA_ITALIC "\xef\x80\xb3" // U+f033 +#define ICON_FA_JACK_O_LANTERN "\xef\x8c\x8e" // U+f30e +#define ICON_FA_JEDI "\xef\x99\xa9" // U+f669 +#define ICON_FA_JOINT "\xef\x96\x95" // U+f595 +#define ICON_FA_JOURNAL_WHILLS "\xef\x99\xaa" // U+f66a +#define ICON_FA_JOYSTICK "\xef\xa3\x85" // U+f8c5 +#define ICON_FA_JUG "\xef\xa3\x86" // U+f8c6 +#define ICON_FA_KAABA "\xef\x99\xab" // U+f66b +#define ICON_FA_KAZOO "\xef\xa3\x87" // U+f8c7 +#define ICON_FA_KERNING "\xef\xa1\xaf" // U+f86f +#define ICON_FA_KEY "\xef\x82\x84" // U+f084 +#define ICON_FA_KEY_SKELETON "\xef\x9b\xb3" // U+f6f3 +#define ICON_FA_KEYBOARD "\xef\x84\x9c" // U+f11c +#define ICON_FA_KEYNOTE "\xef\x99\xac" // U+f66c +#define ICON_FA_KHANDA "\xef\x99\xad" // U+f66d +#define ICON_FA_KIDNEYS "\xef\x97\xbb" // U+f5fb +#define ICON_FA_KISS "\xef\x96\x96" // U+f596 +#define ICON_FA_KISS_BEAM "\xef\x96\x97" // U+f597 +#define ICON_FA_KISS_WINK_HEART "\xef\x96\x98" // U+f598 +#define ICON_FA_KITE "\xef\x9b\xb4" // U+f6f4 +#define ICON_FA_KIWI_BIRD "\xef\x94\xb5" // U+f535 +#define ICON_FA_KNIFE_KITCHEN "\xef\x9b\xb5" // U+f6f5 +#define ICON_FA_LAMBDA "\xef\x99\xae" // U+f66e +#define ICON_FA_LAMP "\xef\x93\x8a" // U+f4ca +#define ICON_FA_LAMP_DESK "\xef\xa4\x94" // U+f914 +#define ICON_FA_LAMP_FLOOR "\xef\xa4\x95" // U+f915 +#define ICON_FA_LANDMARK "\xef\x99\xaf" // U+f66f +#define ICON_FA_LANDMARK_ALT "\xef\x9d\x92" // U+f752 +#define ICON_FA_LANGUAGE "\xef\x86\xab" // U+f1ab +#define ICON_FA_LAPTOP "\xef\x84\x89" // U+f109 +#define ICON_FA_LAPTOP_CODE "\xef\x97\xbc" // U+f5fc +#define ICON_FA_LAPTOP_MEDICAL "\xef\xa0\x92" // U+f812 +#define ICON_FA_LASSO "\xef\xa3\x88" // U+f8c8 +#define ICON_FA_LAUGH "\xef\x96\x99" // U+f599 +#define ICON_FA_LAUGH_BEAM "\xef\x96\x9a" // U+f59a +#define ICON_FA_LAUGH_SQUINT "\xef\x96\x9b" // U+f59b +#define ICON_FA_LAUGH_WINK "\xef\x96\x9c" // U+f59c +#define ICON_FA_LAYER_GROUP "\xef\x97\xbd" // U+f5fd +#define ICON_FA_LAYER_MINUS "\xef\x97\xbe" // U+f5fe +#define ICON_FA_LAYER_PLUS "\xef\x97\xbf" // U+f5ff +#define ICON_FA_LEAF "\xef\x81\xac" // U+f06c +#define ICON_FA_LEAF_HEART "\xef\x93\x8b" // U+f4cb +#define ICON_FA_LEAF_MAPLE "\xef\x9b\xb6" // U+f6f6 +#define ICON_FA_LEAF_OAK "\xef\x9b\xb7" // U+f6f7 +#define ICON_FA_LEMON "\xef\x82\x94" // U+f094 +#define ICON_FA_LESS_THAN "\xef\x94\xb6" // U+f536 +#define ICON_FA_LESS_THAN_EQUAL "\xef\x94\xb7" // U+f537 +#define ICON_FA_LEVEL_DOWN "\xef\x85\x89" // U+f149 +#define ICON_FA_LEVEL_DOWN_ALT "\xef\x8e\xbe" // U+f3be +#define ICON_FA_LEVEL_UP "\xef\x85\x88" // U+f148 +#define ICON_FA_LEVEL_UP_ALT "\xef\x8e\xbf" // U+f3bf +#define ICON_FA_LIFE_RING "\xef\x87\x8d" // U+f1cd +#define ICON_FA_LIGHT_CEILING "\xef\xa4\x96" // U+f916 +#define ICON_FA_LIGHT_SWITCH "\xef\xa4\x97" // U+f917 +#define ICON_FA_LIGHT_SWITCH_OFF "\xef\xa4\x98" // U+f918 +#define ICON_FA_LIGHT_SWITCH_ON "\xef\xa4\x99" // U+f919 +#define ICON_FA_LIGHTBULB "\xef\x83\xab" // U+f0eb +#define ICON_FA_LIGHTBULB_DOLLAR "\xef\x99\xb0" // U+f670 +#define ICON_FA_LIGHTBULB_EXCLAMATION "\xef\x99\xb1" // U+f671 +#define ICON_FA_LIGHTBULB_ON "\xef\x99\xb2" // U+f672 +#define ICON_FA_LIGHTBULB_SLASH "\xef\x99\xb3" // U+f673 +#define ICON_FA_LIGHTS_HOLIDAY "\xef\x9e\xb2" // U+f7b2 +#define ICON_FA_LINE_COLUMNS "\xef\xa1\xb0" // U+f870 +#define ICON_FA_LINE_HEIGHT "\xef\xa1\xb1" // U+f871 +#define ICON_FA_LINK "\xef\x83\x81" // U+f0c1 +#define ICON_FA_LIPS "\xef\x98\x80" // U+f600 +#define ICON_FA_LIRA_SIGN "\xef\x86\x95" // U+f195 +#define ICON_FA_LIST "\xef\x80\xba" // U+f03a +#define ICON_FA_LIST_ALT "\xef\x80\xa2" // U+f022 +#define ICON_FA_LIST_MUSIC "\xef\xa3\x89" // U+f8c9 +#define ICON_FA_LIST_OL "\xef\x83\x8b" // U+f0cb +#define ICON_FA_LIST_UL "\xef\x83\x8a" // U+f0ca +#define ICON_FA_LOCATION "\xef\x98\x81" // U+f601 +#define ICON_FA_LOCATION_ARROW "\xef\x84\xa4" // U+f124 +#define ICON_FA_LOCATION_CIRCLE "\xef\x98\x82" // U+f602 +#define ICON_FA_LOCATION_SLASH "\xef\x98\x83" // U+f603 +#define ICON_FA_LOCK "\xef\x80\xa3" // U+f023 +#define ICON_FA_LOCK_ALT "\xef\x8c\x8d" // U+f30d +#define ICON_FA_LOCK_OPEN "\xef\x8f\x81" // U+f3c1 +#define ICON_FA_LOCK_OPEN_ALT "\xef\x8f\x82" // U+f3c2 +#define ICON_FA_LONG_ARROW_ALT_DOWN "\xef\x8c\x89" // U+f309 +#define ICON_FA_LONG_ARROW_ALT_LEFT "\xef\x8c\x8a" // U+f30a +#define ICON_FA_LONG_ARROW_ALT_RIGHT "\xef\x8c\x8b" // U+f30b +#define ICON_FA_LONG_ARROW_ALT_UP "\xef\x8c\x8c" // U+f30c +#define ICON_FA_LONG_ARROW_DOWN "\xef\x85\xb5" // U+f175 +#define ICON_FA_LONG_ARROW_LEFT "\xef\x85\xb7" // U+f177 +#define ICON_FA_LONG_ARROW_RIGHT "\xef\x85\xb8" // U+f178 +#define ICON_FA_LONG_ARROW_UP "\xef\x85\xb6" // U+f176 +#define ICON_FA_LOVESEAT "\xef\x93\x8c" // U+f4cc +#define ICON_FA_LOW_VISION "\xef\x8a\xa8" // U+f2a8 +#define ICON_FA_LUCHADOR "\xef\x91\x95" // U+f455 +#define ICON_FA_LUGGAGE_CART "\xef\x96\x9d" // U+f59d +#define ICON_FA_LUNGS "\xef\x98\x84" // U+f604 +#define ICON_FA_MACE "\xef\x9b\xb8" // U+f6f8 +#define ICON_FA_MAGIC "\xef\x83\x90" // U+f0d0 +#define ICON_FA_MAGNET "\xef\x81\xb6" // U+f076 +#define ICON_FA_MAIL_BULK "\xef\x99\xb4" // U+f674 +#define ICON_FA_MAILBOX "\xef\xa0\x93" // U+f813 +#define ICON_FA_MALE "\xef\x86\x83" // U+f183 +#define ICON_FA_MANDOLIN "\xef\x9b\xb9" // U+f6f9 +#define ICON_FA_MAP "\xef\x89\xb9" // U+f279 +#define ICON_FA_MAP_MARKED "\xef\x96\x9f" // U+f59f +#define ICON_FA_MAP_MARKED_ALT "\xef\x96\xa0" // U+f5a0 +#define ICON_FA_MAP_MARKER "\xef\x81\x81" // U+f041 +#define ICON_FA_MAP_MARKER_ALT "\xef\x8f\x85" // U+f3c5 +#define ICON_FA_MAP_MARKER_ALT_SLASH "\xef\x98\x85" // U+f605 +#define ICON_FA_MAP_MARKER_CHECK "\xef\x98\x86" // U+f606 +#define ICON_FA_MAP_MARKER_EDIT "\xef\x98\x87" // U+f607 +#define ICON_FA_MAP_MARKER_EXCLAMATION "\xef\x98\x88" // U+f608 +#define ICON_FA_MAP_MARKER_MINUS "\xef\x98\x89" // U+f609 +#define ICON_FA_MAP_MARKER_PLUS "\xef\x98\x8a" // U+f60a +#define ICON_FA_MAP_MARKER_QUESTION "\xef\x98\x8b" // U+f60b +#define ICON_FA_MAP_MARKER_SLASH "\xef\x98\x8c" // U+f60c +#define ICON_FA_MAP_MARKER_SMILE "\xef\x98\x8d" // U+f60d +#define ICON_FA_MAP_MARKER_TIMES "\xef\x98\x8e" // U+f60e +#define ICON_FA_MAP_PIN "\xef\x89\xb6" // U+f276 +#define ICON_FA_MAP_SIGNS "\xef\x89\xb7" // U+f277 +#define ICON_FA_MARKER "\xef\x96\xa1" // U+f5a1 +#define ICON_FA_MARS "\xef\x88\xa2" // U+f222 +#define ICON_FA_MARS_DOUBLE "\xef\x88\xa7" // U+f227 +#define ICON_FA_MARS_STROKE "\xef\x88\xa9" // U+f229 +#define ICON_FA_MARS_STROKE_H "\xef\x88\xab" // U+f22b +#define ICON_FA_MARS_STROKE_V "\xef\x88\xaa" // U+f22a +#define ICON_FA_MASK "\xef\x9b\xba" // U+f6fa +#define ICON_FA_MEAT "\xef\xa0\x94" // U+f814 +#define ICON_FA_MEDAL "\xef\x96\xa2" // U+f5a2 +#define ICON_FA_MEDKIT "\xef\x83\xba" // U+f0fa +#define ICON_FA_MEGAPHONE "\xef\x99\xb5" // U+f675 +#define ICON_FA_MEH "\xef\x84\x9a" // U+f11a +#define ICON_FA_MEH_BLANK "\xef\x96\xa4" // U+f5a4 +#define ICON_FA_MEH_ROLLING_EYES "\xef\x96\xa5" // U+f5a5 +#define ICON_FA_MEMORY "\xef\x94\xb8" // U+f538 +#define ICON_FA_MENORAH "\xef\x99\xb6" // U+f676 +#define ICON_FA_MERCURY "\xef\x88\xa3" // U+f223 +#define ICON_FA_METEOR "\xef\x9d\x93" // U+f753 +#define ICON_FA_MICROCHIP "\xef\x8b\x9b" // U+f2db +#define ICON_FA_MICROPHONE "\xef\x84\xb0" // U+f130 +#define ICON_FA_MICROPHONE_ALT "\xef\x8f\x89" // U+f3c9 +#define ICON_FA_MICROPHONE_ALT_SLASH "\xef\x94\xb9" // U+f539 +#define ICON_FA_MICROPHONE_SLASH "\xef\x84\xb1" // U+f131 +#define ICON_FA_MICROPHONE_STAND "\xef\xa3\x8b" // U+f8cb +#define ICON_FA_MICROSCOPE "\xef\x98\x90" // U+f610 +#define ICON_FA_MICROWAVE "\xef\xa4\x9b" // U+f91b +#define ICON_FA_MIND_SHARE "\xef\x99\xb7" // U+f677 +#define ICON_FA_MINUS "\xef\x81\xa8" // U+f068 +#define ICON_FA_MINUS_CIRCLE "\xef\x81\x96" // U+f056 +#define ICON_FA_MINUS_HEXAGON "\xef\x8c\x87" // U+f307 +#define ICON_FA_MINUS_OCTAGON "\xef\x8c\x88" // U+f308 +#define ICON_FA_MINUS_SQUARE "\xef\x85\x86" // U+f146 +#define ICON_FA_MISTLETOE "\xef\x9e\xb4" // U+f7b4 +#define ICON_FA_MITTEN "\xef\x9e\xb5" // U+f7b5 +#define ICON_FA_MOBILE "\xef\x84\x8b" // U+f10b +#define ICON_FA_MOBILE_ALT "\xef\x8f\x8d" // U+f3cd +#define ICON_FA_MOBILE_ANDROID "\xef\x8f\x8e" // U+f3ce +#define ICON_FA_MOBILE_ANDROID_ALT "\xef\x8f\x8f" // U+f3cf +#define ICON_FA_MONEY_BILL "\xef\x83\x96" // U+f0d6 +#define ICON_FA_MONEY_BILL_ALT "\xef\x8f\x91" // U+f3d1 +#define ICON_FA_MONEY_BILL_WAVE "\xef\x94\xba" // U+f53a +#define ICON_FA_MONEY_BILL_WAVE_ALT "\xef\x94\xbb" // U+f53b +#define ICON_FA_MONEY_CHECK "\xef\x94\xbc" // U+f53c +#define ICON_FA_MONEY_CHECK_ALT "\xef\x94\xbd" // U+f53d +#define ICON_FA_MONEY_CHECK_EDIT "\xef\xa1\xb2" // U+f872 +#define ICON_FA_MONEY_CHECK_EDIT_ALT "\xef\xa1\xb3" // U+f873 +#define ICON_FA_MONITOR_HEART_RATE "\xef\x98\x91" // U+f611 +#define ICON_FA_MONKEY "\xef\x9b\xbb" // U+f6fb +#define ICON_FA_MONUMENT "\xef\x96\xa6" // U+f5a6 +#define ICON_FA_MOON "\xef\x86\x86" // U+f186 +#define ICON_FA_MOON_CLOUD "\xef\x9d\x94" // U+f754 +#define ICON_FA_MOON_STARS "\xef\x9d\x95" // U+f755 +#define ICON_FA_MORTAR_PESTLE "\xef\x96\xa7" // U+f5a7 +#define ICON_FA_MOSQUE "\xef\x99\xb8" // U+f678 +#define ICON_FA_MOTORCYCLE "\xef\x88\x9c" // U+f21c +#define ICON_FA_MOUNTAIN "\xef\x9b\xbc" // U+f6fc +#define ICON_FA_MOUNTAINS "\xef\x9b\xbd" // U+f6fd +#define ICON_FA_MOUSE "\xef\xa3\x8c" // U+f8cc +#define ICON_FA_MOUSE_ALT "\xef\xa3\x8d" // U+f8cd +#define ICON_FA_MOUSE_POINTER "\xef\x89\x85" // U+f245 +#define ICON_FA_MP3_PLAYER "\xef\xa3\x8e" // U+f8ce +#define ICON_FA_MUG "\xef\xa1\xb4" // U+f874 +#define ICON_FA_MUG_HOT "\xef\x9e\xb6" // U+f7b6 +#define ICON_FA_MUG_MARSHMALLOWS "\xef\x9e\xb7" // U+f7b7 +#define ICON_FA_MUG_TEA "\xef\xa1\xb5" // U+f875 +#define ICON_FA_MUSIC "\xef\x80\x81" // U+f001 +#define ICON_FA_MUSIC_ALT "\xef\xa3\x8f" // U+f8cf +#define ICON_FA_MUSIC_ALT_SLASH "\xef\xa3\x90" // U+f8d0 +#define ICON_FA_MUSIC_SLASH "\xef\xa3\x91" // U+f8d1 +#define ICON_FA_NARWHAL "\xef\x9b\xbe" // U+f6fe +#define ICON_FA_NETWORK_WIRED "\xef\x9b\xbf" // U+f6ff +#define ICON_FA_NEUTER "\xef\x88\xac" // U+f22c +#define ICON_FA_NEWSPAPER "\xef\x87\xaa" // U+f1ea +#define ICON_FA_NOT_EQUAL "\xef\x94\xbe" // U+f53e +#define ICON_FA_NOTES_MEDICAL "\xef\x92\x81" // U+f481 +#define ICON_FA_OBJECT_GROUP "\xef\x89\x87" // U+f247 +#define ICON_FA_OBJECT_UNGROUP "\xef\x89\x88" // U+f248 +#define ICON_FA_OCTAGON "\xef\x8c\x86" // U+f306 +#define ICON_FA_OIL_CAN "\xef\x98\x93" // U+f613 +#define ICON_FA_OIL_TEMP "\xef\x98\x94" // U+f614 +#define ICON_FA_OM "\xef\x99\xb9" // U+f679 +#define ICON_FA_OMEGA "\xef\x99\xba" // U+f67a +#define ICON_FA_ORNAMENT "\xef\x9e\xb8" // U+f7b8 +#define ICON_FA_OTTER "\xef\x9c\x80" // U+f700 +#define ICON_FA_OUTDENT "\xef\x80\xbb" // U+f03b +#define ICON_FA_OUTLET "\xef\xa4\x9c" // U+f91c +#define ICON_FA_OVEN "\xef\xa4\x9d" // U+f91d +#define ICON_FA_OVERLINE "\xef\xa1\xb6" // U+f876 +#define ICON_FA_PAGE_BREAK "\xef\xa1\xb7" // U+f877 +#define ICON_FA_PAGER "\xef\xa0\x95" // U+f815 +#define ICON_FA_PAINT_BRUSH "\xef\x87\xbc" // U+f1fc +#define ICON_FA_PAINT_BRUSH_ALT "\xef\x96\xa9" // U+f5a9 +#define ICON_FA_PAINT_ROLLER "\xef\x96\xaa" // U+f5aa +#define ICON_FA_PALETTE "\xef\x94\xbf" // U+f53f +#define ICON_FA_PALLET "\xef\x92\x82" // U+f482 +#define ICON_FA_PALLET_ALT "\xef\x92\x83" // U+f483 +#define ICON_FA_PAPER_PLANE "\xef\x87\x98" // U+f1d8 +#define ICON_FA_PAPERCLIP "\xef\x83\x86" // U+f0c6 +#define ICON_FA_PARACHUTE_BOX "\xef\x93\x8d" // U+f4cd +#define ICON_FA_PARAGRAPH "\xef\x87\x9d" // U+f1dd +#define ICON_FA_PARAGRAPH_RTL "\xef\xa1\xb8" // U+f878 +#define ICON_FA_PARKING "\xef\x95\x80" // U+f540 +#define ICON_FA_PARKING_CIRCLE "\xef\x98\x95" // U+f615 +#define ICON_FA_PARKING_CIRCLE_SLASH "\xef\x98\x96" // U+f616 +#define ICON_FA_PARKING_SLASH "\xef\x98\x97" // U+f617 +#define ICON_FA_PASSPORT "\xef\x96\xab" // U+f5ab +#define ICON_FA_PASTAFARIANISM "\xef\x99\xbb" // U+f67b +#define ICON_FA_PASTE "\xef\x83\xaa" // U+f0ea +#define ICON_FA_PAUSE "\xef\x81\x8c" // U+f04c +#define ICON_FA_PAUSE_CIRCLE "\xef\x8a\x8b" // U+f28b +#define ICON_FA_PAW "\xef\x86\xb0" // U+f1b0 +#define ICON_FA_PAW_ALT "\xef\x9c\x81" // U+f701 +#define ICON_FA_PAW_CLAWS "\xef\x9c\x82" // U+f702 +#define ICON_FA_PEACE "\xef\x99\xbc" // U+f67c +#define ICON_FA_PEGASUS "\xef\x9c\x83" // U+f703 +#define ICON_FA_PEN "\xef\x8c\x84" // U+f304 +#define ICON_FA_PEN_ALT "\xef\x8c\x85" // U+f305 +#define ICON_FA_PEN_FANCY "\xef\x96\xac" // U+f5ac +#define ICON_FA_PEN_NIB "\xef\x96\xad" // U+f5ad +#define ICON_FA_PEN_SQUARE "\xef\x85\x8b" // U+f14b +#define ICON_FA_PENCIL "\xef\x81\x80" // U+f040 +#define ICON_FA_PENCIL_ALT "\xef\x8c\x83" // U+f303 +#define ICON_FA_PENCIL_PAINTBRUSH "\xef\x98\x98" // U+f618 +#define ICON_FA_PENCIL_RULER "\xef\x96\xae" // U+f5ae +#define ICON_FA_PENNANT "\xef\x91\x96" // U+f456 +#define ICON_FA_PEOPLE_CARRY "\xef\x93\x8e" // U+f4ce +#define ICON_FA_PEPPER_HOT "\xef\xa0\x96" // U+f816 +#define ICON_FA_PERCENT "\xef\x8a\x95" // U+f295 +#define ICON_FA_PERCENTAGE "\xef\x95\x81" // U+f541 +#define ICON_FA_PERSON_BOOTH "\xef\x9d\x96" // U+f756 +#define ICON_FA_PERSON_CARRY "\xef\x93\x8f" // U+f4cf +#define ICON_FA_PERSON_DOLLY "\xef\x93\x90" // U+f4d0 +#define ICON_FA_PERSON_DOLLY_EMPTY "\xef\x93\x91" // U+f4d1 +#define ICON_FA_PERSON_SIGN "\xef\x9d\x97" // U+f757 +#define ICON_FA_PHONE "\xef\x82\x95" // U+f095 +#define ICON_FA_PHONE_ALT "\xef\xa1\xb9" // U+f879 +#define ICON_FA_PHONE_LAPTOP "\xef\xa1\xba" // U+f87a +#define ICON_FA_PHONE_OFFICE "\xef\x99\xbd" // U+f67d +#define ICON_FA_PHONE_PLUS "\xef\x93\x92" // U+f4d2 +#define ICON_FA_PHONE_ROTARY "\xef\xa3\x93" // U+f8d3 +#define ICON_FA_PHONE_SLASH "\xef\x8f\x9d" // U+f3dd +#define ICON_FA_PHONE_SQUARE "\xef\x82\x98" // U+f098 +#define ICON_FA_PHONE_SQUARE_ALT "\xef\xa1\xbb" // U+f87b +#define ICON_FA_PHONE_VOLUME "\xef\x8a\xa0" // U+f2a0 +#define ICON_FA_PHOTO_VIDEO "\xef\xa1\xbc" // U+f87c +#define ICON_FA_PI "\xef\x99\xbe" // U+f67e +#define ICON_FA_PIANO "\xef\xa3\x94" // U+f8d4 +#define ICON_FA_PIANO_KEYBOARD "\xef\xa3\x95" // U+f8d5 +#define ICON_FA_PIE "\xef\x9c\x85" // U+f705 +#define ICON_FA_PIG "\xef\x9c\x86" // U+f706 +#define ICON_FA_PIGGY_BANK "\xef\x93\x93" // U+f4d3 +#define ICON_FA_PILLS "\xef\x92\x84" // U+f484 +#define ICON_FA_PIZZA "\xef\xa0\x97" // U+f817 +#define ICON_FA_PIZZA_SLICE "\xef\xa0\x98" // U+f818 +#define ICON_FA_PLACE_OF_WORSHIP "\xef\x99\xbf" // U+f67f +#define ICON_FA_PLANE "\xef\x81\xb2" // U+f072 +#define ICON_FA_PLANE_ALT "\xef\x8f\x9e" // U+f3de +#define ICON_FA_PLANE_ARRIVAL "\xef\x96\xaf" // U+f5af +#define ICON_FA_PLANE_DEPARTURE "\xef\x96\xb0" // U+f5b0 +#define ICON_FA_PLANET_MOON "\xef\xa4\x9f" // U+f91f +#define ICON_FA_PLANET_RINGED "\xef\xa4\xa0" // U+f920 +#define ICON_FA_PLAY "\xef\x81\x8b" // U+f04b +#define ICON_FA_PLAY_CIRCLE "\xef\x85\x84" // U+f144 +#define ICON_FA_PLUG "\xef\x87\xa6" // U+f1e6 +#define ICON_FA_PLUS "\xef\x81\xa7" // U+f067 +#define ICON_FA_PLUS_CIRCLE "\xef\x81\x95" // U+f055 +#define ICON_FA_PLUS_HEXAGON "\xef\x8c\x80" // U+f300 +#define ICON_FA_PLUS_OCTAGON "\xef\x8c\x81" // U+f301 +#define ICON_FA_PLUS_SQUARE "\xef\x83\xbe" // U+f0fe +#define ICON_FA_PODCAST "\xef\x8b\x8e" // U+f2ce +#define ICON_FA_PODIUM "\xef\x9a\x80" // U+f680 +#define ICON_FA_PODIUM_STAR "\xef\x9d\x98" // U+f758 +#define ICON_FA_POLICE_BOX "\xef\xa4\xa1" // U+f921 +#define ICON_FA_POLL "\xef\x9a\x81" // U+f681 +#define ICON_FA_POLL_H "\xef\x9a\x82" // U+f682 +#define ICON_FA_POLL_PEOPLE "\xef\x9d\x99" // U+f759 +#define ICON_FA_POO "\xef\x8b\xbe" // U+f2fe +#define ICON_FA_POO_STORM "\xef\x9d\x9a" // U+f75a +#define ICON_FA_POOP "\xef\x98\x99" // U+f619 +#define ICON_FA_POPCORN "\xef\xa0\x99" // U+f819 +#define ICON_FA_PORTAL_ENTER "\xef\xa4\xa2" // U+f922 +#define ICON_FA_PORTAL_EXIT "\xef\xa4\xa3" // U+f923 +#define ICON_FA_PORTRAIT "\xef\x8f\xa0" // U+f3e0 +#define ICON_FA_POUND_SIGN "\xef\x85\x94" // U+f154 +#define ICON_FA_POWER_OFF "\xef\x80\x91" // U+f011 +#define ICON_FA_PRAY "\xef\x9a\x83" // U+f683 +#define ICON_FA_PRAYING_HANDS "\xef\x9a\x84" // U+f684 +#define ICON_FA_PRESCRIPTION "\xef\x96\xb1" // U+f5b1 +#define ICON_FA_PRESCRIPTION_BOTTLE "\xef\x92\x85" // U+f485 +#define ICON_FA_PRESCRIPTION_BOTTLE_ALT "\xef\x92\x86" // U+f486 +#define ICON_FA_PRESENTATION "\xef\x9a\x85" // U+f685 +#define ICON_FA_PRINT "\xef\x80\xaf" // U+f02f +#define ICON_FA_PRINT_SEARCH "\xef\xa0\x9a" // U+f81a +#define ICON_FA_PRINT_SLASH "\xef\x9a\x86" // U+f686 +#define ICON_FA_PROCEDURES "\xef\x92\x87" // U+f487 +#define ICON_FA_PROJECT_DIAGRAM "\xef\x95\x82" // U+f542 +#define ICON_FA_PROJECTOR "\xef\xa3\x96" // U+f8d6 +#define ICON_FA_PUMPKIN "\xef\x9c\x87" // U+f707 +#define ICON_FA_PUZZLE_PIECE "\xef\x84\xae" // U+f12e +#define ICON_FA_QRCODE "\xef\x80\xa9" // U+f029 +#define ICON_FA_QUESTION "\xef\x84\xa8" // U+f128 +#define ICON_FA_QUESTION_CIRCLE "\xef\x81\x99" // U+f059 +#define ICON_FA_QUESTION_SQUARE "\xef\x8b\xbd" // U+f2fd +#define ICON_FA_QUIDDITCH "\xef\x91\x98" // U+f458 +#define ICON_FA_QUOTE_LEFT "\xef\x84\x8d" // U+f10d +#define ICON_FA_QUOTE_RIGHT "\xef\x84\x8e" // U+f10e +#define ICON_FA_QURAN "\xef\x9a\x87" // U+f687 +#define ICON_FA_RABBIT "\xef\x9c\x88" // U+f708 +#define ICON_FA_RABBIT_FAST "\xef\x9c\x89" // U+f709 +#define ICON_FA_RACQUET "\xef\x91\x9a" // U+f45a +#define ICON_FA_RADAR "\xef\xa4\xa4" // U+f924 +#define ICON_FA_RADIATION "\xef\x9e\xb9" // U+f7b9 +#define ICON_FA_RADIATION_ALT "\xef\x9e\xba" // U+f7ba +#define ICON_FA_RADIO "\xef\xa3\x97" // U+f8d7 +#define ICON_FA_RADIO_ALT "\xef\xa3\x98" // U+f8d8 +#define ICON_FA_RAINBOW "\xef\x9d\x9b" // U+f75b +#define ICON_FA_RAINDROPS "\xef\x9d\x9c" // U+f75c +#define ICON_FA_RAM "\xef\x9c\x8a" // U+f70a +#define ICON_FA_RAMP_LOADING "\xef\x93\x94" // U+f4d4 +#define ICON_FA_RANDOM "\xef\x81\xb4" // U+f074 +#define ICON_FA_RAYGUN "\xef\xa4\xa5" // U+f925 +#define ICON_FA_RECEIPT "\xef\x95\x83" // U+f543 +#define ICON_FA_RECORD_VINYL "\xef\xa3\x99" // U+f8d9 +#define ICON_FA_RECTANGLE_LANDSCAPE "\xef\x8b\xba" // U+f2fa +#define ICON_FA_RECTANGLE_PORTRAIT "\xef\x8b\xbb" // U+f2fb +#define ICON_FA_RECTANGLE_WIDE "\xef\x8b\xbc" // U+f2fc +#define ICON_FA_RECYCLE "\xef\x86\xb8" // U+f1b8 +#define ICON_FA_REDO "\xef\x80\x9e" // U+f01e +#define ICON_FA_REDO_ALT "\xef\x8b\xb9" // U+f2f9 +#define ICON_FA_REFRIGERATOR "\xef\xa4\xa6" // U+f926 +#define ICON_FA_REGISTERED "\xef\x89\x9d" // U+f25d +#define ICON_FA_REMOVE_FORMAT "\xef\xa1\xbd" // U+f87d +#define ICON_FA_REPEAT "\xef\x8d\xa3" // U+f363 +#define ICON_FA_REPEAT_1 "\xef\x8d\xa5" // U+f365 +#define ICON_FA_REPEAT_1_ALT "\xef\x8d\xa6" // U+f366 +#define ICON_FA_REPEAT_ALT "\xef\x8d\xa4" // U+f364 +#define ICON_FA_REPLY "\xef\x8f\xa5" // U+f3e5 +#define ICON_FA_REPLY_ALL "\xef\x84\xa2" // U+f122 +#define ICON_FA_REPUBLICAN "\xef\x9d\x9e" // U+f75e +#define ICON_FA_RESTROOM "\xef\x9e\xbd" // U+f7bd +#define ICON_FA_RETWEET "\xef\x81\xb9" // U+f079 +#define ICON_FA_RETWEET_ALT "\xef\x8d\xa1" // U+f361 +#define ICON_FA_RIBBON "\xef\x93\x96" // U+f4d6 +#define ICON_FA_RING "\xef\x9c\x8b" // U+f70b +#define ICON_FA_RINGS_WEDDING "\xef\xa0\x9b" // U+f81b +#define ICON_FA_ROAD "\xef\x80\x98" // U+f018 +#define ICON_FA_ROBOT "\xef\x95\x84" // U+f544 +#define ICON_FA_ROCKET "\xef\x84\xb5" // U+f135 +#define ICON_FA_ROCKET_LAUNCH "\xef\xa4\xa7" // U+f927 +#define ICON_FA_ROUTE "\xef\x93\x97" // U+f4d7 +#define ICON_FA_ROUTE_HIGHWAY "\xef\x98\x9a" // U+f61a +#define ICON_FA_ROUTE_INTERSTATE "\xef\x98\x9b" // U+f61b +#define ICON_FA_ROUTER "\xef\xa3\x9a" // U+f8da +#define ICON_FA_RSS "\xef\x82\x9e" // U+f09e +#define ICON_FA_RSS_SQUARE "\xef\x85\x83" // U+f143 +#define ICON_FA_RUBLE_SIGN "\xef\x85\x98" // U+f158 +#define ICON_FA_RULER "\xef\x95\x85" // U+f545 +#define ICON_FA_RULER_COMBINED "\xef\x95\x86" // U+f546 +#define ICON_FA_RULER_HORIZONTAL "\xef\x95\x87" // U+f547 +#define ICON_FA_RULER_TRIANGLE "\xef\x98\x9c" // U+f61c +#define ICON_FA_RULER_VERTICAL "\xef\x95\x88" // U+f548 +#define ICON_FA_RUNNING "\xef\x9c\x8c" // U+f70c +#define ICON_FA_RUPEE_SIGN "\xef\x85\x96" // U+f156 +#define ICON_FA_RV "\xef\x9e\xbe" // U+f7be +#define ICON_FA_SACK "\xef\xa0\x9c" // U+f81c +#define ICON_FA_SACK_DOLLAR "\xef\xa0\x9d" // U+f81d +#define ICON_FA_SAD_CRY "\xef\x96\xb3" // U+f5b3 +#define ICON_FA_SAD_TEAR "\xef\x96\xb4" // U+f5b4 +#define ICON_FA_SALAD "\xef\xa0\x9e" // U+f81e +#define ICON_FA_SANDWICH "\xef\xa0\x9f" // U+f81f +#define ICON_FA_SATELLITE "\xef\x9e\xbf" // U+f7bf +#define ICON_FA_SATELLITE_DISH "\xef\x9f\x80" // U+f7c0 +#define ICON_FA_SAUSAGE "\xef\xa0\xa0" // U+f820 +#define ICON_FA_SAVE "\xef\x83\x87" // U+f0c7 +#define ICON_FA_SAX_HOT "\xef\xa3\x9b" // U+f8db +#define ICON_FA_SAXOPHONE "\xef\xa3\x9c" // U+f8dc +#define ICON_FA_SCALPEL "\xef\x98\x9d" // U+f61d +#define ICON_FA_SCALPEL_PATH "\xef\x98\x9e" // U+f61e +#define ICON_FA_SCANNER "\xef\x92\x88" // U+f488 +#define ICON_FA_SCANNER_IMAGE "\xef\xa3\xb3" // U+f8f3 +#define ICON_FA_SCANNER_KEYBOARD "\xef\x92\x89" // U+f489 +#define ICON_FA_SCANNER_TOUCHSCREEN "\xef\x92\x8a" // U+f48a +#define ICON_FA_SCARECROW "\xef\x9c\x8d" // U+f70d +#define ICON_FA_SCARF "\xef\x9f\x81" // U+f7c1 +#define ICON_FA_SCHOOL "\xef\x95\x89" // U+f549 +#define ICON_FA_SCREWDRIVER "\xef\x95\x8a" // U+f54a +#define ICON_FA_SCROLL "\xef\x9c\x8e" // U+f70e +#define ICON_FA_SCROLL_OLD "\xef\x9c\x8f" // U+f70f +#define ICON_FA_SCRUBBER "\xef\x8b\xb8" // U+f2f8 +#define ICON_FA_SCYTHE "\xef\x9c\x90" // U+f710 +#define ICON_FA_SD_CARD "\xef\x9f\x82" // U+f7c2 +#define ICON_FA_SEARCH "\xef\x80\x82" // U+f002 +#define ICON_FA_SEARCH_DOLLAR "\xef\x9a\x88" // U+f688 +#define ICON_FA_SEARCH_LOCATION "\xef\x9a\x89" // U+f689 +#define ICON_FA_SEARCH_MINUS "\xef\x80\x90" // U+f010 +#define ICON_FA_SEARCH_PLUS "\xef\x80\x8e" // U+f00e +#define ICON_FA_SEEDLING "\xef\x93\x98" // U+f4d8 +#define ICON_FA_SEND_BACK "\xef\xa1\xbe" // U+f87e +#define ICON_FA_SEND_BACKWARD "\xef\xa1\xbf" // U+f87f +#define ICON_FA_SENSOR "\xef\xa4\xa8" // U+f928 +#define ICON_FA_SENSOR_ALERT "\xef\xa4\xa9" // U+f929 +#define ICON_FA_SENSOR_FIRE "\xef\xa4\xaa" // U+f92a +#define ICON_FA_SENSOR_ON "\xef\xa4\xab" // U+f92b +#define ICON_FA_SENSOR_SMOKE "\xef\xa4\xac" // U+f92c +#define ICON_FA_SERVER "\xef\x88\xb3" // U+f233 +#define ICON_FA_SHAPES "\xef\x98\x9f" // U+f61f +#define ICON_FA_SHARE "\xef\x81\xa4" // U+f064 +#define ICON_FA_SHARE_ALL "\xef\x8d\xa7" // U+f367 +#define ICON_FA_SHARE_ALT "\xef\x87\xa0" // U+f1e0 +#define ICON_FA_SHARE_ALT_SQUARE "\xef\x87\xa1" // U+f1e1 +#define ICON_FA_SHARE_SQUARE "\xef\x85\x8d" // U+f14d +#define ICON_FA_SHEEP "\xef\x9c\x91" // U+f711 +#define ICON_FA_SHEKEL_SIGN "\xef\x88\x8b" // U+f20b +#define ICON_FA_SHIELD "\xef\x84\xb2" // U+f132 +#define ICON_FA_SHIELD_ALT "\xef\x8f\xad" // U+f3ed +#define ICON_FA_SHIELD_CHECK "\xef\x8b\xb7" // U+f2f7 +#define ICON_FA_SHIELD_CROSS "\xef\x9c\x92" // U+f712 +#define ICON_FA_SHIP "\xef\x88\x9a" // U+f21a +#define ICON_FA_SHIPPING_FAST "\xef\x92\x8b" // U+f48b +#define ICON_FA_SHIPPING_TIMED "\xef\x92\x8c" // U+f48c +#define ICON_FA_SHISH_KEBAB "\xef\xa0\xa1" // U+f821 +#define ICON_FA_SHOE_PRINTS "\xef\x95\x8b" // U+f54b +#define ICON_FA_SHOPPING_BAG "\xef\x8a\x90" // U+f290 +#define ICON_FA_SHOPPING_BASKET "\xef\x8a\x91" // U+f291 +#define ICON_FA_SHOPPING_CART "\xef\x81\xba" // U+f07a +#define ICON_FA_SHOVEL "\xef\x9c\x93" // U+f713 +#define ICON_FA_SHOVEL_SNOW "\xef\x9f\x83" // U+f7c3 +#define ICON_FA_SHOWER "\xef\x8b\x8c" // U+f2cc +#define ICON_FA_SHREDDER "\xef\x9a\x8a" // U+f68a +#define ICON_FA_SHUTTLE_VAN "\xef\x96\xb6" // U+f5b6 +#define ICON_FA_SHUTTLECOCK "\xef\x91\x9b" // U+f45b +#define ICON_FA_SICKLE "\xef\xa0\xa2" // U+f822 +#define ICON_FA_SIGMA "\xef\x9a\x8b" // U+f68b +#define ICON_FA_SIGN "\xef\x93\x99" // U+f4d9 +#define ICON_FA_SIGN_IN "\xef\x82\x90" // U+f090 +#define ICON_FA_SIGN_IN_ALT "\xef\x8b\xb6" // U+f2f6 +#define ICON_FA_SIGN_LANGUAGE "\xef\x8a\xa7" // U+f2a7 +#define ICON_FA_SIGN_OUT "\xef\x82\x8b" // U+f08b +#define ICON_FA_SIGN_OUT_ALT "\xef\x8b\xb5" // U+f2f5 +#define ICON_FA_SIGNAL "\xef\x80\x92" // U+f012 +#define ICON_FA_SIGNAL_1 "\xef\x9a\x8c" // U+f68c +#define ICON_FA_SIGNAL_2 "\xef\x9a\x8d" // U+f68d +#define ICON_FA_SIGNAL_3 "\xef\x9a\x8e" // U+f68e +#define ICON_FA_SIGNAL_4 "\xef\x9a\x8f" // U+f68f +#define ICON_FA_SIGNAL_ALT "\xef\x9a\x90" // U+f690 +#define ICON_FA_SIGNAL_ALT_1 "\xef\x9a\x91" // U+f691 +#define ICON_FA_SIGNAL_ALT_2 "\xef\x9a\x92" // U+f692 +#define ICON_FA_SIGNAL_ALT_3 "\xef\x9a\x93" // U+f693 +#define ICON_FA_SIGNAL_ALT_SLASH "\xef\x9a\x94" // U+f694 +#define ICON_FA_SIGNAL_SLASH "\xef\x9a\x95" // U+f695 +#define ICON_FA_SIGNAL_STREAM "\xef\xa3\x9d" // U+f8dd +#define ICON_FA_SIGNATURE "\xef\x96\xb7" // U+f5b7 +#define ICON_FA_SIM_CARD "\xef\x9f\x84" // U+f7c4 +#define ICON_FA_SIREN "\xef\xa4\xad" // U+f92d +#define ICON_FA_SIREN_ON "\xef\xa4\xae" // U+f92e +#define ICON_FA_SITEMAP "\xef\x83\xa8" // U+f0e8 +#define ICON_FA_SKATING "\xef\x9f\x85" // U+f7c5 +#define ICON_FA_SKELETON "\xef\x98\xa0" // U+f620 +#define ICON_FA_SKI_JUMP "\xef\x9f\x87" // U+f7c7 +#define ICON_FA_SKI_LIFT "\xef\x9f\x88" // U+f7c8 +#define ICON_FA_SKIING "\xef\x9f\x89" // U+f7c9 +#define ICON_FA_SKIING_NORDIC "\xef\x9f\x8a" // U+f7ca +#define ICON_FA_SKULL "\xef\x95\x8c" // U+f54c +#define ICON_FA_SKULL_COW "\xef\xa3\x9e" // U+f8de +#define ICON_FA_SKULL_CROSSBONES "\xef\x9c\x94" // U+f714 +#define ICON_FA_SLASH "\xef\x9c\x95" // U+f715 +#define ICON_FA_SLEDDING "\xef\x9f\x8b" // U+f7cb +#define ICON_FA_SLEIGH "\xef\x9f\x8c" // U+f7cc +#define ICON_FA_SLIDERS_H "\xef\x87\x9e" // U+f1de +#define ICON_FA_SLIDERS_H_SQUARE "\xef\x8f\xb0" // U+f3f0 +#define ICON_FA_SLIDERS_V "\xef\x8f\xb1" // U+f3f1 +#define ICON_FA_SLIDERS_V_SQUARE "\xef\x8f\xb2" // U+f3f2 +#define ICON_FA_SMILE "\xef\x84\x98" // U+f118 +#define ICON_FA_SMILE_BEAM "\xef\x96\xb8" // U+f5b8 +#define ICON_FA_SMILE_PLUS "\xef\x96\xb9" // U+f5b9 +#define ICON_FA_SMILE_WINK "\xef\x93\x9a" // U+f4da +#define ICON_FA_SMOG "\xef\x9d\x9f" // U+f75f +#define ICON_FA_SMOKE "\xef\x9d\xa0" // U+f760 +#define ICON_FA_SMOKING "\xef\x92\x8d" // U+f48d +#define ICON_FA_SMOKING_BAN "\xef\x95\x8d" // U+f54d +#define ICON_FA_SMS "\xef\x9f\x8d" // U+f7cd +#define ICON_FA_SNAKE "\xef\x9c\x96" // U+f716 +#define ICON_FA_SNOOZE "\xef\xa2\x80" // U+f880 +#define ICON_FA_SNOW_BLOWING "\xef\x9d\xa1" // U+f761 +#define ICON_FA_SNOWBOARDING "\xef\x9f\x8e" // U+f7ce +#define ICON_FA_SNOWFLAKE "\xef\x8b\x9c" // U+f2dc +#define ICON_FA_SNOWFLAKES "\xef\x9f\x8f" // U+f7cf +#define ICON_FA_SNOWMAN "\xef\x9f\x90" // U+f7d0 +#define ICON_FA_SNOWMOBILE "\xef\x9f\x91" // U+f7d1 +#define ICON_FA_SNOWPLOW "\xef\x9f\x92" // U+f7d2 +#define ICON_FA_SOCKS "\xef\x9a\x96" // U+f696 +#define ICON_FA_SOLAR_PANEL "\xef\x96\xba" // U+f5ba +#define ICON_FA_SOLAR_SYSTEM "\xef\xa4\xaf" // U+f92f +#define ICON_FA_SORT "\xef\x83\x9c" // U+f0dc +#define ICON_FA_SORT_ALPHA_DOWN "\xef\x85\x9d" // U+f15d +#define ICON_FA_SORT_ALPHA_DOWN_ALT "\xef\xa2\x81" // U+f881 +#define ICON_FA_SORT_ALPHA_UP "\xef\x85\x9e" // U+f15e +#define ICON_FA_SORT_ALPHA_UP_ALT "\xef\xa2\x82" // U+f882 +#define ICON_FA_SORT_ALT "\xef\xa2\x83" // U+f883 +#define ICON_FA_SORT_AMOUNT_DOWN "\xef\x85\xa0" // U+f160 +#define ICON_FA_SORT_AMOUNT_DOWN_ALT "\xef\xa2\x84" // U+f884 +#define ICON_FA_SORT_AMOUNT_UP "\xef\x85\xa1" // U+f161 +#define ICON_FA_SORT_AMOUNT_UP_ALT "\xef\xa2\x85" // U+f885 +#define ICON_FA_SORT_CIRCLE "\xef\xa4\xb0" // U+f930 +#define ICON_FA_SORT_CIRCLE_DOWN "\xef\xa4\xb1" // U+f931 +#define ICON_FA_SORT_CIRCLE_UP "\xef\xa4\xb2" // U+f932 +#define ICON_FA_SORT_DOWN "\xef\x83\x9d" // U+f0dd +#define ICON_FA_SORT_NUMERIC_DOWN "\xef\x85\xa2" // U+f162 +#define ICON_FA_SORT_NUMERIC_DOWN_ALT "\xef\xa2\x86" // U+f886 +#define ICON_FA_SORT_NUMERIC_UP "\xef\x85\xa3" // U+f163 +#define ICON_FA_SORT_NUMERIC_UP_ALT "\xef\xa2\x87" // U+f887 +#define ICON_FA_SORT_SHAPES_DOWN "\xef\xa2\x88" // U+f888 +#define ICON_FA_SORT_SHAPES_DOWN_ALT "\xef\xa2\x89" // U+f889 +#define ICON_FA_SORT_SHAPES_UP "\xef\xa2\x8a" // U+f88a +#define ICON_FA_SORT_SHAPES_UP_ALT "\xef\xa2\x8b" // U+f88b +#define ICON_FA_SORT_SIZE_DOWN "\xef\xa2\x8c" // U+f88c +#define ICON_FA_SORT_SIZE_DOWN_ALT "\xef\xa2\x8d" // U+f88d +#define ICON_FA_SORT_SIZE_UP "\xef\xa2\x8e" // U+f88e +#define ICON_FA_SORT_SIZE_UP_ALT "\xef\xa2\x8f" // U+f88f +#define ICON_FA_SORT_UP "\xef\x83\x9e" // U+f0de +#define ICON_FA_SOUP "\xef\xa0\xa3" // U+f823 +#define ICON_FA_SPA "\xef\x96\xbb" // U+f5bb +#define ICON_FA_SPACE_SHUTTLE "\xef\x86\x97" // U+f197 +#define ICON_FA_SPACE_STATION_MOON "\xef\xa4\xb3" // U+f933 +#define ICON_FA_SPACE_STATION_MOON_ALT "\xef\xa4\xb4" // U+f934 +#define ICON_FA_SPADE "\xef\x8b\xb4" // U+f2f4 +#define ICON_FA_SPARKLES "\xef\xa2\x90" // U+f890 +#define ICON_FA_SPEAKER "\xef\xa3\x9f" // U+f8df +#define ICON_FA_SPEAKERS "\xef\xa3\xa0" // U+f8e0 +#define ICON_FA_SPELL_CHECK "\xef\xa2\x91" // U+f891 +#define ICON_FA_SPIDER "\xef\x9c\x97" // U+f717 +#define ICON_FA_SPIDER_BLACK_WIDOW "\xef\x9c\x98" // U+f718 +#define ICON_FA_SPIDER_WEB "\xef\x9c\x99" // U+f719 +#define ICON_FA_SPINNER "\xef\x84\x90" // U+f110 +#define ICON_FA_SPINNER_THIRD "\xef\x8f\xb4" // U+f3f4 +#define ICON_FA_SPLOTCH "\xef\x96\xbc" // U+f5bc +#define ICON_FA_SPRAY_CAN "\xef\x96\xbd" // U+f5bd +#define ICON_FA_SPRINKLER "\xef\xa4\xb5" // U+f935 +#define ICON_FA_SQUARE "\xef\x83\x88" // U+f0c8 +#define ICON_FA_SQUARE_FULL "\xef\x91\x9c" // U+f45c +#define ICON_FA_SQUARE_ROOT "\xef\x9a\x97" // U+f697 +#define ICON_FA_SQUARE_ROOT_ALT "\xef\x9a\x98" // U+f698 +#define ICON_FA_SQUIRREL "\xef\x9c\x9a" // U+f71a +#define ICON_FA_STAFF "\xef\x9c\x9b" // U+f71b +#define ICON_FA_STAMP "\xef\x96\xbf" // U+f5bf +#define ICON_FA_STAR "\xef\x80\x85" // U+f005 +#define ICON_FA_STAR_AND_CRESCENT "\xef\x9a\x99" // U+f699 +#define ICON_FA_STAR_CHRISTMAS "\xef\x9f\x94" // U+f7d4 +#define ICON_FA_STAR_EXCLAMATION "\xef\x8b\xb3" // U+f2f3 +#define ICON_FA_STAR_HALF "\xef\x82\x89" // U+f089 +#define ICON_FA_STAR_HALF_ALT "\xef\x97\x80" // U+f5c0 +#define ICON_FA_STAR_OF_DAVID "\xef\x9a\x9a" // U+f69a +#define ICON_FA_STAR_OF_LIFE "\xef\x98\xa1" // U+f621 +#define ICON_FA_STAR_SHOOTING "\xef\xa4\xb6" // U+f936 +#define ICON_FA_STARFIGHTER "\xef\xa4\xb7" // U+f937 +#define ICON_FA_STARFIGHTER_ALT "\xef\xa4\xb8" // U+f938 +#define ICON_FA_STARS "\xef\x9d\xa2" // U+f762 +#define ICON_FA_STARSHIP "\xef\xa4\xb9" // U+f939 +#define ICON_FA_STARSHIP_FREIGHTER "\xef\xa4\xba" // U+f93a +#define ICON_FA_STEAK "\xef\xa0\xa4" // U+f824 +#define ICON_FA_STEERING_WHEEL "\xef\x98\xa2" // U+f622 +#define ICON_FA_STEP_BACKWARD "\xef\x81\x88" // U+f048 +#define ICON_FA_STEP_FORWARD "\xef\x81\x91" // U+f051 +#define ICON_FA_STETHOSCOPE "\xef\x83\xb1" // U+f0f1 +#define ICON_FA_STICKY_NOTE "\xef\x89\x89" // U+f249 +#define ICON_FA_STOCKING "\xef\x9f\x95" // U+f7d5 +#define ICON_FA_STOMACH "\xef\x98\xa3" // U+f623 +#define ICON_FA_STOP "\xef\x81\x8d" // U+f04d +#define ICON_FA_STOP_CIRCLE "\xef\x8a\x8d" // U+f28d +#define ICON_FA_STOPWATCH "\xef\x8b\xb2" // U+f2f2 +#define ICON_FA_STORE "\xef\x95\x8e" // U+f54e +#define ICON_FA_STORE_ALT "\xef\x95\x8f" // U+f54f +#define ICON_FA_STREAM "\xef\x95\x90" // U+f550 +#define ICON_FA_STREET_VIEW "\xef\x88\x9d" // U+f21d +#define ICON_FA_STRETCHER "\xef\xa0\xa5" // U+f825 +#define ICON_FA_STRIKETHROUGH "\xef\x83\x8c" // U+f0cc +#define ICON_FA_STROOPWAFEL "\xef\x95\x91" // U+f551 +#define ICON_FA_SUBSCRIPT "\xef\x84\xac" // U+f12c +#define ICON_FA_SUBWAY "\xef\x88\xb9" // U+f239 +#define ICON_FA_SUITCASE "\xef\x83\xb2" // U+f0f2 +#define ICON_FA_SUITCASE_ROLLING "\xef\x97\x81" // U+f5c1 +#define ICON_FA_SUN "\xef\x86\x85" // U+f185 +#define ICON_FA_SUN_CLOUD "\xef\x9d\xa3" // U+f763 +#define ICON_FA_SUN_DUST "\xef\x9d\xa4" // U+f764 +#define ICON_FA_SUN_HAZE "\xef\x9d\xa5" // U+f765 +#define ICON_FA_SUNGLASSES "\xef\xa2\x92" // U+f892 +#define ICON_FA_SUNRISE "\xef\x9d\xa6" // U+f766 +#define ICON_FA_SUNSET "\xef\x9d\xa7" // U+f767 +#define ICON_FA_SUPERSCRIPT "\xef\x84\xab" // U+f12b +#define ICON_FA_SURPRISE "\xef\x97\x82" // U+f5c2 +#define ICON_FA_SWATCHBOOK "\xef\x97\x83" // U+f5c3 +#define ICON_FA_SWIMMER "\xef\x97\x84" // U+f5c4 +#define ICON_FA_SWIMMING_POOL "\xef\x97\x85" // U+f5c5 +#define ICON_FA_SWORD "\xef\x9c\x9c" // U+f71c +#define ICON_FA_SWORD_LASER "\xef\xa4\xbb" // U+f93b +#define ICON_FA_SWORD_LASER_ALT "\xef\xa4\xbc" // U+f93c +#define ICON_FA_SWORDS "\xef\x9c\x9d" // U+f71d +#define ICON_FA_SWORDS_LASER "\xef\xa4\xbd" // U+f93d +#define ICON_FA_SYNAGOGUE "\xef\x9a\x9b" // U+f69b +#define ICON_FA_SYNC "\xef\x80\xa1" // U+f021 +#define ICON_FA_SYNC_ALT "\xef\x8b\xb1" // U+f2f1 +#define ICON_FA_SYRINGE "\xef\x92\x8e" // U+f48e +#define ICON_FA_TABLE "\xef\x83\x8e" // U+f0ce +#define ICON_FA_TABLE_TENNIS "\xef\x91\x9d" // U+f45d +#define ICON_FA_TABLET "\xef\x84\x8a" // U+f10a +#define ICON_FA_TABLET_ALT "\xef\x8f\xba" // U+f3fa +#define ICON_FA_TABLET_ANDROID "\xef\x8f\xbb" // U+f3fb +#define ICON_FA_TABLET_ANDROID_ALT "\xef\x8f\xbc" // U+f3fc +#define ICON_FA_TABLET_RUGGED "\xef\x92\x8f" // U+f48f +#define ICON_FA_TABLETS "\xef\x92\x90" // U+f490 +#define ICON_FA_TACHOMETER "\xef\x83\xa4" // U+f0e4 +#define ICON_FA_TACHOMETER_ALT "\xef\x8f\xbd" // U+f3fd +#define ICON_FA_TACHOMETER_ALT_AVERAGE "\xef\x98\xa4" // U+f624 +#define ICON_FA_TACHOMETER_ALT_FAST "\xef\x98\xa5" // U+f625 +#define ICON_FA_TACHOMETER_ALT_FASTEST "\xef\x98\xa6" // U+f626 +#define ICON_FA_TACHOMETER_ALT_SLOW "\xef\x98\xa7" // U+f627 +#define ICON_FA_TACHOMETER_ALT_SLOWEST "\xef\x98\xa8" // U+f628 +#define ICON_FA_TACHOMETER_AVERAGE "\xef\x98\xa9" // U+f629 +#define ICON_FA_TACHOMETER_FAST "\xef\x98\xaa" // U+f62a +#define ICON_FA_TACHOMETER_FASTEST "\xef\x98\xab" // U+f62b +#define ICON_FA_TACHOMETER_SLOW "\xef\x98\xac" // U+f62c +#define ICON_FA_TACHOMETER_SLOWEST "\xef\x98\xad" // U+f62d +#define ICON_FA_TACO "\xef\xa0\xa6" // U+f826 +#define ICON_FA_TAG "\xef\x80\xab" // U+f02b +#define ICON_FA_TAGS "\xef\x80\xac" // U+f02c +#define ICON_FA_TALLY "\xef\x9a\x9c" // U+f69c +#define ICON_FA_TANAKH "\xef\xa0\xa7" // U+f827 +#define ICON_FA_TAPE "\xef\x93\x9b" // U+f4db +#define ICON_FA_TASKS "\xef\x82\xae" // U+f0ae +#define ICON_FA_TASKS_ALT "\xef\xa0\xa8" // U+f828 +#define ICON_FA_TAXI "\xef\x86\xba" // U+f1ba +#define ICON_FA_TEETH "\xef\x98\xae" // U+f62e +#define ICON_FA_TEETH_OPEN "\xef\x98\xaf" // U+f62f +#define ICON_FA_TELESCOPE "\xef\xa4\xbe" // U+f93e +#define ICON_FA_TEMPERATURE_DOWN "\xef\xa4\xbf" // U+f93f +#define ICON_FA_TEMPERATURE_FRIGID "\xef\x9d\xa8" // U+f768 +#define ICON_FA_TEMPERATURE_HIGH "\xef\x9d\xa9" // U+f769 +#define ICON_FA_TEMPERATURE_HOT "\xef\x9d\xaa" // U+f76a +#define ICON_FA_TEMPERATURE_LOW "\xef\x9d\xab" // U+f76b +#define ICON_FA_TEMPERATURE_UP "\xef\xa5\x80" // U+f940 +#define ICON_FA_TENGE "\xef\x9f\x97" // U+f7d7 +#define ICON_FA_TENNIS_BALL "\xef\x91\x9e" // U+f45e +#define ICON_FA_TERMINAL "\xef\x84\xa0" // U+f120 +#define ICON_FA_TEXT "\xef\xa2\x93" // U+f893 +#define ICON_FA_TEXT_HEIGHT "\xef\x80\xb4" // U+f034 +#define ICON_FA_TEXT_SIZE "\xef\xa2\x94" // U+f894 +#define ICON_FA_TEXT_WIDTH "\xef\x80\xb5" // U+f035 +#define ICON_FA_TH "\xef\x80\x8a" // U+f00a +#define ICON_FA_TH_LARGE "\xef\x80\x89" // U+f009 +#define ICON_FA_TH_LIST "\xef\x80\x8b" // U+f00b +#define ICON_FA_THEATER_MASKS "\xef\x98\xb0" // U+f630 +#define ICON_FA_THERMOMETER "\xef\x92\x91" // U+f491 +#define ICON_FA_THERMOMETER_EMPTY "\xef\x8b\x8b" // U+f2cb +#define ICON_FA_THERMOMETER_FULL "\xef\x8b\x87" // U+f2c7 +#define ICON_FA_THERMOMETER_HALF "\xef\x8b\x89" // U+f2c9 +#define ICON_FA_THERMOMETER_QUARTER "\xef\x8b\x8a" // U+f2ca +#define ICON_FA_THERMOMETER_THREE_QUARTERS "\xef\x8b\x88" // U+f2c8 +#define ICON_FA_THETA "\xef\x9a\x9e" // U+f69e +#define ICON_FA_THUMBS_DOWN "\xef\x85\xa5" // U+f165 +#define ICON_FA_THUMBS_UP "\xef\x85\xa4" // U+f164 +#define ICON_FA_THUMBTACK "\xef\x82\x8d" // U+f08d +#define ICON_FA_THUNDERSTORM "\xef\x9d\xac" // U+f76c +#define ICON_FA_THUNDERSTORM_MOON "\xef\x9d\xad" // U+f76d +#define ICON_FA_THUNDERSTORM_SUN "\xef\x9d\xae" // U+f76e +#define ICON_FA_TICKET "\xef\x85\x85" // U+f145 +#define ICON_FA_TICKET_ALT "\xef\x8f\xbf" // U+f3ff +#define ICON_FA_TILDE "\xef\x9a\x9f" // U+f69f +#define ICON_FA_TIMES "\xef\x80\x8d" // U+f00d +#define ICON_FA_TIMES_CIRCLE "\xef\x81\x97" // U+f057 +#define ICON_FA_TIMES_HEXAGON "\xef\x8b\xae" // U+f2ee +#define ICON_FA_TIMES_OCTAGON "\xef\x8b\xb0" // U+f2f0 +#define ICON_FA_TIMES_SQUARE "\xef\x8b\x93" // U+f2d3 +#define ICON_FA_TINT "\xef\x81\x83" // U+f043 +#define ICON_FA_TINT_SLASH "\xef\x97\x87" // U+f5c7 +#define ICON_FA_TIRE "\xef\x98\xb1" // U+f631 +#define ICON_FA_TIRE_FLAT "\xef\x98\xb2" // U+f632 +#define ICON_FA_TIRE_PRESSURE_WARNING "\xef\x98\xb3" // U+f633 +#define ICON_FA_TIRE_RUGGED "\xef\x98\xb4" // U+f634 +#define ICON_FA_TIRED "\xef\x97\x88" // U+f5c8 +#define ICON_FA_TOGGLE_OFF "\xef\x88\x84" // U+f204 +#define ICON_FA_TOGGLE_ON "\xef\x88\x85" // U+f205 +#define ICON_FA_TOILET "\xef\x9f\x98" // U+f7d8 +#define ICON_FA_TOILET_PAPER "\xef\x9c\x9e" // U+f71e +#define ICON_FA_TOILET_PAPER_ALT "\xef\x9c\x9f" // U+f71f +#define ICON_FA_TOMBSTONE "\xef\x9c\xa0" // U+f720 +#define ICON_FA_TOMBSTONE_ALT "\xef\x9c\xa1" // U+f721 +#define ICON_FA_TOOLBOX "\xef\x95\x92" // U+f552 +#define ICON_FA_TOOLS "\xef\x9f\x99" // U+f7d9 +#define ICON_FA_TOOTH "\xef\x97\x89" // U+f5c9 +#define ICON_FA_TOOTHBRUSH "\xef\x98\xb5" // U+f635 +#define ICON_FA_TORAH "\xef\x9a\xa0" // U+f6a0 +#define ICON_FA_TORII_GATE "\xef\x9a\xa1" // U+f6a1 +#define ICON_FA_TORNADO "\xef\x9d\xaf" // U+f76f +#define ICON_FA_TRACTOR "\xef\x9c\xa2" // U+f722 +#define ICON_FA_TRADEMARK "\xef\x89\x9c" // U+f25c +#define ICON_FA_TRAFFIC_CONE "\xef\x98\xb6" // U+f636 +#define ICON_FA_TRAFFIC_LIGHT "\xef\x98\xb7" // U+f637 +#define ICON_FA_TRAFFIC_LIGHT_GO "\xef\x98\xb8" // U+f638 +#define ICON_FA_TRAFFIC_LIGHT_SLOW "\xef\x98\xb9" // U+f639 +#define ICON_FA_TRAFFIC_LIGHT_STOP "\xef\x98\xba" // U+f63a +#define ICON_FA_TRAILER "\xef\xa5\x81" // U+f941 +#define ICON_FA_TRAIN "\xef\x88\xb8" // U+f238 +#define ICON_FA_TRAM "\xef\x9f\x9a" // U+f7da +#define ICON_FA_TRANSGENDER "\xef\x88\xa4" // U+f224 +#define ICON_FA_TRANSGENDER_ALT "\xef\x88\xa5" // U+f225 +#define ICON_FA_TRANSPORTER "\xef\xa5\x82" // U+f942 +#define ICON_FA_TRANSPORTER_1 "\xef\xa5\x83" // U+f943 +#define ICON_FA_TRANSPORTER_2 "\xef\xa5\x84" // U+f944 +#define ICON_FA_TRANSPORTER_3 "\xef\xa5\x85" // U+f945 +#define ICON_FA_TRANSPORTER_EMPTY "\xef\xa5\x86" // U+f946 +#define ICON_FA_TRASH "\xef\x87\xb8" // U+f1f8 +#define ICON_FA_TRASH_ALT "\xef\x8b\xad" // U+f2ed +#define ICON_FA_TRASH_RESTORE "\xef\xa0\xa9" // U+f829 +#define ICON_FA_TRASH_RESTORE_ALT "\xef\xa0\xaa" // U+f82a +#define ICON_FA_TRASH_UNDO "\xef\xa2\x95" // U+f895 +#define ICON_FA_TRASH_UNDO_ALT "\xef\xa2\x96" // U+f896 +#define ICON_FA_TREASURE_CHEST "\xef\x9c\xa3" // U+f723 +#define ICON_FA_TREE "\xef\x86\xbb" // U+f1bb +#define ICON_FA_TREE_ALT "\xef\x90\x80" // U+f400 +#define ICON_FA_TREE_CHRISTMAS "\xef\x9f\x9b" // U+f7db +#define ICON_FA_TREE_DECORATED "\xef\x9f\x9c" // U+f7dc +#define ICON_FA_TREE_LARGE "\xef\x9f\x9d" // U+f7dd +#define ICON_FA_TREE_PALM "\xef\xa0\xab" // U+f82b +#define ICON_FA_TREES "\xef\x9c\xa4" // U+f724 +#define ICON_FA_TRIANGLE "\xef\x8b\xac" // U+f2ec +#define ICON_FA_TRIANGLE_MUSIC "\xef\xa3\xa2" // U+f8e2 +#define ICON_FA_TROPHY "\xef\x82\x91" // U+f091 +#define ICON_FA_TROPHY_ALT "\xef\x8b\xab" // U+f2eb +#define ICON_FA_TRUCK "\xef\x83\x91" // U+f0d1 +#define ICON_FA_TRUCK_CONTAINER "\xef\x93\x9c" // U+f4dc +#define ICON_FA_TRUCK_COUCH "\xef\x93\x9d" // U+f4dd +#define ICON_FA_TRUCK_LOADING "\xef\x93\x9e" // U+f4de +#define ICON_FA_TRUCK_MONSTER "\xef\x98\xbb" // U+f63b +#define ICON_FA_TRUCK_MOVING "\xef\x93\x9f" // U+f4df +#define ICON_FA_TRUCK_PICKUP "\xef\x98\xbc" // U+f63c +#define ICON_FA_TRUCK_PLOW "\xef\x9f\x9e" // U+f7de +#define ICON_FA_TRUCK_RAMP "\xef\x93\xa0" // U+f4e0 +#define ICON_FA_TRUMPET "\xef\xa3\xa3" // U+f8e3 +#define ICON_FA_TSHIRT "\xef\x95\x93" // U+f553 +#define ICON_FA_TTY "\xef\x87\xa4" // U+f1e4 +#define ICON_FA_TURKEY "\xef\x9c\xa5" // U+f725 +#define ICON_FA_TURNTABLE "\xef\xa3\xa4" // U+f8e4 +#define ICON_FA_TURTLE "\xef\x9c\xa6" // U+f726 +#define ICON_FA_TV "\xef\x89\xac" // U+f26c +#define ICON_FA_TV_ALT "\xef\xa3\xa5" // U+f8e5 +#define ICON_FA_TV_MUSIC "\xef\xa3\xa6" // U+f8e6 +#define ICON_FA_TV_RETRO "\xef\x90\x81" // U+f401 +#define ICON_FA_TYPEWRITER "\xef\xa3\xa7" // U+f8e7 +#define ICON_FA_UFO "\xef\xa5\x87" // U+f947 +#define ICON_FA_UFO_BEAM "\xef\xa5\x88" // U+f948 +#define ICON_FA_UMBRELLA "\xef\x83\xa9" // U+f0e9 +#define ICON_FA_UMBRELLA_BEACH "\xef\x97\x8a" // U+f5ca +#define ICON_FA_UNDERLINE "\xef\x83\x8d" // U+f0cd +#define ICON_FA_UNDO "\xef\x83\xa2" // U+f0e2 +#define ICON_FA_UNDO_ALT "\xef\x8b\xaa" // U+f2ea +#define ICON_FA_UNICORN "\xef\x9c\xa7" // U+f727 +#define ICON_FA_UNION "\xef\x9a\xa2" // U+f6a2 +#define ICON_FA_UNIVERSAL_ACCESS "\xef\x8a\x9a" // U+f29a +#define ICON_FA_UNIVERSITY "\xef\x86\x9c" // U+f19c +#define ICON_FA_UNLINK "\xef\x84\xa7" // U+f127 +#define ICON_FA_UNLOCK "\xef\x82\x9c" // U+f09c +#define ICON_FA_UNLOCK_ALT "\xef\x84\xbe" // U+f13e +#define ICON_FA_UPLOAD "\xef\x82\x93" // U+f093 +#define ICON_FA_USB_DRIVE "\xef\xa3\xa9" // U+f8e9 +#define ICON_FA_USD_CIRCLE "\xef\x8b\xa8" // U+f2e8 +#define ICON_FA_USD_SQUARE "\xef\x8b\xa9" // U+f2e9 +#define ICON_FA_USER "\xef\x80\x87" // U+f007 +#define ICON_FA_USER_ALIEN "\xef\xa5\x8a" // U+f94a +#define ICON_FA_USER_ALT "\xef\x90\x86" // U+f406 +#define ICON_FA_USER_ALT_SLASH "\xef\x93\xba" // U+f4fa +#define ICON_FA_USER_ASTRONAUT "\xef\x93\xbb" // U+f4fb +#define ICON_FA_USER_CHART "\xef\x9a\xa3" // U+f6a3 +#define ICON_FA_USER_CHECK "\xef\x93\xbc" // U+f4fc +#define ICON_FA_USER_CIRCLE "\xef\x8a\xbd" // U+f2bd +#define ICON_FA_USER_CLOCK "\xef\x93\xbd" // U+f4fd +#define ICON_FA_USER_COG "\xef\x93\xbe" // U+f4fe +#define ICON_FA_USER_COWBOY "\xef\xa3\xaa" // U+f8ea +#define ICON_FA_USER_CROWN "\xef\x9a\xa4" // U+f6a4 +#define ICON_FA_USER_EDIT "\xef\x93\xbf" // U+f4ff +#define ICON_FA_USER_FRIENDS "\xef\x94\x80" // U+f500 +#define ICON_FA_USER_GRADUATE "\xef\x94\x81" // U+f501 +#define ICON_FA_USER_HARD_HAT "\xef\xa0\xac" // U+f82c +#define ICON_FA_USER_HEADSET "\xef\xa0\xad" // U+f82d +#define ICON_FA_USER_INJURED "\xef\x9c\xa8" // U+f728 +#define ICON_FA_USER_LOCK "\xef\x94\x82" // U+f502 +#define ICON_FA_USER_MD "\xef\x83\xb0" // U+f0f0 +#define ICON_FA_USER_MD_CHAT "\xef\xa0\xae" // U+f82e +#define ICON_FA_USER_MINUS "\xef\x94\x83" // U+f503 +#define ICON_FA_USER_MUSIC "\xef\xa3\xab" // U+f8eb +#define ICON_FA_USER_NINJA "\xef\x94\x84" // U+f504 +#define ICON_FA_USER_NURSE "\xef\xa0\xaf" // U+f82f +#define ICON_FA_USER_PLUS "\xef\x88\xb4" // U+f234 +#define ICON_FA_USER_ROBOT "\xef\xa5\x8b" // U+f94b +#define ICON_FA_USER_SECRET "\xef\x88\x9b" // U+f21b +#define ICON_FA_USER_SHIELD "\xef\x94\x85" // U+f505 +#define ICON_FA_USER_SLASH "\xef\x94\x86" // U+f506 +#define ICON_FA_USER_TAG "\xef\x94\x87" // U+f507 +#define ICON_FA_USER_TIE "\xef\x94\x88" // U+f508 +#define ICON_FA_USER_TIMES "\xef\x88\xb5" // U+f235 +#define ICON_FA_USER_VISOR "\xef\xa5\x8c" // U+f94c +#define ICON_FA_USERS "\xef\x83\x80" // U+f0c0 +#define ICON_FA_USERS_CLASS "\xef\x98\xbd" // U+f63d +#define ICON_FA_USERS_COG "\xef\x94\x89" // U+f509 +#define ICON_FA_USERS_CROWN "\xef\x9a\xa5" // U+f6a5 +#define ICON_FA_USERS_MEDICAL "\xef\xa0\xb0" // U+f830 +#define ICON_FA_UTENSIL_FORK "\xef\x8b\xa3" // U+f2e3 +#define ICON_FA_UTENSIL_KNIFE "\xef\x8b\xa4" // U+f2e4 +#define ICON_FA_UTENSIL_SPOON "\xef\x8b\xa5" // U+f2e5 +#define ICON_FA_UTENSILS "\xef\x8b\xa7" // U+f2e7 +#define ICON_FA_UTENSILS_ALT "\xef\x8b\xa6" // U+f2e6 +#define ICON_FA_VACUUM "\xef\xa5\x8d" // U+f94d +#define ICON_FA_VACUUM_ROBOT "\xef\xa5\x8e" // U+f94e +#define ICON_FA_VALUE_ABSOLUTE "\xef\x9a\xa6" // U+f6a6 +#define ICON_FA_VECTOR_SQUARE "\xef\x97\x8b" // U+f5cb +#define ICON_FA_VENUS "\xef\x88\xa1" // U+f221 +#define ICON_FA_VENUS_DOUBLE "\xef\x88\xa6" // U+f226 +#define ICON_FA_VENUS_MARS "\xef\x88\xa8" // U+f228 +#define ICON_FA_VHS "\xef\xa3\xac" // U+f8ec +#define ICON_FA_VIAL "\xef\x92\x92" // U+f492 +#define ICON_FA_VIALS "\xef\x92\x93" // U+f493 +#define ICON_FA_VIDEO "\xef\x80\xbd" // U+f03d +#define ICON_FA_VIDEO_PLUS "\xef\x93\xa1" // U+f4e1 +#define ICON_FA_VIDEO_SLASH "\xef\x93\xa2" // U+f4e2 +#define ICON_FA_VIHARA "\xef\x9a\xa7" // U+f6a7 +#define ICON_FA_VIOLIN "\xef\xa3\xad" // U+f8ed +#define ICON_FA_VOICEMAIL "\xef\xa2\x97" // U+f897 +#define ICON_FA_VOLCANO "\xef\x9d\xb0" // U+f770 +#define ICON_FA_VOLLEYBALL_BALL "\xef\x91\x9f" // U+f45f +#define ICON_FA_VOLUME "\xef\x9a\xa8" // U+f6a8 +#define ICON_FA_VOLUME_DOWN "\xef\x80\xa7" // U+f027 +#define ICON_FA_VOLUME_MUTE "\xef\x9a\xa9" // U+f6a9 +#define ICON_FA_VOLUME_OFF "\xef\x80\xa6" // U+f026 +#define ICON_FA_VOLUME_SLASH "\xef\x8b\xa2" // U+f2e2 +#define ICON_FA_VOLUME_UP "\xef\x80\xa8" // U+f028 +#define ICON_FA_VOTE_NAY "\xef\x9d\xb1" // U+f771 +#define ICON_FA_VOTE_YEA "\xef\x9d\xb2" // U+f772 +#define ICON_FA_VR_CARDBOARD "\xef\x9c\xa9" // U+f729 +#define ICON_FA_WAGON_COVERED "\xef\xa3\xae" // U+f8ee +#define ICON_FA_WALKER "\xef\xa0\xb1" // U+f831 +#define ICON_FA_WALKIE_TALKIE "\xef\xa3\xaf" // U+f8ef +#define ICON_FA_WALKING "\xef\x95\x94" // U+f554 +#define ICON_FA_WALLET "\xef\x95\x95" // U+f555 +#define ICON_FA_WAND "\xef\x9c\xaa" // U+f72a +#define ICON_FA_WAND_MAGIC "\xef\x9c\xab" // U+f72b +#define ICON_FA_WAREHOUSE "\xef\x92\x94" // U+f494 +#define ICON_FA_WAREHOUSE_ALT "\xef\x92\x95" // U+f495 +#define ICON_FA_WASHER "\xef\xa2\x98" // U+f898 +#define ICON_FA_WATCH "\xef\x8b\xa1" // U+f2e1 +#define ICON_FA_WATCH_CALCULATOR "\xef\xa3\xb0" // U+f8f0 +#define ICON_FA_WATCH_FITNESS "\xef\x98\xbe" // U+f63e +#define ICON_FA_WATER "\xef\x9d\xb3" // U+f773 +#define ICON_FA_WATER_LOWER "\xef\x9d\xb4" // U+f774 +#define ICON_FA_WATER_RISE "\xef\x9d\xb5" // U+f775 +#define ICON_FA_WAVE_SINE "\xef\xa2\x99" // U+f899 +#define ICON_FA_WAVE_SQUARE "\xef\xa0\xbe" // U+f83e +#define ICON_FA_WAVE_TRIANGLE "\xef\xa2\x9a" // U+f89a +#define ICON_FA_WAVEFORM "\xef\xa3\xb1" // U+f8f1 +#define ICON_FA_WAVEFORM_PATH "\xef\xa3\xb2" // U+f8f2 +#define ICON_FA_WEBCAM "\xef\xa0\xb2" // U+f832 +#define ICON_FA_WEBCAM_SLASH "\xef\xa0\xb3" // U+f833 +#define ICON_FA_WEIGHT "\xef\x92\x96" // U+f496 +#define ICON_FA_WEIGHT_HANGING "\xef\x97\x8d" // U+f5cd +#define ICON_FA_WHALE "\xef\x9c\xac" // U+f72c +#define ICON_FA_WHEAT "\xef\x9c\xad" // U+f72d +#define ICON_FA_WHEELCHAIR "\xef\x86\x93" // U+f193 +#define ICON_FA_WHISTLE "\xef\x91\xa0" // U+f460 +#define ICON_FA_WIFI "\xef\x87\xab" // U+f1eb +#define ICON_FA_WIFI_1 "\xef\x9a\xaa" // U+f6aa +#define ICON_FA_WIFI_2 "\xef\x9a\xab" // U+f6ab +#define ICON_FA_WIFI_SLASH "\xef\x9a\xac" // U+f6ac +#define ICON_FA_WIND "\xef\x9c\xae" // U+f72e +#define ICON_FA_WIND_TURBINE "\xef\xa2\x9b" // U+f89b +#define ICON_FA_WIND_WARNING "\xef\x9d\xb6" // U+f776 +#define ICON_FA_WINDOW "\xef\x90\x8e" // U+f40e +#define ICON_FA_WINDOW_ALT "\xef\x90\x8f" // U+f40f +#define ICON_FA_WINDOW_CLOSE "\xef\x90\x90" // U+f410 +#define ICON_FA_WINDOW_FRAME "\xef\xa5\x8f" // U+f94f +#define ICON_FA_WINDOW_FRAME_OPEN "\xef\xa5\x90" // U+f950 +#define ICON_FA_WINDOW_MAXIMIZE "\xef\x8b\x90" // U+f2d0 +#define ICON_FA_WINDOW_MINIMIZE "\xef\x8b\x91" // U+f2d1 +#define ICON_FA_WINDOW_RESTORE "\xef\x8b\x92" // U+f2d2 +#define ICON_FA_WINDSOCK "\xef\x9d\xb7" // U+f777 +#define ICON_FA_WINE_BOTTLE "\xef\x9c\xaf" // U+f72f +#define ICON_FA_WINE_GLASS "\xef\x93\xa3" // U+f4e3 +#define ICON_FA_WINE_GLASS_ALT "\xef\x97\x8e" // U+f5ce +#define ICON_FA_WON_SIGN "\xef\x85\x99" // U+f159 +#define ICON_FA_WREATH "\xef\x9f\xa2" // U+f7e2 +#define ICON_FA_WRENCH "\xef\x82\xad" // U+f0ad +#define ICON_FA_X_RAY "\xef\x92\x97" // U+f497 +#define ICON_FA_YEN_SIGN "\xef\x85\x97" // U+f157 +#define ICON_FA_YIN_YANG "\xef\x9a\xad" // U+f6ad diff --git a/cheat-base/vendor/imgui-notify-v2/imgui_notify.h b/cheat-base/vendor/imgui-notify-v2/imgui_notify.h new file mode 100644 index 0000000..1f1b88c --- /dev/null +++ b/cheat-base/vendor/imgui-notify-v2/imgui_notify.h @@ -0,0 +1,357 @@ +// imgui-notify by patrickcjk +// https://github.com/patrickcjk/imgui-notify + +#ifndef IMGUI_NOTIFY +#define IMGUI_NOTIFY + +#pragma once +#include +#include +#include "font_awesome_5.h" +#include "fa_solid_900.h" + +#define NOTIFY_MAX_MSG_LENGTH 4096 // Max message content length +#define NOTIFY_PADDING_X 20.f // Bottom-left X padding +#define NOTIFY_PADDING_Y 20.f // Bottom-left Y padding +#define NOTIFY_PADDING_MESSAGE_Y 10.f // Padding Y between each message +#define NOTIFY_FADE_IN_OUT_TIME 150 // Fade in and out duration +#define NOTIFY_DEFAULT_DISMISS 3000 // Auto dismiss after X ms (default, applied only of no data provided in constructors) +#define NOTIFY_OPACITY 1.0f // 0-1 Toast opacity +#define NOTIFY_TOAST_FLAGS ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoInputs | ImGuiWindowFlags_NoNav | ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoFocusOnAppearing +// Comment out if you don't want any separator between title and content +#define NOTIFY_USE_SEPARATOR + +#define NOTIFY_INLINE inline +#define NOTIFY_NULL_OR_EMPTY(str) (!str ||! strlen(str)) +#define NOTIFY_FORMAT(fn, format, ...) if (format) { va_list args; va_start(args, format); fn(format, args, __VA_ARGS__); va_end(args); } + +typedef int ImGuiToastType; +typedef int ImGuiToastPhase; +typedef int ImGuiToastPos; + +enum ImGuiToastType_ +{ + ImGuiToastType_None, + ImGuiToastType_Success, + ImGuiToastType_Warning, + ImGuiToastType_Error, + ImGuiToastType_Info, + ImGuiToastType_COUNT +}; + +enum ImGuiToastPhase_ +{ + ImGuiToastPhase_FadeIn, + ImGuiToastPhase_Wait, + ImGuiToastPhase_FadeOut, + ImGuiToastPhase_Expired, + ImGuiToastPhase_COUNT +}; + +enum ImGuiToastPos_ +{ + ImGuiToastPos_TopLeft, + ImGuiToastPos_TopCenter, + ImGuiToastPos_TopRight, + ImGuiToastPos_BottomLeft, + ImGuiToastPos_BottomCenter, + ImGuiToastPos_BottomRight, + ImGuiToastPos_Center, + ImGuiToastPos_COUNT +}; + +class ImGuiToast +{ +private: + ImGuiToastType type = ImGuiToastType_None; + char title[NOTIFY_MAX_MSG_LENGTH]; + char content[NOTIFY_MAX_MSG_LENGTH]; + int dismiss_time = NOTIFY_DEFAULT_DISMISS; + uint64_t creation_time = 0; + +private: + // Setters + + NOTIFY_INLINE void set_title(const char* format, va_list args) { vsnprintf(this->title, sizeof(this->title), format, args); } + + NOTIFY_INLINE void set_content(const char* format, va_list args) { vsnprintf(this->content, sizeof(this->content), format, args); } + +public: + + NOTIFY_INLINE void set_title(const char* format, ...) { NOTIFY_FORMAT(this->set_title, format); } + + NOTIFY_INLINE void set_content(const char* format, ...) { NOTIFY_FORMAT(this->set_content, format); } + + NOTIFY_INLINE void set_type(const ImGuiToastType& type) { IM_ASSERT(type < ImGuiToastType_COUNT); this->type = type; }; + +public: + // Getters + + NOTIFY_INLINE char* get_title() { return this->title; }; + + NOTIFY_INLINE const char* get_default_title() + { + if (!strlen(this->title)) + { + switch (this->type) + { + case ImGuiToastType_Success: + return "Success"; + case ImGuiToastType_Warning: + return "Warning"; + case ImGuiToastType_Error: + return "Error"; + case ImGuiToastType_Info: + return "Info"; + case ImGuiToastType_None: + default: + return NULL; + } + } + + return this->title; + }; + + NOTIFY_INLINE const ImGuiToastType get_type() { return this->type; }; + + NOTIFY_INLINE const ImVec4 get_color() + { + switch (this->type) + { + case ImGuiToastType_Success: + return { 0, 255, 0, 255 }; // Green + case ImGuiToastType_Warning: + return { 255, 255, 0, 255 }; // Yellow + case ImGuiToastType_Error: + return { 255, 0, 0, 255 }; // Error + case ImGuiToastType_Info: + return { 0, 157, 255, 255 }; // Blue + case ImGuiToastType_None: + default: + return { 255, 255, 255, 255 }; // White + } + } + + NOTIFY_INLINE const char* get_icon() + { + switch (this->type) + { + case ImGuiToastType_Success: + return ICON_FA_CHECK_CIRCLE; + case ImGuiToastType_Warning: + return ICON_FA_EXCLAMATION_TRIANGLE; + case ImGuiToastType_Error: + return ICON_FA_TIMES_CIRCLE; + case ImGuiToastType_Info: + return ICON_FA_INFO_CIRCLE; + case ImGuiToastType_None: + default: + return NULL; + } + } + + NOTIFY_INLINE char* get_content() { return this->content; }; + + NOTIFY_INLINE uint64_t get_elapsed_time() { return GetTickCount64() - this->creation_time; } + + NOTIFY_INLINE const ImGuiToastPhase get_phase() + { + const auto elapsed = get_elapsed_time(); + + if (elapsed > NOTIFY_FADE_IN_OUT_TIME + this->dismiss_time + NOTIFY_FADE_IN_OUT_TIME) + { + return ImGuiToastPhase_Expired; + } + else if (elapsed > NOTIFY_FADE_IN_OUT_TIME + this->dismiss_time) + { + return ImGuiToastPhase_FadeOut; + } + else if (elapsed > NOTIFY_FADE_IN_OUT_TIME) + { + return ImGuiToastPhase_Wait; + } + else + { + return ImGuiToastPhase_FadeIn; + } + } + + NOTIFY_INLINE const float get_fade_percent() + { + const auto phase = get_phase(); + const auto elapsed = get_elapsed_time(); + + if (phase == ImGuiToastPhase_FadeIn) + { + return ((float)elapsed / (float)NOTIFY_FADE_IN_OUT_TIME) * NOTIFY_OPACITY; + } + else if (phase == ImGuiToastPhase_FadeOut) + { + return (1.f - (((float)elapsed - (float)NOTIFY_FADE_IN_OUT_TIME - (float)this->dismiss_time) / (float)NOTIFY_FADE_IN_OUT_TIME)) * NOTIFY_OPACITY; + } + + return 1.f * NOTIFY_OPACITY; + } + +public: + // Constructors + + ImGuiToast(ImGuiToastType type, int dismiss_time = NOTIFY_DEFAULT_DISMISS) + { + IM_ASSERT(type < ImGuiToastType_COUNT); + + this->type = type; + this->dismiss_time = dismiss_time; + this->creation_time = GetTickCount64(); + + memset(this->title, 0, sizeof(this->title)); + memset(this->content, 0, sizeof(this->content)); + } + + ImGuiToast(ImGuiToastType type, const char* format, ...) : ImGuiToast(type) { NOTIFY_FORMAT(this->set_content, format); } + + ImGuiToast(ImGuiToastType type, int dismiss_time, const char* format, ...) : ImGuiToast(type, dismiss_time) { NOTIFY_FORMAT(this->set_content, format); } +}; + +namespace ImGui +{ + NOTIFY_INLINE std::vector notifications; + + /// + /// Insert a new toast in the list + /// + NOTIFY_INLINE VOID InsertNotification(const ImGuiToast& toast) + { + notifications.push_back(toast); + } + + /// + /// Remove a toast from the list by its index + /// + /// index of the toast to remove + NOTIFY_INLINE VOID RemoveNotification(int index) + { + notifications.erase(notifications.begin() + index); + } + + /// + /// Render toasts, call at the end of your rendering! + /// + NOTIFY_INLINE VOID RenderNotifications() + { + const auto vp_size = GetMainViewport()->Size; + + float height = 0.f; + + for (auto i = 0; i < notifications.size(); i++) + { + auto* current_toast = ¬ifications[i]; + + // Remove toast if expired + if (current_toast->get_phase() == ImGuiToastPhase_Expired) + { + RemoveNotification(i); + continue; + } + + // Get icon, title and other data + const auto icon = current_toast->get_icon(); + const auto title = current_toast->get_title(); + const auto content = current_toast->get_content(); + const auto default_title = current_toast->get_default_title(); + const auto opacity = current_toast->get_fade_percent(); // Get opacity based of the current phase + + // Window rendering + auto text_color = current_toast->get_color(); + text_color.w = opacity; + + // Generate new unique name for this toast + char window_name[50]; + sprintf_s(window_name, "##TOAST%d", i); + + //PushStyleColor(ImGuiCol_Text, text_color); + SetNextWindowBgAlpha(opacity); + SetNextWindowPos(ImVec2(vp_size.x - NOTIFY_PADDING_X, vp_size.y - NOTIFY_PADDING_Y - height), ImGuiCond_Always, ImVec2(1.0f, 1.0f)); + Begin(window_name, NULL, NOTIFY_TOAST_FLAGS); + + // Here we render the toast content + { + PushTextWrapPos(vp_size.x / 3.f); // We want to support multi-line text, this will wrap the text after 1/3 of the screen width + + bool was_title_rendered = false; + + // If an icon is set + if (!NOTIFY_NULL_OR_EMPTY(icon)) + { + //Text(icon); // Render icon text + TextColored(text_color, icon); + was_title_rendered = true; + } + + // If a title is set + if (!NOTIFY_NULL_OR_EMPTY(title)) + { + // If a title and an icon is set, we want to render on same line + if (!NOTIFY_NULL_OR_EMPTY(icon)) + SameLine(); + + Text(title); // Render title text + was_title_rendered = true; + } + else if (!NOTIFY_NULL_OR_EMPTY(default_title)) + { + if (!NOTIFY_NULL_OR_EMPTY(icon)) + SameLine(); + + Text(default_title); // Render default title text (ImGuiToastType_Success -> "Success", etc...) + was_title_rendered = true; + } + + // In case ANYTHING was rendered in the top, we want to add a small padding so the text (or icon) looks centered vertically + if (was_title_rendered && !NOTIFY_NULL_OR_EMPTY(content)) + { + SetCursorPosY(GetCursorPosY() + 5.f); // Must be a better way to do this!!!! + } + + // If a content is set + if (!NOTIFY_NULL_OR_EMPTY(content)) + { + if (was_title_rendered) + { +#ifdef NOTIFY_USE_SEPARATOR + Separator(); +#endif + } + + Text(content); // Render content text + } + + PopTextWrapPos(); + } + + // Save height for next toasts + height += GetWindowHeight() + NOTIFY_PADDING_MESSAGE_Y; + + // End + End(); + } + } + + /// + /// Adds font-awesome font, must be called ONCE on initialization + /// Fonts are loaded from read-only memory, should be set to false! + /// + NOTIFY_INLINE VOID MergeIconsWithLatestFont(float font_size, bool FontDataOwnedByAtlas = false) + { + static const ImWchar icons_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 }; + + ImFontConfig icons_config; + icons_config.MergeMode = true; + icons_config.PixelSnapH = true; + icons_config.FontDataOwnedByAtlas = FontDataOwnedByAtlas; + + GetIO().Fonts->AddFontFromMemoryTTF((void*)fa_solid_900, sizeof(fa_solid_900), font_size, &icons_config, icons_ranges); + } +} + +#endif diff --git a/cheat-base/vendor/json b/cheat-base/vendor/json new file mode 160000 index 0000000..a944306 --- /dev/null +++ b/cheat-base/vendor/json @@ -0,0 +1 @@ +Subproject commit a94430615d8360272151f602b8c9eeb58509ecde diff --git a/cheat-base/vendor/magic_enum b/cheat-base/vendor/magic_enum new file mode 160000 index 0000000..d1ccd22 --- /dev/null +++ b/cheat-base/vendor/magic_enum @@ -0,0 +1 @@ +Subproject commit d1ccd22c853ac3afaf7a0f1c86019ea641e777c5 diff --git a/cheat-base/vendor/simpleIni b/cheat-base/vendor/simpleIni new file mode 160000 index 0000000..9b3ed7e --- /dev/null +++ b/cheat-base/vendor/simpleIni @@ -0,0 +1 @@ +Subproject commit 9b3ed7ec815997bc8c5b9edf140d6bde653e1458 diff --git a/cheat-base/vendor/stb b/cheat-base/vendor/stb new file mode 160000 index 0000000..af1a5bc --- /dev/null +++ b/cheat-base/vendor/stb @@ -0,0 +1 @@ +Subproject commit af1a5bc352164740c1cc1354942b1c6b72eacb8a diff --git a/cheat-library/cheat-library.vcxproj b/cheat-library/cheat-library.vcxproj index f0ce3a5..938c611 100644 --- a/cheat-library/cheat-library.vcxproj +++ b/cheat-library/cheat-library.vcxproj @@ -1,14 +1,6 @@ - - Debug - Win32 - - - Release - Win32 - Debug x64 @@ -17,28 +9,808 @@ Release x64 + + Release_WS + x64 + + + + + false + true + + + false + true + + + false + true + + + false + true + + + false + true + + + true + true + + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + + + false + true + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + false + true + + + false + true + + + false + true + + + false + true + + + false + true + + + true + true + + + true + true + + + + + + + + + + + + + + + + NotUsing + NotUsing + NotUsing + + + + + Create + Create + Create + + + + + + + + + + + + + + true + true + + + false + true + + + true + true + + + + + + + + + + + + + + + + + + + + + + True + + + + {adb35022-823b-4dc0-b495-3efefbd3a82f} + + + {f578b30c-8de6-4741-99e4-1d30d2acdac4} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 16.0 Win32Proj - {704c8746-1bd9-4bc8-9ebe-8187f1a1ad72} + {ce178784-cb96-45ca-ae16-fc0da1126970} cheatlibrary 10.0 - - DynamicLibrary - true - v143 - MultiByte - - - DynamicLibrary - false - v143 - true - MultiByte - DynamicLibrary true @@ -52,145 +824,89 @@ true MultiByte + + DynamicLibrary + false + v143 + true + MultiByte + - - - - - - + + + - - true - CLibrary - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\ - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\obj\ - - - BuildCompile - - - true - CLibrary - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\ - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\obj\ - Run - true - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\ - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\obj\ CLibrary - - - BuildCompile + $(SolutionDir)bin\$(Configuration)\ + $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + Run + false + FinalizeBuildStatus - true - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\ - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\obj\ + false CLibrary + $(SolutionDir)bin\$(Configuration)\ + $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ Run + true + FinalizeBuildStatus + + + false + CLibrary + $(SolutionDir)bin\$(Configuration)\ + $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + Run + false + FinalizeBuildStatus - - - Level3 - true - _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING; _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;WIN32;_DEBUG;CHEATLIBRARY_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - Use - pch.h - Default - $(ProjectDir)src/appdata;$(ProjectDir)src/framework;$(ProjectDir)src/user;$(ProjectDir)vendor/include; - - - Windows - true - false - false - $(ProjectDir)vendor/libraries/ - HookLib\HookLib-$(PlatformShortName)-$(Configuration).lib;ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - copy "$(OutDir)$(TargetName)$(TargetExt)" /Y "$(SolutionDir)injector\bin\$(PlatformShortName)\$(Configuration)\CLibrary.dll" - - - cd $(ProjectDir)batch -inject-dll.bat "$(SolutionDir)injector\bin\$(PlatformShortName)\$(Configuration)\injector.exe" "$(OutDir)$(TargetFileName)" "GenshinImpact.exe" - - - - - - - Level3 - true - true - true - _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING; _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;WIN32;NDEBUG;CHEATLIBRARY_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - Use - pch.h - Default - $(ProjectDir)src/appdata;$(ProjectDir)src/framework;$(ProjectDir)src/user;$(ProjectDir)vendor/include; - - - Windows - true - true - true - false - false - $(ProjectDir)vendor/libraries/ - spdlogd.lib;HookLib\HookLib-$(PlatformShortName)-$(Configuration).lib;ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - copy "$(OutDir)$(TargetName)$(TargetExt)" /Y "$(SolutionDir)injector\bin\$(PlatformShortName)\$(Configuration)\CLibrary.dll" - - Level3 true - _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING; _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_DEBUG;CHEATLIBRARY_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + _AMD64_;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_WINDOWS;_USRDLL;_DEBUG;CHEATLIBRARY_EXPORTS;_PACKET_SNIFFER;%(PreprocessorDefinitions) true Use pch-il2cpp.h - $(ProjectDir)src/appdata;$(ProjectDir)src/framework;$(ProjectDir)src/user;$(ProjectDir)vendor/include; stdcpp17 - - - Default - true + $(ProjectDir)src/appdata;$(ProjectDir)src/framework;$(ProjectDir)res/;$(ProjectDir)vendor/protobuf/src/;$(ProjectDir)src/user;$(SolutionDir)cheat-base/src/;$(SolutionDir)cheat-base/vendor/imgui/;$(SolutionDir)cheat-base/vendor/json/single_include/;$(SolutionDir)cheat-base/vendor/magic_enum/include/;$(SolutionDir)cheat-base/vendor/fmt/include/;$(SolutionDir)cheat-base/vendor/imgui-notify-v2/;$(SolutionDir)cheat-base/vendor/simpleIni/;$(SolutionDir)cheat-base/vendor/detours/ + EnableFastChecks + MultiThreadedDebugDLL + Disabled + false + false + ProgramDatabase Windows true false - false - $(ProjectDir)vendor/libraries/ - HookLib\HookLib-$(PlatformShortName)-$(Configuration).lib;ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(OutDir);$(ProjectDir)vendor\lib\ + cheat-base.lib;ntdll.lib;libprotobufd.lib;%(AdditionalDependencies) + RequireAdministrator -copy "$(OutDir)$(TargetName)$(TargetExt)" /Y "$(SolutionDir)injector\bin\$(PlatformShortName)\$(Configuration)\CLibrary.dll" -exit 0 + - cd $(ProjectDir)batch -inject-dll.bat "$(SolutionDir)injector\bin\$(PlatformShortName)\$(Configuration)\injector.exe" "$(OutDir)$(TargetFileName)" "GenshinImpact.exe" - - + "$(OutDir)injector.exe" +powershell -nop -c "& {sleep 15}" + $(OutDir)_noexist.nope;%(Outputs) + $(TargetPath);%(Inputs) @@ -199,72 +915,73 @@ inject-dll.bat "$(SolutionDir)injector\bin\$(PlatformShortName)\$(Configuration) true true true - _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING; _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;NDEBUG;CHEATLIBRARY_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + _AMD64_;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;CHEATLIBRARY_EXPORTS;_WINDOWS;_USRDLL;NDEBUG;CHEATLIBRARYNEW_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true Use - pch.h - Default - $(ProjectDir)src/appdata;$(ProjectDir)src/framework;$(ProjectDir)src/user;$(ProjectDir)vendor/include; + pch-il2cpp.h + stdcpp17 + $(ProjectDir)src/appdata;$(ProjectDir)src/framework;$(ProjectDir)res/;$(ProjectDir)vendor/protobuf/src/;$(ProjectDir)src/user;$(SolutionDir)cheat-base/src/;$(SolutionDir)cheat-base/vendor/imgui/;$(SolutionDir)cheat-base/vendor/json/single_include/;$(SolutionDir)cheat-base/vendor/magic_enum/include/;$(SolutionDir)cheat-base/vendor/fmt/include/;$(SolutionDir)cheat-base/vendor/imgui-notify-v2/;$(SolutionDir)cheat-base/vendor/simpleIni/;$(SolutionDir)cheat-base/vendor/imgui-notify-v2/;$(SolutionDir)cheat-base/vendor/detours/ + MaxSpeed + true + None + false + Async + Speed Windows true true - true + false false - false - $(ProjectDir)vendor/libraries/ - spdlogd.lib;HookLib\HookLib-$(PlatformShortName)-$(Configuration).lib;ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(OutDir);$(ProjectDir)vendor\lib\ + cheat-base.lib;ntdll.lib;%(AdditionalDependencies) + RequireAdministrator - - copy "$(OutDir)$(TargetName)$(TargetExt)" /Y "$(SolutionDir)injector\bin\$(PlatformShortName)\$(Configuration)\CLibrary.dll" - + + "$(OutDir)injector.exe" +powershell -nop -c "& {sleep 15}" + $(OutDir)_noexist.nope;%(Outputs) + $(TargetPath);%(Inputs) + - - - - - - - - - - - - - - - - - - - - - - - - CppCode - - - - - - NotUsing - NotUsing - NotUsing - NotUsing + + + Level3 + true + true + true + _AMD64_;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;CHEATLIBRARY_EXPORTS;_WINDOWS;_USRDLL;NDEBUG;CHEATLIBRARYNEW_EXPORTS;_WINDOWS;_USRDLL;_PATTERN_SCANNER;%(PreprocessorDefinitions) + true + Use + pch-il2cpp.h + stdcpp17 + $(ProjectDir)src/appdata;$(ProjectDir)src/framework;$(ProjectDir)res/;$(ProjectDir)vendor/protobuf/src/;$(ProjectDir)src/user;$(SolutionDir)cheat-base/src/;$(SolutionDir)cheat-base/vendor/imgui/;$(SolutionDir)cheat-base/vendor/json/single_include/;$(SolutionDir)cheat-base/vendor/magic_enum/include/;$(SolutionDir)cheat-base/vendor/fmt/include/;$(SolutionDir)cheat-base/vendor/imgui-notify-v2/;$(SolutionDir)cheat-base/vendor/simpleIni/;$(SolutionDir)cheat-base/vendor/detours/ + MaxSpeed + true + None + false + Async + Speed + Classic - - - - Create - - - - - - - + + Windows + true + true + false + false + $(OutDir)..\Release\;$(ProjectDir)vendor\lib\;$(OutDir) + cheat-base.lib;ntdll.lib;%(AdditionalDependencies) + RequireAdministrator + + + "$(OutDir)injector.exe" +powershell -nop -c "& {sleep 15}" + $(OutDir)_noexist.nope;%(Outputs) + $(TargetPath);%(Inputs) + + diff --git a/cheat-library/cheat-library.vcxproj.filters b/cheat-library/cheat-library.vcxproj.filters index e239ffc..3403490 100644 --- a/cheat-library/cheat-library.vcxproj.filters +++ b/cheat-library/cheat-library.vcxproj.filters @@ -33,6 +33,9 @@ Header Files + + Header Files + Header Files @@ -45,33 +48,178 @@ Header Files + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - - Source Files - - + Header Files + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + @@ -86,26 +234,1876 @@ Source Files + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + Source Files - + + Resource Files + + + + + + + + + + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + \ No newline at end of file diff --git a/cheat-library/packages.config b/cheat-library/packages.config deleted file mode 100644 index 0231060..0000000 --- a/cheat-library/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/cheat-library/res/Ruda-Bold.ttf b/cheat-library/res/Ruda-Bold.ttf new file mode 100644 index 0000000..2c484bd Binary files /dev/null and b/cheat-library/res/Ruda-Bold.ttf differ diff --git a/cheat-library/res/Ruda-ExtraBold.ttf b/cheat-library/res/Ruda-ExtraBold.ttf new file mode 100644 index 0000000..2204f39 Binary files /dev/null and b/cheat-library/res/Ruda-ExtraBold.ttf differ diff --git a/cheat-library/res/assembly_checksum.json b/cheat-library/res/assembly_checksum.json new file mode 100644 index 0000000..b1cae6a --- /dev/null +++ b/cheat-library/res/assembly_checksum.json @@ -0,0 +1,13 @@ +{ + "game_version": "2.6", + "modules": { + "UnityPlayer.dll": { + "checksum": 1499808152269523874, + "timestamp": 132918960850629156 + }, + "UserAssembly.dll": { + "checksum": 6469164240778644427, + "timestamp": 132918960789354191 + } + } +} \ No newline at end of file diff --git a/cheat-library/res/icons/AbidingAngelfish.png b/cheat-library/res/icons/AbidingAngelfish.png new file mode 100644 index 0000000..61e399e Binary files /dev/null and b/cheat-library/res/icons/AbidingAngelfish.png differ diff --git a/cheat-library/res/icons/AbyssHerald.png b/cheat-library/res/icons/AbyssHerald.png new file mode 100644 index 0000000..af47136 Binary files /dev/null and b/cheat-library/res/icons/AbyssHerald.png differ diff --git a/cheat-library/res/icons/AbyssMage.png b/cheat-library/res/icons/AbyssMage.png new file mode 100644 index 0000000..fdf1ae0 Binary files /dev/null and b/cheat-library/res/icons/AbyssMage.png differ diff --git a/cheat-library/res/icons/AdornedUnagi.png b/cheat-library/res/icons/AdornedUnagi.png new file mode 100644 index 0000000..bcd3c6c Binary files /dev/null and b/cheat-library/res/icons/AdornedUnagi.png differ diff --git a/cheat-library/res/icons/AizenMedaka.png b/cheat-library/res/icons/AizenMedaka.png new file mode 100644 index 0000000..67b97a0 Binary files /dev/null and b/cheat-library/res/icons/AizenMedaka.png differ diff --git a/cheat-library/res/icons/AkaiMaou.png b/cheat-library/res/icons/AkaiMaou.png new file mode 100644 index 0000000..6e9cbfe Binary files /dev/null and b/cheat-library/res/icons/AkaiMaou.png differ diff --git a/cheat-library/res/icons/AmakumoFruit.png b/cheat-library/res/icons/AmakumoFruit.png new file mode 100644 index 0000000..08a4989 Binary files /dev/null and b/cheat-library/res/icons/AmakumoFruit.png differ diff --git a/cheat-library/res/icons/AmethystLump.png b/cheat-library/res/icons/AmethystLump.png new file mode 100644 index 0000000..1dc45fc Binary files /dev/null and b/cheat-library/res/icons/AmethystLump.png differ diff --git a/cheat-library/res/icons/AncientRime.png b/cheat-library/res/icons/AncientRime.png new file mode 100644 index 0000000..f4d3423 Binary files /dev/null and b/cheat-library/res/icons/AncientRime.png differ diff --git a/cheat-library/res/icons/AnemoCrystalfly.png b/cheat-library/res/icons/AnemoCrystalfly.png new file mode 100644 index 0000000..07a9a1d Binary files /dev/null and b/cheat-library/res/icons/AnemoCrystalfly.png differ diff --git a/cheat-library/res/icons/AnemoHypostasis.png b/cheat-library/res/icons/AnemoHypostasis.png new file mode 100644 index 0000000..46241e7 Binary files /dev/null and b/cheat-library/res/icons/AnemoHypostasis.png differ diff --git a/cheat-library/res/icons/Anemoculus.png b/cheat-library/res/icons/Anemoculus.png new file mode 100644 index 0000000..f878be2 Binary files /dev/null and b/cheat-library/res/icons/Anemoculus.png differ diff --git a/cheat-library/res/icons/AphotiumOre.png b/cheat-library/res/icons/AphotiumOre.png new file mode 100644 index 0000000..a5ba0b4 Binary files /dev/null and b/cheat-library/res/icons/AphotiumOre.png differ diff --git a/cheat-library/res/icons/Apple.png b/cheat-library/res/icons/Apple.png new file mode 100644 index 0000000..86096b8 Binary files /dev/null and b/cheat-library/res/icons/Apple.png differ diff --git a/cheat-library/res/icons/AraliaWood.png b/cheat-library/res/icons/AraliaWood.png new file mode 100644 index 0000000..40d56f9 Binary files /dev/null and b/cheat-library/res/icons/AraliaWood.png differ diff --git a/cheat-library/res/icons/ArchaicStone.png b/cheat-library/res/icons/ArchaicStone.png new file mode 100644 index 0000000..9ab4c7a Binary files /dev/null and b/cheat-library/res/icons/ArchaicStone.png differ diff --git a/cheat-library/res/icons/Artifact.png b/cheat-library/res/icons/Artifact.png new file mode 100644 index 0000000..c2d7e78 Binary files /dev/null and b/cheat-library/res/icons/Artifact.png differ diff --git a/cheat-library/res/icons/BakeDanuki.png b/cheat-library/res/icons/BakeDanuki.png new file mode 100644 index 0000000..ee75622 Binary files /dev/null and b/cheat-library/res/icons/BakeDanuki.png differ diff --git a/cheat-library/res/icons/BambooSegment.png b/cheat-library/res/icons/BambooSegment.png new file mode 100644 index 0000000..837e9e2 Binary files /dev/null and b/cheat-library/res/icons/BambooSegment.png differ diff --git a/cheat-library/res/icons/BambooShoot.png b/cheat-library/res/icons/BambooShoot.png new file mode 100644 index 0000000..cf1f4d2 Binary files /dev/null and b/cheat-library/res/icons/BambooShoot.png differ diff --git a/cheat-library/res/icons/BathysmalVishap.png b/cheat-library/res/icons/BathysmalVishap.png new file mode 100644 index 0000000..d942e1d Binary files /dev/null and b/cheat-library/res/icons/BathysmalVishap.png differ diff --git a/cheat-library/res/icons/BathysmalVishapHerd.png b/cheat-library/res/icons/BathysmalVishapHerd.png new file mode 100644 index 0000000..ff707a0 Binary files /dev/null and b/cheat-library/res/icons/BathysmalVishapHerd.png differ diff --git a/cheat-library/res/icons/Berry.png b/cheat-library/res/icons/Berry.png new file mode 100644 index 0000000..374aaf3 Binary files /dev/null and b/cheat-library/res/icons/Berry.png differ diff --git a/cheat-library/res/icons/Betta.png b/cheat-library/res/icons/Betta.png new file mode 100644 index 0000000..4d27e11 Binary files /dev/null and b/cheat-library/res/icons/Betta.png differ diff --git a/cheat-library/res/icons/BirchWood.png b/cheat-library/res/icons/BirchWood.png new file mode 100644 index 0000000..d79f468 Binary files /dev/null and b/cheat-library/res/icons/BirchWood.png differ diff --git a/cheat-library/res/icons/BirdEgg.png b/cheat-library/res/icons/BirdEgg.png new file mode 100644 index 0000000..de02e1c Binary files /dev/null and b/cheat-library/res/icons/BirdEgg.png differ diff --git a/cheat-library/res/icons/BitterPufferfish.png b/cheat-library/res/icons/BitterPufferfish.png new file mode 100644 index 0000000..914906f Binary files /dev/null and b/cheat-library/res/icons/BitterPufferfish.png differ diff --git a/cheat-library/res/icons/BlackKingPigeon.png b/cheat-library/res/icons/BlackKingPigeon.png new file mode 100644 index 0000000..f795d8e Binary files /dev/null and b/cheat-library/res/icons/BlackKingPigeon.png differ diff --git a/cheat-library/res/icons/BlazingAxeMitachurl.png b/cheat-library/res/icons/BlazingAxeMitachurl.png new file mode 100644 index 0000000..9d4ed67 Binary files /dev/null and b/cheat-library/res/icons/BlazingAxeMitachurl.png differ diff --git a/cheat-library/res/icons/BloattyFloatty.png b/cheat-library/res/icons/BloattyFloatty.png new file mode 100644 index 0000000..d6684fb Binary files /dev/null and b/cheat-library/res/icons/BloattyFloatty.png differ diff --git a/cheat-library/res/icons/BlueFrog.png b/cheat-library/res/icons/BlueFrog.png new file mode 100644 index 0000000..ccdd5b1 Binary files /dev/null and b/cheat-library/res/icons/BlueFrog.png differ diff --git a/cheat-library/res/icons/BlueHornedLizard.png b/cheat-library/res/icons/BlueHornedLizard.png new file mode 100644 index 0000000..8653672 Binary files /dev/null and b/cheat-library/res/icons/BlueHornedLizard.png differ diff --git a/cheat-library/res/icons/BluethunderWeasel.png b/cheat-library/res/icons/BluethunderWeasel.png new file mode 100644 index 0000000..c3ce9c9 Binary files /dev/null and b/cheat-library/res/icons/BluethunderWeasel.png differ diff --git a/cheat-library/res/icons/Book.png b/cheat-library/res/icons/Book.png new file mode 100644 index 0000000..358a2a7 Binary files /dev/null and b/cheat-library/res/icons/Book.png differ diff --git a/cheat-library/res/icons/BootWeasel.png b/cheat-library/res/icons/BootWeasel.png new file mode 100644 index 0000000..a5e8361 Binary files /dev/null and b/cheat-library/res/icons/BootWeasel.png differ diff --git a/cheat-library/res/icons/BrightcrownPigeon.png b/cheat-library/res/icons/BrightcrownPigeon.png new file mode 100644 index 0000000..b6fd5c4 Binary files /dev/null and b/cheat-library/res/icons/BrightcrownPigeon.png differ diff --git a/cheat-library/res/icons/BrownShirakodai.png b/cheat-library/res/icons/BrownShirakodai.png new file mode 100644 index 0000000..c3a1fae Binary files /dev/null and b/cheat-library/res/icons/BrownShirakodai.png differ diff --git a/cheat-library/res/icons/BuriedChest.png b/cheat-library/res/icons/BuriedChest.png new file mode 100644 index 0000000..3f1052b Binary files /dev/null and b/cheat-library/res/icons/BuriedChest.png differ diff --git a/cheat-library/res/icons/ButterflyWings.png b/cheat-library/res/icons/ButterflyWings.png new file mode 100644 index 0000000..b46b4b4 Binary files /dev/null and b/cheat-library/res/icons/ButterflyWings.png differ diff --git a/cheat-library/res/icons/CallaLily.png b/cheat-library/res/icons/CallaLily.png new file mode 100644 index 0000000..971f793 Binary files /dev/null and b/cheat-library/res/icons/CallaLily.png differ diff --git a/cheat-library/res/icons/CampfireTorch.png b/cheat-library/res/icons/CampfireTorch.png new file mode 100644 index 0000000..d728ef4 Binary files /dev/null and b/cheat-library/res/icons/CampfireTorch.png differ diff --git a/cheat-library/res/icons/Carrot.png b/cheat-library/res/icons/Carrot.png new file mode 100644 index 0000000..bd07e3e Binary files /dev/null and b/cheat-library/res/icons/Carrot.png differ diff --git a/cheat-library/res/icons/Cecilia.png b/cheat-library/res/icons/Cecilia.png new file mode 100644 index 0000000..8676288 Binary files /dev/null and b/cheat-library/res/icons/Cecilia.png differ diff --git a/cheat-library/res/icons/ChilledMeat.png b/cheat-library/res/icons/ChilledMeat.png new file mode 100644 index 0000000..dbd6ec1 Binary files /dev/null and b/cheat-library/res/icons/ChilledMeat.png differ diff --git a/cheat-library/res/icons/CommonChest.png b/cheat-library/res/icons/CommonChest.png new file mode 100644 index 0000000..3f1052b Binary files /dev/null and b/cheat-library/res/icons/CommonChest.png differ diff --git a/cheat-library/res/icons/CookingIngredient.png b/cheat-library/res/icons/CookingIngredient.png new file mode 100644 index 0000000..a88f406 Binary files /dev/null and b/cheat-library/res/icons/CookingIngredient.png differ diff --git a/cheat-library/res/icons/CorLapis.png b/cheat-library/res/icons/CorLapis.png new file mode 100644 index 0000000..3fd0007 Binary files /dev/null and b/cheat-library/res/icons/CorLapis.png differ diff --git a/cheat-library/res/icons/CoralButterfly.png b/cheat-library/res/icons/CoralButterfly.png new file mode 100644 index 0000000..68c554d Binary files /dev/null and b/cheat-library/res/icons/CoralButterfly.png differ diff --git a/cheat-library/res/icons/Crab.png b/cheat-library/res/icons/Crab.png new file mode 100644 index 0000000..4ad0c95 Binary files /dev/null and b/cheat-library/res/icons/Crab.png differ diff --git a/cheat-library/res/icons/CracklingAxeMitachurl.png b/cheat-library/res/icons/CracklingAxeMitachurl.png new file mode 100644 index 0000000..81b7d76 Binary files /dev/null and b/cheat-library/res/icons/CracklingAxeMitachurl.png differ diff --git a/cheat-library/res/icons/CrimsonAgate.png b/cheat-library/res/icons/CrimsonAgate.png new file mode 100644 index 0000000..8573394 Binary files /dev/null and b/cheat-library/res/icons/CrimsonAgate.png differ diff --git a/cheat-library/res/icons/CrimsonFinch.png b/cheat-library/res/icons/CrimsonFinch.png new file mode 100644 index 0000000..44c1e44 Binary files /dev/null and b/cheat-library/res/icons/CrimsonFinch.png differ diff --git a/cheat-library/res/icons/CrimsonFox.png b/cheat-library/res/icons/CrimsonFox.png new file mode 100644 index 0000000..b2241de Binary files /dev/null and b/cheat-library/res/icons/CrimsonFox.png differ diff --git a/cheat-library/res/icons/CrimsonflankPigeon.png b/cheat-library/res/icons/CrimsonflankPigeon.png new file mode 100644 index 0000000..48c1cc4 Binary files /dev/null and b/cheat-library/res/icons/CrimsonflankPigeon.png differ diff --git a/cheat-library/res/icons/Crow.png b/cheat-library/res/icons/Crow.png new file mode 100644 index 0000000..06fbff2 Binary files /dev/null and b/cheat-library/res/icons/Crow.png differ diff --git a/cheat-library/res/icons/CryoCrystalfly.png b/cheat-library/res/icons/CryoCrystalfly.png new file mode 100644 index 0000000..ce520c2 Binary files /dev/null and b/cheat-library/res/icons/CryoCrystalfly.png differ diff --git a/cheat-library/res/icons/CryoHypostasis.png b/cheat-library/res/icons/CryoHypostasis.png new file mode 100644 index 0000000..69f50f9 Binary files /dev/null and b/cheat-library/res/icons/CryoHypostasis.png differ diff --git a/cheat-library/res/icons/CryoRegisvine.png b/cheat-library/res/icons/CryoRegisvine.png new file mode 100644 index 0000000..badf849 Binary files /dev/null and b/cheat-library/res/icons/CryoRegisvine.png differ diff --git a/cheat-library/res/icons/CrystalChunk.png b/cheat-library/res/icons/CrystalChunk.png new file mode 100644 index 0000000..4f05267 Binary files /dev/null and b/cheat-library/res/icons/CrystalChunk.png differ diff --git a/cheat-library/res/icons/CrystalCore.png b/cheat-library/res/icons/CrystalCore.png new file mode 100644 index 0000000..1858265 Binary files /dev/null and b/cheat-library/res/icons/CrystalCore.png differ diff --git a/cheat-library/res/icons/CrystalMarrow.png b/cheat-library/res/icons/CrystalMarrow.png new file mode 100644 index 0000000..c983db2 Binary files /dev/null and b/cheat-library/res/icons/CrystalMarrow.png differ diff --git a/cheat-library/res/icons/Crystalfish.png b/cheat-library/res/icons/Crystalfish.png new file mode 100644 index 0000000..e4b98df Binary files /dev/null and b/cheat-library/res/icons/Crystalfish.png differ diff --git a/cheat-library/res/icons/CubeDevices.png b/cheat-library/res/icons/CubeDevices.png new file mode 100644 index 0000000..42bed29 Binary files /dev/null and b/cheat-library/res/icons/CubeDevices.png differ diff --git a/cheat-library/res/icons/CuihuaWood.png b/cheat-library/res/icons/CuihuaWood.png new file mode 100644 index 0000000..c1c73e7 Binary files /dev/null and b/cheat-library/res/icons/CuihuaWood.png differ diff --git a/cheat-library/res/icons/DamagedStoneSlate.png b/cheat-library/res/icons/DamagedStoneSlate.png new file mode 100644 index 0000000..3f30553 Binary files /dev/null and b/cheat-library/res/icons/DamagedStoneSlate.png differ diff --git a/cheat-library/res/icons/DandelionSeed.png b/cheat-library/res/icons/DandelionSeed.png new file mode 100644 index 0000000..5a10500 Binary files /dev/null and b/cheat-library/res/icons/DandelionSeed.png differ diff --git a/cheat-library/res/icons/Dandy.png b/cheat-library/res/icons/Dandy.png new file mode 100644 index 0000000..ca8973f Binary files /dev/null and b/cheat-library/res/icons/Dandy.png differ diff --git a/cheat-library/res/icons/Dawncatcher.png b/cheat-library/res/icons/Dawncatcher.png new file mode 100644 index 0000000..7565127 Binary files /dev/null and b/cheat-library/res/icons/Dawncatcher.png differ diff --git a/cheat-library/res/icons/DayNightSwitchingMechanism.png b/cheat-library/res/icons/DayNightSwitchingMechanism.png new file mode 100644 index 0000000..7543c02 Binary files /dev/null and b/cheat-library/res/icons/DayNightSwitchingMechanism.png differ diff --git a/cheat-library/res/icons/DeepSeaUnagi.png b/cheat-library/res/icons/DeepSeaUnagi.png new file mode 100644 index 0000000..547f498 Binary files /dev/null and b/cheat-library/res/icons/DeepSeaUnagi.png differ diff --git a/cheat-library/res/icons/Dendrobium.png b/cheat-library/res/icons/Dendrobium.png new file mode 100644 index 0000000..222b698 Binary files /dev/null and b/cheat-library/res/icons/Dendrobium.png differ diff --git a/cheat-library/res/icons/DivdaRay.png b/cheat-library/res/icons/DivdaRay.png new file mode 100644 index 0000000..99adadc Binary files /dev/null and b/cheat-library/res/icons/DivdaRay.png differ diff --git a/cheat-library/res/icons/DoNotPublish.png b/cheat-library/res/icons/DoNotPublish.png new file mode 100644 index 0000000..d59aa15 Binary files /dev/null and b/cheat-library/res/icons/DoNotPublish.png differ diff --git a/cheat-library/res/icons/Domain.png b/cheat-library/res/icons/Domain.png new file mode 100644 index 0000000..7ccb05b Binary files /dev/null and b/cheat-library/res/icons/Domain.png differ diff --git a/cheat-library/res/icons/EchoingConch.png b/cheat-library/res/icons/EchoingConch.png new file mode 100644 index 0000000..de005d8 Binary files /dev/null and b/cheat-library/res/icons/EchoingConch.png differ diff --git a/cheat-library/res/icons/EightStoneTablets.png b/cheat-library/res/icons/EightStoneTablets.png new file mode 100644 index 0000000..bfbd8cb Binary files /dev/null and b/cheat-library/res/icons/EightStoneTablets.png differ diff --git a/cheat-library/res/icons/ElectricConduction.png b/cheat-library/res/icons/ElectricConduction.png new file mode 100644 index 0000000..0ca4c0e Binary files /dev/null and b/cheat-library/res/icons/ElectricConduction.png differ diff --git a/cheat-library/res/icons/ElectroAbyssMage.png b/cheat-library/res/icons/ElectroAbyssMage.png new file mode 100644 index 0000000..0abaec9 Binary files /dev/null and b/cheat-library/res/icons/ElectroAbyssMage.png differ diff --git a/cheat-library/res/icons/ElectroCrystal.png b/cheat-library/res/icons/ElectroCrystal.png new file mode 100644 index 0000000..c8d6824 Binary files /dev/null and b/cheat-library/res/icons/ElectroCrystal.png differ diff --git a/cheat-library/res/icons/ElectroCrystalfly.png b/cheat-library/res/icons/ElectroCrystalfly.png new file mode 100644 index 0000000..102b61e Binary files /dev/null and b/cheat-library/res/icons/ElectroCrystalfly.png differ diff --git a/cheat-library/res/icons/ElectroHypostasis.png b/cheat-library/res/icons/ElectroHypostasis.png new file mode 100644 index 0000000..1d0234c Binary files /dev/null and b/cheat-library/res/icons/ElectroHypostasis.png differ diff --git a/cheat-library/res/icons/ElectroSeelie.png b/cheat-library/res/icons/ElectroSeelie.png new file mode 100644 index 0000000..0df2d14 Binary files /dev/null and b/cheat-library/res/icons/ElectroSeelie.png differ diff --git a/cheat-library/res/icons/ElectroWhopperflower.png b/cheat-library/res/icons/ElectroWhopperflower.png new file mode 100644 index 0000000..cc9eb83 Binary files /dev/null and b/cheat-library/res/icons/ElectroWhopperflower.png differ diff --git a/cheat-library/res/icons/Electroculus.png b/cheat-library/res/icons/Electroculus.png new file mode 100644 index 0000000..cd60943 Binary files /dev/null and b/cheat-library/res/icons/Electroculus.png differ diff --git a/cheat-library/res/icons/Electrogranum.png b/cheat-library/res/icons/Electrogranum.png new file mode 100644 index 0000000..12b7343 Binary files /dev/null and b/cheat-library/res/icons/Electrogranum.png differ diff --git a/cheat-library/res/icons/ElementalMonument.png b/cheat-library/res/icons/ElementalMonument.png new file mode 100644 index 0000000..138e63f Binary files /dev/null and b/cheat-library/res/icons/ElementalMonument.png differ diff --git a/cheat-library/res/icons/EmeraldFinch.png b/cheat-library/res/icons/EmeraldFinch.png new file mode 100644 index 0000000..1283f46 Binary files /dev/null and b/cheat-library/res/icons/EmeraldFinch.png differ diff --git a/cheat-library/res/icons/EnemiesFirstTimeVictory.png b/cheat-library/res/icons/EnemiesFirstTimeVictory.png new file mode 100644 index 0000000..606d15f Binary files /dev/null and b/cheat-library/res/icons/EnemiesFirstTimeVictory.png differ diff --git a/cheat-library/res/icons/EnergyPoint.png b/cheat-library/res/icons/EnergyPoint.png new file mode 100644 index 0000000..4dce2f6 Binary files /dev/null and b/cheat-library/res/icons/EnergyPoint.png differ diff --git a/cheat-library/res/icons/EnkanomiyaPhaseGate.png b/cheat-library/res/icons/EnkanomiyaPhaseGate.png new file mode 100644 index 0000000..9518066 Binary files /dev/null and b/cheat-library/res/icons/EnkanomiyaPhaseGate.png differ diff --git a/cheat-library/res/icons/ExquisiteChest.png b/cheat-library/res/icons/ExquisiteChest.png new file mode 100644 index 0000000..35e6d5b Binary files /dev/null and b/cheat-library/res/icons/ExquisiteChest.png differ diff --git a/cheat-library/res/icons/EyeoftheStorm.png b/cheat-library/res/icons/EyeoftheStorm.png new file mode 100644 index 0000000..df0f15a Binary files /dev/null and b/cheat-library/res/icons/EyeoftheStorm.png differ diff --git a/cheat-library/res/icons/FatuiAgent.png b/cheat-library/res/icons/FatuiAgent.png new file mode 100644 index 0000000..1164f95 Binary files /dev/null and b/cheat-library/res/icons/FatuiAgent.png differ diff --git a/cheat-library/res/icons/FatuiCicinMage.png b/cheat-library/res/icons/FatuiCicinMage.png new file mode 100644 index 0000000..a16ef49 Binary files /dev/null and b/cheat-library/res/icons/FatuiCicinMage.png differ diff --git a/cheat-library/res/icons/FatuiMirrorMaiden.png b/cheat-library/res/icons/FatuiMirrorMaiden.png new file mode 100644 index 0000000..de181c8 Binary files /dev/null and b/cheat-library/res/icons/FatuiMirrorMaiden.png differ diff --git a/cheat-library/res/icons/FatuiSkirmisher.png b/cheat-library/res/icons/FatuiSkirmisher.png new file mode 100644 index 0000000..31f7a4f Binary files /dev/null and b/cheat-library/res/icons/FatuiSkirmisher.png differ diff --git a/cheat-library/res/icons/FirWood.png b/cheat-library/res/icons/FirWood.png new file mode 100644 index 0000000..57ad144 Binary files /dev/null and b/cheat-library/res/icons/FirWood.png differ diff --git a/cheat-library/res/icons/Fish.png b/cheat-library/res/icons/Fish.png new file mode 100644 index 0000000..c3bd1ca Binary files /dev/null and b/cheat-library/res/icons/Fish.png differ diff --git a/cheat-library/res/icons/FishingPoint.png b/cheat-library/res/icons/FishingPoint.png new file mode 100644 index 0000000..314ddb7 Binary files /dev/null and b/cheat-library/res/icons/FishingPoint.png differ diff --git a/cheat-library/res/icons/FlamingFlowerStamen.png b/cheat-library/res/icons/FlamingFlowerStamen.png new file mode 100644 index 0000000..0416e01 Binary files /dev/null and b/cheat-library/res/icons/FlamingFlowerStamen.png differ diff --git a/cheat-library/res/icons/FloatingAnemoSlime.png b/cheat-library/res/icons/FloatingAnemoSlime.png new file mode 100644 index 0000000..c8d4794 Binary files /dev/null and b/cheat-library/res/icons/FloatingAnemoSlime.png differ diff --git a/cheat-library/res/icons/FloatingHydroFungus.png b/cheat-library/res/icons/FloatingHydroFungus.png new file mode 100644 index 0000000..b3b5d96 Binary files /dev/null and b/cheat-library/res/icons/FloatingHydroFungus.png differ diff --git a/cheat-library/res/icons/FluorescentFungus.png b/cheat-library/res/icons/FluorescentFungus.png new file mode 100644 index 0000000..b060d2b Binary files /dev/null and b/cheat-library/res/icons/FluorescentFungus.png differ diff --git a/cheat-library/res/icons/FormaloRay.png b/cheat-library/res/icons/FormaloRay.png new file mode 100644 index 0000000..7ec43b2 Binary files /dev/null and b/cheat-library/res/icons/FormaloRay.png differ diff --git a/cheat-library/res/icons/Fowl.png b/cheat-library/res/icons/Fowl.png new file mode 100644 index 0000000..3b5d249 Binary files /dev/null and b/cheat-library/res/icons/Fowl.png differ diff --git a/cheat-library/res/icons/FragrantCedarWood.png b/cheat-library/res/icons/FragrantCedarWood.png new file mode 100644 index 0000000..3bb39c0 Binary files /dev/null and b/cheat-library/res/icons/FragrantCedarWood.png differ diff --git a/cheat-library/res/icons/Frog.png b/cheat-library/res/icons/Frog.png new file mode 100644 index 0000000..3a209d5 Binary files /dev/null and b/cheat-library/res/icons/Frog.png differ diff --git a/cheat-library/res/icons/FrostarmLawachurl.png b/cheat-library/res/icons/FrostarmLawachurl.png new file mode 100644 index 0000000..bbc0d4e Binary files /dev/null and b/cheat-library/res/icons/FrostarmLawachurl.png differ diff --git a/cheat-library/res/icons/FrostbearingTree.png b/cheat-library/res/icons/FrostbearingTree.png new file mode 100644 index 0000000..05723d4 Binary files /dev/null and b/cheat-library/res/icons/FrostbearingTree.png differ diff --git a/cheat-library/res/icons/GeneralCrab.png b/cheat-library/res/icons/GeneralCrab.png new file mode 100644 index 0000000..57e378f Binary files /dev/null and b/cheat-library/res/icons/GeneralCrab.png differ diff --git a/cheat-library/res/icons/GeoCrystalfly.png b/cheat-library/res/icons/GeoCrystalfly.png new file mode 100644 index 0000000..96cc0ea Binary files /dev/null and b/cheat-library/res/icons/GeoCrystalfly.png differ diff --git a/cheat-library/res/icons/GeoHypostasis.png b/cheat-library/res/icons/GeoHypostasis.png new file mode 100644 index 0000000..3eb9290 Binary files /dev/null and b/cheat-library/res/icons/GeoHypostasis.png differ diff --git a/cheat-library/res/icons/GeoSigil.png b/cheat-library/res/icons/GeoSigil.png new file mode 100644 index 0000000..edea2fe Binary files /dev/null and b/cheat-library/res/icons/GeoSigil.png differ diff --git a/cheat-library/res/icons/Geoculus.png b/cheat-library/res/icons/Geoculus.png new file mode 100644 index 0000000..1f6b0f1 Binary files /dev/null and b/cheat-library/res/icons/Geoculus.png differ diff --git a/cheat-library/res/icons/Geogranum.png b/cheat-library/res/icons/Geogranum.png new file mode 100644 index 0000000..abf7406 Binary files /dev/null and b/cheat-library/res/icons/Geogranum.png differ diff --git a/cheat-library/res/icons/Geovishap.png b/cheat-library/res/icons/Geovishap.png new file mode 100644 index 0000000..c9ad4b1 Binary files /dev/null and b/cheat-library/res/icons/Geovishap.png differ diff --git a/cheat-library/res/icons/GeovishapHatchling.png b/cheat-library/res/icons/GeovishapHatchling.png new file mode 100644 index 0000000..183de82 Binary files /dev/null and b/cheat-library/res/icons/GeovishapHatchling.png differ diff --git a/cheat-library/res/icons/GlazeLily.png b/cheat-library/res/icons/GlazeLily.png new file mode 100644 index 0000000..6b7a058 Binary files /dev/null and b/cheat-library/res/icons/GlazeLily.png differ diff --git a/cheat-library/res/icons/GlazeMedaka.png b/cheat-library/res/icons/GlazeMedaka.png new file mode 100644 index 0000000..0ee5168 Binary files /dev/null and b/cheat-library/res/icons/GlazeMedaka.png differ diff --git a/cheat-library/res/icons/GlimmeringBeaconCannotTeleport.png b/cheat-library/res/icons/GlimmeringBeaconCannotTeleport.png new file mode 100644 index 0000000..15c6043 Binary files /dev/null and b/cheat-library/res/icons/GlimmeringBeaconCannotTeleport.png differ diff --git a/cheat-library/res/icons/GoldenCrab.png b/cheat-library/res/icons/GoldenCrab.png new file mode 100644 index 0000000..22d3ac3 Binary files /dev/null and b/cheat-library/res/icons/GoldenCrab.png differ diff --git a/cheat-library/res/icons/GoldenFinch.png b/cheat-library/res/icons/GoldenFinch.png new file mode 100644 index 0000000..ca4a6e1 Binary files /dev/null and b/cheat-library/res/icons/GoldenFinch.png differ diff --git a/cheat-library/res/icons/GoldenKoi.png b/cheat-library/res/icons/GoldenKoi.png new file mode 100644 index 0000000..c6536a5 Binary files /dev/null and b/cheat-library/res/icons/GoldenKoi.png differ diff --git a/cheat-library/res/icons/GoldenLoach.png b/cheat-library/res/icons/GoldenLoach.png new file mode 100644 index 0000000..45666c3 Binary files /dev/null and b/cheat-library/res/icons/GoldenLoach.png differ diff --git a/cheat-library/res/icons/GoldenWolflord.png b/cheat-library/res/icons/GoldenWolflord.png new file mode 100644 index 0000000..f9d9a8b Binary files /dev/null and b/cheat-library/res/icons/GoldenWolflord.png differ diff --git a/cheat-library/res/icons/GraySnowCat.png b/cheat-library/res/icons/GraySnowCat.png new file mode 100644 index 0000000..9c20754 Binary files /dev/null and b/cheat-library/res/icons/GraySnowCat.png differ diff --git a/cheat-library/res/icons/GraywingPigeon.png b/cheat-library/res/icons/GraywingPigeon.png new file mode 100644 index 0000000..8204d17 Binary files /dev/null and b/cheat-library/res/icons/GraywingPigeon.png differ diff --git a/cheat-library/res/icons/GreenHornedLizard.png b/cheat-library/res/icons/GreenHornedLizard.png new file mode 100644 index 0000000..1525f13 Binary files /dev/null and b/cheat-library/res/icons/GreenHornedLizard.png differ diff --git a/cheat-library/res/icons/HarpastumChest.png b/cheat-library/res/icons/HarpastumChest.png new file mode 100644 index 0000000..3546088 Binary files /dev/null and b/cheat-library/res/icons/HarpastumChest.png differ diff --git a/cheat-library/res/icons/HarvestablePlant.png b/cheat-library/res/icons/HarvestablePlant.png new file mode 100644 index 0000000..9f2520b Binary files /dev/null and b/cheat-library/res/icons/HarvestablePlant.png differ diff --git a/cheat-library/res/icons/Hilichurl.png b/cheat-library/res/icons/Hilichurl.png new file mode 100644 index 0000000..606d15f Binary files /dev/null and b/cheat-library/res/icons/Hilichurl.png differ diff --git a/cheat-library/res/icons/HilichurlChieftain.png b/cheat-library/res/icons/HilichurlChieftain.png new file mode 100644 index 0000000..0c505c9 Binary files /dev/null and b/cheat-library/res/icons/HilichurlChieftain.png differ diff --git a/cheat-library/res/icons/HilichurlShooter.png b/cheat-library/res/icons/HilichurlShooter.png new file mode 100644 index 0000000..5743c44 Binary files /dev/null and b/cheat-library/res/icons/HilichurlShooter.png differ diff --git a/cheat-library/res/icons/Horsetail.png b/cheat-library/res/icons/Horsetail.png new file mode 100644 index 0000000..7cd7001 Binary files /dev/null and b/cheat-library/res/icons/Horsetail.png differ diff --git a/cheat-library/res/icons/HydroAbyssMage.png b/cheat-library/res/icons/HydroAbyssMage.png new file mode 100644 index 0000000..e1a52d3 Binary files /dev/null and b/cheat-library/res/icons/HydroAbyssMage.png differ diff --git a/cheat-library/res/icons/HydroHypostasis.png b/cheat-library/res/icons/HydroHypostasis.png new file mode 100644 index 0000000..30e6112 Binary files /dev/null and b/cheat-library/res/icons/HydroHypostasis.png differ diff --git a/cheat-library/res/icons/Illusion.png b/cheat-library/res/icons/Illusion.png new file mode 100644 index 0000000..7dd9dfb Binary files /dev/null and b/cheat-library/res/icons/Illusion.png differ diff --git a/cheat-library/res/icons/InazumaShrineofDepths.png b/cheat-library/res/icons/InazumaShrineofDepths.png new file mode 100644 index 0000000..145e601 Binary files /dev/null and b/cheat-library/res/icons/InazumaShrineofDepths.png differ diff --git a/cheat-library/res/icons/IronChunk.png b/cheat-library/res/icons/IronChunk.png new file mode 100644 index 0000000..1ffa7ad Binary files /dev/null and b/cheat-library/res/icons/IronChunk.png differ diff --git a/cheat-library/res/icons/JadeChamber.png b/cheat-library/res/icons/JadeChamber.png new file mode 100644 index 0000000..f755ec5 Binary files /dev/null and b/cheat-library/res/icons/JadeChamber.png differ diff --git a/cheat-library/res/icons/JueyunChili.png b/cheat-library/res/icons/JueyunChili.png new file mode 100644 index 0000000..699aaae Binary files /dev/null and b/cheat-library/res/icons/JueyunChili.png differ diff --git a/cheat-library/res/icons/KeySigilI.png b/cheat-library/res/icons/KeySigilI.png new file mode 100644 index 0000000..d69f27f Binary files /dev/null and b/cheat-library/res/icons/KeySigilI.png differ diff --git a/cheat-library/res/icons/KeySigilII.png b/cheat-library/res/icons/KeySigilII.png new file mode 100644 index 0000000..c5d0d6c Binary files /dev/null and b/cheat-library/res/icons/KeySigilII.png differ diff --git a/cheat-library/res/icons/KeySigilIII.png b/cheat-library/res/icons/KeySigilIII.png new file mode 100644 index 0000000..d75bc97 Binary files /dev/null and b/cheat-library/res/icons/KeySigilIII.png differ diff --git a/cheat-library/res/icons/KeySigilIV.png b/cheat-library/res/icons/KeySigilIV.png new file mode 100644 index 0000000..6ca72a9 Binary files /dev/null and b/cheat-library/res/icons/KeySigilIV.png differ diff --git a/cheat-library/res/icons/KeySigilV.png b/cheat-library/res/icons/KeySigilV.png new file mode 100644 index 0000000..0c5b457 Binary files /dev/null and b/cheat-library/res/icons/KeySigilV.png differ diff --git a/cheat-library/res/icons/KidKujirai.png b/cheat-library/res/icons/KidKujirai.png new file mode 100644 index 0000000..7a4252f Binary files /dev/null and b/cheat-library/res/icons/KidKujirai.png differ diff --git a/cheat-library/res/icons/Kitsune.png b/cheat-library/res/icons/Kitsune.png new file mode 100644 index 0000000..31e653c Binary files /dev/null and b/cheat-library/res/icons/Kitsune.png differ diff --git a/cheat-library/res/icons/LargeRockPile.png b/cheat-library/res/icons/LargeRockPile.png new file mode 100644 index 0000000..35fd6f4 Binary files /dev/null and b/cheat-library/res/icons/LargeRockPile.png differ diff --git a/cheat-library/res/icons/LavenderMelon.png b/cheat-library/res/icons/LavenderMelon.png new file mode 100644 index 0000000..eab0322 Binary files /dev/null and b/cheat-library/res/icons/LavenderMelon.png differ diff --git a/cheat-library/res/icons/LightGuidingCeremony.png b/cheat-library/res/icons/LightGuidingCeremony.png new file mode 100644 index 0000000..d2cc278 Binary files /dev/null and b/cheat-library/res/icons/LightGuidingCeremony.png differ diff --git a/cheat-library/res/icons/LightUpTilePuzzle.png b/cheat-library/res/icons/LightUpTilePuzzle.png new file mode 100644 index 0000000..e3017f5 Binary files /dev/null and b/cheat-library/res/icons/LightUpTilePuzzle.png differ diff --git a/cheat-library/res/icons/LightningStrikeProbe.png b/cheat-library/res/icons/LightningStrikeProbe.png new file mode 100644 index 0000000..29c7e81 Binary files /dev/null and b/cheat-library/res/icons/LightningStrikeProbe.png differ diff --git a/cheat-library/res/icons/Liyue.png b/cheat-library/res/icons/Liyue.png new file mode 100644 index 0000000..5fcd9fc Binary files /dev/null and b/cheat-library/res/icons/Liyue.png differ diff --git a/cheat-library/res/icons/LizardTail.png b/cheat-library/res/icons/LizardTail.png new file mode 100644 index 0000000..1cefade Binary files /dev/null and b/cheat-library/res/icons/LizardTail.png differ diff --git a/cheat-library/res/icons/LoachPearl.png b/cheat-library/res/icons/LoachPearl.png new file mode 100644 index 0000000..0a0f9fb Binary files /dev/null and b/cheat-library/res/icons/LoachPearl.png differ diff --git a/cheat-library/res/icons/LotusHead.png b/cheat-library/res/icons/LotusHead.png new file mode 100644 index 0000000..b8b3fd1 Binary files /dev/null and b/cheat-library/res/icons/LotusHead.png differ diff --git a/cheat-library/res/icons/LucklightFly.png b/cheat-library/res/icons/LucklightFly.png new file mode 100644 index 0000000..c385a9d Binary files /dev/null and b/cheat-library/res/icons/LucklightFly.png differ diff --git a/cheat-library/res/icons/Lumenlamp.png b/cheat-library/res/icons/Lumenlamp.png new file mode 100644 index 0000000..1d67d43 Binary files /dev/null and b/cheat-library/res/icons/Lumenlamp.png differ diff --git a/cheat-library/res/icons/Lumenspar.png b/cheat-library/res/icons/Lumenspar.png new file mode 100644 index 0000000..5063be8 Binary files /dev/null and b/cheat-library/res/icons/Lumenspar.png differ diff --git a/cheat-library/res/icons/LuminescentSpine.png b/cheat-library/res/icons/LuminescentSpine.png new file mode 100644 index 0000000..93d61ee Binary files /dev/null and b/cheat-library/res/icons/LuminescentSpine.png differ diff --git a/cheat-library/res/icons/LungedStickleback.png b/cheat-library/res/icons/LungedStickleback.png new file mode 100644 index 0000000..90ab18f Binary files /dev/null and b/cheat-library/res/icons/LungedStickleback.png differ diff --git a/cheat-library/res/icons/LupusBoreasDominatorofWolves.png b/cheat-library/res/icons/LupusBoreasDominatorofWolves.png new file mode 100644 index 0000000..3a6b29e Binary files /dev/null and b/cheat-library/res/icons/LupusBoreasDominatorofWolves.png differ diff --git a/cheat-library/res/icons/LuxuriousChest.png b/cheat-library/res/icons/LuxuriousChest.png new file mode 100644 index 0000000..f4530c4 Binary files /dev/null and b/cheat-library/res/icons/LuxuriousChest.png differ diff --git a/cheat-library/res/icons/MagicalCrystalChunk.png b/cheat-library/res/icons/MagicalCrystalChunk.png new file mode 100644 index 0000000..a236116 Binary files /dev/null and b/cheat-library/res/icons/MagicalCrystalChunk.png differ diff --git a/cheat-library/res/icons/MaguuKenki.png b/cheat-library/res/icons/MaguuKenki.png new file mode 100644 index 0000000..9b1cd50 Binary files /dev/null and b/cheat-library/res/icons/MaguuKenki.png differ diff --git a/cheat-library/res/icons/MapleWood.png b/cheat-library/res/icons/MapleWood.png new file mode 100644 index 0000000..960b822 Binary files /dev/null and b/cheat-library/res/icons/MapleWood.png differ diff --git a/cheat-library/res/icons/MarrowLizard.png b/cheat-library/res/icons/MarrowLizard.png new file mode 100644 index 0000000..19452a3 Binary files /dev/null and b/cheat-library/res/icons/MarrowLizard.png differ diff --git a/cheat-library/res/icons/Matsutake.png b/cheat-library/res/icons/Matsutake.png new file mode 100644 index 0000000..2315106 Binary files /dev/null and b/cheat-library/res/icons/Matsutake.png differ diff --git a/cheat-library/res/icons/Medaka.png b/cheat-library/res/icons/Medaka.png new file mode 100644 index 0000000..48bed21 Binary files /dev/null and b/cheat-library/res/icons/Medaka.png differ diff --git a/cheat-library/res/icons/Merchant.png b/cheat-library/res/icons/Merchant.png new file mode 100644 index 0000000..5a8a286 Binary files /dev/null and b/cheat-library/res/icons/Merchant.png differ diff --git a/cheat-library/res/icons/MiniPuzzle.png b/cheat-library/res/icons/MiniPuzzle.png new file mode 100644 index 0000000..4a865c4 Binary files /dev/null and b/cheat-library/res/icons/MiniPuzzle.png differ diff --git a/cheat-library/res/icons/Mint.png b/cheat-library/res/icons/Mint.png new file mode 100644 index 0000000..9cd9a8a Binary files /dev/null and b/cheat-library/res/icons/Mint.png differ diff --git a/cheat-library/res/icons/MistBubble.png b/cheat-library/res/icons/MistBubble.png new file mode 100644 index 0000000..4976057 Binary files /dev/null and b/cheat-library/res/icons/MistBubble.png differ diff --git a/cheat-library/res/icons/MistFlowerCorolla.png b/cheat-library/res/icons/MistFlowerCorolla.png new file mode 100644 index 0000000..edbddb2 Binary files /dev/null and b/cheat-library/res/icons/MistFlowerCorolla.png differ diff --git a/cheat-library/res/icons/Mitachurl.png b/cheat-library/res/icons/Mitachurl.png new file mode 100644 index 0000000..9d4ed67 Binary files /dev/null and b/cheat-library/res/icons/Mitachurl.png differ diff --git a/cheat-library/res/icons/Mondstadt.png b/cheat-library/res/icons/Mondstadt.png new file mode 100644 index 0000000..cdcf6b9 Binary files /dev/null and b/cheat-library/res/icons/Mondstadt.png differ diff --git a/cheat-library/res/icons/Mora.png b/cheat-library/res/icons/Mora.png new file mode 100644 index 0000000..fe488c1 Binary files /dev/null and b/cheat-library/res/icons/Mora.png differ diff --git a/cheat-library/res/icons/MudFrog.png b/cheat-library/res/icons/MudFrog.png new file mode 100644 index 0000000..7f9bb54 Binary files /dev/null and b/cheat-library/res/icons/MudFrog.png differ diff --git a/cheat-library/res/icons/Mural.png b/cheat-library/res/icons/Mural.png new file mode 100644 index 0000000..663adcd Binary files /dev/null and b/cheat-library/res/icons/Mural.png differ diff --git a/cheat-library/res/icons/Mushroom.png b/cheat-library/res/icons/Mushroom.png new file mode 100644 index 0000000..3ba3573 Binary files /dev/null and b/cheat-library/res/icons/Mushroom.png differ diff --git a/cheat-library/res/icons/MysteriousCarvings.png b/cheat-library/res/icons/MysteriousCarvings.png new file mode 100644 index 0000000..3780d70 Binary files /dev/null and b/cheat-library/res/icons/MysteriousCarvings.png differ diff --git a/cheat-library/res/icons/MysteriousConch.png b/cheat-library/res/icons/MysteriousConch.png new file mode 100644 index 0000000..308a110 Binary files /dev/null and b/cheat-library/res/icons/MysteriousConch.png differ diff --git a/cheat-library/res/icons/NakuWeed.png b/cheat-library/res/icons/NakuWeed.png new file mode 100644 index 0000000..1f02809 Binary files /dev/null and b/cheat-library/res/icons/NakuWeed.png differ diff --git a/cheat-library/res/icons/Nobushi.png b/cheat-library/res/icons/Nobushi.png new file mode 100644 index 0000000..e445c0e Binary files /dev/null and b/cheat-library/res/icons/Nobushi.png differ diff --git a/cheat-library/res/icons/NoctilucousJade.png b/cheat-library/res/icons/NoctilucousJade.png new file mode 100644 index 0000000..cc1794e Binary files /dev/null and b/cheat-library/res/icons/NoctilucousJade.png differ diff --git a/cheat-library/res/icons/OceanCrab.png b/cheat-library/res/icons/OceanCrab.png new file mode 100644 index 0000000..a874089 Binary files /dev/null and b/cheat-library/res/icons/OceanCrab.png differ diff --git a/cheat-library/res/icons/Oceanid.png b/cheat-library/res/icons/Oceanid.png new file mode 100644 index 0000000..bd36824 Binary files /dev/null and b/cheat-library/res/icons/Oceanid.png differ diff --git a/cheat-library/res/icons/Ochimusha.png b/cheat-library/res/icons/Ochimusha.png new file mode 100644 index 0000000..3344085 Binary files /dev/null and b/cheat-library/res/icons/Ochimusha.png differ diff --git a/cheat-library/res/icons/Onikabuto.png b/cheat-library/res/icons/Onikabuto.png new file mode 100644 index 0000000..53ffd7f Binary files /dev/null and b/cheat-library/res/icons/Onikabuto.png differ diff --git a/cheat-library/res/icons/Ores.png b/cheat-library/res/icons/Ores.png new file mode 100644 index 0000000..1ffa7ad Binary files /dev/null and b/cheat-library/res/icons/Ores.png differ diff --git a/cheat-library/res/icons/OtogiWood.png b/cheat-library/res/icons/OtogiWood.png new file mode 100644 index 0000000..5892a1e Binary files /dev/null and b/cheat-library/res/icons/OtogiWood.png differ diff --git a/cheat-library/res/icons/PaintedWall.png b/cheat-library/res/icons/PaintedWall.png new file mode 100644 index 0000000..d12b9a7 Binary files /dev/null and b/cheat-library/res/icons/PaintedWall.png differ diff --git a/cheat-library/res/icons/PaleRedCrab.png b/cheat-library/res/icons/PaleRedCrab.png new file mode 100644 index 0000000..a4a0470 Binary files /dev/null and b/cheat-library/res/icons/PaleRedCrab.png differ diff --git a/cheat-library/res/icons/PerpetualMechanicalArray.png b/cheat-library/res/icons/PerpetualMechanicalArray.png new file mode 100644 index 0000000..97add69 Binary files /dev/null and b/cheat-library/res/icons/PerpetualMechanicalArray.png differ diff --git a/cheat-library/res/icons/PhaseGate.png b/cheat-library/res/icons/PhaseGate.png new file mode 100644 index 0000000..17cb3b2 Binary files /dev/null and b/cheat-library/res/icons/PhaseGate.png differ diff --git a/cheat-library/res/icons/PhilanemoMushroom.png b/cheat-library/res/icons/PhilanemoMushroom.png new file mode 100644 index 0000000..29fefd7 Binary files /dev/null and b/cheat-library/res/icons/PhilanemoMushroom.png differ diff --git a/cheat-library/res/icons/PineWood.png b/cheat-library/res/icons/PineWood.png new file mode 100644 index 0000000..2eaeb70 Binary files /dev/null and b/cheat-library/res/icons/PineWood.png differ diff --git a/cheat-library/res/icons/Pinecone.png b/cheat-library/res/icons/Pinecone.png new file mode 100644 index 0000000..f68d714 Binary files /dev/null and b/cheat-library/res/icons/Pinecone.png differ diff --git a/cheat-library/res/icons/PlacesofEssenceWorship.png b/cheat-library/res/icons/PlacesofEssenceWorship.png new file mode 100644 index 0000000..6242590 Binary files /dev/null and b/cheat-library/res/icons/PlacesofEssenceWorship.png differ diff --git a/cheat-library/res/icons/Pot.png b/cheat-library/res/icons/Pot.png new file mode 100644 index 0000000..553ef99 Binary files /dev/null and b/cheat-library/res/icons/Pot.png differ diff --git a/cheat-library/res/icons/PreciousChest.png b/cheat-library/res/icons/PreciousChest.png new file mode 100644 index 0000000..b6f8898 Binary files /dev/null and b/cheat-library/res/icons/PreciousChest.png differ diff --git a/cheat-library/res/icons/PressurePlate.png b/cheat-library/res/icons/PressurePlate.png new file mode 100644 index 0000000..077c747 Binary files /dev/null and b/cheat-library/res/icons/PressurePlate.png differ diff --git a/cheat-library/res/icons/PrimoGeovishap.png b/cheat-library/res/icons/PrimoGeovishap.png new file mode 100644 index 0000000..c62fd31 Binary files /dev/null and b/cheat-library/res/icons/PrimoGeovishap.png differ diff --git a/cheat-library/res/icons/Pufferfish.png b/cheat-library/res/icons/Pufferfish.png new file mode 100644 index 0000000..76baa83 Binary files /dev/null and b/cheat-library/res/icons/Pufferfish.png differ diff --git a/cheat-library/res/icons/PurpleShirakodai.png b/cheat-library/res/icons/PurpleShirakodai.png new file mode 100644 index 0000000..d622083 Binary files /dev/null and b/cheat-library/res/icons/PurpleShirakodai.png differ diff --git a/cheat-library/res/icons/PyroAbyssMage.png b/cheat-library/res/icons/PyroAbyssMage.png new file mode 100644 index 0000000..b895d38 Binary files /dev/null and b/cheat-library/res/icons/PyroAbyssMage.png differ diff --git a/cheat-library/res/icons/PyroHypostasis.png b/cheat-library/res/icons/PyroHypostasis.png new file mode 100644 index 0000000..d515648 Binary files /dev/null and b/cheat-library/res/icons/PyroHypostasis.png differ diff --git a/cheat-library/res/icons/PyroRegisvine.png b/cheat-library/res/icons/PyroRegisvine.png new file mode 100644 index 0000000..afdfec2 Binary files /dev/null and b/cheat-library/res/icons/PyroRegisvine.png differ diff --git a/cheat-library/res/icons/PyroWhopperflower.png b/cheat-library/res/icons/PyroWhopperflower.png new file mode 100644 index 0000000..c40c718 Binary files /dev/null and b/cheat-library/res/icons/PyroWhopperflower.png differ diff --git a/cheat-library/res/icons/Qingxin.png b/cheat-library/res/icons/Qingxin.png new file mode 100644 index 0000000..f79ec5c Binary files /dev/null and b/cheat-library/res/icons/Qingxin.png differ diff --git a/cheat-library/res/icons/RadiantSpincrystal.png b/cheat-library/res/icons/RadiantSpincrystal.png new file mode 100644 index 0000000..00ab166 Binary files /dev/null and b/cheat-library/res/icons/RadiantSpincrystal.png differ diff --git a/cheat-library/res/icons/Radish.png b/cheat-library/res/icons/Radish.png new file mode 100644 index 0000000..9c570c4 Binary files /dev/null and b/cheat-library/res/icons/Radish.png differ diff --git a/cheat-library/res/icons/RaimeiAngelfish.png b/cheat-library/res/icons/RaimeiAngelfish.png new file mode 100644 index 0000000..67a2802 Binary files /dev/null and b/cheat-library/res/icons/RaimeiAngelfish.png differ diff --git a/cheat-library/res/icons/RawMeat.png b/cheat-library/res/icons/RawMeat.png new file mode 100644 index 0000000..99c7efa Binary files /dev/null and b/cheat-library/res/icons/RawMeat.png differ diff --git a/cheat-library/res/icons/Recipe.png b/cheat-library/res/icons/Recipe.png new file mode 100644 index 0000000..a6719ae Binary files /dev/null and b/cheat-library/res/icons/Recipe.png differ diff --git a/cheat-library/res/icons/RedFinnedUnagi.png b/cheat-library/res/icons/RedFinnedUnagi.png new file mode 100644 index 0000000..b643116 Binary files /dev/null and b/cheat-library/res/icons/RedFinnedUnagi.png differ diff --git a/cheat-library/res/icons/RedHornedLizard.png b/cheat-library/res/icons/RedHornedLizard.png new file mode 100644 index 0000000..3e9d4f0 Binary files /dev/null and b/cheat-library/res/icons/RedHornedLizard.png differ diff --git a/cheat-library/res/icons/RedTailedWeasel.png b/cheat-library/res/icons/RedTailedWeasel.png new file mode 100644 index 0000000..0c45e09 Binary files /dev/null and b/cheat-library/res/icons/RedTailedWeasel.png differ diff --git a/cheat-library/res/icons/RemarkableChest.png b/cheat-library/res/icons/RemarkableChest.png new file mode 100644 index 0000000..5d822b0 Binary files /dev/null and b/cheat-library/res/icons/RemarkableChest.png differ diff --git a/cheat-library/res/icons/RockPile.png b/cheat-library/res/icons/RockPile.png new file mode 100644 index 0000000..50deb80 Binary files /dev/null and b/cheat-library/res/icons/RockPile.png differ diff --git a/cheat-library/res/icons/RockShieldwallMitachurl.png b/cheat-library/res/icons/RockShieldwallMitachurl.png new file mode 100644 index 0000000..9d4ed67 Binary files /dev/null and b/cheat-library/res/icons/RockShieldwallMitachurl.png differ diff --git a/cheat-library/res/icons/RuinBrazier.png b/cheat-library/res/icons/RuinBrazier.png new file mode 100644 index 0000000..22d1a2f Binary files /dev/null and b/cheat-library/res/icons/RuinBrazier.png differ diff --git a/cheat-library/res/icons/RuinGrader.png b/cheat-library/res/icons/RuinGrader.png new file mode 100644 index 0000000..322909a Binary files /dev/null and b/cheat-library/res/icons/RuinGrader.png differ diff --git a/cheat-library/res/icons/RuinGuard.png b/cheat-library/res/icons/RuinGuard.png new file mode 100644 index 0000000..322909a Binary files /dev/null and b/cheat-library/res/icons/RuinGuard.png differ diff --git a/cheat-library/res/icons/RuinHunter.png b/cheat-library/res/icons/RuinHunter.png new file mode 100644 index 0000000..7254b60 Binary files /dev/null and b/cheat-library/res/icons/RuinHunter.png differ diff --git a/cheat-library/res/icons/RuinSentinel.png b/cheat-library/res/icons/RuinSentinel.png new file mode 100644 index 0000000..007b44d Binary files /dev/null and b/cheat-library/res/icons/RuinSentinel.png differ diff --git a/cheat-library/res/icons/RuinSerpent.png b/cheat-library/res/icons/RuinSerpent.png new file mode 100644 index 0000000..2d2db28 Binary files /dev/null and b/cheat-library/res/icons/RuinSerpent.png differ diff --git a/cheat-library/res/icons/RustyKoi.png b/cheat-library/res/icons/RustyKoi.png new file mode 100644 index 0000000..32d1740 Binary files /dev/null and b/cheat-library/res/icons/RustyKoi.png differ diff --git a/cheat-library/res/icons/SacredSakura.png b/cheat-library/res/icons/SacredSakura.png new file mode 100644 index 0000000..98b1792 Binary files /dev/null and b/cheat-library/res/icons/SacredSakura.png differ diff --git a/cheat-library/res/icons/SakuraBloom.png b/cheat-library/res/icons/SakuraBloom.png new file mode 100644 index 0000000..938b954 Binary files /dev/null and b/cheat-library/res/icons/SakuraBloom.png differ diff --git a/cheat-library/res/icons/Samachurl.png b/cheat-library/res/icons/Samachurl.png new file mode 100644 index 0000000..33228eb Binary files /dev/null and b/cheat-library/res/icons/Samachurl.png differ diff --git a/cheat-library/res/icons/SandbearerWood.png b/cheat-library/res/icons/SandbearerWood.png new file mode 100644 index 0000000..89fc723 Binary files /dev/null and b/cheat-library/res/icons/SandbearerWood.png differ diff --git a/cheat-library/res/icons/SangoPearl.png b/cheat-library/res/icons/SangoPearl.png new file mode 100644 index 0000000..187d87b Binary files /dev/null and b/cheat-library/res/icons/SangoPearl.png differ diff --git a/cheat-library/res/icons/Sapphire.png b/cheat-library/res/icons/Sapphire.png new file mode 100644 index 0000000..4b7ec49 Binary files /dev/null and b/cheat-library/res/icons/Sapphire.png differ diff --git a/cheat-library/res/icons/ScarletQuartz.png b/cheat-library/res/icons/ScarletQuartz.png new file mode 100644 index 0000000..291acb5 Binary files /dev/null and b/cheat-library/res/icons/ScarletQuartz.png differ diff --git a/cheat-library/res/icons/SeaGanoderma.png b/cheat-library/res/icons/SeaGanoderma.png new file mode 100644 index 0000000..c260a0c Binary files /dev/null and b/cheat-library/res/icons/SeaGanoderma.png differ diff --git a/cheat-library/res/icons/Seagrass.png b/cheat-library/res/icons/Seagrass.png new file mode 100644 index 0000000..f9fc2b9 Binary files /dev/null and b/cheat-library/res/icons/Seagrass.png differ diff --git a/cheat-library/res/icons/SealLocationI.png b/cheat-library/res/icons/SealLocationI.png new file mode 100644 index 0000000..7bc8e47 Binary files /dev/null and b/cheat-library/res/icons/SealLocationI.png differ diff --git a/cheat-library/res/icons/SealLocationII.png b/cheat-library/res/icons/SealLocationII.png new file mode 100644 index 0000000..4262ea2 Binary files /dev/null and b/cheat-library/res/icons/SealLocationII.png differ diff --git a/cheat-library/res/icons/SealLocationIII.png b/cheat-library/res/icons/SealLocationIII.png new file mode 100644 index 0000000..c18bc27 Binary files /dev/null and b/cheat-library/res/icons/SealLocationIII.png differ diff --git a/cheat-library/res/icons/SealLocationIV.png b/cheat-library/res/icons/SealLocationIV.png new file mode 100644 index 0000000..6a4e8b4 Binary files /dev/null and b/cheat-library/res/icons/SealLocationIV.png differ diff --git a/cheat-library/res/icons/SealLocationV.png b/cheat-library/res/icons/SealLocationV.png new file mode 100644 index 0000000..100e9d0 Binary files /dev/null and b/cheat-library/res/icons/SealLocationV.png differ diff --git a/cheat-library/res/icons/SealedChest.png b/cheat-library/res/icons/SealedChest.png new file mode 100644 index 0000000..3d0d13f Binary files /dev/null and b/cheat-library/res/icons/SealedChest.png differ diff --git a/cheat-library/res/icons/Seelie.png b/cheat-library/res/icons/Seelie.png new file mode 100644 index 0000000..18712ca Binary files /dev/null and b/cheat-library/res/icons/Seelie.png differ diff --git a/cheat-library/res/icons/SeelieCourt.png b/cheat-library/res/icons/SeelieCourt.png new file mode 100644 index 0000000..8b7473e Binary files /dev/null and b/cheat-library/res/icons/SeelieCourt.png differ diff --git a/cheat-library/res/icons/SentouTrial.png b/cheat-library/res/icons/SentouTrial.png new file mode 100644 index 0000000..e523e27 Binary files /dev/null and b/cheat-library/res/icons/SentouTrial.png differ diff --git a/cheat-library/res/icons/ShadowyHusk.png b/cheat-library/res/icons/ShadowyHusk.png new file mode 100644 index 0000000..5e11e80 Binary files /dev/null and b/cheat-library/res/icons/ShadowyHusk.png differ diff --git a/cheat-library/res/icons/SilkFlower.png b/cheat-library/res/icons/SilkFlower.png new file mode 100644 index 0000000..63a3558 Binary files /dev/null and b/cheat-library/res/icons/SilkFlower.png differ diff --git a/cheat-library/res/icons/Slime.png b/cheat-library/res/icons/Slime.png new file mode 100644 index 0000000..11704c4 Binary files /dev/null and b/cheat-library/res/icons/Slime.png differ diff --git a/cheat-library/res/icons/SmallLampGrass.png b/cheat-library/res/icons/SmallLampGrass.png new file mode 100644 index 0000000..1a4d520 Binary files /dev/null and b/cheat-library/res/icons/SmallLampGrass.png differ diff --git a/cheat-library/res/icons/SmallRockPile.png b/cheat-library/res/icons/SmallRockPile.png new file mode 100644 index 0000000..0f15814 Binary files /dev/null and b/cheat-library/res/icons/SmallRockPile.png differ diff --git a/cheat-library/res/icons/SmashedStone.png b/cheat-library/res/icons/SmashedStone.png new file mode 100644 index 0000000..e9b3149 Binary files /dev/null and b/cheat-library/res/icons/SmashedStone.png differ diff --git a/cheat-library/res/icons/Snapdragon.png b/cheat-library/res/icons/Snapdragon.png new file mode 100644 index 0000000..62e064c Binary files /dev/null and b/cheat-library/res/icons/Snapdragon.png differ diff --git a/cheat-library/res/icons/SnowFinch.png b/cheat-library/res/icons/SnowFinch.png new file mode 100644 index 0000000..7769949 Binary files /dev/null and b/cheat-library/res/icons/SnowFinch.png differ diff --git a/cheat-library/res/icons/SnowFox.png b/cheat-library/res/icons/SnowFox.png new file mode 100644 index 0000000..3ee72db Binary files /dev/null and b/cheat-library/res/icons/SnowFox.png differ diff --git a/cheat-library/res/icons/SnowWeasel.png b/cheat-library/res/icons/SnowWeasel.png new file mode 100644 index 0000000..a29b04d Binary files /dev/null and b/cheat-library/res/icons/SnowWeasel.png differ diff --git a/cheat-library/res/icons/Snowboar.png b/cheat-library/res/icons/Snowboar.png new file mode 100644 index 0000000..dc7e4c3 Binary files /dev/null and b/cheat-library/res/icons/Snowboar.png differ diff --git a/cheat-library/res/icons/Snowstrider.png b/cheat-library/res/icons/Snowstrider.png new file mode 100644 index 0000000..2cb1a91 Binary files /dev/null and b/cheat-library/res/icons/Snowstrider.png differ diff --git a/cheat-library/res/icons/Specter.png b/cheat-library/res/icons/Specter.png new file mode 100644 index 0000000..0fab31d Binary files /dev/null and b/cheat-library/res/icons/Specter.png differ diff --git a/cheat-library/res/icons/Squirrel.png b/cheat-library/res/icons/Squirrel.png new file mode 100644 index 0000000..f975c19 Binary files /dev/null and b/cheat-library/res/icons/Squirrel.png differ diff --git a/cheat-library/res/icons/Starconch.png b/cheat-library/res/icons/Starconch.png new file mode 100644 index 0000000..fb89100 Binary files /dev/null and b/cheat-library/res/icons/Starconch.png differ diff --git a/cheat-library/res/icons/Starshroom.png b/cheat-library/res/icons/Starshroom.png new file mode 100644 index 0000000..55f3274 Binary files /dev/null and b/cheat-library/res/icons/Starshroom.png differ diff --git a/cheat-library/res/icons/Starsilver.png b/cheat-library/res/icons/Starsilver.png new file mode 100644 index 0000000..0dac56b Binary files /dev/null and b/cheat-library/res/icons/Starsilver.png differ diff --git a/cheat-library/res/icons/StatueofTheSeven.png b/cheat-library/res/icons/StatueofTheSeven.png new file mode 100644 index 0000000..4a37f78 Binary files /dev/null and b/cheat-library/res/icons/StatueofTheSeven.png differ diff --git a/cheat-library/res/icons/StatueoftheVassals.png b/cheat-library/res/icons/StatueoftheVassals.png new file mode 100644 index 0000000..71ad7aa Binary files /dev/null and b/cheat-library/res/icons/StatueoftheVassals.png differ diff --git a/cheat-library/res/icons/StormBarrier.png b/cheat-library/res/icons/StormBarrier.png new file mode 100644 index 0000000..9f2520b Binary files /dev/null and b/cheat-library/res/icons/StormBarrier.png differ diff --git a/cheat-library/res/icons/Stormstone.png b/cheat-library/res/icons/Stormstone.png new file mode 100644 index 0000000..18681ec Binary files /dev/null and b/cheat-library/res/icons/Stormstone.png differ diff --git a/cheat-library/res/icons/StrangeTooth.png b/cheat-library/res/icons/StrangeTooth.png new file mode 100644 index 0000000..0811b20 Binary files /dev/null and b/cheat-library/res/icons/StrangeTooth.png differ diff --git a/cheat-library/res/icons/SunCrab.png b/cheat-library/res/icons/SunCrab.png new file mode 100644 index 0000000..1600df3 Binary files /dev/null and b/cheat-library/res/icons/SunCrab.png differ diff --git a/cheat-library/res/icons/SunnyLoach.png b/cheat-library/res/icons/SunnyLoach.png new file mode 100644 index 0000000..9a281a8 Binary files /dev/null and b/cheat-library/res/icons/SunnyLoach.png differ diff --git a/cheat-library/res/icons/SunsetLoach.png b/cheat-library/res/icons/SunsetLoach.png new file mode 100644 index 0000000..2a7cbfc Binary files /dev/null and b/cheat-library/res/icons/SunsetLoach.png differ diff --git a/cheat-library/res/icons/Sunsettia.png b/cheat-library/res/icons/Sunsettia.png new file mode 100644 index 0000000..3d09560 Binary files /dev/null and b/cheat-library/res/icons/Sunsettia.png differ diff --git a/cheat-library/res/icons/SweetFlower.png b/cheat-library/res/icons/SweetFlower.png new file mode 100644 index 0000000..c909837 Binary files /dev/null and b/cheat-library/res/icons/SweetFlower.png differ diff --git a/cheat-library/res/icons/SweetFlowerMedaka.png b/cheat-library/res/icons/SweetFlowerMedaka.png new file mode 100644 index 0000000..b57ec8f Binary files /dev/null and b/cheat-library/res/icons/SweetFlowerMedaka.png differ diff --git a/cheat-library/res/icons/SwordHilt.png b/cheat-library/res/icons/SwordHilt.png new file mode 100644 index 0000000..3089756 Binary files /dev/null and b/cheat-library/res/icons/SwordHilt.png differ diff --git a/cheat-library/res/icons/TeaColoredShirakodai.png b/cheat-library/res/icons/TeaColoredShirakodai.png new file mode 100644 index 0000000..8bb2f38 Binary files /dev/null and b/cheat-library/res/icons/TeaColoredShirakodai.png differ diff --git a/cheat-library/res/icons/TeleportWaypoint.png b/cheat-library/res/icons/TeleportWaypoint.png new file mode 100644 index 0000000..fa812e9 Binary files /dev/null and b/cheat-library/res/icons/TeleportWaypoint.png differ diff --git a/cheat-library/res/icons/TheCruxTheAlcor.png b/cheat-library/res/icons/TheCruxTheAlcor.png new file mode 100644 index 0000000..cef4cf6 Binary files /dev/null and b/cheat-library/res/icons/TheCruxTheAlcor.png differ diff --git a/cheat-library/res/icons/TheGreatSnowboarKing.png b/cheat-library/res/icons/TheGreatSnowboarKing.png new file mode 100644 index 0000000..31d4f69 Binary files /dev/null and b/cheat-library/res/icons/TheGreatSnowboarKing.png differ diff --git a/cheat-library/res/icons/ThreeBoxes.png b/cheat-library/res/icons/ThreeBoxes.png new file mode 100644 index 0000000..eb811cb Binary files /dev/null and b/cheat-library/res/icons/ThreeBoxes.png differ diff --git a/cheat-library/res/icons/ThunderManifestation.png b/cheat-library/res/icons/ThunderManifestation.png new file mode 100644 index 0000000..3f60489 Binary files /dev/null and b/cheat-library/res/icons/ThunderManifestation.png differ diff --git a/cheat-library/res/icons/ThunderhelmLawachurl.png b/cheat-library/res/icons/ThunderhelmLawachurl.png new file mode 100644 index 0000000..437cbd6 Binary files /dev/null and b/cheat-library/res/icons/ThunderhelmLawachurl.png differ diff --git a/cheat-library/res/icons/TimeTrialChallenge.png b/cheat-library/res/icons/TimeTrialChallenge.png new file mode 100644 index 0000000..21240ef Binary files /dev/null and b/cheat-library/res/icons/TimeTrialChallenge.png differ diff --git a/cheat-library/res/icons/TokoyoLegume.png b/cheat-library/res/icons/TokoyoLegume.png new file mode 100644 index 0000000..8d30baf Binary files /dev/null and b/cheat-library/res/icons/TokoyoLegume.png differ diff --git a/cheat-library/res/icons/TorchPuzzle.png b/cheat-library/res/icons/TorchPuzzle.png new file mode 100644 index 0000000..61c6942 Binary files /dev/null and b/cheat-library/res/icons/TorchPuzzle.png differ diff --git a/cheat-library/res/icons/TreasureHoarder.png b/cheat-library/res/icons/TreasureHoarder.png new file mode 100644 index 0000000..1b34592 Binary files /dev/null and b/cheat-library/res/icons/TreasureHoarder.png differ diff --git a/cheat-library/res/icons/TriangularMechanism.png b/cheat-library/res/icons/TriangularMechanism.png new file mode 100644 index 0000000..acefa04 Binary files /dev/null and b/cheat-library/res/icons/TriangularMechanism.png differ diff --git a/cheat-library/res/icons/UnagiMeat.png b/cheat-library/res/icons/UnagiMeat.png new file mode 100644 index 0000000..1f0dfb1 Binary files /dev/null and b/cheat-library/res/icons/UnagiMeat.png differ diff --git a/cheat-library/res/icons/UniqueRocks.png b/cheat-library/res/icons/UniqueRocks.png new file mode 100644 index 0000000..dd7ea91 Binary files /dev/null and b/cheat-library/res/icons/UniqueRocks.png differ diff --git a/cheat-library/res/icons/UnusualHilichurl.png b/cheat-library/res/icons/UnusualHilichurl.png new file mode 100644 index 0000000..e228842 Binary files /dev/null and b/cheat-library/res/icons/UnusualHilichurl.png differ diff --git a/cheat-library/res/icons/Valberry.png b/cheat-library/res/icons/Valberry.png new file mode 100644 index 0000000..c087a41 Binary files /dev/null and b/cheat-library/res/icons/Valberry.png differ diff --git a/cheat-library/res/icons/VenomspineFish.png b/cheat-library/res/icons/VenomspineFish.png new file mode 100644 index 0000000..099079f Binary files /dev/null and b/cheat-library/res/icons/VenomspineFish.png differ diff --git a/cheat-library/res/icons/Viewpoint.png b/cheat-library/res/icons/Viewpoint.png new file mode 100644 index 0000000..e2bc19e Binary files /dev/null and b/cheat-library/res/icons/Viewpoint.png differ diff --git a/cheat-library/res/icons/VioletIbis.png b/cheat-library/res/icons/VioletIbis.png new file mode 100644 index 0000000..a2706f7 Binary files /dev/null and b/cheat-library/res/icons/VioletIbis.png differ diff --git a/cheat-library/res/icons/Violetgrass.png b/cheat-library/res/icons/Violetgrass.png new file mode 100644 index 0000000..521a0c0 Binary files /dev/null and b/cheat-library/res/icons/Violetgrass.png differ diff --git a/cheat-library/res/icons/WarmingSeelie.png b/cheat-library/res/icons/WarmingSeelie.png new file mode 100644 index 0000000..4d1a34b Binary files /dev/null and b/cheat-library/res/icons/WarmingSeelie.png differ diff --git a/cheat-library/res/icons/WaveriderWaypointCannotTeleport.png b/cheat-library/res/icons/WaveriderWaypointCannotTeleport.png new file mode 100644 index 0000000..abe109f Binary files /dev/null and b/cheat-library/res/icons/WaveriderWaypointCannotTeleport.png differ diff --git a/cheat-library/res/icons/Weapon.png b/cheat-library/res/icons/Weapon.png new file mode 100644 index 0000000..bbcc5ac Binary files /dev/null and b/cheat-library/res/icons/Weapon.png differ diff --git a/cheat-library/res/icons/WhiteIronChunk.png b/cheat-library/res/icons/WhiteIronChunk.png new file mode 100644 index 0000000..fa59669 Binary files /dev/null and b/cheat-library/res/icons/WhiteIronChunk.png differ diff --git a/cheat-library/res/icons/WhitePigeon.png b/cheat-library/res/icons/WhitePigeon.png new file mode 100644 index 0000000..fd84e95 Binary files /dev/null and b/cheat-library/res/icons/WhitePigeon.png differ diff --git a/cheat-library/res/icons/Whopperflower.png b/cheat-library/res/icons/Whopperflower.png new file mode 100644 index 0000000..941a16d Binary files /dev/null and b/cheat-library/res/icons/Whopperflower.png differ diff --git a/cheat-library/res/icons/WindmillMechanism.png b/cheat-library/res/icons/WindmillMechanism.png new file mode 100644 index 0000000..4eadd0b Binary files /dev/null and b/cheat-library/res/icons/WindmillMechanism.png differ diff --git a/cheat-library/res/icons/WindwheelAster.png b/cheat-library/res/icons/WindwheelAster.png new file mode 100644 index 0000000..0815a7a Binary files /dev/null and b/cheat-library/res/icons/WindwheelAster.png differ diff --git a/cheat-library/res/icons/Wolfhook.png b/cheat-library/res/icons/Wolfhook.png new file mode 100644 index 0000000..ededb18 Binary files /dev/null and b/cheat-library/res/icons/Wolfhook.png differ diff --git a/cheat-library/res/icons/WolvesoftheRift.png b/cheat-library/res/icons/WolvesoftheRift.png new file mode 100644 index 0000000..62fb868 Binary files /dev/null and b/cheat-library/res/icons/WolvesoftheRift.png differ diff --git a/cheat-library/res/icons/WoodenCrate.png b/cheat-library/res/icons/WoodenCrate.png new file mode 100644 index 0000000..c5af87f Binary files /dev/null and b/cheat-library/res/icons/WoodenCrate.png differ diff --git a/cheat-library/res/icons/WoodenShieldwallMitachurl.png b/cheat-library/res/icons/WoodenShieldwallMitachurl.png new file mode 100644 index 0000000..9d4ed67 Binary files /dev/null and b/cheat-library/res/icons/WoodenShieldwallMitachurl.png differ diff --git a/cheat-library/res/icons/WorldQuests.png b/cheat-library/res/icons/WorldQuests.png new file mode 100644 index 0000000..ccc67c8 Binary files /dev/null and b/cheat-library/res/icons/WorldQuests.png differ diff --git a/cheat-library/res/icons/YumemiruWood.png b/cheat-library/res/icons/YumemiruWood.png new file mode 100644 index 0000000..993037f Binary files /dev/null and b/cheat-library/res/icons/YumemiruWood.png differ diff --git a/cheat-library/res/iconsHD/AbidingAngelfish.png b/cheat-library/res/iconsHD/AbidingAngelfish.png new file mode 100644 index 0000000..b54426f Binary files /dev/null and b/cheat-library/res/iconsHD/AbidingAngelfish.png differ diff --git a/cheat-library/res/iconsHD/AbyssHerald.png b/cheat-library/res/iconsHD/AbyssHerald.png new file mode 100644 index 0000000..547e410 Binary files /dev/null and b/cheat-library/res/iconsHD/AbyssHerald.png differ diff --git a/cheat-library/res/iconsHD/AbyssMage.png b/cheat-library/res/iconsHD/AbyssMage.png new file mode 100644 index 0000000..496374d Binary files /dev/null and b/cheat-library/res/iconsHD/AbyssMage.png differ diff --git a/cheat-library/res/iconsHD/AdornedUnagi.png b/cheat-library/res/iconsHD/AdornedUnagi.png new file mode 100644 index 0000000..cf2f85d Binary files /dev/null and b/cheat-library/res/iconsHD/AdornedUnagi.png differ diff --git a/cheat-library/res/iconsHD/AizenMedaka.png b/cheat-library/res/iconsHD/AizenMedaka.png new file mode 100644 index 0000000..4b6c32f Binary files /dev/null and b/cheat-library/res/iconsHD/AizenMedaka.png differ diff --git a/cheat-library/res/iconsHD/AkaiMaou.png b/cheat-library/res/iconsHD/AkaiMaou.png new file mode 100644 index 0000000..ea1bef7 Binary files /dev/null and b/cheat-library/res/iconsHD/AkaiMaou.png differ diff --git a/cheat-library/res/iconsHD/AmakumoFruit.png b/cheat-library/res/iconsHD/AmakumoFruit.png new file mode 100644 index 0000000..81f80fa Binary files /dev/null and b/cheat-library/res/iconsHD/AmakumoFruit.png differ diff --git a/cheat-library/res/iconsHD/AmethystLump.png b/cheat-library/res/iconsHD/AmethystLump.png new file mode 100644 index 0000000..8cb2fba Binary files /dev/null and b/cheat-library/res/iconsHD/AmethystLump.png differ diff --git a/cheat-library/res/iconsHD/AncientRime.png b/cheat-library/res/iconsHD/AncientRime.png new file mode 100644 index 0000000..91dbe5e Binary files /dev/null and b/cheat-library/res/iconsHD/AncientRime.png differ diff --git a/cheat-library/res/iconsHD/AnemoCrystalfly.png b/cheat-library/res/iconsHD/AnemoCrystalfly.png new file mode 100644 index 0000000..0db15d3 Binary files /dev/null and b/cheat-library/res/iconsHD/AnemoCrystalfly.png differ diff --git a/cheat-library/res/iconsHD/AnemoHypostasis.png b/cheat-library/res/iconsHD/AnemoHypostasis.png new file mode 100644 index 0000000..70d0f2e Binary files /dev/null and b/cheat-library/res/iconsHD/AnemoHypostasis.png differ diff --git a/cheat-library/res/iconsHD/Anemoculus.png b/cheat-library/res/iconsHD/Anemoculus.png new file mode 100644 index 0000000..810a6bd Binary files /dev/null and b/cheat-library/res/iconsHD/Anemoculus.png differ diff --git a/cheat-library/res/iconsHD/Apple.png b/cheat-library/res/iconsHD/Apple.png new file mode 100644 index 0000000..36f0b7c Binary files /dev/null and b/cheat-library/res/iconsHD/Apple.png differ diff --git a/cheat-library/res/iconsHD/AraliaWood.png b/cheat-library/res/iconsHD/AraliaWood.png new file mode 100644 index 0000000..af604ad Binary files /dev/null and b/cheat-library/res/iconsHD/AraliaWood.png differ diff --git a/cheat-library/res/iconsHD/ArchaicStone.png b/cheat-library/res/iconsHD/ArchaicStone.png new file mode 100644 index 0000000..547ffe1 Binary files /dev/null and b/cheat-library/res/iconsHD/ArchaicStone.png differ diff --git a/cheat-library/res/iconsHD/Artifact.png b/cheat-library/res/iconsHD/Artifact.png new file mode 100644 index 0000000..1cfdb1c Binary files /dev/null and b/cheat-library/res/iconsHD/Artifact.png differ diff --git a/cheat-library/res/iconsHD/BakeDanuki.png b/cheat-library/res/iconsHD/BakeDanuki.png new file mode 100644 index 0000000..46b2643 Binary files /dev/null and b/cheat-library/res/iconsHD/BakeDanuki.png differ diff --git a/cheat-library/res/iconsHD/BambooSegment.png b/cheat-library/res/iconsHD/BambooSegment.png new file mode 100644 index 0000000..eefaec1 Binary files /dev/null and b/cheat-library/res/iconsHD/BambooSegment.png differ diff --git a/cheat-library/res/iconsHD/BambooShoot.png b/cheat-library/res/iconsHD/BambooShoot.png new file mode 100644 index 0000000..1d5004f Binary files /dev/null and b/cheat-library/res/iconsHD/BambooShoot.png differ diff --git a/cheat-library/res/iconsHD/BathysmalVishap.png b/cheat-library/res/iconsHD/BathysmalVishap.png new file mode 100644 index 0000000..3a20990 Binary files /dev/null and b/cheat-library/res/iconsHD/BathysmalVishap.png differ diff --git a/cheat-library/res/iconsHD/BathysmalVishapHerd.png b/cheat-library/res/iconsHD/BathysmalVishapHerd.png new file mode 100644 index 0000000..c3329cc Binary files /dev/null and b/cheat-library/res/iconsHD/BathysmalVishapHerd.png differ diff --git a/cheat-library/res/iconsHD/Berry.png b/cheat-library/res/iconsHD/Berry.png new file mode 100644 index 0000000..eafb150 Binary files /dev/null and b/cheat-library/res/iconsHD/Berry.png differ diff --git a/cheat-library/res/iconsHD/Betta.png b/cheat-library/res/iconsHD/Betta.png new file mode 100644 index 0000000..b474d35 Binary files /dev/null and b/cheat-library/res/iconsHD/Betta.png differ diff --git a/cheat-library/res/iconsHD/BirchWood.png b/cheat-library/res/iconsHD/BirchWood.png new file mode 100644 index 0000000..36c0b13 Binary files /dev/null and b/cheat-library/res/iconsHD/BirchWood.png differ diff --git a/cheat-library/res/iconsHD/BirdEgg.png b/cheat-library/res/iconsHD/BirdEgg.png new file mode 100644 index 0000000..b481223 Binary files /dev/null and b/cheat-library/res/iconsHD/BirdEgg.png differ diff --git a/cheat-library/res/iconsHD/BitterPufferfish.png b/cheat-library/res/iconsHD/BitterPufferfish.png new file mode 100644 index 0000000..397cfd7 Binary files /dev/null and b/cheat-library/res/iconsHD/BitterPufferfish.png differ diff --git a/cheat-library/res/iconsHD/BlackKingPigeon.png b/cheat-library/res/iconsHD/BlackKingPigeon.png new file mode 100644 index 0000000..e89dfb5 Binary files /dev/null and b/cheat-library/res/iconsHD/BlackKingPigeon.png differ diff --git a/cheat-library/res/iconsHD/BloattyFloatty.png b/cheat-library/res/iconsHD/BloattyFloatty.png new file mode 100644 index 0000000..270b4e5 Binary files /dev/null and b/cheat-library/res/iconsHD/BloattyFloatty.png differ diff --git a/cheat-library/res/iconsHD/BlueFrog.png b/cheat-library/res/iconsHD/BlueFrog.png new file mode 100644 index 0000000..eb1cc4d Binary files /dev/null and b/cheat-library/res/iconsHD/BlueFrog.png differ diff --git a/cheat-library/res/iconsHD/BlueHornedLizard.png b/cheat-library/res/iconsHD/BlueHornedLizard.png new file mode 100644 index 0000000..7cf4658 Binary files /dev/null and b/cheat-library/res/iconsHD/BlueHornedLizard.png differ diff --git a/cheat-library/res/iconsHD/BluethunderWeasel.png b/cheat-library/res/iconsHD/BluethunderWeasel.png new file mode 100644 index 0000000..2793b6d Binary files /dev/null and b/cheat-library/res/iconsHD/BluethunderWeasel.png differ diff --git a/cheat-library/res/iconsHD/Book.png b/cheat-library/res/iconsHD/Book.png new file mode 100644 index 0000000..74c4458 Binary files /dev/null and b/cheat-library/res/iconsHD/Book.png differ diff --git a/cheat-library/res/iconsHD/BootWeasel.png b/cheat-library/res/iconsHD/BootWeasel.png new file mode 100644 index 0000000..be8fd59 Binary files /dev/null and b/cheat-library/res/iconsHD/BootWeasel.png differ diff --git a/cheat-library/res/iconsHD/BrightcrownPigeon.png b/cheat-library/res/iconsHD/BrightcrownPigeon.png new file mode 100644 index 0000000..98a86c0 Binary files /dev/null and b/cheat-library/res/iconsHD/BrightcrownPigeon.png differ diff --git a/cheat-library/res/iconsHD/BrownShirakodai.png b/cheat-library/res/iconsHD/BrownShirakodai.png new file mode 100644 index 0000000..5829eb2 Binary files /dev/null and b/cheat-library/res/iconsHD/BrownShirakodai.png differ diff --git a/cheat-library/res/iconsHD/BuriedChest.png b/cheat-library/res/iconsHD/BuriedChest.png new file mode 100644 index 0000000..e297627 Binary files /dev/null and b/cheat-library/res/iconsHD/BuriedChest.png differ diff --git a/cheat-library/res/iconsHD/ButterflyWings.png b/cheat-library/res/iconsHD/ButterflyWings.png new file mode 100644 index 0000000..a4d9415 Binary files /dev/null and b/cheat-library/res/iconsHD/ButterflyWings.png differ diff --git a/cheat-library/res/iconsHD/CallaLily.png b/cheat-library/res/iconsHD/CallaLily.png new file mode 100644 index 0000000..cf40a86 Binary files /dev/null and b/cheat-library/res/iconsHD/CallaLily.png differ diff --git a/cheat-library/res/iconsHD/CampfireTorch.png b/cheat-library/res/iconsHD/CampfireTorch.png new file mode 100644 index 0000000..101750d Binary files /dev/null and b/cheat-library/res/iconsHD/CampfireTorch.png differ diff --git a/cheat-library/res/iconsHD/Carrot.png b/cheat-library/res/iconsHD/Carrot.png new file mode 100644 index 0000000..cfbde9b Binary files /dev/null and b/cheat-library/res/iconsHD/Carrot.png differ diff --git a/cheat-library/res/iconsHD/Cecilia.png b/cheat-library/res/iconsHD/Cecilia.png new file mode 100644 index 0000000..da78151 Binary files /dev/null and b/cheat-library/res/iconsHD/Cecilia.png differ diff --git a/cheat-library/res/iconsHD/ChilledMeat.png b/cheat-library/res/iconsHD/ChilledMeat.png new file mode 100644 index 0000000..88e72d3 Binary files /dev/null and b/cheat-library/res/iconsHD/ChilledMeat.png differ diff --git a/cheat-library/res/iconsHD/CommonChest.png b/cheat-library/res/iconsHD/CommonChest.png new file mode 100644 index 0000000..e297627 Binary files /dev/null and b/cheat-library/res/iconsHD/CommonChest.png differ diff --git a/cheat-library/res/iconsHD/CookingIngredient.png b/cheat-library/res/iconsHD/CookingIngredient.png new file mode 100644 index 0000000..217e706 Binary files /dev/null and b/cheat-library/res/iconsHD/CookingIngredient.png differ diff --git a/cheat-library/res/iconsHD/CorLapis.png b/cheat-library/res/iconsHD/CorLapis.png new file mode 100644 index 0000000..98fd608 Binary files /dev/null and b/cheat-library/res/iconsHD/CorLapis.png differ diff --git a/cheat-library/res/iconsHD/Crab.png b/cheat-library/res/iconsHD/Crab.png new file mode 100644 index 0000000..e128fdb Binary files /dev/null and b/cheat-library/res/iconsHD/Crab.png differ diff --git a/cheat-library/res/iconsHD/CrimsonAgate.png b/cheat-library/res/iconsHD/CrimsonAgate.png new file mode 100644 index 0000000..3246466 Binary files /dev/null and b/cheat-library/res/iconsHD/CrimsonAgate.png differ diff --git a/cheat-library/res/iconsHD/CrimsonFinch.png b/cheat-library/res/iconsHD/CrimsonFinch.png new file mode 100644 index 0000000..25df563 Binary files /dev/null and b/cheat-library/res/iconsHD/CrimsonFinch.png differ diff --git a/cheat-library/res/iconsHD/CrimsonFox.png b/cheat-library/res/iconsHD/CrimsonFox.png new file mode 100644 index 0000000..1b8b4ea Binary files /dev/null and b/cheat-library/res/iconsHD/CrimsonFox.png differ diff --git a/cheat-library/res/iconsHD/CrimsonflankPigeon.png b/cheat-library/res/iconsHD/CrimsonflankPigeon.png new file mode 100644 index 0000000..2573b63 Binary files /dev/null and b/cheat-library/res/iconsHD/CrimsonflankPigeon.png differ diff --git a/cheat-library/res/iconsHD/Crow.png b/cheat-library/res/iconsHD/Crow.png new file mode 100644 index 0000000..78f3865 Binary files /dev/null and b/cheat-library/res/iconsHD/Crow.png differ diff --git a/cheat-library/res/iconsHD/CryoCrystalfly.png b/cheat-library/res/iconsHD/CryoCrystalfly.png new file mode 100644 index 0000000..262cf36 Binary files /dev/null and b/cheat-library/res/iconsHD/CryoCrystalfly.png differ diff --git a/cheat-library/res/iconsHD/CryoHypostasis.png b/cheat-library/res/iconsHD/CryoHypostasis.png new file mode 100644 index 0000000..69f6d8c Binary files /dev/null and b/cheat-library/res/iconsHD/CryoHypostasis.png differ diff --git a/cheat-library/res/iconsHD/CryoRegisvine.png b/cheat-library/res/iconsHD/CryoRegisvine.png new file mode 100644 index 0000000..60242e2 Binary files /dev/null and b/cheat-library/res/iconsHD/CryoRegisvine.png differ diff --git a/cheat-library/res/iconsHD/CrystalChunk.png b/cheat-library/res/iconsHD/CrystalChunk.png new file mode 100644 index 0000000..0a417b8 Binary files /dev/null and b/cheat-library/res/iconsHD/CrystalChunk.png differ diff --git a/cheat-library/res/iconsHD/CrystalCore.png b/cheat-library/res/iconsHD/CrystalCore.png new file mode 100644 index 0000000..7ac8ae5 Binary files /dev/null and b/cheat-library/res/iconsHD/CrystalCore.png differ diff --git a/cheat-library/res/iconsHD/CrystalMarrow.png b/cheat-library/res/iconsHD/CrystalMarrow.png new file mode 100644 index 0000000..59928a8 Binary files /dev/null and b/cheat-library/res/iconsHD/CrystalMarrow.png differ diff --git a/cheat-library/res/iconsHD/Crystalfish.png b/cheat-library/res/iconsHD/Crystalfish.png new file mode 100644 index 0000000..7523489 Binary files /dev/null and b/cheat-library/res/iconsHD/Crystalfish.png differ diff --git a/cheat-library/res/iconsHD/CubeDevices.png b/cheat-library/res/iconsHD/CubeDevices.png new file mode 100644 index 0000000..cf53207 Binary files /dev/null and b/cheat-library/res/iconsHD/CubeDevices.png differ diff --git a/cheat-library/res/iconsHD/CuihuaWood.png b/cheat-library/res/iconsHD/CuihuaWood.png new file mode 100644 index 0000000..c95731b Binary files /dev/null and b/cheat-library/res/iconsHD/CuihuaWood.png differ diff --git a/cheat-library/res/iconsHD/DandelionSeed.png b/cheat-library/res/iconsHD/DandelionSeed.png new file mode 100644 index 0000000..3f7c63f Binary files /dev/null and b/cheat-library/res/iconsHD/DandelionSeed.png differ diff --git a/cheat-library/res/iconsHD/Dandy.png b/cheat-library/res/iconsHD/Dandy.png new file mode 100644 index 0000000..394d4c4 Binary files /dev/null and b/cheat-library/res/iconsHD/Dandy.png differ diff --git a/cheat-library/res/iconsHD/Dawncatcher.png b/cheat-library/res/iconsHD/Dawncatcher.png new file mode 100644 index 0000000..3c15e40 Binary files /dev/null and b/cheat-library/res/iconsHD/Dawncatcher.png differ diff --git a/cheat-library/res/iconsHD/DayNightSwitchingMechanism.png b/cheat-library/res/iconsHD/DayNightSwitchingMechanism.png new file mode 100644 index 0000000..4d4d47b Binary files /dev/null and b/cheat-library/res/iconsHD/DayNightSwitchingMechanism.png differ diff --git a/cheat-library/res/iconsHD/DeepSeaUnagi.png b/cheat-library/res/iconsHD/DeepSeaUnagi.png new file mode 100644 index 0000000..b61e53d Binary files /dev/null and b/cheat-library/res/iconsHD/DeepSeaUnagi.png differ diff --git a/cheat-library/res/iconsHD/Dendrobium.png b/cheat-library/res/iconsHD/Dendrobium.png new file mode 100644 index 0000000..4c19168 Binary files /dev/null and b/cheat-library/res/iconsHD/Dendrobium.png differ diff --git a/cheat-library/res/iconsHD/DivdaRay.png b/cheat-library/res/iconsHD/DivdaRay.png new file mode 100644 index 0000000..99a73eb Binary files /dev/null and b/cheat-library/res/iconsHD/DivdaRay.png differ diff --git a/cheat-library/res/iconsHD/Domain.png b/cheat-library/res/iconsHD/Domain.png new file mode 100644 index 0000000..2421fc2 Binary files /dev/null and b/cheat-library/res/iconsHD/Domain.png differ diff --git a/cheat-library/res/iconsHD/EightStoneTablets.png b/cheat-library/res/iconsHD/EightStoneTablets.png new file mode 100644 index 0000000..cff87dd Binary files /dev/null and b/cheat-library/res/iconsHD/EightStoneTablets.png differ diff --git a/cheat-library/res/iconsHD/ElectricConduction.png b/cheat-library/res/iconsHD/ElectricConduction.png new file mode 100644 index 0000000..5d4dcb9 Binary files /dev/null and b/cheat-library/res/iconsHD/ElectricConduction.png differ diff --git a/cheat-library/res/iconsHD/ElectroCrystal.png b/cheat-library/res/iconsHD/ElectroCrystal.png new file mode 100644 index 0000000..937cdd9 Binary files /dev/null and b/cheat-library/res/iconsHD/ElectroCrystal.png differ diff --git a/cheat-library/res/iconsHD/ElectroCrystalfly.png b/cheat-library/res/iconsHD/ElectroCrystalfly.png new file mode 100644 index 0000000..a3d9f97 Binary files /dev/null and b/cheat-library/res/iconsHD/ElectroCrystalfly.png differ diff --git a/cheat-library/res/iconsHD/ElectroHypostasis.png b/cheat-library/res/iconsHD/ElectroHypostasis.png new file mode 100644 index 0000000..638a56a Binary files /dev/null and b/cheat-library/res/iconsHD/ElectroHypostasis.png differ diff --git a/cheat-library/res/iconsHD/ElectroSeelie.png b/cheat-library/res/iconsHD/ElectroSeelie.png new file mode 100644 index 0000000..6e8a788 Binary files /dev/null and b/cheat-library/res/iconsHD/ElectroSeelie.png differ diff --git a/cheat-library/res/iconsHD/Electroculus.png b/cheat-library/res/iconsHD/Electroculus.png new file mode 100644 index 0000000..39d0378 Binary files /dev/null and b/cheat-library/res/iconsHD/Electroculus.png differ diff --git a/cheat-library/res/iconsHD/Electrogranum.png b/cheat-library/res/iconsHD/Electrogranum.png new file mode 100644 index 0000000..0c21f53 Binary files /dev/null and b/cheat-library/res/iconsHD/Electrogranum.png differ diff --git a/cheat-library/res/iconsHD/ElementalMonument.png b/cheat-library/res/iconsHD/ElementalMonument.png new file mode 100644 index 0000000..8fe6496 Binary files /dev/null and b/cheat-library/res/iconsHD/ElementalMonument.png differ diff --git a/cheat-library/res/iconsHD/EmeraldFinch.png b/cheat-library/res/iconsHD/EmeraldFinch.png new file mode 100644 index 0000000..377eb2c Binary files /dev/null and b/cheat-library/res/iconsHD/EmeraldFinch.png differ diff --git a/cheat-library/res/iconsHD/EnemiesFirstTimeVictory.png b/cheat-library/res/iconsHD/EnemiesFirstTimeVictory.png new file mode 100644 index 0000000..8d54d45 Binary files /dev/null and b/cheat-library/res/iconsHD/EnemiesFirstTimeVictory.png differ diff --git a/cheat-library/res/iconsHD/EnkanomiyaPhaseGate.png b/cheat-library/res/iconsHD/EnkanomiyaPhaseGate.png new file mode 100644 index 0000000..1b1e0f5 Binary files /dev/null and b/cheat-library/res/iconsHD/EnkanomiyaPhaseGate.png differ diff --git a/cheat-library/res/iconsHD/ExquisiteChest.png b/cheat-library/res/iconsHD/ExquisiteChest.png new file mode 100644 index 0000000..675685b Binary files /dev/null and b/cheat-library/res/iconsHD/ExquisiteChest.png differ diff --git a/cheat-library/res/iconsHD/EyeoftheStorm.png b/cheat-library/res/iconsHD/EyeoftheStorm.png new file mode 100644 index 0000000..a183872 Binary files /dev/null and b/cheat-library/res/iconsHD/EyeoftheStorm.png differ diff --git a/cheat-library/res/iconsHD/FatuiAgent.png b/cheat-library/res/iconsHD/FatuiAgent.png new file mode 100644 index 0000000..8d2e766 Binary files /dev/null and b/cheat-library/res/iconsHD/FatuiAgent.png differ diff --git a/cheat-library/res/iconsHD/FatuiCicinMage.png b/cheat-library/res/iconsHD/FatuiCicinMage.png new file mode 100644 index 0000000..beb0211 Binary files /dev/null and b/cheat-library/res/iconsHD/FatuiCicinMage.png differ diff --git a/cheat-library/res/iconsHD/FatuiMirrorMaiden.png b/cheat-library/res/iconsHD/FatuiMirrorMaiden.png new file mode 100644 index 0000000..5e1f57b Binary files /dev/null and b/cheat-library/res/iconsHD/FatuiMirrorMaiden.png differ diff --git a/cheat-library/res/iconsHD/FatuiSkirmisher.png b/cheat-library/res/iconsHD/FatuiSkirmisher.png new file mode 100644 index 0000000..37457b9 Binary files /dev/null and b/cheat-library/res/iconsHD/FatuiSkirmisher.png differ diff --git a/cheat-library/res/iconsHD/FirWood.png b/cheat-library/res/iconsHD/FirWood.png new file mode 100644 index 0000000..8c06527 Binary files /dev/null and b/cheat-library/res/iconsHD/FirWood.png differ diff --git a/cheat-library/res/iconsHD/Fish.png b/cheat-library/res/iconsHD/Fish.png new file mode 100644 index 0000000..75eed11 Binary files /dev/null and b/cheat-library/res/iconsHD/Fish.png differ diff --git a/cheat-library/res/iconsHD/FishingPoint.png b/cheat-library/res/iconsHD/FishingPoint.png new file mode 100644 index 0000000..7bfd830 Binary files /dev/null and b/cheat-library/res/iconsHD/FishingPoint.png differ diff --git a/cheat-library/res/iconsHD/FlamingFlowerStamen.png b/cheat-library/res/iconsHD/FlamingFlowerStamen.png new file mode 100644 index 0000000..29950d5 Binary files /dev/null and b/cheat-library/res/iconsHD/FlamingFlowerStamen.png differ diff --git a/cheat-library/res/iconsHD/FloatingAnemoSlime.png b/cheat-library/res/iconsHD/FloatingAnemoSlime.png new file mode 100644 index 0000000..ba68ddd Binary files /dev/null and b/cheat-library/res/iconsHD/FloatingAnemoSlime.png differ diff --git a/cheat-library/res/iconsHD/FloatingHydroFungus.png b/cheat-library/res/iconsHD/FloatingHydroFungus.png new file mode 100644 index 0000000..15f9908 Binary files /dev/null and b/cheat-library/res/iconsHD/FloatingHydroFungus.png differ diff --git a/cheat-library/res/iconsHD/FluorescentFungus.png b/cheat-library/res/iconsHD/FluorescentFungus.png new file mode 100644 index 0000000..4acac85 Binary files /dev/null and b/cheat-library/res/iconsHD/FluorescentFungus.png differ diff --git a/cheat-library/res/iconsHD/FormaloRay.png b/cheat-library/res/iconsHD/FormaloRay.png new file mode 100644 index 0000000..f667e04 Binary files /dev/null and b/cheat-library/res/iconsHD/FormaloRay.png differ diff --git a/cheat-library/res/iconsHD/Fowl.png b/cheat-library/res/iconsHD/Fowl.png new file mode 100644 index 0000000..07d1797 Binary files /dev/null and b/cheat-library/res/iconsHD/Fowl.png differ diff --git a/cheat-library/res/iconsHD/FragrantCedarWood.png b/cheat-library/res/iconsHD/FragrantCedarWood.png new file mode 100644 index 0000000..9d1be31 Binary files /dev/null and b/cheat-library/res/iconsHD/FragrantCedarWood.png differ diff --git a/cheat-library/res/iconsHD/Frog.png b/cheat-library/res/iconsHD/Frog.png new file mode 100644 index 0000000..440a96c Binary files /dev/null and b/cheat-library/res/iconsHD/Frog.png differ diff --git a/cheat-library/res/iconsHD/FrostbearingTree.png b/cheat-library/res/iconsHD/FrostbearingTree.png new file mode 100644 index 0000000..3fac00e Binary files /dev/null and b/cheat-library/res/iconsHD/FrostbearingTree.png differ diff --git a/cheat-library/res/iconsHD/GeneralCrab.png b/cheat-library/res/iconsHD/GeneralCrab.png new file mode 100644 index 0000000..2076b27 Binary files /dev/null and b/cheat-library/res/iconsHD/GeneralCrab.png differ diff --git a/cheat-library/res/iconsHD/GeoCrystalfly.png b/cheat-library/res/iconsHD/GeoCrystalfly.png new file mode 100644 index 0000000..854a99d Binary files /dev/null and b/cheat-library/res/iconsHD/GeoCrystalfly.png differ diff --git a/cheat-library/res/iconsHD/GeoHypostasis.png b/cheat-library/res/iconsHD/GeoHypostasis.png new file mode 100644 index 0000000..57e40af Binary files /dev/null and b/cheat-library/res/iconsHD/GeoHypostasis.png differ diff --git a/cheat-library/res/iconsHD/GeoSigil.png b/cheat-library/res/iconsHD/GeoSigil.png new file mode 100644 index 0000000..c565b31 Binary files /dev/null and b/cheat-library/res/iconsHD/GeoSigil.png differ diff --git a/cheat-library/res/iconsHD/Geoculus.png b/cheat-library/res/iconsHD/Geoculus.png new file mode 100644 index 0000000..de687ee Binary files /dev/null and b/cheat-library/res/iconsHD/Geoculus.png differ diff --git a/cheat-library/res/iconsHD/Geogranum.png b/cheat-library/res/iconsHD/Geogranum.png new file mode 100644 index 0000000..4d7fb9e Binary files /dev/null and b/cheat-library/res/iconsHD/Geogranum.png differ diff --git a/cheat-library/res/iconsHD/Geovishap.png b/cheat-library/res/iconsHD/Geovishap.png new file mode 100644 index 0000000..350ca18 Binary files /dev/null and b/cheat-library/res/iconsHD/Geovishap.png differ diff --git a/cheat-library/res/iconsHD/GeovishapHatchling.png b/cheat-library/res/iconsHD/GeovishapHatchling.png new file mode 100644 index 0000000..fcce56f Binary files /dev/null and b/cheat-library/res/iconsHD/GeovishapHatchling.png differ diff --git a/cheat-library/res/iconsHD/GlazeLily.png b/cheat-library/res/iconsHD/GlazeLily.png new file mode 100644 index 0000000..98ca90e Binary files /dev/null and b/cheat-library/res/iconsHD/GlazeLily.png differ diff --git a/cheat-library/res/iconsHD/GlazeMedaka.png b/cheat-library/res/iconsHD/GlazeMedaka.png new file mode 100644 index 0000000..ff96557 Binary files /dev/null and b/cheat-library/res/iconsHD/GlazeMedaka.png differ diff --git a/cheat-library/res/iconsHD/GoldenCrab.png b/cheat-library/res/iconsHD/GoldenCrab.png new file mode 100644 index 0000000..e21d351 Binary files /dev/null and b/cheat-library/res/iconsHD/GoldenCrab.png differ diff --git a/cheat-library/res/iconsHD/GoldenFinch.png b/cheat-library/res/iconsHD/GoldenFinch.png new file mode 100644 index 0000000..2c9d556 Binary files /dev/null and b/cheat-library/res/iconsHD/GoldenFinch.png differ diff --git a/cheat-library/res/iconsHD/GoldenKoi.png b/cheat-library/res/iconsHD/GoldenKoi.png new file mode 100644 index 0000000..dbb5d86 Binary files /dev/null and b/cheat-library/res/iconsHD/GoldenKoi.png differ diff --git a/cheat-library/res/iconsHD/GoldenLoach.png b/cheat-library/res/iconsHD/GoldenLoach.png new file mode 100644 index 0000000..da999ed Binary files /dev/null and b/cheat-library/res/iconsHD/GoldenLoach.png differ diff --git a/cheat-library/res/iconsHD/GoldenWolflord.png b/cheat-library/res/iconsHD/GoldenWolflord.png new file mode 100644 index 0000000..913afc9 Binary files /dev/null and b/cheat-library/res/iconsHD/GoldenWolflord.png differ diff --git a/cheat-library/res/iconsHD/GraySnowCat.png b/cheat-library/res/iconsHD/GraySnowCat.png new file mode 100644 index 0000000..a6f310a Binary files /dev/null and b/cheat-library/res/iconsHD/GraySnowCat.png differ diff --git a/cheat-library/res/iconsHD/GraywingPigeon.png b/cheat-library/res/iconsHD/GraywingPigeon.png new file mode 100644 index 0000000..1b954f4 Binary files /dev/null and b/cheat-library/res/iconsHD/GraywingPigeon.png differ diff --git a/cheat-library/res/iconsHD/GreenHornedLizard.png b/cheat-library/res/iconsHD/GreenHornedLizard.png new file mode 100644 index 0000000..480d68d Binary files /dev/null and b/cheat-library/res/iconsHD/GreenHornedLizard.png differ diff --git a/cheat-library/res/iconsHD/HarvestablePlant.png b/cheat-library/res/iconsHD/HarvestablePlant.png new file mode 100644 index 0000000..ab64765 Binary files /dev/null and b/cheat-library/res/iconsHD/HarvestablePlant.png differ diff --git a/cheat-library/res/iconsHD/Hilichurl.png b/cheat-library/res/iconsHD/Hilichurl.png new file mode 100644 index 0000000..8d54d45 Binary files /dev/null and b/cheat-library/res/iconsHD/Hilichurl.png differ diff --git a/cheat-library/res/iconsHD/HilichurlChieftain.png b/cheat-library/res/iconsHD/HilichurlChieftain.png new file mode 100644 index 0000000..9e59f1c Binary files /dev/null and b/cheat-library/res/iconsHD/HilichurlChieftain.png differ diff --git a/cheat-library/res/iconsHD/HilichurlShooter.png b/cheat-library/res/iconsHD/HilichurlShooter.png new file mode 100644 index 0000000..9dd55be Binary files /dev/null and b/cheat-library/res/iconsHD/HilichurlShooter.png differ diff --git a/cheat-library/res/iconsHD/Horsetail.png b/cheat-library/res/iconsHD/Horsetail.png new file mode 100644 index 0000000..9be18ea Binary files /dev/null and b/cheat-library/res/iconsHD/Horsetail.png differ diff --git a/cheat-library/res/iconsHD/HydroHypostasis.png b/cheat-library/res/iconsHD/HydroHypostasis.png new file mode 100644 index 0000000..6bce663 Binary files /dev/null and b/cheat-library/res/iconsHD/HydroHypostasis.png differ diff --git a/cheat-library/res/iconsHD/Illusion.png b/cheat-library/res/iconsHD/Illusion.png new file mode 100644 index 0000000..585df6e Binary files /dev/null and b/cheat-library/res/iconsHD/Illusion.png differ diff --git a/cheat-library/res/iconsHD/InazumaShrineofDepths.png b/cheat-library/res/iconsHD/InazumaShrineofDepths.png new file mode 100644 index 0000000..5659e26 Binary files /dev/null and b/cheat-library/res/iconsHD/InazumaShrineofDepths.png differ diff --git a/cheat-library/res/iconsHD/IronChunk.png b/cheat-library/res/iconsHD/IronChunk.png new file mode 100644 index 0000000..263588e Binary files /dev/null and b/cheat-library/res/iconsHD/IronChunk.png differ diff --git a/cheat-library/res/iconsHD/JadeChamber.png b/cheat-library/res/iconsHD/JadeChamber.png new file mode 100644 index 0000000..28fa5d0 Binary files /dev/null and b/cheat-library/res/iconsHD/JadeChamber.png differ diff --git a/cheat-library/res/iconsHD/JueyunChili.png b/cheat-library/res/iconsHD/JueyunChili.png new file mode 100644 index 0000000..58c96e2 Binary files /dev/null and b/cheat-library/res/iconsHD/JueyunChili.png differ diff --git a/cheat-library/res/iconsHD/KeySigilI.png b/cheat-library/res/iconsHD/KeySigilI.png new file mode 100644 index 0000000..1b13715 Binary files /dev/null and b/cheat-library/res/iconsHD/KeySigilI.png differ diff --git a/cheat-library/res/iconsHD/KeySigilII.png b/cheat-library/res/iconsHD/KeySigilII.png new file mode 100644 index 0000000..1a4b86d Binary files /dev/null and b/cheat-library/res/iconsHD/KeySigilII.png differ diff --git a/cheat-library/res/iconsHD/KeySigilIII.png b/cheat-library/res/iconsHD/KeySigilIII.png new file mode 100644 index 0000000..1a9eacc Binary files /dev/null and b/cheat-library/res/iconsHD/KeySigilIII.png differ diff --git a/cheat-library/res/iconsHD/KeySigilIV.png b/cheat-library/res/iconsHD/KeySigilIV.png new file mode 100644 index 0000000..b4e2850 Binary files /dev/null and b/cheat-library/res/iconsHD/KeySigilIV.png differ diff --git a/cheat-library/res/iconsHD/KeySigilV.png b/cheat-library/res/iconsHD/KeySigilV.png new file mode 100644 index 0000000..e4c9f4d Binary files /dev/null and b/cheat-library/res/iconsHD/KeySigilV.png differ diff --git a/cheat-library/res/iconsHD/KidKujirai.png b/cheat-library/res/iconsHD/KidKujirai.png new file mode 100644 index 0000000..f98d174 Binary files /dev/null and b/cheat-library/res/iconsHD/KidKujirai.png differ diff --git a/cheat-library/res/iconsHD/Kitsune.png b/cheat-library/res/iconsHD/Kitsune.png new file mode 100644 index 0000000..f070c87 Binary files /dev/null and b/cheat-library/res/iconsHD/Kitsune.png differ diff --git a/cheat-library/res/iconsHD/LargeRockPile.png b/cheat-library/res/iconsHD/LargeRockPile.png new file mode 100644 index 0000000..dd2dc11 Binary files /dev/null and b/cheat-library/res/iconsHD/LargeRockPile.png differ diff --git a/cheat-library/res/iconsHD/LavenderMelon.png b/cheat-library/res/iconsHD/LavenderMelon.png new file mode 100644 index 0000000..e920b39 Binary files /dev/null and b/cheat-library/res/iconsHD/LavenderMelon.png differ diff --git a/cheat-library/res/iconsHD/LightUpTilePuzzle.png b/cheat-library/res/iconsHD/LightUpTilePuzzle.png new file mode 100644 index 0000000..96d665a Binary files /dev/null and b/cheat-library/res/iconsHD/LightUpTilePuzzle.png differ diff --git a/cheat-library/res/iconsHD/LightningStrikeProbe.png b/cheat-library/res/iconsHD/LightningStrikeProbe.png new file mode 100644 index 0000000..c0617ab Binary files /dev/null and b/cheat-library/res/iconsHD/LightningStrikeProbe.png differ diff --git a/cheat-library/res/iconsHD/Liyue.png b/cheat-library/res/iconsHD/Liyue.png new file mode 100644 index 0000000..99bf56b Binary files /dev/null and b/cheat-library/res/iconsHD/Liyue.png differ diff --git a/cheat-library/res/iconsHD/LizardTail.png b/cheat-library/res/iconsHD/LizardTail.png new file mode 100644 index 0000000..d5d492e Binary files /dev/null and b/cheat-library/res/iconsHD/LizardTail.png differ diff --git a/cheat-library/res/iconsHD/LoachPearl.png b/cheat-library/res/iconsHD/LoachPearl.png new file mode 100644 index 0000000..88ba979 Binary files /dev/null and b/cheat-library/res/iconsHD/LoachPearl.png differ diff --git a/cheat-library/res/iconsHD/LotusHead.png b/cheat-library/res/iconsHD/LotusHead.png new file mode 100644 index 0000000..1dc65ec Binary files /dev/null and b/cheat-library/res/iconsHD/LotusHead.png differ diff --git a/cheat-library/res/iconsHD/LucklightFly.png b/cheat-library/res/iconsHD/LucklightFly.png new file mode 100644 index 0000000..5af5074 Binary files /dev/null and b/cheat-library/res/iconsHD/LucklightFly.png differ diff --git a/cheat-library/res/iconsHD/Lumenlamp.png b/cheat-library/res/iconsHD/Lumenlamp.png new file mode 100644 index 0000000..583a271 Binary files /dev/null and b/cheat-library/res/iconsHD/Lumenlamp.png differ diff --git a/cheat-library/res/iconsHD/Lumenspar.png b/cheat-library/res/iconsHD/Lumenspar.png new file mode 100644 index 0000000..07ec950 Binary files /dev/null and b/cheat-library/res/iconsHD/Lumenspar.png differ diff --git a/cheat-library/res/iconsHD/LuminescentSpine.png b/cheat-library/res/iconsHD/LuminescentSpine.png new file mode 100644 index 0000000..b342d87 Binary files /dev/null and b/cheat-library/res/iconsHD/LuminescentSpine.png differ diff --git a/cheat-library/res/iconsHD/LungedStickleback.png b/cheat-library/res/iconsHD/LungedStickleback.png new file mode 100644 index 0000000..234cfd0 Binary files /dev/null and b/cheat-library/res/iconsHD/LungedStickleback.png differ diff --git a/cheat-library/res/iconsHD/LupusBoreasDominatorofWolves.png b/cheat-library/res/iconsHD/LupusBoreasDominatorofWolves.png new file mode 100644 index 0000000..6f8d827 Binary files /dev/null and b/cheat-library/res/iconsHD/LupusBoreasDominatorofWolves.png differ diff --git a/cheat-library/res/iconsHD/LuxuriousChest.png b/cheat-library/res/iconsHD/LuxuriousChest.png new file mode 100644 index 0000000..5859f65 Binary files /dev/null and b/cheat-library/res/iconsHD/LuxuriousChest.png differ diff --git a/cheat-library/res/iconsHD/MagicalCrystalChunk.png b/cheat-library/res/iconsHD/MagicalCrystalChunk.png new file mode 100644 index 0000000..57d8e34 Binary files /dev/null and b/cheat-library/res/iconsHD/MagicalCrystalChunk.png differ diff --git a/cheat-library/res/iconsHD/MaguuKenki.png b/cheat-library/res/iconsHD/MaguuKenki.png new file mode 100644 index 0000000..224a1e7 Binary files /dev/null and b/cheat-library/res/iconsHD/MaguuKenki.png differ diff --git a/cheat-library/res/iconsHD/MapleWood.png b/cheat-library/res/iconsHD/MapleWood.png new file mode 100644 index 0000000..1788c62 Binary files /dev/null and b/cheat-library/res/iconsHD/MapleWood.png differ diff --git a/cheat-library/res/iconsHD/MarrowLizard.png b/cheat-library/res/iconsHD/MarrowLizard.png new file mode 100644 index 0000000..a2a0092 Binary files /dev/null and b/cheat-library/res/iconsHD/MarrowLizard.png differ diff --git a/cheat-library/res/iconsHD/Matsutake.png b/cheat-library/res/iconsHD/Matsutake.png new file mode 100644 index 0000000..235b619 Binary files /dev/null and b/cheat-library/res/iconsHD/Matsutake.png differ diff --git a/cheat-library/res/iconsHD/Medaka.png b/cheat-library/res/iconsHD/Medaka.png new file mode 100644 index 0000000..42bb4f5 Binary files /dev/null and b/cheat-library/res/iconsHD/Medaka.png differ diff --git a/cheat-library/res/iconsHD/Merchant.png b/cheat-library/res/iconsHD/Merchant.png new file mode 100644 index 0000000..76d02c2 Binary files /dev/null and b/cheat-library/res/iconsHD/Merchant.png differ diff --git a/cheat-library/res/iconsHD/MiniPuzzle.png b/cheat-library/res/iconsHD/MiniPuzzle.png new file mode 100644 index 0000000..03c62f7 Binary files /dev/null and b/cheat-library/res/iconsHD/MiniPuzzle.png differ diff --git a/cheat-library/res/iconsHD/Mint.png b/cheat-library/res/iconsHD/Mint.png new file mode 100644 index 0000000..09fad3b Binary files /dev/null and b/cheat-library/res/iconsHD/Mint.png differ diff --git a/cheat-library/res/iconsHD/MistBubble.png b/cheat-library/res/iconsHD/MistBubble.png new file mode 100644 index 0000000..069e75d Binary files /dev/null and b/cheat-library/res/iconsHD/MistBubble.png differ diff --git a/cheat-library/res/iconsHD/MistFlowerCorolla.png b/cheat-library/res/iconsHD/MistFlowerCorolla.png new file mode 100644 index 0000000..9bacedc Binary files /dev/null and b/cheat-library/res/iconsHD/MistFlowerCorolla.png differ diff --git a/cheat-library/res/iconsHD/Mitachurl.png b/cheat-library/res/iconsHD/Mitachurl.png new file mode 100644 index 0000000..02ffcbf Binary files /dev/null and b/cheat-library/res/iconsHD/Mitachurl.png differ diff --git a/cheat-library/res/iconsHD/Mondstadt.png b/cheat-library/res/iconsHD/Mondstadt.png new file mode 100644 index 0000000..102aa76 Binary files /dev/null and b/cheat-library/res/iconsHD/Mondstadt.png differ diff --git a/cheat-library/res/iconsHD/Mora.png b/cheat-library/res/iconsHD/Mora.png new file mode 100644 index 0000000..eb0ebee Binary files /dev/null and b/cheat-library/res/iconsHD/Mora.png differ diff --git a/cheat-library/res/iconsHD/MudFrog.png b/cheat-library/res/iconsHD/MudFrog.png new file mode 100644 index 0000000..8b2ea56 Binary files /dev/null and b/cheat-library/res/iconsHD/MudFrog.png differ diff --git a/cheat-library/res/iconsHD/Mushroom.png b/cheat-library/res/iconsHD/Mushroom.png new file mode 100644 index 0000000..0696a3a Binary files /dev/null and b/cheat-library/res/iconsHD/Mushroom.png differ diff --git a/cheat-library/res/iconsHD/MysteriousCarvings.png b/cheat-library/res/iconsHD/MysteriousCarvings.png new file mode 100644 index 0000000..e10ed09 Binary files /dev/null and b/cheat-library/res/iconsHD/MysteriousCarvings.png differ diff --git a/cheat-library/res/iconsHD/NakuWeed.png b/cheat-library/res/iconsHD/NakuWeed.png new file mode 100644 index 0000000..51b8b16 Binary files /dev/null and b/cheat-library/res/iconsHD/NakuWeed.png differ diff --git a/cheat-library/res/iconsHD/Nobushi.png b/cheat-library/res/iconsHD/Nobushi.png new file mode 100644 index 0000000..44778fc Binary files /dev/null and b/cheat-library/res/iconsHD/Nobushi.png differ diff --git a/cheat-library/res/iconsHD/NoctilucousJade.png b/cheat-library/res/iconsHD/NoctilucousJade.png new file mode 100644 index 0000000..f76d38e Binary files /dev/null and b/cheat-library/res/iconsHD/NoctilucousJade.png differ diff --git a/cheat-library/res/iconsHD/OceanCrab.png b/cheat-library/res/iconsHD/OceanCrab.png new file mode 100644 index 0000000..d8cac98 Binary files /dev/null and b/cheat-library/res/iconsHD/OceanCrab.png differ diff --git a/cheat-library/res/iconsHD/Oceanid.png b/cheat-library/res/iconsHD/Oceanid.png new file mode 100644 index 0000000..b22620e Binary files /dev/null and b/cheat-library/res/iconsHD/Oceanid.png differ diff --git a/cheat-library/res/iconsHD/Onikabuto.png b/cheat-library/res/iconsHD/Onikabuto.png new file mode 100644 index 0000000..796470d Binary files /dev/null and b/cheat-library/res/iconsHD/Onikabuto.png differ diff --git a/cheat-library/res/iconsHD/Ores.png b/cheat-library/res/iconsHD/Ores.png new file mode 100644 index 0000000..263588e Binary files /dev/null and b/cheat-library/res/iconsHD/Ores.png differ diff --git a/cheat-library/res/iconsHD/OtogiWood.png b/cheat-library/res/iconsHD/OtogiWood.png new file mode 100644 index 0000000..25df33f Binary files /dev/null and b/cheat-library/res/iconsHD/OtogiWood.png differ diff --git a/cheat-library/res/iconsHD/PaleRedCrab.png b/cheat-library/res/iconsHD/PaleRedCrab.png new file mode 100644 index 0000000..56abc3d Binary files /dev/null and b/cheat-library/res/iconsHD/PaleRedCrab.png differ diff --git a/cheat-library/res/iconsHD/PerpetualMechanicalArray.png b/cheat-library/res/iconsHD/PerpetualMechanicalArray.png new file mode 100644 index 0000000..81e32ab Binary files /dev/null and b/cheat-library/res/iconsHD/PerpetualMechanicalArray.png differ diff --git a/cheat-library/res/iconsHD/PhaseGate.png b/cheat-library/res/iconsHD/PhaseGate.png new file mode 100644 index 0000000..b228cf5 Binary files /dev/null and b/cheat-library/res/iconsHD/PhaseGate.png differ diff --git a/cheat-library/res/iconsHD/PhilanemoMushroom.png b/cheat-library/res/iconsHD/PhilanemoMushroom.png new file mode 100644 index 0000000..d488c54 Binary files /dev/null and b/cheat-library/res/iconsHD/PhilanemoMushroom.png differ diff --git a/cheat-library/res/iconsHD/PineWood.png b/cheat-library/res/iconsHD/PineWood.png new file mode 100644 index 0000000..76d4e8c Binary files /dev/null and b/cheat-library/res/iconsHD/PineWood.png differ diff --git a/cheat-library/res/iconsHD/Pinecone.png b/cheat-library/res/iconsHD/Pinecone.png new file mode 100644 index 0000000..f2dcb24 Binary files /dev/null and b/cheat-library/res/iconsHD/Pinecone.png differ diff --git a/cheat-library/res/iconsHD/PlacesofEssenceWorship.png b/cheat-library/res/iconsHD/PlacesofEssenceWorship.png new file mode 100644 index 0000000..4d265f5 Binary files /dev/null and b/cheat-library/res/iconsHD/PlacesofEssenceWorship.png differ diff --git a/cheat-library/res/iconsHD/Pot.png b/cheat-library/res/iconsHD/Pot.png new file mode 100644 index 0000000..72544a8 Binary files /dev/null and b/cheat-library/res/iconsHD/Pot.png differ diff --git a/cheat-library/res/iconsHD/PreciousChest.png b/cheat-library/res/iconsHD/PreciousChest.png new file mode 100644 index 0000000..73e4800 Binary files /dev/null and b/cheat-library/res/iconsHD/PreciousChest.png differ diff --git a/cheat-library/res/iconsHD/PressurePlate.png b/cheat-library/res/iconsHD/PressurePlate.png new file mode 100644 index 0000000..4b33a17 Binary files /dev/null and b/cheat-library/res/iconsHD/PressurePlate.png differ diff --git a/cheat-library/res/iconsHD/PrimoGeovishap.png b/cheat-library/res/iconsHD/PrimoGeovishap.png new file mode 100644 index 0000000..c17691c Binary files /dev/null and b/cheat-library/res/iconsHD/PrimoGeovishap.png differ diff --git a/cheat-library/res/iconsHD/Pufferfish.png b/cheat-library/res/iconsHD/Pufferfish.png new file mode 100644 index 0000000..5bf1abd Binary files /dev/null and b/cheat-library/res/iconsHD/Pufferfish.png differ diff --git a/cheat-library/res/iconsHD/PurpleShirakodai.png b/cheat-library/res/iconsHD/PurpleShirakodai.png new file mode 100644 index 0000000..9b1b010 Binary files /dev/null and b/cheat-library/res/iconsHD/PurpleShirakodai.png differ diff --git a/cheat-library/res/iconsHD/PyroHypostasis.png b/cheat-library/res/iconsHD/PyroHypostasis.png new file mode 100644 index 0000000..fbb043f Binary files /dev/null and b/cheat-library/res/iconsHD/PyroHypostasis.png differ diff --git a/cheat-library/res/iconsHD/PyroRegisvine.png b/cheat-library/res/iconsHD/PyroRegisvine.png new file mode 100644 index 0000000..6f664ab Binary files /dev/null and b/cheat-library/res/iconsHD/PyroRegisvine.png differ diff --git a/cheat-library/res/iconsHD/Qingxin.png b/cheat-library/res/iconsHD/Qingxin.png new file mode 100644 index 0000000..aaa8570 Binary files /dev/null and b/cheat-library/res/iconsHD/Qingxin.png differ diff --git a/cheat-library/res/iconsHD/RadiantSpincrystal.png b/cheat-library/res/iconsHD/RadiantSpincrystal.png new file mode 100644 index 0000000..73c971f Binary files /dev/null and b/cheat-library/res/iconsHD/RadiantSpincrystal.png differ diff --git a/cheat-library/res/iconsHD/Radish.png b/cheat-library/res/iconsHD/Radish.png new file mode 100644 index 0000000..7fc8f5c Binary files /dev/null and b/cheat-library/res/iconsHD/Radish.png differ diff --git a/cheat-library/res/iconsHD/RaimeiAngelfish.png b/cheat-library/res/iconsHD/RaimeiAngelfish.png new file mode 100644 index 0000000..b54550a Binary files /dev/null and b/cheat-library/res/iconsHD/RaimeiAngelfish.png differ diff --git a/cheat-library/res/iconsHD/RawMeat.png b/cheat-library/res/iconsHD/RawMeat.png new file mode 100644 index 0000000..d17c50e Binary files /dev/null and b/cheat-library/res/iconsHD/RawMeat.png differ diff --git a/cheat-library/res/iconsHD/Recipe.png b/cheat-library/res/iconsHD/Recipe.png new file mode 100644 index 0000000..2c39053 Binary files /dev/null and b/cheat-library/res/iconsHD/Recipe.png differ diff --git a/cheat-library/res/iconsHD/RedFinnedUnagi.png b/cheat-library/res/iconsHD/RedFinnedUnagi.png new file mode 100644 index 0000000..fad465c Binary files /dev/null and b/cheat-library/res/iconsHD/RedFinnedUnagi.png differ diff --git a/cheat-library/res/iconsHD/RedHornedLizard.png b/cheat-library/res/iconsHD/RedHornedLizard.png new file mode 100644 index 0000000..098bb56 Binary files /dev/null and b/cheat-library/res/iconsHD/RedHornedLizard.png differ diff --git a/cheat-library/res/iconsHD/RedTailedWeasel.png b/cheat-library/res/iconsHD/RedTailedWeasel.png new file mode 100644 index 0000000..ccdc1c1 Binary files /dev/null and b/cheat-library/res/iconsHD/RedTailedWeasel.png differ diff --git a/cheat-library/res/iconsHD/RemarkableChest.png b/cheat-library/res/iconsHD/RemarkableChest.png new file mode 100644 index 0000000..bf2f3f1 Binary files /dev/null and b/cheat-library/res/iconsHD/RemarkableChest.png differ diff --git a/cheat-library/res/iconsHD/RockPile.png b/cheat-library/res/iconsHD/RockPile.png new file mode 100644 index 0000000..b8538d6 Binary files /dev/null and b/cheat-library/res/iconsHD/RockPile.png differ diff --git a/cheat-library/res/iconsHD/RuinBrazier.png b/cheat-library/res/iconsHD/RuinBrazier.png new file mode 100644 index 0000000..40c2330 Binary files /dev/null and b/cheat-library/res/iconsHD/RuinBrazier.png differ diff --git a/cheat-library/res/iconsHD/RuinGrader.png b/cheat-library/res/iconsHD/RuinGrader.png new file mode 100644 index 0000000..16897ed Binary files /dev/null and b/cheat-library/res/iconsHD/RuinGrader.png differ diff --git a/cheat-library/res/iconsHD/RuinGuard.png b/cheat-library/res/iconsHD/RuinGuard.png new file mode 100644 index 0000000..16897ed Binary files /dev/null and b/cheat-library/res/iconsHD/RuinGuard.png differ diff --git a/cheat-library/res/iconsHD/RuinHunter.png b/cheat-library/res/iconsHD/RuinHunter.png new file mode 100644 index 0000000..d7a788d Binary files /dev/null and b/cheat-library/res/iconsHD/RuinHunter.png differ diff --git a/cheat-library/res/iconsHD/RuinSentinel.png b/cheat-library/res/iconsHD/RuinSentinel.png new file mode 100644 index 0000000..04123bf Binary files /dev/null and b/cheat-library/res/iconsHD/RuinSentinel.png differ diff --git a/cheat-library/res/iconsHD/RuinSerpent.png b/cheat-library/res/iconsHD/RuinSerpent.png new file mode 100644 index 0000000..024c380 Binary files /dev/null and b/cheat-library/res/iconsHD/RuinSerpent.png differ diff --git a/cheat-library/res/iconsHD/RustyKoi.png b/cheat-library/res/iconsHD/RustyKoi.png new file mode 100644 index 0000000..acc588b Binary files /dev/null and b/cheat-library/res/iconsHD/RustyKoi.png differ diff --git a/cheat-library/res/iconsHD/SacredSakura.png b/cheat-library/res/iconsHD/SacredSakura.png new file mode 100644 index 0000000..80ef6eb Binary files /dev/null and b/cheat-library/res/iconsHD/SacredSakura.png differ diff --git a/cheat-library/res/iconsHD/SakuraBloom.png b/cheat-library/res/iconsHD/SakuraBloom.png new file mode 100644 index 0000000..eeab65d Binary files /dev/null and b/cheat-library/res/iconsHD/SakuraBloom.png differ diff --git a/cheat-library/res/iconsHD/Samachurl.png b/cheat-library/res/iconsHD/Samachurl.png new file mode 100644 index 0000000..066059d Binary files /dev/null and b/cheat-library/res/iconsHD/Samachurl.png differ diff --git a/cheat-library/res/iconsHD/SandbearerWood.png b/cheat-library/res/iconsHD/SandbearerWood.png new file mode 100644 index 0000000..8424ea4 Binary files /dev/null and b/cheat-library/res/iconsHD/SandbearerWood.png differ diff --git a/cheat-library/res/iconsHD/SangoPearl.png b/cheat-library/res/iconsHD/SangoPearl.png new file mode 100644 index 0000000..7562158 Binary files /dev/null and b/cheat-library/res/iconsHD/SangoPearl.png differ diff --git a/cheat-library/res/iconsHD/Sapphire.png b/cheat-library/res/iconsHD/Sapphire.png new file mode 100644 index 0000000..c910097 Binary files /dev/null and b/cheat-library/res/iconsHD/Sapphire.png differ diff --git a/cheat-library/res/iconsHD/ScarletQuartz.png b/cheat-library/res/iconsHD/ScarletQuartz.png new file mode 100644 index 0000000..6ae4c94 Binary files /dev/null and b/cheat-library/res/iconsHD/ScarletQuartz.png differ diff --git a/cheat-library/res/iconsHD/SeaGanoderma.png b/cheat-library/res/iconsHD/SeaGanoderma.png new file mode 100644 index 0000000..c8ec618 Binary files /dev/null and b/cheat-library/res/iconsHD/SeaGanoderma.png differ diff --git a/cheat-library/res/iconsHD/Seagrass.png b/cheat-library/res/iconsHD/Seagrass.png new file mode 100644 index 0000000..5ed0e9b Binary files /dev/null and b/cheat-library/res/iconsHD/Seagrass.png differ diff --git a/cheat-library/res/iconsHD/SealLocationI.png b/cheat-library/res/iconsHD/SealLocationI.png new file mode 100644 index 0000000..fdd42d7 Binary files /dev/null and b/cheat-library/res/iconsHD/SealLocationI.png differ diff --git a/cheat-library/res/iconsHD/SealLocationII.png b/cheat-library/res/iconsHD/SealLocationII.png new file mode 100644 index 0000000..930d343 Binary files /dev/null and b/cheat-library/res/iconsHD/SealLocationII.png differ diff --git a/cheat-library/res/iconsHD/SealLocationIII.png b/cheat-library/res/iconsHD/SealLocationIII.png new file mode 100644 index 0000000..dba0b03 Binary files /dev/null and b/cheat-library/res/iconsHD/SealLocationIII.png differ diff --git a/cheat-library/res/iconsHD/SealLocationIV.png b/cheat-library/res/iconsHD/SealLocationIV.png new file mode 100644 index 0000000..d122e68 Binary files /dev/null and b/cheat-library/res/iconsHD/SealLocationIV.png differ diff --git a/cheat-library/res/iconsHD/SealLocationV.png b/cheat-library/res/iconsHD/SealLocationV.png new file mode 100644 index 0000000..a0b078f Binary files /dev/null and b/cheat-library/res/iconsHD/SealLocationV.png differ diff --git a/cheat-library/res/iconsHD/SealedChest.png b/cheat-library/res/iconsHD/SealedChest.png new file mode 100644 index 0000000..dc169c9 Binary files /dev/null and b/cheat-library/res/iconsHD/SealedChest.png differ diff --git a/cheat-library/res/iconsHD/Seelie.png b/cheat-library/res/iconsHD/Seelie.png new file mode 100644 index 0000000..55948fa Binary files /dev/null and b/cheat-library/res/iconsHD/Seelie.png differ diff --git a/cheat-library/res/iconsHD/SeelieCourt.png b/cheat-library/res/iconsHD/SeelieCourt.png new file mode 100644 index 0000000..c79b311 Binary files /dev/null and b/cheat-library/res/iconsHD/SeelieCourt.png differ diff --git a/cheat-library/res/iconsHD/ShadowyHusk.png b/cheat-library/res/iconsHD/ShadowyHusk.png new file mode 100644 index 0000000..81c3635 Binary files /dev/null and b/cheat-library/res/iconsHD/ShadowyHusk.png differ diff --git a/cheat-library/res/iconsHD/SilkFlower.png b/cheat-library/res/iconsHD/SilkFlower.png new file mode 100644 index 0000000..ed51a76 Binary files /dev/null and b/cheat-library/res/iconsHD/SilkFlower.png differ diff --git a/cheat-library/res/iconsHD/Slime.png b/cheat-library/res/iconsHD/Slime.png new file mode 100644 index 0000000..1634bc6 Binary files /dev/null and b/cheat-library/res/iconsHD/Slime.png differ diff --git a/cheat-library/res/iconsHD/SmallLampGrass.png b/cheat-library/res/iconsHD/SmallLampGrass.png new file mode 100644 index 0000000..4c0b2b6 Binary files /dev/null and b/cheat-library/res/iconsHD/SmallLampGrass.png differ diff --git a/cheat-library/res/iconsHD/SmallRockPile.png b/cheat-library/res/iconsHD/SmallRockPile.png new file mode 100644 index 0000000..58a785a Binary files /dev/null and b/cheat-library/res/iconsHD/SmallRockPile.png differ diff --git a/cheat-library/res/iconsHD/SmashedStone.png b/cheat-library/res/iconsHD/SmashedStone.png new file mode 100644 index 0000000..961ff1e Binary files /dev/null and b/cheat-library/res/iconsHD/SmashedStone.png differ diff --git a/cheat-library/res/iconsHD/Snapdragon.png b/cheat-library/res/iconsHD/Snapdragon.png new file mode 100644 index 0000000..ea71c81 Binary files /dev/null and b/cheat-library/res/iconsHD/Snapdragon.png differ diff --git a/cheat-library/res/iconsHD/SnowFinch.png b/cheat-library/res/iconsHD/SnowFinch.png new file mode 100644 index 0000000..0466c94 Binary files /dev/null and b/cheat-library/res/iconsHD/SnowFinch.png differ diff --git a/cheat-library/res/iconsHD/SnowFox.png b/cheat-library/res/iconsHD/SnowFox.png new file mode 100644 index 0000000..82c8b1b Binary files /dev/null and b/cheat-library/res/iconsHD/SnowFox.png differ diff --git a/cheat-library/res/iconsHD/SnowWeasel.png b/cheat-library/res/iconsHD/SnowWeasel.png new file mode 100644 index 0000000..6c46e88 Binary files /dev/null and b/cheat-library/res/iconsHD/SnowWeasel.png differ diff --git a/cheat-library/res/iconsHD/Snowboar.png b/cheat-library/res/iconsHD/Snowboar.png new file mode 100644 index 0000000..1321bb0 Binary files /dev/null and b/cheat-library/res/iconsHD/Snowboar.png differ diff --git a/cheat-library/res/iconsHD/Snowstrider.png b/cheat-library/res/iconsHD/Snowstrider.png new file mode 100644 index 0000000..f905188 Binary files /dev/null and b/cheat-library/res/iconsHD/Snowstrider.png differ diff --git a/cheat-library/res/iconsHD/Specter.png b/cheat-library/res/iconsHD/Specter.png new file mode 100644 index 0000000..4d05c59 Binary files /dev/null and b/cheat-library/res/iconsHD/Specter.png differ diff --git a/cheat-library/res/iconsHD/Squirrel.png b/cheat-library/res/iconsHD/Squirrel.png new file mode 100644 index 0000000..101941e Binary files /dev/null and b/cheat-library/res/iconsHD/Squirrel.png differ diff --git a/cheat-library/res/iconsHD/Starconch.png b/cheat-library/res/iconsHD/Starconch.png new file mode 100644 index 0000000..55898d4 Binary files /dev/null and b/cheat-library/res/iconsHD/Starconch.png differ diff --git a/cheat-library/res/iconsHD/Starshroom.png b/cheat-library/res/iconsHD/Starshroom.png new file mode 100644 index 0000000..18d58cc Binary files /dev/null and b/cheat-library/res/iconsHD/Starshroom.png differ diff --git a/cheat-library/res/iconsHD/Starsilver.png b/cheat-library/res/iconsHD/Starsilver.png new file mode 100644 index 0000000..b44743c Binary files /dev/null and b/cheat-library/res/iconsHD/Starsilver.png differ diff --git a/cheat-library/res/iconsHD/StatueofTheSeven.png b/cheat-library/res/iconsHD/StatueofTheSeven.png new file mode 100644 index 0000000..b9ab41b Binary files /dev/null and b/cheat-library/res/iconsHD/StatueofTheSeven.png differ diff --git a/cheat-library/res/iconsHD/StormBarrier.png b/cheat-library/res/iconsHD/StormBarrier.png new file mode 100644 index 0000000..ab64765 Binary files /dev/null and b/cheat-library/res/iconsHD/StormBarrier.png differ diff --git a/cheat-library/res/iconsHD/Stormstone.png b/cheat-library/res/iconsHD/Stormstone.png new file mode 100644 index 0000000..9162bb4 Binary files /dev/null and b/cheat-library/res/iconsHD/Stormstone.png differ diff --git a/cheat-library/res/iconsHD/StrangeTooth.png b/cheat-library/res/iconsHD/StrangeTooth.png new file mode 100644 index 0000000..823c2ae Binary files /dev/null and b/cheat-library/res/iconsHD/StrangeTooth.png differ diff --git a/cheat-library/res/iconsHD/SunCrab.png b/cheat-library/res/iconsHD/SunCrab.png new file mode 100644 index 0000000..d0420b7 Binary files /dev/null and b/cheat-library/res/iconsHD/SunCrab.png differ diff --git a/cheat-library/res/iconsHD/SunnyLoach.png b/cheat-library/res/iconsHD/SunnyLoach.png new file mode 100644 index 0000000..8a57172 Binary files /dev/null and b/cheat-library/res/iconsHD/SunnyLoach.png differ diff --git a/cheat-library/res/iconsHD/SunsetLoach.png b/cheat-library/res/iconsHD/SunsetLoach.png new file mode 100644 index 0000000..114eafb Binary files /dev/null and b/cheat-library/res/iconsHD/SunsetLoach.png differ diff --git a/cheat-library/res/iconsHD/Sunsettia.png b/cheat-library/res/iconsHD/Sunsettia.png new file mode 100644 index 0000000..5582c1e Binary files /dev/null and b/cheat-library/res/iconsHD/Sunsettia.png differ diff --git a/cheat-library/res/iconsHD/SweetFlower.png b/cheat-library/res/iconsHD/SweetFlower.png new file mode 100644 index 0000000..b41c80c Binary files /dev/null and b/cheat-library/res/iconsHD/SweetFlower.png differ diff --git a/cheat-library/res/iconsHD/SweetFlowerMedaka.png b/cheat-library/res/iconsHD/SweetFlowerMedaka.png new file mode 100644 index 0000000..2f6b70a Binary files /dev/null and b/cheat-library/res/iconsHD/SweetFlowerMedaka.png differ diff --git a/cheat-library/res/iconsHD/SwordHilt.png b/cheat-library/res/iconsHD/SwordHilt.png new file mode 100644 index 0000000..eb68947 Binary files /dev/null and b/cheat-library/res/iconsHD/SwordHilt.png differ diff --git a/cheat-library/res/iconsHD/TeaColoredShirakodai.png b/cheat-library/res/iconsHD/TeaColoredShirakodai.png new file mode 100644 index 0000000..209e4f9 Binary files /dev/null and b/cheat-library/res/iconsHD/TeaColoredShirakodai.png differ diff --git a/cheat-library/res/iconsHD/TeleportWaypoint.png b/cheat-library/res/iconsHD/TeleportWaypoint.png new file mode 100644 index 0000000..87dd326 Binary files /dev/null and b/cheat-library/res/iconsHD/TeleportWaypoint.png differ diff --git a/cheat-library/res/iconsHD/TheCruxTheAlcor.png b/cheat-library/res/iconsHD/TheCruxTheAlcor.png new file mode 100644 index 0000000..271dbbe Binary files /dev/null and b/cheat-library/res/iconsHD/TheCruxTheAlcor.png differ diff --git a/cheat-library/res/iconsHD/TheGreatSnowboarKing.png b/cheat-library/res/iconsHD/TheGreatSnowboarKing.png new file mode 100644 index 0000000..23f3e63 Binary files /dev/null and b/cheat-library/res/iconsHD/TheGreatSnowboarKing.png differ diff --git a/cheat-library/res/iconsHD/ThreeBoxes.png b/cheat-library/res/iconsHD/ThreeBoxes.png new file mode 100644 index 0000000..22fa83a Binary files /dev/null and b/cheat-library/res/iconsHD/ThreeBoxes.png differ diff --git a/cheat-library/res/iconsHD/ThunderManifestation.png b/cheat-library/res/iconsHD/ThunderManifestation.png new file mode 100644 index 0000000..217c68a Binary files /dev/null and b/cheat-library/res/iconsHD/ThunderManifestation.png differ diff --git a/cheat-library/res/iconsHD/TimeTrialChallenge.png b/cheat-library/res/iconsHD/TimeTrialChallenge.png new file mode 100644 index 0000000..5502b94 Binary files /dev/null and b/cheat-library/res/iconsHD/TimeTrialChallenge.png differ diff --git a/cheat-library/res/iconsHD/TorchPuzzle.png b/cheat-library/res/iconsHD/TorchPuzzle.png new file mode 100644 index 0000000..3ad10a4 Binary files /dev/null and b/cheat-library/res/iconsHD/TorchPuzzle.png differ diff --git a/cheat-library/res/iconsHD/TreasureHoarder.png b/cheat-library/res/iconsHD/TreasureHoarder.png new file mode 100644 index 0000000..300efec Binary files /dev/null and b/cheat-library/res/iconsHD/TreasureHoarder.png differ diff --git a/cheat-library/res/iconsHD/TriangularMechanism.png b/cheat-library/res/iconsHD/TriangularMechanism.png new file mode 100644 index 0000000..571e394 Binary files /dev/null and b/cheat-library/res/iconsHD/TriangularMechanism.png differ diff --git a/cheat-library/res/iconsHD/UnagiMeat.png b/cheat-library/res/iconsHD/UnagiMeat.png new file mode 100644 index 0000000..1a53b44 Binary files /dev/null and b/cheat-library/res/iconsHD/UnagiMeat.png differ diff --git a/cheat-library/res/iconsHD/UniqueRocks.png b/cheat-library/res/iconsHD/UniqueRocks.png new file mode 100644 index 0000000..095d267 Binary files /dev/null and b/cheat-library/res/iconsHD/UniqueRocks.png differ diff --git a/cheat-library/res/iconsHD/UnusualHilichurl.png b/cheat-library/res/iconsHD/UnusualHilichurl.png new file mode 100644 index 0000000..7049642 Binary files /dev/null and b/cheat-library/res/iconsHD/UnusualHilichurl.png differ diff --git a/cheat-library/res/iconsHD/Valberry.png b/cheat-library/res/iconsHD/Valberry.png new file mode 100644 index 0000000..9f8c73a Binary files /dev/null and b/cheat-library/res/iconsHD/Valberry.png differ diff --git a/cheat-library/res/iconsHD/VenomspineFish.png b/cheat-library/res/iconsHD/VenomspineFish.png new file mode 100644 index 0000000..2575c27 Binary files /dev/null and b/cheat-library/res/iconsHD/VenomspineFish.png differ diff --git a/cheat-library/res/iconsHD/Viewpoint.png b/cheat-library/res/iconsHD/Viewpoint.png new file mode 100644 index 0000000..16b7cb7 Binary files /dev/null and b/cheat-library/res/iconsHD/Viewpoint.png differ diff --git a/cheat-library/res/iconsHD/VioletIbis.png b/cheat-library/res/iconsHD/VioletIbis.png new file mode 100644 index 0000000..23d641e Binary files /dev/null and b/cheat-library/res/iconsHD/VioletIbis.png differ diff --git a/cheat-library/res/iconsHD/Violetgrass.png b/cheat-library/res/iconsHD/Violetgrass.png new file mode 100644 index 0000000..4977bee Binary files /dev/null and b/cheat-library/res/iconsHD/Violetgrass.png differ diff --git a/cheat-library/res/iconsHD/WarmingSeelie.png b/cheat-library/res/iconsHD/WarmingSeelie.png new file mode 100644 index 0000000..2f0550d Binary files /dev/null and b/cheat-library/res/iconsHD/WarmingSeelie.png differ diff --git a/cheat-library/res/iconsHD/WaveriderWaypointCannotTeleport.png b/cheat-library/res/iconsHD/WaveriderWaypointCannotTeleport.png new file mode 100644 index 0000000..3d0a279 Binary files /dev/null and b/cheat-library/res/iconsHD/WaveriderWaypointCannotTeleport.png differ diff --git a/cheat-library/res/iconsHD/Weapon.png b/cheat-library/res/iconsHD/Weapon.png new file mode 100644 index 0000000..c9a39a1 Binary files /dev/null and b/cheat-library/res/iconsHD/Weapon.png differ diff --git a/cheat-library/res/iconsHD/WhiteIronChunk.png b/cheat-library/res/iconsHD/WhiteIronChunk.png new file mode 100644 index 0000000..9898e1d Binary files /dev/null and b/cheat-library/res/iconsHD/WhiteIronChunk.png differ diff --git a/cheat-library/res/iconsHD/WhitePigeon.png b/cheat-library/res/iconsHD/WhitePigeon.png new file mode 100644 index 0000000..2e8a29d Binary files /dev/null and b/cheat-library/res/iconsHD/WhitePigeon.png differ diff --git a/cheat-library/res/iconsHD/Whopperflower.png b/cheat-library/res/iconsHD/Whopperflower.png new file mode 100644 index 0000000..9eab882 Binary files /dev/null and b/cheat-library/res/iconsHD/Whopperflower.png differ diff --git a/cheat-library/res/iconsHD/WindmillMechanism.png b/cheat-library/res/iconsHD/WindmillMechanism.png new file mode 100644 index 0000000..65809be Binary files /dev/null and b/cheat-library/res/iconsHD/WindmillMechanism.png differ diff --git a/cheat-library/res/iconsHD/WindwheelAster.png b/cheat-library/res/iconsHD/WindwheelAster.png new file mode 100644 index 0000000..edad123 Binary files /dev/null and b/cheat-library/res/iconsHD/WindwheelAster.png differ diff --git a/cheat-library/res/iconsHD/Wolfhook.png b/cheat-library/res/iconsHD/Wolfhook.png new file mode 100644 index 0000000..82948d1 Binary files /dev/null and b/cheat-library/res/iconsHD/Wolfhook.png differ diff --git a/cheat-library/res/iconsHD/WolvesoftheRift.png b/cheat-library/res/iconsHD/WolvesoftheRift.png new file mode 100644 index 0000000..0651578 Binary files /dev/null and b/cheat-library/res/iconsHD/WolvesoftheRift.png differ diff --git a/cheat-library/res/iconsHD/WoodenCrate.png b/cheat-library/res/iconsHD/WoodenCrate.png new file mode 100644 index 0000000..b17bd4e Binary files /dev/null and b/cheat-library/res/iconsHD/WoodenCrate.png differ diff --git a/cheat-library/res/iconsHD/WorldQuests.png b/cheat-library/res/iconsHD/WorldQuests.png new file mode 100644 index 0000000..9219a38 Binary files /dev/null and b/cheat-library/res/iconsHD/WorldQuests.png differ diff --git a/cheat-library/res/iconsHD/YumemiruWood.png b/cheat-library/res/iconsHD/YumemiruWood.png new file mode 100644 index 0000000..13bc25b Binary files /dev/null and b/cheat-library/res/iconsHD/YumemiruWood.png differ diff --git a/cheat-library/res/map_enkanomiya.json b/cheat-library/res/map_enkanomiya.json new file mode 100644 index 0000000..c12bc41 --- /dev/null +++ b/cheat-library/res/map_enkanomiya.json @@ -0,0 +1,8978 @@ +{ + "labels": { + "77": { + "name": "Mini Puzzle", + "clear_name": "MiniPuzzle", + "points": [ + { + "id": 26452, + "x_pos": -231.25, + "y_pos": 416.25 + }, + { + "id": 26451, + "x_pos": -147.25, + "y_pos": 570.5 + }, + { + "id": 23135, + "x_pos": 439.75, + "y_pos": 13.5 + }, + { + "id": 23134, + "x_pos": 427.5, + "y_pos": -187.75 + }, + { + "id": 23075, + "x_pos": -17.632291710670415, + "y_pos": 47.64813835704308 + }, + { + "id": 23031, + "x_pos": 85.75, + "y_pos": -672.75 + }, + { + "id": 22928, + "x_pos": -233.75, + "y_pos": 416.75 + }, + { + "id": 22922, + "x_pos": 475.25, + "y_pos": -177.75 + }, + { + "id": 22921, + "x_pos": 71.5, + "y_pos": -84.75 + }, + { + "id": 22914, + "x_pos": 444.75, + "y_pos": -53 + }, + { + "id": 22854, + "x_pos": -672.3633032095297, + "y_pos": -80.08291962965563 + }, + { + "id": 22764, + "x_pos": -244, + "y_pos": 802 + }, + { + "id": 22762, + "x_pos": -135, + "y_pos": 538.25 + }, + { + "id": 22761, + "x_pos": -121.5, + "y_pos": 599 + }, + { + "id": 22760, + "x_pos": -310, + "y_pos": 487 + }, + { + "id": 22759, + "x_pos": 68, + "y_pos": 504.5 + }, + { + "id": 22758, + "x_pos": 580.75, + "y_pos": -8.25 + }, + { + "id": 22757, + "x_pos": 7, + "y_pos": 465.25 + }, + { + "id": 22756, + "x_pos": -231.75, + "y_pos": 410.75 + }, + { + "id": 22751, + "x_pos": -603.4333360685757, + "y_pos": -367.9052085375604 + }, + { + "id": 22749, + "x_pos": -146.5, + "y_pos": -26.75 + }, + { + "id": 22748, + "x_pos": -79, + "y_pos": -160.5 + }, + { + "id": 22746, + "x_pos": -387.25, + "y_pos": -273.75 + }, + { + "id": 22738, + "x_pos": -576.5, + "y_pos": -363.5 + }, + { + "id": 22731, + "x_pos": -647.5, + "y_pos": -204.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8318e95c402c3f8120c236d569b7c30d_4122189942380617256.png" + }, + "220": { + "name": "Yumemiru Wood", + "clear_name": "YumemiruWood", + "points": [ + { + "id": 24578, + "x_pos": -1173, + "y_pos": 784.75 + }, + { + "id": 24577, + "x_pos": -1175.25, + "y_pos": 763.25 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210723/50dd92c679dd3ba324f47db70824dab6_3425783467333168525.png" + }, + "122": { + "name": "Fish", + "clear_name": "Fish", + "points": [ + { + "id": 24576, + "x_pos": -233.25, + "y_pos": 491 + }, + { + "id": 24575, + "x_pos": -235.25, + "y_pos": 491 + }, + { + "id": 24574, + "x_pos": -237.5, + "y_pos": 491 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/e01bf2dd86cd24121b1f09285f7304d8_2830373650601356948.png" + }, + "162": { + "name": "Mushroom", + "clear_name": "Mushroom", + "points": [ + { + "id": 24573, + "x_pos": -284.5, + "y_pos": 440.5 + }, + { + "id": 24572, + "x_pos": -454.75, + "y_pos": -414.5 + }, + { + "id": 24571, + "x_pos": -412.75, + "y_pos": -382.5 + }, + { + "id": 24570, + "x_pos": -355.25, + "y_pos": -274.75 + }, + { + "id": 24569, + "x_pos": -383.5, + "y_pos": -257.25 + }, + { + "id": 24568, + "x_pos": -715.5, + "y_pos": -200.75 + }, + { + "id": 24567, + "x_pos": -812.75, + "y_pos": -179 + }, + { + "id": 24566, + "x_pos": -812.5, + "y_pos": -181.75 + }, + { + "id": 23636, + "x_pos": 397, + "y_pos": 1036.5 + }, + { + "id": 23635, + "x_pos": 420.5, + "y_pos": 1045.5 + }, + { + "id": 23634, + "x_pos": 426, + "y_pos": 1020.5 + }, + { + "id": 23633, + "x_pos": -481, + "y_pos": -1049.5 + }, + { + "id": 23632, + "x_pos": -479, + "y_pos": -1049 + }, + { + "id": 23631, + "x_pos": -479.5, + "y_pos": -1047.5 + }, + { + "id": 23169, + "x_pos": -301.85830086245505, + "y_pos": 406.971393694198 + }, + { + "id": 23161, + "x_pos": -567.4000091552734, + "y_pos": -318.745315873276 + }, + { + "id": 23160, + "x_pos": -569.5499877929688, + "y_pos": -318.696383478034 + }, + { + "id": 23156, + "x_pos": -587.4499816894531, + "y_pos": -373.99933083903943 + }, + { + "id": 23155, + "x_pos": -553.25, + "y_pos": -363.5 + }, + { + "id": 23143, + "x_pos": -265.94996643066406, + "y_pos": -234.5499132408413 + }, + { + "id": 23142, + "x_pos": -294.00001525878906, + "y_pos": -249 + }, + { + "id": 23139, + "x_pos": -527.5, + "y_pos": -210.69972928283687 + }, + { + "id": 23095, + "x_pos": -398.70001220703125, + "y_pos": -397.9493947023566 + }, + { + "id": 23071, + "x_pos": -453.1209598632154, + "y_pos": -279.84548320990643 + }, + { + "id": 22695, + "x_pos": 96, + "y_pos": -617.5 + }, + { + "id": 22694, + "x_pos": 62.5, + "y_pos": -627 + }, + { + "id": 22693, + "x_pos": 68, + "y_pos": -604 + }, + { + "id": 22692, + "x_pos": 43, + "y_pos": -630 + }, + { + "id": 22691, + "x_pos": 17, + "y_pos": -620 + }, + { + "id": 22690, + "x_pos": 11, + "y_pos": -587.5 + }, + { + "id": 22689, + "x_pos": 34.5, + "y_pos": -545.5 + }, + { + "id": 22688, + "x_pos": -283, + "y_pos": 778.5 + }, + { + "id": 22687, + "x_pos": -298, + "y_pos": 844.5 + }, + { + "id": 22686, + "x_pos": -372, + "y_pos": 799.5 + }, + { + "id": 22685, + "x_pos": -287, + "y_pos": 773.5 + }, + { + "id": 22684, + "x_pos": -252, + "y_pos": 752.5 + }, + { + "id": 22683, + "x_pos": -155.5, + "y_pos": 508.5 + }, + { + "id": 22682, + "x_pos": -172.4000244140625, + "y_pos": 763.8112224242541 + }, + { + "id": 22681, + "x_pos": -152.70001220703125, + "y_pos": 750.9147477390043 + }, + { + "id": 22680, + "x_pos": -196.199951171875, + "y_pos": 743.1045750861144 + }, + { + "id": 22679, + "x_pos": -335.1000061035156, + "y_pos": 738.7775976900693 + }, + { + "id": 22678, + "x_pos": -293.1000061035156, + "y_pos": 772.4225985411135 + }, + { + "id": 22677, + "x_pos": -315.3000183105469, + "y_pos": 775.7291957167376 + }, + { + "id": 22676, + "x_pos": -354.6000061035156, + "y_pos": 788.2493819154174 + }, + { + "id": 22675, + "x_pos": -357.79998779296875, + "y_pos": 830.8208838368132 + }, + { + "id": 22674, + "x_pos": -320.70001220703125, + "y_pos": 854.6124411361006 + }, + { + "id": 22673, + "x_pos": -310.8999938964844, + "y_pos": 843.7148633119155 + }, + { + "id": 22672, + "x_pos": -303.39996337890625, + "y_pos": 836.2227751055339 + }, + { + "id": 22671, + "x_pos": -238.79998779296875, + "y_pos": 773.0632783236829 + }, + { + "id": 22670, + "x_pos": -141.7000732421875, + "y_pos": 573.2846003664954 + }, + { + "id": 22669, + "x_pos": -152.49996948242188, + "y_pos": 555.9336367770075 + }, + { + "id": 22668, + "x_pos": -114.5, + "y_pos": 531.2198689800889 + }, + { + "id": 22667, + "x_pos": -115.50003051757812, + "y_pos": 530.3686240822635 + }, + { + "id": 22666, + "x_pos": -120, + "y_pos": 513.2813671890772 + }, + { + "id": 22665, + "x_pos": -153.99996948242188, + "y_pos": 469.71951905630067 + }, + { + "id": 22664, + "x_pos": -183.70001220703125, + "y_pos": 525.0143247808837 + }, + { + "id": 22663, + "x_pos": -230, + "y_pos": 489.77314359136335 + }, + { + "id": 22662, + "x_pos": -313.8000183105469, + "y_pos": 470.86363366196747 + }, + { + "id": 22661, + "x_pos": -268.1999816894531, + "y_pos": 387.70556707102196 + }, + { + "id": 22660, + "x_pos": -217.39999389648438, + "y_pos": 366.93082213882735 + }, + { + "id": 22659, + "x_pos": -203.89999389648438, + "y_pos": 381.57579249411583 + }, + { + "id": 22658, + "x_pos": -147.99996948242188, + "y_pos": 378.6110109451938 + }, + { + "id": 22657, + "x_pos": 77, + "y_pos": 475.24310958232263 + }, + { + "id": 22656, + "x_pos": 82.20001220703125, + "y_pos": 506.83587796951724 + }, + { + "id": 22655, + "x_pos": 22.999969482421875, + "y_pos": 528.4034697377365 + }, + { + "id": 22654, + "x_pos": 9.89996337890625, + "y_pos": 492.0949212974938 + }, + { + "id": 22653, + "x_pos": -11.899993896484375, + "y_pos": 456.49426398849573 + }, + { + "id": 22652, + "x_pos": -14.800048828125, + "y_pos": 419.8010933055548 + }, + { + "id": 22651, + "x_pos": 137.70001220703125, + "y_pos": 340.4106054443928 + }, + { + "id": 22650, + "x_pos": 89, + "y_pos": 375.794596454964 + }, + { + "id": 22649, + "x_pos": -7.20001220703125, + "y_pos": 378.6188617473031 + }, + { + "id": 22648, + "x_pos": -25, + "y_pos": 376.26420489819657 + }, + { + "id": 22647, + "x_pos": -65.79998779296875, + "y_pos": 396.0048345182486 + }, + { + "id": 22646, + "x_pos": -389.5, + "y_pos": -499.2790583767312 + }, + { + "id": 22645, + "x_pos": -396.5, + "y_pos": -476.73829793589016 + }, + { + "id": 22644, + "x_pos": -344, + "y_pos": -419.1835931337089 + }, + { + "id": 22643, + "x_pos": -363.5, + "y_pos": -438.6642855564685 + }, + { + "id": 22642, + "x_pos": -357.70001220703125, + "y_pos": -370.8165856401547 + }, + { + "id": 22641, + "x_pos": -343.29998779296875, + "y_pos": -359.10010573953014 + }, + { + "id": 22640, + "x_pos": -508.0999755859375, + "y_pos": -362.64877797399095 + }, + { + "id": 22639, + "x_pos": -562, + "y_pos": -312.24723662905717 + }, + { + "id": 22638, + "x_pos": -428, + "y_pos": -231.7154148813829 + }, + { + "id": 22637, + "x_pos": -523.5999755859375, + "y_pos": -338.08671294765736 + }, + { + "id": 22636, + "x_pos": -498.1999816894531, + "y_pos": -366.05383380468083 + }, + { + "id": 22635, + "x_pos": -570.2000122070312, + "y_pos": -330.1657157473751 + }, + { + "id": 22634, + "x_pos": -617.699951171875, + "y_pos": -236.75796306085726 + }, + { + "id": 22633, + "x_pos": -575.2999877929688, + "y_pos": -201.8552007946355 + }, + { + "id": 22632, + "x_pos": -562.2999877929688, + "y_pos": -234.49001153546942 + }, + { + "id": 22631, + "x_pos": -663.3999938964844, + "y_pos": -220.80407909365954 + }, + { + "id": 22630, + "x_pos": -693.7999877929688, + "y_pos": -240.36431826166563 + }, + { + "id": 22629, + "x_pos": -722.5, + "y_pos": -120.22542621772982 + }, + { + "id": 22628, + "x_pos": -765.6000671386719, + "y_pos": -104.578489349944 + }, + { + "id": 22627, + "x_pos": -679.7999877929688, + "y_pos": -25.278700829004492 + }, + { + "id": 22626, + "x_pos": -648.1000061035156, + "y_pos": -48.980000199122514 + }, + { + "id": 22625, + "x_pos": -651.300048828125, + "y_pos": -49.45352641947102 + }, + { + "id": 22624, + "x_pos": -667.5, + "y_pos": -107.2136271427496 + }, + { + "id": 22623, + "x_pos": -662.5, + "y_pos": -121.69719519520004 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/1c4dd7692a34154dca818014931903d2_3268659946357391207.png" + }, + "160": { + "name": "Sweet\u00a0Flower", + "clear_name": "SweetFlower", + "points": [ + { + "id": 24565, + "x_pos": -326.75, + "y_pos": 771.25 + }, + { + "id": 24564, + "x_pos": -311.75, + "y_pos": 832 + }, + { + "id": 24563, + "x_pos": 16, + "y_pos": 462 + }, + { + "id": 24562, + "x_pos": -57, + "y_pos": 417 + }, + { + "id": 24561, + "x_pos": -472, + "y_pos": -255.5 + }, + { + "id": 24560, + "x_pos": -412.5, + "y_pos": -504 + }, + { + "id": 24559, + "x_pos": -609.5, + "y_pos": -259.25 + }, + { + "id": 24558, + "x_pos": -742.75, + "y_pos": -225.25 + }, + { + "id": 24557, + "x_pos": -727.25, + "y_pos": -241 + }, + { + "id": 24556, + "x_pos": -700.25, + "y_pos": -262 + }, + { + "id": 23163, + "x_pos": -606.8499908447266, + "y_pos": -331.55027071716313 + }, + { + "id": 23159, + "x_pos": -574.3000030517578, + "y_pos": -337.201067604758 + }, + { + "id": 23154, + "x_pos": -530.75, + "y_pos": -360.29958629230805 + }, + { + "id": 23153, + "x_pos": -487.25, + "y_pos": -337.94940233430384 + }, + { + "id": 23151, + "x_pos": -482.65000915527344, + "y_pos": -386.29925171182776 + }, + { + "id": 23149, + "x_pos": -382.00001525878906, + "y_pos": -411.4011391000224 + }, + { + "id": 23148, + "x_pos": -362.3500061035156, + "y_pos": -492.2479772532238 + }, + { + "id": 23147, + "x_pos": -301.75, + "y_pos": -285.7982479703869 + }, + { + "id": 23141, + "x_pos": -332.0999755859375, + "y_pos": -242.8991316171407 + }, + { + "id": 23140, + "x_pos": -503.34999084472656, + "y_pos": -195.0998722733657 + }, + { + "id": 23138, + "x_pos": -603.9999847412109, + "y_pos": -182.89738651753987 + }, + { + "id": 23137, + "x_pos": -649.9000091552734, + "y_pos": -192.20006386331715 + }, + { + "id": 23092, + "x_pos": 527.8000030517578, + "y_pos": -230.0502859810574 + }, + { + "id": 22622, + "x_pos": -656, + "y_pos": -257.5 + }, + { + "id": 22621, + "x_pos": 3, + "y_pos": -579 + }, + { + "id": 22620, + "x_pos": 173, + "y_pos": -628 + }, + { + "id": 22619, + "x_pos": 110.5, + "y_pos": -624 + }, + { + "id": 22618, + "x_pos": 34.5, + "y_pos": -645 + }, + { + "id": 22617, + "x_pos": 24.5, + "y_pos": -592.5 + }, + { + "id": 22616, + "x_pos": 28.5, + "y_pos": -547.5 + }, + { + "id": 22615, + "x_pos": 875.5, + "y_pos": -1070.5 + }, + { + "id": 22614, + "x_pos": 887.5, + "y_pos": -1055 + }, + { + "id": 22613, + "x_pos": 901, + "y_pos": -1059 + }, + { + "id": 22612, + "x_pos": 893, + "y_pos": -1072.5 + }, + { + "id": 22611, + "x_pos": 836, + "y_pos": -884 + }, + { + "id": 22610, + "x_pos": 848.5, + "y_pos": -892 + }, + { + "id": 22609, + "x_pos": 823, + "y_pos": -888 + }, + { + "id": 22608, + "x_pos": 836.5, + "y_pos": -899.5 + }, + { + "id": 22607, + "x_pos": 923, + "y_pos": -912.5 + }, + { + "id": 22606, + "x_pos": 893, + "y_pos": -920 + }, + { + "id": 22605, + "x_pos": 899.5, + "y_pos": -898.5 + }, + { + "id": 22604, + "x_pos": 912.5, + "y_pos": -900.5 + }, + { + "id": 22603, + "x_pos": 479, + "y_pos": -225 + }, + { + "id": 22602, + "x_pos": -528, + "y_pos": -1086.5 + }, + { + "id": 22601, + "x_pos": -530.5, + "y_pos": -1080 + }, + { + "id": 22600, + "x_pos": -523.5, + "y_pos": -1077.5 + }, + { + "id": 22599, + "x_pos": -524, + "y_pos": -1071 + }, + { + "id": 22598, + "x_pos": -381.5, + "y_pos": -464 + }, + { + "id": 22597, + "x_pos": 421.5, + "y_pos": 1076 + }, + { + "id": 22596, + "x_pos": 428, + "y_pos": 1078 + }, + { + "id": 22595, + "x_pos": 429, + "y_pos": 1081.5 + }, + { + "id": 22594, + "x_pos": 365.5, + "y_pos": 1040.5 + }, + { + "id": 22593, + "x_pos": 369, + "y_pos": 1053.5 + }, + { + "id": 22592, + "x_pos": 357, + "y_pos": 1046.5 + }, + { + "id": 22591, + "x_pos": 416, + "y_pos": 1115 + }, + { + "id": 22590, + "x_pos": 399, + "y_pos": 1123.5 + }, + { + "id": 22589, + "x_pos": 382, + "y_pos": 1111 + }, + { + "id": 22588, + "x_pos": 330.5, + "y_pos": 1097.5 + }, + { + "id": 22587, + "x_pos": 327.5, + "y_pos": 1081 + }, + { + "id": 22586, + "x_pos": 314.5, + "y_pos": 1066.5 + }, + { + "id": 22585, + "x_pos": 301.5, + "y_pos": 1069 + }, + { + "id": 22584, + "x_pos": 303.5, + "y_pos": 1083 + }, + { + "id": 22583, + "x_pos": -344, + "y_pos": 817.5 + }, + { + "id": 22582, + "x_pos": -270.5, + "y_pos": 753 + }, + { + "id": 22581, + "x_pos": -269, + "y_pos": 751 + }, + { + "id": 22580, + "x_pos": -187.5, + "y_pos": 526 + }, + { + "id": 22579, + "x_pos": -244, + "y_pos": 377.5 + }, + { + "id": 22578, + "x_pos": 13.5, + "y_pos": 455 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/fe24f3f4a006b643db66d94ab6699292_7138432858176083519.png" + }, + "63": { + "name": "Electro\u00a0Crystal", + "clear_name": "ElectroCrystal", + "points": [ + { + "id": 24555, + "x_pos": -687.5, + "y_pos": -221.25 + }, + { + "id": 24554, + "x_pos": -694.25, + "y_pos": -219.5 + }, + { + "id": 23010, + "x_pos": -1362.25, + "y_pos": 538.75 + }, + { + "id": 23009, + "x_pos": -1378, + "y_pos": 519.5 + }, + { + "id": 23008, + "x_pos": -1389.75, + "y_pos": 533 + }, + { + "id": 23007, + "x_pos": -1434, + "y_pos": 602 + }, + { + "id": 23006, + "x_pos": -1424, + "y_pos": 607.5 + }, + { + "id": 23005, + "x_pos": -1423.25, + "y_pos": 605.75 + }, + { + "id": 22873, + "x_pos": -432.1999969482422, + "y_pos": -370.84886853192484 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/723d15046c4bd70a5b319d81a0032428_8204759773213807472.png" + }, + "270": { + "name": "Illusion\n", + "clear_name": "Illusion", + "points": [ + { + "id": 24438, + "x_pos": 827.2803356136155, + "y_pos": -1027.5340183096023 + }, + { + "id": 24437, + "x_pos": 882.3984369927884, + "y_pos": -840.3050864672537 + }, + { + "id": 24436, + "x_pos": -500.6996549980854, + "y_pos": -1095.1998575689133 + }, + { + "id": 24435, + "x_pos": -655.921800043689, + "y_pos": -1245.334740598239 + }, + { + "id": 24434, + "x_pos": 386.639555274513, + "y_pos": 965.9534181101467 + }, + { + "id": 23431, + "x_pos": -211.5, + "y_pos": 124.25 + }, + { + "id": 23430, + "x_pos": -211.5, + "y_pos": 118.75 + }, + { + "id": 23185, + "x_pos": -190.70109950512688, + "y_pos": 389.5588402943372 + }, + { + "id": 23182, + "x_pos": 676.3930262908507, + "y_pos": -304.55508646725366 + }, + { + "id": 23179, + "x_pos": 426.1204646846563, + "y_pos": 15.180223808145229 + }, + { + "id": 23178, + "x_pos": 437, + "y_pos": 49 + }, + { + "id": 23177, + "x_pos": 445.5, + "y_pos": 11 + }, + { + "id": 23176, + "x_pos": 502, + "y_pos": 72 + }, + { + "id": 23175, + "x_pos": 516.5, + "y_pos": 50.5 + }, + { + "id": 23174, + "x_pos": 524, + "y_pos": -6 + }, + { + "id": 23173, + "x_pos": 498.5, + "y_pos": -4.5 + }, + { + "id": 23136, + "x_pos": 7.25, + "y_pos": -17.25 + }, + { + "id": 23120, + "x_pos": 447.5, + "y_pos": 58 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a7d055d592297e7e01e8c6ee80058c60_7353650371857455973.png" + }, + "44": { + "name": "Exquisite\u00a0Chest", + "clear_name": "ExquisiteChest", + "points": [ + { + "id": 24380, + "x_pos": 440.09999084472656, + "y_pos": 12.554300946820831 + }, + { + "id": 24378, + "x_pos": -445.8185984623444, + "y_pos": -235.22727565040213 + }, + { + "id": 23130, + "x_pos": 613, + "y_pos": 128.25 + }, + { + "id": 22736, + "x_pos": -447.25, + "y_pos": -250.75 + }, + { + "id": 21714, + "x_pos": -325.5, + "y_pos": 746 + }, + { + "id": 21713, + "x_pos": -257.5, + "y_pos": 486 + }, + { + "id": 21712, + "x_pos": -219.5, + "y_pos": 449.5 + }, + { + "id": 21710, + "x_pos": -188.5, + "y_pos": 604.5 + }, + { + "id": 21709, + "x_pos": -109, + "y_pos": 566.5 + }, + { + "id": 21707, + "x_pos": -134.5, + "y_pos": 516.5 + }, + { + "id": 21705, + "x_pos": 46, + "y_pos": 379 + }, + { + "id": 21704, + "x_pos": 149.25, + "y_pos": 324.75 + }, + { + "id": 21703, + "x_pos": 161, + "y_pos": 322.5 + }, + { + "id": 21702, + "x_pos": 487.5, + "y_pos": 148 + }, + { + "id": 21701, + "x_pos": 604.5, + "y_pos": 94 + }, + { + "id": 21699, + "x_pos": 512, + "y_pos": -10 + }, + { + "id": 21698, + "x_pos": 421.5, + "y_pos": 14 + }, + { + "id": 21697, + "x_pos": 446, + "y_pos": 22.5 + }, + { + "id": 21695, + "x_pos": 467, + "y_pos": -49 + }, + { + "id": 21694, + "x_pos": 476.5, + "y_pos": -123 + }, + { + "id": 21692, + "x_pos": 377, + "y_pos": -106 + }, + { + "id": 21691, + "x_pos": 392, + "y_pos": -187.5 + }, + { + "id": 21690, + "x_pos": 426.5, + "y_pos": -270 + }, + { + "id": 21688, + "x_pos": 654.5, + "y_pos": -248.5 + }, + { + "id": 21687, + "x_pos": 714.5, + "y_pos": -300 + }, + { + "id": 21684, + "x_pos": -192.5, + "y_pos": -23 + }, + { + "id": 21683, + "x_pos": -80.5, + "y_pos": -6.5 + }, + { + "id": 21681, + "x_pos": -75.5, + "y_pos": 37 + }, + { + "id": 21680, + "x_pos": -79.5, + "y_pos": 37 + }, + { + "id": 21676, + "x_pos": -81, + "y_pos": -330 + }, + { + "id": 21666, + "x_pos": -418.75, + "y_pos": -485.25 + }, + { + "id": 21659, + "x_pos": -648, + "y_pos": -14 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8cd1c9d66f0adf4b34a7dfcf7715c99f_1064467135939485371.png" + }, + "17": { + "name": "Common Chest", + "clear_name": "CommonChest", + "points": [ + { + "id": 24379, + "x_pos": -290.75, + "y_pos": -363.85181121297 + }, + { + "id": 22853, + "x_pos": -22.802458334906532, + "y_pos": 385.1734588033951 + }, + { + "id": 22852, + "x_pos": 143.75, + "y_pos": -90 + }, + { + "id": 22745, + "x_pos": -170, + "y_pos": 129.5 + }, + { + "id": 22744, + "x_pos": -12.5, + "y_pos": 140.5 + }, + { + "id": 22743, + "x_pos": -103, + "y_pos": 126 + }, + { + "id": 22742, + "x_pos": -236, + "y_pos": 36 + }, + { + "id": 22741, + "x_pos": -166.5, + "y_pos": -76.5 + }, + { + "id": 22740, + "x_pos": -78, + "y_pos": -132.25 + }, + { + "id": 22737, + "x_pos": -530, + "y_pos": -314.75 + }, + { + "id": 22735, + "x_pos": -277, + "y_pos": -286.5 + }, + { + "id": 22734, + "x_pos": -336.75, + "y_pos": -265 + }, + { + "id": 22733, + "x_pos": -387.25, + "y_pos": -224.25 + }, + { + "id": 22732, + "x_pos": -408.75, + "y_pos": -268.75 + }, + { + "id": 22729, + "x_pos": -326, + "y_pos": -400 + }, + { + "id": 22728, + "x_pos": -587, + "y_pos": -241 + }, + { + "id": 22727, + "x_pos": -725.5, + "y_pos": -222 + }, + { + "id": 22726, + "x_pos": -720, + "y_pos": -97.5 + }, + { + "id": 22725, + "x_pos": -714, + "y_pos": -5 + }, + { + "id": 22724, + "x_pos": -686, + "y_pos": -45.5 + }, + { + "id": 22723, + "x_pos": -1319, + "y_pos": 714.5 + }, + { + "id": 21781, + "x_pos": -357, + "y_pos": 836.5 + }, + { + "id": 21780, + "x_pos": -205, + "y_pos": 564 + }, + { + "id": 21779, + "x_pos": -108, + "y_pos": 420 + }, + { + "id": 21778, + "x_pos": 69.5, + "y_pos": 537.5 + }, + { + "id": 21777, + "x_pos": 93, + "y_pos": 516.5 + }, + { + "id": 21776, + "x_pos": 642.5, + "y_pos": 19.5 + }, + { + "id": 21775, + "x_pos": 539, + "y_pos": 22 + }, + { + "id": 21774, + "x_pos": 401, + "y_pos": 3 + }, + { + "id": 21773, + "x_pos": 435, + "y_pos": -127.5 + }, + { + "id": 21772, + "x_pos": 360.5, + "y_pos": -145 + }, + { + "id": 21771, + "x_pos": 403.5, + "y_pos": -102.5 + }, + { + "id": 21770, + "x_pos": 577, + "y_pos": -269 + }, + { + "id": 21768, + "x_pos": -36.5, + "y_pos": 149 + }, + { + "id": 21767, + "x_pos": -153, + "y_pos": 67.5 + }, + { + "id": 21766, + "x_pos": 20.5, + "y_pos": -74 + }, + { + "id": 21765, + "x_pos": 47, + "y_pos": 25.5 + }, + { + "id": 21764, + "x_pos": 115, + "y_pos": -50 + }, + { + "id": 21763, + "x_pos": -64, + "y_pos": -51 + }, + { + "id": 21762, + "x_pos": -68.25, + "y_pos": -102.5 + }, + { + "id": 21761, + "x_pos": 87, + "y_pos": -60.5 + }, + { + "id": 21759, + "x_pos": -37.25, + "y_pos": -187.75 + }, + { + "id": 21758, + "x_pos": -116, + "y_pos": -159.5 + }, + { + "id": 21756, + "x_pos": -296.5, + "y_pos": -364.25 + }, + { + "id": 21755, + "x_pos": -370, + "y_pos": -334 + }, + { + "id": 21754, + "x_pos": -552.25, + "y_pos": -379.25 + }, + { + "id": 21753, + "x_pos": -651, + "y_pos": -297.25 + }, + { + "id": 21752, + "x_pos": -662, + "y_pos": -293.5 + }, + { + "id": 21751, + "x_pos": -574, + "y_pos": -195 + }, + { + "id": 21749, + "x_pos": -1021, + "y_pos": 164.5 + }, + { + "id": 21748, + "x_pos": -1127, + "y_pos": 185 + }, + { + "id": 21747, + "x_pos": -1244.5, + "y_pos": 286 + }, + { + "id": 21746, + "x_pos": -1368, + "y_pos": 238 + }, + { + "id": 21745, + "x_pos": -1351, + "y_pos": 307.5 + }, + { + "id": 21743, + "x_pos": -1385, + "y_pos": 532 + }, + { + "id": 21742, + "x_pos": -1417, + "y_pos": 660.5 + }, + { + "id": 21740, + "x_pos": -1247, + "y_pos": 700.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/35cf41aad7620ce6d5dc516defb967f7_7806440070871726330.png" + }, + "202": { + "name": "Amethyst Lump", + "clear_name": "AmethystLump", + "points": [ + { + "id": 23680, + "x_pos": -142.5, + "y_pos": 392 + }, + { + "id": 23679, + "x_pos": -143.25, + "y_pos": 392.5 + }, + { + "id": 23675, + "x_pos": 534.5, + "y_pos": 141 + }, + { + "id": 23674, + "x_pos": -337, + "y_pos": -487.5 + }, + { + "id": 23673, + "x_pos": -344, + "y_pos": -492 + }, + { + "id": 23672, + "x_pos": -344.5, + "y_pos": -502 + }, + { + "id": 23671, + "x_pos": 69.5, + "y_pos": -80 + }, + { + "id": 23670, + "x_pos": 76, + "y_pos": -75.5 + }, + { + "id": 23669, + "x_pos": -244, + "y_pos": 500.5 + }, + { + "id": 23668, + "x_pos": -245.5, + "y_pos": 501 + }, + { + "id": 23667, + "x_pos": 402.5, + "y_pos": 998 + }, + { + "id": 23666, + "x_pos": 405, + "y_pos": 1000.5 + }, + { + "id": 23665, + "x_pos": 411, + "y_pos": 1047 + }, + { + "id": 23664, + "x_pos": 413.5, + "y_pos": 1045.5 + }, + { + "id": 23663, + "x_pos": 419, + "y_pos": 1050 + }, + { + "id": 23662, + "x_pos": 403, + "y_pos": 1071.5 + }, + { + "id": 23661, + "x_pos": 401.5, + "y_pos": 1071 + }, + { + "id": 23660, + "x_pos": 398, + "y_pos": 1072.5 + }, + { + "id": 23659, + "x_pos": 397, + "y_pos": 1072 + }, + { + "id": 23658, + "x_pos": -127, + "y_pos": 572 + }, + { + "id": 23657, + "x_pos": 856.5, + "y_pos": -1021.5 + }, + { + "id": 23656, + "x_pos": 860.5, + "y_pos": -1014.5 + }, + { + "id": 23655, + "x_pos": 857.5, + "y_pos": -1016 + }, + { + "id": 23654, + "x_pos": 865.5, + "y_pos": -1062 + }, + { + "id": 23653, + "x_pos": 866.5, + "y_pos": -1063.5 + }, + { + "id": 23652, + "x_pos": 860.5, + "y_pos": -1058 + }, + { + "id": 23651, + "x_pos": -497.5, + "y_pos": -1034.5 + }, + { + "id": 23650, + "x_pos": -499, + "y_pos": -1034 + }, + { + "id": 23649, + "x_pos": -499, + "y_pos": -1035.5 + }, + { + "id": 23610, + "x_pos": -1380, + "y_pos": 515.75 + }, + { + "id": 23117, + "x_pos": -136.5, + "y_pos": 559.5 + }, + { + "id": 23116, + "x_pos": -126.5, + "y_pos": 567.5 + }, + { + "id": 23115, + "x_pos": -128.5, + "y_pos": 559 + }, + { + "id": 23004, + "x_pos": 589.5, + "y_pos": -275 + }, + { + "id": 23003, + "x_pos": 594.5, + "y_pos": -279.5 + }, + { + "id": 23002, + "x_pos": 515.5, + "y_pos": -265.5 + }, + { + "id": 23001, + "x_pos": 540.5, + "y_pos": -235 + }, + { + "id": 23000, + "x_pos": 529, + "y_pos": 138 + }, + { + "id": 22976, + "x_pos": -301.5, + "y_pos": 508.5 + }, + { + "id": 22975, + "x_pos": -302.75, + "y_pos": 506 + }, + { + "id": 22964, + "x_pos": -230, + "y_pos": 116.5 + }, + { + "id": 22963, + "x_pos": -227.5, + "y_pos": 115 + }, + { + "id": 22889, + "x_pos": -266.3619760562242, + "y_pos": 378.1473652136433 + }, + { + "id": 22888, + "x_pos": -265.1084029511708, + "y_pos": 375.61044761629046 + }, + { + "id": 22887, + "x_pos": -269.1093217496132, + "y_pos": 386.71462868944764 + }, + { + "id": 22147, + "x_pos": -368, + "y_pos": 829.7461069162437 + }, + { + "id": 22146, + "x_pos": -370.5, + "y_pos": 822.7408103905937 + }, + { + "id": 22145, + "x_pos": -373.5, + "y_pos": 813.7340005719016 + }, + { + "id": 22144, + "x_pos": -377.5, + "y_pos": 806.228325722991 + }, + { + "id": 22143, + "x_pos": 1.79998779296875, + "y_pos": 349.36620928117645 + }, + { + "id": 22142, + "x_pos": -13.5, + "y_pos": 347 + }, + { + "id": 22141, + "x_pos": -2, + "y_pos": 353.5 + }, + { + "id": 22140, + "x_pos": -9.5, + "y_pos": 346.5 + }, + { + "id": 22139, + "x_pos": 54.79998779296875, + "y_pos": 474.8611019171576 + }, + { + "id": 22138, + "x_pos": 50.29998779296875, + "y_pos": 469.8573186845506 + }, + { + "id": 22137, + "x_pos": 48.79998779296875, + "y_pos": 461.85126551237954 + }, + { + "id": 22136, + "x_pos": -298.2000427246094, + "y_pos": -387.54493381240695 + }, + { + "id": 22135, + "x_pos": -299.2000427246094, + "y_pos": -394.5502303380565 + }, + { + "id": 22134, + "x_pos": -301.7000427246094, + "y_pos": -400.05439189392405 + }, + { + "id": 22133, + "x_pos": -300.2000427246094, + "y_pos": -406.5593100963131 + }, + { + "id": 22132, + "x_pos": -296.7000427246094, + "y_pos": -413.56460662196264 + }, + { + "id": 22131, + "x_pos": -435.0000305175781, + "y_pos": -396.7518919063366 + }, + { + "id": 22130, + "x_pos": -443.5000305175781, + "y_pos": -398.75340519937936 + }, + { + "id": 22129, + "x_pos": -437.0000305175781, + "y_pos": -404.75794507850765 + }, + { + "id": 22128, + "x_pos": -409.0000305175781, + "y_pos": -362.22578760134934 + }, + { + "id": 22127, + "x_pos": -405.5000305175781, + "y_pos": -373.2341107130844 + }, + { + "id": 22126, + "x_pos": -416.5000305175781, + "y_pos": -364.7276792176526 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/29e9020dc18c6cdaf6a3b00e39d6dc26_8354955156439687915.png" + }, + "130": { + "name": "Cooking Ingredient", + "clear_name": "CookingIngredient", + "points": [ + { + "id": 23676, + "x_pos": -127, + "y_pos": 560.5 + }, + { + "id": 23171, + "x_pos": -678.2000122070312, + "y_pos": -263.64980841004854 + }, + { + "id": 23168, + "x_pos": -299.1324958881021, + "y_pos": 515.4512919657968 + }, + { + "id": 23146, + "x_pos": -356.6000213623047, + "y_pos": -305.8003012449519 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/2b934f219e94c7698645462d4a258ac3_3789345521064785644.png" + }, + "254": { + "name": "Unagi Meat", + "clear_name": "UnagiMeat", + "points": [ + { + "id": 23648, + "x_pos": -631.5, + "y_pos": -1070.5 + }, + { + "id": 23647, + "x_pos": -632.5, + "y_pos": -1072 + }, + { + "id": 23646, + "x_pos": -632, + "y_pos": -1073.5 + }, + { + "id": 23645, + "x_pos": 954.5, + "y_pos": -993 + }, + { + "id": 23644, + "x_pos": 951.5, + "y_pos": -997.5 + }, + { + "id": 23643, + "x_pos": 957, + "y_pos": -1000.5 + }, + { + "id": 23642, + "x_pos": -226, + "y_pos": -19 + }, + { + "id": 23641, + "x_pos": -222.5, + "y_pos": -22 + }, + { + "id": 23640, + "x_pos": -222.5, + "y_pos": -24 + }, + { + "id": 23639, + "x_pos": 357, + "y_pos": -189.5 + }, + { + "id": 23638, + "x_pos": 356, + "y_pos": -186 + }, + { + "id": 23637, + "x_pos": 354, + "y_pos": -184.5 + }, + { + "id": 22878, + "x_pos": -465, + "y_pos": -252.5 + }, + { + "id": 22877, + "x_pos": -465, + "y_pos": -263 + }, + { + "id": 22876, + "x_pos": -464, + "y_pos": -253 + }, + { + "id": 22875, + "x_pos": -463.5, + "y_pos": -262.5 + }, + { + "id": 22856, + "x_pos": -1428.5, + "y_pos": 340.5 + }, + { + "id": 22855, + "x_pos": -1432, + "y_pos": 340 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/069ad351743be8c58f332abd1cfce529_1026967221339384983.png" + }, + "339": { + "name": "Deep Sea Unagi", + "clear_name": "DeepSeaUnagi", + "points": [ + { + "id": 23630, + "x_pos": -464, + "y_pos": -253 + }, + { + "id": 23629, + "x_pos": -465, + "y_pos": -252.5 + }, + { + "id": 23628, + "x_pos": -465, + "y_pos": -263 + }, + { + "id": 23627, + "x_pos": -463.5, + "y_pos": -262.5 + }, + { + "id": 23623, + "x_pos": -1428.5, + "y_pos": 340.5 + }, + { + "id": 23622, + "x_pos": -1432, + "y_pos": 340 + }, + { + "id": 23101, + "x_pos": 954.5, + "y_pos": -993 + }, + { + "id": 23100, + "x_pos": 951.5, + "y_pos": -997.5 + }, + { + "id": 23099, + "x_pos": 957, + "y_pos": -1000.5 + }, + { + "id": 23098, + "x_pos": -632, + "y_pos": -1073.5 + }, + { + "id": 23097, + "x_pos": -631.5, + "y_pos": -1070.5 + }, + { + "id": 23096, + "x_pos": -632.5, + "y_pos": -1072 + }, + { + "id": 23086, + "x_pos": 354, + "y_pos": -184.5 + }, + { + "id": 23085, + "x_pos": 356, + "y_pos": -186 + }, + { + "id": 23084, + "x_pos": 357, + "y_pos": -189.5 + }, + { + "id": 23078, + "x_pos": -226, + "y_pos": -19 + }, + { + "id": 23077, + "x_pos": -222.5, + "y_pos": -22 + }, + { + "id": 23076, + "x_pos": -222.5, + "y_pos": -24 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/57722636858db722d207f90954bf84aa_7166813318963377010.png" + }, + "298": { + "name": "Electro Crystalfly", + "clear_name": "ElectroCrystalfly", + "points": [ + { + "id": 23626, + "x_pos": 47.21857194055042, + "y_pos": -30.11674465340775 + }, + { + "id": 23625, + "x_pos": 63.39588477489315, + "y_pos": -26.603214643906995 + }, + { + "id": 23624, + "x_pos": 60.642005403692565, + "y_pos": -3.3684842260579444 + }, + { + "id": 21800, + "x_pos": -472.6000061035156, + "y_pos": -398.4998925991865 + }, + { + "id": 21799, + "x_pos": -477.1000061035156, + "y_pos": -399.49911645561815 + }, + { + "id": 21798, + "x_pos": -473.6000061035156, + "y_pos": -403.9956238095606 + }, + { + "id": 21797, + "x_pos": -180.0999755859375, + "y_pos": 583.4177211582846 + }, + { + "id": 21796, + "x_pos": -165.5999755859375, + "y_pos": 578.9212138043422 + }, + { + "id": 21795, + "x_pos": -151.0999755859375, + "y_pos": 595.408407435465 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/79533c71e8ea286a803acbd343852d58_9218208595881978151.png" + }, + "55": { + "name": "Hilichurl", + "clear_name": "Hilichurl", + "points": [ + { + "id": 23604, + "x_pos": -44.399993896484375, + "y_pos": -207.90501514190282 + }, + { + "id": 23603, + "x_pos": -38.94999694824219, + "y_pos": -185.5 + }, + { + "id": 23602, + "x_pos": -39.600006103515625, + "y_pos": -189.35334342793522 + }, + { + "id": 22832, + "x_pos": 464.75, + "y_pos": -48.802445445057856 + }, + { + "id": 22823, + "x_pos": 442.9499969482422, + "y_pos": -131.44908676990713 + }, + { + "id": 22822, + "x_pos": 444.3000030517578, + "y_pos": -128.90424141081235 + }, + { + "id": 22810, + "x_pos": 88.44999694824219, + "y_pos": -68.05167171396761 + }, + { + "id": 22809, + "x_pos": 88.69999694824219, + "y_pos": -72.00075848387473 + }, + { + "id": 22807, + "x_pos": 39.70001220703125, + "y_pos": -89.05243019784234 + }, + { + "id": 22806, + "x_pos": 36.40000915527344, + "y_pos": -90.00150172053395 + }, + { + "id": 22805, + "x_pos": -116.40000915527344, + "y_pos": -155.10030949243605 + }, + { + "id": 22804, + "x_pos": -114.79998779296875, + "y_pos": -159.3487772774713 + }, + { + "id": 22802, + "x_pos": -338.8999938964844, + "y_pos": -256.7978792945937 + }, + { + "id": 22801, + "x_pos": -338.59999084472656, + "y_pos": -258.10030949243605 + }, + { + "id": 22796, + "x_pos": -363.6499938964844, + "y_pos": -493.7978792945937 + }, + { + "id": 22795, + "x_pos": -361.6000061035156, + "y_pos": -496.0037924193739 + }, + { + "id": 22791, + "x_pos": -420.6499938964844, + "y_pos": -386.15272444306265 + }, + { + "id": 22790, + "x_pos": -434.75, + "y_pos": -391.2948453590948 + }, + { + "id": 22789, + "x_pos": -431.3999938964844, + "y_pos": -392.14591333540557 + }, + { + "id": 22782, + "x_pos": -680.3000030517578, + "y_pos": -203.00605262378258 + }, + { + "id": 22781, + "x_pos": -683, + "y_pos": -206.7043961570305 + }, + { + "id": 22777, + "x_pos": -731.6999969482422, + "y_pos": -311.34801879359634 + }, + { + "id": 22774, + "x_pos": -758.3999938964844, + "y_pos": -85.69755455494214 + }, + { + "id": 22773, + "x_pos": -753.8999938964844, + "y_pos": -85.70061898487211 + }, + { + "id": 22772, + "x_pos": -757, + "y_pos": -88.5015474621805 + }, + { + "id": 22771, + "x_pos": -722.5500030517578, + "y_pos": -92.40424141081235 + }, + { + "id": 21941, + "x_pos": 399, + "y_pos": 6.760629420929945 + }, + { + "id": 21940, + "x_pos": 396.29998779296875, + "y_pos": 6.509615668926017 + }, + { + "id": 21939, + "x_pos": -336.70001220703125, + "y_pos": 748.90525747637 + }, + { + "id": 21938, + "x_pos": -337.5000305175781, + "y_pos": 748.672524402059 + }, + { + "id": 21937, + "x_pos": -349, + "y_pos": 833.2202265278156 + }, + { + "id": 21936, + "x_pos": -352.5, + "y_pos": 832.7856577617972 + }, + { + "id": 21935, + "x_pos": -348.1000061035156, + "y_pos": 830.3376809560282 + }, + { + "id": 21934, + "x_pos": -133.89996337890625, + "y_pos": 516.3187156786371 + }, + { + "id": 21933, + "x_pos": -133.10000610351562, + "y_pos": 513.7702832095497 + }, + { + "id": 21932, + "x_pos": -159.39999389648438, + "y_pos": 468.31872330257556 + }, + { + "id": 21931, + "x_pos": -161.60000610351562, + "y_pos": 465.7508121063238 + }, + { + "id": 21930, + "x_pos": -174.5999755859375, + "y_pos": 516.4339943247346 + }, + { + "id": 21929, + "x_pos": -195.30001831054688, + "y_pos": 535.5386075305423 + }, + { + "id": 21928, + "x_pos": -212.49996948242188, + "y_pos": 568.9594259569608 + }, + { + "id": 21927, + "x_pos": -205.70001220703125, + "y_pos": 569.3695179515794 + }, + { + "id": 21926, + "x_pos": -299.0999450683594, + "y_pos": 520.7157724291096 + }, + { + "id": 21925, + "x_pos": -127.79998779296875, + "y_pos": 402.6957345085384 + }, + { + "id": 21924, + "x_pos": -115.5, + "y_pos": 418.2191538846355 + }, + { + "id": 21923, + "x_pos": -116.5, + "y_pos": 416.2752888777236 + }, + { + "id": 21922, + "x_pos": -113.20004272460938, + "y_pos": 415.4149112649902 + }, + { + "id": 21921, + "x_pos": 33.5, + "y_pos": 374.3342842526249 + }, + { + "id": 21920, + "x_pos": 18.100006103515625, + "y_pos": 366.1292458792541 + }, + { + "id": 21919, + "x_pos": -74, + "y_pos": -340.28191875854463 + }, + { + "id": 21918, + "x_pos": -69.5, + "y_pos": -343.69145918369577 + }, + { + "id": 21917, + "x_pos": -75.5, + "y_pos": -344.1603525314749 + }, + { + "id": 21916, + "x_pos": -68.89999389648438, + "y_pos": -102.90043058205993 + }, + { + "id": 21915, + "x_pos": -62.700042724609375, + "y_pos": -52.381130628758456 + }, + { + "id": 21914, + "x_pos": -66, + "y_pos": -54.707191283669545 + }, + { + "id": 21913, + "x_pos": 146.5, + "y_pos": -98.78370649717795 + }, + { + "id": 21912, + "x_pos": 143.5, + "y_pos": -104.25259984495733 + }, + { + "id": 21911, + "x_pos": 148, + "y_pos": -91.78406404490465 + }, + { + "id": 21910, + "x_pos": -14, + "y_pos": 139.72594729144225 + }, + { + "id": 21909, + "x_pos": -17.5, + "y_pos": 147.26456244592327 + }, + { + "id": 21908, + "x_pos": -23, + "y_pos": 146.7409642959626 + }, + { + "id": 21907, + "x_pos": -106.5, + "y_pos": 168.21843878918207 + }, + { + "id": 21906, + "x_pos": -110, + "y_pos": 169.21772369372866 + }, + { + "id": 21905, + "x_pos": -103.29998779296875, + "y_pos": 165.7184540370597 + }, + { + "id": 21904, + "x_pos": -108.69998168945312, + "y_pos": 162.83269053573258 + }, + { + "id": 21903, + "x_pos": -167.300048828125, + "y_pos": 131.75639983971996 + }, + { + "id": 21902, + "x_pos": -199, + "y_pos": 111.22201426644892 + }, + { + "id": 21901, + "x_pos": -207, + "y_pos": 113.73238315052231 + }, + { + "id": 21900, + "x_pos": -205.30001831054688, + "y_pos": 110.57645422199789 + }, + { + "id": 21899, + "x_pos": -152, + "y_pos": -92.70647618821613 + }, + { + "id": 21898, + "x_pos": -155.5, + "y_pos": -86.71791771546964 + }, + { + "id": 21897, + "x_pos": -158.4000244140625, + "y_pos": -88.4767670217052 + }, + { + "id": 21896, + "x_pos": -168.39999389648438, + "y_pos": -87.32749084581792 + }, + { + "id": 21895, + "x_pos": -75, + "y_pos": -134.72649886090994 + }, + { + "id": 21894, + "x_pos": -83, + "y_pos": -132.23722529271026 + }, + { + "id": 21893, + "x_pos": -322.5, + "y_pos": -393.24830927223707 + }, + { + "id": 21892, + "x_pos": -325.70001220703125, + "y_pos": -394.3661060002987 + }, + { + "id": 21891, + "x_pos": -314.5000305175781, + "y_pos": -348.48788149698703 + }, + { + "id": 21890, + "x_pos": -357.1000061035156, + "y_pos": -336.3811687484522 + }, + { + "id": 21889, + "x_pos": -353.1999816894531, + "y_pos": -338.53665626592306 + }, + { + "id": 21888, + "x_pos": -362.29998779296875, + "y_pos": -334.1676975077494 + }, + { + "id": 21887, + "x_pos": -324.8000183105469, + "y_pos": -317.3015686356339 + }, + { + "id": 21886, + "x_pos": -362.5, + "y_pos": -307.92922842193457 + }, + { + "id": 21885, + "x_pos": -386.5, + "y_pos": -236.77441025628445 + }, + { + "id": 21884, + "x_pos": -391.79998779296875, + "y_pos": -229.4813998942741 + }, + { + "id": 21883, + "x_pos": -394.5, + "y_pos": -232.12961867485865 + }, + { + "id": 21882, + "x_pos": -389.5, + "y_pos": -234.67018509395848 + }, + { + "id": 21881, + "x_pos": -526.0999755859375, + "y_pos": -328.02360577389936 + }, + { + "id": 21880, + "x_pos": -531.5, + "y_pos": -328.2522422972306 + }, + { + "id": 21879, + "x_pos": -617.5, + "y_pos": -272.2797734721844 + }, + { + "id": 21878, + "x_pos": -613.5999755859375, + "y_pos": -272.58100743190835 + }, + { + "id": 21877, + "x_pos": -615.7000427246094, + "y_pos": -274.40472115477996 + }, + { + "id": 21876, + "x_pos": -590, + "y_pos": -245.78121891096885 + }, + { + "id": 21875, + "x_pos": -589.7999877929688, + "y_pos": -248.1026238214945 + }, + { + "id": 21874, + "x_pos": -682, + "y_pos": -254.7787008290045 + }, + { + "id": 21873, + "x_pos": -686, + "y_pos": -253.7311469813567 + }, + { + "id": 21872, + "x_pos": -687.8999938964844, + "y_pos": -256.30299882654094 + }, + { + "id": 21871, + "x_pos": -719.4000244140625, + "y_pos": -219.2325619243859 + }, + { + "id": 21870, + "x_pos": -714, + "y_pos": -225.70719128366954 + }, + { + "id": 21869, + "x_pos": -723.7999877929688, + "y_pos": -216.93046459110042 + }, + { + "id": 21868, + "x_pos": -684.2000122070312, + "y_pos": -35.98037299472685 + }, + { + "id": 21867, + "x_pos": -694.199951171875, + "y_pos": -31.280131019911096 + }, + { + "id": 21866, + "x_pos": -698.5999755859375, + "y_pos": -32.079561993124116 + }, + { + "id": 21865, + "x_pos": -694, + "y_pos": -33.16054655321591 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/4cca7114e8db044283d84ed3b0b72b06_5192184377885677903.png" + }, + "149": { + "name": "Mitachurl", + "clear_name": "Mitachurl", + "points": [ + { + "id": 23601, + "x_pos": -33.64996337890625, + "y_pos": -185.74922626890975 + }, + { + "id": 22820, + "x_pos": 439.5, + "y_pos": -134.09641845077408 + }, + { + "id": 22808, + "x_pos": 86.34999084472656, + "y_pos": -69.60486039568468 + }, + { + "id": 22800, + "x_pos": -336.3500061035156, + "y_pos": -257.8039319183763 + }, + { + "id": 22780, + "x_pos": -689.1000061035156, + "y_pos": -209.0022754516242 + }, + { + "id": 22779, + "x_pos": -680.6000061035156, + "y_pos": -195.6010679763108 + }, + { + "id": 22768, + "x_pos": -727.8999938964844, + "y_pos": -88.80470564946654 + }, + { + "id": 22767, + "x_pos": -721.6500091552734, + "y_pos": -82.70212070540629 + }, + { + "id": 22092, + "x_pos": 643.3999938964844, + "y_pos": 19.221671966600297 + }, + { + "id": 22091, + "x_pos": 400.2000427246094, + "y_pos": 5.443845947065256 + }, + { + "id": 22090, + "x_pos": -209.19998168945312, + "y_pos": 570.919007815969 + }, + { + "id": 22089, + "x_pos": -113.60000610351562, + "y_pos": 416.5752447366185 + }, + { + "id": 22088, + "x_pos": 52.20001220703125, + "y_pos": 32.907551040837916 + }, + { + "id": 22087, + "x_pos": -15.199981689453125, + "y_pos": 145.6303032745568 + }, + { + "id": 22086, + "x_pos": -169.60000610351562, + "y_pos": 130.26992566182344 + }, + { + "id": 22085, + "x_pos": -156.79998779296875, + "y_pos": -90.48105759442524 + }, + { + "id": 22084, + "x_pos": -528.3999938964844, + "y_pos": -328.81998234355797 + }, + { + "id": 22083, + "x_pos": -722, + "y_pos": -219.74544889042363 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/cef1444b97c8f49cd8cd8aa10e5448ae_955377869035330155.png" + }, + "70": { + "name": "Elemental Monument", + "clear_name": "ElementalMonument", + "points": [ + { + "id": 23429, + "x_pos": -86.5, + "y_pos": 39 + }, + { + "id": 23011, + "x_pos": 322.5, + "y_pos": -128.75 + }, + { + "id": 22909, + "x_pos": -197.5, + "y_pos": 453.25 + }, + { + "id": 22747, + "x_pos": -85.25, + "y_pos": -144 + }, + { + "id": 22730, + "x_pos": -1294.5, + "y_pos": 440 + }, + { + "id": 22358, + "x_pos": 21.0001220703125, + "y_pos": -601.0308405917594 + }, + { + "id": 22357, + "x_pos": -1405.7000122070312, + "y_pos": 694.7339921152925 + }, + { + "id": 22356, + "x_pos": 517, + "y_pos": 89.2960266458706 + }, + { + "id": 22355, + "x_pos": 560.5, + "y_pos": -226.70111297231597 + }, + { + "id": 22354, + "x_pos": 654.3000183105469, + "y_pos": -302.4111493899213 + }, + { + "id": 22353, + "x_pos": 49.100006103515625, + "y_pos": -19.001430190906603 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/f381e3a85279e3c1815874f324355c4e_7651994827911834755.png" + }, + "329": { + "name": "Smashed Stone", + "clear_name": "SmashedStone", + "points": [ + { + "id": 23297, + "x_pos": 985.25, + "y_pos": -1013.25 + }, + { + "id": 23296, + "x_pos": 671, + "y_pos": 39.75 + }, + { + "id": 23262, + "x_pos": -200.39999389648438, + "y_pos": 423.59988753725975 + }, + { + "id": 23261, + "x_pos": -388.04998779296875, + "y_pos": -510.4494481259869 + }, + { + "id": 23106, + "x_pos": -595, + "y_pos": -1059.25 + }, + { + "id": 23105, + "x_pos": -653.25, + "y_pos": -992.75 + }, + { + "id": 23037, + "x_pos": -809.75, + "y_pos": -170.75 + }, + { + "id": 23036, + "x_pos": -456, + "y_pos": -246.25 + }, + { + "id": 23035, + "x_pos": -90.75, + "y_pos": 40.25 + }, + { + "id": 23034, + "x_pos": 959.25, + "y_pos": -1063.75 + }, + { + "id": 23033, + "x_pos": 983, + "y_pos": -1030.5 + }, + { + "id": 23032, + "x_pos": 460, + "y_pos": 115.5 + }, + { + "id": 22937, + "x_pos": 509.25, + "y_pos": -38.25 + }, + { + "id": 22936, + "x_pos": 529.75, + "y_pos": -228.75 + }, + { + "id": 22935, + "x_pos": 57, + "y_pos": -579.5 + }, + { + "id": 22934, + "x_pos": 577.75, + "y_pos": 155.25 + }, + { + "id": 22931, + "x_pos": 423.75, + "y_pos": -194.25 + }, + { + "id": 22930, + "x_pos": -373.75, + "y_pos": -380.5 + }, + { + "id": 22929, + "x_pos": -391.25, + "y_pos": -510.5 + }, + { + "id": 22920, + "x_pos": 566.75, + "y_pos": -65.75 + }, + { + "id": 22919, + "x_pos": 420.25, + "y_pos": 49.5 + }, + { + "id": 22918, + "x_pos": 503.75, + "y_pos": 73.25 + }, + { + "id": 22916, + "x_pos": 609, + "y_pos": 144.75 + }, + { + "id": 22915, + "x_pos": 572.5, + "y_pos": 81.75 + }, + { + "id": 22911, + "x_pos": -267, + "y_pos": 740.5 + }, + { + "id": 22910, + "x_pos": -287, + "y_pos": 778 + }, + { + "id": 22908, + "x_pos": -343.75, + "y_pos": -279.25 + }, + { + "id": 22906, + "x_pos": -671.6114656126451, + "y_pos": -82.32344862300488 + }, + { + "id": 22905, + "x_pos": -6.7499847412109375, + "y_pos": 31.550263085216102 + }, + { + "id": 22904, + "x_pos": -687.2982726975583, + "y_pos": -40.889552383709315 + }, + { + "id": 22903, + "x_pos": -580.1499938964844, + "y_pos": -379.35054143432626 + }, + { + "id": 22902, + "x_pos": -655.8999938964844, + "y_pos": -18.198710277501505 + }, + { + "id": 22901, + "x_pos": -684.6000061035156, + "y_pos": -194.74965778757223 + }, + { + "id": 22900, + "x_pos": -439.3000030517578, + "y_pos": -296.5003574763218 + }, + { + "id": 22899, + "x_pos": -311.15000915527344, + "y_pos": -330.64945856567374 + }, + { + "id": 22898, + "x_pos": 551.75, + "y_pos": 99.75 + }, + { + "id": 22897, + "x_pos": -161, + "y_pos": 107.75 + }, + { + "id": 22896, + "x_pos": -429.25, + "y_pos": -409.75 + }, + { + "id": 22895, + "x_pos": -443.75, + "y_pos": -323.5 + }, + { + "id": 22894, + "x_pos": -517.5, + "y_pos": -393.75 + }, + { + "id": 22893, + "x_pos": -609.6759856810372, + "y_pos": -267.603214643907 + }, + { + "id": 22892, + "x_pos": -173.596969015, + "y_pos": 104.19781282049644 + }, + { + "id": 22891, + "x_pos": -118.14678830831554, + "y_pos": 159.76488301045106 + }, + { + "id": 22890, + "x_pos": -13.338495651587664, + "y_pos": 483.92519837604505 + }, + { + "id": 22112, + "x_pos": -615, + "y_pos": -196.5 + }, + { + "id": 22111, + "x_pos": -527, + "y_pos": -221.5 + }, + { + "id": 22110, + "x_pos": 15, + "y_pos": -606.5 + }, + { + "id": 22109, + "x_pos": 175.5, + "y_pos": -607 + }, + { + "id": 22108, + "x_pos": 74, + "y_pos": -617 + }, + { + "id": 22107, + "x_pos": -620, + "y_pos": -1043 + }, + { + "id": 22106, + "x_pos": -625.5, + "y_pos": -1040.5 + }, + { + "id": 22105, + "x_pos": 371.5, + "y_pos": 1007 + }, + { + "id": 22104, + "x_pos": 373.5, + "y_pos": 1018 + }, + { + "id": 22103, + "x_pos": -308, + "y_pos": 817 + }, + { + "id": 22102, + "x_pos": -137, + "y_pos": 488 + }, + { + "id": 22101, + "x_pos": -139.5, + "y_pos": 426.5 + }, + { + "id": 22100, + "x_pos": -266, + "y_pos": 430.5 + }, + { + "id": 22099, + "x_pos": 623, + "y_pos": -267.5 + }, + { + "id": 22098, + "x_pos": 649.5, + "y_pos": 71.5 + }, + { + "id": 22097, + "x_pos": -64.5, + "y_pos": 305 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211220/dfc1526c06e072d7e19c5469b89410bd_2252096625377713397.png" + }, + "239": { + "name": "Lunged Stickleback", + "clear_name": "LungedStickleback", + "points": [ + { + "id": 23275, + "x_pos": -1178.8999938964844, + "y_pos": 776.5053532876846 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/c96d759c9c72a758de3b30dde1e54305_3238658892155714137.png" + }, + "242": { + "name": "Akai Maou", + "clear_name": "AkaiMaou", + "points": [ + { + "id": 23274, + "x_pos": -177.9499969482422, + "y_pos": 421.9644584559169 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/d79d8099ab913f885308563ed6cc69a6_5248974579798155262.png" + }, + "237": { + "name": "Dawncatcher", + "clear_name": "Dawncatcher", + "points": [ + { + "id": 23272, + "x_pos": -179, + "y_pos": 423.85019158995146 + }, + { + "id": 23271, + "x_pos": -283.5, + "y_pos": 449.34851868755004 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/707349e7b91298d9cda04d72411ac518_6268973006179235717.png" + }, + "238": { + "name": "Crystalfish", + "clear_name": "Crystalfish", + "points": [ + { + "id": 23270, + "x_pos": -1175.5500030517578, + "y_pos": 776.6524850538908 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/da1383e42e316097e81720215233b21d_1998660093109411895.png" + }, + "324": { + "name": "Places of Essence Worship", + "clear_name": "PlacesofEssenceWorship", + "points": [ + { + "id": 23260, + "x_pos": 533.7000122070312, + "y_pos": -7.2003984437974395 + }, + { + "id": 23172, + "x_pos": 513.6487432589361, + "y_pos": -55.08620548910585 + }, + { + "id": 22172, + "x_pos": 608, + "y_pos": 123 + }, + { + "id": 22171, + "x_pos": -433.5, + "y_pos": -253 + }, + { + "id": 22170, + "x_pos": -270.5, + "y_pos": 493.5 + }, + { + "id": 22169, + "x_pos": -258.5, + "y_pos": 821 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211201/521af451abe9c600a4c1d4abe2d05b13_3236490812017359902.png" + }, + "300": { + "name": "Sunset Loach", + "clear_name": "SunsetLoach", + "points": [ + { + "id": 23184, + "x_pos": 27.392515847271625, + "y_pos": 438.90007121554345 + }, + { + "id": 23093, + "x_pos": -461.49998474121094, + "y_pos": -218.74998473610572 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/32add73120bf53b4afe17e5a130497ee_7731060857774575975.png" + }, + "82": { + "name": "Loach Pearl", + "clear_name": "LoachPearl", + "points": [ + { + "id": 23183, + "x_pos": 27.634552927438335, + "y_pos": 439.6442726400428 + }, + { + "id": 22566, + "x_pos": -466, + "y_pos": -269 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/3a732937101a7e419b4b1c5a29de6d34_819661314868702771.png" + }, + "115": { + "name": "Lizard Tail", + "clear_name": "LizardTail", + "points": [ + { + "id": 23181, + "x_pos": 481.1480286379251, + "y_pos": -225.0914242070562 + }, + { + "id": 23170, + "x_pos": -313.86156770136085, + "y_pos": 426.1102543304405 + }, + { + "id": 23167, + "x_pos": 0.8907803391027755, + "y_pos": 433.6620549382442 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/b99807ea1b34d21c3fa4fa74f57a25e3_1998878996251730722.png" + }, + "296": { + "name": "Blue Horned Lizard", + "clear_name": "BlueHornedLizard", + "points": [ + { + "id": 23180, + "x_pos": 482.4108918161173, + "y_pos": -223.470620550798 + }, + { + "id": 23118, + "x_pos": -141.86391574182448, + "y_pos": 568.4433672459463 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/4b1a29183d0ac1a267ba4a8a64db5f6b_5091052195206844315.png" + }, + "161": { + "name": "Mint", + "clear_name": "Mint", + "points": [ + { + "id": 23166, + "x_pos": -618.3500061035156, + "y_pos": -290.75 + }, + { + "id": 23165, + "x_pos": -610.1000061035156, + "y_pos": -273.1990601218763 + }, + { + "id": 23164, + "x_pos": -687.6000061035156, + "y_pos": -323.55027071716313 + }, + { + "id": 23162, + "x_pos": -599.5999908447266, + "y_pos": -315.7493384709867 + }, + { + "id": 23158, + "x_pos": -610.4500274658203, + "y_pos": -347.89878940471317 + }, + { + "id": 23157, + "x_pos": -608.6999816894531, + "y_pos": -375.5 + }, + { + "id": 23152, + "x_pos": -493.3500061035156, + "y_pos": -393.4993155751449 + }, + { + "id": 23150, + "x_pos": -468.5500030517578, + "y_pos": -352.09919548045787 + }, + { + "id": 23145, + "x_pos": -385.5500030517578, + "y_pos": -325.45006386331715 + }, + { + "id": 23144, + "x_pos": -418, + "y_pos": -221.79993613668285 + }, + { + "id": 22879, + "x_pos": -696.8000030517578, + "y_pos": -199.99933083903943 + }, + { + "id": 22874, + "x_pos": -415, + "y_pos": -338.3492031124051 + }, + { + "id": 22872, + "x_pos": -421.5500030517578, + "y_pos": -401.94906775382356 + }, + { + "id": 22871, + "x_pos": -166.89999389648438, + "y_pos": -204.6990601218763 + }, + { + "id": 22870, + "x_pos": -449.1499938964844, + "y_pos": -481.149466197621 + }, + { + "id": 22869, + "x_pos": -438.1000061035156, + "y_pos": -455.04961682009684 + }, + { + "id": 22868, + "x_pos": -343, + "y_pos": -473.4490753857708 + }, + { + "id": 22867, + "x_pos": -307.59999084472656, + "y_pos": -458.25066916096057 + }, + { + "id": 22866, + "x_pos": -310.79998779296875, + "y_pos": -440.9004775710091 + }, + { + "id": 22865, + "x_pos": -338.95001220703125, + "y_pos": -339.3482070029113 + }, + { + "id": 22864, + "x_pos": -314, + "y_pos": -364.09652646856284 + }, + { + "id": 22863, + "x_pos": -286.3000183105469, + "y_pos": -387.9976732005325 + }, + { + "id": 22862, + "x_pos": -307.04998779296875, + "y_pos": -347.798932395242 + }, + { + "id": 22861, + "x_pos": -294.1000213623047, + "y_pos": -321.5010113733881 + }, + { + "id": 22860, + "x_pos": -339.3999938964844, + "y_pos": -300.25368038528313 + }, + { + "id": 22859, + "x_pos": -299.75, + "y_pos": -279.24798488517126 + }, + { + "id": 22858, + "x_pos": -220.6999969482422, + "y_pos": -215.149785514207 + }, + { + "id": 22857, + "x_pos": -188.9499969482422, + "y_pos": -203.34984937752415 + }, + { + "id": 22563, + "x_pos": 88.5, + "y_pos": -601 + }, + { + "id": 22562, + "x_pos": 49.5, + "y_pos": -584 + }, + { + "id": 22561, + "x_pos": 37.5, + "y_pos": -662 + }, + { + "id": 22560, + "x_pos": 64.5, + "y_pos": -615.5 + }, + { + "id": 22559, + "x_pos": 105.5, + "y_pos": -609 + }, + { + "id": 22558, + "x_pos": 57, + "y_pos": -572.5 + }, + { + "id": 22557, + "x_pos": 53, + "y_pos": -589 + }, + { + "id": 22556, + "x_pos": 26.5, + "y_pos": -633.5 + }, + { + "id": 22555, + "x_pos": -34, + "y_pos": -609.5 + }, + { + "id": 22554, + "x_pos": -12, + "y_pos": -625.5 + }, + { + "id": 22553, + "x_pos": 30.5, + "y_pos": -577.5 + }, + { + "id": 22552, + "x_pos": 442.865966796875, + "y_pos": -19.695159912109375 + }, + { + "id": 22551, + "x_pos": 5.85931396484375, + "y_pos": -83.40072631835938 + }, + { + "id": 22550, + "x_pos": -8.939727783203125, + "y_pos": -109.11492919921875 + }, + { + "id": 22549, + "x_pos": -2.77142333984375, + "y_pos": -98.32852172851562 + }, + { + "id": 22548, + "x_pos": -100.006103515625, + "y_pos": -146.98623657226562 + }, + { + "id": 22547, + "x_pos": -155.21722412109375, + "y_pos": -164.27523803710938 + }, + { + "id": 22546, + "x_pos": -166.77523803710938, + "y_pos": -173.74072265625 + }, + { + "id": 22545, + "x_pos": -168.5860595703125, + "y_pos": -150.80291748046875 + }, + { + "id": 22544, + "x_pos": -183.97811889648438, + "y_pos": -148.73638916015625 + }, + { + "id": 22543, + "x_pos": -151.3551025390625, + "y_pos": -158.41331481933594 + }, + { + "id": 22542, + "x_pos": -160.4703369140625, + "y_pos": -154.3044891357422 + }, + { + "id": 22541, + "x_pos": -168.71856689453125, + "y_pos": -154.3469696044922 + }, + { + "id": 22540, + "x_pos": -123.05221557617188, + "y_pos": 83.58351135253906 + }, + { + "id": 22539, + "x_pos": -103.87503051757812, + "y_pos": 78.78009033203125 + }, + { + "id": 22538, + "x_pos": -67.3388671875, + "y_pos": 83.47549438476562 + }, + { + "id": 22537, + "x_pos": -61.788055419921875, + "y_pos": 121.08242797851562 + }, + { + "id": 22536, + "x_pos": -117.6439208984375, + "y_pos": 121.15354919433594 + }, + { + "id": 22535, + "x_pos": -88.3045654296875, + "y_pos": 150.05825805664062 + }, + { + "id": 22534, + "x_pos": 11.5, + "y_pos": 136.71408081054688 + }, + { + "id": 22533, + "x_pos": -59.193084716796875, + "y_pos": 131.94549560546875 + }, + { + "id": 22532, + "x_pos": -24.5328369140625, + "y_pos": 100.40390014648438 + }, + { + "id": 22531, + "x_pos": 0.725616455078125, + "y_pos": 92.32847595214844 + }, + { + "id": 22530, + "x_pos": 1.885711669921875, + "y_pos": 69.74295043945312 + }, + { + "id": 22529, + "x_pos": 47.814239501953125, + "y_pos": 49.585784912109375 + }, + { + "id": 22528, + "x_pos": 79.352294921875, + "y_pos": 37.0567626953125 + }, + { + "id": 22527, + "x_pos": 67.61138916015625, + "y_pos": 14.930572509765625 + }, + { + "id": 22526, + "x_pos": 38.391143798828125, + "y_pos": 18.42205810546875 + }, + { + "id": 22525, + "x_pos": 51.711761474609375, + "y_pos": -8.30865478515625 + }, + { + "id": 22524, + "x_pos": 74.17132568359375, + "y_pos": -17.100067138671875 + }, + { + "id": 22523, + "x_pos": 52.008758544921875, + "y_pos": -21.62091064453125 + }, + { + "id": 22522, + "x_pos": 36.623260498046875, + "y_pos": -25.45208740234375 + }, + { + "id": 22521, + "x_pos": 64.05694580078125, + "y_pos": -53.6715087890625 + }, + { + "id": 22520, + "x_pos": 177.50140380859375, + "y_pos": -107.42568969726562 + }, + { + "id": 22519, + "x_pos": 169.2388916015625, + "y_pos": -81.79684448242188 + }, + { + "id": 22518, + "x_pos": 75.05718994140625, + "y_pos": -81.585693359375 + }, + { + "id": 22517, + "x_pos": 61.43975830078125, + "y_pos": -91.58395385742188 + }, + { + "id": 22516, + "x_pos": -23.498291015625, + "y_pos": -124.14276123046875 + }, + { + "id": 22515, + "x_pos": -246.3687744140625, + "y_pos": 77.48023986816406 + }, + { + "id": 22514, + "x_pos": -224.76327514648438, + "y_pos": 47.061981201171875 + }, + { + "id": 22513, + "x_pos": -198.60943603515625, + "y_pos": 38.070556640625 + }, + { + "id": 22512, + "x_pos": -183.68841552734375, + "y_pos": 75.42111206054688 + }, + { + "id": 22511, + "x_pos": -187.17465209960938, + "y_pos": 96.47317504882812 + }, + { + "id": 22510, + "x_pos": -188.0999755859375, + "y_pos": 137.70974731445312 + }, + { + "id": 22509, + "x_pos": -176.75503540039062, + "y_pos": 162.74539184570312 + }, + { + "id": 22508, + "x_pos": -141.54913330078125, + "y_pos": 180.0950927734375 + }, + { + "id": 22507, + "x_pos": 517.4571533203125, + "y_pos": -280.42840576171875 + }, + { + "id": 22506, + "x_pos": 477.6916809082031, + "y_pos": -267.719970703125 + }, + { + "id": 22505, + "x_pos": 456.8438415527344, + "y_pos": -266.49468994140625 + }, + { + "id": 22504, + "x_pos": 397.1697998046875, + "y_pos": -110.40475463867188 + }, + { + "id": 22503, + "x_pos": 356.0948181152344, + "y_pos": -93.10189819335938 + }, + { + "id": 22502, + "x_pos": 419.912109375, + "y_pos": -44.785430908203125 + }, + { + "id": 22501, + "x_pos": 445.95123291015625, + "y_pos": -107.4888916015625 + }, + { + "id": 22500, + "x_pos": 417.5354309082031, + "y_pos": -174.82174682617188 + }, + { + "id": 22499, + "x_pos": 411.6290283203125, + "y_pos": -207.18414306640625 + }, + { + "id": 22498, + "x_pos": 357.56646728515625, + "y_pos": -222.05494689941406 + }, + { + "id": 22497, + "x_pos": 389.015625, + "y_pos": -235.217041015625 + }, + { + "id": 22496, + "x_pos": 468.0285949707031, + "y_pos": -46.2142333984375 + }, + { + "id": 22495, + "x_pos": 516.6469116210938, + "y_pos": -114.62637329101562 + }, + { + "id": 22494, + "x_pos": 547.9537048339844, + "y_pos": -78.38894653320312 + }, + { + "id": 22493, + "x_pos": 562.4677124023438, + "y_pos": -79.76016235351562 + }, + { + "id": 22492, + "x_pos": 495.4571838378906, + "y_pos": 49.457244873046875 + }, + { + "id": 22491, + "x_pos": 538.5091552734375, + "y_pos": 64.06756591796875 + }, + { + "id": 22490, + "x_pos": 579.0859375, + "y_pos": 133.73626708984375 + }, + { + "id": 22489, + "x_pos": 641.8947448730469, + "y_pos": 128.55239868164062 + }, + { + "id": 22488, + "x_pos": 613.4378662109375, + "y_pos": 63.59635925292969 + }, + { + "id": 22487, + "x_pos": 658.6392822265625, + "y_pos": 82.5511474609375 + }, + { + "id": 22486, + "x_pos": 615.4125061035156, + "y_pos": 22.680740356445312 + }, + { + "id": 22485, + "x_pos": 588.6946105957031, + "y_pos": 75.27493286132812 + }, + { + "id": 22484, + "x_pos": -154.61428833007812, + "y_pos": 741.3571472167969 + }, + { + "id": 22483, + "x_pos": -256.8759765625, + "y_pos": 768.4150085449219 + }, + { + "id": 22482, + "x_pos": -261.1427917480469, + "y_pos": 744.6858215332031 + }, + { + "id": 22481, + "x_pos": -292.4166564941406, + "y_pos": 743.5576782226562 + }, + { + "id": 22480, + "x_pos": -333.0196838378906, + "y_pos": 752.9693908691406 + }, + { + "id": 22479, + "x_pos": -387.25433349609375, + "y_pos": 774.68212890625 + }, + { + "id": 22478, + "x_pos": -359, + "y_pos": 746.5 + }, + { + "id": 22477, + "x_pos": -282.562255859375, + "y_pos": 851.1012115478516 + }, + { + "id": 22476, + "x_pos": -338.84893798828125, + "y_pos": 854.9347839355469 + }, + { + "id": 22475, + "x_pos": -304.5436096191406, + "y_pos": 843.6427612304688 + }, + { + "id": 22474, + "x_pos": -280.16363525390625, + "y_pos": 788.0992431640625 + }, + { + "id": 22473, + "x_pos": -235.96237182617188, + "y_pos": 484.7281188964844 + }, + { + "id": 22472, + "x_pos": -220.62796020507812, + "y_pos": 496.4370422363281 + }, + { + "id": 22471, + "x_pos": -145.00619506835938, + "y_pos": 545.4489593505859 + }, + { + "id": 22470, + "x_pos": -122.08505249023438, + "y_pos": 552.4398498535156 + }, + { + "id": 22469, + "x_pos": -102.97128295898438, + "y_pos": 588.7633972167969 + }, + { + "id": 22468, + "x_pos": -153.39422607421875, + "y_pos": 610.4107666015625 + }, + { + "id": 22467, + "x_pos": -224.68319702148438, + "y_pos": 603.3995056152344 + }, + { + "id": 22466, + "x_pos": -193.23153686523438, + "y_pos": 559.5215454101562 + }, + { + "id": 22465, + "x_pos": -156.866943359375, + "y_pos": 495.6634521484375 + }, + { + "id": 22464, + "x_pos": -149.44100952148438, + "y_pos": 523.3319702148438 + }, + { + "id": 22463, + "x_pos": -124.19146728515625, + "y_pos": 530.0145568847656 + }, + { + "id": 22462, + "x_pos": -270.4426574707031, + "y_pos": 454.713623046875 + }, + { + "id": 22461, + "x_pos": -301.5623474121094, + "y_pos": 397.4649658203125 + }, + { + "id": 22460, + "x_pos": -180.25726318359375, + "y_pos": 361.3136291503906 + }, + { + "id": 22459, + "x_pos": -127.74169921875, + "y_pos": 392.5093078613281 + }, + { + "id": 22458, + "x_pos": -107.9923095703125, + "y_pos": 431.40130615234375 + }, + { + "id": 22457, + "x_pos": 33.71923828125, + "y_pos": 498.0115051269531 + }, + { + "id": 22456, + "x_pos": 14.469818115234375, + "y_pos": 422.4029541015625 + }, + { + "id": 22455, + "x_pos": 46.120758056640625, + "y_pos": 425.1141662597656 + }, + { + "id": 22454, + "x_pos": 57.794677734375, + "y_pos": 385.30706787109375 + }, + { + "id": 22453, + "x_pos": 52.365997314453125, + "y_pos": 358.9073486328125 + }, + { + "id": 22452, + "x_pos": 19.807647705078125, + "y_pos": 372.05767822265625 + }, + { + "id": 22451, + "x_pos": -3.80181884765625, + "y_pos": 357.03564453125 + }, + { + "id": 22450, + "x_pos": -61.72711181640625, + "y_pos": 387.4117126464844 + }, + { + "id": 22449, + "x_pos": -58.3568115234375, + "y_pos": 415.0609436035156 + }, + { + "id": 22448, + "x_pos": 9.99139404296875, + "y_pos": 519.7046203613281 + }, + { + "id": 22447, + "x_pos": 79.87322998046875, + "y_pos": 552.5748901367188 + }, + { + "id": 22446, + "x_pos": 84.40771484375, + "y_pos": 508.7888488769531 + }, + { + "id": 22445, + "x_pos": 77.76986694335938, + "y_pos": 470.8839111328125 + }, + { + "id": 22444, + "x_pos": 150.1534423828125, + "y_pos": 351.6239929199219 + }, + { + "id": 22443, + "x_pos": 178.49017333984375, + "y_pos": 289.34405517578125 + }, + { + "id": 22442, + "x_pos": 188.06637573242188, + "y_pos": 346.726806640625 + }, + { + "id": 22441, + "x_pos": -434, + "y_pos": -278 + }, + { + "id": 22440, + "x_pos": -593.5, + "y_pos": -266 + }, + { + "id": 22439, + "x_pos": -631, + "y_pos": -275 + }, + { + "id": 22438, + "x_pos": -686, + "y_pos": -269 + }, + { + "id": 22437, + "x_pos": -652, + "y_pos": -316.5 + }, + { + "id": 22436, + "x_pos": -573, + "y_pos": -267 + }, + { + "id": 22435, + "x_pos": -515, + "y_pos": -290 + }, + { + "id": 22434, + "x_pos": -530, + "y_pos": -239.5 + }, + { + "id": 22433, + "x_pos": -521.5, + "y_pos": -181 + }, + { + "id": 22432, + "x_pos": -544.5, + "y_pos": -195 + }, + { + "id": 22431, + "x_pos": -627.5, + "y_pos": -221 + }, + { + "id": 22430, + "x_pos": -471.2857666015625, + "y_pos": -418.9571533203125 + }, + { + "id": 22429, + "x_pos": -573.8344116210938, + "y_pos": -318.7278747558594 + }, + { + "id": 22428, + "x_pos": -708.1474609375, + "y_pos": -300.36669921875 + }, + { + "id": 22427, + "x_pos": -729.3665466308594, + "y_pos": -309.6340637207031 + }, + { + "id": 22426, + "x_pos": -695.3389587402344, + "y_pos": -320.0389709472656 + }, + { + "id": 22425, + "x_pos": -621.2672424316406, + "y_pos": -327.6404724121094 + }, + { + "id": 22424, + "x_pos": -591.7457580566406, + "y_pos": -212.82540893554688 + }, + { + "id": 22423, + "x_pos": -616.8415832519531, + "y_pos": -202.76019287109375 + }, + { + "id": 22422, + "x_pos": -663.8061218261719, + "y_pos": -204.37742614746094 + }, + { + "id": 22421, + "x_pos": -690.1701965332031, + "y_pos": -219.21383666992188 + }, + { + "id": 22420, + "x_pos": -746.0213928222656, + "y_pos": -233.77740478515625 + }, + { + "id": 22419, + "x_pos": -733.8607177734375, + "y_pos": -190.79348754882812 + }, + { + "id": 22418, + "x_pos": -708.4124755859375, + "y_pos": -180.36077880859375 + }, + { + "id": 22417, + "x_pos": -664.4682312011719, + "y_pos": -131.63705444335938 + }, + { + "id": 22416, + "x_pos": -677.7084045410156, + "y_pos": -65.2813720703125 + }, + { + "id": 22415, + "x_pos": -635.7980651855469, + "y_pos": -9.699432373046875 + }, + { + "id": 22414, + "x_pos": -624.9277038574219, + "y_pos": 9.534759521484375 + }, + { + "id": 22413, + "x_pos": -669.1948547363281, + "y_pos": -13.74993896484375 + }, + { + "id": 22412, + "x_pos": -675.1928405761719, + "y_pos": -35.911529541015625 + }, + { + "id": 22411, + "x_pos": -701.6080322265625, + "y_pos": -15.205474853515625 + }, + { + "id": 22410, + "x_pos": -698.215087890625, + "y_pos": -60.0601806640625 + }, + { + "id": 22409, + "x_pos": -711.4666137695312, + "y_pos": -38.3231201171875 + }, + { + "id": 22408, + "x_pos": -731.9617004394531, + "y_pos": -37.238922119140625 + }, + { + "id": 22407, + "x_pos": -758.8511352539062, + "y_pos": -86.53857421875 + }, + { + "id": 22406, + "x_pos": -722.4479370117188, + "y_pos": -112.846923828125 + }, + { + "id": 22405, + "x_pos": -750.9501647949219, + "y_pos": -126.87652587890625 + }, + { + "id": 22404, + "x_pos": -771.9391479492188, + "y_pos": -110.56793212890625 + }, + { + "id": 22403, + "x_pos": -1007.8693542480469, + "y_pos": 157.0994873046875 + }, + { + "id": 22402, + "x_pos": -1028.1669921875, + "y_pos": 152.51980590820312 + }, + { + "id": 22401, + "x_pos": -1160.0994262695312, + "y_pos": 222.27316284179688 + }, + { + "id": 22400, + "x_pos": -1295.7093200683594, + "y_pos": 414.96087646484375 + }, + { + "id": 22399, + "x_pos": -1312.1494140625, + "y_pos": 438.43792724609375 + }, + { + "id": 22398, + "x_pos": -1292.1018371582031, + "y_pos": 448.9481506347656 + }, + { + "id": 22397, + "x_pos": -1285.2261047363281, + "y_pos": 410.8117370605469 + }, + { + "id": 22396, + "x_pos": -1328.5667114257812, + "y_pos": 335.4939270019531 + }, + { + "id": 22395, + "x_pos": -1425.7373046875, + "y_pos": 261.08673095703125 + }, + { + "id": 22394, + "x_pos": -1413.1616821289062, + "y_pos": 254.24774169921875 + }, + { + "id": 22393, + "x_pos": -1412.7503051757812, + "y_pos": 245.09146118164062 + }, + { + "id": 22392, + "x_pos": -1373.0557861328125, + "y_pos": 314.9326171875 + }, + { + "id": 22391, + "x_pos": -1354.5492553710938, + "y_pos": 314.6092224121094 + }, + { + "id": 22390, + "x_pos": -1355.2707824707031, + "y_pos": 358.53240966796875 + }, + { + "id": 22389, + "x_pos": -1400.4481811523438, + "y_pos": 420.1992492675781 + }, + { + "id": 22388, + "x_pos": -1433.9491882324219, + "y_pos": 464.558837890625 + }, + { + "id": 22387, + "x_pos": -1411.9598999023438, + "y_pos": 497.7894592285156 + }, + { + "id": 22386, + "x_pos": -1410.5941162109375, + "y_pos": 524.5961608886719 + }, + { + "id": 22385, + "x_pos": -1403.380859375, + "y_pos": 528.4627380371094 + }, + { + "id": 22384, + "x_pos": -1300.9200134277344, + "y_pos": 645.4130249023438 + }, + { + "id": 22383, + "x_pos": -1311.8262023925781, + "y_pos": 588.6694641113281 + }, + { + "id": 22382, + "x_pos": -1295.6718444824219, + "y_pos": 598.1012268066406 + }, + { + "id": 22381, + "x_pos": -1287.0057678222656, + "y_pos": 607.0675964355469 + }, + { + "id": 22380, + "x_pos": -1276.5377502441406, + "y_pos": 625.8112487792969 + }, + { + "id": 22379, + "x_pos": -1259.4715270996094, + "y_pos": 641.4285583496094 + }, + { + "id": 22378, + "x_pos": -1232.5479431152344, + "y_pos": 666.4775543212891 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/aa83f2e70bcc0a0d69998f52b97b07d4_6511257378598580635.png" + }, + "285": { + "name": "Red Horned Lizard", + "clear_name": "RedHornedLizard", + "points": [ + { + "id": 23133, + "x_pos": 1.1447617990193066, + "y_pos": 431.4132146533443 + }, + { + "id": 23131, + "x_pos": -619.25, + "y_pos": -304.2493461029337 + }, + { + "id": 21793, + "x_pos": -1295, + "y_pos": 730 + }, + { + "id": 21792, + "x_pos": -1291, + "y_pos": 735.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/503ba3861998de072e10d086b214d252_2150181738238989287.png" + }, + "301": { + "name": "Green Horned Lizard", + "clear_name": "GreenHornedLizard", + "points": [ + { + "id": 23132, + "x_pos": -315.1052382009807, + "y_pos": 422.65200407404336 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/abf57f467b7c9404b3e47f00fcf3813c_157108456459849289.png" + }, + "322": { + "name": "Enkanomiya Phase Gate", + "clear_name": "EnkanomiyaPhaseGate", + "points": [ + { + "id": 23119, + "x_pos": -102.8459481278419, + "y_pos": 488.43157680909553 + }, + { + "id": 22913, + "x_pos": -108.75, + "y_pos": -393.75 + }, + { + "id": 22885, + "x_pos": -176.148217550337, + "y_pos": 416.1433062107926 + }, + { + "id": 22883, + "x_pos": -823.1317812670914, + "y_pos": -172.02995930675206 + }, + { + "id": 22882, + "x_pos": -767.8969924857472, + "y_pos": -87.7172532954146 + }, + { + "id": 22880, + "x_pos": -47.44999694824219, + "y_pos": -1.8024149506268259 + }, + { + "id": 22168, + "x_pos": 91, + "y_pos": -584.5 + }, + { + "id": 22167, + "x_pos": 868.5, + "y_pos": -1016.5 + }, + { + "id": 22166, + "x_pos": 881.5, + "y_pos": -877.5 + }, + { + "id": 22165, + "x_pos": -177.5, + "y_pos": 640.5 + }, + { + "id": 22164, + "x_pos": -281, + "y_pos": 769 + }, + { + "id": 22163, + "x_pos": 180, + "y_pos": -103 + }, + { + "id": 22162, + "x_pos": -29, + "y_pos": -126 + }, + { + "id": 22161, + "x_pos": 122, + "y_pos": 94 + }, + { + "id": 22160, + "x_pos": 109, + "y_pos": 14 + }, + { + "id": 22159, + "x_pos": 243, + "y_pos": -167 + }, + { + "id": 22158, + "x_pos": -48, + "y_pos": 341 + }, + { + "id": 22157, + "x_pos": -70, + "y_pos": 278.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211203/5c4906479ba578b9024c3b4f6d919537_2882520554065055742.png" + }, + "59": { + "name": "Slime", + "clear_name": "Slime", + "points": [ + { + "id": 23114, + "x_pos": -128.83012437689126, + "y_pos": 557.9764191262984 + }, + { + "id": 22824, + "x_pos": 436.4499969482422, + "y_pos": -137.44529435053346 + }, + { + "id": 22819, + "x_pos": 423.4499969482422, + "y_pos": -264.1572753463113 + }, + { + "id": 22818, + "x_pos": 425.5500030517578, + "y_pos": -259.7013622215313 + }, + { + "id": 22813, + "x_pos": -221.79998779296875, + "y_pos": 604.0957585891874 + }, + { + "id": 22812, + "x_pos": -214.10000610351562, + "y_pos": 607.75 + }, + { + "id": 22794, + "x_pos": -405.6000061035156, + "y_pos": -405.4506037376568 + }, + { + "id": 22793, + "x_pos": -402.1499938964844, + "y_pos": -406.3009132300929 + }, + { + "id": 22792, + "x_pos": -405.1499938964844, + "y_pos": -407.9574529633528 + }, + { + "id": 22788, + "x_pos": -487.1000061035156, + "y_pos": -302.75075848387473 + }, + { + "id": 22787, + "x_pos": -491.15000915527344, + "y_pos": -303.4012074753134 + }, + { + "id": 22786, + "x_pos": -486.8999938964844, + "y_pos": -306.75075848387473 + }, + { + "id": 21864, + "x_pos": -480.5, + "y_pos": -267.2239960268232 + }, + { + "id": 21863, + "x_pos": -474.7999572753906, + "y_pos": -268.20595511450347 + }, + { + "id": 21862, + "x_pos": -694.8000183105469, + "y_pos": -41.084194865693235 + }, + { + "id": 21861, + "x_pos": -689.3000183105469, + "y_pos": -47.424759075351176 + }, + { + "id": 21860, + "x_pos": -700.3000183105469, + "y_pos": -40.872884159228306 + }, + { + "id": 21858, + "x_pos": -1307.5, + "y_pos": 366.7202265278156 + }, + { + "id": 21857, + "x_pos": -1316, + "y_pos": 366.7187963369088 + }, + { + "id": 21856, + "x_pos": -1307.3999633789062, + "y_pos": 364.31868518288184 + }, + { + "id": 21855, + "x_pos": -1312.8000183105469, + "y_pos": 361.7747220603783 + }, + { + "id": 21854, + "x_pos": -1129.8000183105469, + "y_pos": 174.9204532547535 + }, + { + "id": 21853, + "x_pos": -1123.9999694824219, + "y_pos": 174.819788321817 + }, + { + "id": 21852, + "x_pos": -1126.9000549316406, + "y_pos": 174.0203649725429 + }, + { + "id": 21851, + "x_pos": -1124, + "y_pos": 173.94639071281517 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/380ece40b8222cd7cd17cf44ba325739_5103907981293273194.png" + }, + "90": { + "name": "Crystal Core", + "clear_name": "CrystalCore", + "points": [ + { + "id": 23107, + "x_pos": -1242.70467261018, + "y_pos": 334.6156663342408 + }, + { + "id": 23074, + "x_pos": 60.642005403692565, + "y_pos": -3.3684842260579444 + }, + { + "id": 23073, + "x_pos": 63.39588477489315, + "y_pos": -26.603214643906995 + }, + { + "id": 23072, + "x_pos": 47.21857194055042, + "y_pos": -30.11674465340775 + }, + { + "id": 22572, + "x_pos": -472.6000061035156, + "y_pos": -398.9995045274022 + }, + { + "id": 22571, + "x_pos": -478.1000061035156, + "y_pos": -399.49911645561815 + }, + { + "id": 22570, + "x_pos": -474.1000061035156, + "y_pos": -405.49445959420814 + }, + { + "id": 22569, + "x_pos": -182.0999755859375, + "y_pos": 583.9173330865005 + }, + { + "id": 22568, + "x_pos": -167.0999755859375, + "y_pos": 578.9212138043422 + }, + { + "id": 22567, + "x_pos": -151.0999755859375, + "y_pos": 594.9087955072491 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/621ef976ab2ea278ad1a9371ad845eea_2155132189350895110.png" + }, + "265": { + "name": "Wolves of the Rift", + "clear_name": "WolvesoftheRift", + "points": [ + { + "id": 23104, + "x_pos": -13.199996948242188, + "y_pos": 26.203637673155754 + }, + { + "id": 23103, + "x_pos": -12.899993896484375, + "y_pos": 30.400464238654195 + }, + { + "id": 23102, + "x_pos": -16.5, + "y_pos": 29.04712081071898 + }, + { + "id": 23023, + "x_pos": 410.0500030517578, + "y_pos": 50.548637778468674 + }, + { + "id": 23022, + "x_pos": 416.8500061035156, + "y_pos": 49.797105563503465 + }, + { + "id": 23021, + "x_pos": 411.5, + "y_pos": 45.89894727090473 + }, + { + "id": 22830, + "x_pos": 469.6999969482422, + "y_pos": -79.90044899143868 + }, + { + "id": 22829, + "x_pos": 473.20001220703125, + "y_pos": -81.00075848387496 + }, + { + "id": 22828, + "x_pos": 469.3999938964844, + "y_pos": -82.2028791892808 + }, + { + "id": 22827, + "x_pos": 541.4000091552734, + "y_pos": -194.6010679763108 + }, + { + "id": 22826, + "x_pos": 536.5, + "y_pos": -194.20136222153155 + }, + { + "id": 22825, + "x_pos": 540.8499908447266, + "y_pos": -197.55320392893236 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/77c551e9d59042686c274c95ccbf61fa_6488691826595353793.png" + }, + "303": { + "name": "Frog", + "clear_name": "Frog", + "points": [ + { + "id": 23094, + "x_pos": -466.8500061035156, + "y_pos": -236.24966541951972 + }, + { + "id": 23083, + "x_pos": 16.900009155273438, + "y_pos": 534.4004775710091 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/e6d9141344fc5cd6a428a9b30863ab3c_3170222518531850850.png" + }, + "185": { + "name": "Sea Ganoderma", + "clear_name": "SeaGanoderma", + "points": [ + { + "id": 23091, + "x_pos": 391.6999969482422, + "y_pos": -178.4993461029337 + }, + { + "id": 23090, + "x_pos": 388.04998779296875, + "y_pos": -180.3495376928854 + }, + { + "id": 23089, + "x_pos": 388.75, + "y_pos": -167.99968068341423 + }, + { + "id": 23088, + "x_pos": 377.8999938964844, + "y_pos": -161.64945856567374 + }, + { + "id": 23087, + "x_pos": 371.75, + "y_pos": -164.64912398519346 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/93263cf3ea17f1cf6921f7c16194d0cd_1121745296339257675.png" + }, + "201": { + "name": "Seagrass", + "clear_name": "Seagrass", + "points": [ + { + "id": 23082, + "x_pos": -208.64999389648438, + "y_pos": 610.7992669757223 + }, + { + "id": 23081, + "x_pos": -210, + "y_pos": 605.5003345804803 + }, + { + "id": 22719, + "x_pos": -446.5, + "y_pos": -224 + }, + { + "id": 22718, + "x_pos": -468, + "y_pos": -240.5 + }, + { + "id": 22717, + "x_pos": -483, + "y_pos": -227.5 + }, + { + "id": 22716, + "x_pos": -456.5, + "y_pos": -255.5 + }, + { + "id": 22715, + "x_pos": -1229.5, + "y_pos": 726.5 + }, + { + "id": 22714, + "x_pos": -1335.5, + "y_pos": 333.5 + }, + { + "id": 22713, + "x_pos": -1302.5, + "y_pos": 369 + }, + { + "id": 22712, + "x_pos": -1320, + "y_pos": 373.5 + }, + { + "id": 22711, + "x_pos": -1316.5, + "y_pos": 357.5 + }, + { + "id": 22710, + "x_pos": -1250.5, + "y_pos": 438.5 + }, + { + "id": 22709, + "x_pos": -1247, + "y_pos": 420.5 + }, + { + "id": 22708, + "x_pos": -1249, + "y_pos": 409 + }, + { + "id": 22707, + "x_pos": -1340.5, + "y_pos": 655.5 + }, + { + "id": 22706, + "x_pos": -1353, + "y_pos": 681 + }, + { + "id": 22705, + "x_pos": -1372, + "y_pos": 666.5 + }, + { + "id": 22704, + "x_pos": -1368, + "y_pos": 640.5 + }, + { + "id": 22703, + "x_pos": -1356.5, + "y_pos": 602 + }, + { + "id": 22702, + "x_pos": -1343.5, + "y_pos": 616 + }, + { + "id": 22701, + "x_pos": -1321, + "y_pos": 604 + }, + { + "id": 22700, + "x_pos": -1310.5, + "y_pos": 600 + }, + { + "id": 22699, + "x_pos": -1263.5, + "y_pos": 673.5 + }, + { + "id": 22698, + "x_pos": -1261, + "y_pos": 665 + }, + { + "id": 22697, + "x_pos": -1272, + "y_pos": 669 + }, + { + "id": 22696, + "x_pos": -1279, + "y_pos": 694.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/f3b15facf0ff4c766216f772c564be91_9076563853093542978.png" + }, + "61": { + "name": "Mist Flower Corolla", + "clear_name": "MistFlowerCorolla", + "points": [ + { + "id": 23080, + "x_pos": -189.4499969482422, + "y_pos": 610.9001429905288 + }, + { + "id": 23079, + "x_pos": -194.55001831054688, + "y_pos": 610.0013383219211 + }, + { + "id": 22722, + "x_pos": -639.5428466796875, + "y_pos": -1069.6712951660156 + }, + { + "id": 22721, + "x_pos": -446.6742858886719, + "y_pos": -228.877197265625 + }, + { + "id": 22720, + "x_pos": -455.4267272949219, + "y_pos": -227.07159423828125 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/379f3acf5091d5c9bab5d238398ed74b_1299253059491585322.png" + }, + "47": { + "name": "Whopperflower", + "clear_name": "Whopperflower", + "points": [ + { + "id": 23027, + "x_pos": -393.45001220703125, + "y_pos": -460.29295296121177 + }, + { + "id": 23026, + "x_pos": -334.5500030517578, + "y_pos": -461.4521054581908 + }, + { + "id": 22912, + "x_pos": -288, + "y_pos": -243.25 + }, + { + "id": 21945, + "x_pos": -291.5, + "y_pos": 388.5 + }, + { + "id": 21944, + "x_pos": -275, + "y_pos": 402.5 + }, + { + "id": 21943, + "x_pos": -1342, + "y_pos": 462 + }, + { + "id": 21942, + "x_pos": -1349, + "y_pos": 466 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a5842417b7fc163a30730478e5b9866e_271693866523629665.png" + }, + "215": { + "name": "Ruin Sentinel", + "clear_name": "RuinSentinel", + "points": [ + { + "id": 23025, + "x_pos": -27.050003051757812, + "y_pos": 388.4536071787247 + }, + { + "id": 23024, + "x_pos": -28.25, + "y_pos": 391.0995510085613 + }, + { + "id": 23017, + "x_pos": -619.3500061035156, + "y_pos": -201.90502276551047 + }, + { + "id": 23016, + "x_pos": -624, + "y_pos": -196.7021207054063 + }, + { + "id": 23015, + "x_pos": -795, + "y_pos": -180.653505797761 + }, + { + "id": 23014, + "x_pos": -800.1499938964844, + "y_pos": -164.65196595918815 + }, + { + "id": 22840, + "x_pos": -222.89999389648438, + "y_pos": 427.5972755569369 + }, + { + "id": 22839, + "x_pos": -171.70001220703125, + "y_pos": 412.28726052034744 + }, + { + "id": 22776, + "x_pos": -778.5, + "y_pos": -52.101811212970006 + }, + { + "id": 22775, + "x_pos": -778.25, + "y_pos": -58.15044899143868 + }, + { + "id": 22058, + "x_pos": 538, + "y_pos": 26.29762818803283 + }, + { + "id": 22057, + "x_pos": 530, + "y_pos": 28.296075900896085 + }, + { + "id": 22056, + "x_pos": 537.5, + "y_pos": 20.302285049442617 + }, + { + "id": 22055, + "x_pos": 86, + "y_pos": 534.6470410888323 + }, + { + "id": 22054, + "x_pos": 73.5, + "y_pos": 538.6439365145588 + }, + { + "id": 22053, + "x_pos": 77, + "y_pos": 526.6532502373789 + }, + { + "id": 22052, + "x_pos": -45.9000244140625, + "y_pos": 462.1033982600602 + }, + { + "id": 22051, + "x_pos": -68.4000244140625, + "y_pos": 418.13754857706635 + }, + { + "id": 22050, + "x_pos": -164, + "y_pos": 423.1336678592247 + }, + { + "id": 22049, + "x_pos": -163.5, + "y_pos": 405.64725037167 + }, + { + "id": 22048, + "x_pos": -189.79998779296875, + "y_pos": 31.958057753418416 + }, + { + "id": 22047, + "x_pos": -124, + "y_pos": -55.67387140625033 + }, + { + "id": 22046, + "x_pos": -425.1000061035156, + "y_pos": -251.10981669144485 + }, + { + "id": 22045, + "x_pos": -422.1000061035156, + "y_pos": -260.1028313993297 + }, + { + "id": 22044, + "x_pos": -562.3999938964844, + "y_pos": -206.14474315201915 + }, + { + "id": 22043, + "x_pos": -566.3999938964844, + "y_pos": -218.13542942919935 + }, + { + "id": 22042, + "x_pos": -1038.7999877929688, + "y_pos": 166.1756329762252 + }, + { + "id": 22041, + "x_pos": -1033.2999877929688, + "y_pos": 159.18106598120357 + }, + { + "id": 22040, + "x_pos": -1043.2999877929688, + "y_pos": 158.68145405298765 + }, + { + "id": 22039, + "x_pos": -1196.5, + "y_pos": 295.3752806622301 + }, + { + "id": 22038, + "x_pos": -1207, + "y_pos": 296.8741164468779 + }, + { + "id": 22037, + "x_pos": -1201.5, + "y_pos": 288.88032559542444 + }, + { + "id": 22036, + "x_pos": -1249.7000122070312, + "y_pos": 288.28075468889483 + }, + { + "id": 22035, + "x_pos": -1254.2000122070312, + "y_pos": 280.7865757656573 + }, + { + "id": 22034, + "x_pos": -1267.2000122070312, + "y_pos": 425.8738690466744 + }, + { + "id": 22033, + "x_pos": -1253.7000122070312, + "y_pos": 424.37503326202705 + }, + { + "id": 22032, + "x_pos": -1265.7000122070312, + "y_pos": 415.88163048235765 + }, + { + "id": 22031, + "x_pos": -1254.2000122070312, + "y_pos": 413.8831827694944 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/804e80a2ad9a790c2b07cfad29af9121_8586441830330297038.png" + }, + "56": { + "name": "Hilichurl Shooter", + "clear_name": "HilichurlShooter", + "points": [ + { + "id": 23020, + "x_pos": -273.70001220703125, + "y_pos": -266.45516988812074 + }, + { + "id": 22821, + "x_pos": 447.09999084472656, + "y_pos": -119.44908676990713 + }, + { + "id": 22803, + "x_pos": -331.45001220703125, + "y_pos": -243.45136222153178 + }, + { + "id": 22778, + "x_pos": -732.5, + "y_pos": -309.2006037376566 + }, + { + "id": 22770, + "x_pos": -731.4000091552734, + "y_pos": -96.20439615703049 + }, + { + "id": 22769, + "x_pos": -710.8999938964844, + "y_pos": -89.90198120640366 + }, + { + "id": 21832, + "x_pos": 652, + "y_pos": 21.719868980088904 + }, + { + "id": 21831, + "x_pos": 647.6999816894531, + "y_pos": 13.216643426609608 + }, + { + "id": 21830, + "x_pos": 634.9999694824219, + "y_pos": 15.366999869615483 + }, + { + "id": 21829, + "x_pos": 386.5, + "y_pos": -23.711124308662875 + }, + { + "id": 21828, + "x_pos": 400, + "y_pos": -27.15516808943812 + }, + { + "id": 21827, + "x_pos": -72.60000610351562, + "y_pos": -344.51144915119266 + }, + { + "id": 21826, + "x_pos": -70, + "y_pos": -340.7815612108179 + }, + { + "id": 21825, + "x_pos": -66.39999389648438, + "y_pos": -102.13641208166518 + }, + { + "id": 21824, + "x_pos": 37.70001220703125, + "y_pos": 15.197343473308365 + }, + { + "id": 21823, + "x_pos": 49, + "y_pos": 30.801272079417686 + }, + { + "id": 21822, + "x_pos": 148.5, + "y_pos": -98.2429460563369 + }, + { + "id": 21821, + "x_pos": 140.49996948242188, + "y_pos": -95.59100352037763 + }, + { + "id": 21820, + "x_pos": 20.300018310546875, + "y_pos": -83.17985413045653 + }, + { + "id": 21819, + "x_pos": 15.5, + "y_pos": -83.61996488623845 + }, + { + "id": 21818, + "x_pos": -109.60000610351562, + "y_pos": 112.93189478200702 + }, + { + "id": 21817, + "x_pos": -110.5, + "y_pos": 128.77564642545008 + }, + { + "id": 21816, + "x_pos": -103.80001831054688, + "y_pos": 123.49087490903094 + }, + { + "id": 21815, + "x_pos": -164.39999389648438, + "y_pos": 127.07632881570635 + }, + { + "id": 21814, + "x_pos": -165.5, + "y_pos": 132.30138986177076 + }, + { + "id": 21813, + "x_pos": -174.10000610351562, + "y_pos": 133.5709655998062 + }, + { + "id": 21812, + "x_pos": -332, + "y_pos": -394.2787008290045 + }, + { + "id": 21811, + "x_pos": -270.50001525878906, + "y_pos": -266.5219050336875 + }, + { + "id": 21810, + "x_pos": -357.8000183105469, + "y_pos": -340.1748332144052 + }, + { + "id": 21809, + "x_pos": -526.5, + "y_pos": -320.7211356450098 + }, + { + "id": 21808, + "x_pos": -585.5, + "y_pos": -248.94710580826836 + }, + { + "id": 21807, + "x_pos": -591.2999877929688, + "y_pos": -248.77762818582437 + }, + { + "id": 21806, + "x_pos": -715.5, + "y_pos": -172.01663359322924 + }, + { + "id": 21805, + "x_pos": -703.6000061035156, + "y_pos": -166.2758099514358 + }, + { + "id": 21804, + "x_pos": -710, + "y_pos": -161.05024307953659 + }, + { + "id": 21803, + "x_pos": -724.3999938964844, + "y_pos": -6.2787160768821195 + }, + { + "id": 21802, + "x_pos": -710.7000122070312, + "y_pos": -4.888616259201854 + }, + { + "id": 21801, + "x_pos": -716.3999938964844, + "y_pos": -17.66412965442146 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/6011c87e15abc4e57f71b0f50a946afa_5965930998284792313.png" + }, + "57": { + "name": "Samachurl", + "clear_name": "Samachurl", + "points": [ + { + "id": 23019, + "x_pos": -278.65000915527344, + "y_pos": -281.204411404246 + }, + { + "id": 23018, + "x_pos": -278.25, + "y_pos": -285.5022754516242 + }, + { + "id": 22831, + "x_pos": 454.75, + "y_pos": -52.86519092667436 + }, + { + "id": 22783, + "x_pos": -685.3499908447266, + "y_pos": -205.75075848387473 + }, + { + "id": 21850, + "x_pos": 408.1000061035156, + "y_pos": -101.4796426513958 + }, + { + "id": 21849, + "x_pos": 403.5, + "y_pos": -101.38828920723017 + }, + { + "id": 21848, + "x_pos": 407, + "y_pos": -103.87182676392558 + }, + { + "id": 21847, + "x_pos": -338.5, + "y_pos": 748.220941623269 + }, + { + "id": 21846, + "x_pos": -346, + "y_pos": 831.2645624459233 + }, + { + "id": 21845, + "x_pos": -354.5, + "y_pos": 829.2230869096288 + }, + { + "id": 21844, + "x_pos": -111.79998779296875, + "y_pos": 419.2084350767741 + }, + { + "id": 21843, + "x_pos": 40.200042724609375, + "y_pos": 379.67624053349573 + }, + { + "id": 21842, + "x_pos": 43.199981689453125, + "y_pos": 378.71737186395603 + }, + { + "id": 21841, + "x_pos": -75.5, + "y_pos": -108.73937057907028 + }, + { + "id": 21840, + "x_pos": -69, + "y_pos": 46.72022652781561 + }, + { + "id": 21839, + "x_pos": -62, + "y_pos": 46.28172473680365 + }, + { + "id": 21838, + "x_pos": -63.899993896484375, + "y_pos": 41.189656197184604 + }, + { + "id": 21837, + "x_pos": 147, + "y_pos": -94.28692442671809 + }, + { + "id": 21836, + "x_pos": 18, + "y_pos": -85.7776281858246 + }, + { + "id": 21835, + "x_pos": -107.5, + "y_pos": 115.7667077322833 + }, + { + "id": 21834, + "x_pos": -198, + "y_pos": 115.21736614600195 + }, + { + "id": 21833, + "x_pos": -79.50003051757812, + "y_pos": -138.07223226472706 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/38142ddcc6d6a3ff9aacf691bb7b97af_4527768697261404629.png" + }, + "27": { + "name": "Ruin Guard", + "clear_name": "RuinGuard", + "points": [ + { + "id": 23013, + "x_pos": -1228.9499969482422, + "y_pos": 323.1968113182829 + }, + { + "id": 23012, + "x_pos": -1415.2999877929688, + "y_pos": 665.2978640473784 + }, + { + "id": 22838, + "x_pos": 500.34999084472656, + "y_pos": 138.69910201712287 + }, + { + "id": 22837, + "x_pos": 484, + "y_pos": 148.94758504937317 + }, + { + "id": 22836, + "x_pos": 471.25, + "y_pos": 123.24770930116028 + }, + { + "id": 22814, + "x_pos": -326.59999084472656, + "y_pos": 831.8450001053125 + }, + { + "id": 22811, + "x_pos": -93.54998779296875, + "y_pos": 523.9475698021579 + }, + { + "id": 22766, + "x_pos": -91, + "y_pos": -7.0516564667520925 + }, + { + "id": 22765, + "x_pos": -92.54998779296875, + "y_pos": -15.509469613022702 + }, + { + "id": 22028, + "x_pos": 636.6999816894531, + "y_pos": -236.31401903332016 + }, + { + "id": 22027, + "x_pos": 624.1999816894531, + "y_pos": -238.81207867439934 + }, + { + "id": 22026, + "x_pos": -225.39999389648438, + "y_pos": 777.5697881400852 + }, + { + "id": 22025, + "x_pos": 89.60000610351562, + "y_pos": 505.70702867337695 + }, + { + "id": 22024, + "x_pos": 599.5, + "y_pos": 102.83177850503898 + }, + { + "id": 22023, + "x_pos": 607, + "y_pos": 97.3360472946647 + }, + { + "id": 22022, + "x_pos": -183.79998779296875, + "y_pos": -22.130966603681372 + }, + { + "id": 22021, + "x_pos": -193.79998779296875, + "y_pos": -24.629026244760553 + }, + { + "id": 22020, + "x_pos": -186.29998779296875, + "y_pos": -31.623593239782394 + }, + { + "id": 22019, + "x_pos": -638.0000305175781, + "y_pos": -292.71343185781575 + }, + { + "id": 22018, + "x_pos": -492.5, + "y_pos": -242.7522390362319 + }, + { + "id": 22017, + "x_pos": -646.5, + "y_pos": -14.735745985405174 + }, + { + "id": 22016, + "x_pos": -656, + "y_pos": -15.7349698418368 + }, + { + "id": 22015, + "x_pos": -647.5, + "y_pos": -23.72876069329027 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a90a60e07a1a942bf89fbb071efacf78_4504588708900504078.png" + }, + "15": { + "name": "White\u00a0Iron\u00a0Chunk", + "clear_name": "WhiteIronChunk", + "points": [ + { + "id": 22999, + "x_pos": 572.5, + "y_pos": 46 + }, + { + "id": 22998, + "x_pos": 570.5, + "y_pos": 46 + }, + { + "id": 22997, + "x_pos": 568.5, + "y_pos": 45.25 + }, + { + "id": 22996, + "x_pos": 634.5, + "y_pos": 64 + }, + { + "id": 22995, + "x_pos": 637.5, + "y_pos": 60.5 + }, + { + "id": 22994, + "x_pos": 637, + "y_pos": 58 + }, + { + "id": 22970, + "x_pos": -132.75, + "y_pos": 413 + }, + { + "id": 22969, + "x_pos": -132.75, + "y_pos": 411.75 + }, + { + "id": 22968, + "x_pos": -132.75, + "y_pos": 409.25 + }, + { + "id": 22967, + "x_pos": -208.5, + "y_pos": 604.5 + }, + { + "id": 22966, + "x_pos": -208.25, + "y_pos": 603.25 + }, + { + "id": 22965, + "x_pos": -208.25, + "y_pos": 601 + }, + { + "id": 22949, + "x_pos": -400, + "y_pos": -383.5 + }, + { + "id": 22948, + "x_pos": -596, + "y_pos": -323.5 + }, + { + "id": 22947, + "x_pos": -600.5, + "y_pos": -324.5 + }, + { + "id": 22118, + "x_pos": -37, + "y_pos": 156 + }, + { + "id": 22117, + "x_pos": -36.5, + "y_pos": 155.5 + }, + { + "id": 22116, + "x_pos": 7, + "y_pos": 118 + }, + { + "id": 22115, + "x_pos": 6.5, + "y_pos": 117 + }, + { + "id": 22114, + "x_pos": 6, + "y_pos": 111 + }, + { + "id": 22113, + "x_pos": 7, + "y_pos": 110.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a1e6d42d614a36b3f248d15761867b7a_3583691230971212151.png" + }, + "172": { + "name": "Iron Chunk", + "clear_name": "IronChunk", + "points": [ + { + "id": 22993, + "x_pos": 528, + "y_pos": -30.75 + }, + { + "id": 22992, + "x_pos": 527.25, + "y_pos": -32.25 + }, + { + "id": 22991, + "x_pos": 517.5, + "y_pos": -33.5 + }, + { + "id": 22990, + "x_pos": 519.5, + "y_pos": -33.5 + }, + { + "id": 22989, + "x_pos": 521.25, + "y_pos": -33.5 + }, + { + "id": 22988, + "x_pos": 413.5, + "y_pos": -92.75 + }, + { + "id": 22987, + "x_pos": 411.5, + "y_pos": -93.75 + }, + { + "id": 22986, + "x_pos": 415.25, + "y_pos": -94.75 + }, + { + "id": 22985, + "x_pos": 413, + "y_pos": -95.5 + }, + { + "id": 22984, + "x_pos": 384.25, + "y_pos": -107.5 + }, + { + "id": 22983, + "x_pos": 388.75, + "y_pos": -107.25 + }, + { + "id": 22982, + "x_pos": 384.25, + "y_pos": -109.25 + }, + { + "id": 22981, + "x_pos": 388.5, + "y_pos": -108 + }, + { + "id": 22980, + "x_pos": 388.25, + "y_pos": -109.75 + }, + { + "id": 22979, + "x_pos": 384.5, + "y_pos": -123.75 + }, + { + "id": 22978, + "x_pos": 385.75, + "y_pos": -124.75 + }, + { + "id": 22977, + "x_pos": 383.75, + "y_pos": -125.25 + }, + { + "id": 22974, + "x_pos": -303.25, + "y_pos": 471.75 + }, + { + "id": 22973, + "x_pos": -303.25, + "y_pos": 470.75 + }, + { + "id": 22972, + "x_pos": -305.5, + "y_pos": 378 + }, + { + "id": 22971, + "x_pos": -307, + "y_pos": 374.5 + }, + { + "id": 22962, + "x_pos": -41.75, + "y_pos": -126 + }, + { + "id": 22961, + "x_pos": -41.75, + "y_pos": -126.75 + }, + { + "id": 22960, + "x_pos": -49.75, + "y_pos": -128.5 + }, + { + "id": 22959, + "x_pos": -51.75, + "y_pos": -129.75 + }, + { + "id": 22958, + "x_pos": -166.75, + "y_pos": -134 + }, + { + "id": 22957, + "x_pos": -166.5, + "y_pos": -135.25 + }, + { + "id": 22956, + "x_pos": -166.25, + "y_pos": -137.25 + }, + { + "id": 22955, + "x_pos": -166.25, + "y_pos": -138 + }, + { + "id": 22954, + "x_pos": -166.5, + "y_pos": -139.75 + }, + { + "id": 22953, + "x_pos": -166.75, + "y_pos": -141.5 + }, + { + "id": 22952, + "x_pos": -297.5, + "y_pos": -351.75 + }, + { + "id": 22951, + "x_pos": -297.75, + "y_pos": -353.5 + }, + { + "id": 22950, + "x_pos": -298.75, + "y_pos": -355.5 + }, + { + "id": 22946, + "x_pos": -1094.25, + "y_pos": 160 + }, + { + "id": 22945, + "x_pos": -1098.25, + "y_pos": 160.5 + }, + { + "id": 22944, + "x_pos": -1096.25, + "y_pos": 159.5 + }, + { + "id": 22943, + "x_pos": -1432.5, + "y_pos": 600.75 + }, + { + "id": 22942, + "x_pos": -1430.25, + "y_pos": 599.25 + }, + { + "id": 22941, + "x_pos": -1427, + "y_pos": 598.5 + }, + { + "id": 22940, + "x_pos": -1387, + "y_pos": 582.25 + }, + { + "id": 22939, + "x_pos": -1385.25, + "y_pos": 580 + }, + { + "id": 22938, + "x_pos": -1382.25, + "y_pos": 579 + }, + { + "id": 22125, + "x_pos": -223.5, + "y_pos": 506 + }, + { + "id": 22124, + "x_pos": -222, + "y_pos": 506 + }, + { + "id": 22123, + "x_pos": -223, + "y_pos": 505.5 + }, + { + "id": 22122, + "x_pos": -214.5, + "y_pos": 504 + }, + { + "id": 22121, + "x_pos": -214, + "y_pos": 504 + }, + { + "id": 22120, + "x_pos": -87.5, + "y_pos": 115 + }, + { + "id": 22119, + "x_pos": -87.5, + "y_pos": 115.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/9cee1c61743200ad2e5cfcb0ab74fe2e_3187639542103597221.png" + }, + "45": { + "name": "Precious\u00a0Chest", + "clear_name": "PreciousChest", + "points": [ + { + "id": 22933, + "x_pos": 9, + "y_pos": -15.75 + }, + { + "id": 22917, + "x_pos": 613.75, + "y_pos": 131.25 + }, + { + "id": 22739, + "x_pos": -658.5, + "y_pos": -103 + }, + { + "id": 21731, + "x_pos": 574, + "y_pos": 75.75 + }, + { + "id": 21730, + "x_pos": -174.5, + "y_pos": 756 + }, + { + "id": 21728, + "x_pos": -171.5, + "y_pos": 597 + }, + { + "id": 21727, + "x_pos": -307.5, + "y_pos": 416 + }, + { + "id": 21725, + "x_pos": 45.25, + "y_pos": 497 + }, + { + "id": 21724, + "x_pos": 631, + "y_pos": -235 + }, + { + "id": 21723, + "x_pos": 491, + "y_pos": -241 + }, + { + "id": 21721, + "x_pos": 524.5, + "y_pos": -72.5 + }, + { + "id": 21719, + "x_pos": -354, + "y_pos": -436.5 + }, + { + "id": 21718, + "x_pos": -438.5, + "y_pos": -389 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/1556afa613e0cb0e8c8f93222ad504da_4646723101390558864.png" + }, + "129": { + "name": "Wooden Crate", + "clear_name": "WoodenCrate", + "points": [ + { + "id": 22932, + "x_pos": 35.5, + "y_pos": -582 + }, + { + "id": 22907, + "x_pos": 34.5, + "y_pos": -581 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/00695c6df8cd78f1947eb317280fa8d3_3626194140678419452.png" + }, + "323": { + "name": "\"Day-Night\" Switching Mechanism", + "clear_name": "DayNightSwitchingMechanism", + "points": [ + { + "id": 22886, + "x_pos": -29.864528274119493, + "y_pos": 386.1487182145934 + }, + { + "id": 22881, + "x_pos": 180, + "y_pos": -611 + }, + { + "id": 22212, + "x_pos": 552.3922817146126, + "y_pos": -207.61679344929507 + }, + { + "id": 22211, + "x_pos": 352.6327949090064, + "y_pos": -137.97105611311804 + }, + { + "id": 22210, + "x_pos": 529.8922817146126, + "y_pos": -65.53890062776759 + }, + { + "id": 22209, + "x_pos": 487.7845634292253, + "y_pos": -74.32337700305743 + }, + { + "id": 22208, + "x_pos": -41.43087314154991, + "y_pos": 442.59879121941003 + }, + { + "id": 22207, + "x_pos": 14.21780588471529, + "y_pos": 439.70133212778273 + }, + { + "id": 22206, + "x_pos": 499.60771828538736, + "y_pos": -252.1467234841175 + }, + { + "id": 22205, + "x_pos": 400.2154060430148, + "y_pos": -127.57789282152726 + }, + { + "id": 22204, + "x_pos": 397.2154365707747, + "y_pos": 29.63772236917498 + }, + { + "id": 22203, + "x_pos": 616.8231243284026, + "y_pos": -300.362277630825 + }, + { + "id": 22202, + "x_pos": 530.6768451438375, + "y_pos": -4.577831777532765 + }, + { + "id": 22201, + "x_pos": 458.1768756715974, + "y_pos": 32.245514703527306 + }, + { + "id": 22200, + "x_pos": 601.7154365707752, + "y_pos": 128.28441533129512 + }, + { + "id": 22199, + "x_pos": 614.4614085730627, + "y_pos": 118.4221377004701 + }, + { + "id": 22198, + "x_pos": 535.4826160015195, + "y_pos": 122.69288383054072 + }, + { + "id": 22197, + "x_pos": 581.7845634292253, + "y_pos": 15.922107178472743 + }, + { + "id": 22196, + "x_pos": -226.60771828538736, + "y_pos": 448.9221377004701 + }, + { + "id": 22195, + "x_pos": -293.09805056180085, + "y_pos": 478.983796651778 + }, + { + "id": 22193, + "x_pos": -278.873261914953, + "y_pos": 828.559898940709 + }, + { + "id": 22192, + "x_pos": 164.5691268584501, + "y_pos": 334.88317602870757 + }, + { + "id": 22191, + "x_pos": -74.89124694524003, + "y_pos": -135.77795548058725 + }, + { + "id": 22190, + "x_pos": -200.60771828538736, + "y_pos": 118.35330703787986 + }, + { + "id": 22189, + "x_pos": -142.39228171461264, + "y_pos": 83.9221377004701 + }, + { + "id": 22188, + "x_pos": 373.39228171461264, + "y_pos": -216.86150883991763 + }, + { + "id": 22187, + "x_pos": 449.2845634292253, + "y_pos": -191.6461010998687 + }, + { + "id": 22186, + "x_pos": -390.80253697749345, + "y_pos": -513.8103597475454 + }, + { + "id": 22185, + "x_pos": -286.1768451438377, + "y_pos": -364.2537591747887 + }, + { + "id": 22184, + "x_pos": -671.9614085730627, + "y_pos": -45.353929430201106 + }, + { + "id": 22183, + "x_pos": -665.8231548561625, + "y_pos": -46.399890804726965 + }, + { + "id": 22182, + "x_pos": -576.2859396111344, + "y_pos": -388.53357724394436 + }, + { + "id": 22181, + "x_pos": -681.3432821375384, + "y_pos": -167.71477645169057 + }, + { + "id": 22180, + "x_pos": -630.3235136474364, + "y_pos": -1045.7932788941498 + }, + { + "id": 22179, + "x_pos": 433.9240122248825, + "y_pos": 1037.578300714144 + }, + { + "id": 22178, + "x_pos": -13.823513647436357, + "y_pos": 2.922247239483795 + }, + { + "id": 22177, + "x_pos": 629.0977341963089, + "y_pos": 55.194827908724164 + }, + { + "id": 22176, + "x_pos": 613.597289983275, + "y_pos": 44.692932404364456 + }, + { + "id": 22175, + "x_pos": -211.47820796520682, + "y_pos": 394.25296088279447 + }, + { + "id": 22174, + "x_pos": -459.66359290790524, + "y_pos": -230.89250122390467 + }, + { + "id": 22173, + "x_pos": -442.15528860720997, + "y_pos": -254.4096549581693 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211201/6086175ff40ba76dc1c5da0a3cb057f4_6779894124285088614.png" + }, + "334": { + "name": "Triangular Mechanism", + "clear_name": "TriangularMechanism", + "points": [ + { + "id": 22884, + "x_pos": -660.886783614166, + "y_pos": -70.1526958215104 + }, + { + "id": 22234, + "x_pos": -646.5, + "y_pos": -1080 + }, + { + "id": 22233, + "x_pos": -648.5, + "y_pos": -1048 + }, + { + "id": 22232, + "x_pos": -656, + "y_pos": -1051 + }, + { + "id": 22231, + "x_pos": 1.5, + "y_pos": 411 + }, + { + "id": 22230, + "x_pos": 35, + "y_pos": 407 + }, + { + "id": 22229, + "x_pos": 618.5, + "y_pos": -292 + }, + { + "id": 22228, + "x_pos": 620, + "y_pos": -286 + }, + { + "id": 22227, + "x_pos": 623.5, + "y_pos": 67 + }, + { + "id": 22226, + "x_pos": 69.5, + "y_pos": 432 + }, + { + "id": 22225, + "x_pos": -268.5, + "y_pos": 483 + }, + { + "id": 22224, + "x_pos": -279.5, + "y_pos": 482 + }, + { + "id": 22223, + "x_pos": -283, + "y_pos": -402.5 + }, + { + "id": 22222, + "x_pos": -295.5, + "y_pos": -376.5 + }, + { + "id": 22221, + "x_pos": -284.5, + "y_pos": -372 + }, + { + "id": 22220, + "x_pos": -678, + "y_pos": -294 + }, + { + "id": 22219, + "x_pos": -373.5, + "y_pos": -507 + }, + { + "id": 22218, + "x_pos": -453, + "y_pos": -239.5 + }, + { + "id": 22217, + "x_pos": -454.5, + "y_pos": -311 + }, + { + "id": 22216, + "x_pos": -441, + "y_pos": -427.5 + }, + { + "id": 22215, + "x_pos": -406.5, + "y_pos": -475.5 + }, + { + "id": 22214, + "x_pos": -428, + "y_pos": -466 + }, + { + "id": 22213, + "x_pos": -661, + "y_pos": -283.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211206/39d1e832c513b51accb1079f03dafd5d_5415104183670776001.png" + }, + "214": { + "name": "Bathysmal Vishap", + "clear_name": "BathysmalVishap", + "points": [ + { + "id": 22844, + "x_pos": 29.79998779296875, + "y_pos": -581.2066716086556 + }, + { + "id": 22014, + "x_pos": -172.14257296556207, + "y_pos": 590.140216182826 + }, + { + "id": 22013, + "x_pos": -157.43272719923584, + "y_pos": 598.8197852381272 + }, + { + "id": 22012, + "x_pos": -157.4996509841726, + "y_pos": 590.8597838171736 + }, + { + "id": 22011, + "x_pos": 499.51664809226304, + "y_pos": -235.0198808085106 + }, + { + "id": 22010, + "x_pos": 489.01573192571595, + "y_pos": -235.51962150669488 + }, + { + "id": 22009, + "x_pos": 483.515252028953, + "y_pos": -237.5185842994324 + }, + { + "id": 22008, + "x_pos": -470.7140949967388, + "y_pos": -222.71429459987303 + }, + { + "id": 22007, + "x_pos": -362.57146099069496, + "y_pos": -414.500030226586 + }, + { + "id": 22006, + "x_pos": -357.07146099069496, + "y_pos": -411.71429430888315 + }, + { + "id": 22005, + "x_pos": -349, + "y_pos": -410 + }, + { + "id": 22004, + "x_pos": -1383.3573354737152, + "y_pos": 540.7845506929511 + }, + { + "id": 22003, + "x_pos": -1368.285935523502, + "y_pos": 540.4289157048274 + }, + { + "id": 22002, + "x_pos": -1342.4906638266125, + "y_pos": 627.8844556168497 + }, + { + "id": 22001, + "x_pos": -1264.0715220311768, + "y_pos": 663.0020744145249 + }, + { + "id": 22000, + "x_pos": -1231.785966043743, + "y_pos": 715.2866556092276 + }, + { + "id": 21999, + "x_pos": -1227.285206971606, + "y_pos": 700.5103720726256 + }, + { + "id": 21998, + "x_pos": -591.7144440125664, + "y_pos": -372.21547980880064 + }, + { + "id": 21997, + "x_pos": -515.2859050032612, + "y_pos": -360.07527887685023 + }, + { + "id": 21996, + "x_pos": -508.28479691529674, + "y_pos": -381.705092485299 + }, + { + "id": 21995, + "x_pos": 400.1436200130447, + "y_pos": -155.79074343477487 + }, + { + "id": 21994, + "x_pos": 383.00034901582785, + "y_pos": -163.93303403212622 + }, + { + "id": 21993, + "x_pos": 366.5711119748671, + "y_pos": -171.71752372157403 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211220/bd3f46e8c7b4855b41fc5daf90cbf229_8771295920146889964.png" + }, + "229": { + "name": "Specter", + "clear_name": "Specter", + "points": [ + { + "id": 22835, + "x_pos": 402, + "y_pos": -127.45287918928102 + }, + { + "id": 22834, + "x_pos": 399.0500030517578, + "y_pos": -128 + }, + { + "id": 22833, + "x_pos": 401.1999969482422, + "y_pos": -130.0539471655918 + }, + { + "id": 21992, + "x_pos": 361, + "y_pos": 1027 + }, + { + "id": 21991, + "x_pos": 352.5, + "y_pos": 1028 + }, + { + "id": 21990, + "x_pos": 347.5, + "y_pos": 1024.5 + }, + { + "id": 21989, + "x_pos": 352, + "y_pos": 1022 + }, + { + "id": 21988, + "x_pos": 409.5, + "y_pos": 1042 + }, + { + "id": 21987, + "x_pos": 418, + "y_pos": 1045 + }, + { + "id": 21986, + "x_pos": 418, + "y_pos": 1041 + }, + { + "id": 21985, + "x_pos": 410.5, + "y_pos": 1036.5 + }, + { + "id": 21984, + "x_pos": 412.5, + "y_pos": 1007 + }, + { + "id": 21983, + "x_pos": 405.5, + "y_pos": 1007 + }, + { + "id": 21982, + "x_pos": 407.5, + "y_pos": 1002.5 + }, + { + "id": 21981, + "x_pos": 988, + "y_pos": -1042.5 + }, + { + "id": 21980, + "x_pos": 972, + "y_pos": -1036 + }, + { + "id": 21979, + "x_pos": 984, + "y_pos": -1030 + }, + { + "id": 21978, + "x_pos": 964.5, + "y_pos": -994 + }, + { + "id": 21977, + "x_pos": 957.5, + "y_pos": -992.5 + }, + { + "id": 21976, + "x_pos": 961, + "y_pos": -996.5 + }, + { + "id": 21975, + "x_pos": 840.5, + "y_pos": -883 + }, + { + "id": 21974, + "x_pos": 840.5, + "y_pos": -889 + }, + { + "id": 21973, + "x_pos": 845.5, + "y_pos": -885.5 + }, + { + "id": 21972, + "x_pos": 905.5, + "y_pos": -898.5 + }, + { + "id": 21971, + "x_pos": 913, + "y_pos": -898.5 + }, + { + "id": 21970, + "x_pos": 908.5, + "y_pos": -895.5 + }, + { + "id": 21969, + "x_pos": -600, + "y_pos": -1083 + }, + { + "id": 21968, + "x_pos": -618, + "y_pos": -1084.5 + }, + { + "id": 21967, + "x_pos": -609, + "y_pos": -1089.5 + }, + { + "id": 21966, + "x_pos": -609.5, + "y_pos": -1081 + }, + { + "id": 21965, + "x_pos": -615, + "y_pos": -1002 + }, + { + "id": 21964, + "x_pos": -625.5, + "y_pos": -1007 + }, + { + "id": 21963, + "x_pos": -655, + "y_pos": -984.5 + }, + { + "id": 21962, + "x_pos": -659, + "y_pos": -987 + }, + { + "id": 21961, + "x_pos": -647.5, + "y_pos": -1008 + }, + { + "id": 21960, + "x_pos": -633.5, + "y_pos": -1068 + }, + { + "id": 21959, + "x_pos": -644, + "y_pos": -1063.5 + }, + { + "id": 21958, + "x_pos": -637.5, + "y_pos": -1073 + }, + { + "id": 21957, + "x_pos": -623, + "y_pos": -1174 + }, + { + "id": 21956, + "x_pos": -628.5, + "y_pos": -1198 + }, + { + "id": 21955, + "x_pos": -1364, + "y_pos": 236 + }, + { + "id": 21954, + "x_pos": -1362.5, + "y_pos": 229.5 + }, + { + "id": 21953, + "x_pos": -1368, + "y_pos": 232.5 + }, + { + "id": 21952, + "x_pos": -1345.5, + "y_pos": 312 + }, + { + "id": 21951, + "x_pos": -1353, + "y_pos": 308 + }, + { + "id": 21950, + "x_pos": -1347.5, + "y_pos": 310 + }, + { + "id": 21949, + "x_pos": -1355, + "y_pos": 313.5 + }, + { + "id": 21948, + "x_pos": -1406, + "y_pos": 618.5 + }, + { + "id": 21947, + "x_pos": -1416, + "y_pos": 621.5 + }, + { + "id": 21946, + "x_pos": -1426.5, + "y_pos": 637 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/f99326db374b4763bacc10559fe30b0b_8415361503848764488.png" + }, + "53": { + "name": "Hilichurl Chieftain", + "clear_name": "HilichurlChieftain", + "points": [ + { + "id": 22817, + "x_pos": -82.5, + "y_pos": -337.75303393549893 + }, + { + "id": 22061, + "x_pos": 476, + "y_pos": -54 + }, + { + "id": 22060, + "x_pos": -434, + "y_pos": -393 + }, + { + "id": 22059, + "x_pos": -186.5, + "y_pos": 599.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/2869f93c163c622baf8de4239b4ff8d8_6667424314945247883.png" + }, + "24": { + "name": "Abyss Mage", + "clear_name": "AbyssMage", + "points": [ + { + "id": 22815, + "x_pos": -67.30000305175781, + "y_pos": 43.14742267954739 + }, + { + "id": 22082, + "x_pos": -397.10980224609375, + "y_pos": -231.80899047851562 + }, + { + "id": 22081, + "x_pos": -371.4574279785156, + "y_pos": -271.74200439453125 + }, + { + "id": 22080, + "x_pos": -319.4942626953125, + "y_pos": -398.9463424682617 + }, + { + "id": 22079, + "x_pos": -61.1962890625, + "y_pos": -56.96934509277344 + }, + { + "id": 22078, + "x_pos": -114.03170776367188, + "y_pos": -156.78842163085938 + }, + { + "id": 22077, + "x_pos": -2.340118408203125, + "y_pos": 128.0081787109375 + }, + { + "id": 22076, + "x_pos": 112.63885498046875, + "y_pos": -54.602081298828125 + }, + { + "id": 22075, + "x_pos": 117.3714599609375, + "y_pos": -53.7142333984375 + }, + { + "id": 22074, + "x_pos": 421, + "y_pos": -260.69873046875 + }, + { + "id": 22073, + "x_pos": 416.1106872558594, + "y_pos": -65.96856689453125 + }, + { + "id": 22072, + "x_pos": 578.4871826171875, + "y_pos": -5.2733306884765625 + }, + { + "id": 22071, + "x_pos": -331.6618957519531, + "y_pos": 753.1189727783203 + }, + { + "id": 22070, + "x_pos": -243.417724609375, + "y_pos": 506.9113464355469 + }, + { + "id": 22069, + "x_pos": -111.54705810546875, + "y_pos": 570.1362609863281 + }, + { + "id": 22068, + "x_pos": -112.14056396484375, + "y_pos": 566.4097290039062 + }, + { + "id": 22067, + "x_pos": -134, + "y_pos": 517.7312622070312 + }, + { + "id": 22066, + "x_pos": 58.89453125, + "y_pos": 364.73602294921875 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/d2fa99f9123c46cd98de7410adfe1d7a_8479587568669217286.png" + }, + "331": { + "name": "Seal Location V", + "clear_name": "SealLocationV", + "points": [ + { + "id": 22754, + "x_pos": -76, + "y_pos": -173.50151696774947 + }, + { + "id": 22284, + "x_pos": -148.75, + "y_pos": 538 + }, + { + "id": 22283, + "x_pos": 651.1436200130452, + "y_pos": -254.05659389524817 + }, + { + "id": 22282, + "x_pos": 491.0715220311763, + "y_pos": -176.85770940264865 + }, + { + "id": 22281, + "x_pos": 435.8566679623009, + "y_pos": 15.58357653495068 + }, + { + "id": 22280, + "x_pos": -253.35701697812829, + "y_pos": 802.4288547013243 + }, + { + "id": 22279, + "x_pos": -121.57396514196944, + "y_pos": 612.8743352206016 + }, + { + "id": 22278, + "x_pos": -116.85695593764694, + "y_pos": 595.7845354420751 + }, + { + "id": 22277, + "x_pos": -305.71441349232555, + "y_pos": 486.2133748925239 + }, + { + "id": 22276, + "x_pos": -152.71409499673837, + "y_pos": -14.428885203075879 + }, + { + "id": 22275, + "x_pos": -385.1429830218717, + "y_pos": -278.6443040083732 + }, + { + "id": 22274, + "x_pos": -562.619249945597, + "y_pos": -359.7670732446759 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211201/de1a82dbeb747687bb757cf5b061cf92_6121371578983237450.png" + }, + "72": { + "name": "Large Rock Pile", + "clear_name": "LargeRockPile", + "points": [ + { + "id": 22752, + "x_pos": -238.63239379938614, + "y_pos": 23.365086476690976 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/836ae8b9a526ceeb1ebdf0fedb693356_4054736939908165382.png" + }, + "260": { + "name": "Seal Location \u2160", + "clear_name": "SealLocation\u2160", + "points": [ + { + "id": 22750, + "x_pos": -77.10000610351562, + "y_pos": -171.95067576950237 + }, + { + "id": 22250, + "x_pos": -139.25, + "y_pos": 536.25 + }, + { + "id": 22248, + "x_pos": 461.7855559874333, + "y_pos": -176.8577399044002 + }, + { + "id": 22247, + "x_pos": 374.42847796882324, + "y_pos": -107.42888520307588 + }, + { + "id": 22246, + "x_pos": 581.5, + "y_pos": -5.502074414525168 + }, + { + "id": 22245, + "x_pos": 63.49895295251713, + "y_pos": 506.4288547013243 + }, + { + "id": 22244, + "x_pos": 14.928477968823245, + "y_pos": 469.1423210991029 + }, + { + "id": 22243, + "x_pos": -244.57139995021316, + "y_pos": 798 + }, + { + "id": 22242, + "x_pos": -110.71438297208442, + "y_pos": 608.5 + }, + { + "id": 22241, + "x_pos": -228.35946008892142, + "y_pos": 413.4351084466516 + }, + { + "id": 22240, + "x_pos": -234.99895295251736, + "y_pos": 413.2113004779985 + }, + { + "id": 22239, + "x_pos": -153.42853900930527, + "y_pos": -3.7866251074763113 + }, + { + "id": 22238, + "x_pos": -392.42853900930527, + "y_pos": -280.2866251074763 + }, + { + "id": 22237, + "x_pos": -583.3570474983694, + "y_pos": -379.9288852030759 + }, + { + "id": 22236, + "x_pos": -580.4285084890641, + "y_pos": -349.35773990440043 + }, + { + "id": 22235, + "x_pos": -656.1429525016306, + "y_pos": -193.21547980880064 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211201/922a3000b81b3d2ec320a9bdf179027f_2463549724709480969.png" + }, + "116": { + "name": "Crab", + "clear_name": "Crab", + "points": [ + { + "id": 22577, + "x_pos": -1430.5, + "y_pos": 391.5 + }, + { + "id": 22576, + "x_pos": -1426, + "y_pos": 421.5 + }, + { + "id": 22575, + "x_pos": -1439, + "y_pos": 447 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/11307a34068f026989b56c0539fad37f_2196812100248598086.png" + }, + "94": { + "name": "Frog", + "clear_name": "Frog", + "points": [ + { + "id": 22574, + "x_pos": -1328.5, + "y_pos": 318.5 + }, + { + "id": 22573, + "x_pos": -1339, + "y_pos": 347 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/2100d4b4cc447908da0119057bc17ba6_9022240694827521309.png" + }, + "62": { + "name": "Flaming Flower Stamen", + "clear_name": "FlamingFlowerStamen", + "points": [ + { + "id": 22565, + "x_pos": -1376.7718505859375, + "y_pos": 234.96612548828125 + }, + { + "id": 22564, + "x_pos": -1366.072509765625, + "y_pos": 226.73159790039062 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/a04fa1f0d9619196297357a33127095c_7827399238932095762.png" + }, + "52": { + "name": "World Quests", + "clear_name": "WorldQuests", + "points": [ + { + "id": 22376, + "x_pos": -230.92847796882324, + "y_pos": 415.2142637913071 + }, + { + "id": 22375, + "x_pos": 677.0527188034662, + "y_pos": -302.5714649062061 + }, + { + "id": 22374, + "x_pos": 427.1429219813899, + "y_pos": 16.5 + }, + { + "id": 22373, + "x_pos": -119.1254013495577, + "y_pos": 602.0714094726118 + }, + { + "id": 22372, + "x_pos": 470.3570780186101, + "y_pos": -181.85711678236066 + }, + { + "id": 22371, + "x_pos": -576.2855559874338, + "y_pos": -364.8571472999365 + }, + { + "id": 22370, + "x_pos": -439.35701697812874, + "y_pos": -343.785675173541 + }, + { + "id": 22369, + "x_pos": -189.2196182094981, + "y_pos": 392.57140992728364 + }, + { + "id": 22368, + "x_pos": -193.4351703100292, + "y_pos": 392.42858978172626 + }, + { + "id": 22367, + "x_pos": -189.00314114244838, + "y_pos": 389.07144160881944 + }, + { + "id": 22366, + "x_pos": -193.42888802513244, + "y_pos": 389.1428527000635 + }, + { + "id": 22365, + "x_pos": -211, + "y_pos": 119.57147212639552 + }, + { + "id": 22364, + "x_pos": -8.5, + "y_pos": -640.5 + }, + { + "id": 22363, + "x_pos": -14.64292198138969, + "y_pos": -2.857147299936514 + }, + { + "id": 22362, + "x_pos": -8.5, + "y_pos": 1.3571164913705616 + }, + { + "id": 22361, + "x_pos": -15.002443110793138, + "y_pos": 4.214296345813182 + }, + { + "id": 22360, + "x_pos": -925.7186322024972, + "y_pos": 123.99999941802002 + }, + { + "id": 22359, + "x_pos": -1214.1094338754465, + "y_pos": 728.4285909638729 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/5938abaf948c3b2fa47a3ac3938aabf3_4865664785447822197.png" + }, + "64": { + "name": "Time Trial Challenge", + "clear_name": "TimeTrialChallenge", + "points": [ + { + "id": 22351, + "x_pos": 490.5, + "y_pos": -280.4465237430459 + }, + { + "id": 22350, + "x_pos": -728, + "y_pos": -57.5 + }, + { + "id": 22349, + "x_pos": -1182.0999755859375, + "y_pos": 275.42098957634335 + }, + { + "id": 22348, + "x_pos": -1310, + "y_pos": 368.5 + }, + { + "id": 22347, + "x_pos": -1430.1999816894531, + "y_pos": 453.36144263197457 + }, + { + "id": 22346, + "x_pos": -1298.25, + "y_pos": 652.25 + }, + { + "id": 22345, + "x_pos": 97.30001831054688, + "y_pos": 389.99856980909317 + }, + { + "id": 22344, + "x_pos": -178.5, + "y_pos": 477.8071106253974 + }, + { + "id": 22343, + "x_pos": -164.20004272460938, + "y_pos": 419.07346843389314 + }, + { + "id": 22342, + "x_pos": 461.29998779296875, + "y_pos": 73.39487334441878 + }, + { + "id": 22341, + "x_pos": 514.5, + "y_pos": -18.01089758172475 + }, + { + "id": 22340, + "x_pos": -117.79995727539062, + "y_pos": -29.299408101396466 + }, + { + "id": 22339, + "x_pos": -148.4000244140625, + "y_pos": 78.98122112041074 + }, + { + "id": 22338, + "x_pos": 2, + "y_pos": 418.15476479807876 + }, + { + "id": 22337, + "x_pos": 178.5, + "y_pos": 287.7942389072373 + }, + { + "id": 22336, + "x_pos": 97, + "y_pos": -6.927782983150337 + }, + { + "id": 22335, + "x_pos": 108.199951171875, + "y_pos": -104.38932016970762 + }, + { + "id": 22334, + "x_pos": -264.1000061035156, + "y_pos": -231.0014310480051 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/5f0745a1c1812d249a90601c8de54552_2767759384451412130.png" + }, + "18": { + "name": "Seelie", + "clear_name": "Seelie", + "points": [ + { + "id": 22333, + "x_pos": -437.5, + "y_pos": -333.5 + }, + { + "id": 22332, + "x_pos": -472, + "y_pos": -265.5 + }, + { + "id": 22331, + "x_pos": -448, + "y_pos": -340.5 + }, + { + "id": 22330, + "x_pos": -432.5, + "y_pos": -404.5 + }, + { + "id": 22329, + "x_pos": -1384, + "y_pos": 509 + }, + { + "id": 22328, + "x_pos": -154.75, + "y_pos": -2.5 + }, + { + "id": 22327, + "x_pos": 400, + "y_pos": -136.90116854932944 + }, + { + "id": 22326, + "x_pos": 114, + "y_pos": -101.75 + }, + { + "id": 22325, + "x_pos": -49.699981689453125, + "y_pos": -302.1097747760282 + }, + { + "id": 22324, + "x_pos": -78.25, + "y_pos": -203 + }, + { + "id": 22323, + "x_pos": -456.5, + "y_pos": -376.2136271427496 + }, + { + "id": 22322, + "x_pos": -584.5, + "y_pos": -307 + }, + { + "id": 22321, + "x_pos": -597.5, + "y_pos": -289.4742489397406 + }, + { + "id": 22320, + "x_pos": -685.1000061035156, + "y_pos": -236.3022761071486 + }, + { + "id": 22319, + "x_pos": -675.2999877929688, + "y_pos": -86.21860231516803 + }, + { + "id": 22318, + "x_pos": -1138.5999755859375, + "y_pos": 193.19912358800275 + }, + { + "id": 22317, + "x_pos": -1182.4000244140625, + "y_pos": 264.3997078626676 + }, + { + "id": 22316, + "x_pos": -1433.4000244140625, + "y_pos": 364.74345188217194 + }, + { + "id": 22315, + "x_pos": -439.5, + "y_pos": -268.5 + }, + { + "id": 22313, + "x_pos": -312.5, + "y_pos": 782.4971396181863 + }, + { + "id": 22312, + "x_pos": -112.20001220703125, + "y_pos": 564.4985698090932 + }, + { + "id": 22311, + "x_pos": -196.39999389648438, + "y_pos": 539.5493339623422 + }, + { + "id": 22310, + "x_pos": -231, + "y_pos": 494.27671906863 + }, + { + "id": 22309, + "x_pos": -312.5999755859375, + "y_pos": 433.7132848429005 + }, + { + "id": 22308, + "x_pos": -134.60000610351562, + "y_pos": 468.3997078626676 + }, + { + "id": 22307, + "x_pos": -120.20001220703125, + "y_pos": 376.1853656244648 + }, + { + "id": 22306, + "x_pos": 621.199951171875, + "y_pos": 145.699154083758 + }, + { + "id": 22305, + "x_pos": 510.20001220703125, + "y_pos": 35.5 + }, + { + "id": 22304, + "x_pos": 517.7999877929688, + "y_pos": 1.5974317555189828 + }, + { + "id": 22303, + "x_pos": 415.1999816894531, + "y_pos": 52.29798553442856 + }, + { + "id": 22302, + "x_pos": 410.8999938964844, + "y_pos": -30.25297264056144 + }, + { + "id": 22301, + "x_pos": 376.5, + "y_pos": -106.30087641199702 + }, + { + "id": 22300, + "x_pos": 473.79998779296875, + "y_pos": -127.40113805357441 + }, + { + "id": 22299, + "x_pos": 392.9999694824219, + "y_pos": -185.40256824448102 + }, + { + "id": 22298, + "x_pos": 387.6000061035156, + "y_pos": -169.20205835870524 + }, + { + "id": 22297, + "x_pos": -226.5, + "y_pos": -49.5 + }, + { + "id": 22296, + "x_pos": -40.400054931640625, + "y_pos": 395.8152586432748 + }, + { + "id": 22295, + "x_pos": 28.699981689453125, + "y_pos": 522.9236155338995 + }, + { + "id": 22294, + "x_pos": -70.75, + "y_pos": -145.75 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8de3558f991ac422463712dd095278b3_109842752079072307.png" + }, + "332": { + "name": "Seal Location III", + "clear_name": "SealLocationIII", + "points": [ + { + "id": 22293, + "x_pos": 68.75, + "y_pos": -86.25 + }, + { + "id": 22291, + "x_pos": 87.14152591807942, + "y_pos": -668.5000604531717 + }, + { + "id": 22290, + "x_pos": 661.7144440125667, + "y_pos": -249.8577399044002 + }, + { + "id": 22289, + "x_pos": -247.92853900930504, + "y_pos": 801.8556654898753 + }, + { + "id": 22288, + "x_pos": 7.773052458122947, + "y_pos": 469.5794124550248 + }, + { + "id": 22287, + "x_pos": 4.5, + "y_pos": 461.92679553767493 + }, + { + "id": 22286, + "x_pos": -302.2856170279151, + "y_pos": 492.71340539427547 + }, + { + "id": 22285, + "x_pos": -149.28765008239907, + "y_pos": -48.28247627842575 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211202/84b9f74ebba59cc0df0c294378fb60b3_7222261942729453870.png" + }, + "330": { + "name": "Seal Location IV", + "clear_name": "SealLocationIV", + "points": [ + { + "id": 22273, + "x_pos": -142.5, + "y_pos": 538.5 + }, + { + "id": 22272, + "x_pos": 82.21444401256667, + "y_pos": -674 + }, + { + "id": 22271, + "x_pos": 462.57146099069496, + "y_pos": -187.2866098566003 + }, + { + "id": 22270, + "x_pos": 480.9983159613439, + "y_pos": -184.91849787957426 + }, + { + "id": 22269, + "x_pos": 377.7113028701183, + "y_pos": -105.41227463599898 + }, + { + "id": 22268, + "x_pos": 439.1429525016306, + "y_pos": 18.64224484472379 + }, + { + "id": 22267, + "x_pos": -125.14292198138946, + "y_pos": 593 + }, + { + "id": 22266, + "x_pos": -307.0693668957292, + "y_pos": 491.0897997785264 + }, + { + "id": 22265, + "x_pos": -235.07501218945208, + "y_pos": 415.58148686954974 + }, + { + "id": 22264, + "x_pos": -228.85812506609318, + "y_pos": 416.0815173713013 + }, + { + "id": 22263, + "x_pos": -150.71409499673882, + "y_pos": -37.1423210991029 + }, + { + "id": 22262, + "x_pos": -375, + "y_pos": -254.2155103105522 + }, + { + "id": 22261, + "x_pos": -567.3570169781283, + "y_pos": -375.64433451012474 + }, + { + "id": 22260, + "x_pos": -639.7897441773648, + "y_pos": -204.97985580869317 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211201/3aee1116cc872126126027f019954bf2_7812133343549270588.png" + }, + "321": { + "name": "Seal Location II", + "clear_name": "SealLocationII", + "points": [ + { + "id": 22259, + "x_pos": 74.5, + "y_pos": -82.25 + }, + { + "id": 22258, + "x_pos": 658.928539009305, + "y_pos": -256.2154798088004 + }, + { + "id": 22257, + "x_pos": 477.9285390093055, + "y_pos": -168.71544930704886 + }, + { + "id": 22256, + "x_pos": 372.572220062832, + "y_pos": -102.07111479692412 + }, + { + "id": 22255, + "x_pos": 580.6422239497347, + "y_pos": -9.203002819898074 + }, + { + "id": 22254, + "x_pos": 63.28101878167513, + "y_pos": 499.99585117094966 + }, + { + "id": 22253, + "x_pos": -132.57146099069496, + "y_pos": 601.213435896027 + }, + { + "id": 22252, + "x_pos": -151.3591721135756, + "y_pos": -25.504148829050337 + }, + { + "id": 22251, + "x_pos": -591.985035946393, + "y_pos": -366.0192620592329 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211201/d5f77cf10162434a4aa7f8d96420ff54_1887457382905447122.png" + }, + "336": { + "name": "Divda Ray", + "clear_name": "DivdaRay", + "points": [ + { + "id": 22156, + "x_pos": -280.1999969482422, + "y_pos": 450.1973872194749 + }, + { + "id": 22155, + "x_pos": -174, + "y_pos": 422.5 + }, + { + "id": 22154, + "x_pos": -1176, + "y_pos": 780 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211207/a3d2b791c05224ce809d9b0f897952b1_5112044802316103474.png" + }, + "335": { + "name": "Formalo Ray", + "clear_name": "FormaloRay", + "points": [ + { + "id": 22153, + "x_pos": -283.1000061035156, + "y_pos": 450.19805638043545 + }, + { + "id": 22152, + "x_pos": -176, + "y_pos": 423.5 + }, + { + "id": 22151, + "x_pos": -1180.5, + "y_pos": 779.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211207/c3aa9182b46dfda171a19e1c9f50af7d_1245008060586682184.png" + }, + "261": { + "name": "Fishing Point", + "clear_name": "FishingPoint", + "points": [ + { + "id": 22150, + "x_pos": -177.54998779296875, + "y_pos": 424.3029473610054 + }, + { + "id": 22149, + "x_pos": -281.6343295402214, + "y_pos": 448.53655489995754 + }, + { + "id": 22148, + "x_pos": -1177, + "y_pos": 777.1000343726919 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/052bbb288d4f3245166908367aa8ccd8_465260317346550977.png" + }, + "333": { + "name": "Bathysmal Vishap Herd", + "clear_name": "BathysmalVishapHerd", + "points": [ + { + "id": 22093, + "x_pos": -46.35736599395614, + "y_pos": -17 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/0d7fe8f319459a12e082eb96ab06060e_5630470111967973966.png" + }, + "337": { + "name": "Abyss Herald", + "clear_name": "AbyssHerald", + "points": [ + { + "id": 22065, + "x_pos": -148.5, + "y_pos": -20.5 + }, + { + "id": 22064, + "x_pos": -181.5, + "y_pos": 757.5 + }, + { + "id": 22063, + "x_pos": 47.5, + "y_pos": 498 + }, + { + "id": 22062, + "x_pos": -302.5, + "y_pos": 415 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211220/2f65ec2b056435291f0e36dbd9034eef_859534947571588850.png" + }, + "150": { + "name": "Ruin Grader", + "clear_name": "RuinGrader", + "points": [ + { + "id": 22030, + "x_pos": 627.1999816894531, + "y_pos": -230.81828782294588 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/a90a60e07a1a942bf89fbb071efacf78_6801467019841823806.png" + }, + "28": { + "name": "Ruin Hunter", + "clear_name": "RuinHunter", + "points": [ + { + "id": 22029, + "x_pos": 143.69998168945312, + "y_pos": 327.70353889726266 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/b831b1f949e45bbaadea4f2df12b2018_6403429362889945695.png" + }, + "292": { + "name": "Golden Loach", + "clear_name": "GoldenLoach", + "points": [ + { + "id": 21794, + "x_pos": -464, + "y_pos": -267 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/9365968ae710394131f2ba33ae9103cd_6357176062164449470.png" + }, + "227": { + "name": "Sango Pearl", + "clear_name": "SangoPearl", + "points": [ + { + "id": 21791, + "x_pos": -1281.7000427246094, + "y_pos": 411.24252199468174 + }, + { + "id": 21790, + "x_pos": -1260.2000427246094, + "y_pos": 397.2533880046385 + }, + { + "id": 21789, + "x_pos": -1241.7000427246094, + "y_pos": 393.7561045071275 + }, + { + "id": 21788, + "x_pos": -1241.4000244140625, + "y_pos": 424.1325188908181 + }, + { + "id": 21787, + "x_pos": -1260.4000244140625, + "y_pos": 451.1115630144732 + }, + { + "id": 21786, + "x_pos": -1204.3000183105469, + "y_pos": 756.2652394410015 + }, + { + "id": 21785, + "x_pos": -1206.8000183105469, + "y_pos": 778.2481642824982 + }, + { + "id": 21784, + "x_pos": -1174.3000183105469, + "y_pos": 793.2365221289733 + }, + { + "id": 21783, + "x_pos": -1159.7000122070312, + "y_pos": 761.2613434762138 + }, + { + "id": 21782, + "x_pos": -1171.7000122070312, + "y_pos": 752.7679406965444 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/58ff5b695da772c331b7273998e531fc_692372653778779380.png" + }, + "46": { + "name": "Luxurious\u00a0Chest", + "clear_name": "LuxuriousChest", + "points": [ + { + "id": 21739, + "x_pos": -278, + "y_pos": 819 + }, + { + "id": 21738, + "x_pos": -44, + "y_pos": 427.5 + }, + { + "id": 21737, + "x_pos": 20.5, + "y_pos": 452.5 + }, + { + "id": 21736, + "x_pos": 668.5, + "y_pos": -304 + }, + { + "id": 21735, + "x_pos": 422.5, + "y_pos": -142 + }, + { + "id": 21734, + "x_pos": -418, + "y_pos": -315 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/3c110f9d0de63330f592ba922952d776_784803524970068534.png" + }, + "320": { + "name": "Key Sigil I", + "clear_name": "KeySigilI", + "points": [ + { + "id": 21653, + "x_pos": 717.8570169781287, + "y_pos": -307 + }, + { + "id": 21652, + "x_pos": 378.92850848906437, + "y_pos": -93.28653360222143 + }, + { + "id": 21651, + "x_pos": 516, + "y_pos": 91.28455069295114 + }, + { + "id": 21650, + "x_pos": -157, + "y_pos": 757.9268107885509 + }, + { + "id": 21649, + "x_pos": 59.35771500978353, + "y_pos": 430.07944295677635 + }, + { + "id": 21648, + "x_pos": -168.8570474983694, + "y_pos": 593 + }, + { + "id": 21647, + "x_pos": 122.78660303491642, + "y_pos": 81.85770940264865 + }, + { + "id": 21646, + "x_pos": -89.57152203117676, + "y_pos": 106.1422600955998 + }, + { + "id": 21645, + "x_pos": -56.28584396277938, + "y_pos": 58.71340539427547 + }, + { + "id": 21644, + "x_pos": -102.42847796882324, + "y_pos": -65.85775515527598 + }, + { + "id": 21643, + "x_pos": -430.9767031935096, + "y_pos": -409.10302670062765 + }, + { + "id": 21642, + "x_pos": -489.92860004978684, + "y_pos": -357.57320446232507 + }, + { + "id": 21641, + "x_pos": -347.1429219813897, + "y_pos": -239.7866251074763 + }, + { + "id": 21640, + "x_pos": -741.4288269846509, + "y_pos": -205.92885470132433 + }, + { + "id": 21639, + "x_pos": -762.1436200130449, + "y_pos": -87.42681078855071 + }, + { + "id": 21638, + "x_pos": -649.714033956257, + "y_pos": -9.428824199572773 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/ddd2dc96f243547f0fd3a15c5d712efc_2654094039110376569.png" + }, + "328": { + "name": "Key Sigil V", + "clear_name": "KeySigilV", + "points": [ + { + "id": 21637, + "x_pos": -448.57143047045383, + "y_pos": -331.57138057366797 + }, + { + "id": 21636, + "x_pos": 833.5, + "y_pos": -904.7865946057246 + }, + { + "id": 21635, + "x_pos": 419.2143829720844, + "y_pos": -66.28659460572453 + }, + { + "id": 21634, + "x_pos": 511.57146099069496, + "y_pos": 34.28452019119936 + }, + { + "id": 21633, + "x_pos": 501.14298302187126, + "y_pos": 77.57111479692412 + }, + { + "id": 21632, + "x_pos": -1.857016978128513, + "y_pos": 393.5 + }, + { + "id": 21631, + "x_pos": 50.64292198138969, + "y_pos": 564.2133748925239 + }, + { + "id": 21630, + "x_pos": -229.8570474983694, + "y_pos": 627.2845201911996 + }, + { + "id": 21629, + "x_pos": -162.8570474983694, + "y_pos": 107.21337489252369 + }, + { + "id": 21628, + "x_pos": -40.85707801861031, + "y_pos": -63.64433451012496 + }, + { + "id": 21627, + "x_pos": -282.92853900930504, + "y_pos": -289.7154798088004 + }, + { + "id": 21626, + "x_pos": -434.6429219813897, + "y_pos": -247.64433451012496 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/4b3fa022a826fc7ba6b66dc85a16ef47_6966141869328567696.png" + }, + "327": { + "name": "Key Sigil IV", + "clear_name": "KeySigilIV", + "points": [ + { + "id": 21625, + "x_pos": 68.5, + "y_pos": -623 + }, + { + "id": 21624, + "x_pos": -592.928539009305, + "y_pos": -1079.4288547013243 + }, + { + "id": 21623, + "x_pos": 621.6429830218713, + "y_pos": -275.85772465352443 + }, + { + "id": 21622, + "x_pos": 419.5, + "y_pos": -133.4309291158495 + }, + { + "id": 21621, + "x_pos": 576.571460990695, + "y_pos": 82.9267497850476 + }, + { + "id": 21620, + "x_pos": 653.6429830218713, + "y_pos": 72.78452019119936 + }, + { + "id": 21619, + "x_pos": -233, + "y_pos": 796.5 + }, + { + "id": 21618, + "x_pos": 199.07146099069496, + "y_pos": 295.71340539427547 + }, + { + "id": 21617, + "x_pos": -14.428539009305041, + "y_pos": 472.0711452986757 + }, + { + "id": 21616, + "x_pos": -256, + "y_pos": 494.21340539427547 + }, + { + "id": 21615, + "x_pos": -252.8570474983694, + "y_pos": 451 + }, + { + "id": 21614, + "x_pos": 110.57146099069496, + "y_pos": 13.071130047799898 + }, + { + "id": 21613, + "x_pos": -321.3570780186103, + "y_pos": -447.21547980880064 + }, + { + "id": 21612, + "x_pos": -674.3570169781285, + "y_pos": -239 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/3d7cef1f80607527693e4dc8fa38f1b9_5841782470736252325.png" + }, + "326": { + "name": "Key Sigil III", + "clear_name": "KeySigilIII", + "points": [ + { + "id": 21611, + "x_pos": 157.5, + "y_pos": -629.5 + }, + { + "id": 21610, + "x_pos": 419.07152203117676, + "y_pos": 1111.713374892524 + }, + { + "id": 21609, + "x_pos": -618.8570780186103, + "y_pos": -1040.7865946057245 + }, + { + "id": 21608, + "x_pos": 493.5714609906945, + "y_pos": -200.21547980880064 + }, + { + "id": 21607, + "x_pos": -313.92853900930527, + "y_pos": 403.21340539427547 + }, + { + "id": 21606, + "x_pos": -237.8570169781285, + "y_pos": 23.071175800427227 + }, + { + "id": 21605, + "x_pos": -290.07152203117676, + "y_pos": -359.213435896027 + }, + { + "id": 21604, + "x_pos": -459.5, + "y_pos": -414 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/9f2f244ef9eb24e6d89236411b8e6df5_4587229791652196245.png" + }, + "325": { + "name": "Key Sigil II", + "clear_name": "KeySigilII", + "points": [ + { + "id": 21603, + "x_pos": -150, + "y_pos": 372.4288852030759 + }, + { + "id": 21602, + "x_pos": 370.2855559874338, + "y_pos": 1008.2134053942755 + }, + { + "id": 21601, + "x_pos": 988.8874249821056, + "y_pos": -1006.8350103203747 + }, + { + "id": 21600, + "x_pos": 527.4284779688232, + "y_pos": -274.57320446232507 + }, + { + "id": 21599, + "x_pos": -100.42847796882347, + "y_pos": 485.6422600955998 + }, + { + "id": 21598, + "x_pos": 24, + "y_pos": 77.1422600955998 + }, + { + "id": 21597, + "x_pos": -97.39548717314642, + "y_pos": -170.90635391736282 + }, + { + "id": 21596, + "x_pos": -427.5, + "y_pos": -403.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/91fa09da2a38b968ff86d9d9d589edcb_657893017913539284.png" + }, + "3": { + "name": "Teleport Waypoint", + "clear_name": "TeleportWaypoint", + "points": [ + { + "id": 21594, + "x_pos": 889.8559699306456, + "y_pos": -803.7845201911994 + }, + { + "id": 21593, + "x_pos": -662.8577760502653, + "y_pos": -1235.21133097975 + }, + { + "id": 21592, + "x_pos": 242, + "y_pos": 1063.5 + }, + { + "id": 21591, + "x_pos": 605.2144440125662, + "y_pos": -306.6422600955998 + }, + { + "id": 21590, + "x_pos": 334.92853900930504, + "y_pos": -196.14226009560002 + }, + { + "id": 21589, + "x_pos": 505.85701697812874, + "y_pos": -152.9288852030761 + }, + { + "id": 21588, + "x_pos": 569.714033956257, + "y_pos": 38.786609856600535 + }, + { + "id": 21587, + "x_pos": -277.69813182939333, + "y_pos": 807.4834479069223 + }, + { + "id": 21586, + "x_pos": 174.07146099069496, + "y_pos": 370.5690403823987 + }, + { + "id": 21585, + "x_pos": 3.1429219813896907, + "y_pos": 459.85770940264865 + }, + { + "id": 21584, + "x_pos": -187.78587448302028, + "y_pos": 608.286564103973 + }, + { + "id": 21583, + "x_pos": -253.42891854537356, + "y_pos": 390.78659460572453 + }, + { + "id": 21582, + "x_pos": -172.07143047045383, + "y_pos": 166.07114529867567 + }, + { + "id": 21581, + "x_pos": 99.78555598743378, + "y_pos": 14.5 + }, + { + "id": 21580, + "x_pos": -92.92847796882324, + "y_pos": -5.5 + }, + { + "id": 21579, + "x_pos": -179.71441349232555, + "y_pos": -101.85566548987526 + }, + { + "id": 21578, + "x_pos": -86.35742703443793, + "y_pos": -151.78659460572453 + }, + { + "id": 21577, + "x_pos": -433.2130479492562, + "y_pos": -355.2948922638252 + }, + { + "id": 21576, + "x_pos": -522.7854949469518, + "y_pos": -201.42882419957277 + }, + { + "id": 21575, + "x_pos": -656.4285084890644, + "y_pos": -293.85566548987526 + }, + { + "id": 21574, + "x_pos": -648.6429219813897, + "y_pos": -67.28452019119959 + }, + { + "id": 21573, + "x_pos": -927.0714609906948, + "y_pos": 135.21334439077236 + }, + { + "id": 21572, + "x_pos": -1379.35707801861, + "y_pos": 382.6422600955998 + }, + { + "id": 21571, + "x_pos": -1204.857427034438, + "y_pos": 730.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220401/0cc42d15134cbb724304050fd0bbcaac_8799482478853097434.png" + } + }, + "categories": [ + { + "id": 1, + "name": "Waypoints", + "children": [ + 2, + 3, + 154, + 158, + 190, + 192, + 316, + 319, + 338, + 340 + ] + }, + { + "id": 13, + "name": "Open-World Chests", + "children": [ + 17, + 44, + 45, + 46, + 269 + ] + }, + { + "id": 4, + "name": "Oculi", + "children": [ + 5, + 6, + 141, + 182, + 194, + 320, + 325, + 326, + 327, + 328, + 357 + ] + }, + { + "id": 14, + "name": "Puzzles", + "children": [ + 18, + 148, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 79, + 83, + 155, + 156, + 159, + 258, + 259, + 191, + 193, + 205, + 216, + 230, + 231, + 264, + 260, + 321, + 332, + 330, + 331, + 341, + 346, + 349, + 353, + 354 + ] + }, + { + "id": 50, + "name": "Enemies (Common)", + "children": [ + 55, + 57, + 58, + 56, + 59, + 209, + 229, + 54, + 47, + 48, + 213, + 345, + 221, + 222 + ] + }, + { + "id": 12, + "name": "Enemies (Elite)", + "children": [ + 149, + 19, + 20, + 21, + 255, + 24, + 22, + 23, + 25, + 26, + 215, + 150, + 27, + 28, + 49, + 169, + 152, + 53, + 151, + 257, + 206, + 207, + 210, + 265, + 337, + 214, + 344 + ] + }, + { + "id": 131, + "name": "Enemies (Boss)", + "children": [ + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 157, + 181, + 183, + 203, + 204, + 262, + 263, + 318, + 333, + 352 + ] + }, + { + "id": 10, + "name": "Local Specialties", + "children": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 78, + 185, + 196, + 197, + 198, + 199, + 211, + 227, + 228, + 266 + ] + }, + { + "id": 60, + "name": "Materials", + "children": [ + 61, + 62, + 63, + 81, + 82, + 90, + 91, + 92, + 93, + 94, + 115, + 116, + 121, + 122, + 123, + 124, + 125, + 126, + 140, + 153, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 195, + 200, + 201, + 254, + 342, + 343, + 355, + 356, + 184 + ] + }, + { + "id": 273, + "name": "Animals", + "children": [ + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 339, + 348, + 350, + 351 + ] + }, + { + "id": 143, + "name": "Guide", + "children": [ + 208, + 253, + 267, + 268, + 144, + 145, + 146, + 147, + 322, + 323, + 324, + 334, + 347, + 358 + ] + }, + { + "id": 7, + "name": "Shrines of Depths", + "children": [ + 8, + 9, + 212 + ] + }, + { + "id": 232, + "name": "Fishing", + "children": [ + 261, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 335, + 336 + ] + }, + { + "id": 11, + "name": "Ores", + "children": [ + 15, + 16, + 80, + 139, + 142, + 172, + 202 + ] + }, + { + "id": 86, + "name": "Enemies (Easter Egg)", + "children": [ + 87 + ] + }, + { + "id": 84, + "name": "Geography", + "children": [ + 85 + ] + }, + { + "id": 88, + "name": "Events", + "children": [] + }, + { + "id": 51, + "name": "World Quests", + "children": [ + 52 + ] + }, + { + "id": 110, + "name": "Books/Recipes", + "children": [ + 111, + 112 + ] + }, + { + "id": 113, + "name": "Investigation", + "children": [ + 114, + 127, + 128, + 129, + 130, + 256, + 223, + 224, + 329, + 359 + ] + }, + { + "id": 170, + "name": "NPC", + "children": [ + 171, + 225, + 226, + 270 + ] + }, + { + "id": 173, + "name": "Wood", + "children": [ + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 217, + 218, + 219, + 220 + ] + }, + { + "id": 186, + "name": "Puzzle Chest", + "children": [ + 187, + 188, + 189 + ] + } + ] +} \ No newline at end of file diff --git a/cheat-library/res/map_teyvat.json b/cheat-library/res/map_teyvat.json new file mode 100644 index 0000000..4128b79 --- /dev/null +++ b/cheat-library/res/map_teyvat.json @@ -0,0 +1,106753 @@ +{ + "labels": { + "177": { + "name": "Sandbearer Wood", + "clear_name": "SandbearerWood", + "points": [ + { + "id": 26614, + "x_pos": -2219, + "y_pos": 1270.5 + }, + { + "id": 26613, + "x_pos": -2249.5, + "y_pos": 1294 + }, + { + "id": 26612, + "x_pos": -2261, + "y_pos": 1299.5 + }, + { + "id": 26611, + "x_pos": -2547, + "y_pos": 1300.5 + }, + { + "id": 26610, + "x_pos": -2553, + "y_pos": 1307.5 + }, + { + "id": 26609, + "x_pos": -2551, + "y_pos": 1311 + }, + { + "id": 26608, + "x_pos": -2558.5, + "y_pos": 1328.5 + }, + { + "id": 26607, + "x_pos": -2495.5, + "y_pos": 1348 + }, + { + "id": 26606, + "x_pos": -2313, + "y_pos": 1352.5 + }, + { + "id": 26605, + "x_pos": -2251.5, + "y_pos": 1195.5 + }, + { + "id": 26604, + "x_pos": -2250.5, + "y_pos": 1205.5 + }, + { + "id": 26603, + "x_pos": -2305, + "y_pos": 1256 + }, + { + "id": 26602, + "x_pos": -2384.5, + "y_pos": 1184 + }, + { + "id": 26601, + "x_pos": -2394, + "y_pos": 1174.5 + }, + { + "id": 26600, + "x_pos": -2403, + "y_pos": 1168.5 + }, + { + "id": 26599, + "x_pos": -2380.5, + "y_pos": 1157.5 + }, + { + "id": 26598, + "x_pos": -2332, + "y_pos": 1119.5 + }, + { + "id": 26597, + "x_pos": -2391, + "y_pos": 1124.5 + }, + { + "id": 26596, + "x_pos": -2420.5, + "y_pos": 1248 + }, + { + "id": 26595, + "x_pos": -2443.5, + "y_pos": 1178 + }, + { + "id": 26594, + "x_pos": -2104.5, + "y_pos": 1008 + }, + { + "id": 26593, + "x_pos": -2101.5, + "y_pos": 1032.5 + }, + { + "id": 26592, + "x_pos": -2154, + "y_pos": 1025.5 + }, + { + "id": 26591, + "x_pos": -2144.5, + "y_pos": 1017 + }, + { + "id": 26590, + "x_pos": -2136.5, + "y_pos": 1023.5 + }, + { + "id": 26589, + "x_pos": -2126.5, + "y_pos": 1027.5 + }, + { + "id": 26588, + "x_pos": -2123, + "y_pos": 1088.5 + }, + { + "id": 26587, + "x_pos": -2141.5, + "y_pos": 1052.5 + }, + { + "id": 26586, + "x_pos": -2170.5, + "y_pos": 1077.5 + }, + { + "id": 26585, + "x_pos": -2180.5, + "y_pos": 1115 + }, + { + "id": 26584, + "x_pos": -2212.5, + "y_pos": 1095 + }, + { + "id": 26583, + "x_pos": -2242.5, + "y_pos": 1094.5 + }, + { + "id": 26582, + "x_pos": -2352.5, + "y_pos": 1040.5 + }, + { + "id": 26581, + "x_pos": -2361, + "y_pos": 1053 + }, + { + "id": 26580, + "x_pos": -2353.5, + "y_pos": 1058.5 + }, + { + "id": 26579, + "x_pos": -2293, + "y_pos": 1052.5 + }, + { + "id": 26578, + "x_pos": -2105, + "y_pos": 984 + }, + { + "id": 26577, + "x_pos": -1884.5, + "y_pos": 896.5 + }, + { + "id": 26576, + "x_pos": -1964, + "y_pos": 913 + }, + { + "id": 26575, + "x_pos": -1971.5, + "y_pos": 913.5 + }, + { + "id": 26574, + "x_pos": -2000.5, + "y_pos": 900 + }, + { + "id": 26352, + "x_pos": -2126.8871472776354, + "y_pos": 2573.6320936162065 + }, + { + "id": 26349, + "x_pos": -2387, + "y_pos": 3220.5 + }, + { + "id": 26348, + "x_pos": -2338, + "y_pos": 3178 + }, + { + "id": 26347, + "x_pos": -2490, + "y_pos": 3192.5 + }, + { + "id": 26346, + "x_pos": -2520.5, + "y_pos": 3205.5 + }, + { + "id": 26345, + "x_pos": -2523.5, + "y_pos": 3202 + }, + { + "id": 26344, + "x_pos": -2548, + "y_pos": 3205.5 + }, + { + "id": 26343, + "x_pos": -2500.5, + "y_pos": 3302 + }, + { + "id": 26342, + "x_pos": -2528.5, + "y_pos": 3326 + }, + { + "id": 26341, + "x_pos": -2562.5, + "y_pos": 3315.5 + }, + { + "id": 26340, + "x_pos": -2557.5, + "y_pos": 3247 + }, + { + "id": 26339, + "x_pos": -2646.5, + "y_pos": 3242.5 + }, + { + "id": 26338, + "x_pos": -2683, + "y_pos": 3218 + }, + { + "id": 26337, + "x_pos": -2722.5, + "y_pos": 3202.5 + }, + { + "id": 26336, + "x_pos": -2533.5, + "y_pos": 3145.5 + }, + { + "id": 26335, + "x_pos": -2625, + "y_pos": 3114.5 + }, + { + "id": 26334, + "x_pos": -2668.5, + "y_pos": 3120.5 + }, + { + "id": 26333, + "x_pos": -2715.5, + "y_pos": 3150.5 + }, + { + "id": 26332, + "x_pos": -2740, + "y_pos": 3089 + }, + { + "id": 26331, + "x_pos": -2645.5, + "y_pos": 3064 + }, + { + "id": 26330, + "x_pos": -2574, + "y_pos": 3068 + }, + { + "id": 26329, + "x_pos": -2541, + "y_pos": 3045.5 + }, + { + "id": 26328, + "x_pos": -2519, + "y_pos": 2985.5 + }, + { + "id": 26327, + "x_pos": -2584.5, + "y_pos": 2979 + }, + { + "id": 26326, + "x_pos": -2580, + "y_pos": 2977.5 + }, + { + "id": 26325, + "x_pos": -2717, + "y_pos": 2990 + }, + { + "id": 26324, + "x_pos": -2684.5, + "y_pos": 2930 + }, + { + "id": 26323, + "x_pos": -2729, + "y_pos": 2953 + }, + { + "id": 26322, + "x_pos": -2734, + "y_pos": 2938 + }, + { + "id": 26321, + "x_pos": -2740.5, + "y_pos": 2924.5 + }, + { + "id": 26320, + "x_pos": -2678.5, + "y_pos": 2855.5 + }, + { + "id": 26319, + "x_pos": -2652, + "y_pos": 2836.5 + }, + { + "id": 26318, + "x_pos": -2626, + "y_pos": 2927 + }, + { + "id": 26317, + "x_pos": -2513, + "y_pos": 2922.5 + }, + { + "id": 26316, + "x_pos": -2538, + "y_pos": 2926 + }, + { + "id": 26315, + "x_pos": -2553.5, + "y_pos": 2922.5 + }, + { + "id": 26314, + "x_pos": -2585.5, + "y_pos": 2925 + }, + { + "id": 26313, + "x_pos": -2581, + "y_pos": 2903 + }, + { + "id": 26312, + "x_pos": -2586, + "y_pos": 2883 + }, + { + "id": 26311, + "x_pos": -2507, + "y_pos": 2881.5 + }, + { + "id": 26310, + "x_pos": -2570.5, + "y_pos": 2848 + }, + { + "id": 26309, + "x_pos": -2546.5, + "y_pos": 2784.5 + }, + { + "id": 26308, + "x_pos": -2487.5, + "y_pos": 2828.5 + }, + { + "id": 26307, + "x_pos": -2405, + "y_pos": 3048 + }, + { + "id": 26306, + "x_pos": -2453, + "y_pos": 3018 + }, + { + "id": 26305, + "x_pos": -2452, + "y_pos": 3076.5 + }, + { + "id": 26304, + "x_pos": -2462.5, + "y_pos": 3105 + }, + { + "id": 26303, + "x_pos": -2451, + "y_pos": 3137 + }, + { + "id": 26302, + "x_pos": -2372.5, + "y_pos": 3163 + }, + { + "id": 26301, + "x_pos": -2322.5, + "y_pos": 3133.5 + }, + { + "id": 26300, + "x_pos": -2317, + "y_pos": 3069 + }, + { + "id": 26299, + "x_pos": -2324, + "y_pos": 2986.5 + }, + { + "id": 26298, + "x_pos": -2376.5, + "y_pos": 2987.5 + }, + { + "id": 26297, + "x_pos": -2196, + "y_pos": 2999.5 + }, + { + "id": 26296, + "x_pos": -2227, + "y_pos": 3015 + }, + { + "id": 26295, + "x_pos": -2293, + "y_pos": 2968.5 + }, + { + "id": 26294, + "x_pos": -2347, + "y_pos": 2942.5 + }, + { + "id": 26293, + "x_pos": -2289, + "y_pos": 2941.5 + }, + { + "id": 26292, + "x_pos": -2274.5, + "y_pos": 2898 + }, + { + "id": 26291, + "x_pos": -2315.5, + "y_pos": 2905 + }, + { + "id": 26290, + "x_pos": -2379, + "y_pos": 2812.5 + }, + { + "id": 26289, + "x_pos": -2402.5, + "y_pos": 2804.5 + }, + { + "id": 26288, + "x_pos": -2182, + "y_pos": 2865 + }, + { + "id": 26287, + "x_pos": -2170, + "y_pos": 2825 + }, + { + "id": 26286, + "x_pos": -2208, + "y_pos": 2796 + }, + { + "id": 26261, + "x_pos": -2434.1079655942963, + "y_pos": 2659.642402186596 + }, + { + "id": 26260, + "x_pos": -2454.1078757459927, + "y_pos": 2654.6450321115417 + }, + { + "id": 26259, + "x_pos": -2476.1077769128588, + "y_pos": 2663.640298246639 + }, + { + "id": 26258, + "x_pos": -2454.607873499785, + "y_pos": 2627.159496698744 + }, + { + "id": 26257, + "x_pos": -2429.6079858101643, + "y_pos": 2621.6623896161846 + }, + { + "id": 26256, + "x_pos": -2403.608102612959, + "y_pos": 2571.6886888656445 + }, + { + "id": 26255, + "x_pos": -2131.609324549887, + "y_pos": 2735.602427327418 + }, + { + "id": 26254, + "x_pos": -2169.109156084318, + "y_pos": 2723.109002139782 + }, + { + "id": 26253, + "x_pos": -2122.109367227831, + "y_pos": 2647.1489769989603 + }, + { + "id": 26252, + "x_pos": -2151.109236947791, + "y_pos": 2679.631882486812 + }, + { + "id": 26251, + "x_pos": -2313.1085091765326, + "y_pos": 2680.1316194943174 + }, + { + "id": 26250, + "x_pos": -2193.109048266354, + "y_pos": 2635.1552888188307 + }, + { + "id": 26249, + "x_pos": -2186.10907971326, + "y_pos": 2620.163178593669 + }, + { + "id": 26248, + "x_pos": -2243.108823645595, + "y_pos": 2645.6497659764445 + }, + { + "id": 26247, + "x_pos": -2276.1086753958944, + "y_pos": 2632.1568667737984 + }, + { + "id": 26246, + "x_pos": -2270.8865003698497, + "y_pos": 2574.631567631217 + }, + { + "id": 26245, + "x_pos": -2301.886361104979, + "y_pos": 2596.619995961455 + }, + { + "id": 26244, + "x_pos": -2224.3867092671553, + "y_pos": 2574.1318306237117 + }, + { + "id": 26243, + "x_pos": -2294.386394798093, + "y_pos": 2506.6673346104817 + }, + { + "id": 26242, + "x_pos": -2327.386246548392, + "y_pos": 2513.1639157080517 + }, + { + "id": 26241, + "x_pos": -2220.8867249906084, + "y_pos": 2536.1518180533003 + }, + { + "id": 26240, + "x_pos": -2211.3867676685527, + "y_pos": 2529.155499948225 + }, + { + "id": 26239, + "x_pos": -2188.8868687478944, + "y_pos": 2554.6420873310008 + }, + { + "id": 26238, + "x_pos": -2169.8869541037825, + "y_pos": 2568.634723541152 + }, + { + "id": 26237, + "x_pos": -2141.387082137615, + "y_pos": 2524.1581298731708 + }, + { + "id": 26236, + "x_pos": -2153.387028228633, + "y_pos": 2551.6436652859684 + }, + { + "id": 26235, + "x_pos": -2071.3873966066776, + "y_pos": 2641.5963266369417 + }, + { + "id": 26234, + "x_pos": -2086.887326974242, + "y_pos": 2617.6089502766818 + }, + { + "id": 26233, + "x_pos": -2076.887371898394, + "y_pos": 2594.621047931433 + }, + { + "id": 26232, + "x_pos": -2069.3874055915076, + "y_pos": 2571.6331455861846 + }, + { + "id": 26231, + "x_pos": -2088.8873179894117, + "y_pos": 2555.6415613460113 + }, + { + "id": 26230, + "x_pos": -2024.8876055039832, + "y_pos": 2563.637353466098 + }, + { + "id": 26229, + "x_pos": -2042.7208383776187, + "y_pos": 2521.8815569504295 + }, + { + "id": 26228, + "x_pos": -2075.720690127918, + "y_pos": 2493.3965475226214 + }, + { + "id": 26227, + "x_pos": -2087.7206362189354, + "y_pos": 2487.899440440062 + }, + { + "id": 26226, + "x_pos": -2065.220737298277, + "y_pos": 2479.903648319976 + }, + { + "id": 26225, + "x_pos": -2119.2204947078576, + "y_pos": 2459.91416801976 + }, + { + "id": 26224, + "x_pos": -2146.220373412648, + "y_pos": 2436.426528667005 + }, + { + "id": 26223, + "x_pos": -2206.220103867737, + "y_pos": 2484.9010183950304 + }, + { + "id": 26222, + "x_pos": -2224.220023004264, + "y_pos": 2492.397073507611 + }, + { + "id": 26221, + "x_pos": -2250.7199039552615, + "y_pos": 2479.903648319976 + }, + { + "id": 26220, + "x_pos": -2261.2198567849023, + "y_pos": 2476.9052262749437 + }, + { + "id": 26219, + "x_pos": -2229.7199982959805, + "y_pos": 2460.9136420347704 + }, + { + "id": 26218, + "x_pos": -2205.220108360152, + "y_pos": 2438.9252137045323 + }, + { + "id": 26217, + "x_pos": -2268.219825337996, + "y_pos": 2406.9420452241866 + }, + { + "id": 26216, + "x_pos": -2218.220049958755, + "y_pos": 2386.9525649239704 + }, + { + "id": 26215, + "x_pos": -2196.2201487918887, + "y_pos": 2363.964662578722 + }, + { + "id": 26214, + "x_pos": -2081.7206631734266, + "y_pos": 2443.9225837795866 + }, + { + "id": 26213, + "x_pos": -2094.720604772029, + "y_pos": 2383.954142878938 + }, + { + "id": 26212, + "x_pos": -2129.2204497837056, + "y_pos": 2366.963084623754 + }, + { + "id": 24799, + "x_pos": -1226.25, + "y_pos": 1942.75 + }, + { + "id": 24798, + "x_pos": -1284.75, + "y_pos": 1938.25 + }, + { + "id": 24797, + "x_pos": -1267.5, + "y_pos": 1901.5 + }, + { + "id": 24796, + "x_pos": -1235.25, + "y_pos": 1923.25 + }, + { + "id": 24795, + "x_pos": -1231.5, + "y_pos": 1915 + }, + { + "id": 24794, + "x_pos": -1131.25, + "y_pos": 1847 + }, + { + "id": 24793, + "x_pos": -1138.25, + "y_pos": 1847.25 + }, + { + "id": 24792, + "x_pos": -1143.25, + "y_pos": 1855.5 + }, + { + "id": 24791, + "x_pos": -1140.5, + "y_pos": 1867.25 + }, + { + "id": 24790, + "x_pos": -1151.5, + "y_pos": 1862 + }, + { + "id": 24789, + "x_pos": -1185, + "y_pos": 1857.5 + }, + { + "id": 24788, + "x_pos": -1174.5, + "y_pos": 1858 + }, + { + "id": 24787, + "x_pos": -1170.5, + "y_pos": 1842.75 + }, + { + "id": 24786, + "x_pos": -1171, + "y_pos": 1830.75 + }, + { + "id": 24785, + "x_pos": -1162, + "y_pos": 1839.75 + }, + { + "id": 24784, + "x_pos": -1161.5, + "y_pos": 1830 + }, + { + "id": 24783, + "x_pos": -1159.75, + "y_pos": 1815 + }, + { + "id": 24782, + "x_pos": -1150.75, + "y_pos": 1817.25 + }, + { + "id": 24734, + "x_pos": -1746.75, + "y_pos": 677.5 + }, + { + "id": 24733, + "x_pos": -1762.25, + "y_pos": 674.25 + }, + { + "id": 24732, + "x_pos": -1840.75, + "y_pos": 809.5 + }, + { + "id": 24731, + "x_pos": -1856.25, + "y_pos": 813 + }, + { + "id": 24730, + "x_pos": -1864, + "y_pos": 831.5 + }, + { + "id": 24729, + "x_pos": -1984.25, + "y_pos": 875.25 + }, + { + "id": 24728, + "x_pos": -2011, + "y_pos": 805.5 + }, + { + "id": 24727, + "x_pos": -1989.5, + "y_pos": 825.25 + }, + { + "id": 24726, + "x_pos": -1982.5, + "y_pos": 842.5 + }, + { + "id": 24725, + "x_pos": -1975.25, + "y_pos": 818.75 + }, + { + "id": 24724, + "x_pos": -1911.5, + "y_pos": 791 + }, + { + "id": 24723, + "x_pos": -1922, + "y_pos": 789.75 + }, + { + "id": 24722, + "x_pos": -1886.5, + "y_pos": 750.5 + }, + { + "id": 24721, + "x_pos": -1899.5, + "y_pos": 723 + }, + { + "id": 24720, + "x_pos": -1955.75, + "y_pos": 649.75 + }, + { + "id": 24719, + "x_pos": -1971.75, + "y_pos": 705 + }, + { + "id": 24718, + "x_pos": -1978.25, + "y_pos": 714.5 + }, + { + "id": 24717, + "x_pos": -1977.5, + "y_pos": 724.75 + }, + { + "id": 24716, + "x_pos": -2010.5, + "y_pos": 733.5 + }, + { + "id": 24715, + "x_pos": -2019.75, + "y_pos": 725 + }, + { + "id": 24714, + "x_pos": -2013.5, + "y_pos": 717 + }, + { + "id": 24713, + "x_pos": -1989.25, + "y_pos": 701.75 + }, + { + "id": 24712, + "x_pos": -2002.25, + "y_pos": 697.75 + }, + { + "id": 24711, + "x_pos": -2005.75, + "y_pos": 675.25 + }, + { + "id": 24710, + "x_pos": -2016.25, + "y_pos": 668 + }, + { + "id": 24709, + "x_pos": -2065.75, + "y_pos": 674.5 + }, + { + "id": 24708, + "x_pos": -2098.5, + "y_pos": 642.75 + }, + { + "id": 24707, + "x_pos": -2124.25, + "y_pos": 904.75 + }, + { + "id": 24706, + "x_pos": -2096.75, + "y_pos": 922.25 + }, + { + "id": 24705, + "x_pos": -2150.75, + "y_pos": 955.25 + }, + { + "id": 24704, + "x_pos": -2174.25, + "y_pos": 933.75 + }, + { + "id": 24703, + "x_pos": -2175.25, + "y_pos": 910 + }, + { + "id": 24702, + "x_pos": -2081.25, + "y_pos": 862 + }, + { + "id": 24701, + "x_pos": -2157.75, + "y_pos": 880.25 + }, + { + "id": 24700, + "x_pos": -2205.25, + "y_pos": 871.75 + }, + { + "id": 24699, + "x_pos": -2176, + "y_pos": 861 + }, + { + "id": 24698, + "x_pos": -2180.5, + "y_pos": 812.5 + }, + { + "id": 24697, + "x_pos": -2186, + "y_pos": 799 + }, + { + "id": 24696, + "x_pos": -2199.25, + "y_pos": 771 + }, + { + "id": 24695, + "x_pos": -2163.5, + "y_pos": 744.25 + }, + { + "id": 24694, + "x_pos": -2175.75, + "y_pos": 756 + }, + { + "id": 24693, + "x_pos": -2177.25, + "y_pos": 731.75 + }, + { + "id": 24433, + "x_pos": -668.6944561939126, + "y_pos": 1326.8619723522988 + }, + { + "id": 24432, + "x_pos": -679.0700401343465, + "y_pos": 1302.9412495024853 + }, + { + "id": 24431, + "x_pos": -701.9444867099146, + "y_pos": 1313.9759244919132 + }, + { + "id": 24430, + "x_pos": -700.0833990977408, + "y_pos": 1336.1439211973093 + }, + { + "id": 24429, + "x_pos": -745.4559348005278, + "y_pos": 1394.8907588823777 + }, + { + "id": 24428, + "x_pos": -750.066811069044, + "y_pos": 1358.3064836681078 + }, + { + "id": 24427, + "x_pos": -726.9898959344309, + "y_pos": 1306.3081407815143 + }, + { + "id": 24426, + "x_pos": -807.0690714147554, + "y_pos": 1327.7138414426508 + }, + { + "id": 24425, + "x_pos": -837.6666995488704, + "y_pos": 1309.947935221533 + }, + { + "id": 24424, + "x_pos": -847.0278858076549, + "y_pos": 1332.977889008449 + }, + { + "id": 24423, + "x_pos": -1040.3334601297433, + "y_pos": 1199.7878118530607 + }, + { + "id": 24422, + "x_pos": -1029.9444867099146, + "y_pos": 1198.6119876230778 + }, + { + "id": 24421, + "x_pos": -1128.9444867099146, + "y_pos": 1126.8398919023066 + }, + { + "id": 24420, + "x_pos": -1115.222372517569, + "y_pos": 1116.1159166561501 + }, + { + "id": 24419, + "x_pos": -1112, + "y_pos": 1080.3919414099937 + }, + { + "id": 24418, + "x_pos": -1020.5557716153098, + "y_pos": 1075.0599381153907 + }, + { + "id": 24417, + "x_pos": -938.2776885144335, + "y_pos": 1033.7799843284747 + }, + { + "id": 24416, + "x_pos": -949.9447450351386, + "y_pos": 1033.279953786916 + }, + { + "id": 24415, + "x_pos": -962.4444867099146, + "y_pos": 1058.6158861145914 + }, + { + "id": 24414, + "x_pos": -1022.1667981954806, + "y_pos": 969.9479504923129 + }, + { + "id": 24413, + "x_pos": -1027.9444867099146, + "y_pos": 1008.9518795253853 + }, + { + "id": 24412, + "x_pos": -897.2776274824305, + "y_pos": 962.8359628692342 + }, + { + "id": 24411, + "x_pos": -905.2224335495721, + "y_pos": 960.8959009846258 + }, + { + "id": 24410, + "x_pos": -905.3891707130501, + "y_pos": 948.5599381153907 + }, + { + "id": 24409, + "x_pos": -949.0557716153098, + "y_pos": 957.1159166561501 + }, + { + "id": 24408, + "x_pos": -730.1112849053952, + "y_pos": 886.8958704430661 + }, + { + "id": 24407, + "x_pos": -727.3892317450527, + "y_pos": 849.0638366069043 + }, + { + "id": 24406, + "x_pos": -823.5555132900854, + "y_pos": 904.1640676723246 + }, + { + "id": 24405, + "x_pos": -849.5002583252244, + "y_pos": 842.7436204115174 + }, + { + "id": 24404, + "x_pos": -838.7226308427935, + "y_pos": 875.6719257384693 + }, + { + "id": 24403, + "x_pos": -1097.1330279900717, + "y_pos": 826.408430623248 + }, + { + "id": 24402, + "x_pos": -1110.1105099297229, + "y_pos": 851.5157161322886 + }, + { + "id": 24401, + "x_pos": -1105.1112849053952, + "y_pos": 853.5078580661448 + }, + { + "id": 24400, + "x_pos": -1074.4997416747756, + "y_pos": 863.6198456892225 + }, + { + "id": 24399, + "x_pos": -1087.277627482431, + "y_pos": 879.1719257384693 + }, + { + "id": 24398, + "x_pos": -1120.944684003136, + "y_pos": 868.1198456892225 + }, + { + "id": 24397, + "x_pos": -1058.667117552708, + "y_pos": 801.0599381153907 + }, + { + "id": 24396, + "x_pos": -1345.906883924229, + "y_pos": 949.558922770434 + }, + { + "id": 24395, + "x_pos": -1301.277885807655, + "y_pos": 944.8919719515534 + }, + { + "id": 24394, + "x_pos": -1270.2223725175695, + "y_pos": 888.0599381153907 + }, + { + "id": 23437, + "x_pos": -2194.5, + "y_pos": 806.5 + }, + { + "id": 23436, + "x_pos": -2162.75, + "y_pos": 777 + }, + { + "id": 23435, + "x_pos": -2156.75, + "y_pos": 772.5 + }, + { + "id": 23434, + "x_pos": -2140.25, + "y_pos": 763 + }, + { + "id": 23433, + "x_pos": -2144.5, + "y_pos": 748.75 + }, + { + "id": 9989, + "x_pos": -965, + "y_pos": 1798 + }, + { + "id": 9988, + "x_pos": -956.5, + "y_pos": 1822.5 + }, + { + "id": 9987, + "x_pos": -977, + "y_pos": 1828.5 + }, + { + "id": 9986, + "x_pos": -952, + "y_pos": 1886 + }, + { + "id": 9985, + "x_pos": -957.5, + "y_pos": 1860.5 + }, + { + "id": 9984, + "x_pos": -931, + "y_pos": 1898 + }, + { + "id": 9983, + "x_pos": -944, + "y_pos": 1914 + }, + { + "id": 9981, + "x_pos": -965, + "y_pos": 1921 + }, + { + "id": 9979, + "x_pos": -993, + "y_pos": 1917 + }, + { + "id": 9978, + "x_pos": -1021, + "y_pos": 1925 + }, + { + "id": 9976, + "x_pos": -1040, + "y_pos": 1946 + }, + { + "id": 9974, + "x_pos": -1023, + "y_pos": 2038 + }, + { + "id": 9972, + "x_pos": -1031, + "y_pos": 2015 + }, + { + "id": 9971, + "x_pos": -1005, + "y_pos": 2047 + }, + { + "id": 9969, + "x_pos": -926, + "y_pos": 2092 + }, + { + "id": 9967, + "x_pos": -979, + "y_pos": 2096 + }, + { + "id": 9965, + "x_pos": -963, + "y_pos": 2112 + }, + { + "id": 9963, + "x_pos": -955, + "y_pos": 2095 + }, + { + "id": 9962, + "x_pos": -983, + "y_pos": 2145 + }, + { + "id": 9961, + "x_pos": -953, + "y_pos": 2170 + }, + { + "id": 9960, + "x_pos": -999, + "y_pos": 2239 + }, + { + "id": 9959, + "x_pos": -1001, + "y_pos": 2264 + }, + { + "id": 9957, + "x_pos": -1042, + "y_pos": 2212 + }, + { + "id": 9955, + "x_pos": -1050, + "y_pos": 2253 + }, + { + "id": 9953, + "x_pos": -1042, + "y_pos": 2286 + }, + { + "id": 9952, + "x_pos": -2282.5, + "y_pos": 1526.5 + }, + { + "id": 9951, + "x_pos": -2200.5, + "y_pos": 1547.5 + }, + { + "id": 9950, + "x_pos": -2211, + "y_pos": 1568.5 + }, + { + "id": 9889, + "x_pos": -2284, + "y_pos": 1552 + }, + { + "id": 9888, + "x_pos": -2289, + "y_pos": 1567 + }, + { + "id": 9887, + "x_pos": -2327.5, + "y_pos": 1727.5 + }, + { + "id": 9886, + "x_pos": -2326.5, + "y_pos": 1753 + }, + { + "id": 9885, + "x_pos": -2351, + "y_pos": 1737.5 + }, + { + "id": 9884, + "x_pos": -2358, + "y_pos": 1784 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/85697486c36fc94d772bc7b6024513bf_8678899342666863316.png" + }, + "78": { + "name": "Starconch", + "clear_name": "Starconch", + "points": [ + { + "id": 26573, + "x_pos": -590.5, + "y_pos": 1961.75 + }, + { + "id": 19186, + "x_pos": 128.5, + "y_pos": 2496 + }, + { + "id": 10988, + "x_pos": 180.5, + "y_pos": 1700 + }, + { + "id": 10987, + "x_pos": 187.5, + "y_pos": 1700 + }, + { + "id": 10986, + "x_pos": 164.5, + "y_pos": 1680 + }, + { + "id": 10985, + "x_pos": 100, + "y_pos": 1706.5 + }, + { + "id": 10984, + "x_pos": 47.5, + "y_pos": 1717.5 + }, + { + "id": 10983, + "x_pos": -81.5, + "y_pos": 1700.5 + }, + { + "id": 7784, + "x_pos": -78.5, + "y_pos": 1700 + }, + { + "id": 4635, + "x_pos": -683, + "y_pos": 2262.5 + }, + { + "id": 4634, + "x_pos": -686, + "y_pos": 2265 + }, + { + "id": 4633, + "x_pos": -680, + "y_pos": 2272.5 + }, + { + "id": 4632, + "x_pos": -656, + "y_pos": 2097.5 + }, + { + "id": 4630, + "x_pos": -683, + "y_pos": 2123 + }, + { + "id": 4629, + "x_pos": -731, + "y_pos": 1908.5 + }, + { + "id": 4627, + "x_pos": -705, + "y_pos": 1830 + }, + { + "id": 4620, + "x_pos": -521.5, + "y_pos": 1928.5 + }, + { + "id": 4618, + "x_pos": -559, + "y_pos": 1781.5 + }, + { + "id": 4617, + "x_pos": -646.5, + "y_pos": 2109 + }, + { + "id": 4616, + "x_pos": -590.5, + "y_pos": 2414 + }, + { + "id": 4615, + "x_pos": -704.5, + "y_pos": 1915.5 + }, + { + "id": 4613, + "x_pos": -707, + "y_pos": 2144.5 + }, + { + "id": 4611, + "x_pos": -642.5, + "y_pos": 1833.5 + }, + { + "id": 4610, + "x_pos": -498, + "y_pos": 1931 + }, + { + "id": 4609, + "x_pos": -542, + "y_pos": 2393.5 + }, + { + "id": 4608, + "x_pos": -650, + "y_pos": 2274 + }, + { + "id": 4607, + "x_pos": -517.5, + "y_pos": 2384 + }, + { + "id": 4606, + "x_pos": -642, + "y_pos": 2314.5 + }, + { + "id": 4605, + "x_pos": 24.58427368178627, + "y_pos": 2684.7128303025574 + }, + { + "id": 4604, + "x_pos": -150.5, + "y_pos": 2697 + }, + { + "id": 4603, + "x_pos": 78, + "y_pos": 2738.5 + }, + { + "id": 4602, + "x_pos": -42, + "y_pos": 2736.0097522890755 + }, + { + "id": 4600, + "x_pos": -537.5, + "y_pos": 2475 + }, + { + "id": 4598, + "x_pos": -460.5, + "y_pos": 1789 + }, + { + "id": 4591, + "x_pos": 18.084831785638926, + "y_pos": 2684.199810014008 + }, + { + "id": 4590, + "x_pos": -642.5, + "y_pos": 1955.5 + }, + { + "id": 4586, + "x_pos": 17.081204110595536, + "y_pos": 2633.384067275606 + }, + { + "id": 4585, + "x_pos": -35.94391056278482, + "y_pos": 2641.7005333633715 + }, + { + "id": 4584, + "x_pos": -505, + "y_pos": 2432 + }, + { + "id": 4583, + "x_pos": -594, + "y_pos": 1977.5 + }, + { + "id": 4582, + "x_pos": 115.5, + "y_pos": 2579 + }, + { + "id": 4581, + "x_pos": -276.5, + "y_pos": 1875 + }, + { + "id": 4579, + "x_pos": -415.5, + "y_pos": 1918 + }, + { + "id": 4578, + "x_pos": -240, + "y_pos": 1748.5 + }, + { + "id": 4576, + "x_pos": -593.5, + "y_pos": 1824 + }, + { + "id": 4575, + "x_pos": 81, + "y_pos": 2605 + }, + { + "id": 4574, + "x_pos": 109.5, + "y_pos": 2611.5 + }, + { + "id": 4573, + "x_pos": -615.5, + "y_pos": 2316 + }, + { + "id": 4572, + "x_pos": -704.5, + "y_pos": 2210.5 + }, + { + "id": 4570, + "x_pos": -543, + "y_pos": 1934 + }, + { + "id": 4568, + "x_pos": -448, + "y_pos": 1879.5 + }, + { + "id": 4567, + "x_pos": -232.5, + "y_pos": 1793 + }, + { + "id": 4565, + "x_pos": 64.5, + "y_pos": 2446 + }, + { + "id": 4564, + "x_pos": -516.5, + "y_pos": 2495.5 + }, + { + "id": 4563, + "x_pos": -493, + "y_pos": 2454 + }, + { + "id": 4561, + "x_pos": -559.5, + "y_pos": 2359 + }, + { + "id": 4560, + "x_pos": 93, + "y_pos": 2779 + }, + { + "id": 4559, + "x_pos": -297.5, + "y_pos": 2457.5 + }, + { + "id": 4558, + "x_pos": 132.5, + "y_pos": 2621.5 + }, + { + "id": 4557, + "x_pos": 262.5, + "y_pos": 2475.5 + }, + { + "id": 4556, + "x_pos": -318, + "y_pos": 2479.5 + }, + { + "id": 4555, + "x_pos": 113, + "y_pos": 2413 + }, + { + "id": 4553, + "x_pos": 145, + "y_pos": 2373.5 + }, + { + "id": 4552, + "x_pos": -197.5, + "y_pos": 1749 + }, + { + "id": 4550, + "x_pos": -621, + "y_pos": 1935 + }, + { + "id": 4548, + "x_pos": -669, + "y_pos": 2045 + }, + { + "id": 4547, + "x_pos": -298, + "y_pos": 1774 + }, + { + "id": 4546, + "x_pos": -266, + "y_pos": 1878 + }, + { + "id": 4545, + "x_pos": -327, + "y_pos": 1920.5 + }, + { + "id": 4543, + "x_pos": -191, + "y_pos": 2454 + }, + { + "id": 4542, + "x_pos": -132.5, + "y_pos": 2397 + }, + { + "id": 4540, + "x_pos": -291.5, + "y_pos": 2519.5 + }, + { + "id": 4539, + "x_pos": -75, + "y_pos": 2359 + }, + { + "id": 4537, + "x_pos": -697.5, + "y_pos": 1716.5 + }, + { + "id": 4534, + "x_pos": -450.5, + "y_pos": 2055.5 + }, + { + "id": 4531, + "x_pos": -194, + "y_pos": 1761.5 + }, + { + "id": 4457, + "x_pos": -59.5, + "y_pos": 2165.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/d1e33c9e6607ee32779618bfdb3dc719_4584440559350948910.png" + }, + "195": { + "name": "Luminescent Spine", + "clear_name": "LuminescentSpine", + "points": [ + { + "id": 26572, + "x_pos": -2116, + "y_pos": 1133 + }, + { + "id": 26571, + "x_pos": -1487, + "y_pos": 3002 + }, + { + "id": 26570, + "x_pos": 211, + "y_pos": 2618 + }, + { + "id": 26569, + "x_pos": 196, + "y_pos": 2610 + }, + { + "id": 26568, + "x_pos": -1913, + "y_pos": 3159 + }, + { + "id": 26567, + "x_pos": -1926, + "y_pos": 3158 + }, + { + "id": 26566, + "x_pos": -1919, + "y_pos": 3151 + }, + { + "id": 26565, + "x_pos": -1789, + "y_pos": 1988.5 + }, + { + "id": 26564, + "x_pos": -1825, + "y_pos": 2029 + }, + { + "id": 26563, + "x_pos": -1849.5, + "y_pos": 2047.5 + }, + { + "id": 26562, + "x_pos": -1864, + "y_pos": 2070.5 + }, + { + "id": 26561, + "x_pos": -1976, + "y_pos": 1474 + }, + { + "id": 26560, + "x_pos": -2160, + "y_pos": 1328 + }, + { + "id": 26559, + "x_pos": -2078, + "y_pos": 1362.5 + }, + { + "id": 26558, + "x_pos": -1959, + "y_pos": 1072.5 + }, + { + "id": 26557, + "x_pos": -1973.5, + "y_pos": 962 + }, + { + "id": 26556, + "x_pos": -1592, + "y_pos": 695 + }, + { + "id": 19445, + "x_pos": 1969.8756785151463, + "y_pos": 8668.501745200698 + }, + { + "id": 19444, + "x_pos": 1944.2513570302926, + "y_pos": 8637.875654450261 + }, + { + "id": 15840, + "x_pos": 635.5, + "y_pos": -46 + }, + { + "id": 15741, + "x_pos": -2156.699981689453, + "y_pos": 1093.663534929216 + }, + { + "id": 15504, + "x_pos": 2650.8001403808594, + "y_pos": 5535.218376809886 + }, + { + "id": 15363, + "x_pos": 1652.1000061035156, + "y_pos": 6366.201840072787 + }, + { + "id": 14832, + "x_pos": 1647, + "y_pos": 6336 + }, + { + "id": 14502, + "x_pos": 820, + "y_pos": -517.5 + }, + { + "id": 14319, + "x_pos": 2328.5, + "y_pos": 6064.5 + }, + { + "id": 14214, + "x_pos": 3628, + "y_pos": 5002 + }, + { + "id": 14152, + "x_pos": 2279, + "y_pos": 6195.5 + }, + { + "id": 11800, + "x_pos": -1602.4332797745474, + "y_pos": 715.0799718247213 + }, + { + "id": 11799, + "x_pos": -1596.455534621305, + "y_pos": 715.9815367380647 + }, + { + "id": 11798, + "x_pos": -1602.8381342617272, + "y_pos": 561.6157951017808 + }, + { + "id": 11796, + "x_pos": -1592.666383601455, + "y_pos": 607.217550112774 + }, + { + "id": 11795, + "x_pos": -1947.3604654648889, + "y_pos": 948.9379652735693 + }, + { + "id": 11794, + "x_pos": -1953.3600103245099, + "y_pos": 1067.271295212268 + }, + { + "id": 11793, + "x_pos": -231.89540943427892, + "y_pos": 396.7539071914066 + }, + { + "id": 11792, + "x_pos": -229.40706760492958, + "y_pos": 417.6650661106064 + }, + { + "id": 11791, + "x_pos": -256.76439440003105, + "y_pos": 612.8741331022629 + }, + { + "id": 11790, + "x_pos": -252.0536065050037, + "y_pos": 618.3769294089307 + }, + { + "id": 11788, + "x_pos": 279.0358389788662, + "y_pos": 522.1772985726147 + }, + { + "id": 11787, + "x_pos": 283.4422696870697, + "y_pos": 524.9754001392521 + }, + { + "id": 11786, + "x_pos": 893.1764044659594, + "y_pos": -532.4697718822517 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/86fc768c90691a768b983487ee8fd27d_2443134744517808602.png" + }, + "114": { + "name": "Artifact", + "clear_name": "Artifact", + "points": [ + { + "id": 26552, + "x_pos": -2229, + "y_pos": 2602 + }, + { + "id": 24905, + "x_pos": 1795.5, + "y_pos": 7266.25 + }, + { + "id": 23305, + "x_pos": 1302.3986253367839, + "y_pos": 5931.700000762939 + }, + { + "id": 19434, + "x_pos": 2068.2999877929688, + "y_pos": 8331.946434850626 + }, + { + "id": 19433, + "x_pos": 2073.7000427246094, + "y_pos": 8346.34003821638 + }, + { + "id": 19432, + "x_pos": 2218, + "y_pos": 8370.387382498651 + }, + { + "id": 19431, + "x_pos": 2523.2000427246094, + "y_pos": 8529.589507069477 + }, + { + "id": 19333, + "x_pos": 1665.8999633789062, + "y_pos": 8609.640114639067 + }, + { + "id": 19332, + "x_pos": 1650.800048828125, + "y_pos": 8628.346304927021 + }, + { + "id": 19331, + "x_pos": 1629.9000549316406, + "y_pos": 8683.861734803371 + }, + { + "id": 19328, + "x_pos": 1918.3999328613281, + "y_pos": 7342.9137944207905 + }, + { + "id": 18961, + "x_pos": 2285.6000061035156, + "y_pos": 8493.505120370348 + }, + { + "id": 18960, + "x_pos": 2286.9000244140625, + "y_pos": 8501.379312189107 + }, + { + "id": 18956, + "x_pos": 1731.1000061035156, + "y_pos": 8237.174260600856 + }, + { + "id": 18955, + "x_pos": 1727.3999633789062, + "y_pos": 8246.882246847123 + }, + { + "id": 18945, + "x_pos": 1824.4000244140625, + "y_pos": 8845.983087513465 + }, + { + "id": 18944, + "x_pos": 1832.0999755859375, + "y_pos": 8847.069323655029 + }, + { + "id": 18943, + "x_pos": 1861.199951171875, + "y_pos": 8971.937271684918 + }, + { + "id": 18416, + "x_pos": 3094.7999877929688, + "y_pos": 6799.36097057651 + }, + { + "id": 18412, + "x_pos": 3484.5, + "y_pos": 6578.771807417517 + }, + { + "id": 18411, + "x_pos": -135.99996948242188, + "y_pos": 6064.296110069905 + }, + { + "id": 18410, + "x_pos": -125.300048828125, + "y_pos": 5990.211655766472 + }, + { + "id": 18131, + "x_pos": -154.72324966508495, + "y_pos": 6182.969895321681 + }, + { + "id": 18130, + "x_pos": -53.55276569963553, + "y_pos": 6011.889569414685 + }, + { + "id": 18129, + "x_pos": 3134.2094249362563, + "y_pos": 6594.860157458388 + }, + { + "id": 18127, + "x_pos": 3138.75800973639, + "y_pos": 6599.09026061029 + }, + { + "id": 18125, + "x_pos": 242.4109914941164, + "y_pos": 6011.811660402676 + }, + { + "id": 18124, + "x_pos": 233.777464971854, + "y_pos": 6019.14175897532 + }, + { + "id": 18123, + "x_pos": 232.16757458455686, + "y_pos": 6024.257322460693 + }, + { + "id": 18122, + "x_pos": 254.43271789578102, + "y_pos": 6026.31220665653 + }, + { + "id": 18121, + "x_pos": 250.47524221791173, + "y_pos": 6023.148323111996 + }, + { + "id": 17815, + "x_pos": 2959.1000061035156, + "y_pos": 7059.101925881918 + }, + { + "id": 17814, + "x_pos": 2957.4000244140625, + "y_pos": 7063.873442873077 + }, + { + "id": 17813, + "x_pos": 2953, + "y_pos": 7059.969178450247 + }, + { + "id": 17794, + "x_pos": 2977.8419928225194, + "y_pos": 6748.954334889146 + }, + { + "id": 17793, + "x_pos": 2994.86054779382, + "y_pos": 6751.029366163722 + }, + { + "id": 17792, + "x_pos": 2991.3378601282275, + "y_pos": 6753.309743968968 + }, + { + "id": 17791, + "x_pos": 2993.2073548197623, + "y_pos": 6757.757014260156 + }, + { + "id": 17790, + "x_pos": 2982.114262169878, + "y_pos": 6754.47843694883 + }, + { + "id": 17789, + "x_pos": 2997.8611276366737, + "y_pos": 6759.4607067650795 + }, + { + "id": 17788, + "x_pos": 2978.3376440011216, + "y_pos": 6757.439998168296 + }, + { + "id": 17787, + "x_pos": 2979.9038808804653, + "y_pos": 6758.423568017184 + }, + { + "id": 17786, + "x_pos": 3016.0074844960254, + "y_pos": 6756.119834298948 + }, + { + "id": 17785, + "x_pos": 3022.8750438651496, + "y_pos": 6756.948847995982 + }, + { + "id": 17784, + "x_pos": 2988.9282647801792, + "y_pos": 6762.646037420989 + }, + { + "id": 17783, + "x_pos": 2997.028358838739, + "y_pos": 6762.812199024433 + }, + { + "id": 17782, + "x_pos": 3016.8422827439463, + "y_pos": 6759.698736601418 + }, + { + "id": 17781, + "x_pos": 3024.952371553023, + "y_pos": 6762.012374494569 + }, + { + "id": 17780, + "x_pos": 3033.9552097675223, + "y_pos": 6742.423683956977 + }, + { + "id": 17779, + "x_pos": 3042.5898959754923, + "y_pos": 6743.272574692692 + }, + { + "id": 17778, + "x_pos": 3051.5620940184235, + "y_pos": 6751.215728270574 + }, + { + "id": 17777, + "x_pos": 3074.816281315203, + "y_pos": 6702.808489728901 + }, + { + "id": 17776, + "x_pos": 3069.6571374132, + "y_pos": 6706.478937410111 + }, + { + "id": 17775, + "x_pos": 3089.3288217308673, + "y_pos": 6710.183206697266 + }, + { + "id": 17774, + "x_pos": 2969.153233640569, + "y_pos": 6752.367075588174 + }, + { + "id": 17648, + "x_pos": 612.7484295347595, + "y_pos": 6076.607806165392 + }, + { + "id": 17647, + "x_pos": 616.7759848648384, + "y_pos": 6079.084589088476 + }, + { + "id": 17646, + "x_pos": 315.5998474315702, + "y_pos": 6196.79400653988 + }, + { + "id": 17645, + "x_pos": 464.8000183105469, + "y_pos": 6188.600006103516 + }, + { + "id": 17644, + "x_pos": -57.27792018724904, + "y_pos": 6403.386691677253 + }, + { + "id": 17643, + "x_pos": -45.64583047756423, + "y_pos": 6374.98849522401 + }, + { + "id": 17642, + "x_pos": -71.01857530455527, + "y_pos": 6356.754682776576 + }, + { + "id": 17641, + "x_pos": 62.81068130845051, + "y_pos": 6298.444777075247 + }, + { + "id": 17640, + "x_pos": -31.412423395920996, + "y_pos": 6265.52156305117 + }, + { + "id": 17639, + "x_pos": -60.97025255389417, + "y_pos": 6358.87167749857 + }, + { + "id": 17638, + "x_pos": -167.92125583280358, + "y_pos": 6298.734859162563 + }, + { + "id": 17637, + "x_pos": -141.17005924993737, + "y_pos": 6245.1810522102405 + }, + { + "id": 17529, + "x_pos": 3741.5, + "y_pos": 6556 + }, + { + "id": 17528, + "x_pos": 3410.2000122070312, + "y_pos": 6554.300018310547 + }, + { + "id": 17527, + "x_pos": 3417.5, + "y_pos": 6560.899993896484 + }, + { + "id": 17526, + "x_pos": 3413.199981689453, + "y_pos": 6561.5 + }, + { + "id": 17525, + "x_pos": 3851, + "y_pos": 7171.199981689453 + }, + { + "id": 17524, + "x_pos": 3105.2000122070312, + "y_pos": 6835.799987792969 + }, + { + "id": 17523, + "x_pos": 3308.2000122070312, + "y_pos": 6976.509239571606 + }, + { + "id": 17522, + "x_pos": 3100, + "y_pos": 6836.199981689453 + }, + { + "id": 17521, + "x_pos": 3306.000030517578, + "y_pos": 6987.5999755859375 + }, + { + "id": 17520, + "x_pos": 3888.2000122070312, + "y_pos": 7040.9000244140625 + }, + { + "id": 17519, + "x_pos": 3884.5, + "y_pos": 7042.799987792969 + }, + { + "id": 17518, + "x_pos": 3745.699981689453, + "y_pos": 6557.399993896484 + }, + { + "id": 17517, + "x_pos": 3409.2000122070312, + "y_pos": 6564.250210158189 + }, + { + "id": 17516, + "x_pos": 3498.2999877929688, + "y_pos": 6556.899993896484 + }, + { + "id": 17515, + "x_pos": 3468.5, + "y_pos": 6580.5 + }, + { + "id": 17514, + "x_pos": 3489.2999877929688, + "y_pos": 6585.800018310547 + }, + { + "id": 17513, + "x_pos": 3438.5, + "y_pos": 6624.100006103516 + }, + { + "id": 17028, + "x_pos": 3224.5, + "y_pos": 6750.861696600425 + }, + { + "id": 17027, + "x_pos": 3237.699981689453, + "y_pos": 6747.644508985501 + }, + { + "id": 17026, + "x_pos": 3233.7000122070312, + "y_pos": 6752.575185330472 + }, + { + "id": 17024, + "x_pos": 3241.5000610351562, + "y_pos": 6755.171662212735 + }, + { + "id": 15648, + "x_pos": 2368.5, + "y_pos": 6047 + }, + { + "id": 15643, + "x_pos": 2374.5, + "y_pos": 6054 + }, + { + "id": 15642, + "x_pos": 2388, + "y_pos": 6057.5 + }, + { + "id": 15639, + "x_pos": 2397.5, + "y_pos": 6028 + }, + { + "id": 15620, + "x_pos": 2411.5, + "y_pos": 6028.5 + }, + { + "id": 15619, + "x_pos": 2419, + "y_pos": 6038.5 + }, + { + "id": 15617, + "x_pos": 2407, + "y_pos": 6018.5 + }, + { + "id": 15615, + "x_pos": 2415, + "y_pos": 6030.5 + }, + { + "id": 15614, + "x_pos": 2413.5, + "y_pos": 6047.5 + }, + { + "id": 15613, + "x_pos": 2410.5, + "y_pos": 6049.5 + }, + { + "id": 15611, + "x_pos": 2403.5, + "y_pos": 6057.5 + }, + { + "id": 15588, + "x_pos": 2404.5, + "y_pos": 6155.5 + }, + { + "id": 15584, + "x_pos": 2515.5, + "y_pos": 5581 + }, + { + "id": 15582, + "x_pos": 2786, + "y_pos": 5668.5 + }, + { + "id": 15581, + "x_pos": 2790, + "y_pos": 5669 + }, + { + "id": 15580, + "x_pos": 2663, + "y_pos": 5556.5 + }, + { + "id": 15578, + "x_pos": 2531.5, + "y_pos": 5290 + }, + { + "id": 15577, + "x_pos": 2540, + "y_pos": 5288 + }, + { + "id": 15572, + "x_pos": -1615.5, + "y_pos": 582 + }, + { + "id": 15571, + "x_pos": -1042.5, + "y_pos": 1424 + }, + { + "id": 15569, + "x_pos": -1173, + "y_pos": 2093 + }, + { + "id": 15568, + "x_pos": -1169.5, + "y_pos": 2092 + }, + { + "id": 15567, + "x_pos": -1096.5, + "y_pos": 1654 + }, + { + "id": 15566, + "x_pos": -1170.5, + "y_pos": 2087.5 + }, + { + "id": 15563, + "x_pos": 1349.5, + "y_pos": 6091 + }, + { + "id": 15562, + "x_pos": 1762, + "y_pos": 6022.5 + }, + { + "id": 15561, + "x_pos": 1761, + "y_pos": 6024.5 + }, + { + "id": 15560, + "x_pos": 2399.5, + "y_pos": 6152 + }, + { + "id": 15559, + "x_pos": 2407.5, + "y_pos": 6013.5 + }, + { + "id": 15554, + "x_pos": 2595, + "y_pos": 5972.5 + }, + { + "id": 15552, + "x_pos": 2517.5, + "y_pos": 5964.5 + }, + { + "id": 15549, + "x_pos": 2497.5, + "y_pos": 5971.5 + }, + { + "id": 15544, + "x_pos": 2461, + "y_pos": 5937 + }, + { + "id": 15543, + "x_pos": 2461.5, + "y_pos": 5932.5 + }, + { + "id": 15536, + "x_pos": 2370, + "y_pos": 5950 + }, + { + "id": 15535, + "x_pos": 2347.5, + "y_pos": 5963.5 + }, + { + "id": 15534, + "x_pos": 2281.5, + "y_pos": 5959.5 + }, + { + "id": 15060, + "x_pos": 3211, + "y_pos": 5521 + }, + { + "id": 15059, + "x_pos": 3193, + "y_pos": 5543 + }, + { + "id": 15058, + "x_pos": 3241.5, + "y_pos": 5551.5 + }, + { + "id": 15057, + "x_pos": 3181.5, + "y_pos": 5593 + }, + { + "id": 15054, + "x_pos": 2473, + "y_pos": 5289 + }, + { + "id": 15049, + "x_pos": 2392.5, + "y_pos": 5347 + }, + { + "id": 15047, + "x_pos": 2390, + "y_pos": 5375 + }, + { + "id": 14935, + "x_pos": 2699, + "y_pos": 5876.5 + }, + { + "id": 14934, + "x_pos": 2688.5, + "y_pos": 5890 + }, + { + "id": 14931, + "x_pos": 2673, + "y_pos": 5898 + }, + { + "id": 14930, + "x_pos": 2659.5, + "y_pos": 5857.5 + }, + { + "id": 14929, + "x_pos": 2657, + "y_pos": 5867 + }, + { + "id": 14928, + "x_pos": 2650, + "y_pos": 5871 + }, + { + "id": 14923, + "x_pos": 2554, + "y_pos": 5868 + }, + { + "id": 14922, + "x_pos": 2555.5, + "y_pos": 5868 + }, + { + "id": 14921, + "x_pos": 2552.5, + "y_pos": 5894.5 + }, + { + "id": 14918, + "x_pos": 2503.5, + "y_pos": 5907.5 + }, + { + "id": 14611, + "x_pos": 1373.5, + "y_pos": 6137 + }, + { + "id": 14610, + "x_pos": 1350.5, + "y_pos": 5956.402739773062 + }, + { + "id": 14605, + "x_pos": 2064, + "y_pos": 5899.5 + }, + { + "id": 13954, + "x_pos": 2396, + "y_pos": 5893 + }, + { + "id": 13654, + "x_pos": 2920.5, + "y_pos": 4898.5 + }, + { + "id": 7666, + "x_pos": 42, + "y_pos": 1448 + }, + { + "id": 7664, + "x_pos": 42.5, + "y_pos": 1452 + }, + { + "id": 7663, + "x_pos": 36.5, + "y_pos": 1450 + }, + { + "id": 7662, + "x_pos": 35.5, + "y_pos": 1453.5 + }, + { + "id": 7494, + "x_pos": 325.5, + "y_pos": 1577 + }, + { + "id": 7341, + "x_pos": -245, + "y_pos": 1172 + }, + { + "id": 7340, + "x_pos": -242.5, + "y_pos": 1173.5 + }, + { + "id": 7339, + "x_pos": -336.5, + "y_pos": 1368.5 + }, + { + "id": 7338, + "x_pos": 350, + "y_pos": 700.5 + }, + { + "id": 7336, + "x_pos": -338, + "y_pos": 1373.5 + }, + { + "id": 7335, + "x_pos": -240, + "y_pos": 1175 + }, + { + "id": 5298, + "x_pos": -1587.839723646333, + "y_pos": 2983.8973570924245 + }, + { + "id": 5297, + "x_pos": -1920.5380706883393, + "y_pos": 1747.4790689705133 + }, + { + "id": 5296, + "x_pos": -1834.8921253757712, + "y_pos": 1599.9690059313398 + }, + { + "id": 5295, + "x_pos": -1893.375885170367, + "y_pos": 1762.9682008882064 + }, + { + "id": 5294, + "x_pos": -2235.3880111904023, + "y_pos": 1273.9046024806294 + }, + { + "id": 5293, + "x_pos": -1909.380648963952, + "y_pos": 1762.480679056781 + }, + { + "id": 5292, + "x_pos": -2251.8880111904023, + "y_pos": 1276.4565277627648 + }, + { + "id": 5291, + "x_pos": -2385.395589952924, + "y_pos": 1378.9621630647016 + }, + { + "id": 5290, + "x_pos": -629.4029521793746, + "y_pos": 1745.425131080543 + }, + { + "id": 5289, + "x_pos": -594.3821647164568, + "y_pos": 814.9529050686624 + }, + { + "id": 5288, + "x_pos": -860.9168104879859, + "y_pos": 849.9211058648743 + }, + { + "id": 5287, + "x_pos": -1811.3908261593388, + "y_pos": 1970.9396218569536 + }, + { + "id": 5286, + "x_pos": -1825.3938576643477, + "y_pos": 1611.9323764687488 + }, + { + "id": 5285, + "x_pos": -1832.3745859539345, + "y_pos": 2019.9790689705133 + }, + { + "id": 5284, + "x_pos": -1145.8817316443124, + "y_pos": 1381.8965520492902 + }, + { + "id": 5283, + "x_pos": -1856.8841135411049, + "y_pos": 1034.961760543135 + }, + { + "id": 5282, + "x_pos": -1866.8884442625463, + "y_pos": 1036.4629681078359 + }, + { + "id": 5281, + "x_pos": -1798.3633260781871, + "y_pos": 1784.4537101117958 + }, + { + "id": 5280, + "x_pos": -1262.8927749839872, + "y_pos": 584.413860476669 + }, + { + "id": 5279, + "x_pos": -1794.8836804689608, + "y_pos": 2003.4657857588045 + }, + { + "id": 5278, + "x_pos": -1390, + "y_pos": 1383 + }, + { + "id": 5277, + "x_pos": -1087.8955899529242, + "y_pos": 1213.84140659462 + }, + { + "id": 5276, + "x_pos": -1271.3819481803844, + "y_pos": 1410.4645781941035 + }, + { + "id": 5275, + "x_pos": -1368.9152947354814, + "y_pos": 614.0080505233332 + }, + { + "id": 5274, + "x_pos": -1570.9118301583285, + "y_pos": 1465.459345413733 + }, + { + "id": 5273, + "x_pos": -1325.40988133368, + "y_pos": 1413.8635452808012 + }, + { + "id": 5272, + "x_pos": -1005, + "y_pos": 755 + }, + { + "id": 5271, + "x_pos": -1395.9624995991908, + "y_pos": 1478.8595200651325 + }, + { + "id": 5270, + "x_pos": -1515.3011802255064, + "y_pos": 1256.9645781941035 + }, + { + "id": 5269, + "x_pos": -1417.4230900340758, + "y_pos": 1653.3595200651325 + }, + { + "id": 5268, + "x_pos": -1455.8875781182578, + "y_pos": 1671.4577353274653 + }, + { + "id": 5267, + "x_pos": -1097.8981883857887, + "y_pos": 1220.9742387117103 + }, + { + "id": 5266, + "x_pos": -656.2682667425534, + "y_pos": 1086.4726286254427 + }, + { + "id": 5265, + "x_pos": -1474.8981883857887, + "y_pos": 1668.4247285589763 + }, + { + "id": 5264, + "x_pos": -1881.912263230473, + "y_pos": 1041.9046024806294 + }, + { + "id": 5263, + "x_pos": -1413.9142120551214, + "y_pos": 601.989937052821 + }, + { + "id": 5262, + "x_pos": -1776.40251910723, + "y_pos": 1067.9005772649598 + }, + { + "id": 5261, + "x_pos": -2123.372204057142, + "y_pos": 1207.422715951142 + }, + { + "id": 5260, + "x_pos": -2399.9222238897873, + "y_pos": 1386.4637731509702 + }, + { + "id": 5259, + "x_pos": -2379.9150781994094, + "y_pos": 1578.902589872795 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a9f458cf7ba149ec659aabb581050a0b_766781731981267833.png" + }, + "224": { + "name": "Ores", + "clear_name": "Ores", + "points": [ + { + "id": 26551, + "x_pos": -2223, + "y_pos": 2600 + }, + { + "id": 26550, + "x_pos": 3724, + "y_pos": 6580.75 + }, + { + "id": 26211, + "x_pos": -2366.300018310547, + "y_pos": 3090.3016090390847 + }, + { + "id": 26210, + "x_pos": -2676.8999938964844, + "y_pos": 3021.8016090390847 + }, + { + "id": 26209, + "x_pos": -2255.8999938964844, + "y_pos": 3097.7496730514667 + }, + { + "id": 26208, + "x_pos": -2373.6500091552734, + "y_pos": 3121.4973233561577 + }, + { + "id": 26207, + "x_pos": -2555.1000213623047, + "y_pos": 3042.2513306899737 + }, + { + "id": 26206, + "x_pos": -2691.1000061035156, + "y_pos": 3039.6977675916387 + }, + { + "id": 26205, + "x_pos": -2439.300003051758, + "y_pos": 3156.898789404713 + }, + { + "id": 26204, + "x_pos": -2437.5499725341797, + "y_pos": 3154.8978085591134 + }, + { + "id": 26203, + "x_pos": -2376.75, + "y_pos": 3051.9480563804354 + }, + { + "id": 26202, + "x_pos": -2450.499984741211, + "y_pos": 3268.0499590325244 + }, + { + "id": 26201, + "x_pos": -2298.75, + "y_pos": 3063.1993947023566 + }, + { + "id": 26200, + "x_pos": -2299.0499877929688, + "y_pos": 3060.3512029633393 + }, + { + "id": 26199, + "x_pos": -2555.3999938964844, + "y_pos": 2891.6001915899515 + }, + { + "id": 26198, + "x_pos": -2574.1499786376953, + "y_pos": 2867.7995786603606 + }, + { + "id": 26197, + "x_pos": -2554.1499938964844, + "y_pos": 2839.247984885171 + }, + { + "id": 26196, + "x_pos": -2524.550003051758, + "y_pos": 2859.1491316171405 + }, + { + "id": 26195, + "x_pos": -2467.0999908447266, + "y_pos": 2893.4490524899293 + }, + { + "id": 26194, + "x_pos": -2405.3999938964844, + "y_pos": 2909.0492822396163 + }, + { + "id": 26127, + "x_pos": -2199.75, + "y_pos": 3041.75 + }, + { + "id": 26126, + "x_pos": -2199.949996948242, + "y_pos": 3024.0506052976434 + }, + { + "id": 26125, + "x_pos": -2195.3999938964844, + "y_pos": 3018.25 + }, + { + "id": 26124, + "x_pos": -2189.449996948242, + "y_pos": 3010.95142508108 + }, + { + "id": 18418, + "x_pos": 3025.699951171875, + "y_pos": 6761.564195644092 + }, + { + "id": 18417, + "x_pos": 3036.4999389648438, + "y_pos": 6764.11482613545 + }, + { + "id": 18415, + "x_pos": 3101.1000061035156, + "y_pos": 6642.679755444045 + }, + { + "id": 18414, + "x_pos": 3487.9000549316406, + "y_pos": 6575.7652197181615 + }, + { + "id": 18413, + "x_pos": 3507.499969482422, + "y_pos": 6577.594994272076 + }, + { + "id": 15650, + "x_pos": 2364.5, + "y_pos": 6043 + }, + { + "id": 15649, + "x_pos": 2363.5, + "y_pos": 6044.5 + }, + { + "id": 15647, + "x_pos": 2368.5, + "y_pos": 6049.5 + }, + { + "id": 15646, + "x_pos": 2327, + "y_pos": 6075 + }, + { + "id": 15645, + "x_pos": 2328.5, + "y_pos": 6075 + }, + { + "id": 15644, + "x_pos": 2364, + "y_pos": 6056.5 + }, + { + "id": 15641, + "x_pos": 2483.5, + "y_pos": 5998 + }, + { + "id": 15640, + "x_pos": 2487, + "y_pos": 6002.5 + }, + { + "id": 15624, + "x_pos": 2411.5, + "y_pos": 6023 + }, + { + "id": 15623, + "x_pos": 2409.5, + "y_pos": 6024 + }, + { + "id": 15618, + "x_pos": 2418.5, + "y_pos": 6040 + }, + { + "id": 15616, + "x_pos": 2413.5, + "y_pos": 6043.5 + }, + { + "id": 15609, + "x_pos": 2380, + "y_pos": 6018.5 + }, + { + "id": 15570, + "x_pos": -1272.5, + "y_pos": 1447.5 + }, + { + "id": 15556, + "x_pos": 2386, + "y_pos": 6024.5 + }, + { + "id": 15547, + "x_pos": 2446, + "y_pos": 5971.5 + }, + { + "id": 15546, + "x_pos": 2460.5, + "y_pos": 5964.5 + }, + { + "id": 15542, + "x_pos": 2466, + "y_pos": 5942 + }, + { + "id": 15539, + "x_pos": 2405.5, + "y_pos": 5889.5 + }, + { + "id": 15538, + "x_pos": 2394, + "y_pos": 5899 + }, + { + "id": 15533, + "x_pos": 2279, + "y_pos": 5962.5 + }, + { + "id": 15427, + "x_pos": -1127.5, + "y_pos": 1372.0810699276817 + }, + { + "id": 15084, + "x_pos": 1443.696634624027, + "y_pos": 6273.701840072787 + }, + { + "id": 15081, + "x_pos": -466, + "y_pos": 1577 + }, + { + "id": 15080, + "x_pos": -466, + "y_pos": 1581 + }, + { + "id": 15079, + "x_pos": -433, + "y_pos": 1576.5 + }, + { + "id": 15077, + "x_pos": -418, + "y_pos": 1501 + }, + { + "id": 15076, + "x_pos": -495.5, + "y_pos": 1506.5 + }, + { + "id": 15075, + "x_pos": -742.5, + "y_pos": 1496 + }, + { + "id": 15074, + "x_pos": -743.5, + "y_pos": 1498 + }, + { + "id": 15073, + "x_pos": -743.5, + "y_pos": 1499 + }, + { + "id": 15072, + "x_pos": -738.5, + "y_pos": 1506.5 + }, + { + "id": 15071, + "x_pos": -2071, + "y_pos": 2930 + }, + { + "id": 15070, + "x_pos": -2061.5, + "y_pos": 2920.5 + }, + { + "id": 15069, + "x_pos": -2059, + "y_pos": 2944 + }, + { + "id": 15068, + "x_pos": -2062.5, + "y_pos": 2950 + }, + { + "id": 15067, + "x_pos": -2042.5, + "y_pos": 2932 + }, + { + "id": 15066, + "x_pos": -2036, + "y_pos": 2945 + }, + { + "id": 15065, + "x_pos": -1782, + "y_pos": 3074 + }, + { + "id": 15064, + "x_pos": -1785, + "y_pos": 3075.5 + }, + { + "id": 15063, + "x_pos": -1783, + "y_pos": 3077 + }, + { + "id": 15062, + "x_pos": -1795.5, + "y_pos": 3102 + }, + { + "id": 15061, + "x_pos": -1801, + "y_pos": 3104 + }, + { + "id": 14184, + "x_pos": -1018, + "y_pos": 785 + }, + { + "id": 14183, + "x_pos": -1016.5, + "y_pos": 786.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210727/9cee1c61743200ad2e5cfcb0ab74fe2e_4171622996361539631.png" + }, + "127": { + "name": "Mora", + "clear_name": "Mora", + "points": [ + { + "id": 26549, + "x_pos": -2355.5, + "y_pos": 3066.5 + }, + { + "id": 26271, + "x_pos": -2244, + "y_pos": 3058.5 + }, + { + "id": 23293, + "x_pos": -1415.849112878032, + "y_pos": 2148.1647609401443 + }, + { + "id": 20104, + "x_pos": 2494.199981689453, + "y_pos": 8509.852900266967 + }, + { + "id": 20103, + "x_pos": 2501.2000122070312, + "y_pos": 8519.77622468572 + }, + { + "id": 20102, + "x_pos": 2517.7999877929688, + "y_pos": 8533.265953382665 + }, + { + "id": 20101, + "x_pos": 2482.5, + "y_pos": 8553.619954146388 + }, + { + "id": 20100, + "x_pos": 2528.3999938964844, + "y_pos": 8535.778784870894 + }, + { + "id": 20099, + "x_pos": 2478, + "y_pos": 8572.713863202887 + }, + { + "id": 20098, + "x_pos": 2058.7999877929688, + "y_pos": 8335.53925105096 + }, + { + "id": 20097, + "x_pos": 1912.7999877929688, + "y_pos": 8218.169858613834 + }, + { + "id": 15638, + "x_pos": 2425.5, + "y_pos": 6046 + }, + { + "id": 15635, + "x_pos": 2440, + "y_pos": 6019.5 + }, + { + "id": 15634, + "x_pos": 2443.5, + "y_pos": 5975.5 + }, + { + "id": 15628, + "x_pos": 2458.5, + "y_pos": 5941 + }, + { + "id": 15610, + "x_pos": 2390.5, + "y_pos": 6020 + }, + { + "id": 15608, + "x_pos": 2379.5, + "y_pos": 6022 + }, + { + "id": 15587, + "x_pos": 2513, + "y_pos": 5581 + }, + { + "id": 15586, + "x_pos": 2512, + "y_pos": 5593 + }, + { + "id": 15585, + "x_pos": 2510, + "y_pos": 5595.5 + }, + { + "id": 15583, + "x_pos": 2523, + "y_pos": 5589.5 + }, + { + "id": 15557, + "x_pos": 2371, + "y_pos": 6021.5 + }, + { + "id": 15555, + "x_pos": 2606, + "y_pos": 5959 + }, + { + "id": 15553, + "x_pos": 2591.5, + "y_pos": 5981.5 + }, + { + "id": 15550, + "x_pos": 2531.5, + "y_pos": 5963 + }, + { + "id": 15540, + "x_pos": 2395.5, + "y_pos": 5896 + }, + { + "id": 15078, + "x_pos": -439, + "y_pos": 1594.5 + }, + { + "id": 14938, + "x_pos": 2687, + "y_pos": 5871 + }, + { + "id": 14936, + "x_pos": 2688.5, + "y_pos": 5877 + }, + { + "id": 14933, + "x_pos": 2680, + "y_pos": 5891 + }, + { + "id": 14927, + "x_pos": 2642, + "y_pos": 5845.5 + }, + { + "id": 14926, + "x_pos": 2629.5, + "y_pos": 5904 + }, + { + "id": 14925, + "x_pos": 2622, + "y_pos": 5854 + }, + { + "id": 14920, + "x_pos": 2513.5, + "y_pos": 5887.5 + }, + { + "id": 14917, + "x_pos": 2248.5, + "y_pos": 5977 + }, + { + "id": 14608, + "x_pos": 2016, + "y_pos": 5766.5 + }, + { + "id": 10943, + "x_pos": -1404.5, + "y_pos": 1369 + }, + { + "id": 10643, + "x_pos": -1296, + "y_pos": 1880 + }, + { + "id": 8708, + "x_pos": -578.285770536133, + "y_pos": 2415.052581652937 + }, + { + "id": 7493, + "x_pos": -377.5, + "y_pos": 1366.5 + }, + { + "id": 7492, + "x_pos": -223, + "y_pos": 966.5 + }, + { + "id": 7337, + "x_pos": 73, + "y_pos": 1010.5 + }, + { + "id": 7202, + "x_pos": -1545, + "y_pos": 1244 + }, + { + "id": 7192, + "x_pos": -1870.9978346392795, + "y_pos": 1810.502822201317 + }, + { + "id": 7187, + "x_pos": -1541.5, + "y_pos": 1534 + }, + { + "id": 7182, + "x_pos": -1586, + "y_pos": 1580.5 + }, + { + "id": 7174, + "x_pos": -1836.3886607986183, + "y_pos": 1822.496905408484 + }, + { + "id": 7168, + "x_pos": -1504.5010826803605, + "y_pos": 1652.4957666980245 + }, + { + "id": 7158, + "x_pos": -1433.5010826803605, + "y_pos": 1666.998118532455 + }, + { + "id": 7152, + "x_pos": -1871.5, + "y_pos": 2208.5 + }, + { + "id": 7145, + "x_pos": -1005.000433072144, + "y_pos": 1141.0008050431338 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/cb0d79765ac1b39571d2e8d09e24825c_572899893604837928.png" + }, + "52": { + "name": "World Quests", + "clear_name": "WorldQuests", + "points": [ + { + "id": 26544, + "x_pos": 3091.7855559874333, + "y_pos": 4859.7142794865795 + }, + { + "id": 26543, + "x_pos": 3094.25, + "y_pos": 4858.78572080441 + }, + { + "id": 26542, + "x_pos": 2724.426414394099, + "y_pos": 4521.892867085882 + }, + { + "id": 26541, + "x_pos": 3059.4257468826845, + "y_pos": 4897.428471318899 + }, + { + "id": 26540, + "x_pos": 3067.0357304953477, + "y_pos": 4900.821543942622 + }, + { + "id": 26539, + "x_pos": 3043.75, + "y_pos": 4896.964586043305 + }, + { + "id": 26538, + "x_pos": 3091.5001745079135, + "y_pos": 4857.5 + }, + { + "id": 26537, + "x_pos": 2722.6924691221666, + "y_pos": 4534.785700498764 + }, + { + "id": 26536, + "x_pos": 2718.821317003022, + "y_pos": 4507.357131895653 + }, + { + "id": 26535, + "x_pos": 2984.439982384396, + "y_pos": 4912.535702299265 + }, + { + "id": 26534, + "x_pos": 2987.1785084890644, + "y_pos": 4909.75 + }, + { + "id": 26533, + "x_pos": 3093.9435816101177, + "y_pos": 4857.035706063947 + }, + { + "id": 26532, + "x_pos": 2984.4998254920865, + "y_pos": 4909.428573649968 + }, + { + "id": 26531, + "x_pos": 2725.5714915109356, + "y_pos": 4528.714294308884 + }, + { + "id": 26530, + "x_pos": 2731.7857304953477, + "y_pos": 4526.964309567671 + }, + { + "id": 26529, + "x_pos": 3012.928523749185, + "y_pos": 4897.142868104347 + }, + { + "id": 26518, + "x_pos": 3615.0714609906954, + "y_pos": 5413.714324826458 + }, + { + "id": 26462, + "x_pos": -2225.474142871801, + "y_pos": 3081.7471641484935 + }, + { + "id": 26362, + "x_pos": -2283.1216930563896, + "y_pos": 2891.0714091452483 + }, + { + "id": 26361, + "x_pos": -2411.058490671359, + "y_pos": 3156.035703154048 + }, + { + "id": 26360, + "x_pos": -2806.130811094885, + "y_pos": 3105.2142572258454 + }, + { + "id": 26359, + "x_pos": -2598.7142695046527, + "y_pos": 3097.285720949905 + }, + { + "id": 26358, + "x_pos": -2232.857396514197, + "y_pos": 3062.7856895593586 + }, + { + "id": 26357, + "x_pos": -2228.322015034677, + "y_pos": 3081.8928682498417 + }, + { + "id": 26356, + "x_pos": -2230.858413041439, + "y_pos": 3084.8571176553305 + }, + { + "id": 26355, + "x_pos": -2226.817914098703, + "y_pos": 3085.14284311558 + }, + { + "id": 26354, + "x_pos": -955.4804245934151, + "y_pos": 2979.4286234638184 + }, + { + "id": 24738, + "x_pos": 3679.5001745079135, + "y_pos": 5432.142883363134 + }, + { + "id": 24682, + "x_pos": 172.21441349232555, + "y_pos": 19.214279050094774 + }, + { + "id": 24677, + "x_pos": -951.928539009305, + "y_pos": 2979.8214263500313 + }, + { + "id": 23611, + "x_pos": -793.714033956257, + "y_pos": -87.21429459987303 + }, + { + "id": 23600, + "x_pos": -1238.2143829720844, + "y_pos": 883.2142943088829 + }, + { + "id": 23599, + "x_pos": -1580, + "y_pos": 2110.999969773414 + }, + { + "id": 23598, + "x_pos": -2607.1241361671828, + "y_pos": 1628.714236347313 + }, + { + "id": 23480, + "x_pos": 137.5714609906945, + "y_pos": 80.5 + }, + { + "id": 23479, + "x_pos": 211.56628679376263, + "y_pos": 2610.642856773923 + }, + { + "id": 23478, + "x_pos": 296.2859355235023, + "y_pos": 1116.3571470089464 + }, + { + "id": 23477, + "x_pos": 3723.6429830218713, + "y_pos": 4970 + }, + { + "id": 23110, + "x_pos": 162.21409499673882, + "y_pos": 92.35718130939222 + }, + { + "id": 23042, + "x_pos": -1012.8792754438878, + "y_pos": 2975.4285624013864 + }, + { + "id": 23041, + "x_pos": -1084.5, + "y_pos": 861.5 + }, + { + "id": 23040, + "x_pos": -1483.1780154855637, + "y_pos": 3109.4285733589786 + }, + { + "id": 23029, + "x_pos": -1486.4189410740469, + "y_pos": 3105.2142777224535 + }, + { + "id": 22845, + "x_pos": 147.0634336266612, + "y_pos": 56.285737372652875 + }, + { + "id": 22753, + "x_pos": -978.4592022217839, + "y_pos": 2988.781221513741 + }, + { + "id": 22377, + "x_pos": 23.145426132664397, + "y_pos": 6118.92855868217 + }, + { + "id": 20788, + "x_pos": 3660.999969482422, + "y_pos": 5412.499969482422 + }, + { + "id": 20312, + "x_pos": 3077, + "y_pos": 4871 + }, + { + "id": 20278, + "x_pos": 3594, + "y_pos": 5344.5 + }, + { + "id": 20255, + "x_pos": 3666, + "y_pos": 5399.499969482422 + }, + { + "id": 20254, + "x_pos": 3079.5, + "y_pos": 4876.000030517578 + }, + { + "id": 20253, + "x_pos": 3074.5, + "y_pos": 4875.000030517578 + }, + { + "id": 20252, + "x_pos": 3670.5, + "y_pos": 5417.499969482422 + }, + { + "id": 19417, + "x_pos": 81.5, + "y_pos": 6334.5 + }, + { + "id": 19416, + "x_pos": 2350.5, + "y_pos": 8578.500030517578 + }, + { + "id": 19398, + "x_pos": 2521, + "y_pos": 8517 + }, + { + "id": 19397, + "x_pos": -880.5, + "y_pos": 2927.5 + }, + { + "id": 19396, + "x_pos": 2952.999969482422, + "y_pos": 4919 + }, + { + "id": 19395, + "x_pos": -14.4000244140625, + "y_pos": 6119.700012207031 + }, + { + "id": 19260, + "x_pos": 3734.5, + "y_pos": 5431 + }, + { + "id": 19179, + "x_pos": 3663.5, + "y_pos": 5419 + }, + { + "id": 19054, + "x_pos": 2974.5, + "y_pos": 7060 + }, + { + "id": 17989, + "x_pos": 3611.5, + "y_pos": 5325.5 + }, + { + "id": 17988, + "x_pos": 3056.5, + "y_pos": 4958 + }, + { + "id": 17880, + "x_pos": 307.5, + "y_pos": 150 + }, + { + "id": 17810, + "x_pos": 3747, + "y_pos": 5690 + }, + { + "id": 17809, + "x_pos": 2964, + "y_pos": 7060 + }, + { + "id": 17636, + "x_pos": 2955, + "y_pos": 7060 + }, + { + "id": 17635, + "x_pos": 2973, + "y_pos": 7053.5 + }, + { + "id": 17633, + "x_pos": 3425, + "y_pos": 6643 + }, + { + "id": 16809, + "x_pos": 244, + "y_pos": 2.99993896484375 + }, + { + "id": 16808, + "x_pos": 2973, + "y_pos": 7048 + }, + { + "id": 16807, + "x_pos": 2965, + "y_pos": 7048 + }, + { + "id": 16806, + "x_pos": 3671.1104617238616, + "y_pos": 5410.778409687806 + }, + { + "id": 16552, + "x_pos": 416.4639878177604, + "y_pos": 6427.279003636531 + }, + { + "id": 16551, + "x_pos": 149.5, + "y_pos": 6305 + }, + { + "id": 16550, + "x_pos": 23, + "y_pos": 6124.751438205389 + }, + { + "id": 16549, + "x_pos": -214, + "y_pos": 6236 + }, + { + "id": 16548, + "x_pos": -265.5, + "y_pos": 6139 + }, + { + "id": 16547, + "x_pos": -429.27276662742406, + "y_pos": 6078.018392610989 + }, + { + "id": 16546, + "x_pos": -201.08321930126658, + "y_pos": 5867.165728231534 + }, + { + "id": 16545, + "x_pos": 55.50223573725361, + "y_pos": 5791.751438205389 + }, + { + "id": 16544, + "x_pos": 2956.5, + "y_pos": 7048 + }, + { + "id": 16543, + "x_pos": 3460.250372622875, + "y_pos": 6721.917166436924 + }, + { + "id": 16542, + "x_pos": 3417.833561397467, + "y_pos": 6561.502876410779 + }, + { + "id": 16541, + "x_pos": 3203, + "y_pos": 6719.5 + }, + { + "id": 16540, + "x_pos": 3512.5, + "y_pos": 7114.665728231534 + }, + { + "id": 16539, + "x_pos": 3728.5832193012666, + "y_pos": 6861 + }, + { + "id": 16538, + "x_pos": 2966, + "y_pos": 7042.5 + }, + { + "id": 16537, + "x_pos": 2956, + "y_pos": 7053.5 + }, + { + "id": 16536, + "x_pos": 2964.5, + "y_pos": 7054 + }, + { + "id": 15719, + "x_pos": 3699, + "y_pos": 5360 + }, + { + "id": 15718, + "x_pos": 1893.5, + "y_pos": 5776 + }, + { + "id": 15717, + "x_pos": 2257, + "y_pos": 6207.5 + }, + { + "id": 15716, + "x_pos": 2289, + "y_pos": 5980 + }, + { + "id": 15715, + "x_pos": 2619, + "y_pos": 5807.5 + }, + { + "id": 15714, + "x_pos": 2474.5, + "y_pos": 5809.5 + }, + { + "id": 15713, + "x_pos": 2678.5, + "y_pos": 5781.5 + }, + { + "id": 15712, + "x_pos": 2717, + "y_pos": 5504.5 + }, + { + "id": 15711, + "x_pos": 3084.5, + "y_pos": 4906 + }, + { + "id": 15710, + "x_pos": 3451.5, + "y_pos": 4187 + }, + { + "id": 15709, + "x_pos": 530, + "y_pos": 1522 + }, + { + "id": 15708, + "x_pos": 452, + "y_pos": 1788 + }, + { + "id": 15707, + "x_pos": -201, + "y_pos": 1438 + }, + { + "id": 15670, + "x_pos": -1069, + "y_pos": 2847.5 + }, + { + "id": 15434, + "x_pos": 3661, + "y_pos": 5401.5 + }, + { + "id": 15426, + "x_pos": 2684, + "y_pos": 5507 + }, + { + "id": 15425, + "x_pos": 1610, + "y_pos": 6138.5 + }, + { + "id": 14916, + "x_pos": -1072, + "y_pos": 1435.5 + }, + { + "id": 14495, + "x_pos": -881, + "y_pos": 2921 + }, + { + "id": 14471, + "x_pos": 2349.5, + "y_pos": 6146 + }, + { + "id": 14464, + "x_pos": 1604.5, + "y_pos": 6385.5 + }, + { + "id": 14262, + "x_pos": 3910.5, + "y_pos": 5478 + }, + { + "id": 14261, + "x_pos": 2697.5, + "y_pos": 5624.5 + }, + { + "id": 14138, + "x_pos": 3852.5, + "y_pos": 4857.5 + }, + { + "id": 14137, + "x_pos": 3541, + "y_pos": 5343 + }, + { + "id": 13975, + "x_pos": 3676, + "y_pos": 5526.5 + }, + { + "id": 13974, + "x_pos": 3671.5, + "y_pos": 5411 + }, + { + "id": 13973, + "x_pos": 3647.5, + "y_pos": 5330.5 + }, + { + "id": 13874, + "x_pos": 3218.5, + "y_pos": 4953.5 + }, + { + "id": 13872, + "x_pos": 3312.5, + "y_pos": 4966 + }, + { + "id": 13871, + "x_pos": 3487, + "y_pos": 5335 + }, + { + "id": 13870, + "x_pos": 1402, + "y_pos": 5992.5 + }, + { + "id": 13869, + "x_pos": 1490.5, + "y_pos": 5920 + }, + { + "id": 7126, + "x_pos": 252.61589618842027, + "y_pos": 1219.6581264532729 + }, + { + "id": 7120, + "x_pos": 301.1042659203267, + "y_pos": 1029.6202241681121 + }, + { + "id": 7118, + "x_pos": 52.490219982821145, + "y_pos": 1017.6159137737131 + }, + { + "id": 7113, + "x_pos": 354.9969470235628, + "y_pos": 726.4991374119281 + }, + { + "id": 7109, + "x_pos": 338.5585755813845, + "y_pos": 732.1061705118163 + }, + { + "id": 7107, + "x_pos": 357.6117425212442, + "y_pos": 705.5067302468156 + }, + { + "id": 7096, + "x_pos": -140.9051490586071, + "y_pos": 822.4266669927679 + }, + { + "id": 6346, + "x_pos": -1111.9621927544977, + "y_pos": 2897.5829606855104 + }, + { + "id": 5076, + "x_pos": -941.5, + "y_pos": 2984.5 + }, + { + "id": 5075, + "x_pos": -1083.5, + "y_pos": 2907 + }, + { + "id": 5074, + "x_pos": -1107.5, + "y_pos": 2893 + }, + { + "id": 5073, + "x_pos": -1132.5, + "y_pos": 2869 + }, + { + "id": 5072, + "x_pos": -1076.5, + "y_pos": 2827 + }, + { + "id": 5071, + "x_pos": -1096, + "y_pos": 2807 + }, + { + "id": 5066, + "x_pos": -1093, + "y_pos": 1363.5 + }, + { + "id": 1731, + "x_pos": -992, + "y_pos": 2953.5 + }, + { + "id": 1730, + "x_pos": -1025.5, + "y_pos": 2881.5 + }, + { + "id": 1729, + "x_pos": -1119.5, + "y_pos": 2893.5 + }, + { + "id": 1728, + "x_pos": -947.5, + "y_pos": 2983 + }, + { + "id": 1727, + "x_pos": -1038.5, + "y_pos": 2003 + }, + { + "id": 1726, + "x_pos": -1314.5, + "y_pos": 2697.5 + }, + { + "id": 1724, + "x_pos": -1122, + "y_pos": 2277 + }, + { + "id": 1723, + "x_pos": -1495, + "y_pos": 2257 + }, + { + "id": 1722, + "x_pos": -1110.5, + "y_pos": 2887 + }, + { + "id": 1721, + "x_pos": -621, + "y_pos": 2970.5 + }, + { + "id": 1719, + "x_pos": -1814, + "y_pos": 2853.5 + }, + { + "id": 1718, + "x_pos": -959, + "y_pos": 2044 + }, + { + "id": 1717, + "x_pos": -1599, + "y_pos": 1910.5 + }, + { + "id": 1715, + "x_pos": 387, + "y_pos": 2725.5 + }, + { + "id": 1713, + "x_pos": -1116, + "y_pos": 1402 + }, + { + "id": 1712, + "x_pos": -985, + "y_pos": 1119 + }, + { + "id": 1711, + "x_pos": -1259, + "y_pos": 912 + }, + { + "id": 1710, + "x_pos": 1419.5, + "y_pos": -335.5 + }, + { + "id": 1709, + "x_pos": -1170, + "y_pos": 782.5 + }, + { + "id": 1707, + "x_pos": -2176, + "y_pos": 1485.5 + }, + { + "id": 1706, + "x_pos": -1881.5, + "y_pos": 1587 + }, + { + "id": 1705, + "x_pos": -2153, + "y_pos": 2167 + }, + { + "id": 1704, + "x_pos": -431, + "y_pos": 1583 + }, + { + "id": 1703, + "x_pos": 177.5, + "y_pos": 107.5 + }, + { + "id": 1702, + "x_pos": -1687.5, + "y_pos": 1414 + }, + { + "id": 1701, + "x_pos": 166.5, + "y_pos": 88 + }, + { + "id": 1700, + "x_pos": 90, + "y_pos": 139 + }, + { + "id": 1699, + "x_pos": -1078, + "y_pos": 1404.5 + }, + { + "id": 1698, + "x_pos": 818.5, + "y_pos": 971.5 + }, + { + "id": 1697, + "x_pos": 201.5, + "y_pos": 104 + }, + { + "id": 1695, + "x_pos": -329.5, + "y_pos": 551.5 + }, + { + "id": 1694, + "x_pos": -341, + "y_pos": 568 + }, + { + "id": 1693, + "x_pos": 158.5, + "y_pos": 75 + }, + { + "id": 1691, + "x_pos": 166.5, + "y_pos": 88.5 + }, + { + "id": 1690, + "x_pos": 182, + "y_pos": 77 + }, + { + "id": 1688, + "x_pos": 521.5, + "y_pos": 426.5 + }, + { + "id": 1686, + "x_pos": 89.5, + "y_pos": 138.5 + }, + { + "id": 1684, + "x_pos": 143, + "y_pos": 54 + }, + { + "id": 1683, + "x_pos": 342.5, + "y_pos": 153.5 + }, + { + "id": 1682, + "x_pos": 143, + "y_pos": 82 + }, + { + "id": 1681, + "x_pos": 177.5, + "y_pos": 35 + }, + { + "id": 1680, + "x_pos": 100.5, + "y_pos": 130.5 + }, + { + "id": 1678, + "x_pos": -24.5, + "y_pos": -14.5 + }, + { + "id": 1677, + "x_pos": -67.5, + "y_pos": -33 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/5938abaf948c3b2fa47a3ac3938aabf3_4865664785447822197.png" + }, + "359": { + "name": "Rock Pile", + "clear_name": "RockPile", + "points": [ + { + "id": 26527, + "x_pos": -2348, + "y_pos": 2801.5 + }, + { + "id": 26522, + "x_pos": -2579.5, + "y_pos": 3105 + }, + { + "id": 26521, + "x_pos": -2534, + "y_pos": 3275.5 + }, + { + "id": 26448, + "x_pos": -2544.1547512281486, + "y_pos": 2868.732797559349 + }, + { + "id": 26285, + "x_pos": -2303, + "y_pos": 3067.25 + }, + { + "id": 26284, + "x_pos": -2312.25, + "y_pos": 3049.5 + }, + { + "id": 26282, + "x_pos": -2183, + "y_pos": 2533.75 + }, + { + "id": 26281, + "x_pos": -2251.75, + "y_pos": 2404.75 + }, + { + "id": 26280, + "x_pos": -2815, + "y_pos": 3047.75 + }, + { + "id": 26279, + "x_pos": -2778, + "y_pos": 3099.25 + }, + { + "id": 26278, + "x_pos": -2629.75, + "y_pos": 3078.75 + }, + { + "id": 26277, + "x_pos": -2690.75, + "y_pos": 3009.75 + }, + { + "id": 26276, + "x_pos": -2719.25, + "y_pos": 3206.75 + }, + { + "id": 26275, + "x_pos": -2761.25, + "y_pos": 3192.25 + }, + { + "id": 26274, + "x_pos": -2732.75, + "y_pos": 3254 + }, + { + "id": 26273, + "x_pos": -2516.25, + "y_pos": 3249.25 + }, + { + "id": 26272, + "x_pos": -2520.5, + "y_pos": 3350.75 + }, + { + "id": 26268, + "x_pos": -2741, + "y_pos": 3179 + }, + { + "id": 26267, + "x_pos": -2526, + "y_pos": 2838.5 + }, + { + "id": 26266, + "x_pos": -2669.5, + "y_pos": 3265.75 + }, + { + "id": 26265, + "x_pos": -2584.5, + "y_pos": 3185 + }, + { + "id": 26262, + "x_pos": -2528, + "y_pos": 2878.25 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/67f677c001b0f43c749f493a1e66ffbb_4133034866915659827.png" + }, + "59": { + "name": "Slime", + "clear_name": "Slime", + "points": [ + { + "id": 26526, + "x_pos": 336.75, + "y_pos": 17.75 + }, + { + "id": 25075, + "x_pos": -2061.127410888672, + "y_pos": 2529.593719482422 + }, + { + "id": 25074, + "x_pos": -2088.729217529297, + "y_pos": 2538.824722290039 + }, + { + "id": 25073, + "x_pos": -2102.545440673828, + "y_pos": 2537.9099884033203 + }, + { + "id": 25069, + "x_pos": -2299.5487060546875, + "y_pos": 2495.6653900146484 + }, + { + "id": 25058, + "x_pos": -2600, + "y_pos": 3193 + }, + { + "id": 25048, + "x_pos": -2674.3553771972656, + "y_pos": 3115.841827392578 + }, + { + "id": 25047, + "x_pos": -2717, + "y_pos": 3120 + }, + { + "id": 25046, + "x_pos": -2738.5, + "y_pos": 3081 + }, + { + "id": 25041, + "x_pos": -2370.461456298828, + "y_pos": 3231.2240600585938 + }, + { + "id": 25039, + "x_pos": -2518.8689575195312, + "y_pos": 3348.9412841796875 + }, + { + "id": 25036, + "x_pos": -2761.021942138672, + "y_pos": 3160.8551635742188 + }, + { + "id": 25035, + "x_pos": -2372.453369140625, + "y_pos": 2703.6343536376953 + }, + { + "id": 25023, + "x_pos": -2364.8142700195312, + "y_pos": 2808.2285766601562 + }, + { + "id": 25022, + "x_pos": -2263.6068115234375, + "y_pos": 2849.385452270508 + }, + { + "id": 25021, + "x_pos": -2232.7431030273438, + "y_pos": 2888.3663024902344 + }, + { + "id": 25020, + "x_pos": -2223.3258056640625, + "y_pos": 2894.2156372070312 + }, + { + "id": 25019, + "x_pos": -2203.6331787109375, + "y_pos": 2981.0851440429688 + }, + { + "id": 23678, + "x_pos": 619.25, + "y_pos": 721.1045487681422 + }, + { + "id": 23255, + "x_pos": -1985, + "y_pos": 2703.9493947023566 + }, + { + "id": 20250, + "x_pos": -1905, + "y_pos": 1685.5 + }, + { + "id": 20249, + "x_pos": -1901.5, + "y_pos": 1688.5 + }, + { + "id": 20248, + "x_pos": -1910, + "y_pos": 1689.5 + }, + { + "id": 20247, + "x_pos": -1898.5, + "y_pos": 1689.5 + }, + { + "id": 20246, + "x_pos": -1908.5, + "y_pos": 1692 + }, + { + "id": 20245, + "x_pos": -1903.5, + "y_pos": 1692.5 + }, + { + "id": 20244, + "x_pos": -1900.5, + "y_pos": 1691 + }, + { + "id": 20054, + "x_pos": 391.1087951660156, + "y_pos": 274.44212341308594 + }, + { + "id": 20053, + "x_pos": 474.4350891113281, + "y_pos": 221.85214233398438 + }, + { + "id": 20052, + "x_pos": 622.6318054199219, + "y_pos": 269.0101013183594 + }, + { + "id": 20051, + "x_pos": 613.2716064453125, + "y_pos": 325.57366943359375 + }, + { + "id": 20048, + "x_pos": 686, + "y_pos": 422.5 + }, + { + "id": 19879, + "x_pos": 2095.2999877929688, + "y_pos": 8744.199981689453 + }, + { + "id": 19878, + "x_pos": 2100.1000061035156, + "y_pos": 8745.800018310547 + }, + { + "id": 19660, + "x_pos": 2082.2000122070312, + "y_pos": 8718.5 + }, + { + "id": 19394, + "x_pos": 2221.4000244140625, + "y_pos": 8388.299987792969 + }, + { + "id": 19393, + "x_pos": 2219.7999877929688, + "y_pos": 8381.200012207031 + }, + { + "id": 19390, + "x_pos": 2221.800018310547, + "y_pos": 8389.100006103516 + }, + { + "id": 19373, + "x_pos": 2007.2999877929688, + "y_pos": 8463.5 + }, + { + "id": 19372, + "x_pos": 2013.2999877929688, + "y_pos": 8463.600006103516 + }, + { + "id": 19371, + "x_pos": 2018.3999938964844, + "y_pos": 8465.799987792969 + }, + { + "id": 19370, + "x_pos": 2015.1000061035156, + "y_pos": 8468 + }, + { + "id": 19358, + "x_pos": 2168.1000061035156, + "y_pos": 8701.600006103516 + }, + { + "id": 19356, + "x_pos": 2172.199981689453, + "y_pos": 8699.599975585938 + }, + { + "id": 19355, + "x_pos": 2168.800018310547, + "y_pos": 8704.199981689453 + }, + { + "id": 19354, + "x_pos": 2172.7000122070312, + "y_pos": 8703.899993896484 + }, + { + "id": 19352, + "x_pos": 1630.7999877929688, + "y_pos": 8710.899993896484 + }, + { + "id": 19342, + "x_pos": 1857.0000305175781, + "y_pos": 9081.599975585938 + }, + { + "id": 19306, + "x_pos": 2395, + "y_pos": 8577.5 + }, + { + "id": 19305, + "x_pos": 2405.5, + "y_pos": 8597 + }, + { + "id": 19304, + "x_pos": 2388.5, + "y_pos": 8577.5 + }, + { + "id": 17701, + "x_pos": -1155.3999938964844, + "y_pos": 1587 + }, + { + "id": 17700, + "x_pos": -1255.7999877929688, + "y_pos": 1695.6999816894531 + }, + { + "id": 17699, + "x_pos": -615, + "y_pos": 2121.800018310547 + }, + { + "id": 17698, + "x_pos": -1253.7999877929688, + "y_pos": 1692.3999938964844 + }, + { + "id": 17697, + "x_pos": -624.3999938964844, + "y_pos": 2115.7999725341797 + }, + { + "id": 17594, + "x_pos": 3424.5999755859375, + "y_pos": 6696.0999755859375 + }, + { + "id": 17590, + "x_pos": 3822.300018310547, + "y_pos": 6757.899993896484 + }, + { + "id": 17589, + "x_pos": 3829.3999938964844, + "y_pos": 6759.5 + }, + { + "id": 17588, + "x_pos": 3830.300018310547, + "y_pos": 6764 + }, + { + "id": 17587, + "x_pos": 3825.300018310547, + "y_pos": 6762.5 + }, + { + "id": 17573, + "x_pos": -140.79998779296875, + "y_pos": 6040.399993896484 + }, + { + "id": 17572, + "x_pos": -144.29998779296875, + "y_pos": 6065 + }, + { + "id": 17571, + "x_pos": -110.5, + "y_pos": 6080.799987792969 + }, + { + "id": 17570, + "x_pos": -101.4000244140625, + "y_pos": 6080.800003051758 + }, + { + "id": 17569, + "x_pos": -101.80001831054688, + "y_pos": 6085.100006103516 + }, + { + "id": 17566, + "x_pos": 141.4000244140625, + "y_pos": 6023.199981689453 + }, + { + "id": 17565, + "x_pos": 136.70001220703125, + "y_pos": 6025 + }, + { + "id": 17561, + "x_pos": 587, + "y_pos": 6059 + }, + { + "id": 17552, + "x_pos": 323.3999938964844, + "y_pos": 6320.899993896484 + }, + { + "id": 17551, + "x_pos": 309.70001220703125, + "y_pos": 6323.300018310547 + }, + { + "id": 17457, + "x_pos": 3568, + "y_pos": 6479.199981689453 + }, + { + "id": 17455, + "x_pos": 3562.1000061035156, + "y_pos": 6487.399993896484 + }, + { + "id": 17444, + "x_pos": 3668.199981689453, + "y_pos": 7156.600036621094 + }, + { + "id": 17443, + "x_pos": 3663.5, + "y_pos": 7154.5999755859375 + }, + { + "id": 17441, + "x_pos": 3662.4000244140625, + "y_pos": 7159.5 + }, + { + "id": 17405, + "x_pos": 3519.2999877929688, + "y_pos": 7006.600006103516 + }, + { + "id": 15779, + "x_pos": -2165.4000244140625, + "y_pos": 1676.1439070149336 + }, + { + "id": 15523, + "x_pos": 2562.300018310547, + "y_pos": 5541.353106517914 + }, + { + "id": 15520, + "x_pos": 2504.8999633789062, + "y_pos": 5294.641375688998 + }, + { + "id": 15422, + "x_pos": -2225.7000122070312, + "y_pos": 1696.8000183105469 + }, + { + "id": 15039, + "x_pos": 1628.8027288062112, + "y_pos": 6207.611582478168 + }, + { + "id": 14910, + "x_pos": 3219.8853332733206, + "y_pos": 5248.081178948443 + }, + { + "id": 14905, + "x_pos": 1658.7985226804121, + "y_pos": 6127.705391550449 + }, + { + "id": 14904, + "x_pos": 1604.9029851947907, + "y_pos": 6145.904020735959 + }, + { + "id": 14903, + "x_pos": 1628.8979996849348, + "y_pos": 6148.914194852539 + }, + { + "id": 14598, + "x_pos": 2224.2000122070312, + "y_pos": 5826.100006103516 + }, + { + "id": 14589, + "x_pos": 1544.5025136410186, + "y_pos": 5976.506864708901 + }, + { + "id": 14588, + "x_pos": 1352.7000122070312, + "y_pos": 6176.300018310547 + }, + { + "id": 14587, + "x_pos": 1380.902979702103, + "y_pos": 6051.305479546123 + }, + { + "id": 14430, + "x_pos": 1673.6000366210938, + "y_pos": 6324.4000244140625 + }, + { + "id": 14426, + "x_pos": 3561.2000122070312, + "y_pos": 5253.5999755859375 + }, + { + "id": 14420, + "x_pos": 3385.2999572753906, + "y_pos": 4793.999969482422 + }, + { + "id": 14419, + "x_pos": 3399.2999877929688, + "y_pos": 4794.700012207031 + }, + { + "id": 14418, + "x_pos": 3391.2999877929688, + "y_pos": 4795.0999755859375 + }, + { + "id": 14416, + "x_pos": 3344.2000122070312, + "y_pos": 4796.200012207031 + }, + { + "id": 14323, + "x_pos": 3342, + "y_pos": 4941.5 + }, + { + "id": 14318, + "x_pos": 1389.2000122070312, + "y_pos": 6300.799987792969 + }, + { + "id": 14299, + "x_pos": 2687.6000061035156, + "y_pos": 5788.799987792969 + }, + { + "id": 14281, + "x_pos": 1755.8999633789062, + "y_pos": 6091.600006103516 + }, + { + "id": 14280, + "x_pos": 1782.1999816894531, + "y_pos": 6120.600006103516 + }, + { + "id": 14279, + "x_pos": 1685.6000061035156, + "y_pos": 6306.100006103516 + }, + { + "id": 14273, + "x_pos": 1775.7000122070312, + "y_pos": 5902.600006103516 + }, + { + "id": 14272, + "x_pos": 1979.2999877929688, + "y_pos": 5831.9000244140625 + }, + { + "id": 14168, + "x_pos": 3596.7999877929688, + "y_pos": 5062.5999755859375 + }, + { + "id": 14167, + "x_pos": 3579.7000122070312, + "y_pos": 5077.399993896484 + }, + { + "id": 14166, + "x_pos": 3595.800018310547, + "y_pos": 5078.5 + }, + { + "id": 13478, + "x_pos": -360, + "y_pos": 355.5 + }, + { + "id": 13202, + "x_pos": 3758.390804800687, + "y_pos": 4650.156034899688 + }, + { + "id": 13201, + "x_pos": 3777.6130080979656, + "y_pos": 4670.594691636619 + }, + { + "id": 13200, + "x_pos": 3733.8350429296734, + "y_pos": 4685.484422842045 + }, + { + "id": 13199, + "x_pos": 3797.168756879011, + "y_pos": 4717.273848823395 + }, + { + "id": 13198, + "x_pos": 3834.9464191965544, + "y_pos": 4767.698827829895 + }, + { + "id": 13197, + "x_pos": 3718.5024843055926, + "y_pos": 5163.657000268437 + }, + { + "id": 13192, + "x_pos": 2872.7240017350014, + "y_pos": 5557.455709042666 + }, + { + "id": 12048, + "x_pos": -82.38598916398496, + "y_pos": 2359.0652899959878 + }, + { + "id": 12045, + "x_pos": -1651.2756835635696, + "y_pos": 1189.2902325896002 + }, + { + "id": 12042, + "x_pos": -2044.3306145701417, + "y_pos": 1314.3092410551453 + }, + { + "id": 12041, + "x_pos": -1951.9973947864746, + "y_pos": 1331.814125522892 + }, + { + "id": 11921, + "x_pos": 910.8973083496094, + "y_pos": 246.9652557373047 + }, + { + "id": 11920, + "x_pos": 676.6490478515625, + "y_pos": 299.0618133544922 + }, + { + "id": 11813, + "x_pos": -1559, + "y_pos": 1221.5 + }, + { + "id": 11785, + "x_pos": -1882.6582581558473, + "y_pos": 1218.3876012018372 + }, + { + "id": 11694, + "x_pos": 481.5, + "y_pos": 380.5 + }, + { + "id": 10901, + "x_pos": -979.5, + "y_pos": 803 + }, + { + "id": 10877, + "x_pos": 659.8577200648533, + "y_pos": 111.57338629001515 + }, + { + "id": 10876, + "x_pos": 610.4727526395918, + "y_pos": 93.33776829948829 + }, + { + "id": 10875, + "x_pos": 651.8726171998578, + "y_pos": 16.45614362444212 + }, + { + "id": 10874, + "x_pos": 498.4632105642995, + "y_pos": -67.83062016822714 + }, + { + "id": 10626, + "x_pos": 440.5, + "y_pos": 188.5 + }, + { + "id": 10584, + "x_pos": -1150, + "y_pos": 1285 + }, + { + "id": 10164, + "x_pos": -446, + "y_pos": 767 + }, + { + "id": 9705, + "x_pos": 550.5025949444462, + "y_pos": -360 + }, + { + "id": 7309, + "x_pos": -111, + "y_pos": 850 + }, + { + "id": 7308, + "x_pos": -20.5, + "y_pos": 756.5 + }, + { + "id": 7224, + "x_pos": 316.5, + "y_pos": 1034 + }, + { + "id": 7217, + "x_pos": 315, + "y_pos": 1033 + }, + { + "id": 7208, + "x_pos": -246.5, + "y_pos": 1177 + }, + { + "id": 7183, + "x_pos": -244, + "y_pos": 1177 + }, + { + "id": 7177, + "x_pos": -249, + "y_pos": 1174 + }, + { + "id": 4697, + "x_pos": -2344.0015018591453, + "y_pos": 1363.5010315355144 + }, + { + "id": 4696, + "x_pos": -1276.9877553145584, + "y_pos": 1554.972328426632 + }, + { + "id": 4695, + "x_pos": -2349.5000715171022, + "y_pos": 1362.0041261420574 + }, + { + "id": 4694, + "x_pos": -2056.544182308165, + "y_pos": 1291.98043334853 + }, + { + "id": 4693, + "x_pos": -1972.4907590328494, + "y_pos": 1446.452581889644 + }, + { + "id": 4692, + "x_pos": -2055.516147604117, + "y_pos": 1293.4771913797708 + }, + { + "id": 4691, + "x_pos": -2101.0363869440293, + "y_pos": 905.4533187007255 + }, + { + "id": 4690, + "x_pos": -2100.500429102613, + "y_pos": 907.0027998821101 + }, + { + "id": 4689, + "x_pos": -1402.0164336725256, + "y_pos": 983.087173545156 + }, + { + "id": 4688, + "x_pos": -1289.0069218979384, + "y_pos": 807.1011346014225 + }, + { + "id": 4687, + "x_pos": -1266.0044187993626, + "y_pos": 843.5953011084284 + }, + { + "id": 4686, + "x_pos": -1402.0164336725256, + "y_pos": 981.0869113656959 + }, + { + "id": 4685, + "x_pos": -1353.016862775139, + "y_pos": 862.0977262684373 + }, + { + "id": 4684, + "x_pos": -1456.5002708074371, + "y_pos": 1539.4661392135463 + }, + { + "id": 4683, + "x_pos": -2030.041536175385, + "y_pos": 1129.9757177576075 + }, + { + "id": 4682, + "x_pos": -1276.9877553145584, + "y_pos": 1553.972623151065 + }, + { + "id": 4681, + "x_pos": -2074.0187937368974, + "y_pos": 1360.9572974805665 + }, + { + "id": 4680, + "x_pos": -1355.9920463406884, + "y_pos": 1559.4836753172895 + }, + { + "id": 4679, + "x_pos": -1265.5043472822604, + "y_pos": 842.5951700186984 + }, + { + "id": 4678, + "x_pos": -2030.9997139315913, + "y_pos": 1134.0088417329798 + }, + { + "id": 4677, + "x_pos": -1275.4849661475741, + "y_pos": 1552.9934012235667 + }, + { + "id": 4676, + "x_pos": -1828.0232993143336, + "y_pos": 1568.9751283087421 + }, + { + "id": 4675, + "x_pos": -1016.4467401375127, + "y_pos": 1570.9533554375134 + }, + { + "id": 4674, + "x_pos": -1159.7000122070312, + "y_pos": 1587.1999816894531 + }, + { + "id": 4673, + "x_pos": -1462.016862775139, + "y_pos": 1537.5687033161107 + }, + { + "id": 4672, + "x_pos": -1402.0164336725256, + "y_pos": 981.5869769105607 + }, + { + "id": 4671, + "x_pos": -1458.5005568758456, + "y_pos": 1540.4658444891138 + }, + { + "id": 4670, + "x_pos": -1244.4939057853444, + "y_pos": 1027.0929414932848 + }, + { + "id": 4668, + "x_pos": -1973.4891141394996, + "y_pos": 1445.4465400387744 + }, + { + "id": 4667, + "x_pos": -1358.9924754433014, + "y_pos": 1556.9844121283709 + }, + { + "id": 4666, + "x_pos": -1266.5044903164649, + "y_pos": 844.5954321981585 + }, + { + "id": 4665, + "x_pos": -1842.4775998860514, + "y_pos": 928.9763072064729 + }, + { + "id": 4664, + "x_pos": -1018.9059687945055, + "y_pos": 1636.9259044541045 + }, + { + "id": 4663, + "x_pos": -1319.9868971093324, + "y_pos": 1599.9717389777666 + }, + { + "id": 4662, + "x_pos": -2347.6306464846803, + "y_pos": 1366.2337489983975 + }, + { + "id": 4661, + "x_pos": -2163.519938010532, + "y_pos": 1647.4587711027298 + }, + { + "id": 4660, + "x_pos": -2163.0198664934296, + "y_pos": 1647.4587711027298 + }, + { + "id": 4659, + "x_pos": -2152.018293117182, + "y_pos": 1662.4543502362399 + }, + { + "id": 4658, + "x_pos": -2153.5185076684884, + "y_pos": 1661.4546449606728 + }, + { + "id": 4657, + "x_pos": -2015.9969095036354, + "y_pos": 1504.9419718100685 + }, + { + "id": 4656, + "x_pos": -1244.9939773024466, + "y_pos": 1028.5931381278801 + }, + { + "id": 4655, + "x_pos": -2016.9971240549419, + "y_pos": 1504.4354878725499 + }, + { + "id": 4654, + "x_pos": -1828.4989272434675, + "y_pos": 1570.50442086649 + }, + { + "id": 4652, + "x_pos": -1370.4941203366511, + "y_pos": 1600.971444253334 + }, + { + "id": 4651, + "x_pos": -1320.5002145513063, + "y_pos": 1605.006778661951 + }, + { + "id": 4650, + "x_pos": -1358.9860389041069, + "y_pos": 1556.400857751713 + }, + { + "id": 4648, + "x_pos": -1015.0015916740513, + "y_pos": 1642.0001800064488 + }, + { + "id": 4647, + "x_pos": -1223.5, + "y_pos": 1130.5 + }, + { + "id": 4646, + "x_pos": -1024.4106213801942, + "y_pos": 1641.9395849441971 + }, + { + "id": 4645, + "x_pos": -935.9995102541379, + "y_pos": 1602.5014400515888 + }, + { + "id": 4644, + "x_pos": -930.999755127069, + "y_pos": 1608.9994599806541 + }, + { + "id": 4643, + "x_pos": -940.4975512706901, + "y_pos": 1608.4999099967758 + }, + { + "id": 4642, + "x_pos": -1339.0074225176531, + "y_pos": 926.0797014305349 + }, + { + "id": 4641, + "x_pos": -936.9981634530177, + "y_pos": 1612.000360012897 + }, + { + "id": 4640, + "x_pos": -1840.9894002079084, + "y_pos": 934.9824964195586 + }, + { + "id": 4639, + "x_pos": -1914.4994993802848, + "y_pos": 2166.499410096214 + }, + { + "id": 4638, + "x_pos": -1451.5127147832136, + "y_pos": 1590.9617183470564 + }, + { + "id": 4637, + "x_pos": -1812.5352426703948, + "y_pos": 1533.5053375630896 + }, + { + "id": 4636, + "x_pos": -1825.0228702117206, + "y_pos": 1570.4746862220932 + }, + { + "id": 4631, + "x_pos": -1320.491402686769, + "y_pos": 1608.9768966553384 + }, + { + "id": 4628, + "x_pos": -2101.514645744972, + "y_pos": 909.4861804749667 + }, + { + "id": 4626, + "x_pos": -2028.5337408112493, + "y_pos": 1133.4746862220932 + }, + { + "id": 4625, + "x_pos": -1682.4918317893819, + "y_pos": 1087.988096183779 + }, + { + "id": 4624, + "x_pos": -1089.002916940217, + "y_pos": 1259.1198148879757 + }, + { + "id": 4623, + "x_pos": -1022.986840853202, + "y_pos": 937.4931833340297 + }, + { + "id": 4622, + "x_pos": -1022.4964088839201, + "y_pos": 939.0800946997251 + }, + { + "id": 4621, + "x_pos": -1018.9928330288121, + "y_pos": 1021.0827164943294 + }, + { + "id": 4619, + "x_pos": -1682.4667292865226, + "y_pos": 1084.9382877546605 + }, + { + "id": 4614, + "x_pos": -1681.4916887551776, + "y_pos": 1088.487948821563 + }, + { + "id": 4612, + "x_pos": -1456.9515676608642, + "y_pos": 1255.938582479093 + }, + { + "id": 4601, + "x_pos": -1457.4813902924661, + "y_pos": 1256.4559712206196 + }, + { + "id": 4599, + "x_pos": -1982.0882368430975, + "y_pos": 792.3535544802717 + }, + { + "id": 4597, + "x_pos": -1377.4886850368866, + "y_pos": 1339.4648129535994 + }, + { + "id": 4596, + "x_pos": -1353.016862775139, + "y_pos": 863.0978573581674 + }, + { + "id": 4595, + "x_pos": -2126.4992848289785, + "y_pos": 1717.0047155909224 + }, + { + "id": 4594, + "x_pos": -1376.4885420026822, + "y_pos": 1340.4645182291665 + }, + { + "id": 4593, + "x_pos": -2119.0009297223282, + "y_pos": 1717.500442086649 + }, + { + "id": 4592, + "x_pos": -1092.499570897387, + "y_pos": 1295.4980991989123 + }, + { + "id": 4589, + "x_pos": -2131.5137160226436, + "y_pos": 1718.9733599621463 + }, + { + "id": 4588, + "x_pos": -1289.5069934150406, + "y_pos": 807.1011346014225 + }, + { + "id": 4587, + "x_pos": -1821.9980690382415, + "y_pos": 1305.003241968759 + }, + { + "id": 4580, + "x_pos": -1092.5017011494801, + "y_pos": 1294.1152922922838 + }, + { + "id": 4577, + "x_pos": -1289.0069218979384, + "y_pos": 807.6012001462877 + }, + { + "id": 4571, + "x_pos": -1054.4640831537426, + "y_pos": 761.6036253062962 + }, + { + "id": 4569, + "x_pos": -2118.494549439264, + "y_pos": 1721.4766019309054 + }, + { + "id": 4566, + "x_pos": -2115.5000715171022, + "y_pos": 1718.499557913351 + }, + { + "id": 4562, + "x_pos": -1054.973451894126, + "y_pos": 762.5953011084284 + }, + { + "id": 4554, + "x_pos": -2163.0198664934296, + "y_pos": 1647.4587711027298 + }, + { + "id": 4551, + "x_pos": -1257.440006131911, + "y_pos": 1692.9481352505045 + }, + { + "id": 4549, + "x_pos": -1715.5373166663574, + "y_pos": 1764.8996788539826 + }, + { + "id": 4541, + "x_pos": -1042.9991429447418, + "y_pos": 1753.0007200257942 + }, + { + "id": 4538, + "x_pos": -2123.0141451252566, + "y_pos": 1721.4369614947136 + }, + { + "id": 4536, + "x_pos": -1035.5017141105168, + "y_pos": 1751.500360012897 + }, + { + "id": 4535, + "x_pos": -2189.5236568998444, + "y_pos": 1681.9486031098031 + }, + { + "id": 4533, + "x_pos": -2382.992260891995, + "y_pos": 1599.4661392135463 + }, + { + "id": 4532, + "x_pos": -2383.492332409097, + "y_pos": 1600.9656971268973 + }, + { + "id": 4530, + "x_pos": -983.5014692375858, + "y_pos": 1789.50126004514 + }, + { + "id": 4527, + "x_pos": -988.396541186663, + "y_pos": 1788.4543454729805 + }, + { + "id": 4525, + "x_pos": -911.8830731754592, + "y_pos": 1785.9665859114843 + }, + { + "id": 4523, + "x_pos": -706.9993878176724, + "y_pos": 1172.500270009673 + }, + { + "id": 4522, + "x_pos": -709.9973063977591, + "y_pos": 1168.99873995486 + }, + { + "id": 4521, + "x_pos": -703.0018365469823, + "y_pos": 1171.9977499193928 + }, + { + "id": 4520, + "x_pos": -2461.4998569657955, + "y_pos": 1638.0019157088122 + }, + { + "id": 4519, + "x_pos": -2449.0013588249412, + "y_pos": 1641.0069260241676 + }, + { + "id": 4518, + "x_pos": -807.9749005245749, + "y_pos": 1233.4555155148964 + }, + { + "id": 4517, + "x_pos": -622.4977961436211, + "y_pos": 1262.000900032243 + }, + { + "id": 4515, + "x_pos": -2453.500858205226, + "y_pos": 1638.0054524020043 + }, + { + "id": 4514, + "x_pos": -2458.002988457319, + "y_pos": 1641.453760787375 + }, + { + "id": 4513, + "x_pos": -2465.4989272434677, + "y_pos": 1639.9997052755675 + }, + { + "id": 4512, + "x_pos": -2453.0000715171022, + "y_pos": 1645.5022104332447 + }, + { + "id": 4509, + "x_pos": -2461.9998569657955, + "y_pos": 1645.5002947244325 + }, + { + "id": 4508, + "x_pos": -620.4973063977591, + "y_pos": 1263.498469945187 + }, + { + "id": 4505, + "x_pos": -1369.4939773024466, + "y_pos": 1582.4768966553384 + }, + { + "id": 4504, + "x_pos": -743.936210601481, + "y_pos": 1450.9984470528834 + }, + { + "id": 4502, + "x_pos": -1223.5, + "y_pos": 1132.5 + }, + { + "id": 4500, + "x_pos": -677.9337618721711, + "y_pos": 1508.4897167401273 + }, + { + "id": 4498, + "x_pos": -620.4646158614742, + "y_pos": 1261.961185718027 + }, + { + "id": 4497, + "x_pos": -679.9349862368263, + "y_pos": 1507.9923268336315 + }, + { + "id": 4496, + "x_pos": -2519.0005006197152, + "y_pos": 1553.5063365753022 + }, + { + "id": 4495, + "x_pos": -726.5023262928444, + "y_pos": 1597.5010800386917 + }, + { + "id": 4494, + "x_pos": -726.0028160387064, + "y_pos": 1594.4998199935512 + }, + { + "id": 4492, + "x_pos": -2519.5009297223282, + "y_pos": 1554.5033893309756 + }, + { + "id": 4491, + "x_pos": -721.0018365469823, + "y_pos": 1599.0005400193459 + }, + { + "id": 4489, + "x_pos": -2521.529521302222, + "y_pos": 1554.9117625557215 + }, + { + "id": 4488, + "x_pos": -703.475880016299, + "y_pos": 1168.4443551150844 + }, + { + "id": 4486, + "x_pos": -668.9988980718108, + "y_pos": 1581.504680167663 + }, + { + "id": 4485, + "x_pos": -1266.0036321112389, + "y_pos": 845.1061160111699 + }, + { + "id": 4483, + "x_pos": -558.9404958777732, + "y_pos": 1265.9619057438213 + }, + { + "id": 4481, + "x_pos": -670.4375574026012, + "y_pos": 1587.4350847829824 + }, + { + "id": 4480, + "x_pos": -675.9964493425009, + "y_pos": 1582.5010800386917 + }, + { + "id": 4478, + "x_pos": -586.4212733526915, + "y_pos": 1545.9439050989631 + }, + { + "id": 4477, + "x_pos": -568.9990205082759, + "y_pos": 1761.5008100290188 + }, + { + "id": 4476, + "x_pos": -1243.4937627511404, + "y_pos": 1028.5931381278801 + }, + { + "id": 4475, + "x_pos": -1402.5239429682529, + "y_pos": 981.6133914911961 + }, + { + "id": 4474, + "x_pos": -615.503060911637, + "y_pos": 1262.998469945187 + }, + { + "id": 4472, + "x_pos": -957.9871831777414, + "y_pos": 1288.6259105604304 + }, + { + "id": 4470, + "x_pos": -1144.421150916226, + "y_pos": 1955.4452551473273 + }, + { + "id": 4468, + "x_pos": -1138.400581590024, + "y_pos": 1954.4791863628852 + }, + { + "id": 4467, + "x_pos": -2440.007008676012, + "y_pos": 1793.4977895667553 + }, + { + "id": 4466, + "x_pos": -2442.503703628341, + "y_pos": 1792.9553817717542 + }, + { + "id": 4464, + "x_pos": -2419.499427863183, + "y_pos": 1917.5057471264367 + }, + { + "id": 4463, + "x_pos": -2420.5039896967496, + "y_pos": 1919.975570395391 + }, + { + "id": 4462, + "x_pos": -2244.9788871938904, + "y_pos": 2027.4438875188807 + }, + { + "id": 4460, + "x_pos": -2230.97688471503, + "y_pos": 2024.9446243299626 + }, + { + "id": 4458, + "x_pos": -623.9373125296706, + "y_pos": 1274.9635258018584 + }, + { + "id": 4456, + "x_pos": -1873.4998569657957, + "y_pos": 2131.9994756410792 + }, + { + "id": 4455, + "x_pos": -587.9475971927714, + "y_pos": 1243.9579456019524 + }, + { + "id": 4454, + "x_pos": -1871.0007151710215, + "y_pos": 2132.999147916754 + }, + { + "id": 4451, + "x_pos": -1872.425606952779, + "y_pos": 2132.912794091236 + }, + { + "id": 4450, + "x_pos": -1340.5076370689599, + "y_pos": 926.5797669753997 + }, + { + "id": 4449, + "x_pos": -1018.4928330288121, + "y_pos": 1026.5893365257043 + }, + { + "id": 4448, + "x_pos": -1052.4730943086151, + "y_pos": 764.0954977430238 + }, + { + "id": 4447, + "x_pos": -958.5103547188419, + "y_pos": 1290.5785216229629 + }, + { + "id": 4446, + "x_pos": -1091.5064927953254, + "y_pos": 1296.0954321981585 + }, + { + "id": 4445, + "x_pos": -618.4789587109926, + "y_pos": 2117.579701430535 + }, + { + "id": 4444, + "x_pos": -934.4995102541379, + "y_pos": 2221.4996399871025 + }, + { + "id": 4443, + "x_pos": -675.9864680067194, + "y_pos": 2400.5851416543383 + }, + { + "id": 4442, + "x_pos": -520.436700347343, + "y_pos": 1341.9529054213922 + }, + { + "id": 4441, + "x_pos": -674.3649525785672, + "y_pos": 2399.459925672887 + }, + { + "id": 4440, + "x_pos": -897.5051339703841, + "y_pos": 706.601724505208 + }, + { + "id": 4439, + "x_pos": -667.5012243646547, + "y_pos": 2400.500270009673 + }, + { + "id": 4438, + "x_pos": -1500, + "y_pos": 1930.5011788977308 + }, + { + "id": 4437, + "x_pos": -898.0052054874864, + "y_pos": 707.1017900500733 + }, + { + "id": 4436, + "x_pos": -1400.4829636687136, + "y_pos": 1735.471886339983 + }, + { + "id": 4435, + "x_pos": -654.5010012394305, + "y_pos": 2379.999344551349 + }, + { + "id": 4434, + "x_pos": -853.0018365469823, + "y_pos": 2233.5011700419154 + }, + { + "id": 4433, + "x_pos": -654.0007151710215, + "y_pos": 2381.499672275674 + }, + { + "id": 4432, + "x_pos": -834.9961943326139, + "y_pos": 647.0939246662615 + }, + { + "id": 4431, + "x_pos": -658.4913311696669, + "y_pos": 2379.582257680274 + }, + { + "id": 4430, + "x_pos": -660.0047201287425, + "y_pos": 2382.4946908659267 + }, + { + "id": 4429, + "x_pos": -1396.3415743577375, + "y_pos": 1732.9480136609382 + }, + { + "id": 4428, + "x_pos": -571.4833212542244, + "y_pos": 2375.0830442186543 + }, + { + "id": 4427, + "x_pos": -1377.970019073222, + "y_pos": 1338.9316564549254 + }, + { + "id": 4426, + "x_pos": -835.4962658497161, + "y_pos": 656.5951700186984 + }, + { + "id": 4425, + "x_pos": -553.4807466385464, + "y_pos": 2383.0840929364967 + }, + { + "id": 4424, + "x_pos": -544.9795308478097, + "y_pos": 2383.0840929364967 + }, + { + "id": 4423, + "x_pos": -962.4535701397249, + "y_pos": 698.5498785169143 + }, + { + "id": 4422, + "x_pos": -530.9775283689492, + "y_pos": 2366.581929955948 + }, + { + "id": 4421, + "x_pos": -838.9967664694309, + "y_pos": 671.097070819786 + }, + { + "id": 4420, + "x_pos": -514.9752398216801, + "y_pos": 2362.081340052162 + }, + { + "id": 4419, + "x_pos": -541.5047916458448, + "y_pos": 2358.9956084940386 + }, + { + "id": 4418, + "x_pos": -1713.020438630247, + "y_pos": 1768.4696759067383 + }, + { + "id": 4417, + "x_pos": -504.48997234472563, + "y_pos": 2378.5874357246166 + }, + { + "id": 4416, + "x_pos": -485.4998569657955, + "y_pos": 2416.994953045387 + }, + { + "id": 4415, + "x_pos": -484.99992848289776, + "y_pos": 2424.5001310897305 + }, + { + "id": 4414, + "x_pos": -1503.999570897387, + "y_pos": 1931.5017683465958 + }, + { + "id": 4413, + "x_pos": -497.48897110529515, + "y_pos": 2424.5934658522056 + }, + { + "id": 4412, + "x_pos": -809.5005006197152, + "y_pos": 653.9928556097038 + }, + { + "id": 4411, + "x_pos": -1911.4998569657957, + "y_pos": 2166.9997378205394 + }, + { + "id": 4410, + "x_pos": -561.5001430342045, + "y_pos": 2486.9986891026983 + }, + { + "id": 4409, + "x_pos": 259.999570897387, + "y_pos": 2564.9973782053958 + }, + { + "id": 4408, + "x_pos": 258.5001430342045, + "y_pos": 2566.9982958335077 + }, + { + "id": 4407, + "x_pos": -930.0009794917241, + "y_pos": 2218.000540019346 + }, + { + "id": 4406, + "x_pos": 253.5306960977996, + "y_pos": 2568.241859426793 + }, + { + "id": 4405, + "x_pos": -555.5011019281892, + "y_pos": 1766.5 + }, + { + "id": 4404, + "x_pos": -809.5072079663469, + "y_pos": 655.0800291548603 + }, + { + "id": 4403, + "x_pos": 210.501716410452, + "y_pos": 2555.498492468103 + }, + { + "id": 4402, + "x_pos": -564.9997139315915, + "y_pos": 2486.9986891026983 + }, + { + "id": 4401, + "x_pos": 214.5098131039681, + "y_pos": 2559.0850761094725 + }, + { + "id": 4400, + "x_pos": 208.00888338163986, + "y_pos": 2556.5847483851476 + }, + { + "id": 4399, + "x_pos": -137.50350433800577, + "y_pos": 2592.997050481071 + }, + { + "id": 4398, + "x_pos": -608.504004957721, + "y_pos": 847.9998689102699 + }, + { + "id": 4397, + "x_pos": -134.00271764988202, + "y_pos": 2590.4983613783725 + }, + { + "id": 4396, + "x_pos": -1699.9971393159135, + "y_pos": 2229.499672275674 + }, + { + "id": 4395, + "x_pos": -851.5132154029284, + "y_pos": 912.1137192155215 + }, + { + "id": 4394, + "x_pos": -608.9638686024364, + "y_pos": 847.6202081571664 + }, + { + "id": 4393, + "x_pos": -504.48997234472563, + "y_pos": 2480.600806877097 + }, + { + "id": 4392, + "x_pos": -1912.0007714271521, + "y_pos": 2165.0905163332764 + }, + { + "id": 4391, + "x_pos": -1197.0011019281892, + "y_pos": 2011.50063002257 + }, + { + "id": 4390, + "x_pos": -607.9790302280944, + "y_pos": 851.6044118446775 + }, + { + "id": 4389, + "x_pos": -501.9896147592149, + "y_pos": 2475.1000858835805 + }, + { + "id": 4388, + "x_pos": -728.4996326906034, + "y_pos": 1600.4976599161682 + }, + { + "id": 4387, + "x_pos": -722.9801745017294, + "y_pos": 646.0937935765314 + }, + { + "id": 4386, + "x_pos": -499.4892571737041, + "y_pos": 2472.09969261439 + }, + { + "id": 4385, + "x_pos": -933.4998775635345, + "y_pos": 2212.5006300225705 + }, + { + "id": 4384, + "x_pos": -1355.9992848289785, + "y_pos": 2217.505747126437 + }, + { + "id": 4383, + "x_pos": -288.502288547269, + "y_pos": 2514.9959362183636 + }, + { + "id": 4382, + "x_pos": -1360.9895432421126, + "y_pos": 2224.980580710746 + }, + { + "id": 4381, + "x_pos": -611.4779574715621, + "y_pos": 2119.579963609995 + }, + { + "id": 4380, + "x_pos": -1289.0069218979384, + "y_pos": 808.1012656911525 + }, + { + "id": 4379, + "x_pos": -1514.0034890770344, + "y_pos": 2326.0772762705255 + }, + { + "id": 4378, + "x_pos": -1463.502145513065, + "y_pos": 2401.9959362183636 + }, + { + "id": 4377, + "x_pos": -2310.0007866881238, + "y_pos": 1404.0025051576777 + }, + { + "id": 4376, + "x_pos": 253.002574615678, + "y_pos": 2607.4977059297216 + }, + { + "id": 4375, + "x_pos": -1260.9936197169359, + "y_pos": 662.5906474230064 + }, + { + "id": 4374, + "x_pos": -1259.9934766827314, + "y_pos": 663.0907129678717 + }, + { + "id": 4373, + "x_pos": -1461.502145513065, + "y_pos": 2402.9986235578326 + }, + { + "id": 4372, + "x_pos": -1463.4994278631827, + "y_pos": 2404.5001966345953 + }, + { + "id": 4371, + "x_pos": -695.901076586737, + "y_pos": 2171.478434613955 + }, + { + "id": 4370, + "x_pos": -1696.0003575855108, + "y_pos": 2229.4986235578326 + }, + { + "id": 4369, + "x_pos": -1471.521797455188, + "y_pos": 534.5810778727018 + }, + { + "id": 4368, + "x_pos": -1489.0005006197152, + "y_pos": 2409.4992134616186 + }, + { + "id": 4367, + "x_pos": -2420.4652989444794, + "y_pos": 1918.8987946806847 + }, + { + "id": 4366, + "x_pos": -1494.9986411750588, + "y_pos": 2409.999475641079 + }, + { + "id": 4365, + "x_pos": -1471.0333117086363, + "y_pos": 533.9788123641506 + }, + { + "id": 4364, + "x_pos": -1446.4990702776718, + "y_pos": 2606.9983613783725 + }, + { + "id": 4363, + "x_pos": -134.00078668812375, + "y_pos": 2593.9989512821585 + }, + { + "id": 4362, + "x_pos": -559.0006999100501, + "y_pos": 2486.092417134364 + }, + { + "id": 4361, + "x_pos": -452.0001224364655, + "y_pos": 1711.5004500161212 + }, + { + "id": 4360, + "x_pos": -340.4993878176724, + "y_pos": 1647.500270009673 + }, + { + "id": 4359, + "x_pos": -129.00992561622888, + "y_pos": 2592.580422424051 + }, + { + "id": 4358, + "x_pos": -615.4785296083796, + "y_pos": 2111.5789148921535 + }, + { + "id": 4357, + "x_pos": -1447.4996424144892, + "y_pos": 2608.9982958335077 + }, + { + "id": 4356, + "x_pos": -1697.9698045219156, + "y_pos": 2231.59608764681 + }, + { + "id": 4355, + "x_pos": -1445.5012157907368, + "y_pos": 2608.998492468103 + }, + { + "id": 4354, + "x_pos": -2134.532238952104, + "y_pos": 2256.0992993452 + }, + { + "id": 4353, + "x_pos": -1517.9984981408545, + "y_pos": 2605.997312660531 + }, + { + "id": 4352, + "x_pos": -1470.5216544209839, + "y_pos": 536.0812745072972 + }, + { + "id": 4351, + "x_pos": -1204.000244872931, + "y_pos": 2011.5013500483642 + }, + { + "id": 4350, + "x_pos": 247.51453323271062, + "y_pos": 2607.5914339613873 + }, + { + "id": 4349, + "x_pos": -1445.4998569657955, + "y_pos": 2607.4984269232373 + }, + { + "id": 4348, + "x_pos": -1521.5000715171022, + "y_pos": 2605.9992790064834 + }, + { + "id": 4347, + "x_pos": -1605.5145027107674, + "y_pos": 2533.0895331602997 + }, + { + "id": 4346, + "x_pos": -2434.005920658508, + "y_pos": 2032.942266534501 + }, + { + "id": 4345, + "x_pos": -1608.4994278631827, + "y_pos": 2537.499672275674 + }, + { + "id": 4344, + "x_pos": -153.01335843713287, + "y_pos": 2626.0848139300124 + }, + { + "id": 4343, + "x_pos": -1445.5030599744214, + "y_pos": 2613.108016812258 + }, + { + "id": 4342, + "x_pos": -1469.5215113867794, + "y_pos": 535.5812089624319 + }, + { + "id": 4341, + "x_pos": -2069.6578945006045, + "y_pos": 2817.7663076614745 + }, + { + "id": 4340, + "x_pos": -1840.4893286908061, + "y_pos": 941.4805807107464 + }, + { + "id": 4339, + "x_pos": -295.0105692701486, + "y_pos": 2517.092482679229 + }, + { + "id": 4338, + "x_pos": -1603.500858205226, + "y_pos": 2535.998492468103 + }, + { + "id": 4337, + "x_pos": -1519.5024163205019, + "y_pos": 2607.583175308385 + }, + { + "id": 4336, + "x_pos": -1469.5215113867794, + "y_pos": 536.581340052162 + }, + { + "id": 4335, + "x_pos": -2071.9999284828978, + "y_pos": 2821.500327724326 + }, + { + "id": 4334, + "x_pos": -1261.4917602722799, + "y_pos": 660.097529633842 + }, + { + "id": 4333, + "x_pos": -1176.93596572855, + "y_pos": 1788.9861166111555 + }, + { + "id": 4332, + "x_pos": -1138.500734618793, + "y_pos": 1958.9991899709812 + }, + { + "id": 4331, + "x_pos": -669.9977961436211, + "y_pos": 1776.5004500161212 + }, + { + "id": 4330, + "x_pos": -1722.4994278631827, + "y_pos": 2753.499410096214 + }, + { + "id": 4329, + "x_pos": -663, + "y_pos": 1783.0008100290188 + }, + { + "id": 4328, + "x_pos": -2404.50170114948, + "y_pos": 2051.436814132497 + }, + { + "id": 4327, + "x_pos": -540.0095500443081, + "y_pos": 1918.5020700741588 + }, + { + "id": 4326, + "x_pos": -538.4992653812069, + "y_pos": 1928.500990035467 + }, + { + "id": 4325, + "x_pos": -1717.9953513883593, + "y_pos": 2753.9980336540466 + }, + { + "id": 4324, + "x_pos": -1629.9967817304027, + "y_pos": 2797.9975092951263 + }, + { + "id": 4323, + "x_pos": -1596.4997854486935, + "y_pos": 474.99836137837246 + }, + { + "id": 4322, + "x_pos": -1636.497425384322, + "y_pos": 2798.9998689102695 + }, + { + "id": 4321, + "x_pos": -437.884909722442, + "y_pos": 1685.4690159985403 + }, + { + "id": 4320, + "x_pos": -1039.4074380320912, + "y_pos": 1748.4366148377953 + }, + { + "id": 4319, + "x_pos": -526.5025030985757, + "y_pos": 2492.999147916754 + }, + { + "id": 4318, + "x_pos": -409.50330578456806, + "y_pos": 1601.500990035467 + }, + { + "id": 4317, + "x_pos": -1608.5142166423589, + "y_pos": 2595.079504795939 + }, + { + "id": 4316, + "x_pos": -1363.4526404173967, + "y_pos": 2215.934456337036 + }, + { + "id": 4315, + "x_pos": -496.4308233969996, + "y_pos": 1326.9502053246633 + }, + { + "id": 4314, + "x_pos": -1475.0097825820249, + "y_pos": 2669.1012656911525 + }, + { + "id": 4313, + "x_pos": -1473.9916887551776, + "y_pos": 2720.104477389543 + }, + { + "id": 4312, + "x_pos": -1595.5123571977026, + "y_pos": 2531.571180598072 + }, + { + "id": 4311, + "x_pos": -1596.032310469206, + "y_pos": 474.0848139300124 + }, + { + "id": 4310, + "x_pos": -970.9985307624142, + "y_pos": 2303.5004500161212 + }, + { + "id": 4309, + "x_pos": -695.9900438618279, + "y_pos": 2175.587304634886 + }, + { + "id": 4308, + "x_pos": -1258.0025030985757, + "y_pos": 520.5089890951958 + }, + { + "id": 4307, + "x_pos": -1633.4994278631827, + "y_pos": 2800.4988857372937 + }, + { + "id": 4306, + "x_pos": -288.96208067488215, + "y_pos": 2511.095694377619 + }, + { + "id": 4305, + "x_pos": -660.427640048897, + "y_pos": 1776.4765762693805 + }, + { + "id": 4304, + "x_pos": -1632.4993563460805, + "y_pos": 2799.9989512821585 + }, + { + "id": 4303, + "x_pos": -1954.0011442736345, + "y_pos": 2923.998492468103 + }, + { + "id": 4302, + "x_pos": -540.0001224364655, + "y_pos": 1906.5022500806072 + }, + { + "id": 4301, + "x_pos": -1949.5254448273984, + "y_pos": 2922.596939730056 + }, + { + "id": 4300, + "x_pos": -1950.0255163445006, + "y_pos": 2924.597201909516 + }, + { + "id": 4299, + "x_pos": -1394.4890426223974, + "y_pos": 2508.600806877097 + }, + { + "id": 4298, + "x_pos": -527.4313131428617, + "y_pos": 1919.9805364112494 + }, + { + "id": 4297, + "x_pos": -2009.036315426927, + "y_pos": 2863.589205435974 + }, + { + "id": 4296, + "x_pos": -669.0005006197152, + "y_pos": 2402.499672275674 + }, + { + "id": 4295, + "x_pos": -1719.4985543969851, + "y_pos": 2758.1223055928494 + }, + { + "id": 4294, + "x_pos": -939.0003673093966, + "y_pos": 2218.499279974206 + }, + { + "id": 4293, + "x_pos": -1259.5030599744214, + "y_pos": 521.9823490573422 + }, + { + "id": 4292, + "x_pos": -1843.012571749009, + "y_pos": 2971.6033631268356 + }, + { + "id": 4291, + "x_pos": -1752.0038619235168, + "y_pos": 2984.9990168270233 + }, + { + "id": 4290, + "x_pos": -1747.5013588249412, + "y_pos": 2989.0003932691907 + }, + { + "id": 4289, + "x_pos": -152.51328692003062, + "y_pos": 2623.5844862056874 + }, + { + "id": 4288, + "x_pos": -1502.0140020910524, + "y_pos": 1931.5000325233018 + }, + { + "id": 4287, + "x_pos": -532.9940488195489, + "y_pos": 2494.102576588454 + }, + { + "id": 4286, + "x_pos": -442.9998775635345, + "y_pos": 1740.00063002257 + }, + { + "id": 4285, + "x_pos": -267.50097949172414, + "y_pos": 1733.499729990327 + }, + { + "id": 4284, + "x_pos": -1260.5032030086259, + "y_pos": 524.4816122462607 + }, + { + "id": 4283, + "x_pos": -1697.4939773024466, + "y_pos": 1197.4558238584032 + }, + { + "id": 4282, + "x_pos": -1822.5225126262098, + "y_pos": 1307.052346110098 + }, + { + "id": 4281, + "x_pos": -2076.003775145443, + "y_pos": 1362.4710021666851 + }, + { + "id": 4280, + "x_pos": -2308.999126533802, + "y_pos": 1407.9550870473217 + }, + { + "id": 4279, + "x_pos": -1353.5169342922409, + "y_pos": 864.0979884478975 + }, + { + "id": 4278, + "x_pos": -2190.021797455188, + "y_pos": 1681.3899529477048 + }, + { + "id": 4277, + "x_pos": -528.9934766827314, + "y_pos": 2491.6022488641293 + }, + { + "id": 4276, + "x_pos": -2129.500429102613, + "y_pos": 1723.0023577954616 + }, + { + "id": 4275, + "x_pos": -1198.5217974551879, + "y_pos": 1222.0857315581238 + }, + { + "id": 4274, + "x_pos": -1262.9999284828978, + "y_pos": 524.9985263778367 + }, + { + "id": 4273, + "x_pos": -1836.0396052136266, + "y_pos": 2426.0734091234854 + }, + { + "id": 4272, + "x_pos": -1492.468159628566, + "y_pos": 2411.1136536706563 + }, + { + "id": 4271, + "x_pos": -1202.9987756353453, + "y_pos": 2017.500270009673 + }, + { + "id": 4270, + "x_pos": -1689.0000715171022, + "y_pos": 1643.003094606543 + }, + { + "id": 4269, + "x_pos": -722.9801745017294, + "y_pos": 646.0937935765314 + }, + { + "id": 4268, + "x_pos": -1692.0174349119561, + "y_pos": 1643.50651646082 + }, + { + "id": 4267, + "x_pos": -100.99964241448924, + "y_pos": 2693.9992790064844 + }, + { + "id": 4266, + "x_pos": -1594.0330256402276, + "y_pos": 473.57426120673153 + }, + { + "id": 4265, + "x_pos": -2441.0005568758456, + "y_pos": 1791.9094047602603 + }, + { + "id": 4264, + "x_pos": -722.9801745017294, + "y_pos": 645.5937280316662 + }, + { + "id": 4263, + "x_pos": -98.00549155589488, + "y_pos": 2693.093596941936 + }, + { + "id": 4262, + "x_pos": -97.97516830457789, + "y_pos": 2691.0923515894992 + }, + { + "id": 4261, + "x_pos": -1467.4925469604036, + "y_pos": 2077.371090584015 + }, + { + "id": 4260, + "x_pos": -2671.691507538621, + "y_pos": 1667.2474536845157 + }, + { + "id": 4259, + "x_pos": -1358.0025030985757, + "y_pos": 2996.498558012968 + }, + { + "id": 4258, + "x_pos": -1345, + "y_pos": 2996.0011142627063 + }, + { + "id": 4257, + "x_pos": -871.5421798293046, + "y_pos": 537.9964958301098 + }, + { + "id": 4256, + "x_pos": -965.4166207670032, + "y_pos": 2302.9669459243814 + }, + { + "id": 4255, + "x_pos": -873.0016296323784, + "y_pos": 540.579963609995 + }, + { + "id": 4254, + "x_pos": -984.9993878176724, + "y_pos": 1790.998469945187 + }, + { + "id": 4253, + "x_pos": -404.4085399602809, + "y_pos": 1511.9862066143796 + }, + { + "id": 4252, + "x_pos": -1753.5027023889106, + "y_pos": 2990.1237475798816 + }, + { + "id": 4251, + "x_pos": -239.32565047314574, + "y_pos": 1661.4364348313466 + }, + { + "id": 4250, + "x_pos": -479.4266605571729, + "y_pos": 1319.9489452795233 + }, + { + "id": 4249, + "x_pos": -552.9375574026012, + "y_pos": 1918.4802664015765 + }, + { + "id": 4248, + "x_pos": -1336.5, + "y_pos": 366.0017683465958 + }, + { + "id": 4247, + "x_pos": -1091.5064927953254, + "y_pos": 1297.5956288327538 + }, + { + "id": 4246, + "x_pos": -729.4463728281166, + "y_pos": 1594.0051072914812 + }, + { + "id": 4245, + "x_pos": -1337.9803175359334, + "y_pos": 366.5818185533635 + }, + { + "id": 4244, + "x_pos": -2668.5372451492553, + "y_pos": 1666.4925170502688 + }, + { + "id": 4243, + "x_pos": -1987.5112129240679, + "y_pos": 2204.092482679229 + }, + { + "id": 4242, + "x_pos": -1337.9961228155116, + "y_pos": 368.47851763971767 + }, + { + "id": 4241, + "x_pos": -1633.4855382843916, + "y_pos": 2797.5985128068187 + }, + { + "id": 4240, + "x_pos": 251.01503385242586, + "y_pos": 2605.591171781927 + }, + { + "id": 4239, + "x_pos": -1357.9661571497054, + "y_pos": 3010.0646916564265 + }, + { + "id": 4238, + "x_pos": -1358.5033613038017, + "y_pos": 3002.9990168270233 + }, + { + "id": 4229, + "x_pos": -1415.9472766347344, + "y_pos": 3159.0721637710485 + }, + { + "id": 4210, + "x_pos": -851.0092819623096, + "y_pos": 912.6027076781847 + }, + { + "id": 4180, + "x_pos": -1410.9989272434677, + "y_pos": 3160.996460577285 + }, + { + "id": 4176, + "x_pos": -1416.9745961677604, + "y_pos": 3161.5845517505522 + }, + { + "id": 4159, + "x_pos": -2093.528233994383, + "y_pos": 3091.128139085844 + }, + { + "id": 4158, + "x_pos": -2092.0013588249412, + "y_pos": 3096.0009831729767 + }, + { + "id": 4157, + "x_pos": -1920.9877553145586, + "y_pos": 3103.594580114913 + }, + { + "id": 4154, + "x_pos": -1821.0026461327802, + "y_pos": 3236.000655448651 + }, + { + "id": 4153, + "x_pos": -1823.504004957721, + "y_pos": 3237.9961983978246 + }, + { + "id": 4146, + "x_pos": -1826.974310099352, + "y_pos": 3237.1120805938945 + }, + { + "id": 4145, + "x_pos": -1546.4647983247642, + "y_pos": 3211.5790459818836 + }, + { + "id": 4141, + "x_pos": -1652.4748822361692, + "y_pos": 3287.086976910561 + }, + { + "id": 4139, + "x_pos": -1648.5002145513065, + "y_pos": 3283.9992790064844 + }, + { + "id": 4133, + "x_pos": -1679.963367982721, + "y_pos": 3332.097267454382 + }, + { + "id": 3909, + "x_pos": -738, + "y_pos": -557.5022500806072 + }, + { + "id": 3908, + "x_pos": -746.5, + "y_pos": -557.0373742303846 + }, + { + "id": 3907, + "x_pos": -740.5, + "y_pos": -557.0373742303846 + }, + { + "id": 3906, + "x_pos": -786.5, + "y_pos": -550.0454745205707 + }, + { + "id": 3905, + "x_pos": -784.5, + "y_pos": -553.5367442078145 + }, + { + "id": 3904, + "x_pos": -845.5, + "y_pos": -640.5686053492136 + }, + { + "id": 3903, + "x_pos": -841.5, + "y_pos": -634.9992799742058 + }, + { + "id": 3902, + "x_pos": -850, + "y_pos": -632.9989199613085 + }, + { + "id": 3901, + "x_pos": -955, + "y_pos": -580.9917197033651 + }, + { + "id": 3900, + "x_pos": -948, + "y_pos": -574.5874160230906 + }, + { + "id": 3899, + "x_pos": -955, + "y_pos": -571.9982899387385 + }, + { + "id": 3898, + "x_pos": -1015, + "y_pos": -401.99837994196287 + }, + { + "id": 3897, + "x_pos": -1009, + "y_pos": -400.57985575225007 + }, + { + "id": 3896, + "x_pos": -845, + "y_pos": -296.49873995485996 + }, + { + "id": 3895, + "x_pos": -851, + "y_pos": -295.09776639388406 + }, + { + "id": 3894, + "x_pos": -986.5, + "y_pos": -282.069325375008 + }, + { + "id": 3893, + "x_pos": -984, + "y_pos": -276.5575349526257 + }, + { + "id": 3892, + "x_pos": -1022, + "y_pos": -195.49981999355145 + }, + { + "id": 3891, + "x_pos": -1015, + "y_pos": -194.54277442384205 + }, + { + "id": 3890, + "x_pos": -1113.5, + "y_pos": -132.53161402402975 + }, + { + "id": 3889, + "x_pos": -1098.5, + "y_pos": -132.53161402402975 + }, + { + "id": 3888, + "x_pos": -687.5, + "y_pos": -281.99765991616846 + }, + { + "id": 3887, + "x_pos": -690.5, + "y_pos": -284.55663492038275 + }, + { + "id": 3886, + "x_pos": -689.5, + "y_pos": -278.99729990327114 + }, + { + "id": 3885, + "x_pos": -705.5, + "y_pos": -243.50522018700894 + }, + { + "id": 3884, + "x_pos": -703, + "y_pos": -242.99936997742998 + }, + { + "id": 3883, + "x_pos": -706, + "y_pos": -244.54997468178544 + }, + { + "id": 3882, + "x_pos": -799, + "y_pos": -180.57337552010108 + }, + { + "id": 3881, + "x_pos": -797, + "y_pos": -168.54889464309372 + }, + { + "id": 3880, + "x_pos": -603.5, + "y_pos": -295.51559345010605 + }, + { + "id": 3879, + "x_pos": -222, + "y_pos": -325.49621986457987 + }, + { + "id": 3878, + "x_pos": -218.5, + "y_pos": -317.99936997743 + }, + { + "id": 3877, + "x_pos": -229, + "y_pos": -320.99864995163557 + }, + { + "id": 3876, + "x_pos": -265, + "y_pos": -313.541514378702 + }, + { + "id": 3875, + "x_pos": -292.5, + "y_pos": -199.49972999032707 + }, + { + "id": 3874, + "x_pos": -297, + "y_pos": -203.52171366935772 + }, + { + "id": 3873, + "x_pos": -288, + "y_pos": -204.5218936758065 + }, + { + "id": 3872, + "x_pos": -324, + "y_pos": -155 + }, + { + "id": 3871, + "x_pos": -314.5, + "y_pos": -163.51451341141455 + }, + { + "id": 3870, + "x_pos": -314.5, + "y_pos": -380.5576249558501 + }, + { + "id": 3869, + "x_pos": -387, + "y_pos": -341.13793072422163 + }, + { + "id": 3868, + "x_pos": -421.5, + "y_pos": -211.9925297323839 + }, + { + "id": 3867, + "x_pos": -416.5, + "y_pos": -204.53197403692707 + }, + { + "id": 3866, + "x_pos": -426.5, + "y_pos": -204.9985599484114 + }, + { + "id": 3865, + "x_pos": -313, + "y_pos": -149.99873995485996 + }, + { + "id": 3864, + "x_pos": -420, + "y_pos": -197.53071399178702 + }, + { + "id": 3863, + "x_pos": -304, + "y_pos": -156.99936997742998 + }, + { + "id": 3862, + "x_pos": -341.5, + "y_pos": -107.51451341141455 + }, + { + "id": 3861, + "x_pos": -437, + "y_pos": -57.49261973560806 + }, + { + "id": 3860, + "x_pos": -442.5, + "y_pos": -52.498199935514094 + }, + { + "id": 3859, + "x_pos": -430, + "y_pos": -53.49522982911253 + }, + { + "id": 3858, + "x_pos": -556.5, + "y_pos": -106.52144365968502 + }, + { + "id": 3857, + "x_pos": -436.5, + "y_pos": -47.99828993873848 + }, + { + "id": 3855, + "x_pos": -286.5, + "y_pos": 89.40583373508775 + }, + { + "id": 3854, + "x_pos": -289.5, + "y_pos": 94.5 + }, + { + "id": 3853, + "x_pos": -262.9751453975059, + "y_pos": 148.90196359644324 + }, + { + "id": 3852, + "x_pos": -293.00036730939655, + "y_pos": 156.502160077383 + }, + { + "id": 3851, + "x_pos": -476.5, + "y_pos": 95.44921528919599 + }, + { + "id": 3850, + "x_pos": -288.5026936022409, + "y_pos": 160.50117004191588 + }, + { + "id": 3849, + "x_pos": -300.49779614362114, + "y_pos": 161.00243008705593 + }, + { + "id": 3848, + "x_pos": -292.9981634530177, + "y_pos": 166.00153005481297 + }, + { + "id": 3847, + "x_pos": -256.00208141991334, + "y_pos": 151.50117004191588 + }, + { + "id": 3846, + "x_pos": -69.5, + "y_pos": 287.94156501513135 + }, + { + "id": 3845, + "x_pos": -73.5, + "y_pos": 294.0003600128971 + }, + { + "id": 3844, + "x_pos": -159, + "y_pos": 305.0003600128971 + }, + { + "id": 3843, + "x_pos": -216, + "y_pos": 344.00126004514004 + }, + { + "id": 3842, + "x_pos": -567.5, + "y_pos": 473.9992799742058 + }, + { + "id": 3841, + "x_pos": -564.5, + "y_pos": 483.004950177336 + }, + { + "id": 3840, + "x_pos": -561, + "y_pos": 475.4624457631671 + }, + { + "id": 3839, + "x_pos": -571, + "y_pos": 478.9628957792884 + }, + { + "id": 3838, + "x_pos": -204, + "y_pos": 329.5 + }, + { + "id": 3837, + "x_pos": -224.5, + "y_pos": 525.5028801031772 + }, + { + "id": 3836, + "x_pos": -223, + "y_pos": 539.4482252537291 + }, + { + "id": 3835, + "x_pos": -151.5, + "y_pos": 575.9508353472334 + }, + { + "id": 3834, + "x_pos": 742.5, + "y_pos": 625.5018029361363 + }, + { + "id": 3833, + "x_pos": -146.5, + "y_pos": 579.9995499838788 + }, + { + "id": 3832, + "x_pos": -151.5, + "y_pos": 606.9603756890083 + }, + { + "id": 3831, + "x_pos": -114.5, + "y_pos": 594.9582156116253 + }, + { + "id": 3830, + "x_pos": 341, + "y_pos": -61.03215404337561 + }, + { + "id": 3829, + "x_pos": 347, + "y_pos": -56 + }, + { + "id": 3828, + "x_pos": 363.5, + "y_pos": -353.5182935468347 + }, + { + "id": 3827, + "x_pos": 357, + "y_pos": -409.0282839047311 + }, + { + "id": 3826, + "x_pos": 374, + "y_pos": -351.5179335339376 + }, + { + "id": 3825, + "x_pos": 363, + "y_pos": -401.52693385636667 + }, + { + "id": 3824, + "x_pos": 385, + "y_pos": -350.01766352426466 + }, + { + "id": 3823, + "x_pos": 355.5, + "y_pos": -59.53188403370268 + }, + { + "id": 3822, + "x_pos": 375, + "y_pos": -347.5172135081432 + }, + { + "id": 3821, + "x_pos": 341.5, + "y_pos": -270.5157734565546 + }, + { + "id": 3820, + "x_pos": 476, + "y_pos": -170.06383517832614 + }, + { + "id": 3819, + "x_pos": 926.5, + "y_pos": -642.5760756168297 + }, + { + "id": 3818, + "x_pos": 938, + "y_pos": -640.9973899064955 + }, + { + "id": 3817, + "x_pos": 993, + "y_pos": -629.0560048978127 + }, + { + "id": 3816, + "x_pos": 984.5, + "y_pos": -628.5559148945886 + }, + { + "id": 3815, + "x_pos": 931, + "y_pos": -637.9998199935515 + }, + { + "id": 3814, + "x_pos": 986, + "y_pos": -627.55573488814 + }, + { + "id": 3813, + "x_pos": 996, + "y_pos": -625.5553748752427 + }, + { + "id": 3812, + "x_pos": 944, + "y_pos": -609.0484446269725 + }, + { + "id": 3811, + "x_pos": 951, + "y_pos": -609.551414733374 + }, + { + "id": 3810, + "x_pos": 959, + "y_pos": -607.5 + }, + { + "id": 3809, + "x_pos": 1086, + "y_pos": -567.99873995486 + }, + { + "id": 3808, + "x_pos": 826.5, + "y_pos": -235.49954998387852 + }, + { + "id": 3807, + "x_pos": 832.5, + "y_pos": -227.50126004514004 + }, + { + "id": 3806, + "x_pos": 824.5, + "y_pos": -227.55510486557 + }, + { + "id": 3805, + "x_pos": 822.5, + "y_pos": -122.5 + }, + { + "id": 3804, + "x_pos": 928, + "y_pos": -135.04169438515055 + }, + { + "id": 3803, + "x_pos": 912.5, + "y_pos": -139.04241441094473 + }, + { + "id": 3802, + "x_pos": 611.5, + "y_pos": 328.4448051312056 + }, + { + "id": 3801, + "x_pos": 443.54689316628173, + "y_pos": 438.45038533111165 + }, + { + "id": 3800, + "x_pos": 429.49975512706897, + "y_pos": 471.5008100290188 + }, + { + "id": 3799, + "x_pos": 618, + "y_pos": 329.0003600128971 + }, + { + "id": 3798, + "x_pos": 637, + "y_pos": 485.5003600128971 + }, + { + "id": 3797, + "x_pos": 633.5, + "y_pos": 481.9542554697564 + }, + { + "id": 3796, + "x_pos": 780.5, + "y_pos": 558.9681159662973 + }, + { + "id": 3795, + "x_pos": 777, + "y_pos": 567.9697360243345 + }, + { + "id": 3794, + "x_pos": 626.5, + "y_pos": 672.4076337995734 + }, + { + "id": 3793, + "x_pos": 620, + "y_pos": 677 + }, + { + "id": 3792, + "x_pos": 614, + "y_pos": 725.0020700741588 + }, + { + "id": 3791, + "x_pos": 618.5, + "y_pos": 730.0018000644859 + }, + { + "id": 3790, + "x_pos": 624, + "y_pos": 725.0033301192989 + }, + { + "id": 3789, + "x_pos": 834.5, + "y_pos": 1016.999099967757 + }, + { + "id": 3788, + "x_pos": 948, + "y_pos": 778.0003600128971 + }, + { + "id": 3787, + "x_pos": 952, + "y_pos": 780.49936997743 + }, + { + "id": 3786, + "x_pos": 845, + "y_pos": 1017.0000900032242 + }, + { + "id": 3785, + "x_pos": 836.5, + "y_pos": 1023.50063002257 + }, + { + "id": 3784, + "x_pos": 1003.5, + "y_pos": 837.50063002257 + }, + { + "id": 3783, + "x_pos": 1067, + "y_pos": 906.50126004514 + }, + { + "id": 3782, + "x_pos": 1184.5, + "y_pos": 860.0026100935042 + }, + { + "id": 3781, + "x_pos": 1195.5, + "y_pos": 861.0018900677101 + }, + { + "id": 3780, + "x_pos": 1184, + "y_pos": 871.000900032243 + }, + { + "id": 3779, + "x_pos": 1194.5, + "y_pos": 871.0002700096729 + }, + { + "id": 3778, + "x_pos": 1240.5, + "y_pos": 837.0003600128971 + }, + { + "id": 3777, + "x_pos": 1235, + "y_pos": 835.0041401483172 + }, + { + "id": 3776, + "x_pos": 1234.5, + "y_pos": 839.4610957148025 + }, + { + "id": 3775, + "x_pos": 1328.5, + "y_pos": 789.4995499838788 + }, + { + "id": 3774, + "x_pos": 1324, + "y_pos": 793.0014400515888 + }, + { + "id": 3773, + "x_pos": 1332.5, + "y_pos": 793.502160077383 + }, + { + "id": 3772, + "x_pos": 1344.5, + "y_pos": 853.5027000967289 + }, + { + "id": 3771, + "x_pos": 1338.5, + "y_pos": 861.4290545669546 + }, + { + "id": 3770, + "x_pos": 1328, + "y_pos": 797.0022500806072 + }, + { + "id": 3769, + "x_pos": 1334, + "y_pos": 856.4927097388322 + }, + { + "id": 2462, + "x_pos": -890, + "y_pos": 1098.882222355007 + }, + { + "id": 2367, + "x_pos": -728, + "y_pos": 732.4703604038896 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/380ece40b8222cd7cd17cf44ba325739_5103907981293273194.png" + }, + "47": { + "name": "Whopperflower", + "clear_name": "Whopperflower", + "points": [ + { + "id": 26523, + "x_pos": -2469.25, + "y_pos": 3199.75 + }, + { + "id": 24735, + "x_pos": -550, + "y_pos": 225.89517009874635 + }, + { + "id": 24552, + "x_pos": -474, + "y_pos": 733 + }, + { + "id": 23612, + "x_pos": 1323.2999877929688, + "y_pos": 6275.8974303031555 + }, + { + "id": 23422, + "x_pos": 1694, + "y_pos": 8804.500623617278 + }, + { + "id": 23421, + "x_pos": 1693, + "y_pos": 8804.81376465529 + }, + { + "id": 23111, + "x_pos": 3827.5, + "y_pos": 4822.5 + }, + { + "id": 20207, + "x_pos": -90.00003051757812, + "y_pos": 5884.404982917265 + }, + { + "id": 19662, + "x_pos": 2340.7999877929688, + "y_pos": 8563.999984741211 + }, + { + "id": 19454, + "x_pos": 1916.8999938964844, + "y_pos": 7330 + }, + { + "id": 19400, + "x_pos": 1998.2000122070312, + "y_pos": 8560.699981689453 + }, + { + "id": 19392, + "x_pos": 2198.2000122070312, + "y_pos": 8378.100006103516 + }, + { + "id": 19391, + "x_pos": 2194, + "y_pos": 8380.399993896484 + }, + { + "id": 19384, + "x_pos": 1970, + "y_pos": 8407.599975585938 + }, + { + "id": 19361, + "x_pos": 1830.2000122070312, + "y_pos": 8196.500030517578 + }, + { + "id": 18969, + "x_pos": 1841.5, + "y_pos": 8821.5 + }, + { + "id": 18966, + "x_pos": 1796.5, + "y_pos": 8443.5 + }, + { + "id": 17987, + "x_pos": 3417.5, + "y_pos": 4989 + }, + { + "id": 17986, + "x_pos": 3365.5, + "y_pos": 6860.5 + }, + { + "id": 17818, + "x_pos": 3354, + "y_pos": 6574.5 + }, + { + "id": 17799, + "x_pos": 3149.5, + "y_pos": 6576.5 + }, + { + "id": 17798, + "x_pos": -73.30001831054688, + "y_pos": 6093.5 + }, + { + "id": 17611, + "x_pos": 3053.2000122070312, + "y_pos": 6853.899993896484 + }, + { + "id": 17610, + "x_pos": 3053.5, + "y_pos": 6860.300018310547 + }, + { + "id": 17609, + "x_pos": 3061.5, + "y_pos": 6858.0999755859375 + }, + { + "id": 17608, + "x_pos": 3536, + "y_pos": 7398.900009155273 + }, + { + "id": 17606, + "x_pos": 528.3999938964844, + "y_pos": 6151.200012207031 + }, + { + "id": 17603, + "x_pos": -18.300018310546875, + "y_pos": 5891.800018310547 + }, + { + "id": 17599, + "x_pos": 57.600006103515625, + "y_pos": 6436 + }, + { + "id": 17598, + "x_pos": -83.60000610351562, + "y_pos": 6367.199981689453 + }, + { + "id": 17597, + "x_pos": -89.39996337890625, + "y_pos": 6368.100036621094 + }, + { + "id": 17497, + "x_pos": 2482.699981689453, + "y_pos": 5938.399993896484 + }, + { + "id": 17496, + "x_pos": 2501, + "y_pos": 5943.5 + }, + { + "id": 17495, + "x_pos": 2483.699981689453, + "y_pos": 5955.700012207031 + }, + { + "id": 17492, + "x_pos": -140.79998779296875, + "y_pos": 5893.100006103516 + }, + { + "id": 17491, + "x_pos": -138, + "y_pos": 5899.299987792969 + }, + { + "id": 17490, + "x_pos": -133.39999389648438, + "y_pos": 5892.4000244140625 + }, + { + "id": 17489, + "x_pos": 3068.7000122070312, + "y_pos": 6493.5 + }, + { + "id": 17487, + "x_pos": 3729.499969482422, + "y_pos": 6539.199981689453 + }, + { + "id": 17486, + "x_pos": 3333, + "y_pos": 6648.199981689453 + }, + { + "id": 17473, + "x_pos": 2975.7999877929688, + "y_pos": 6953.799987792969 + }, + { + "id": 17472, + "x_pos": 3185.7999877929688, + "y_pos": 7097.100006103516 + }, + { + "id": 16710, + "x_pos": 299.5, + "y_pos": 6305.5 + }, + { + "id": 15524, + "x_pos": 2296.999969482422, + "y_pos": 5911.982452325748 + }, + { + "id": 15143, + "x_pos": 3461.5, + "y_pos": 5270 + }, + { + "id": 15142, + "x_pos": 3469.5, + "y_pos": 5269 + }, + { + "id": 15141, + "x_pos": 3472, + "y_pos": 5263.5 + }, + { + "id": 15043, + "x_pos": 1408.5, + "y_pos": 6265.5 + }, + { + "id": 15040, + "x_pos": 1335.5, + "y_pos": 6278.5 + }, + { + "id": 14541, + "x_pos": 2609.5, + "y_pos": 5798.5 + }, + { + "id": 14539, + "x_pos": 2207, + "y_pos": 5817.5 + }, + { + "id": 14538, + "x_pos": 2206, + "y_pos": 5821 + }, + { + "id": 14514, + "x_pos": 2342.5, + "y_pos": 5906.5 + }, + { + "id": 14315, + "x_pos": 2357.5, + "y_pos": 6033 + }, + { + "id": 14314, + "x_pos": 2361, + "y_pos": 6034.5 + }, + { + "id": 14312, + "x_pos": 3824.3999938964844, + "y_pos": 5145.699981689453 + }, + { + "id": 13935, + "x_pos": 3713.5, + "y_pos": 4937.657371036088 + }, + { + "id": 13846, + "x_pos": 3409, + "y_pos": 4870.5 + }, + { + "id": 13630, + "x_pos": 1975, + "y_pos": 5893 + }, + { + "id": 13629, + "x_pos": 1969, + "y_pos": 5901 + }, + { + "id": 13628, + "x_pos": 1659.5, + "y_pos": 6132.5 + }, + { + "id": 13627, + "x_pos": 1473.5, + "y_pos": 5833.5 + }, + { + "id": 13625, + "x_pos": 1519, + "y_pos": 5935.5 + }, + { + "id": 11929, + "x_pos": -743, + "y_pos": 2066.5 + }, + { + "id": 10140, + "x_pos": -1826.5, + "y_pos": 1330.4105255495488 + }, + { + "id": 8488, + "x_pos": -1662.5, + "y_pos": 2031.5 + }, + { + "id": 8487, + "x_pos": -1655, + "y_pos": 2034.5 + }, + { + "id": 7321, + "x_pos": 188.5, + "y_pos": 1663 + }, + { + "id": 7320, + "x_pos": 186, + "y_pos": 1667 + }, + { + "id": 7318, + "x_pos": 193, + "y_pos": 1665.4999694824219 + }, + { + "id": 6958, + "x_pos": 179.5, + "y_pos": 972 + }, + { + "id": 3272, + "x_pos": -1600.5001092444934, + "y_pos": 571.5014454795901 + }, + { + "id": 3271, + "x_pos": -2042.5, + "y_pos": 2872.00144547959 + }, + { + "id": 3270, + "x_pos": -2327.5396973765664, + "y_pos": 1649.7497638882041 + }, + { + "id": 3269, + "x_pos": -2042.500873955947, + "y_pos": 2107.5004818265297 + }, + { + "id": 3267, + "x_pos": 456.0002184889868, + "y_pos": 557.0016863928549 + }, + { + "id": 3152, + "x_pos": -2016.5, + "y_pos": 759.5 + }, + { + "id": 3122, + "x_pos": -1909.9995630220265, + "y_pos": 885.5010841096928 + }, + { + "id": 3117, + "x_pos": -2442.4990167995593, + "y_pos": 1359.0003613698973 + }, + { + "id": 3114, + "x_pos": -2353.0328149734823, + "y_pos": 1450.8099922044585 + }, + { + "id": 3111, + "x_pos": -2551.5032773348016, + "y_pos": 1602.5018068494878 + }, + { + "id": 3109, + "x_pos": -2273.999453777533, + "y_pos": 1767.5012045663252 + }, + { + "id": 3105, + "x_pos": -1906, + "y_pos": 1782 + }, + { + "id": 3096, + "x_pos": -1771, + "y_pos": 1778.49903634694 + }, + { + "id": 3094, + "x_pos": -1604.9992352885463, + "y_pos": 1878.0049387219328 + }, + { + "id": 3093, + "x_pos": -2303.545268845729, + "y_pos": 939.7778302835786 + }, + { + "id": 3091, + "x_pos": -1508.4995630220265, + "y_pos": 1725.4997590867351 + }, + { + "id": 3087, + "x_pos": -1380.9995630220265, + "y_pos": 1670.5025295892829 + }, + { + "id": 3084, + "x_pos": -1223.9994537775328, + "y_pos": 806.9996386301027 + }, + { + "id": 3075, + "x_pos": -2168.0004369779735, + "y_pos": 1697.501686392855 + }, + { + "id": 3072, + "x_pos": -2242.5004369779735, + "y_pos": 1334.001686392855 + }, + { + "id": 3066, + "x_pos": -1462.5, + "y_pos": 1332 + }, + { + "id": 3065, + "x_pos": -1604.0017479118942, + "y_pos": 1883.9998795433676 + }, + { + "id": 3060, + "x_pos": -1934.999453777533, + "y_pos": 965.5013250229576 + }, + { + "id": 3058, + "x_pos": -1633.0017479118942, + "y_pos": 2116.5013250229576 + }, + { + "id": 3055, + "x_pos": -1609.0006554669603, + "y_pos": 2129.499277260205 + }, + { + "id": 3053, + "x_pos": -1982.0447226232623, + "y_pos": 1124.7899964034623 + }, + { + "id": 3049, + "x_pos": -2152.4996722665196, + "y_pos": 1277.4998795433676 + }, + { + "id": 3046, + "x_pos": -1705.9998907555066, + "y_pos": 2140.500240913265 + }, + { + "id": 3042, + "x_pos": -1857.998033599119, + "y_pos": 2278.999397716838 + }, + { + "id": 3041, + "x_pos": -1861.5009832004405, + "y_pos": 2292.499156803572 + }, + { + "id": 3035, + "x_pos": -1842.999126044053, + "y_pos": 2285.0001204566324 + }, + { + "id": 3029, + "x_pos": -1591.9992352885463, + "y_pos": 2252.001084109693 + }, + { + "id": 3021, + "x_pos": 1941.0004369779735, + "y_pos": 707.0030114158126 + }, + { + "id": 3015, + "x_pos": 413.5008739559471, + "y_pos": 693.5018068494878 + }, + { + "id": 3006, + "x_pos": -1784.5001092444934, + "y_pos": 1011.0012045663252 + }, + { + "id": 2990, + "x_pos": -1657.9998907555066, + "y_pos": 1080.0010841096928 + }, + { + "id": 2989, + "x_pos": -1509, + "y_pos": 2313.4986749770424 + }, + { + "id": 2988, + "x_pos": -1501.5, + "y_pos": 1258 + }, + { + "id": 2985, + "x_pos": -1330.4996722665196, + "y_pos": 2670.5003613698973 + }, + { + "id": 2983, + "x_pos": -1328.5006554669603, + "y_pos": 2687.000240913265 + }, + { + "id": 2924, + "x_pos": -1644.5003277334802, + "y_pos": 2912.001084109693 + }, + { + "id": 2921, + "x_pos": -1076.0004369779735, + "y_pos": 2141.5034932423428 + }, + { + "id": 2918, + "x_pos": -1068.5020756453746, + "y_pos": 2143.001084109693 + }, + { + "id": 2915, + "x_pos": -892, + "y_pos": 2173.00144547959 + }, + { + "id": 2914, + "x_pos": -432.50054622246716, + "y_pos": 1933.5012045663252 + }, + { + "id": 2911, + "x_pos": -463.49923528854606, + "y_pos": 1791.4998795433676 + }, + { + "id": 2901, + "x_pos": -452.4970503986783, + "y_pos": 1713.5008431964275 + }, + { + "id": 2895, + "x_pos": 443.9998907555064, + "y_pos": -484.49915680357253 + }, + { + "id": 2892, + "x_pos": -206.00065546696032, + "y_pos": 2470.5015659362225 + }, + { + "id": 2889, + "x_pos": -20.499890755506385, + "y_pos": 2726.5004818265297 + }, + { + "id": 2888, + "x_pos": 227.99945377753284, + "y_pos": 2623.5024091326504 + }, + { + "id": 2886, + "x_pos": 570.4994537775328, + "y_pos": 945.5026500459153 + }, + { + "id": 2882, + "x_pos": 466.99956302202645, + "y_pos": 765.500722739795 + }, + { + "id": 2881, + "x_pos": 235.00098320044071, + "y_pos": 587.4997590867351 + }, + { + "id": 2879, + "x_pos": 907.4986890660794, + "y_pos": -416.9981931505124 + }, + { + "id": 2870, + "x_pos": 839.998798310573, + "y_pos": 1013.5028909591801 + }, + { + "id": 2868, + "x_pos": 1207.4973781321587, + "y_pos": 824.5048182653004 + }, + { + "id": 2861, + "x_pos": 834.497596621145, + "y_pos": 278.5009636530599 + }, + { + "id": 2859, + "x_pos": -636.4971596431719, + "y_pos": 829.0014454795901 + }, + { + "id": 2856, + "x_pos": -853.5, + "y_pos": 666.5 + }, + { + "id": 2854, + "x_pos": -636.5006554669603, + "y_pos": 760.5020477627527 + }, + { + "id": 2851, + "x_pos": -524.9998907555064, + "y_pos": 632.9996386301023 + }, + { + "id": 2848, + "x_pos": -1128.4998907555064, + "y_pos": -210.99747041071737 + }, + { + "id": 2847, + "x_pos": -802.0008739559471, + "y_pos": -573.9975908673498 + }, + { + "id": 2316, + "x_pos": -1463, + "y_pos": 1248.8073079158971 + }, + { + "id": 2310, + "x_pos": -1746, + "y_pos": 1142.2947184218492 + }, + { + "id": 2308, + "x_pos": -1298, + "y_pos": 987.5272315060847 + }, + { + "id": 2295, + "x_pos": -762, + "y_pos": 587.56047583173 + }, + { + "id": 2294, + "x_pos": -1811, + "y_pos": 2909.1356017052694 + }, + { + "id": 2289, + "x_pos": 1000, + "y_pos": 1023.2002590214706 + }, + { + "id": 2282, + "x_pos": 312, + "y_pos": 617.2619724963847 + }, + { + "id": 2277, + "x_pos": -541, + "y_pos": 119.94962674580051 + }, + { + "id": 2272, + "x_pos": 897, + "y_pos": 247.27456708310183 + }, + { + "id": 2270, + "x_pos": 875, + "y_pos": 342.3413183927023 + }, + { + "id": 2269, + "x_pos": 824, + "y_pos": -208.78084909845347 + }, + { + "id": 2267, + "x_pos": 659, + "y_pos": -582.9206490110132 + }, + { + "id": 656, + "x_pos": -694, + "y_pos": 2187.8583778371776 + }, + { + "id": 374, + "x_pos": -789, + "y_pos": 1974.098413137599 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a5842417b7fc163a30730478e5b9866e_271693866523629665.png" + }, + "128": { + "name": "Geo Sigil", + "clear_name": "GeoSigil", + "points": [ + { + "id": 26520, + "x_pos": -455.34921496674815, + "y_pos": 2058.073143447238 + }, + { + "id": 26519, + "x_pos": -613.6286165169013, + "y_pos": 1447.4387283855458 + }, + { + "id": 26450, + "x_pos": -1106.5, + "y_pos": 2239.75 + }, + { + "id": 26449, + "x_pos": -912.2451865653366, + "y_pos": 828.8797762012919 + }, + { + "id": 20282, + "x_pos": -1596.5, + "y_pos": 1357 + }, + { + "id": 20281, + "x_pos": -635.5, + "y_pos": 1742.5 + }, + { + "id": 20280, + "x_pos": -1805, + "y_pos": 2651.5 + }, + { + "id": 19424, + "x_pos": -1543.5, + "y_pos": 2223 + }, + { + "id": 19423, + "x_pos": -992, + "y_pos": 3281 + }, + { + "id": 18043, + "x_pos": -1025, + "y_pos": 690 + }, + { + "id": 14613, + "x_pos": -2040.5, + "y_pos": 3218 + }, + { + "id": 11930, + "x_pos": -627.5, + "y_pos": 1761.7000045776367 + }, + { + "id": 11926, + "x_pos": -2379.2999877929688, + "y_pos": 1553.5393422147245 + }, + { + "id": 11925, + "x_pos": -764.8999633789062, + "y_pos": 2210.6965429732127 + }, + { + "id": 11923, + "x_pos": -1751.5999755859375, + "y_pos": 3186.907000335508 + }, + { + "id": 11182, + "x_pos": -1384.5, + "y_pos": 3035.5 + }, + { + "id": 9300, + "x_pos": -1011.5, + "y_pos": 2466.5 + }, + { + "id": 9243, + "x_pos": -422, + "y_pos": 1744 + }, + { + "id": 6591, + "x_pos": -2601.5, + "y_pos": 1485.5 + }, + { + "id": 6589, + "x_pos": -2165, + "y_pos": 809 + }, + { + "id": 6588, + "x_pos": -2491, + "y_pos": 1346 + }, + { + "id": 6587, + "x_pos": -2184.5, + "y_pos": 824.5 + }, + { + "id": 6586, + "x_pos": -2460.500649608216, + "y_pos": 1406.003762935089 + }, + { + "id": 6585, + "x_pos": -2149.5, + "y_pos": 922.5 + }, + { + "id": 6583, + "x_pos": -2331, + "y_pos": 1379.0004025215667 + }, + { + "id": 6582, + "x_pos": -2159, + "y_pos": 1094.5 + }, + { + "id": 6580, + "x_pos": -1973.999350391784, + "y_pos": 1119.9971823490314 + }, + { + "id": 6579, + "x_pos": -2271.499783463928, + "y_pos": 1387.0004025215667 + }, + { + "id": 6578, + "x_pos": -2240, + "y_pos": 2038 + }, + { + "id": 6577, + "x_pos": -494.999133855712, + "y_pos": 1679.0008050431334 + }, + { + "id": 6575, + "x_pos": -472, + "y_pos": 1700 + }, + { + "id": 6574, + "x_pos": -422, + "y_pos": 1708.5 + }, + { + "id": 6572, + "x_pos": -523, + "y_pos": 1734.5004025215667 + }, + { + "id": 6571, + "x_pos": -735.5, + "y_pos": 1894.5 + }, + { + "id": 6569, + "x_pos": -1975, + "y_pos": 2146.5 + }, + { + "id": 6568, + "x_pos": -580.5, + "y_pos": 1869 + }, + { + "id": 6567, + "x_pos": 263.5, + "y_pos": 2584 + }, + { + "id": 6566, + "x_pos": -504.5, + "y_pos": 1489.5 + }, + { + "id": 6564, + "x_pos": 227.5, + "y_pos": 2610 + }, + { + "id": 6563, + "x_pos": -1103.999133855712, + "y_pos": 1415.0028176509686 + }, + { + "id": 6562, + "x_pos": 219.5, + "y_pos": 2604.5 + }, + { + "id": 6561, + "x_pos": -1949.5, + "y_pos": 1173.5 + }, + { + "id": 6560, + "x_pos": 272, + "y_pos": 2546 + }, + { + "id": 6559, + "x_pos": -1097.9984842474955, + "y_pos": 1437.0032201725353 + }, + { + "id": 6558, + "x_pos": -292.9401963837681, + "y_pos": 2510.4339865550164 + }, + { + "id": 6557, + "x_pos": -1094.500649608216, + "y_pos": 1403.0016100862676 + }, + { + "id": 6556, + "x_pos": -553.000216536072, + "y_pos": 1946.5020126078343 + }, + { + "id": 6555, + "x_pos": -1523, + "y_pos": 1251 + }, + { + "id": 6554, + "x_pos": 146.5, + "y_pos": 2654.5 + }, + { + "id": 6553, + "x_pos": -1070.5, + "y_pos": 1310.5 + }, + { + "id": 6552, + "x_pos": -962.5, + "y_pos": 3228 + }, + { + "id": 6551, + "x_pos": -1360, + "y_pos": 930.502351834431 + }, + { + "id": 6550, + "x_pos": -983.5, + "y_pos": 3176.5 + }, + { + "id": 6548, + "x_pos": -1278.499566927856, + "y_pos": 822.498792435299 + }, + { + "id": 6547, + "x_pos": -1401.5, + "y_pos": 3114.5 + }, + { + "id": 6546, + "x_pos": -2047, + "y_pos": 3064 + }, + { + "id": 6545, + "x_pos": -623.8286803066576, + "y_pos": 1422.9231184727087 + }, + { + "id": 6543, + "x_pos": -1421, + "y_pos": 3106 + }, + { + "id": 6541, + "x_pos": -1134, + "y_pos": 878.5 + }, + { + "id": 6539, + "x_pos": -1930, + "y_pos": 3221.5 + }, + { + "id": 6536, + "x_pos": -1109.5, + "y_pos": 537.5 + }, + { + "id": 6533, + "x_pos": -951.5010826803605, + "y_pos": 963.0008050431338 + }, + { + "id": 6531, + "x_pos": -1090, + "y_pos": 1060 + }, + { + "id": 6529, + "x_pos": -1115, + "y_pos": 537.5 + }, + { + "id": 6527, + "x_pos": -502.8873615821858, + "y_pos": 1335.8116199986662 + }, + { + "id": 6524, + "x_pos": -1146.5, + "y_pos": 538 + }, + { + "id": 6520, + "x_pos": -975.5, + "y_pos": 748 + }, + { + "id": 6516, + "x_pos": -990.5, + "y_pos": 737.5 + }, + { + "id": 6512, + "x_pos": -1092, + "y_pos": 1441.5028176509686 + }, + { + "id": 6510, + "x_pos": -798, + "y_pos": 827.5 + }, + { + "id": 6507, + "x_pos": -1721.0012992164325, + "y_pos": 2585.0008050431343 + }, + { + "id": 6506, + "x_pos": -511.5, + "y_pos": 1128 + }, + { + "id": 6505, + "x_pos": -1751, + "y_pos": 2623.0004025215676 + }, + { + "id": 6503, + "x_pos": -1956.500216536072, + "y_pos": 2711 + }, + { + "id": 6501, + "x_pos": -809.998700783568, + "y_pos": 667.0024151294015 + }, + { + "id": 6499, + "x_pos": -1722.999783463928, + "y_pos": 2839.5023518344306 + }, + { + "id": 6497, + "x_pos": -878.500433072144, + "y_pos": 565.4971823490314 + }, + { + "id": 6493, + "x_pos": -1686.500433072144, + "y_pos": 2655.5008050431343 + }, + { + "id": 6490, + "x_pos": -1415, + "y_pos": 3122.5 + }, + { + "id": 6487, + "x_pos": -1018.5, + "y_pos": 3165.5 + }, + { + "id": 6483, + "x_pos": -157, + "y_pos": 2639.5 + }, + { + "id": 6479, + "x_pos": -1622, + "y_pos": 3321 + }, + { + "id": 6476, + "x_pos": -1539, + "y_pos": 2724.0014111006585 + }, + { + "id": 6473, + "x_pos": -1600.000216536072, + "y_pos": 2853.0014111006585 + }, + { + "id": 6469, + "x_pos": -34.5, + "y_pos": 2723.5 + }, + { + "id": 6466, + "x_pos": -1527.5, + "y_pos": 2890.0004703668865 + }, + { + "id": 6464, + "x_pos": -1819.999783463928, + "y_pos": 2869 + }, + { + "id": 6462, + "x_pos": -1993.999783463928, + "y_pos": 2537.5 + }, + { + "id": 6460, + "x_pos": -1891.497401567135, + "y_pos": 2416.498118532455 + }, + { + "id": 6458, + "x_pos": -1649.000649608216, + "y_pos": 2507.5014111006585 + }, + { + "id": 6456, + "x_pos": -1156.3457866563504, + "y_pos": 1655.3587150219983 + }, + { + "id": 6453, + "x_pos": -1177.5, + "y_pos": 2006 + }, + { + "id": 6452, + "x_pos": -838.000433072144, + "y_pos": 1998.9979873921657 + }, + { + "id": 6449, + "x_pos": -1298, + "y_pos": 1885.5 + }, + { + "id": 6448, + "x_pos": -1458.000866144288, + "y_pos": 1969.4947672196295 + }, + { + "id": 6447, + "x_pos": -1015.499783463928, + "y_pos": 1859.9979873921657 + }, + { + "id": 6445, + "x_pos": -1597, + "y_pos": 1473.5 + }, + { + "id": 6444, + "x_pos": -2134.5, + "y_pos": 2095 + }, + { + "id": 6442, + "x_pos": -1745.5, + "y_pos": 1575 + }, + { + "id": 6441, + "x_pos": -1602, + "y_pos": 1473 + }, + { + "id": 6440, + "x_pos": -2504.5, + "y_pos": 1482.5 + }, + { + "id": 6439, + "x_pos": -1008.499350391784, + "y_pos": 1689.501207564701 + }, + { + "id": 6437, + "x_pos": -1466.499350391784, + "y_pos": 1973.5004025215667 + }, + { + "id": 6436, + "x_pos": -1713, + "y_pos": 1753.5 + }, + { + "id": 6435, + "x_pos": -1726, + "y_pos": 1716.5 + }, + { + "id": 6434, + "x_pos": -1599.000433072144, + "y_pos": 1697.996377305897 + }, + { + "id": 6431, + "x_pos": -1596, + "y_pos": 1491 + }, + { + "id": 6430, + "x_pos": -389.999566927856, + "y_pos": 1573.0020126078343 + }, + { + "id": 6429, + "x_pos": -1102.9987007835675, + "y_pos": 1338.0044277372363 + }, + { + "id": 6428, + "x_pos": -1600, + "y_pos": 1475.5 + }, + { + "id": 6426, + "x_pos": -1519.500649608216, + "y_pos": 1678.4979873921657 + }, + { + "id": 6425, + "x_pos": -1443, + "y_pos": 1467 + }, + { + "id": 6424, + "x_pos": -243.000866144288, + "y_pos": 1816.4971823490314 + }, + { + "id": 6422, + "x_pos": -1425, + "y_pos": 1578 + }, + { + "id": 6420, + "x_pos": -320, + "y_pos": 1591.4971823490314 + }, + { + "id": 6419, + "x_pos": -941.5, + "y_pos": 1604.5 + }, + { + "id": 6413, + "x_pos": -1736, + "y_pos": 2435.9995296331135 + }, + { + "id": 6409, + "x_pos": -1237, + "y_pos": 2054.5 + }, + { + "id": 6408, + "x_pos": -1591.5, + "y_pos": 1582.5 + }, + { + "id": 6406, + "x_pos": 148.5, + "y_pos": 2425.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/c32b2bd632f7d486e77b891cd605ce72_4798107996554298047.png" + }, + "85": { + "name": "Viewpoint", + "clear_name": "Viewpoint", + "points": [ + { + "id": 26514, + "x_pos": -2655, + "y_pos": 2949 + }, + { + "id": 26193, + "x_pos": -2520.5, + "y_pos": 3072.5 + }, + { + "id": 26192, + "x_pos": -2194.25, + "y_pos": 2998.25 + }, + { + "id": 20283, + "x_pos": 2959, + "y_pos": 7010.5 + }, + { + "id": 19435, + "x_pos": 1966.752270197434, + "y_pos": 8677.25 + }, + { + "id": 16815, + "x_pos": 84.5, + "y_pos": 6226.166641235352 + }, + { + "id": 16814, + "x_pos": 283.3333740234375, + "y_pos": 6275.83332824707 + }, + { + "id": 16813, + "x_pos": 94, + "y_pos": 6279.166641235352 + }, + { + "id": 16812, + "x_pos": 3208, + "y_pos": 6561.499984741211 + }, + { + "id": 16811, + "x_pos": 3247.8333740234375, + "y_pos": 6688.833358764648 + }, + { + "id": 16810, + "x_pos": 2920.6666870117188, + "y_pos": 6716.499984741211 + }, + { + "id": 12150, + "x_pos": 3628, + "y_pos": 4825.5 + }, + { + "id": 12147, + "x_pos": 3692.4999389648438, + "y_pos": 5122.333297729492 + }, + { + "id": 12143, + "x_pos": 3736.0874633732255, + "y_pos": 5583.695188787464 + }, + { + "id": 12141, + "x_pos": 3507, + "y_pos": 5337 + }, + { + "id": 12135, + "x_pos": 2891, + "y_pos": 4856 + }, + { + "id": 12130, + "x_pos": 2764.2447964602006, + "y_pos": 5581.121143431776 + }, + { + "id": 12120, + "x_pos": 2694.7238372553675, + "y_pos": 5644.987244600625 + }, + { + "id": 12116, + "x_pos": 1943, + "y_pos": 5732 + }, + { + "id": 12102, + "x_pos": 1614, + "y_pos": 5910 + }, + { + "id": 12096, + "x_pos": 1412.5, + "y_pos": 6089 + }, + { + "id": 5078, + "x_pos": 473.17887228485097, + "y_pos": -85.51539259809556 + }, + { + "id": 5077, + "x_pos": 1014.0732511306915, + "y_pos": -94.30613771070148 + }, + { + "id": 5054, + "x_pos": -1964.9677695024957, + "y_pos": 2662.149948112379 + }, + { + "id": 5053, + "x_pos": -1899.4157263182137, + "y_pos": 3215.26237973398 + }, + { + "id": 5052, + "x_pos": -1942.4405619396673, + "y_pos": 2995.280463468076 + }, + { + "id": 5051, + "x_pos": -936.4310741741683, + "y_pos": 3004.226935615152 + }, + { + "id": 5050, + "x_pos": -1066.4186563634412, + "y_pos": 2926.756954613751 + }, + { + "id": 5049, + "x_pos": -1180.9314927520581, + "y_pos": 2756.6589407749516 + }, + { + "id": 5048, + "x_pos": -948.9189354153677, + "y_pos": 2534.33218294759 + }, + { + "id": 5047, + "x_pos": -1560.96665329479, + "y_pos": 2078.30758906922 + }, + { + "id": 5046, + "x_pos": -2350.9172611038093, + "y_pos": 1633.2909520338517 + }, + { + "id": 5045, + "x_pos": -1839.911401013354, + "y_pos": 1654.1347085712628 + }, + { + "id": 5044, + "x_pos": -1520.9991628442206, + "y_pos": 1891.992303700952 + }, + { + "id": 5043, + "x_pos": -1035.4575841071805, + "y_pos": 1867.8032489730367 + }, + { + "id": 5042, + "x_pos": -2207.8807053014452, + "y_pos": 1475.3036106477184 + }, + { + "id": 5041, + "x_pos": -523.9984652144044, + "y_pos": 2442.9954727652657 + }, + { + "id": 5040, + "x_pos": -411.9443291406742, + "y_pos": 451.73489245815426 + }, + { + "id": 5039, + "x_pos": -1552.9228421423381, + "y_pos": 463.80433399708227 + }, + { + "id": 5038, + "x_pos": -1005.4041456632663, + "y_pos": 1136.7931220819428 + }, + { + "id": 5037, + "x_pos": 711.0613914238174, + "y_pos": 909.2421259517923 + }, + { + "id": 5036, + "x_pos": -64.95172401672517, + "y_pos": -34.21447308637744 + }, + { + "id": 5035, + "x_pos": -978.930934648205, + "y_pos": 788.7555079150234 + }, + { + "id": 5034, + "x_pos": -549.9567469514013, + "y_pos": -390.2397903141116 + }, + { + "id": 5033, + "x_pos": 75.05553133336252, + "y_pos": 303.2656348061173 + }, + { + "id": 5032, + "x_pos": 19.51255733668995, + "y_pos": 81.178109533093 + }, + { + "id": 5031, + "x_pos": 352.01269686265323, + "y_pos": 276.88932754733287 + }, + { + "id": 5030, + "x_pos": 665.5738092345446, + "y_pos": -171.7010911231464 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/873545b6a19891b8d21ae766cd1b70e4_4883968056261625769.png" + }, + "45": { + "name": "Precious\u00a0Chest", + "clear_name": "PreciousChest", + "points": [ + { + "id": 26513, + "x_pos": -2169, + "y_pos": 2688.3333129882812 + }, + { + "id": 26454, + "x_pos": -2468.8333435058594, + "y_pos": 3004.5833282470703 + }, + { + "id": 26453, + "x_pos": -2736.3333129882812, + "y_pos": 2918 + }, + { + "id": 24972, + "x_pos": -2533, + "y_pos": 2836 + }, + { + "id": 24960, + "x_pos": -2373.5, + "y_pos": 3334 + }, + { + "id": 24959, + "x_pos": -2605.8333282470703, + "y_pos": 3206.5 + }, + { + "id": 24553, + "x_pos": -1684, + "y_pos": 1482.5022543065024 + }, + { + "id": 23294, + "x_pos": -2177.5836464149797, + "y_pos": 1482.2000007629395 + }, + { + "id": 23043, + "x_pos": -1366.7106958444128, + "y_pos": 2991.901892184126 + }, + { + "id": 19562, + "x_pos": 1969.5, + "y_pos": 8508.5 + }, + { + "id": 19561, + "x_pos": 1940, + "y_pos": 8643.5 + }, + { + "id": 19560, + "x_pos": 1843, + "y_pos": 8584 + }, + { + "id": 19559, + "x_pos": 2030.5, + "y_pos": 8372.5 + }, + { + "id": 19558, + "x_pos": 2165, + "y_pos": 8399.5 + }, + { + "id": 19227, + "x_pos": 1926, + "y_pos": 8190.5 + }, + { + "id": 19190, + "x_pos": 1878, + "y_pos": 8214.5 + }, + { + "id": 18628, + "x_pos": 1798, + "y_pos": 7305 + }, + { + "id": 18617, + "x_pos": 1939.5, + "y_pos": 8656 + }, + { + "id": 18594, + "x_pos": 2257.5, + "y_pos": 8503.5 + }, + { + "id": 18588, + "x_pos": 1962, + "y_pos": 8540.5 + }, + { + "id": 17634, + "x_pos": 522.5, + "y_pos": 916.5 + }, + { + "id": 17535, + "x_pos": -62, + "y_pos": 6360 + }, + { + "id": 17345, + "x_pos": 3522.5, + "y_pos": 6989 + }, + { + "id": 17231, + "x_pos": 3013, + "y_pos": 6761 + }, + { + "id": 16306, + "x_pos": 3475.5, + "y_pos": 7328.5 + }, + { + "id": 16302, + "x_pos": 3421, + "y_pos": 7000 + }, + { + "id": 16162, + "x_pos": 3735.5, + "y_pos": 6585 + }, + { + "id": 15837, + "x_pos": 939.5, + "y_pos": 1106.5 + }, + { + "id": 15789, + "x_pos": -127, + "y_pos": 2637 + }, + { + "id": 13758, + "x_pos": 1955, + "y_pos": 5790 + }, + { + "id": 13548, + "x_pos": 2282.5, + "y_pos": 6196.5 + }, + { + "id": 13495, + "x_pos": 3640, + "y_pos": 5444.5 + }, + { + "id": 13379, + "x_pos": 3384, + "y_pos": 4948 + }, + { + "id": 13378, + "x_pos": 3544.5, + "y_pos": 4153 + }, + { + "id": 12624, + "x_pos": 3861.8820190429688, + "y_pos": 5750.279022216797 + }, + { + "id": 12606, + "x_pos": 3369.5, + "y_pos": 4831.5 + }, + { + "id": 12598, + "x_pos": 3457.5, + "y_pos": 4759 + }, + { + "id": 12594, + "x_pos": 3507.5, + "y_pos": 4645.5 + }, + { + "id": 12590, + "x_pos": 3508.7641281285396, + "y_pos": 4612.640494727208 + }, + { + "id": 12586, + "x_pos": 3465.5, + "y_pos": 4600 + }, + { + "id": 12575, + "x_pos": 3637.3999633789062, + "y_pos": 4437.616877592797 + }, + { + "id": 12551, + "x_pos": 3422.9000854492188, + "y_pos": 5254 + }, + { + "id": 12531, + "x_pos": 1690.8333435058594, + "y_pos": 6276.020321411961 + }, + { + "id": 12518, + "x_pos": 917.6666870117188, + "y_pos": 6081.533698566473 + }, + { + "id": 11612, + "x_pos": -1264.5, + "y_pos": 645 + }, + { + "id": 9311, + "x_pos": -1010.5, + "y_pos": 2466.5 + }, + { + "id": 7599, + "x_pos": 170.5, + "y_pos": 1347.5 + }, + { + "id": 7448, + "x_pos": 89.7217023873909, + "y_pos": 1418.835727531894 + }, + { + "id": 7447, + "x_pos": 81.61083593064814, + "y_pos": 1419.055944425334 + }, + { + "id": 7446, + "x_pos": 73.54534593804692, + "y_pos": 1419.1811860320431 + }, + { + "id": 7445, + "x_pos": 81.54981076886997, + "y_pos": 1425.675300626889 + }, + { + "id": 7442, + "x_pos": 138.5115544970222, + "y_pos": 1293.0223614905913 + }, + { + "id": 7388, + "x_pos": -189.72597537640104, + "y_pos": 1424.219845567677 + }, + { + "id": 7383, + "x_pos": -261.9321903818736, + "y_pos": 933.2825960900846 + }, + { + "id": 6584, + "x_pos": 481.5, + "y_pos": 1032 + }, + { + "id": 6573, + "x_pos": 303.5, + "y_pos": 941.5 + }, + { + "id": 6565, + "x_pos": 443, + "y_pos": 1218.5 + }, + { + "id": 6549, + "x_pos": 97.5, + "y_pos": 1188 + }, + { + "id": 6544, + "x_pos": 220.5, + "y_pos": 1224.5 + }, + { + "id": 6542, + "x_pos": 71.5, + "y_pos": 1278.5 + }, + { + "id": 6535, + "x_pos": 268, + "y_pos": 1338 + }, + { + "id": 6534, + "x_pos": 76, + "y_pos": 1278.5 + }, + { + "id": 6532, + "x_pos": 392, + "y_pos": 1426.5 + }, + { + "id": 6530, + "x_pos": 224, + "y_pos": 916 + }, + { + "id": 6526, + "x_pos": 78.5, + "y_pos": 1293 + }, + { + "id": 6525, + "x_pos": 48.5, + "y_pos": 1470.5 + }, + { + "id": 6523, + "x_pos": -167.5, + "y_pos": 1365 + }, + { + "id": 6521, + "x_pos": -601.8795662835919, + "y_pos": 1510.5374345977198 + }, + { + "id": 6519, + "x_pos": -976.999350391784, + "y_pos": 1882.5056353019372 + }, + { + "id": 6518, + "x_pos": -957.5017322885765, + "y_pos": 2046.0004025215667 + }, + { + "id": 6515, + "x_pos": 163.5, + "y_pos": 1500 + }, + { + "id": 6514, + "x_pos": -948.999350391784, + "y_pos": 2036.9947672196295 + }, + { + "id": 6513, + "x_pos": -813.499566927856, + "y_pos": 1305.502415129402 + }, + { + "id": 6500, + "x_pos": -987.500216536072, + "y_pos": 1882.5 + }, + { + "id": 6498, + "x_pos": -1232.499783463928, + "y_pos": 1660.501207564701 + }, + { + "id": 6494, + "x_pos": -1039.3622433978271, + "y_pos": 732.9766538411118 + }, + { + "id": 6492, + "x_pos": 357.5, + "y_pos": 1575 + }, + { + "id": 6491, + "x_pos": 116.5, + "y_pos": 789.5 + }, + { + "id": 6489, + "x_pos": -1740.0082283707384, + "y_pos": 1983.515295819544 + }, + { + "id": 6486, + "x_pos": -2476.5, + "y_pos": 1733.0028176509686 + }, + { + "id": 6482, + "x_pos": -1349.8953734168522, + "y_pos": 726.3164502574696 + }, + { + "id": 6475, + "x_pos": -86.5, + "y_pos": 906.5 + }, + { + "id": 6468, + "x_pos": 415.5, + "y_pos": 1711.5 + }, + { + "id": 6455, + "x_pos": -197.5, + "y_pos": 1151.5 + }, + { + "id": 6433, + "x_pos": -392, + "y_pos": 1242.5 + }, + { + "id": 6427, + "x_pos": -635.8137393176858, + "y_pos": 836.1026430915645 + }, + { + "id": 6418, + "x_pos": -146, + "y_pos": 686.5 + }, + { + "id": 6410, + "x_pos": -233.33950711026046, + "y_pos": 113.64819624248821 + }, + { + "id": 4945, + "x_pos": 134.5, + "y_pos": 2465.5 + }, + { + "id": 4944, + "x_pos": -1099, + "y_pos": 2909.5 + }, + { + "id": 4943, + "x_pos": -1231.5, + "y_pos": 2448 + }, + { + "id": 4942, + "x_pos": -983, + "y_pos": 1785.5 + }, + { + "id": 4941, + "x_pos": 264.5, + "y_pos": 2512 + }, + { + "id": 4940, + "x_pos": -1831, + "y_pos": 2794 + }, + { + "id": 4939, + "x_pos": -960.5, + "y_pos": 1988 + }, + { + "id": 4938, + "x_pos": -2045, + "y_pos": 2972.5 + }, + { + "id": 4937, + "x_pos": 237, + "y_pos": 2568 + }, + { + "id": 4936, + "x_pos": -1616, + "y_pos": 1824 + }, + { + "id": 4935, + "x_pos": -1605, + "y_pos": 2033.5 + }, + { + "id": 4934, + "x_pos": -1717.5, + "y_pos": 1893 + }, + { + "id": 4933, + "x_pos": -723, + "y_pos": 1881.5 + }, + { + "id": 4932, + "x_pos": -842.5, + "y_pos": 2389 + }, + { + "id": 4931, + "x_pos": -1912, + "y_pos": 2472.5 + }, + { + "id": 4930, + "x_pos": -2042.5, + "y_pos": 3192 + }, + { + "id": 4929, + "x_pos": -1346.5, + "y_pos": 2640.5 + }, + { + "id": 4928, + "x_pos": -1925.9998604740367, + "y_pos": 1829.9945673183192 + }, + { + "id": 4927, + "x_pos": -1208.5, + "y_pos": 2086 + }, + { + "id": 3954, + "x_pos": -924, + "y_pos": 1266.337684908723 + }, + { + "id": 3951, + "x_pos": -579, + "y_pos": 1167.6454557386996 + }, + { + "id": 3949, + "x_pos": -1101.5, + "y_pos": 1088.6406720923142 + }, + { + "id": 3941, + "x_pos": -918, + "y_pos": 959 + }, + { + "id": 3940, + "x_pos": -600.5, + "y_pos": 987.0683858802677 + }, + { + "id": 3935, + "x_pos": -780.5, + "y_pos": 781.5556294899066 + }, + { + "id": 3930, + "x_pos": -1489.5, + "y_pos": 157.5 + }, + { + "id": 2121, + "x_pos": -1912.5, + "y_pos": 1662.5 + }, + { + "id": 2117, + "x_pos": -1498, + "y_pos": 1952 + }, + { + "id": 2116, + "x_pos": -1499, + "y_pos": 2314 + }, + { + "id": 2113, + "x_pos": -881, + "y_pos": 3013 + }, + { + "id": 2021, + "x_pos": -1687.5002531645569, + "y_pos": 1482.500640457893 + }, + { + "id": 2019, + "x_pos": -2202.499746835443, + "y_pos": 2014.0002134859642 + }, + { + "id": 2018, + "x_pos": -1999.9982278481011, + "y_pos": 2088.5021348596433 + }, + { + "id": 2017, + "x_pos": -2134.9994936708863, + "y_pos": 2117.501067429822 + }, + { + "id": 2016, + "x_pos": -2171.9994936708863, + "y_pos": 1492.5017078877145 + }, + { + "id": 2015, + "x_pos": -2184.007341772152, + "y_pos": 1487.0019213736791 + }, + { + "id": 2012, + "x_pos": -1681.0032911392404, + "y_pos": 1481.499359542107 + }, + { + "id": 2010, + "x_pos": -1681.5, + "y_pos": 1328.500640457893 + }, + { + "id": 2009, + "x_pos": -1793.4997468354431, + "y_pos": 1191.5004269719284 + }, + { + "id": 2007, + "x_pos": -1862.5002531645569, + "y_pos": 1034.5004269719288 + }, + { + "id": 2005, + "x_pos": -1999.6186641490308, + "y_pos": 721.4733575571554 + }, + { + "id": 2004, + "x_pos": -1487.2986641490306, + "y_pos": 1487.2600850787899 + }, + { + "id": 2003, + "x_pos": -1605.499240506329, + "y_pos": 1436.5008539438572 + }, + { + "id": 2002, + "x_pos": -1574.0005063291137, + "y_pos": 1675.498719084214 + }, + { + "id": 2001, + "x_pos": -1879.5037974683544, + "y_pos": 1570.9995730280712 + }, + { + "id": 2000, + "x_pos": -2265.501772151899, + "y_pos": 1747.0021348596429 + }, + { + "id": 1864, + "x_pos": -2366.498753263286, + "y_pos": 1106.9945768034577 + }, + { + "id": 900, + "x_pos": -409, + "y_pos": -58.5 + }, + { + "id": 746, + "x_pos": -850.5, + "y_pos": -444.70892403904827 + }, + { + "id": 670, + "x_pos": -1615.9993445330397, + "y_pos": 2840.99855452041 + }, + { + "id": 590, + "x_pos": -1227.0002184889868, + "y_pos": 2928.4996386301027 + }, + { + "id": 543, + "x_pos": 988, + "y_pos": -531 + }, + { + "id": 516, + "x_pos": -1671.5003277334804, + "y_pos": 2813.4990363469396 + }, + { + "id": 474, + "x_pos": -1681.4990167995593, + "y_pos": 3160.498915890307 + }, + { + "id": 460, + "x_pos": 728, + "y_pos": 1073.9997254763643 + }, + { + "id": 421, + "x_pos": 940.6938633359632, + "y_pos": 1054.888554247811 + }, + { + "id": 407, + "x_pos": -834.0004369779735, + "y_pos": 3032.998915890307 + }, + { + "id": 370, + "x_pos": -1630.4998907555064, + "y_pos": 3210.998915890307 + }, + { + "id": 359, + "x_pos": 1041.5, + "y_pos": -373.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/1556afa613e0cb0e8c8f93222ad504da_4646723101390558864.png" + }, + "44": { + "name": "Exquisite\u00a0Chest", + "clear_name": "ExquisiteChest", + "points": [ + { + "id": 26512, + "x_pos": -2171.5833435058594, + "y_pos": 2482.4166564941406 + }, + { + "id": 24971, + "x_pos": -2526.1666870117188, + "y_pos": 2864.1666564941406 + }, + { + "id": 24954, + "x_pos": -2417.1666870117188, + "y_pos": 3142.6666870117188 + }, + { + "id": 24953, + "x_pos": -2633.3333282470703, + "y_pos": 3295.5 + }, + { + "id": 24952, + "x_pos": -2705, + "y_pos": 3283.3333129882812 + }, + { + "id": 24951, + "x_pos": -2604.5, + "y_pos": 3233.5 + }, + { + "id": 24950, + "x_pos": -2734.1666564941406, + "y_pos": 3100.5 + }, + { + "id": 24944, + "x_pos": -2248.1666564941406, + "y_pos": 2872.1666717529297 + }, + { + "id": 24550, + "x_pos": -616.25, + "y_pos": 1438.5 + }, + { + "id": 19545, + "x_pos": 2026, + "y_pos": 8467.5 + }, + { + "id": 19544, + "x_pos": 2171, + "y_pos": 8320.5 + }, + { + "id": 19222, + "x_pos": 1817.5, + "y_pos": 8694.5 + }, + { + "id": 19219, + "x_pos": 1943, + "y_pos": 8311.5 + }, + { + "id": 19217, + "x_pos": 1842.5, + "y_pos": 8296.5 + }, + { + "id": 19216, + "x_pos": 1896.5, + "y_pos": 8264.5 + }, + { + "id": 19215, + "x_pos": 1908, + "y_pos": 8223 + }, + { + "id": 19214, + "x_pos": 1925.5, + "y_pos": 8210.5 + }, + { + "id": 19189, + "x_pos": 1934.5, + "y_pos": 9065.5 + }, + { + "id": 18624, + "x_pos": 1641, + "y_pos": 8728.5 + }, + { + "id": 18615, + "x_pos": 1957, + "y_pos": 8643.5 + }, + { + "id": 18598, + "x_pos": 2192, + "y_pos": 8565.5 + }, + { + "id": 18582, + "x_pos": 1720.5, + "y_pos": 8597 + }, + { + "id": 18572, + "x_pos": 2007.5, + "y_pos": 8416.5 + }, + { + "id": 18566, + "x_pos": 1960, + "y_pos": 8292.5 + }, + { + "id": 18562, + "x_pos": 1821, + "y_pos": 8303.5 + }, + { + "id": 18261, + "x_pos": -872.5, + "y_pos": 1148 + }, + { + "id": 17985, + "x_pos": -1083, + "y_pos": 1017 + }, + { + "id": 17743, + "x_pos": -1921, + "y_pos": 1420 + }, + { + "id": 17538, + "x_pos": -160.5, + "y_pos": 5978.5 + }, + { + "id": 17537, + "x_pos": 252.5, + "y_pos": 6030 + }, + { + "id": 17536, + "x_pos": -309.5, + "y_pos": 6192 + }, + { + "id": 17344, + "x_pos": 3479.5, + "y_pos": 6968 + }, + { + "id": 17343, + "x_pos": 3535.5, + "y_pos": 6994 + }, + { + "id": 17291, + "x_pos": 3461.5, + "y_pos": 6674.5 + }, + { + "id": 17235, + "x_pos": 3087.5, + "y_pos": 6747 + }, + { + "id": 17234, + "x_pos": 3008.5, + "y_pos": 6755 + }, + { + "id": 17233, + "x_pos": 2997.5, + "y_pos": 6755.5 + }, + { + "id": 17232, + "x_pos": 2990.5, + "y_pos": 6755 + }, + { + "id": 16301, + "x_pos": 3307, + "y_pos": 6988.5 + }, + { + "id": 16158, + "x_pos": 3609.5, + "y_pos": 6677 + }, + { + "id": 16151, + "x_pos": 3477, + "y_pos": 6643 + }, + { + "id": 16146, + "x_pos": 3138.5, + "y_pos": 6541.5 + }, + { + "id": 16138, + "x_pos": 3056.5, + "y_pos": 6729 + }, + { + "id": 16133, + "x_pos": 3020, + "y_pos": 6808 + }, + { + "id": 16129, + "x_pos": 2909.5, + "y_pos": 6723.5 + }, + { + "id": 15985, + "x_pos": 264.5, + "y_pos": 5982.5 + }, + { + "id": 15978, + "x_pos": 9.5, + "y_pos": 5977 + }, + { + "id": 15962, + "x_pos": 522, + "y_pos": 6349.5 + }, + { + "id": 15959, + "x_pos": 351, + "y_pos": 6425 + }, + { + "id": 14496, + "x_pos": -841.5, + "y_pos": -376 + }, + { + "id": 14268, + "x_pos": 115.5, + "y_pos": 1670.5 + }, + { + "id": 13798, + "x_pos": 3614.5, + "y_pos": 4996 + }, + { + "id": 13797, + "x_pos": 3621.5, + "y_pos": 5002.5 + }, + { + "id": 13796, + "x_pos": 3612, + "y_pos": 5005.5 + }, + { + "id": 13793, + "x_pos": 3346.5, + "y_pos": 5117.5 + }, + { + "id": 13790, + "x_pos": 3512.5, + "y_pos": 4668 + }, + { + "id": 13377, + "x_pos": 3762.5, + "y_pos": 4763 + }, + { + "id": 13376, + "x_pos": 3471.5, + "y_pos": 4157.5 + }, + { + "id": 12639, + "x_pos": 3717.730205741378, + "y_pos": 4701.084046689484 + }, + { + "id": 12632, + "x_pos": 4096.5, + "y_pos": 4570.5 + }, + { + "id": 12494, + "x_pos": 3693.5, + "y_pos": 5381 + }, + { + "id": 12491, + "x_pos": 3630.5, + "y_pos": 5421 + }, + { + "id": 12488, + "x_pos": 3701.9839782714844, + "y_pos": 5424.599761962891 + }, + { + "id": 12484, + "x_pos": 3850.8458862304688, + "y_pos": 5603.2318115234375 + }, + { + "id": 12478, + "x_pos": 3786.3486328125, + "y_pos": 5682.022918701172 + }, + { + "id": 12415, + "x_pos": 2134.835087853826, + "y_pos": 5901.044153637569 + }, + { + "id": 12403, + "x_pos": 2032, + "y_pos": 5774.5 + }, + { + "id": 12381, + "x_pos": 1375.7222414828066, + "y_pos": 6136.887366216784 + }, + { + "id": 12379, + "x_pos": 1074.4444605035378, + "y_pos": 6072.72136083978 + }, + { + "id": 12360, + "x_pos": 1051.5, + "y_pos": 5912.5 + }, + { + "id": 12067, + "x_pos": -1114.5, + "y_pos": -121.5 + }, + { + "id": 11924, + "x_pos": 534.1000061035156, + "y_pos": -89.49697661460868 + }, + { + "id": 7602, + "x_pos": 128.5, + "y_pos": 1382.5 + }, + { + "id": 7600, + "x_pos": 218.5, + "y_pos": 1336 + }, + { + "id": 7555, + "x_pos": 457, + "y_pos": 810.5 + }, + { + "id": 7514, + "x_pos": 342.8156033606392, + "y_pos": 1650.0090697144406 + }, + { + "id": 7513, + "x_pos": -385.8342998397111, + "y_pos": 814.0479072904695 + }, + { + "id": 7444, + "x_pos": 118.61248408428219, + "y_pos": 1316.299718184363 + }, + { + "id": 7441, + "x_pos": 137.04143921107698, + "y_pos": 1266.39877560484 + }, + { + "id": 7440, + "x_pos": 281.94126393765237, + "y_pos": 1333.72021689344 + }, + { + "id": 7435, + "x_pos": 376.60994645901883, + "y_pos": 898.6929568423516 + }, + { + "id": 7434, + "x_pos": 397.0824598442641, + "y_pos": 833.7776161318775 + }, + { + "id": 7432, + "x_pos": 222.7519838895796, + "y_pos": 672.44279404693 + }, + { + "id": 7387, + "x_pos": 255.7680075855942, + "y_pos": 1219.9001261527737 + }, + { + "id": 7386, + "x_pos": -53.13530965823156, + "y_pos": 814.9649622521538 + }, + { + "id": 7384, + "x_pos": 36.12953677788937, + "y_pos": 1055.8431948827824 + }, + { + "id": 7273, + "x_pos": 217.0939009732483, + "y_pos": 1281.7930087299728 + }, + { + "id": 7271, + "x_pos": 264.0719953970229, + "y_pos": 866.1504008358525 + }, + { + "id": 7270, + "x_pos": 518.1933829850259, + "y_pos": 862.6213298908706 + }, + { + "id": 6665, + "x_pos": 137.5, + "y_pos": 1062 + }, + { + "id": 6664, + "x_pos": 253, + "y_pos": 1094 + }, + { + "id": 6663, + "x_pos": 255, + "y_pos": 1181 + }, + { + "id": 6656, + "x_pos": 327.5, + "y_pos": 1029 + }, + { + "id": 6652, + "x_pos": -524.999133855712, + "y_pos": 1532.9991949568657 + }, + { + "id": 6650, + "x_pos": 116.5, + "y_pos": 1392.5 + }, + { + "id": 6647, + "x_pos": 148, + "y_pos": 1378.5 + }, + { + "id": 6644, + "x_pos": -211.5, + "y_pos": 1551.5 + }, + { + "id": 6643, + "x_pos": -1528.496751958919, + "y_pos": 2306.505635301937 + }, + { + "id": 6642, + "x_pos": 69, + "y_pos": 1288 + }, + { + "id": 6641, + "x_pos": -101, + "y_pos": 1307.5 + }, + { + "id": 6636, + "x_pos": 42.5, + "y_pos": 1285 + }, + { + "id": 6635, + "x_pos": -1633.5, + "y_pos": 1872.5008050431343 + }, + { + "id": 6633, + "x_pos": -298, + "y_pos": 1393 + }, + { + "id": 6632, + "x_pos": -1701.000216536072, + "y_pos": 1928.9995974784333 + }, + { + "id": 6627, + "x_pos": 427.5, + "y_pos": 1041 + }, + { + "id": 6623, + "x_pos": -1594.999133855712, + "y_pos": 1885.503622694103 + }, + { + "id": 6618, + "x_pos": -1712.8492512335033, + "y_pos": 1986.0503152878618 + }, + { + "id": 6617, + "x_pos": 45, + "y_pos": 1446.5 + }, + { + "id": 6616, + "x_pos": -1560.999783463928, + "y_pos": 1923.0028176509686 + }, + { + "id": 6615, + "x_pos": 96, + "y_pos": 992 + }, + { + "id": 6612, + "x_pos": -1561.5, + "y_pos": 1867.5020126078343 + }, + { + "id": 6610, + "x_pos": -1607.503031505009, + "y_pos": 2029.9935596549294 + }, + { + "id": 6607, + "x_pos": -1515, + "y_pos": 2312.997584870598 + }, + { + "id": 6605, + "x_pos": -1660.499566927856, + "y_pos": 2038.4979873921657 + }, + { + "id": 6602, + "x_pos": -1567.999566927856, + "y_pos": 1981.5 + }, + { + "id": 6597, + "x_pos": -2001.3308456673785, + "y_pos": 1276.2766006223424 + }, + { + "id": 6595, + "x_pos": 94, + "y_pos": 1182.5 + }, + { + "id": 6593, + "x_pos": -1892.8306291313065, + "y_pos": 1357.7629148890665 + }, + { + "id": 6590, + "x_pos": 703.7016347434301, + "y_pos": -504.7773372676279 + }, + { + "id": 6517, + "x_pos": 243.5, + "y_pos": 1482 + }, + { + "id": 6509, + "x_pos": 184.5, + "y_pos": 1670.5 + }, + { + "id": 6504, + "x_pos": 415.5, + "y_pos": 1568.5 + }, + { + "id": 6496, + "x_pos": 162, + "y_pos": 894.5 + }, + { + "id": 6485, + "x_pos": 21.5, + "y_pos": 863.5 + }, + { + "id": 6484, + "x_pos": 366.5, + "y_pos": 1609.5 + }, + { + "id": 6459, + "x_pos": -187.5, + "y_pos": 964.5 + }, + { + "id": 5223, + "x_pos": -974.4228421423381, + "y_pos": 3238.7757616972103 + }, + { + "id": 4926, + "x_pos": -1993.5, + "y_pos": 3016.5 + }, + { + "id": 4925, + "x_pos": -1743, + "y_pos": 2524 + }, + { + "id": 4924, + "x_pos": -2059, + "y_pos": 3028 + }, + { + "id": 4923, + "x_pos": -1663.5, + "y_pos": 2442 + }, + { + "id": 4922, + "x_pos": -2025.5, + "y_pos": 3218 + }, + { + "id": 4921, + "x_pos": -2055.5, + "y_pos": 3223.5 + }, + { + "id": 4920, + "x_pos": -1614.5, + "y_pos": 2498.5 + }, + { + "id": 4919, + "x_pos": -1387.5, + "y_pos": 2749.25 + }, + { + "id": 4918, + "x_pos": -1998, + "y_pos": 2519 + }, + { + "id": 4917, + "x_pos": -1329, + "y_pos": 2750.5 + }, + { + "id": 4916, + "x_pos": -1398, + "y_pos": 2748 + }, + { + "id": 4915, + "x_pos": -1933, + "y_pos": 2611 + }, + { + "id": 4914, + "x_pos": -1638.5, + "y_pos": 2005 + }, + { + "id": 4913, + "x_pos": -1763, + "y_pos": 1964 + }, + { + "id": 4911, + "x_pos": -1679, + "y_pos": 1931.5 + }, + { + "id": 4910, + "x_pos": -1684, + "y_pos": 2040.5 + }, + { + "id": 4909, + "x_pos": -1723.5, + "y_pos": 2089.5 + }, + { + "id": 4908, + "x_pos": -1627.5, + "y_pos": 2169 + }, + { + "id": 4907, + "x_pos": -1507, + "y_pos": 1911.5 + }, + { + "id": 4906, + "x_pos": -1549.5, + "y_pos": 2008.5 + }, + { + "id": 4905, + "x_pos": -1798.8324293181702, + "y_pos": 2013.1795684235176 + }, + { + "id": 4904, + "x_pos": -1767.5, + "y_pos": 2082 + }, + { + "id": 4903, + "x_pos": -1653, + "y_pos": 2324.5 + }, + { + "id": 4902, + "x_pos": -1494.5, + "y_pos": 2634 + }, + { + "id": 4901, + "x_pos": -2208.95800268507, + "y_pos": 1971.2097076108676 + }, + { + "id": 4900, + "x_pos": -1518.5, + "y_pos": 2290.5 + }, + { + "id": 4899, + "x_pos": -1779, + "y_pos": 2791 + }, + { + "id": 4898, + "x_pos": -1937.5, + "y_pos": 2669 + }, + { + "id": 4897, + "x_pos": -2125.5, + "y_pos": 3161 + }, + { + "id": 4896, + "x_pos": -2151.043532100525, + "y_pos": 2210.3577481866687 + }, + { + "id": 4895, + "x_pos": -1377, + "y_pos": 1941 + }, + { + "id": 4894, + "x_pos": -1810, + "y_pos": 2783.5 + }, + { + "id": 4893, + "x_pos": -1537.5, + "y_pos": 2800 + }, + { + "id": 4892, + "x_pos": -1671.5, + "y_pos": 2550.5 + }, + { + "id": 4891, + "x_pos": -1305, + "y_pos": 1925 + }, + { + "id": 4890, + "x_pos": 578, + "y_pos": 2722 + }, + { + "id": 4888, + "x_pos": -709.4006575141857, + "y_pos": 106.83258895752647 + }, + { + "id": 4887, + "x_pos": -682.9193539932576, + "y_pos": 170.17394245646892 + }, + { + "id": 4885, + "x_pos": -899.4531192763575, + "y_pos": -282.9238458137852 + }, + { + "id": 4884, + "x_pos": 49.36890664675957, + "y_pos": 433.9979653307928 + }, + { + "id": 4883, + "x_pos": -680.9187958894045, + "y_pos": 282.07253239842794 + }, + { + "id": 3944, + "x_pos": -1510.5, + "y_pos": 765.5901780471345 + }, + { + "id": 3924, + "x_pos": -1473, + "y_pos": 195.5 + }, + { + "id": 3912, + "x_pos": -555.5, + "y_pos": 818.1523654501452 + }, + { + "id": 3910, + "x_pos": -692.5, + "y_pos": 586 + }, + { + "id": 3654, + "x_pos": 821, + "y_pos": -329.38590372093813 + }, + { + "id": 3652, + "x_pos": 447.5, + "y_pos": 98.66937397062657 + }, + { + "id": 2266, + "x_pos": -694, + "y_pos": 781.0025985253915 + }, + { + "id": 2264, + "x_pos": -918.5, + "y_pos": 821.5 + }, + { + "id": 2261, + "x_pos": -1063, + "y_pos": 709.0005568268698 + }, + { + "id": 2258, + "x_pos": -760, + "y_pos": 739.0016704806089 + }, + { + "id": 2256, + "x_pos": -812, + "y_pos": 883 + }, + { + "id": 2255, + "x_pos": -641.5, + "y_pos": 831 + }, + { + "id": 2252, + "x_pos": -713.0011136397848, + "y_pos": 1252.0007770482198 + }, + { + "id": 2251, + "x_pos": -739.0033409193538, + "y_pos": 1341.0023311446594 + }, + { + "id": 2250, + "x_pos": -579.0011136397848, + "y_pos": 1338.00038852411 + }, + { + "id": 2249, + "x_pos": -679, + "y_pos": 723.0009280447825 + }, + { + "id": 2247, + "x_pos": -536, + "y_pos": 1088.0014848716523 + }, + { + "id": 2246, + "x_pos": -674.0011136397848, + "y_pos": 1257.0023311446594 + }, + { + "id": 2245, + "x_pos": -1118.5, + "y_pos": 684.5009280447825 + }, + { + "id": 2243, + "x_pos": -1221.5, + "y_pos": 754.5016704806089 + }, + { + "id": 2242, + "x_pos": -1259.5, + "y_pos": 967.0012992626957 + }, + { + "id": 2238, + "x_pos": -450.00111363978476, + "y_pos": 1320.996503283011 + }, + { + "id": 2237, + "x_pos": -617.9983295403231, + "y_pos": 1404.0007770482198 + }, + { + "id": 2236, + "x_pos": -695.4994431801078, + "y_pos": 1470.4998057379453 + }, + { + "id": 2235, + "x_pos": -417.5016704596769, + "y_pos": 1488.0007770482198 + }, + { + "id": 2231, + "x_pos": -1173, + "y_pos": 1017 + }, + { + "id": 2229, + "x_pos": -548.5022272795691, + "y_pos": 1460.0027196687693 + }, + { + "id": 2225, + "x_pos": -1054.997772720431, + "y_pos": 1853.0007770482198 + }, + { + "id": 2223, + "x_pos": -284.50111363978476, + "y_pos": 1613.9990286897255 + }, + { + "id": 2222, + "x_pos": -400.4983295403231, + "y_pos": 1647.0011655723297 + }, + { + "id": 2221, + "x_pos": -1044.5, + "y_pos": 1212.0009280447825 + }, + { + "id": 2219, + "x_pos": -517.5016704596769, + "y_pos": 1633.5009713102745 + }, + { + "id": 2218, + "x_pos": -888.0044545591386, + "y_pos": 1863.0011655723297 + }, + { + "id": 2217, + "x_pos": -954.0011136397848, + "y_pos": 1813.003496716989 + }, + { + "id": 2214, + "x_pos": -895, + "y_pos": 1091.4994431731302 + }, + { + "id": 2213, + "x_pos": -809.0011136397848, + "y_pos": 1764.5001942620547 + }, + { + "id": 2212, + "x_pos": -802.0005568198922, + "y_pos": 1791.500582786165 + }, + { + "id": 2211, + "x_pos": -707.0044545591386, + "y_pos": 1835.0007770482198 + }, + { + "id": 2210, + "x_pos": -548.9977727204309, + "y_pos": 1837.0015540964396 + }, + { + "id": 2209, + "x_pos": -264, + "y_pos": 1821.49961147589 + }, + { + "id": 2208, + "x_pos": -1208, + "y_pos": 841.5 + }, + { + "id": 2207, + "x_pos": -745, + "y_pos": 642.4794050380515 + }, + { + "id": 2206, + "x_pos": -1311.5, + "y_pos": 722.5009280447825 + }, + { + "id": 2203, + "x_pos": -1184, + "y_pos": 643.0005568268698 + }, + { + "id": 2202, + "x_pos": -1467, + "y_pos": 962.0007424358259 + }, + { + "id": 2201, + "x_pos": -984.5011136397848, + "y_pos": 1733.500582786165 + }, + { + "id": 2200, + "x_pos": -1204, + "y_pos": 1832.0015540964396 + }, + { + "id": 2199, + "x_pos": -642, + "y_pos": 839 + }, + { + "id": 2198, + "x_pos": -1601, + "y_pos": 747.5005568268698 + }, + { + "id": 2196, + "x_pos": -1390, + "y_pos": 938.0011136537391 + }, + { + "id": 2195, + "x_pos": -1497.5, + "y_pos": 922.5 + }, + { + "id": 2194, + "x_pos": -1469, + "y_pos": 536.5003712179132 + }, + { + "id": 2192, + "x_pos": -1389, + "y_pos": 387.49481058144374 + }, + { + "id": 2190, + "x_pos": -1094.0033409193538, + "y_pos": 1667.0023311446594 + }, + { + "id": 2189, + "x_pos": -263.49944318010785, + "y_pos": 1690.4990286897255 + }, + { + "id": 2188, + "x_pos": -420.3899736333401, + "y_pos": 1849.927361256167 + }, + { + "id": 2187, + "x_pos": -682.0033409193538, + "y_pos": 1916.0027196687693 + }, + { + "id": 2185, + "x_pos": -965.0022272795691, + "y_pos": 2044 + }, + { + "id": 2184, + "x_pos": -787.5005568198922, + "y_pos": 2113.000582786165 + }, + { + "id": 2180, + "x_pos": -1418, + "y_pos": 677.0011136537391 + }, + { + "id": 2179, + "x_pos": -1238.0005568198922, + "y_pos": 2065.0001942620547 + }, + { + "id": 2178, + "x_pos": -920.9955454408614, + "y_pos": 2270.99883442767 + }, + { + "id": 2174, + "x_pos": -1339.5, + "y_pos": 357.99925756417406 + }, + { + "id": 2171, + "x_pos": -1347.5005568198922, + "y_pos": 2972.4998057379453 + }, + { + "id": 2170, + "x_pos": 11, + "y_pos": 691.9988863462609 + }, + { + "id": 2164, + "x_pos": -1638.5011136397845, + "y_pos": 2794.00077704822 + }, + { + "id": 2163, + "x_pos": -35, + "y_pos": 654.9996287820868 + }, + { + "id": 2162, + "x_pos": -494, + "y_pos": 822.0003712179132 + }, + { + "id": 2161, + "x_pos": -8, + "y_pos": 614.9985151283477 + }, + { + "id": 2160, + "x_pos": -102, + "y_pos": 416.0033409612179 + }, + { + "id": 2159, + "x_pos": -191, + "y_pos": 388.00111365373914 + }, + { + "id": 2155, + "x_pos": -306, + "y_pos": 271.00148487165234 + }, + { + "id": 2154, + "x_pos": 252.99832954032308, + "y_pos": 2425.5009713102745 + }, + { + "id": 2153, + "x_pos": 144.49832954032308, + "y_pos": 2565.0003885241094 + }, + { + "id": 2151, + "x_pos": -886.5055681989229, + "y_pos": 2444.00077704822 + }, + { + "id": 2149, + "x_pos": 178.49888636021524, + "y_pos": 2485.00077704822 + }, + { + "id": 2148, + "x_pos": 155.49944318010785, + "y_pos": 2401.5 + }, + { + "id": 2147, + "x_pos": 44.99888636021524, + "y_pos": 2411.00077704822 + }, + { + "id": 2146, + "x_pos": -527.0011136397848, + "y_pos": 2452.0003885241094 + }, + { + "id": 2145, + "x_pos": -302, + "y_pos": 146.00371217913062 + }, + { + "id": 2143, + "x_pos": -450.5, + "y_pos": 86.00148487165234 + }, + { + "id": 2142, + "x_pos": -474, + "y_pos": 95.5001856089566 + }, + { + "id": 2141, + "x_pos": -1640.0005568198924, + "y_pos": 2905 + }, + { + "id": 2138, + "x_pos": -1635.5, + "y_pos": 399.4994431731302 + }, + { + "id": 2137, + "x_pos": -1168.0011136397843, + "y_pos": 2861.501359834385 + }, + { + "id": 2136, + "x_pos": -1541.5, + "y_pos": 3154.75 + }, + { + "id": 2134, + "x_pos": -1489.5, + "y_pos": 181.5 + }, + { + "id": 2129, + "x_pos": -152, + "y_pos": 235.00148487165234 + }, + { + "id": 2107, + "x_pos": -1717, + "y_pos": 2589.9988863462604 + }, + { + "id": 2106, + "x_pos": -1090, + "y_pos": 1428.044932631935 + }, + { + "id": 2105, + "x_pos": -824, + "y_pos": 1226.0022273074783 + }, + { + "id": 2104, + "x_pos": -1290, + "y_pos": 1152 + }, + { + "id": 2103, + "x_pos": -1249.5, + "y_pos": 865.0100305158794 + }, + { + "id": 2102, + "x_pos": -1262, + "y_pos": 794.5001856089566 + }, + { + "id": 2101, + "x_pos": -1259, + "y_pos": 580 + }, + { + "id": 2100, + "x_pos": -508.5, + "y_pos": 1373.5009280447825 + }, + { + "id": 2099, + "x_pos": -696.5, + "y_pos": 1903.0001856089566 + }, + { + "id": 2098, + "x_pos": -482, + "y_pos": 1692.5 + }, + { + "id": 2097, + "x_pos": -394.5, + "y_pos": 1946 + }, + { + "id": 2095, + "x_pos": 187.5, + "y_pos": 2621.4992575641736 + }, + { + "id": 2094, + "x_pos": -28, + "y_pos": 2683.500371217913 + }, + { + "id": 2093, + "x_pos": -585, + "y_pos": 2952.9964734298255 + }, + { + "id": 1934, + "x_pos": -2285.5, + "y_pos": 1933.9989187565025 + }, + { + "id": 1933, + "x_pos": -2621.999850606523, + "y_pos": 1567.498648445628 + }, + { + "id": 1932, + "x_pos": -1406.499850606523, + "y_pos": 1483.9994753356568 + }, + { + "id": 1931, + "x_pos": -1329.5001991913023, + "y_pos": 1550.9996065017426 + }, + { + "id": 1930, + "x_pos": -2008.9999502021744, + "y_pos": 1395.9996065017426 + }, + { + "id": 1929, + "x_pos": -1801.5000497978258, + "y_pos": 1517.9998688339142 + }, + { + "id": 1928, + "x_pos": -1461.9999004043489, + "y_pos": 1243.9997376678284 + }, + { + "id": 1927, + "x_pos": -1829.0000995956511, + "y_pos": 1611.4994753356568 + }, + { + "id": 1926, + "x_pos": -1968.5000995956511, + "y_pos": 1486.498950671314 + }, + { + "id": 1924, + "x_pos": -2395.4999502021747, + "y_pos": 1700.9997376678284 + }, + { + "id": 1922, + "x_pos": -2606.999900404349, + "y_pos": 1731.5002703108744 + }, + { + "id": 1919, + "x_pos": -2111.000348584779, + "y_pos": 1468.5001311660858 + }, + { + "id": 1916, + "x_pos": -2287.499900404349, + "y_pos": 1365.9997376678284 + }, + { + "id": 1915, + "x_pos": -2363.026179022945, + "y_pos": 1401.82522680274 + }, + { + "id": 1913, + "x_pos": -1604.500149393477, + "y_pos": 1111.0002623321716 + }, + { + "id": 1912, + "x_pos": -2130.0000497978253, + "y_pos": 1325.9997376678284 + }, + { + "id": 1910, + "x_pos": -2059.9997012130466, + "y_pos": 1263.4998688339142 + }, + { + "id": 1908, + "x_pos": -1992.9999502021744, + "y_pos": 843.9989506713141 + }, + { + "id": 1907, + "x_pos": -1976.9999004043489, + "y_pos": 1242.0003934982574 + }, + { + "id": 1903, + "x_pos": -2010.5000995956511, + "y_pos": 986 + }, + { + "id": 1902, + "x_pos": -1657.5676108138296, + "y_pos": 973.3631338015239 + }, + { + "id": 1901, + "x_pos": -1694.999850606523, + "y_pos": 1047.9994753356568 + }, + { + "id": 1899, + "x_pos": -1884.5541654009223, + "y_pos": 736.1797636136353 + }, + { + "id": 1898, + "x_pos": -1764.0003485847792, + "y_pos": 679.9989506713141 + }, + { + "id": 1896, + "x_pos": -2302.5000497978253, + "y_pos": 1651.000655830429 + }, + { + "id": 1894, + "x_pos": -1807.9998506065233, + "y_pos": 1740.9996065017426 + }, + { + "id": 1893, + "x_pos": -2118.999900404349, + "y_pos": 1192.4992130034852 + }, + { + "id": 1892, + "x_pos": -2389.000149393477, + "y_pos": 1827.9991890673768 + }, + { + "id": 1891, + "x_pos": -1440.997958289151, + "y_pos": 1686.998426006971 + }, + { + "id": 1890, + "x_pos": -1541, + "y_pos": 1787.4996065017426 + }, + { + "id": 1889, + "x_pos": -1853.0307604228988, + "y_pos": 1969.8571001615792 + }, + { + "id": 1888, + "x_pos": -1686.500149393477, + "y_pos": 1837.5002623321716 + }, + { + "id": 1887, + "x_pos": -2514.500099595651, + "y_pos": 1618.0002703108744 + }, + { + "id": 1886, + "x_pos": -1831.0000497978256, + "y_pos": 1123.4994753356568 + }, + { + "id": 1885, + "x_pos": -2259.4999502021747, + "y_pos": 1791 + }, + { + "id": 1884, + "x_pos": -1847.0000995956511, + "y_pos": 1883.5002623321716 + }, + { + "id": 1883, + "x_pos": -1943.5, + "y_pos": 1865.4994753356568 + }, + { + "id": 1882, + "x_pos": -2583.500248989128, + "y_pos": 1552.4989187565025 + }, + { + "id": 1881, + "x_pos": -2496.040919179318, + "y_pos": 1922.5000807373435 + }, + { + "id": 1880, + "x_pos": -2193.4999502021747, + "y_pos": 1874.5 + }, + { + "id": 1879, + "x_pos": -1901.0000995956511, + "y_pos": 1831.5002623321716 + }, + { + "id": 1878, + "x_pos": -2462.5001991913023, + "y_pos": 1991.4997296891256 + }, + { + "id": 1877, + "x_pos": -2302, + "y_pos": 1976.4997296891256 + }, + { + "id": 1876, + "x_pos": -1910.0000497978256, + "y_pos": 2025.9997296891256 + }, + { + "id": 1875, + "x_pos": -2001.0000995956511, + "y_pos": 1962.4994593782512 + }, + { + "id": 1873, + "x_pos": -2168.500348584779, + "y_pos": 2132.4997296891256 + }, + { + "id": 1872, + "x_pos": -2228.5, + "y_pos": 2025.9994593782512 + }, + { + "id": 1871, + "x_pos": -2193.4999502021747, + "y_pos": 2159.499189067377 + }, + { + "id": 1870, + "x_pos": -2169.5278223511896, + "y_pos": 2168.927096801265 + }, + { + "id": 1869, + "x_pos": -1833.5346446532942, + "y_pos": 2180.3889829679797 + }, + { + "id": 1868, + "x_pos": -1866.5033364543142, + "y_pos": 2194.9921609846433 + }, + { + "id": 1867, + "x_pos": -2011.5002987869534, + "y_pos": 2262.0002703108744 + }, + { + "id": 1733, + "x_pos": 287.03353657605203, + "y_pos": 542.0666608485108 + }, + { + "id": 1732, + "x_pos": 377.9270636293968, + "y_pos": 397.5666584705177 + }, + { + "id": 1611, + "x_pos": -904, + "y_pos": -330.72806117000005 + }, + { + "id": 1585, + "x_pos": -338.5, + "y_pos": -354.2018050071033 + }, + { + "id": 1357, + "x_pos": -1147, + "y_pos": -294.720184321131 + }, + { + "id": 1310, + "x_pos": -1113, + "y_pos": -179.32708441292425 + }, + { + "id": 1218, + "x_pos": -1109.5, + "y_pos": -296.1432912726482 + }, + { + "id": 1209, + "x_pos": 807.0001741193701, + "y_pos": 452.4991764290926 + }, + { + "id": 1202, + "x_pos": -1203, + "y_pos": -256.0258810748551 + }, + { + "id": 1190, + "x_pos": -962, + "y_pos": -218.88334761913097 + }, + { + "id": 1161, + "x_pos": -992, + "y_pos": -221.23931381124135 + }, + { + "id": 1130, + "x_pos": 784, + "y_pos": 237.5 + }, + { + "id": 1121, + "x_pos": -512.5, + "y_pos": -22.76932085455178 + }, + { + "id": 1103, + "x_pos": -958, + "y_pos": -125.69580359844122 + }, + { + "id": 1084, + "x_pos": -398, + "y_pos": -400.754692420938 + }, + { + "id": 1081, + "x_pos": -1089.5, + "y_pos": -397.7385636351587 + }, + { + "id": 1060, + "x_pos": -324.5, + "y_pos": -387.25206680464817 + }, + { + "id": 1058, + "x_pos": 276, + "y_pos": 288 + }, + { + "id": 1044, + "x_pos": -1122.5, + "y_pos": -68.17779937245518 + }, + { + "id": 1033, + "x_pos": -1061, + "y_pos": -404.3578416323171 + }, + { + "id": 1030, + "x_pos": 833.5, + "y_pos": 82.5 + }, + { + "id": 1025, + "x_pos": -126, + "y_pos": 1770.0274167811363 + }, + { + "id": 1021, + "x_pos": 421, + "y_pos": 365.49972547636435 + }, + { + "id": 1019, + "x_pos": -1031.5, + "y_pos": -343.14179092048266 + }, + { + "id": 1001, + "x_pos": 1000.5, + "y_pos": 125.5 + }, + { + "id": 993, + "x_pos": -271.5, + "y_pos": -314.1267873988277 + }, + { + "id": 991, + "x_pos": 738, + "y_pos": 116 + }, + { + "id": 987, + "x_pos": -1047, + "y_pos": -616.5776508654069 + }, + { + "id": 983, + "x_pos": -684.5, + "y_pos": -148.93961082533792 + }, + { + "id": 976, + "x_pos": -737, + "y_pos": -312.68380078111727 + }, + { + "id": 974, + "x_pos": 522.5001741193701, + "y_pos": 520.5010980945435 + }, + { + "id": 967, + "x_pos": -879, + "y_pos": -353.2535671568137 + }, + { + "id": 965, + "x_pos": 411.0008705968494, + "y_pos": 599.502196189087 + }, + { + "id": 901, + "x_pos": 1028, + "y_pos": -25 + }, + { + "id": 899, + "x_pos": -1197.00032773348, + "y_pos": 2791.9998795433676 + }, + { + "id": 890, + "x_pos": -1204.4996722665196, + "y_pos": 2780.503734155608 + }, + { + "id": 876, + "x_pos": 400.0012188355895, + "y_pos": 565.0010980945435 + }, + { + "id": 871, + "x_pos": 754, + "y_pos": -139.5 + }, + { + "id": 867, + "x_pos": -981, + "y_pos": -422.2918261370344 + }, + { + "id": 857, + "x_pos": 648, + "y_pos": -390 + }, + { + "id": 845, + "x_pos": 626.9996517612599, + "y_pos": 573.5013726181792 + }, + { + "id": 830, + "x_pos": 458, + "y_pos": -332.5 + }, + { + "id": 825, + "x_pos": 454.5, + "y_pos": 743 + }, + { + "id": 818, + "x_pos": 548.5, + "y_pos": -363 + }, + { + "id": 806, + "x_pos": 939.5, + "y_pos": -316 + }, + { + "id": 801, + "x_pos": 546.5005223581093, + "y_pos": 793.0024707127227 + }, + { + "id": 789, + "x_pos": 403.5, + "y_pos": -385 + }, + { + "id": 761, + "x_pos": 827, + "y_pos": -406.5 + }, + { + "id": 749, + "x_pos": -1353.9998907555064, + "y_pos": 2876.501204566325 + }, + { + "id": 733, + "x_pos": 816.5, + "y_pos": -500.5 + }, + { + "id": 711, + "x_pos": -1635.4994537775328, + "y_pos": 2857.4998795433676 + }, + { + "id": 701, + "x_pos": -264, + "y_pos": 39.2636868930897 + }, + { + "id": 674, + "x_pos": -580.5, + "y_pos": -446.09678035551724 + }, + { + "id": 671, + "x_pos": 694, + "y_pos": -553.5 + }, + { + "id": 665, + "x_pos": 910, + "y_pos": 751.4994509527282 + }, + { + "id": 654, + "x_pos": -653.5, + "y_pos": -549.2198092330896 + }, + { + "id": 641, + "x_pos": 891, + "y_pos": 742.5002745236357 + }, + { + "id": 617, + "x_pos": 905.5, + "y_pos": -587 + }, + { + "id": 612, + "x_pos": -410.5, + "y_pos": -179.04951926230342 + }, + { + "id": 602, + "x_pos": -1289.5004369779735, + "y_pos": 2954.5007227397946 + }, + { + "id": 601, + "x_pos": -561.5, + "y_pos": -18.795577017448295 + }, + { + "id": 599, + "x_pos": -344.5, + "y_pos": -94.10278176417933 + }, + { + "id": 591, + "x_pos": -693, + "y_pos": -563.1207859901656 + }, + { + "id": 581, + "x_pos": -805.5, + "y_pos": -669.6189029091172 + }, + { + "id": 574, + "x_pos": 617.5015670743287, + "y_pos": 321.00219618908704 + }, + { + "id": 572, + "x_pos": -1296.999126044053, + "y_pos": 2852.9998795433676 + }, + { + "id": 563, + "x_pos": -1216.4993445330397, + "y_pos": 2899.4996386301027 + }, + { + "id": 557, + "x_pos": -465.5, + "y_pos": -32.25806821331025 + }, + { + "id": 541, + "x_pos": 908, + "y_pos": -229.5 + }, + { + "id": 503, + "x_pos": 1076, + "y_pos": -592 + }, + { + "id": 499, + "x_pos": -1440.9994537775328, + "y_pos": 2957.999759086735 + }, + { + "id": 493, + "x_pos": -1700.00032773348, + "y_pos": 2954.998915890307 + }, + { + "id": 477, + "x_pos": -1670.0696303677555, + "y_pos": 3143.285659964692 + }, + { + "id": 470, + "x_pos": 817.0010447162194, + "y_pos": 864.5032942836301 + }, + { + "id": 422, + "x_pos": -1121.5003277334804, + "y_pos": 2896.9995181734703 + }, + { + "id": 420, + "x_pos": -1109.0001092444936, + "y_pos": 2952.5003613698973 + }, + { + "id": 397, + "x_pos": -1365.5002184889868, + "y_pos": 3125.000602283162 + }, + { + "id": 393, + "x_pos": 1216.0003482387401, + "y_pos": 905.0027452363584 + }, + { + "id": 379, + "x_pos": 1372, + "y_pos": 749.4997254763643 + }, + { + "id": 378, + "x_pos": -1820.5640588985925, + "y_pos": 3157.7615686381905 + }, + { + "id": 369, + "x_pos": -1761.0014201784143, + "y_pos": 3228.4992772602045 + }, + { + "id": 362, + "x_pos": -1768.9993445330397, + "y_pos": 3331.9992772602054 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8cd1c9d66f0adf4b34a7dfcf7715c99f_1064467135939485371.png" + }, + "72": { + "name": "Large Rock Pile", + "clear_name": "LargeRockPile", + "points": [ + { + "id": 26479, + "x_pos": -2301.2000122070312, + "y_pos": 3118.1534130781074 + }, + { + "id": 24985, + "x_pos": -2491.300003051758, + "y_pos": 3201.7496577875727 + }, + { + "id": 24984, + "x_pos": -2386.8333435058594, + "y_pos": 3140.1666564941406 + }, + { + "id": 24551, + "x_pos": -1339.373754293711, + "y_pos": 2837.3784119106704 + }, + { + "id": 23128, + "x_pos": -1658.75, + "y_pos": 2904.25 + }, + { + "id": 17741, + "x_pos": -1613.5, + "y_pos": 2924 + }, + { + "id": 17350, + "x_pos": 320.5, + "y_pos": 6097.5 + }, + { + "id": 17301, + "x_pos": -5.5, + "y_pos": 6215.5 + }, + { + "id": 17277, + "x_pos": 3090.5, + "y_pos": 6702.5 + }, + { + "id": 17272, + "x_pos": 3038, + "y_pos": 6662 + }, + { + "id": 14601, + "x_pos": 3612.7999572753906, + "y_pos": 4753.100028991699 + }, + { + "id": 14600, + "x_pos": 3450, + "y_pos": 4865.400001525879 + }, + { + "id": 14518, + "x_pos": 3445.5, + "y_pos": 4673 + }, + { + "id": 14515, + "x_pos": 1699.1000061035156, + "y_pos": 6009.490877607292 + }, + { + "id": 14025, + "x_pos": 3342, + "y_pos": 5128 + }, + { + "id": 13906, + "x_pos": 1718, + "y_pos": 6221.5 + }, + { + "id": 13905, + "x_pos": 1661, + "y_pos": 6217.5 + }, + { + "id": 13898, + "x_pos": 1577, + "y_pos": 6016.5 + }, + { + "id": 13844, + "x_pos": 1715, + "y_pos": 6292.5 + }, + { + "id": 13780, + "x_pos": 2371, + "y_pos": 5914 + }, + { + "id": 13772, + "x_pos": 3467.25, + "y_pos": 4670.75 + }, + { + "id": 13741, + "x_pos": 2496, + "y_pos": 6135.5 + }, + { + "id": 13666, + "x_pos": 1538, + "y_pos": 5836 + }, + { + "id": 13297, + "x_pos": 3559, + "y_pos": 4892.52280911966 + }, + { + "id": 13296, + "x_pos": 3344.5, + "y_pos": 4946.5 + }, + { + "id": 13295, + "x_pos": 3510, + "y_pos": 5127.010309507814 + }, + { + "id": 13293, + "x_pos": 1707.8908924027837, + "y_pos": 6331.085339098079 + }, + { + "id": 11568, + "x_pos": -376.5, + "y_pos": -369 + }, + { + "id": 7572, + "x_pos": 673.8075108547728, + "y_pos": 1213.7940998398008 + }, + { + "id": 6321, + "x_pos": -1334.4989173196395, + "y_pos": 2437.503622694103 + }, + { + "id": 6320, + "x_pos": -2213.499133855712, + "y_pos": 1459.9991949568657 + }, + { + "id": 3764, + "x_pos": -2006.942236251226, + "y_pos": 1270.7377764662183 + }, + { + "id": 3759, + "x_pos": -279.94293388104234, + "y_pos": 171.18028058509663 + }, + { + "id": 3758, + "x_pos": -1090.4384690502188, + "y_pos": 761.7251002089629 + }, + { + "id": 3757, + "x_pos": -1638.4365156867339, + "y_pos": 1610.2042749291868 + }, + { + "id": 3756, + "x_pos": -2039.4494916013136, + "y_pos": 1470.2979886881803 + }, + { + "id": 3755, + "x_pos": -2385.9405619396675, + "y_pos": 1388.139535472491 + }, + { + "id": 3754, + "x_pos": -497.94460819260075, + "y_pos": 1639.1997476944525 + }, + { + "id": 3753, + "x_pos": -2334.4261907654554, + "y_pos": 1285.2327965080108 + }, + { + "id": 3752, + "x_pos": -2253.907075708494, + "y_pos": 1329.2436618713723 + }, + { + "id": 3751, + "x_pos": -1971.9213073567428, + "y_pos": 1122.2002004179262 + }, + { + "id": 3750, + "x_pos": -1420.8701013282403, + "y_pos": 1530.235060125378 + }, + { + "id": 3749, + "x_pos": -2158.8754033148425, + "y_pos": 1317.6490426654323 + }, + { + "id": 3748, + "x_pos": -1931.2009173870397, + "y_pos": 1073.272829459038 + }, + { + "id": 3747, + "x_pos": -2123.418656363441, + "y_pos": 952.2264583793831 + }, + { + "id": 3746, + "x_pos": -1789.4182377855518, + "y_pos": 1067.771730726723 + }, + { + "id": 3745, + "x_pos": -1890.94153862141, + "y_pos": 1696.6866187137243 + }, + { + "id": 3744, + "x_pos": -1562.4856288257881, + "y_pos": 2353.1481372184853 + }, + { + "id": 3743, + "x_pos": -1638.5297190301662, + "y_pos": 2491.088377719997 + }, + { + "id": 3742, + "x_pos": -1394.440980517557, + "y_pos": 2854.789839665659 + }, + { + "id": 3741, + "x_pos": -1685.4539564321367, + "y_pos": 3187.738229189692 + }, + { + "id": 3740, + "x_pos": -1358.9288417587568, + "y_pos": 2326.2368710192713 + }, + { + "id": 3739, + "x_pos": -1592.4469801339756, + "y_pos": 2122.354579122355 + }, + { + "id": 3738, + "x_pos": -1749.915865844177, + "y_pos": 2012.8142867332226 + }, + { + "id": 3737, + "x_pos": -1712.3980065208846, + "y_pos": 1925.3052322637545 + }, + { + "id": 3736, + "x_pos": -2047.4292603366464, + "y_pos": 1532.7255529324366 + }, + { + "id": 3735, + "x_pos": -2204.402889929597, + "y_pos": 1638.2871233248188 + }, + { + "id": 3734, + "x_pos": -2445.960514152408, + "y_pos": 2066.6630770931074 + }, + { + "id": 3733, + "x_pos": -2172.4448872445273, + "y_pos": 1518.698842247506 + }, + { + "id": 3732, + "x_pos": -2060.4433524589317, + "y_pos": 2034.279427025771 + }, + { + "id": 3731, + "x_pos": -1273.4306555962785, + "y_pos": 2057.2762579614573 + }, + { + "id": 3730, + "x_pos": -1087.4130753249128, + "y_pos": 2620.2094481727618 + }, + { + "id": 3729, + "x_pos": -2124.9344227972856, + "y_pos": 1567.7020113118197 + }, + { + "id": 3728, + "x_pos": -2272.922004986559, + "y_pos": 1776.6893350545647 + }, + { + "id": 3727, + "x_pos": -1088.9112614873907, + "y_pos": 2111.7839542605047 + }, + { + "id": 3726, + "x_pos": -1239.590552350131, + "y_pos": 1854.1474250569063 + }, + { + "id": 3725, + "x_pos": -1012.7967106715851, + "y_pos": 1180.1677976132096 + }, + { + "id": 3724, + "x_pos": 202.0768788057353, + "y_pos": 580.0983376364115 + }, + { + "id": 3723, + "x_pos": 471.5622285795971, + "y_pos": 660.1866187137243 + }, + { + "id": 3722, + "x_pos": -721.420051623074, + "y_pos": 724.2531690643136 + }, + { + "id": 3721, + "x_pos": 677.5634843132657, + "y_pos": 308.2137821221281 + }, + { + "id": 3720, + "x_pos": 700.0641819430821, + "y_pos": 79.1929568423518 + }, + { + "id": 3719, + "x_pos": -960.9465615560857, + "y_pos": 685.2653925980958 + }, + { + "id": 3718, + "x_pos": 698.5640424171188, + "y_pos": 102.7042749291868 + }, + { + "id": 3717, + "x_pos": -787.4400038358144, + "y_pos": 569.734154678431 + }, + { + "id": 3716, + "x_pos": -674.9993023701841, + "y_pos": 321.4179604086312 + }, + { + "id": 3715, + "x_pos": -620.4275860250877, + "y_pos": 81.20744399350042 + }, + { + "id": 3714, + "x_pos": -1539.0958543367337, + "y_pos": 522.9215821964181 + }, + { + "id": 3713, + "x_pos": -1130.4172611038093, + "y_pos": -137.28893421871226 + }, + { + "id": 3712, + "x_pos": -1094.9112614873907, + "y_pos": -224.76720349198922 + }, + { + "id": 3711, + "x_pos": -1066.923260720228, + "y_pos": -578.7020113118197 + }, + { + "id": 3710, + "x_pos": -1100.9186563634416, + "y_pos": -434.64542087764494 + }, + { + "id": 3709, + "x_pos": -908.8939602679511, + "y_pos": -708.7418509774789 + }, + { + "id": 3708, + "x_pos": 582.1222247437827, + "y_pos": -337.69974769445275 + }, + { + "id": 3707, + "x_pos": 388.1718959866894, + "y_pos": -177.97002360807164 + }, + { + "id": 3706, + "x_pos": -866.4353994790281, + "y_pos": 901.1811860320436 + }, + { + "id": 3705, + "x_pos": -1133.4240978760072, + "y_pos": 2207.79527234734 + }, + { + "id": 3704, + "x_pos": -764.4362366348073, + "y_pos": 756.6562862410065 + }, + { + "id": 3703, + "x_pos": -913.4485149195712, + "y_pos": 802.2708252797765 + }, + { + "id": 3702, + "x_pos": -577.9081919161999, + "y_pos": 1266.722383868123 + }, + { + "id": 3701, + "x_pos": 884.0369743802539, + "y_pos": -6.246378212212676 + }, + { + "id": 3700, + "x_pos": 990.5880408827934, + "y_pos": 175.20744399350042 + }, + { + "id": 3699, + "x_pos": 783.0486945611647, + "y_pos": 865.2495472765268 + }, + { + "id": 3698, + "x_pos": 736.0782740653676, + "y_pos": 632.711518504761 + }, + { + "id": 3697, + "x_pos": -661.9076338123468, + "y_pos": 859.0634779289599 + }, + { + "id": 3696, + "x_pos": 1018.5, + "y_pos": 93 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/836ae8b9a526ceeb1ebdf0fedb693356_4054736939908165382.png" + }, + "77": { + "name": "Mini Puzzle", + "clear_name": "MiniPuzzle", + "points": [ + { + "id": 26461, + "x_pos": -2721.5, + "y_pos": 3074.4166564941406 + }, + { + "id": 26460, + "x_pos": -2737.9166717529297, + "y_pos": 3156.6666564941406 + }, + { + "id": 26459, + "x_pos": -2734.0833282470703, + "y_pos": 3160.5 + }, + { + "id": 26458, + "x_pos": -2730.8333435058594, + "y_pos": 3163.583320617676 + }, + { + "id": 25017, + "x_pos": -2539.3333435058594, + "y_pos": 2996.750015258789 + }, + { + "id": 25009, + "x_pos": -2409.9166564941406, + "y_pos": 2825.8333282470703 + }, + { + "id": 24974, + "x_pos": -2561.75, + "y_pos": 3211.25 + }, + { + "id": 23109, + "x_pos": 262.64853908150417, + "y_pos": 1180.9259715194448 + }, + { + "id": 19321, + "x_pos": 1664.1641208228593, + "y_pos": 8790.168027092506 + }, + { + "id": 19296, + "x_pos": 1624.2065437067213, + "y_pos": 8498.618910549469 + }, + { + "id": 19295, + "x_pos": 1986.5, + "y_pos": 8644.5 + }, + { + "id": 19249, + "x_pos": 1761, + "y_pos": 8206.334028809524 + }, + { + "id": 19248, + "x_pos": 1795.3333763643932, + "y_pos": 8315.732215869175 + }, + { + "id": 19247, + "x_pos": 2088.9526464833234, + "y_pos": 8372.464477528163 + }, + { + "id": 19246, + "x_pos": 2043.6649120627153, + "y_pos": 8502.168057619048 + }, + { + "id": 19245, + "x_pos": 1923.6924568629584, + "y_pos": 8610.938130299111 + }, + { + "id": 19244, + "x_pos": 2074.501521398126, + "y_pos": 8747.335203610684 + }, + { + "id": 17797, + "x_pos": 3491.5, + "y_pos": 6616.5 + }, + { + "id": 17618, + "x_pos": -247.5, + "y_pos": 6178 + }, + { + "id": 17617, + "x_pos": -310, + "y_pos": 6171.5 + }, + { + "id": 17616, + "x_pos": -233, + "y_pos": 6168 + }, + { + "id": 17613, + "x_pos": -23, + "y_pos": 5878.5 + }, + { + "id": 17369, + "x_pos": 2986, + "y_pos": 6759 + }, + { + "id": 17362, + "x_pos": 125.5, + "y_pos": 5993 + }, + { + "id": 16388, + "x_pos": -104, + "y_pos": 6275.5 + }, + { + "id": 16379, + "x_pos": -131, + "y_pos": 6132.5 + }, + { + "id": 16327, + "x_pos": -148, + "y_pos": 6000 + }, + { + "id": 16324, + "x_pos": -3.5, + "y_pos": 5905 + }, + { + "id": 15817, + "x_pos": 687, + "y_pos": -195 + }, + { + "id": 14898, + "x_pos": 3738, + "y_pos": 4490 + }, + { + "id": 14897, + "x_pos": 3727, + "y_pos": 4506 + }, + { + "id": 14599, + "x_pos": 1773, + "y_pos": 6031.5 + }, + { + "id": 14146, + "x_pos": 1530.5, + "y_pos": 6226 + }, + { + "id": 14145, + "x_pos": 1427.5, + "y_pos": 6240 + }, + { + "id": 14144, + "x_pos": 1341, + "y_pos": 6087.25 + }, + { + "id": 14028, + "x_pos": 3749, + "y_pos": 5360.5 + }, + { + "id": 14027, + "x_pos": 2562, + "y_pos": 5891.5 + }, + { + "id": 14026, + "x_pos": 1411.5, + "y_pos": 5965.5 + }, + { + "id": 13904, + "x_pos": 1549.5, + "y_pos": 6241 + }, + { + "id": 13895, + "x_pos": 1757.5, + "y_pos": 6574.5 + }, + { + "id": 13863, + "x_pos": 3775.5, + "y_pos": 4852 + }, + { + "id": 13649, + "x_pos": 1365.3554969108236, + "y_pos": 6046.817088317468 + }, + { + "id": 13646, + "x_pos": 920, + "y_pos": 6059.5 + }, + { + "id": 13409, + "x_pos": 3417, + "y_pos": 4799.5 + }, + { + "id": 11570, + "x_pos": 10, + "y_pos": -41 + }, + { + "id": 7623, + "x_pos": -97, + "y_pos": 1497.5 + }, + { + "id": 7610, + "x_pos": -379.5, + "y_pos": 1080 + }, + { + "id": 7592, + "x_pos": 179.6651987404548, + "y_pos": 1216.6697893124633 + }, + { + "id": 7580, + "x_pos": -84.68966809986887, + "y_pos": 1568.1194223542934 + }, + { + "id": 7574, + "x_pos": 547.6675139978106, + "y_pos": 1079.8460740190444 + }, + { + "id": 7477, + "x_pos": 139.0484155092381, + "y_pos": 992.1648879870008 + }, + { + "id": 7472, + "x_pos": 250.07506496821316, + "y_pos": 1185.6639825400543 + }, + { + "id": 7466, + "x_pos": -154.31476620486046, + "y_pos": 1504.6360917250986 + }, + { + "id": 7419, + "x_pos": 368.5502293467598, + "y_pos": 948.1866187137243 + }, + { + "id": 7134, + "x_pos": 211.5, + "y_pos": 1143 + }, + { + "id": 7112, + "x_pos": -772.499783463928, + "y_pos": 1299.5032201725353 + }, + { + "id": 6345, + "x_pos": -546.94669246593, + "y_pos": 213.82604256121658 + }, + { + "id": 6344, + "x_pos": -1479.3717709849975, + "y_pos": 1260.2709653204051 + }, + { + "id": 6343, + "x_pos": -2059.44560978557, + "y_pos": 1568.9512949823948 + }, + { + "id": 6342, + "x_pos": 285.99891731964, + "y_pos": 2506.0020126078343 + }, + { + "id": 6340, + "x_pos": -318.3360425331075, + "y_pos": -237.70850607968077 + }, + { + "id": 5220, + "x_pos": -2029.9199120971107, + "y_pos": 1449.2367008315641 + }, + { + "id": 5219, + "x_pos": -2099.9376318944396, + "y_pos": 1400.759124661843 + }, + { + "id": 2826, + "x_pos": -968, + "y_pos": 2134.031739211257 + }, + { + "id": 2825, + "x_pos": -931, + "y_pos": 2302.104989420306 + }, + { + "id": 2820, + "x_pos": -896.5, + "y_pos": 2023.164716513838 + }, + { + "id": 2817, + "x_pos": -1329, + "y_pos": 1961.0430084741874 + }, + { + "id": 2807, + "x_pos": -1236, + "y_pos": 1793.5475161793602 + }, + { + "id": 2801, + "x_pos": -638, + "y_pos": 1932.5841412838845 + }, + { + "id": 2794, + "x_pos": -428, + "y_pos": 1749.4838448438022 + }, + { + "id": 2793, + "x_pos": -975, + "y_pos": 1335.2176820496115 + }, + { + "id": 2792, + "x_pos": -106.5, + "y_pos": 2641.116258683236 + }, + { + "id": 2790, + "x_pos": -512, + "y_pos": 1730.1449953037095 + }, + { + "id": 2788, + "x_pos": -2084, + "y_pos": 1026.903833076995 + }, + { + "id": 2787, + "x_pos": -1070.5, + "y_pos": 1283.9782102123368 + }, + { + "id": 2786, + "x_pos": -1563, + "y_pos": 2517.535119990136 + }, + { + "id": 2785, + "x_pos": -94, + "y_pos": 2692.0249776534984 + }, + { + "id": 2772, + "x_pos": 44.5, + "y_pos": 2621.512018001129 + }, + { + "id": 2764, + "x_pos": -2268, + "y_pos": 1176.2424744280593 + }, + { + "id": 2762, + "x_pos": -2384.5, + "y_pos": 1210.031739211257 + }, + { + "id": 2760, + "x_pos": -2172.5, + "y_pos": 1086.7216262916377 + }, + { + "id": 2757, + "x_pos": 712.5, + "y_pos": -199.11363428054756 + }, + { + "id": 2756, + "x_pos": -2647, + "y_pos": 1555.1145682937968 + }, + { + "id": 2754, + "x_pos": -2629, + "y_pos": 1579.0627296843163 + }, + { + "id": 2753, + "x_pos": -511.5, + "y_pos": 1478.0886489890563 + }, + { + "id": 2749, + "x_pos": 702, + "y_pos": 207.552023884532 + }, + { + "id": 2746, + "x_pos": -2515, + "y_pos": 1584.7109204918534 + }, + { + "id": 2744, + "x_pos": -2621.5, + "y_pos": 1664.8286842894781 + }, + { + "id": 2743, + "x_pos": 1008.5, + "y_pos": 1.2171185864651761 + }, + { + "id": 2742, + "x_pos": -1694, + "y_pos": 1482.473139044018 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8318e95c402c3f8120c236d569b7c30d_4122189942380617256.png" + }, + "69": { + "name": "Buried Chest", + "clear_name": "BuriedChest", + "points": [ + { + "id": 26457, + "x_pos": -2445.5, + "y_pos": 3109.416664123535 + }, + { + "id": 19233, + "x_pos": 2089, + "y_pos": 8647.5 + }, + { + "id": 14494, + "x_pos": 1395, + "y_pos": 6076 + }, + { + "id": 13857, + "x_pos": 3540, + "y_pos": 5697.5 + }, + { + "id": 13644, + "x_pos": 1030, + "y_pos": 5910.5 + }, + { + "id": 13288, + "x_pos": 3513.5, + "y_pos": 5661.5 + }, + { + "id": 13287, + "x_pos": 3552, + "y_pos": 4823 + }, + { + "id": 7527, + "x_pos": 190.15007325240822, + "y_pos": 1252.553324727177 + }, + { + "id": 7526, + "x_pos": 131.33368505183898, + "y_pos": 1361.3357732668128 + }, + { + "id": 7525, + "x_pos": -17.62358947732082, + "y_pos": 1412.8955912955535 + }, + { + "id": 7464, + "x_pos": -417.94460819260075, + "y_pos": 1434.6807333085699 + }, + { + "id": 7461, + "x_pos": -234.71854997425544, + "y_pos": 1240.6633517761861 + }, + { + "id": 7332, + "x_pos": 460.56850724794185, + "y_pos": 1742.15945530532 + }, + { + "id": 7327, + "x_pos": 87.58525036352876, + "y_pos": 1385.6458736011182 + }, + { + "id": 6319, + "x_pos": 1413, + "y_pos": -367 + }, + { + "id": 6317, + "x_pos": 1392, + "y_pos": -374.5 + }, + { + "id": 2676, + "x_pos": -1849, + "y_pos": 2277.581323968152 + }, + { + "id": 2666, + "x_pos": -686, + "y_pos": 2340.510327611689 + }, + { + "id": 2657, + "x_pos": -59, + "y_pos": 2170.1280914093136 + }, + { + "id": 2656, + "x_pos": -44.5, + "y_pos": 2149.011454537982 + }, + { + "id": 2645, + "x_pos": -1853.5, + "y_pos": 1639.0407546216015 + }, + { + "id": 2644, + "x_pos": -2017.5, + "y_pos": 1546.1207663884088 + }, + { + "id": 2643, + "x_pos": -2209.5, + "y_pos": 1570.6100605886245 + }, + { + "id": 2640, + "x_pos": -2487, + "y_pos": 1947.5948470836684 + }, + { + "id": 2639, + "x_pos": -2278.5, + "y_pos": 1399.5170891694474 + }, + { + "id": 2636, + "x_pos": -2102.5, + "y_pos": 1049.130908725046 + }, + { + "id": 2635, + "x_pos": -2070.5, + "y_pos": 1102.1247106304345 + }, + { + "id": 2632, + "x_pos": -1248.5, + "y_pos": 1113.537937305869 + }, + { + "id": 2631, + "x_pos": -2109.5, + "y_pos": 1145.6466856931493 + }, + { + "id": 2630, + "x_pos": -989, + "y_pos": 1205.563856610609 + }, + { + "id": 2629, + "x_pos": -2020, + "y_pos": 1073.6314721881927 + }, + { + "id": 2628, + "x_pos": -2023.5, + "y_pos": 1148.0886489890563 + }, + { + "id": 2624, + "x_pos": -1333, + "y_pos": 805.1100605886245 + }, + { + "id": 2623, + "x_pos": -1294.5, + "y_pos": 830.5779431892724 + }, + { + "id": 2622, + "x_pos": -1328, + "y_pos": 842.6196394621156 + }, + { + "id": 2621, + "x_pos": -1469.5, + "y_pos": 762.6252740935811 + }, + { + "id": 2620, + "x_pos": -1605.5, + "y_pos": 508.668097292717 + }, + { + "id": 2618, + "x_pos": -1937.5, + "y_pos": 1111.1140048306502 + }, + { + "id": 2617, + "x_pos": -1543, + "y_pos": 494.0632931474629 + }, + { + "id": 2616, + "x_pos": -1362.5, + "y_pos": 562.7081031761209 + }, + { + "id": 2614, + "x_pos": -921, + "y_pos": 765.0424450110413 + }, + { + "id": 2611, + "x_pos": -790.5, + "y_pos": 659.0570950528509 + }, + { + "id": 2608, + "x_pos": -752.5, + "y_pos": 617.9184831188045 + }, + { + "id": 2605, + "x_pos": 663.5, + "y_pos": 512.0649835369022 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/35cf41aad7620ce6d5dc516defb967f7_7844961179332080431.png" + }, + "74": { + "name": "Harvestable Plant", + "clear_name": "HarvestablePlant", + "points": [ + { + "id": 26447, + "x_pos": -926.5, + "y_pos": -613 + }, + { + "id": 2567, + "x_pos": 479, + "y_pos": -381.9883601869665 + }, + { + "id": 2566, + "x_pos": 443, + "y_pos": -87.65704385680738 + }, + { + "id": 2565, + "x_pos": 364, + "y_pos": -106.67845545637533 + }, + { + "id": 2564, + "x_pos": -254, + "y_pos": 174.693430220334 + }, + { + "id": 2563, + "x_pos": -328, + "y_pos": -158.7900211593883 + }, + { + "id": 2562, + "x_pos": -433, + "y_pos": -56.77762497016465 + }, + { + "id": 2561, + "x_pos": -509, + "y_pos": 42.03981297035989 + }, + { + "id": 2560, + "x_pos": -906, + "y_pos": -474.9229984619692 + }, + { + "id": 2559, + "x_pos": -1112, + "y_pos": -241.88919067317738 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/de87958fa1e78efcc84da49aad61dede_3891992353724563278.jpg" + }, + "3": { + "name": "Teleport Waypoint", + "clear_name": "TeleportWaypoint", + "points": [ + { + "id": 26445, + "x_pos": -2408.3632011208138, + "y_pos": 2610.571790446288 + }, + { + "id": 24912, + "x_pos": -2662.0365294770254, + "y_pos": 3089.237123384836 + }, + { + "id": 24911, + "x_pos": -2512.8496516026416, + "y_pos": 3196.611364314218 + }, + { + "id": 24910, + "x_pos": -2214.191360825494, + "y_pos": 3051.941547382814 + }, + { + "id": 24909, + "x_pos": -2455.96739157114, + "y_pos": 2908.8667673633854 + }, + { + "id": 18601, + "x_pos": 1851.5, + "y_pos": 9015 + }, + { + "id": 18599, + "x_pos": 1860.5, + "y_pos": 8821 + }, + { + "id": 18593, + "x_pos": 1864, + "y_pos": 8536 + }, + { + "id": 18591, + "x_pos": 1801.5000305175781, + "y_pos": 8323 + }, + { + "id": 18589, + "x_pos": 2092, + "y_pos": 8610.500030517578 + }, + { + "id": 18587, + "x_pos": 2055.999969482422, + "y_pos": 8365 + }, + { + "id": 18586, + "x_pos": 2355.5, + "y_pos": 8594.999969482422 + }, + { + "id": 16030, + "x_pos": 3447, + "y_pos": 6569.5 + }, + { + "id": 16029, + "x_pos": 3699.5, + "y_pos": 6610 + }, + { + "id": 16027, + "x_pos": 3444, + "y_pos": 6712.5 + }, + { + "id": 16026, + "x_pos": 3149.5, + "y_pos": 6721.5 + }, + { + "id": 16024, + "x_pos": 3422, + "y_pos": 6896.5 + }, + { + "id": 16020, + "x_pos": 3730.699981689453, + "y_pos": 6909.800018310547 + }, + { + "id": 16018, + "x_pos": 3505.5, + "y_pos": 7113 + }, + { + "id": 16014, + "x_pos": 2932.5, + "y_pos": 6606 + }, + { + "id": 16012, + "x_pos": 2953, + "y_pos": 7013.5 + }, + { + "id": 15951, + "x_pos": 573, + "y_pos": 6100.5 + }, + { + "id": 15947, + "x_pos": 312.5, + "y_pos": 6270 + }, + { + "id": 15944, + "x_pos": 19.5, + "y_pos": 5886.5 + }, + { + "id": 15942, + "x_pos": 17.5, + "y_pos": 6118.5 + }, + { + "id": 15940, + "x_pos": 9.5, + "y_pos": 6325 + }, + { + "id": 13670, + "x_pos": 2654.5, + "y_pos": 5883.5 + }, + { + "id": 13669, + "x_pos": 2490.5, + "y_pos": 5492.5 + }, + { + "id": 13652, + "x_pos": 2888, + "y_pos": 4854 + }, + { + "id": 13429, + "x_pos": 2692.5, + "y_pos": 5640.681620408233 + }, + { + "id": 12746, + "x_pos": 3379, + "y_pos": 4087 + }, + { + "id": 12742, + "x_pos": 3603, + "y_pos": 4486.75 + }, + { + "id": 12738, + "x_pos": 3840, + "y_pos": 4910.5 + }, + { + "id": 12735, + "x_pos": 3476.5, + "y_pos": 4725.5 + }, + { + "id": 12733, + "x_pos": 3634.0999450683594, + "y_pos": 4823.200042724609 + }, + { + "id": 12731, + "x_pos": 3065.5, + "y_pos": 4874.5 + }, + { + "id": 12729, + "x_pos": 3296, + "y_pos": 4992.5 + }, + { + "id": 12728, + "x_pos": 3376.6000061035156, + "y_pos": 5084.599960327148 + }, + { + "id": 12726, + "x_pos": 3684, + "y_pos": 5125 + }, + { + "id": 12725, + "x_pos": 3473.5, + "y_pos": 5326.5 + }, + { + "id": 12724, + "x_pos": 3658, + "y_pos": 5383.5 + }, + { + "id": 12722, + "x_pos": 3748, + "y_pos": 5544 + }, + { + "id": 12720, + "x_pos": 2735, + "y_pos": 6079 + }, + { + "id": 12719, + "x_pos": 2544.5, + "y_pos": 5973 + }, + { + "id": 12718, + "x_pos": 2266.5, + "y_pos": 5951 + }, + { + "id": 12717, + "x_pos": 1990, + "y_pos": 5742 + }, + { + "id": 12716, + "x_pos": 1794, + "y_pos": 5864 + }, + { + "id": 12715, + "x_pos": 2411.5, + "y_pos": 6211.5 + }, + { + "id": 12714, + "x_pos": 1658.1000366210938, + "y_pos": 6252.099960327148 + }, + { + "id": 12711, + "x_pos": 1642, + "y_pos": 6454.5 + }, + { + "id": 12704, + "x_pos": 1445, + "y_pos": 5810.5 + }, + { + "id": 12696, + "x_pos": 1219.5, + "y_pos": 5895.5 + }, + { + "id": 6609, + "x_pos": 46, + "y_pos": 1295 + }, + { + "id": 6608, + "x_pos": -42, + "y_pos": 1406 + }, + { + "id": 6606, + "x_pos": -260.5, + "y_pos": 1472 + }, + { + "id": 6604, + "x_pos": 587.5, + "y_pos": 1497.5 + }, + { + "id": 6603, + "x_pos": 265.5, + "y_pos": 1302 + }, + { + "id": 6601, + "x_pos": 265, + "y_pos": 991.5 + }, + { + "id": 6600, + "x_pos": 260, + "y_pos": 1473 + }, + { + "id": 6599, + "x_pos": -337.5, + "y_pos": 1171.5 + }, + { + "id": 6596, + "x_pos": -192, + "y_pos": 1093 + }, + { + "id": 6594, + "x_pos": 96.5, + "y_pos": 1059 + }, + { + "id": 6540, + "x_pos": -174.5, + "y_pos": 869 + }, + { + "id": 6538, + "x_pos": 389, + "y_pos": 732 + }, + { + "id": 1748, + "x_pos": -1473, + "y_pos": 1263 + }, + { + "id": 937, + "x_pos": -1119.5, + "y_pos": 2844 + }, + { + "id": 343, + "x_pos": -1083, + "y_pos": 1790.5 + }, + { + "id": 119, + "x_pos": -1860.5, + "y_pos": 1155.5 + }, + { + "id": 118, + "x_pos": -2352.5, + "y_pos": 1301.5 + }, + { + "id": 116, + "x_pos": -545.1000061035156, + "y_pos": 459.300048828125 + }, + { + "id": 111, + "x_pos": -1272.5, + "y_pos": 2953 + }, + { + "id": 110, + "x_pos": -1582.5, + "y_pos": 2087.5 + }, + { + "id": 109, + "x_pos": -1897.5, + "y_pos": 2191.5 + }, + { + "id": 108, + "x_pos": -2014, + "y_pos": 2396.5 + }, + { + "id": 106, + "x_pos": -1784, + "y_pos": 2890.5 + }, + { + "id": 105, + "x_pos": -1574, + "y_pos": 2918 + }, + { + "id": 104, + "x_pos": -1017, + "y_pos": 2996.5 + }, + { + "id": 101, + "x_pos": -1235.5, + "y_pos": 2106.5 + }, + { + "id": 100, + "x_pos": -805, + "y_pos": 2196.5 + }, + { + "id": 96, + "x_pos": -772.5, + "y_pos": 2449 + }, + { + "id": 94, + "x_pos": -1039, + "y_pos": 2573.5 + }, + { + "id": 92, + "x_pos": -1358, + "y_pos": 2612.5 + }, + { + "id": 57, + "x_pos": 128.5, + "y_pos": 55 + }, + { + "id": 55, + "x_pos": 2.5, + "y_pos": 70.5 + }, + { + "id": 54, + "x_pos": -76.5, + "y_pos": 2418.5 + }, + { + "id": 53, + "x_pos": -269, + "y_pos": 1890 + }, + { + "id": 52, + "x_pos": -697.5, + "y_pos": 1672 + }, + { + "id": 51, + "x_pos": -1080.5, + "y_pos": 1456 + }, + { + "id": 50, + "x_pos": -592.5, + "y_pos": 1151 + }, + { + "id": 49, + "x_pos": -1461.5009832004407, + "y_pos": 3100.001084109693 + }, + { + "id": 48, + "x_pos": -1870, + "y_pos": 3324 + }, + { + "id": 47, + "x_pos": -2413.5, + "y_pos": 1943.5 + }, + { + "id": 46, + "x_pos": -2134, + "y_pos": 1821.5 + }, + { + "id": 45, + "x_pos": -2549, + "y_pos": 1619 + }, + { + "id": 44, + "x_pos": -1796, + "y_pos": 1393 + }, + { + "id": 43, + "x_pos": -1644.5, + "y_pos": 1749.5 + }, + { + "id": 42, + "x_pos": -1930.5, + "y_pos": 1710 + }, + { + "id": 40, + "x_pos": -2181.5, + "y_pos": 1498 + }, + { + "id": 39, + "x_pos": -2195.5, + "y_pos": 1302 + }, + { + "id": 38, + "x_pos": -2028.5, + "y_pos": 761 + }, + { + "id": 37, + "x_pos": -1554.5, + "y_pos": 548 + }, + { + "id": 36, + "x_pos": -1594, + "y_pos": 793 + }, + { + "id": 34, + "x_pos": -547, + "y_pos": 1390 + }, + { + "id": 32, + "x_pos": -1229, + "y_pos": 894 + }, + { + "id": 31, + "x_pos": -1289, + "y_pos": 567 + }, + { + "id": 30, + "x_pos": -949.5, + "y_pos": 767 + }, + { + "id": 29, + "x_pos": -1035, + "y_pos": 665 + }, + { + "id": 28, + "x_pos": -787, + "y_pos": -35.14179092048266 + }, + { + "id": 27, + "x_pos": -1013, + "y_pos": -588.5 + }, + { + "id": 26, + "x_pos": -1090, + "y_pos": -247.5 + }, + { + "id": 24, + "x_pos": -871, + "y_pos": -318.55477049488263 + }, + { + "id": 23, + "x_pos": -659, + "y_pos": -454.5 + }, + { + "id": 22, + "x_pos": -313, + "y_pos": -251.5 + }, + { + "id": 21, + "x_pos": -366, + "y_pos": 45.69917174997249 + }, + { + "id": 20, + "x_pos": -218, + "y_pos": 158 + }, + { + "id": 18, + "x_pos": 689, + "y_pos": 875.5 + }, + { + "id": 17, + "x_pos": 1254, + "y_pos": 897.5 + }, + { + "id": 16, + "x_pos": 124.5, + "y_pos": 340.5 + }, + { + "id": 15, + "x_pos": 780, + "y_pos": 362.5 + }, + { + "id": 14, + "x_pos": 162, + "y_pos": 540 + }, + { + "id": 10, + "x_pos": 889, + "y_pos": -483.5 + }, + { + "id": 9, + "x_pos": 891.5, + "y_pos": -352.5 + }, + { + "id": 8, + "x_pos": 521.5, + "y_pos": -392.5 + }, + { + "id": 7, + "x_pos": 756.5, + "y_pos": 46.5 + }, + { + "id": 3, + "x_pos": 373.5, + "y_pos": 145.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220401/0cc42d15134cbb724304050fd0bbcaac_8799482478853097434.png" + }, + "57": { + "name": "Samachurl", + "clear_name": "Samachurl", + "points": [ + { + "id": 26402, + "x_pos": -2659.7237243652344, + "y_pos": 2955.791572570801 + }, + { + "id": 26396, + "x_pos": -2617.3427734375, + "y_pos": 2857.602798461914 + }, + { + "id": 26391, + "x_pos": -2625.4807739257812, + "y_pos": 3238.589599609375 + }, + { + "id": 19882, + "x_pos": 1778.3999938964844, + "y_pos": 8605.399963378906 + }, + { + "id": 19877, + "x_pos": 2094.3999938964844, + "y_pos": 8747.399993896484 + }, + { + "id": 19876, + "x_pos": 2099.7000122070312, + "y_pos": 8749.100006103516 + }, + { + "id": 19875, + "x_pos": 2094.6000061035156, + "y_pos": 8750.899993896484 + }, + { + "id": 19650, + "x_pos": 1826.7000122070312, + "y_pos": 8575.699981689453 + }, + { + "id": 19461, + "x_pos": 1973.0000610351562, + "y_pos": 7374.599960327148 + }, + { + "id": 19448, + "x_pos": 1768.8999938964844, + "y_pos": 7080.100006103516 + }, + { + "id": 19362, + "x_pos": 1774.5999755859375, + "y_pos": 8147.9000244140625 + }, + { + "id": 19303, + "x_pos": 2141, + "y_pos": 8370.5 + }, + { + "id": 18979, + "x_pos": 2206, + "y_pos": 8404.5 + }, + { + "id": 18977, + "x_pos": 2401, + "y_pos": 8598.5 + }, + { + "id": 18976, + "x_pos": 2389.5, + "y_pos": 8570.5 + }, + { + "id": 18975, + "x_pos": 2076.5, + "y_pos": 8722.5 + }, + { + "id": 18974, + "x_pos": 2084.5, + "y_pos": 8723.5 + }, + { + "id": 18973, + "x_pos": 2079.5, + "y_pos": 8724.5 + }, + { + "id": 18972, + "x_pos": 2056, + "y_pos": 8727.5 + }, + { + "id": 18970, + "x_pos": 1864, + "y_pos": 9077 + }, + { + "id": 18968, + "x_pos": 1813, + "y_pos": 8747 + }, + { + "id": 18967, + "x_pos": 1807.3000183105469, + "y_pos": 8647.500015258789 + }, + { + "id": 18776, + "x_pos": 1626, + "y_pos": 8709.5 + }, + { + "id": 17800, + "x_pos": -318.5, + "y_pos": -378 + }, + { + "id": 17696, + "x_pos": 3655.1000366210938, + "y_pos": 5146.700012207031 + }, + { + "id": 17556, + "x_pos": 120.00003051757812, + "y_pos": 6212.5 + }, + { + "id": 17470, + "x_pos": 3139.199981689453, + "y_pos": 6543 + }, + { + "id": 17452, + "x_pos": 3492.6000061035156, + "y_pos": 6558.199966430664 + }, + { + "id": 17382, + "x_pos": -311.1999816894531, + "y_pos": 6194.200012207031 + }, + { + "id": 16658, + "x_pos": 238.09994506835938, + "y_pos": 6338.699364424421 + }, + { + "id": 16656, + "x_pos": -92.5, + "y_pos": 6054.1824897968345 + }, + { + "id": 16609, + "x_pos": 3136.1000366210938, + "y_pos": 6539.066103009798 + }, + { + "id": 16591, + "x_pos": 4049.500030517578, + "y_pos": 7178.769471108873 + }, + { + "id": 16588, + "x_pos": 3999, + "y_pos": 7188.101339888701 + }, + { + "id": 16575, + "x_pos": 3569.5999755859375, + "y_pos": 7218.669920761902 + }, + { + "id": 15844, + "x_pos": 2401, + "y_pos": 6252.5 + }, + { + "id": 15843, + "x_pos": -811, + "y_pos": -667.5 + }, + { + "id": 15842, + "x_pos": -151.5, + "y_pos": 241 + }, + { + "id": 15841, + "x_pos": -1971.5, + "y_pos": 1250.5 + }, + { + "id": 14096, + "x_pos": 2219.3999938964844, + "y_pos": 6187.200012207031 + }, + { + "id": 14092, + "x_pos": 3217.7000122070312, + "y_pos": 5035.60001373291 + }, + { + "id": 14089, + "x_pos": 3651.4000244140625, + "y_pos": 5145 + }, + { + "id": 14086, + "x_pos": 2866.5, + "y_pos": 5587.0999755859375 + }, + { + "id": 14080, + "x_pos": 2257.5999755859375, + "y_pos": 5732.399963378906 + }, + { + "id": 14078, + "x_pos": 2291.5, + "y_pos": 5852.4999923706055 + }, + { + "id": 14077, + "x_pos": 2438.199981689453, + "y_pos": 5834 + }, + { + "id": 13705, + "x_pos": 2711.5, + "y_pos": 5458 + }, + { + "id": 12043, + "x_pos": -2055.108528075659, + "y_pos": 1286.0352119577565 + }, + { + "id": 12038, + "x_pos": -1921.608366348712, + "y_pos": 1429.0812440364225 + }, + { + "id": 9706, + "x_pos": 545.3650628887808, + "y_pos": -371.64829445277974 + }, + { + "id": 8483, + "x_pos": -1636, + "y_pos": 2011 + }, + { + "id": 8482, + "x_pos": -1683, + "y_pos": 2046 + }, + { + "id": 8481, + "x_pos": -1605.5, + "y_pos": 2025.5 + }, + { + "id": 7455, + "x_pos": 465, + "y_pos": 821.5 + }, + { + "id": 7226, + "x_pos": 272.5, + "y_pos": 1065.5 + }, + { + "id": 7225, + "x_pos": 278, + "y_pos": 1066 + }, + { + "id": 7222, + "x_pos": -391.5, + "y_pos": 1237 + }, + { + "id": 7221, + "x_pos": 220.5, + "y_pos": 917 + }, + { + "id": 7219, + "x_pos": 140.5, + "y_pos": 1063.5 + }, + { + "id": 7212, + "x_pos": 239.5, + "y_pos": 1472 + }, + { + "id": 7188, + "x_pos": 470, + "y_pos": 1032 + }, + { + "id": 7172, + "x_pos": 431.5, + "y_pos": 1043 + }, + { + "id": 7162, + "x_pos": -306.5, + "y_pos": 1395 + }, + { + "id": 7147, + "x_pos": 243, + "y_pos": 1474 + }, + { + "id": 4236, + "x_pos": -2011.5, + "y_pos": 2272.5 + }, + { + "id": 4235, + "x_pos": -1724.5, + "y_pos": 2088 + }, + { + "id": 4234, + "x_pos": -2000, + "y_pos": 2272.5 + }, + { + "id": 4233, + "x_pos": -1916, + "y_pos": 2025.5 + }, + { + "id": 4232, + "x_pos": -2331.5, + "y_pos": 1757.5 + }, + { + "id": 4231, + "x_pos": -2588.5, + "y_pos": 1564 + }, + { + "id": 4230, + "x_pos": -1994, + "y_pos": 1954 + }, + { + "id": 4227, + "x_pos": -1760.5, + "y_pos": 1961.5 + }, + { + "id": 4226, + "x_pos": 979, + "y_pos": 138 + }, + { + "id": 4225, + "x_pos": 414.5, + "y_pos": 606.5 + }, + { + "id": 4224, + "x_pos": 655, + "y_pos": -391.5 + }, + { + "id": 4223, + "x_pos": -1059, + "y_pos": -408.5 + }, + { + "id": 4222, + "x_pos": -590.5, + "y_pos": -453.5 + }, + { + "id": 4221, + "x_pos": -1190.5, + "y_pos": -265.5 + }, + { + "id": 4220, + "x_pos": -1098, + "y_pos": -393 + }, + { + "id": 4219, + "x_pos": -1224.5, + "y_pos": -165.5 + }, + { + "id": 4218, + "x_pos": 734.5, + "y_pos": 121 + }, + { + "id": 4217, + "x_pos": -1025, + "y_pos": -621 + }, + { + "id": 4216, + "x_pos": 732, + "y_pos": -483.5 + }, + { + "id": 4215, + "x_pos": 800, + "y_pos": 447 + }, + { + "id": 4214, + "x_pos": -997.5, + "y_pos": -229 + }, + { + "id": 4213, + "x_pos": 888.5, + "y_pos": -90.5 + }, + { + "id": 4212, + "x_pos": -268, + "y_pos": -311 + }, + { + "id": 4211, + "x_pos": -988, + "y_pos": -436 + }, + { + "id": 4209, + "x_pos": -2015, + "y_pos": 1396 + }, + { + "id": 4208, + "x_pos": -949.5, + "y_pos": -217.5 + }, + { + "id": 4206, + "x_pos": -1704, + "y_pos": 1049.5 + }, + { + "id": 4205, + "x_pos": 17, + "y_pos": 681.5 + }, + { + "id": 4204, + "x_pos": -1627, + "y_pos": 2171 + }, + { + "id": 4202, + "x_pos": -585.5, + "y_pos": -443.5 + }, + { + "id": 4201, + "x_pos": 779.5, + "y_pos": 246.5 + }, + { + "id": 4200, + "x_pos": 278.5, + "y_pos": 548 + }, + { + "id": 4199, + "x_pos": 595.5, + "y_pos": -521.5 + }, + { + "id": 4198, + "x_pos": -478, + "y_pos": 97 + }, + { + "id": 4197, + "x_pos": -1118.5, + "y_pos": -166 + }, + { + "id": 4196, + "x_pos": -342, + "y_pos": -92.5 + }, + { + "id": 4195, + "x_pos": -244.5, + "y_pos": 109.5 + }, + { + "id": 4194, + "x_pos": -1829.5, + "y_pos": 1132 + }, + { + "id": 4193, + "x_pos": -1131, + "y_pos": -72 + }, + { + "id": 4192, + "x_pos": -1961.5, + "y_pos": 1496.5 + }, + { + "id": 4191, + "x_pos": -1203.5, + "y_pos": -150 + }, + { + "id": 4190, + "x_pos": -1894, + "y_pos": 744 + }, + { + "id": 4189, + "x_pos": -875.5, + "y_pos": -266.5 + }, + { + "id": 4188, + "x_pos": 925.5, + "y_pos": -495 + }, + { + "id": 4187, + "x_pos": -1087, + "y_pos": -391.5 + }, + { + "id": 4186, + "x_pos": -1032, + "y_pos": -346 + }, + { + "id": 4185, + "x_pos": -708, + "y_pos": 111.5 + }, + { + "id": 4175, + "x_pos": -2045, + "y_pos": 2968 + }, + { + "id": 4172, + "x_pos": -2057, + "y_pos": 3016 + }, + { + "id": 4171, + "x_pos": -1884, + "y_pos": 3105 + }, + { + "id": 4167, + "x_pos": -1607, + "y_pos": 1109.5 + }, + { + "id": 4161, + "x_pos": -1175.5, + "y_pos": 636.5 + }, + { + "id": 4127, + "x_pos": -1489, + "y_pos": 1471.5 + }, + { + "id": 4006, + "x_pos": -1342, + "y_pos": 2646 + }, + { + "id": 4004, + "x_pos": 240.5, + "y_pos": 2430 + }, + { + "id": 4001, + "x_pos": 250, + "y_pos": 2430.5 + }, + { + "id": 3996, + "x_pos": 141.5, + "y_pos": 2469 + }, + { + "id": 3995, + "x_pos": 179, + "y_pos": 2486.5 + }, + { + "id": 3986, + "x_pos": -1370, + "y_pos": 1953 + }, + { + "id": 3970, + "x_pos": -1308, + "y_pos": 1929 + }, + { + "id": 2530, + "x_pos": -280, + "y_pos": 1622.2167403983703 + }, + { + "id": 2528, + "x_pos": -703, + "y_pos": 1843.2201211772494 + }, + { + "id": 2520, + "x_pos": -345, + "y_pos": 1726.269705934144 + }, + { + "id": 2516, + "x_pos": -948, + "y_pos": 1253.4643589952275 + }, + { + "id": 2510, + "x_pos": -978, + "y_pos": 1594.3553523324163 + }, + { + "id": 2508, + "x_pos": -747, + "y_pos": 1342.3869062686222 + }, + { + "id": 2490, + "x_pos": -1101, + "y_pos": 1673.2482943345758 + }, + { + "id": 2487, + "x_pos": -968, + "y_pos": 1726.2156134720772 + }, + { + "id": 2478, + "x_pos": -1213, + "y_pos": 1833.328306101383 + }, + { + "id": 2473, + "x_pos": -1236, + "y_pos": 1665.2832290496608 + }, + { + "id": 2463, + "x_pos": -1258, + "y_pos": 999.3125291332803 + }, + { + "id": 2459, + "x_pos": -520, + "y_pos": 1629.2798482707813 + }, + { + "id": 2458, + "x_pos": -1053, + "y_pos": 1854.8797894367449 + }, + { + "id": 2456, + "x_pos": -784, + "y_pos": 2100.152505599666 + }, + { + "id": 2453, + "x_pos": -1304, + "y_pos": 718.2730867130231 + }, + { + "id": 2444, + "x_pos": -893, + "y_pos": 1103.4703604038896 + }, + { + "id": 2440, + "x_pos": -601, + "y_pos": 1336.2212481035422 + }, + { + "id": 2432, + "x_pos": -909, + "y_pos": 1363.378838921793 + }, + { + "id": 2426, + "x_pos": -1087, + "y_pos": 1137.403810163018 + }, + { + "id": 2410, + "x_pos": -1048, + "y_pos": 735.2494335475171 + }, + { + "id": 2380, + "x_pos": -1354, + "y_pos": 2882.0905246535476 + }, + { + "id": 2377, + "x_pos": -761, + "y_pos": 738.5858875206345 + }, + { + "id": 2375, + "x_pos": -494, + "y_pos": 819.3548332871451 + }, + { + "id": 2373, + "x_pos": -681, + "y_pos": 739.4403533605791 + }, + { + "id": 2368, + "x_pos": -728, + "y_pos": 730.4673596995585 + }, + { + "id": 2364, + "x_pos": -737, + "y_pos": 639.4433540649106 + }, + { + "id": 1958, + "x_pos": 1046.5, + "y_pos": -594 + }, + { + "id": 1956, + "x_pos": 1086.5, + "y_pos": -566 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/38142ddcc6d6a3ff9aacf691bb7b97af_4527768697261404629.png" + }, + "149": { + "name": "Mitachurl", + "clear_name": "Mitachurl", + "points": [ + { + "id": 26401, + "x_pos": -2698.4251708984375, + "y_pos": 3287.0706481933594 + }, + { + "id": 26398, + "x_pos": -2739.819793701172, + "y_pos": 3082.413101196289 + }, + { + "id": 26394, + "x_pos": -2631.7975158691406, + "y_pos": 3299.125556945801 + }, + { + "id": 26393, + "x_pos": -2606.204620361328, + "y_pos": 3239.622329711914 + }, + { + "id": 26389, + "x_pos": -2763.1504516601562, + "y_pos": 3153.1997985839844 + }, + { + "id": 26388, + "x_pos": -2116.893829345703, + "y_pos": 2742.339813232422 + }, + { + "id": 19872, + "x_pos": 2062.7000122070312, + "y_pos": 8521 + }, + { + "id": 19637, + "x_pos": 2081, + "y_pos": 8482.600036621094 + }, + { + "id": 19479, + "x_pos": 2107, + "y_pos": 8518.400001525879 + }, + { + "id": 19340, + "x_pos": 1762.6000061035156, + "y_pos": 8144 + }, + { + "id": 18891, + "x_pos": 2442.5, + "y_pos": 8350.5 + }, + { + "id": 18888, + "x_pos": 2204, + "y_pos": 8669.5 + }, + { + "id": 18875, + "x_pos": 2198.5, + "y_pos": 8405.5 + }, + { + "id": 18822, + "x_pos": 1854.5, + "y_pos": 9080.5 + }, + { + "id": 18820, + "x_pos": 1826.5, + "y_pos": 8981.5 + }, + { + "id": 18816, + "x_pos": 1804, + "y_pos": 8818 + }, + { + "id": 18805, + "x_pos": 1840.5, + "y_pos": 8472 + }, + { + "id": 18802, + "x_pos": 1953.5, + "y_pos": 8536.5 + }, + { + "id": 18777, + "x_pos": 1728, + "y_pos": 8594.5 + }, + { + "id": 18775, + "x_pos": 1636.5, + "y_pos": 8706.5 + }, + { + "id": 18771, + "x_pos": 1831, + "y_pos": 8385.5 + }, + { + "id": 17770, + "x_pos": 3179.800018310547, + "y_pos": 6830.499969482422 + }, + { + "id": 17702, + "x_pos": 525.6000061035156, + "y_pos": 863.3999938964844 + }, + { + "id": 17494, + "x_pos": -302.60003662109375, + "y_pos": 6191.300003051758 + }, + { + "id": 17493, + "x_pos": -289.10003662109375, + "y_pos": 6203.899993896484 + }, + { + "id": 17488, + "x_pos": 3131.5999755859375, + "y_pos": 6542.9000244140625 + }, + { + "id": 17480, + "x_pos": 3465, + "y_pos": 6683.299987792969 + }, + { + "id": 17479, + "x_pos": 3978.8999938964844, + "y_pos": 7140.4000244140625 + }, + { + "id": 17478, + "x_pos": 4058.7000122070312, + "y_pos": 7183.699981689453 + }, + { + "id": 17477, + "x_pos": 3963.2000122070312, + "y_pos": 7138.5 + }, + { + "id": 17476, + "x_pos": 3964.1000061035156, + "y_pos": 7146.700012207031 + }, + { + "id": 17475, + "x_pos": 3963, + "y_pos": 7240.600006103516 + }, + { + "id": 17474, + "x_pos": 3884.4000244140625, + "y_pos": 7223.800018310547 + }, + { + "id": 17471, + "x_pos": 3469.1000061035156, + "y_pos": 7314.5 + }, + { + "id": 16734, + "x_pos": 3461.7000122070312, + "y_pos": 6687.898136232539 + }, + { + "id": 16732, + "x_pos": 4052.4000244140625, + "y_pos": 7137.660854435377 + }, + { + "id": 16727, + "x_pos": 3863.2999877929688, + "y_pos": 7184.188695911596 + }, + { + "id": 16726, + "x_pos": 3693.9000549316406, + "y_pos": 7135.280797393354 + }, + { + "id": 16725, + "x_pos": 3482.0999145507812, + "y_pos": 7219.280273514592 + }, + { + "id": 15530, + "x_pos": 2293.5, + "y_pos": 6313.300018310547 + }, + { + "id": 15529, + "x_pos": 2276.8999938964844, + "y_pos": 6314.200012207031 + }, + { + "id": 15528, + "x_pos": 2260.199981689453, + "y_pos": 6319.600006103516 + }, + { + "id": 15424, + "x_pos": 6.70001220703125, + "y_pos": 675 + }, + { + "id": 15257, + "x_pos": 1284.8683680452777, + "y_pos": 5861.301206339149 + }, + { + "id": 15256, + "x_pos": 2225.7718793111017, + "y_pos": 6183.8042833151485 + }, + { + "id": 15255, + "x_pos": 2123.87716149099, + "y_pos": 6045.1927008369785 + }, + { + "id": 15254, + "x_pos": 2025.3566128886905, + "y_pos": 5780.608536066233 + }, + { + "id": 15253, + "x_pos": 2271.391786671541, + "y_pos": 5732.18356160117 + }, + { + "id": 15252, + "x_pos": 2858.628461637488, + "y_pos": 5589.448226279121 + }, + { + "id": 15251, + "x_pos": 3222.3829932258286, + "y_pos": 5041.3072991630215 + }, + { + "id": 15250, + "x_pos": 3462.494137702859, + "y_pos": 5213.298190491276 + }, + { + "id": 15249, + "x_pos": 3624.777711045939, + "y_pos": 5143.59028815868 + }, + { + "id": 15248, + "x_pos": 3529.8012213591137, + "y_pos": 5026.295159361372 + }, + { + "id": 15247, + "x_pos": 3387.2745101664004, + "y_pos": 4950.993907176128 + }, + { + "id": 15246, + "x_pos": 3449.6316625170257, + "y_pos": 4602.509139235808 + }, + { + "id": 14466, + "x_pos": -1673.7999572753906, + "y_pos": 1938.5 + }, + { + "id": 14313, + "x_pos": 2646, + "y_pos": 5468.5999755859375 + }, + { + "id": 14180, + "x_pos": 1053, + "y_pos": 5909.800018310547 + }, + { + "id": 14129, + "x_pos": 2966, + "y_pos": 5678.699981689453 + }, + { + "id": 14121, + "x_pos": 2223.300018310547, + "y_pos": 6193.199981689453 + }, + { + "id": 14120, + "x_pos": 2196.5, + "y_pos": 6169 + }, + { + "id": 14118, + "x_pos": 2207.7999877929688, + "y_pos": 6274.300018310547 + }, + { + "id": 14105, + "x_pos": 2240.0999755859375, + "y_pos": 5953.299987792969 + }, + { + "id": 14102, + "x_pos": 2285.6000061035156, + "y_pos": 5852.200012207031 + }, + { + "id": 8486, + "x_pos": -1610, + "y_pos": 2033.5 + }, + { + "id": 7458, + "x_pos": 460.5, + "y_pos": 821 + }, + { + "id": 7457, + "x_pos": 470, + "y_pos": 1047 + }, + { + "id": 7411, + "x_pos": -432.5, + "y_pos": 1177 + }, + { + "id": 7410, + "x_pos": -153.5, + "y_pos": 679.5 + }, + { + "id": 7406, + "x_pos": -147, + "y_pos": 677.5 + }, + { + "id": 7315, + "x_pos": 349.5, + "y_pos": 1561.5 + }, + { + "id": 7313, + "x_pos": 521, + "y_pos": 1355 + }, + { + "id": 7042, + "x_pos": -1933.5, + "y_pos": 1822 + }, + { + "id": 7021, + "x_pos": 230, + "y_pos": 1472 + }, + { + "id": 7012, + "x_pos": 409.5, + "y_pos": 1569 + }, + { + "id": 6996, + "x_pos": 427, + "y_pos": 1219 + }, + { + "id": 6975, + "x_pos": 215.5, + "y_pos": 918.5 + }, + { + "id": 6893, + "x_pos": 342.5, + "y_pos": 1563.5 + }, + { + "id": 6873, + "x_pos": -385, + "y_pos": 1237.5 + }, + { + "id": 6828, + "x_pos": -269, + "y_pos": 1334 + }, + { + "id": 6804, + "x_pos": -2032.5, + "y_pos": 2980.5 + }, + { + "id": 6802, + "x_pos": -2056, + "y_pos": 3019 + }, + { + "id": 4725, + "x_pos": -2041, + "y_pos": 3203.5 + }, + { + "id": 4724, + "x_pos": -2341, + "y_pos": 1692 + }, + { + "id": 4723, + "x_pos": 263, + "y_pos": 2522 + }, + { + "id": 4721, + "x_pos": 162, + "y_pos": 2461.5 + }, + { + "id": 4720, + "x_pos": -359.5, + "y_pos": -108.5 + }, + { + "id": 4719, + "x_pos": -1952.5, + "y_pos": 2994.5 + }, + { + "id": 4718, + "x_pos": -1482, + "y_pos": 1472 + }, + { + "id": 4717, + "x_pos": -717, + "y_pos": 1886.5 + }, + { + "id": 4716, + "x_pos": -2011, + "y_pos": 3223 + }, + { + "id": 4715, + "x_pos": -1995.5, + "y_pos": 3023 + }, + { + "id": 4714, + "x_pos": -2071, + "y_pos": 1134 + }, + { + "id": 4713, + "x_pos": -123, + "y_pos": 1767 + }, + { + "id": 4712, + "x_pos": -1230.5, + "y_pos": 1661 + }, + { + "id": 4711, + "x_pos": -1327.5, + "y_pos": 2676 + }, + { + "id": 4710, + "x_pos": -1969, + "y_pos": 2731 + }, + { + "id": 4709, + "x_pos": -1349, + "y_pos": 1789 + }, + { + "id": 4708, + "x_pos": -1043.5, + "y_pos": 1854.5 + }, + { + "id": 4707, + "x_pos": -1316, + "y_pos": 2749 + }, + { + "id": 4706, + "x_pos": -405, + "y_pos": -60.5 + }, + { + "id": 4705, + "x_pos": -661.5, + "y_pos": 1907.5 + }, + { + "id": 4704, + "x_pos": -528.5, + "y_pos": 1520.5 + }, + { + "id": 4703, + "x_pos": -702.5, + "y_pos": 1464.5 + }, + { + "id": 4702, + "x_pos": -618, + "y_pos": 1397 + }, + { + "id": 4701, + "x_pos": -1177, + "y_pos": 633 + }, + { + "id": 4700, + "x_pos": -1711, + "y_pos": 2098 + }, + { + "id": 4699, + "x_pos": -1224, + "y_pos": 2463.5 + }, + { + "id": 4698, + "x_pos": -1376.5, + "y_pos": 1950.5 + }, + { + "id": 2352, + "x_pos": 254, + "y_pos": 2512.063478422514 + }, + { + "id": 2314, + "x_pos": -800, + "y_pos": 1300.5264639101129 + }, + { + "id": 2291, + "x_pos": 158, + "y_pos": 2397.023934807432 + }, + { + "id": 2280, + "x_pos": -311, + "y_pos": 265.0251942661034 + }, + { + "id": 2268, + "x_pos": 938, + "y_pos": -310.8274490693068 + }, + { + "id": 1676, + "x_pos": -465.5, + "y_pos": 1312.5 + }, + { + "id": 1668, + "x_pos": -1346.9997139645366, + "y_pos": 737.4914807854593 + }, + { + "id": 1643, + "x_pos": -1381.5004290531947, + "y_pos": 944.5037271563615 + }, + { + "id": 1619, + "x_pos": -310.5, + "y_pos": -343.8300851172553 + }, + { + "id": 1615, + "x_pos": -1048.3451179415597, + "y_pos": 745.9229431362355 + }, + { + "id": 1594, + "x_pos": -1138.5, + "y_pos": -85.22956152216557 + }, + { + "id": 1586, + "x_pos": -1495.501573195048, + "y_pos": 927 + }, + { + "id": 1584, + "x_pos": -1259.9987128404155, + "y_pos": 972.0018635781807 + }, + { + "id": 1581, + "x_pos": -1041, + "y_pos": -619.9681175164828 + }, + { + "id": 1559, + "x_pos": -1353.5, + "y_pos": 739.999201323637 + }, + { + "id": 1526, + "x_pos": -647.4994279290736, + "y_pos": 826.5037271563615 + }, + { + "id": 1522, + "x_pos": -1150, + "y_pos": -87.89159955604123 + }, + { + "id": 1507, + "x_pos": -1103.482271946185, + "y_pos": 1106.9021775507922 + }, + { + "id": 1503, + "x_pos": -954.4994279290736, + "y_pos": 1265.0037271563615 + }, + { + "id": 1476, + "x_pos": -1359.4919910070294, + "y_pos": 737.0005324509088 + }, + { + "id": 1438, + "x_pos": 3.5, + "y_pos": 624.5 + }, + { + "id": 1314, + "x_pos": -1555.5, + "y_pos": 1639.5 + }, + { + "id": 1022, + "x_pos": 896.5, + "y_pos": 44.5 + }, + { + "id": 1008, + "x_pos": -1448, + "y_pos": 1690.5 + }, + { + "id": 1005, + "x_pos": -1097.5, + "y_pos": -398.5123779053656 + }, + { + "id": 989, + "x_pos": -2302.5, + "y_pos": 1723.5 + }, + { + "id": 950, + "x_pos": -837.5, + "y_pos": -353.091529122938 + }, + { + "id": 941, + "x_pos": 701, + "y_pos": -497 + }, + { + "id": 938, + "x_pos": -296.5, + "y_pos": 155 + }, + { + "id": 828, + "x_pos": 814.5, + "y_pos": -334 + }, + { + "id": 810, + "x_pos": -2268.5, + "y_pos": 1742.5 + }, + { + "id": 780, + "x_pos": -852.5, + "y_pos": -453.8428381106621 + }, + { + "id": 773, + "x_pos": -2252, + "y_pos": 1799 + }, + { + "id": 745, + "x_pos": -1937.5, + "y_pos": 1872.5 + }, + { + "id": 694, + "x_pos": -1602.5154034735683, + "y_pos": 2844.007347854583 + }, + { + "id": 693, + "x_pos": -156, + "y_pos": 233.5 + }, + { + "id": 614, + "x_pos": -699.5, + "y_pos": -566.1462919769792 + }, + { + "id": 552, + "x_pos": -1301.5009832004407, + "y_pos": 2873.499397716838 + }, + { + "id": 523, + "x_pos": -579.5, + "y_pos": 358 + }, + { + "id": 507, + "x_pos": -2465, + "y_pos": 1990.5 + }, + { + "id": 490, + "x_pos": -1815.5002184889868, + "y_pos": 3149.5 + }, + { + "id": 476, + "x_pos": -1668.99967226652, + "y_pos": 3148.5001204566324 + }, + { + "id": 475, + "x_pos": -1669.0001092444936, + "y_pos": 3152.999759086735 + }, + { + "id": 385, + "x_pos": 1228.5, + "y_pos": 916.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/cef1444b97c8f49cd8cd8aa10e5448ae_955377869035330155.png" + }, + "56": { + "name": "Hilichurl Shooter", + "clear_name": "HilichurlShooter", + "points": [ + { + "id": 26400, + "x_pos": -2687.496826171875, + "y_pos": 3167.011703491211 + }, + { + "id": 26399, + "x_pos": -2719.9369201660156, + "y_pos": 3036.969940185547 + }, + { + "id": 26397, + "x_pos": -2622.8427734375, + "y_pos": 2857.602798461914 + }, + { + "id": 26392, + "x_pos": -2610.81005859375, + "y_pos": 3247.282501220703 + }, + { + "id": 26390, + "x_pos": -2613.079620361328, + "y_pos": 3228.8885955810547 + }, + { + "id": 26387, + "x_pos": -2366.782501220703, + "y_pos": 2807.6431274414062 + }, + { + "id": 19890, + "x_pos": 1726.5, + "y_pos": 8488.799987792969 + }, + { + "id": 19888, + "x_pos": 1724.2999877929688, + "y_pos": 8492.799987792969 + }, + { + "id": 19887, + "x_pos": 1726.3000183105469, + "y_pos": 8496.399993896484 + }, + { + "id": 19884, + "x_pos": 1722.8999938964844, + "y_pos": 8550.799987792969 + }, + { + "id": 19883, + "x_pos": 1738.4000244140625, + "y_pos": 8546.399978637695 + }, + { + "id": 19657, + "x_pos": 1778.1000061035156, + "y_pos": 8550.399993896484 + }, + { + "id": 19652, + "x_pos": 1833.1999816894531, + "y_pos": 8577.600006103516 + }, + { + "id": 19651, + "x_pos": 1750.1999816894531, + "y_pos": 8554.600006103516 + }, + { + "id": 19644, + "x_pos": 2035.7999877929688, + "y_pos": 8804.600006103516 + }, + { + "id": 19469, + "x_pos": 2471.2000122070312, + "y_pos": 8548.799987792969 + }, + { + "id": 19468, + "x_pos": 2477.5, + "y_pos": 8559.399993896484 + }, + { + "id": 19466, + "x_pos": 2215.1000061035156, + "y_pos": 8595.399993896484 + }, + { + "id": 19465, + "x_pos": 2222.7000122070312, + "y_pos": 8599.500015258789 + }, + { + "id": 19464, + "x_pos": 2211.2000122070312, + "y_pos": 8603.600006103516 + }, + { + "id": 19463, + "x_pos": 2227, + "y_pos": 8591.899993896484 + }, + { + "id": 19462, + "x_pos": 1988, + "y_pos": 7368.399993896484 + }, + { + "id": 19459, + "x_pos": 1984.2000122070312, + "y_pos": 7380.900009155273 + }, + { + "id": 19457, + "x_pos": 1976.0999755859375, + "y_pos": 7307.9000244140625 + }, + { + "id": 19456, + "x_pos": 1984.7999877929688, + "y_pos": 7315.700012207031 + }, + { + "id": 19453, + "x_pos": 1972.0999755859375, + "y_pos": 7388.399993896484 + }, + { + "id": 19450, + "x_pos": 1800.2000427246094, + "y_pos": 7112.600021362305 + }, + { + "id": 19389, + "x_pos": 2213.1000366210938, + "y_pos": 8404.800018310547 + }, + { + "id": 19383, + "x_pos": 1946.8999938964844, + "y_pos": 8517.199981689453 + }, + { + "id": 19375, + "x_pos": 1959.5, + "y_pos": 8530.200012207031 + }, + { + "id": 19364, + "x_pos": 1773.1999816894531, + "y_pos": 8140.399993896484 + }, + { + "id": 19359, + "x_pos": 1715.6999816894531, + "y_pos": 8589.199981689453 + }, + { + "id": 19357, + "x_pos": 1982.5, + "y_pos": 8550.600006103516 + }, + { + "id": 19346, + "x_pos": 1833.3999938964844, + "y_pos": 8988.900024414062 + }, + { + "id": 19341, + "x_pos": 1851, + "y_pos": 9081.199981689453 + }, + { + "id": 17555, + "x_pos": 98.10000610351562, + "y_pos": 6251.699981689453 + }, + { + "id": 17554, + "x_pos": 111.89999389648438, + "y_pos": 6254.899993896484 + }, + { + "id": 17553, + "x_pos": 99.19998168945312, + "y_pos": 6257.4000244140625 + }, + { + "id": 17447, + "x_pos": 3890.6000061035156, + "y_pos": 7223.9000244140625 + }, + { + "id": 17446, + "x_pos": 3877.699981689453, + "y_pos": 7221 + }, + { + "id": 17431, + "x_pos": 3477.999969482422, + "y_pos": 7305.699981689453 + }, + { + "id": 17418, + "x_pos": 3477.2999877929688, + "y_pos": 7326.299987792969 + }, + { + "id": 17417, + "x_pos": 3466.2000122070312, + "y_pos": 7331.9000244140625 + }, + { + "id": 17412, + "x_pos": 3144.7999877929688, + "y_pos": 6541.899993896484 + }, + { + "id": 17393, + "x_pos": 2902.199981689453, + "y_pos": 6714.700012207031 + }, + { + "id": 17390, + "x_pos": 2906.999969482422, + "y_pos": 6720.100006103516 + }, + { + "id": 16657, + "x_pos": -89.20001220703125, + "y_pos": 6054.467030716558 + }, + { + "id": 16608, + "x_pos": 3131, + "y_pos": 6541.597619274846 + }, + { + "id": 16606, + "x_pos": 3462, + "y_pos": 6689.841787870939 + }, + { + "id": 16603, + "x_pos": 3197.5, + "y_pos": 6818.8679507858105 + }, + { + "id": 16595, + "x_pos": 4020.7000427246094, + "y_pos": 7138.0999755859375 + }, + { + "id": 16594, + "x_pos": 4075.199981689453, + "y_pos": 7154.038448889007 + }, + { + "id": 16590, + "x_pos": 4049.4000244140625, + "y_pos": 7180.267891835088 + }, + { + "id": 16589, + "x_pos": 4028.9000244140625, + "y_pos": 7182.714568128165 + }, + { + "id": 16579, + "x_pos": 3842, + "y_pos": 7331.576890140508 + }, + { + "id": 16578, + "x_pos": 3710.9000244140625, + "y_pos": 7134.462786223941 + }, + { + "id": 16574, + "x_pos": 3559.800048828125, + "y_pos": 7215.963849256472 + }, + { + "id": 16572, + "x_pos": 3495.1000061035156, + "y_pos": 7231.575115873789 + }, + { + "id": 15519, + "x_pos": 2489.699951171875, + "y_pos": 5289.261012673662 + }, + { + "id": 14597, + "x_pos": 2021.0201091281506, + "y_pos": 5775.997711763699 + }, + { + "id": 14595, + "x_pos": 2163.1020170240017, + "y_pos": 6012.402739773062 + }, + { + "id": 14594, + "x_pos": 2169.8979829759983, + "y_pos": 6009.201385162778 + }, + { + "id": 14581, + "x_pos": 1043.6000061035156, + "y_pos": 5908.200012207031 + }, + { + "id": 14425, + "x_pos": 3527.5999755859375, + "y_pos": 5193.5999755859375 + }, + { + "id": 14417, + "x_pos": 3365.8999938964844, + "y_pos": 4795.200012207031 + }, + { + "id": 14310, + "x_pos": 3879.2000122070312, + "y_pos": 5016.799987792969 + }, + { + "id": 14308, + "x_pos": 3844.3999938964844, + "y_pos": 5051 + }, + { + "id": 14305, + "x_pos": 3727.3999938964844, + "y_pos": 5012.299987792969 + }, + { + "id": 14300, + "x_pos": 2647, + "y_pos": 5474.700012207031 + }, + { + "id": 14277, + "x_pos": 1553.6000366210938, + "y_pos": 6129.0999755859375 + }, + { + "id": 14154, + "x_pos": 1269.8000183105469, + "y_pos": 5869.5 + }, + { + "id": 12054, + "x_pos": 47.556763292320284, + "y_pos": 2413.1167054459565 + }, + { + "id": 12040, + "x_pos": -1925.108350625259, + "y_pos": 1428.0817581909214 + }, + { + "id": 10622, + "x_pos": -559.5, + "y_pos": 819.5 + }, + { + "id": 8484, + "x_pos": -1680.5, + "y_pos": 2038 + }, + { + "id": 8479, + "x_pos": -1639.5, + "y_pos": 2004 + }, + { + "id": 7402, + "x_pos": -154.5, + "y_pos": 670 + }, + { + "id": 7401, + "x_pos": -161.5, + "y_pos": 674 + }, + { + "id": 7400, + "x_pos": 357.5, + "y_pos": 1543 + }, + { + "id": 7305, + "x_pos": 331.5, + "y_pos": 1026.5 + }, + { + "id": 7304, + "x_pos": 422, + "y_pos": 1044.5 + }, + { + "id": 7301, + "x_pos": 434.5, + "y_pos": 1048 + }, + { + "id": 7216, + "x_pos": -383.5, + "y_pos": 1239 + }, + { + "id": 7214, + "x_pos": -353.5, + "y_pos": 1335 + }, + { + "id": 7209, + "x_pos": -390.5, + "y_pos": 1237.5 + }, + { + "id": 7205, + "x_pos": 244.5, + "y_pos": 1472 + }, + { + "id": 7194, + "x_pos": 269.5, + "y_pos": 1090.5 + }, + { + "id": 7193, + "x_pos": 474, + "y_pos": 1025.5 + }, + { + "id": 7129, + "x_pos": 441, + "y_pos": 1222 + }, + { + "id": 6628, + "x_pos": 295.5, + "y_pos": 1565.5 + }, + { + "id": 3277, + "x_pos": -1620, + "y_pos": 2480 + }, + { + "id": 3276, + "x_pos": -1626, + "y_pos": 2501 + }, + { + "id": 3275, + "x_pos": -1334, + "y_pos": 2688 + }, + { + "id": 3274, + "x_pos": -1321, + "y_pos": 2696 + }, + { + "id": 3273, + "x_pos": -1377, + "y_pos": 2487 + }, + { + "id": 3175, + "x_pos": 803.5, + "y_pos": 449.5 + }, + { + "id": 3170, + "x_pos": 562, + "y_pos": 220.5 + }, + { + "id": 3168, + "x_pos": 814.5, + "y_pos": 452 + }, + { + "id": 3166, + "x_pos": 603, + "y_pos": 302 + }, + { + "id": 3163, + "x_pos": 997.5, + "y_pos": 140.5 + }, + { + "id": 3162, + "x_pos": 622, + "y_pos": 307 + }, + { + "id": 3161, + "x_pos": 960.5, + "y_pos": 75.5 + }, + { + "id": 3160, + "x_pos": 943, + "y_pos": 100 + }, + { + "id": 3159, + "x_pos": 781.5, + "y_pos": 249 + }, + { + "id": 3157, + "x_pos": 993, + "y_pos": 152 + }, + { + "id": 3155, + "x_pos": 536.5, + "y_pos": -454 + }, + { + "id": 3154, + "x_pos": 407.5, + "y_pos": 360.5 + }, + { + "id": 3150, + "x_pos": 507.5, + "y_pos": -470.5 + }, + { + "id": 3148, + "x_pos": 424.5, + "y_pos": -412 + }, + { + "id": 3147, + "x_pos": 422, + "y_pos": 379 + }, + { + "id": 3143, + "x_pos": 430.5, + "y_pos": -408 + }, + { + "id": 3142, + "x_pos": -470.5, + "y_pos": -40.5 + }, + { + "id": 3139, + "x_pos": -472.5, + "y_pos": 42.5 + }, + { + "id": 3138, + "x_pos": -240.5, + "y_pos": -312 + }, + { + "id": 3134, + "x_pos": -251.5, + "y_pos": -318.5 + }, + { + "id": 3133, + "x_pos": 703, + "y_pos": -512 + }, + { + "id": 3131, + "x_pos": -483, + "y_pos": 88.5 + }, + { + "id": 3130, + "x_pos": -252, + "y_pos": -305.5 + }, + { + "id": 3126, + "x_pos": -286.5, + "y_pos": 181.5 + }, + { + "id": 3121, + "x_pos": -302.5, + "y_pos": 239.5 + }, + { + "id": 3120, + "x_pos": 509.5, + "y_pos": 514 + }, + { + "id": 3119, + "x_pos": -306, + "y_pos": -374.5 + }, + { + "id": 3115, + "x_pos": 515.5, + "y_pos": 516.5 + }, + { + "id": 3112, + "x_pos": -600.5, + "y_pos": -444.5 + }, + { + "id": 3110, + "x_pos": -591.5, + "y_pos": -436 + }, + { + "id": 3108, + "x_pos": -695.5, + "y_pos": -158 + }, + { + "id": 3107, + "x_pos": -711, + "y_pos": -141 + }, + { + "id": 3104, + "x_pos": -708.5, + "y_pos": 102.5 + }, + { + "id": 3101, + "x_pos": -691, + "y_pos": 275 + }, + { + "id": 3098, + "x_pos": -725.5, + "y_pos": -532.5 + }, + { + "id": 3097, + "x_pos": -681.5, + "y_pos": 278 + }, + { + "id": 3095, + "x_pos": -931.5, + "y_pos": -444 + }, + { + "id": 3092, + "x_pos": -904, + "y_pos": -418 + }, + { + "id": 3088, + "x_pos": -952, + "y_pos": -127.5 + }, + { + "id": 3086, + "x_pos": -960.5, + "y_pos": -401 + }, + { + "id": 3085, + "x_pos": -968, + "y_pos": -406 + }, + { + "id": 3082, + "x_pos": -1087.5, + "y_pos": -390.5 + }, + { + "id": 3079, + "x_pos": -991.5, + "y_pos": -428 + }, + { + "id": 3067, + "x_pos": -1109, + "y_pos": -174 + }, + { + "id": 3062, + "x_pos": -1131, + "y_pos": -76.5 + }, + { + "id": 3059, + "x_pos": -1188.5, + "y_pos": -270.5 + }, + { + "id": 3056, + "x_pos": -1199.5, + "y_pos": -270.5 + }, + { + "id": 3052, + "x_pos": -233.5, + "y_pos": 121 + }, + { + "id": 3045, + "x_pos": -111, + "y_pos": 422 + }, + { + "id": 3040, + "x_pos": 10.5, + "y_pos": 661.5 + }, + { + "id": 3039, + "x_pos": -1097.5, + "y_pos": 829 + }, + { + "id": 3037, + "x_pos": 837.5, + "y_pos": 717.5 + }, + { + "id": 3034, + "x_pos": -1014.5, + "y_pos": 827 + }, + { + "id": 3032, + "x_pos": -770.5, + "y_pos": 776 + }, + { + "id": 3031, + "x_pos": 928, + "y_pos": 961.5 + }, + { + "id": 3027, + "x_pos": -1010.5, + "y_pos": 916.5 + }, + { + "id": 3026, + "x_pos": 925.5, + "y_pos": 1106 + }, + { + "id": 3025, + "x_pos": -1088, + "y_pos": 1122 + }, + { + "id": 3023, + "x_pos": 905, + "y_pos": 1070 + }, + { + "id": 3020, + "x_pos": 973.5, + "y_pos": 1063 + }, + { + "id": 3018, + "x_pos": 912.5, + "y_pos": 1031 + }, + { + "id": 3012, + "x_pos": -1071, + "y_pos": 1283 + }, + { + "id": 3009, + "x_pos": -807.5, + "y_pos": -653.5 + }, + { + "id": 3008, + "x_pos": -938, + "y_pos": 1258.5 + }, + { + "id": 3005, + "x_pos": 723, + "y_pos": 1034 + }, + { + "id": 3004, + "x_pos": -813, + "y_pos": 1314 + }, + { + "id": 3002, + "x_pos": 795.5, + "y_pos": 1057.5 + }, + { + "id": 3001, + "x_pos": -581.5, + "y_pos": 1347.5 + }, + { + "id": 3000, + "x_pos": -1029, + "y_pos": -625 + }, + { + "id": 2999, + "x_pos": -896, + "y_pos": 1554.5 + }, + { + "id": 2998, + "x_pos": -352.5, + "y_pos": 1745.5 + }, + { + "id": 2997, + "x_pos": -852.5, + "y_pos": -411.5 + }, + { + "id": 2995, + "x_pos": -309, + "y_pos": 1891 + }, + { + "id": 2993, + "x_pos": -1463, + "y_pos": 1499 + }, + { + "id": 2991, + "x_pos": -1438, + "y_pos": 1462 + }, + { + "id": 2987, + "x_pos": -1685, + "y_pos": 1352 + }, + { + "id": 2981, + "x_pos": -1635, + "y_pos": 1630 + }, + { + "id": 2980, + "x_pos": -1793, + "y_pos": 1150.5 + }, + { + "id": 2979, + "x_pos": -1518, + "y_pos": 1628 + }, + { + "id": 2978, + "x_pos": -1787, + "y_pos": 1126.5 + }, + { + "id": 2977, + "x_pos": -803.5, + "y_pos": 1771.5 + }, + { + "id": 2976, + "x_pos": -1438, + "y_pos": 1681 + }, + { + "id": 2974, + "x_pos": -1801, + "y_pos": 1194 + }, + { + "id": 2972, + "x_pos": -1200, + "y_pos": 1686 + }, + { + "id": 2970, + "x_pos": -1823.5, + "y_pos": 1123.5 + }, + { + "id": 2969, + "x_pos": -1551, + "y_pos": 1662 + }, + { + "id": 2968, + "x_pos": -1520, + "y_pos": 1743 + }, + { + "id": 2967, + "x_pos": -1890, + "y_pos": 736.5 + }, + { + "id": 2966, + "x_pos": -1498, + "y_pos": 1837 + }, + { + "id": 2964, + "x_pos": -1526, + "y_pos": 1821 + }, + { + "id": 2962, + "x_pos": -1683, + "y_pos": 1864 + }, + { + "id": 2961, + "x_pos": -1501, + "y_pos": 1856 + }, + { + "id": 2960, + "x_pos": -1695, + "y_pos": 1053 + }, + { + "id": 2958, + "x_pos": -1812, + "y_pos": 1514 + }, + { + "id": 2956, + "x_pos": -1951, + "y_pos": 1797 + }, + { + "id": 2954, + "x_pos": -1979, + "y_pos": 1754 + }, + { + "id": 2952, + "x_pos": -1935, + "y_pos": 1859 + }, + { + "id": 2950, + "x_pos": -2037, + "y_pos": 1689 + }, + { + "id": 2949, + "x_pos": -1851, + "y_pos": 1879 + }, + { + "id": 2947, + "x_pos": -1638, + "y_pos": 1884 + }, + { + "id": 2946, + "x_pos": -1685, + "y_pos": 1931 + }, + { + "id": 2945, + "x_pos": -2001, + "y_pos": 1954 + }, + { + "id": 2942, + "x_pos": -1805, + "y_pos": 2007 + }, + { + "id": 2941, + "x_pos": -1456.6000061035156, + "y_pos": 1931.8000030517578 + }, + { + "id": 2940, + "x_pos": -1611, + "y_pos": 2008 + }, + { + "id": 2939, + "x_pos": -1983, + "y_pos": 1348 + }, + { + "id": 2936, + "x_pos": -2041, + "y_pos": 1000 + }, + { + "id": 2934, + "x_pos": -1461, + "y_pos": 1927 + }, + { + "id": 2933, + "x_pos": -1386, + "y_pos": 1924 + }, + { + "id": 2931, + "x_pos": -2212, + "y_pos": 1968 + }, + { + "id": 2930, + "x_pos": -1362, + "y_pos": 1950 + }, + { + "id": 2929, + "x_pos": -1309, + "y_pos": 1916 + }, + { + "id": 2928, + "x_pos": -1031.5, + "y_pos": 1861 + }, + { + "id": 2927, + "x_pos": -1017.5, + "y_pos": 1916.5 + }, + { + "id": 2926, + "x_pos": -2221, + "y_pos": 1992 + }, + { + "id": 2925, + "x_pos": -720.5, + "y_pos": 1902.5 + }, + { + "id": 2922, + "x_pos": -2033, + "y_pos": 2080 + }, + { + "id": 2920, + "x_pos": -2292, + "y_pos": 1932 + }, + { + "id": 2919, + "x_pos": -809, + "y_pos": 1985 + }, + { + "id": 2913, + "x_pos": -2187, + "y_pos": 1868 + }, + { + "id": 2910, + "x_pos": -2388, + "y_pos": 1830 + }, + { + "id": 2909, + "x_pos": -1787, + "y_pos": 2088 + }, + { + "id": 2908, + "x_pos": -1161.5, + "y_pos": 2204.5 + }, + { + "id": 2907, + "x_pos": -2567, + "y_pos": 1554 + }, + { + "id": 2906, + "x_pos": -893, + "y_pos": 2235.5 + }, + { + "id": 2904, + "x_pos": -921.5, + "y_pos": 2279.5 + }, + { + "id": 2903, + "x_pos": -2268, + "y_pos": 1739 + }, + { + "id": 2902, + "x_pos": -930, + "y_pos": 2286.5 + }, + { + "id": 2900, + "x_pos": -840, + "y_pos": 2270 + }, + { + "id": 2897, + "x_pos": 145.5, + "y_pos": 2408 + }, + { + "id": 2894, + "x_pos": -2298, + "y_pos": 1726 + }, + { + "id": 2893, + "x_pos": 116.5, + "y_pos": 2449 + }, + { + "id": 2891, + "x_pos": 151, + "y_pos": 2479 + }, + { + "id": 2887, + "x_pos": 204.5, + "y_pos": 2485.5 + }, + { + "id": 2884, + "x_pos": 245, + "y_pos": 2519.5 + }, + { + "id": 2880, + "x_pos": -1627, + "y_pos": 2177 + }, + { + "id": 2878, + "x_pos": -2461, + "y_pos": 1995 + }, + { + "id": 2877, + "x_pos": -1642, + "y_pos": 2208 + }, + { + "id": 2876, + "x_pos": -1415, + "y_pos": 2330 + }, + { + "id": 2875, + "x_pos": -1999, + "y_pos": 2260 + }, + { + "id": 2874, + "x_pos": -2034, + "y_pos": 2282 + }, + { + "id": 2873, + "x_pos": -1807.5, + "y_pos": 2646 + }, + { + "id": 2871, + "x_pos": -2330, + "y_pos": 1702 + }, + { + "id": 2867, + "x_pos": -1795, + "y_pos": 2648 + }, + { + "id": 2865, + "x_pos": -1828, + "y_pos": 2784 + }, + { + "id": 2863, + "x_pos": -1818.5, + "y_pos": 2798.5 + }, + { + "id": 2860, + "x_pos": -1683.5, + "y_pos": 2820.5 + }, + { + "id": 2858, + "x_pos": -1616, + "y_pos": 2833.5 + }, + { + "id": 2855, + "x_pos": -1375.5, + "y_pos": 2875 + }, + { + "id": 2853, + "x_pos": -1369.5, + "y_pos": 2889.5 + }, + { + "id": 2852, + "x_pos": -2041, + "y_pos": 3189.5 + }, + { + "id": 2850, + "x_pos": -2030.5, + "y_pos": 3198.5 + }, + { + "id": 2845, + "x_pos": 925.5, + "y_pos": -508.5 + }, + { + "id": 2844, + "x_pos": -2039.5, + "y_pos": 3134 + }, + { + "id": 2843, + "x_pos": -2186, + "y_pos": 1513.5 + }, + { + "id": 2842, + "x_pos": -2060, + "y_pos": 3225 + }, + { + "id": 2833, + "x_pos": -2033, + "y_pos": 2969 + }, + { + "id": 2832, + "x_pos": -1817, + "y_pos": 3139.5 + }, + { + "id": 2831, + "x_pos": -1644.5, + "y_pos": 3200.5 + }, + { + "id": 2525, + "x_pos": -666, + "y_pos": 1893.2764674919022 + }, + { + "id": 2524, + "x_pos": -279, + "y_pos": 1625.2888636811258 + }, + { + "id": 2519, + "x_pos": -413, + "y_pos": 1478.2798482707813 + }, + { + "id": 2517, + "x_pos": -667, + "y_pos": 1928.28660982854 + }, + { + "id": 2514, + "x_pos": -341, + "y_pos": 1730.289990607419 + }, + { + "id": 2509, + "x_pos": -883, + "y_pos": 1555.3114022069872 + }, + { + "id": 2505, + "x_pos": -896.5, + "y_pos": 1097.1249043177795 + }, + { + "id": 2504, + "x_pos": -1136, + "y_pos": 890.3170368384526 + }, + { + "id": 2501, + "x_pos": -983, + "y_pos": 1597.2640713026785 + }, + { + "id": 2499, + "x_pos": -951, + "y_pos": 1262.450855825738 + }, + { + "id": 2498, + "x_pos": -817, + "y_pos": 1287.3125291332803 + }, + { + "id": 2497, + "x_pos": -1122, + "y_pos": 903.2888636811258 + }, + { + "id": 2496, + "x_pos": -1306, + "y_pos": 716.1299670738044 + }, + { + "id": 2495, + "x_pos": -1382, + "y_pos": 936.3181637647453 + }, + { + "id": 2493, + "x_pos": -924, + "y_pos": 1480.2944983125913 + }, + { + "id": 2489, + "x_pos": -580, + "y_pos": 1648.3012598703494 + }, + { + "id": 2488, + "x_pos": -750, + "y_pos": 1346.3237983962108 + }, + { + "id": 2485, + "x_pos": -697, + "y_pos": 1460.2674520815576 + }, + { + "id": 2484, + "x_pos": -291, + "y_pos": 1688.2911175337122 + }, + { + "id": 2483, + "x_pos": -934, + "y_pos": 1669.2753405656094 + }, + { + "id": 2481, + "x_pos": -441, + "y_pos": 1508.3046406492285 + }, + { + "id": 2480, + "x_pos": -1467, + "y_pos": 965.2742136393163 + }, + { + "id": 2475, + "x_pos": -258, + "y_pos": 1817.324925322504 + }, + { + "id": 2472, + "x_pos": -1214, + "y_pos": 1837.177297978113 + }, + { + "id": 2470, + "x_pos": -1172, + "y_pos": 923.3598600375885 + }, + { + "id": 2469, + "x_pos": -1192, + "y_pos": 1695.1806787569922 + }, + { + "id": 2468, + "x_pos": -964, + "y_pos": 1732.2944983125913 + }, + { + "id": 2466, + "x_pos": -1263, + "y_pos": 998.3114022069872 + }, + { + "id": 2461, + "x_pos": -1102, + "y_pos": 1091.249421260869 + }, + { + "id": 2457, + "x_pos": -532, + "y_pos": 1525.306894501815 + }, + { + "id": 2455, + "x_pos": -722, + "y_pos": 1893.2753405656094 + }, + { + "id": 2450, + "x_pos": -1049, + "y_pos": 1856.2392789242313 + }, + { + "id": 2448, + "x_pos": -1036, + "y_pos": 2060.303513722936 + }, + { + "id": 2447, + "x_pos": -947, + "y_pos": 1840.2843559759535 + }, + { + "id": 2446, + "x_pos": -852, + "y_pos": 2129.276467491902 + }, + { + "id": 2445, + "x_pos": -1073, + "y_pos": 2067.308021428108 + }, + { + "id": 2442, + "x_pos": -529.5, + "y_pos": 1093.246432843186 + }, + { + "id": 2441, + "x_pos": -784, + "y_pos": 2104.296752165177 + }, + { + "id": 2435, + "x_pos": -809, + "y_pos": 1766.122078589753 + }, + { + "id": 2434, + "x_pos": -622, + "y_pos": 1413.313656059573 + }, + { + "id": 2431, + "x_pos": -557, + "y_pos": 1834.3745100793985 + }, + { + "id": 2430, + "x_pos": -727, + "y_pos": 1084.1526608328413 + }, + { + "id": 2429, + "x_pos": -904, + "y_pos": 2230.2302635138867 + }, + { + "id": 2424, + "x_pos": -1472, + "y_pos": 888.3023867966426 + }, + { + "id": 2423, + "x_pos": -834, + "y_pos": 2253.2111057669044 + }, + { + "id": 2419, + "x_pos": -1050, + "y_pos": 734.1001485070483 + }, + { + "id": 2417, + "x_pos": -903, + "y_pos": 863.5108699123589 + }, + { + "id": 2415, + "x_pos": -767, + "y_pos": 876.5888882249656 + }, + { + "id": 2414, + "x_pos": -606.5, + "y_pos": 990.7689381256691 + }, + { + "id": 2413, + "x_pos": -1127, + "y_pos": 690.6826678761518 + }, + { + "id": 2412, + "x_pos": -1205, + "y_pos": 2095.28660982854 + }, + { + "id": 2408, + "x_pos": -122, + "y_pos": 1773.3226714699176 + }, + { + "id": 2406, + "x_pos": -770, + "y_pos": 2260.2009634302676 + }, + { + "id": 2403, + "x_pos": -329, + "y_pos": 2445.2347712190594 + }, + { + "id": 2402, + "x_pos": -1685, + "y_pos": 3162.1987095776813 + }, + { + "id": 2399, + "x_pos": -1652, + "y_pos": 3140.330559953969 + }, + { + "id": 2398, + "x_pos": -1632, + "y_pos": 3209.296752165177 + }, + { + "id": 2397, + "x_pos": -1796, + "y_pos": 2629.0364321914803 + }, + { + "id": 2395, + "x_pos": -1668, + "y_pos": 2810.273086713023 + }, + { + "id": 2391, + "x_pos": -1019, + "y_pos": 668.6549113610895 + }, + { + "id": 2390, + "x_pos": -1359, + "y_pos": 2887.3114022069867 + }, + { + "id": 2388, + "x_pos": -1607, + "y_pos": 2822.110809326823 + }, + { + "id": 2387, + "x_pos": -899, + "y_pos": 673.1849184043999 + }, + { + "id": 2386, + "x_pos": -649, + "y_pos": 824.5063688558621 + }, + { + "id": 2385, + "x_pos": -777, + "y_pos": 794.2738142702069 + }, + { + "id": 2384, + "x_pos": -1720, + "y_pos": 2841.2753405656094 + }, + { + "id": 2383, + "x_pos": -705, + "y_pos": 785.497366742869 + }, + { + "id": 2381, + "x_pos": -764, + "y_pos": 737.4373526562485 + }, + { + "id": 2374, + "x_pos": -567, + "y_pos": 736.3638354001378 + }, + { + "id": 2371, + "x_pos": -684, + "y_pos": 738.4388530084138 + }, + { + "id": 2369, + "x_pos": -724, + "y_pos": 727.4628586430622 + }, + { + "id": 2365, + "x_pos": -811, + "y_pos": 588.5213723775173 + }, + { + "id": 2362, + "x_pos": -747, + "y_pos": 637.4403533605791 + }, + { + "id": 2361, + "x_pos": -833, + "y_pos": 553.3368290611588 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/6011c87e15abc4e57f71b0f50a946afa_5965930998284792313.png" + }, + "53": { + "name": "Hilichurl Chieftain", + "clear_name": "HilichurlChieftain", + "points": [ + { + "id": 26395, + "x_pos": -2379.494110107422, + "y_pos": 3328.4900512695312 + }, + { + "id": 19864, + "x_pos": 1933.2000122070312, + "y_pos": 8811.199981689453 + }, + { + "id": 19633, + "x_pos": 2040, + "y_pos": 8790.799987792969 + }, + { + "id": 19492, + "x_pos": 1953.1000061035156, + "y_pos": 8917.799987792969 + }, + { + "id": 17602, + "x_pos": 112.69998168945312, + "y_pos": 6219.700012207031 + }, + { + "id": 17483, + "x_pos": 2915, + "y_pos": 6717.299987792969 + }, + { + "id": 16702, + "x_pos": -287.29998779296875, + "y_pos": 6307.516125205875 + }, + { + "id": 14123, + "x_pos": 2231.5, + "y_pos": 6191.100006103516 + }, + { + "id": 13845, + "x_pos": 3530.5, + "y_pos": 5192 + }, + { + "id": 13724, + "x_pos": 2705.5, + "y_pos": 5450 + }, + { + "id": 13723, + "x_pos": 2560.5, + "y_pos": 5268.5 + }, + { + "id": 7005, + "x_pos": 511.5, + "y_pos": 1509 + }, + { + "id": 6865, + "x_pos": -41.5, + "y_pos": 1237 + }, + { + "id": 6852, + "x_pos": 175.5, + "y_pos": 1517 + }, + { + "id": 6823, + "x_pos": -362, + "y_pos": 1331.5 + }, + { + "id": 3014, + "x_pos": -1789.999453777533, + "y_pos": 1203.5012045663252 + }, + { + "id": 2898, + "x_pos": -263.49923528854606, + "y_pos": 1694.5 + }, + { + "id": 2315, + "x_pos": -1678, + "y_pos": 1339.2531562856825 + }, + { + "id": 2306, + "x_pos": -2000, + "y_pos": 728.1007617864057 + }, + { + "id": 2305, + "x_pos": -605, + "y_pos": 988.1119362531158 + }, + { + "id": 2288, + "x_pos": -1676, + "y_pos": 2809.260713037713 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/2869f93c163c622baf8de4239b4ff8d8_6667424314945247883.png" + }, + "356": { + "name": "Radiant Spincrystal", + "clear_name": "RadiantSpincrystal", + "points": [ + { + "id": 26386, + "x_pos": -345.853037272509, + "y_pos": 523.2116149713811 + }, + { + "id": 26385, + "x_pos": -373.7939980764513, + "y_pos": 545.0795239076315 + }, + { + "id": 26384, + "x_pos": 3747.9779728965113, + "y_pos": 5054.746588333946 + }, + { + "id": 26383, + "x_pos": 3851.2090775172437, + "y_pos": 4903.080977307969 + }, + { + "id": 26382, + "x_pos": 3882.448825538264, + "y_pos": 4852.579034341203 + }, + { + "id": 26381, + "x_pos": 3702.4524991640646, + "y_pos": 5087.8260051489215 + }, + { + "id": 26380, + "x_pos": 3723.9543786935446, + "y_pos": 4960.827886919884 + }, + { + "id": 26379, + "x_pos": 3616.846042123343, + "y_pos": 5436.291177106776 + }, + { + "id": 26378, + "x_pos": 3701.195835377728, + "y_pos": 5515.324964820258 + }, + { + "id": 26377, + "x_pos": 3665.1931869498258, + "y_pos": 4816.078147002048 + }, + { + "id": 26376, + "x_pos": -1373.309205178603, + "y_pos": 631.3265865090552 + }, + { + "id": 26375, + "x_pos": -1213.5614892946405, + "y_pos": 583.1475583031252 + }, + { + "id": 26374, + "x_pos": -1120.3007472959453, + "y_pos": 1358.3268465912215 + }, + { + "id": 26373, + "x_pos": -1045.0486969001495, + "y_pos": 1420.3281775999512 + }, + { + "id": 26372, + "x_pos": -1086.0452795738233, + "y_pos": 1382.5760357468225 + }, + { + "id": 26371, + "x_pos": -928.5899611155392, + "y_pos": 2923.828070507295 + }, + { + "id": 26370, + "x_pos": -1075.6256898711094, + "y_pos": 2883.0879383306346 + }, + { + "id": 26369, + "x_pos": -1227.8010890285777, + "y_pos": 2834.827076075485 + }, + { + "id": 26368, + "x_pos": -338.0451087075071, + "y_pos": 568.5791567328097 + }, + { + "id": 26367, + "x_pos": 165.91858220027643, + "y_pos": 10.575561479344287 + }, + { + "id": 26366, + "x_pos": 24.21702280095178, + "y_pos": 68.32493422235711 + }, + { + "id": 26365, + "x_pos": -150.77938900640584, + "y_pos": -68.94499780223123 + }, + { + "id": 26364, + "x_pos": 142.61715632283813, + "y_pos": 115.2653066200055 + }, + { + "id": 26363, + "x_pos": 178.38504236004155, + "y_pos": 116.12486999814519 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220315/c8d712a4f4f47f8ef479826f845a1fa2_8045703157354333911.png" + }, + "171": { + "name": "Merchant", + "clear_name": "Merchant", + "points": [ + { + "id": 26353, + "x_pos": 3036, + "y_pos": 4899.75 + }, + { + "id": 17808, + "x_pos": 101.5, + "y_pos": 6289.5 + }, + { + "id": 17807, + "x_pos": -1121.5, + "y_pos": 2270.5 + }, + { + "id": 15788, + "x_pos": 175.300048828125, + "y_pos": 109.80000305175781 + }, + { + "id": 15245, + "x_pos": -1090.5946248734595, + "y_pos": 1415.0060928238718 + }, + { + "id": 15148, + "x_pos": 3657.90051086946, + "y_pos": 5397.006092823873 + }, + { + "id": 15147, + "x_pos": 3681.303423312771, + "y_pos": 5403.301206339149 + }, + { + "id": 15146, + "x_pos": 3610.699981689453, + "y_pos": 5340.700012207031 + }, + { + "id": 15145, + "x_pos": 3655.80096062954, + "y_pos": 5332.804283315148 + }, + { + "id": 15144, + "x_pos": 3611.49756787146, + "y_pos": 5325.801206339149 + }, + { + "id": 15140, + "x_pos": 3045.90048031477, + "y_pos": 4884.400603169574 + }, + { + "id": 15139, + "x_pos": 3045.701471499, + "y_pos": 4907.102443242361 + }, + { + "id": 14976, + "x_pos": 180.0999755859375, + "y_pos": 15.203673399078525 + }, + { + "id": 14975, + "x_pos": 166.70001220703125, + "y_pos": 29.902739773061967 + }, + { + "id": 14974, + "x_pos": 166.89999389648438, + "y_pos": 365.70364284658444 + }, + { + "id": 14973, + "x_pos": 128, + "y_pos": 348.10412493583954 + }, + { + "id": 14972, + "x_pos": -1297.8999633789062, + "y_pos": 598.9000396728516 + }, + { + "id": 14971, + "x_pos": -1006.7999877929688, + "y_pos": 756.2036428465844 + }, + { + "id": 14970, + "x_pos": -1180.7000122070312, + "y_pos": 2747.7036428465844 + }, + { + "id": 14969, + "x_pos": -1090.4000244140625, + "y_pos": 2796.235708707286 + }, + { + "id": 14968, + "x_pos": -1089.1000061035156, + "y_pos": 2915.6018366995395 + }, + { + "id": 14967, + "x_pos": -909.8999938964844, + "y_pos": 2908.3032218623175 + }, + { + "id": 14966, + "x_pos": -909.0999755859375, + "y_pos": 2926.6018366995395 + }, + { + "id": 14965, + "x_pos": -970.8999938964844, + "y_pos": 2992.305479546124 + }, + { + "id": 14964, + "x_pos": -996.7000122070312, + "y_pos": 2999.303191309823 + }, + { + "id": 14963, + "x_pos": 2921.6990151202745, + "y_pos": 4888.201385162778 + }, + { + "id": 14962, + "x_pos": -1091.444753888245, + "y_pos": 2904.1108104107097 + }, + { + "id": 14961, + "x_pos": -977.8440709042393, + "y_pos": 2988.5283031309527 + }, + { + "id": 14960, + "x_pos": -938.6104617238611, + "y_pos": 2993.2216208214195 + }, + { + "id": 14959, + "x_pos": -1005.8895687757881, + "y_pos": 3004.8324312321292 + }, + { + "id": 14958, + "x_pos": 174.33429216438435, + "y_pos": 106.16623087067774 + }, + { + "id": 14957, + "x_pos": 138.55524611175497, + "y_pos": 81.7770107721617 + }, + { + "id": 14956, + "x_pos": 158, + "y_pos": 74.2770107721617 + }, + { + "id": 14955, + "x_pos": 146.55524611175497, + "y_pos": 56.38782118287145 + }, + { + "id": 14511, + "x_pos": 181.5, + "y_pos": 77 + }, + { + "id": 14510, + "x_pos": 198.5, + "y_pos": 368 + }, + { + "id": 14509, + "x_pos": 363.5, + "y_pos": 711.5 + }, + { + "id": 14508, + "x_pos": -1360.5, + "y_pos": 599.5 + }, + { + "id": 14507, + "x_pos": -1010, + "y_pos": 2957 + }, + { + "id": 14506, + "x_pos": -1086, + "y_pos": 2885 + }, + { + "id": 14505, + "x_pos": -1072.5, + "y_pos": 2923 + }, + { + "id": 14504, + "x_pos": -1109, + "y_pos": 2866 + }, + { + "id": 14503, + "x_pos": -1063, + "y_pos": 2838.5 + }, + { + "id": 10002, + "x_pos": -1395, + "y_pos": 640 + }, + { + "id": 10001, + "x_pos": 49.5, + "y_pos": 131 + }, + { + "id": 9759, + "x_pos": -1131, + "y_pos": 2868 + }, + { + "id": 9716, + "x_pos": 707.5, + "y_pos": 239 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/c75faa7e69603d4846f8c851f24db23a_305634667959383790.png" + }, + "126": { + "name": "Bird Egg", + "clear_name": "BirdEgg", + "points": [ + { + "id": 26283, + "x_pos": -2163.25, + "y_pos": 2453 + }, + { + "id": 25244, + "x_pos": -2553.25, + "y_pos": 3017 + }, + { + "id": 25243, + "x_pos": -2547.5, + "y_pos": 3014.75 + }, + { + "id": 25238, + "x_pos": -2567, + "y_pos": 2998 + }, + { + "id": 25237, + "x_pos": -2547, + "y_pos": 3018.25 + }, + { + "id": 25227, + "x_pos": -2295, + "y_pos": 3046.5 + }, + { + "id": 25226, + "x_pos": -2641.75, + "y_pos": 3035.75 + }, + { + "id": 25225, + "x_pos": -2549.5, + "y_pos": 3003.25 + }, + { + "id": 19153, + "x_pos": 2486, + "y_pos": 8526 + }, + { + "id": 19152, + "x_pos": 1968, + "y_pos": 8464 + }, + { + "id": 19151, + "x_pos": 1789.5, + "y_pos": 8752.5 + }, + { + "id": 17106, + "x_pos": 3365, + "y_pos": 5099.5 + }, + { + "id": 17104, + "x_pos": 3352.5, + "y_pos": 5096.5 + }, + { + "id": 17102, + "x_pos": 3371.5, + "y_pos": 5054 + }, + { + "id": 17101, + "x_pos": 2206, + "y_pos": 6479 + }, + { + "id": 17100, + "x_pos": 3402, + "y_pos": 5082.5 + }, + { + "id": 17099, + "x_pos": 2202, + "y_pos": 6471 + }, + { + "id": 17071, + "x_pos": 2401, + "y_pos": 6410 + }, + { + "id": 17063, + "x_pos": 2403, + "y_pos": 6426 + }, + { + "id": 17050, + "x_pos": 2219, + "y_pos": 6475 + }, + { + "id": 15814, + "x_pos": -967.5, + "y_pos": 963.5 + }, + { + "id": 15738, + "x_pos": -1957.2001037597656, + "y_pos": 1443.5918031459487 + }, + { + "id": 15505, + "x_pos": 2634.300048828125, + "y_pos": 5515.045343325442 + }, + { + "id": 14637, + "x_pos": 1294.9004966170169, + "y_pos": 5921.004576472602 + }, + { + "id": 12064, + "x_pos": -1099.5, + "y_pos": 2196 + }, + { + "id": 12063, + "x_pos": -1084, + "y_pos": 2205.5 + }, + { + "id": 12062, + "x_pos": -931, + "y_pos": 2480.5 + }, + { + "id": 12061, + "x_pos": -773, + "y_pos": 2158 + }, + { + "id": 12060, + "x_pos": -910, + "y_pos": 2029 + }, + { + "id": 12059, + "x_pos": -946, + "y_pos": 1945 + }, + { + "id": 12058, + "x_pos": -566, + "y_pos": -98 + }, + { + "id": 12057, + "x_pos": -520, + "y_pos": 2419 + }, + { + "id": 12056, + "x_pos": -521, + "y_pos": 2430.5 + }, + { + "id": 12055, + "x_pos": -535, + "y_pos": 2449.5 + }, + { + "id": 12032, + "x_pos": -1683.38706153447, + "y_pos": 2210.0642921888757 + }, + { + "id": 11946, + "x_pos": -1718.4978831429862, + "y_pos": 1132.421644817101 + }, + { + "id": 11942, + "x_pos": -1812.8854873302275, + "y_pos": 1116.237029990275 + }, + { + "id": 11839, + "x_pos": 932.9911499023438, + "y_pos": 128.55746459960938 + }, + { + "id": 11807, + "x_pos": -2159.5, + "y_pos": 930 + }, + { + "id": 11777, + "x_pos": -1835.8624662837292, + "y_pos": 1183.6795203420925 + }, + { + "id": 11710, + "x_pos": -363, + "y_pos": 634.5 + }, + { + "id": 11635, + "x_pos": -564.5, + "y_pos": 1117 + }, + { + "id": 11634, + "x_pos": -567, + "y_pos": 1115 + }, + { + "id": 11159, + "x_pos": 967, + "y_pos": 16 + }, + { + "id": 11075, + "x_pos": 142, + "y_pos": 27.5 + }, + { + "id": 10818, + "x_pos": 879.1507437931468, + "y_pos": 164.12017297848024 + }, + { + "id": 10785, + "x_pos": -1174.5, + "y_pos": 2058.5 + }, + { + "id": 10781, + "x_pos": -1232.5, + "y_pos": 2073.5 + }, + { + "id": 10767, + "x_pos": -1152, + "y_pos": 1654 + }, + { + "id": 10709, + "x_pos": -948.5, + "y_pos": 1597.5 + }, + { + "id": 10598, + "x_pos": 189, + "y_pos": 2619 + }, + { + "id": 10575, + "x_pos": -1175, + "y_pos": 1253.5 + }, + { + "id": 10366, + "x_pos": 795.1810637400949, + "y_pos": 879.3401489257812 + }, + { + "id": 10365, + "x_pos": 772.2043797117713, + "y_pos": 888.8875122070312 + }, + { + "id": 10364, + "x_pos": 719.3938187849817, + "y_pos": 949.8133850097656 + }, + { + "id": 10363, + "x_pos": 796.2554340627157, + "y_pos": 879.0472412109375 + }, + { + "id": 10362, + "x_pos": 773.7140950009043, + "y_pos": 888.9286193847656 + }, + { + "id": 10361, + "x_pos": 718.0711883047843, + "y_pos": 949.2143859863281 + }, + { + "id": 10360, + "x_pos": 182, + "y_pos": 135.5 + }, + { + "id": 10359, + "x_pos": 181, + "y_pos": 135.5 + }, + { + "id": 10358, + "x_pos": 194, + "y_pos": -5 + }, + { + "id": 10357, + "x_pos": 194.5, + "y_pos": -5 + }, + { + "id": 10356, + "x_pos": 954.5, + "y_pos": -558 + }, + { + "id": 10355, + "x_pos": 980.5, + "y_pos": -573 + }, + { + "id": 10354, + "x_pos": -1456.5, + "y_pos": 1271.5 + }, + { + "id": 10353, + "x_pos": -1546.5, + "y_pos": 1248.5 + }, + { + "id": 10352, + "x_pos": -1328.5332067366285, + "y_pos": 2484.1644963330255 + }, + { + "id": 10351, + "x_pos": -1458.0336478869522, + "y_pos": 2363.154008670347 + }, + { + "id": 10350, + "x_pos": -1474.982952638646, + "y_pos": 2379.1424669043527 + }, + { + "id": 10349, + "x_pos": -1474.5441252071405, + "y_pos": 2409.659696894173 + }, + { + "id": 10348, + "x_pos": -1558.3805965089778, + "y_pos": 2382.5881818967773 + }, + { + "id": 10347, + "x_pos": -1604.0939751937185, + "y_pos": 2598.20502492778 + }, + { + "id": 10346, + "x_pos": -1562.1068531064693, + "y_pos": 2323.7426643840317 + }, + { + "id": 10345, + "x_pos": -1650.3076389460798, + "y_pos": 2228.726202401611 + }, + { + "id": 10344, + "x_pos": -2300.675656012335, + "y_pos": 1974.362020931163 + }, + { + "id": 10343, + "x_pos": -2307.0616609325075, + "y_pos": 1974.0663744720396 + }, + { + "id": 10342, + "x_pos": -2492.5532790763573, + "y_pos": 1713.663963062042 + }, + { + "id": 10341, + "x_pos": -2477.1378798256974, + "y_pos": 1729.2689108018967 + }, + { + "id": 10340, + "x_pos": -2492.378527327278, + "y_pos": 1364.7509877710863 + }, + { + "id": 10112, + "x_pos": -1269.1000061035156, + "y_pos": 2393.5548953432035 + }, + { + "id": 9369, + "x_pos": -741.5, + "y_pos": 1390 + }, + { + "id": 9364, + "x_pos": -745.5, + "y_pos": 1392.5 + }, + { + "id": 9323, + "x_pos": -652.5, + "y_pos": 1101.5 + }, + { + "id": 9320, + "x_pos": -657, + "y_pos": 1102.5 + }, + { + "id": 9154, + "x_pos": 627, + "y_pos": -312.5 + }, + { + "id": 9061, + "x_pos": -1601.2144036426594, + "y_pos": 2841.593493924509 + }, + { + "id": 9060, + "x_pos": -1599.5714624015118, + "y_pos": 2843.3763729094435 + }, + { + "id": 9059, + "x_pos": -74.5, + "y_pos": 2398.5 + }, + { + "id": 9058, + "x_pos": -78.5, + "y_pos": 2399.5 + }, + { + "id": 9057, + "x_pos": -1052.071477569582, + "y_pos": 1579.857341069861 + }, + { + "id": 9056, + "x_pos": -1055.571477315571, + "y_pos": 1578.9275892916357 + }, + { + "id": 9055, + "x_pos": -563.5714925925022, + "y_pos": 371.31783990122403 + }, + { + "id": 9054, + "x_pos": -563.0714763721026, + "y_pos": 373.94771001321124 + }, + { + "id": 9053, + "x_pos": -404.07146468760857, + "y_pos": -39.6114327138439 + }, + { + "id": 9052, + "x_pos": -407.78586466525576, + "y_pos": -42.02740262455609 + }, + { + "id": 8864, + "x_pos": -408.721047582093, + "y_pos": 1607.9368310839254 + }, + { + "id": 8863, + "x_pos": -518, + "y_pos": 1475.2766857968954 + }, + { + "id": 8862, + "x_pos": -412.7772374514343, + "y_pos": 1609.3281040273614 + }, + { + "id": 8861, + "x_pos": -524.4441531239536, + "y_pos": 1474.6106804198898 + }, + { + "id": 8860, + "x_pos": -496.5, + "y_pos": 1709.5 + }, + { + "id": 8812, + "x_pos": -500.2220765619768, + "y_pos": 1708.6106804198898 + }, + { + "id": 8793, + "x_pos": -291.88796325461226, + "y_pos": 1914.1660053770065 + }, + { + "id": 8790, + "x_pos": -296, + "y_pos": 1914.5 + }, + { + "id": 8714, + "x_pos": -1018, + "y_pos": 1054.294715666485 + }, + { + "id": 8713, + "x_pos": -1023, + "y_pos": 1051.8753210137038 + }, + { + "id": 8712, + "x_pos": -266, + "y_pos": 652.1438723052165 + }, + { + "id": 8711, + "x_pos": -268.5, + "y_pos": 651.6471387319343 + }, + { + "id": 8710, + "x_pos": -201.10003662109375, + "y_pos": 202.82766254923627 + }, + { + "id": 8709, + "x_pos": -201.29998779296875, + "y_pos": 206.08557634665613 + }, + { + "id": 8507, + "x_pos": -1488.0714708201535, + "y_pos": 3098.6611421604703 + }, + { + "id": 8505, + "x_pos": -1489.5, + "y_pos": 3102.6126337832147 + }, + { + "id": 8503, + "x_pos": -1421.3889312035271, + "y_pos": 2952.2213608397788 + }, + { + "id": 8502, + "x_pos": -1420.055503882752, + "y_pos": 2956.551418230466 + }, + { + "id": 8501, + "x_pos": -1413.3889312035271, + "y_pos": 2982.61068041989 + }, + { + "id": 8500, + "x_pos": -1178.4285950774897, + "y_pos": 996.4352586933965 + }, + { + "id": 8499, + "x_pos": -1409.888992234496, + "y_pos": 2980.6660053770065 + }, + { + "id": 8498, + "x_pos": -1178.5714730699628, + "y_pos": 999.9464905755399 + }, + { + "id": 8497, + "x_pos": -1988.444496117248, + "y_pos": 2568.6660053770065 + }, + { + "id": 8496, + "x_pos": 74, + "y_pos": -31.5 + }, + { + "id": 8495, + "x_pos": 67, + "y_pos": 95 + }, + { + "id": 8494, + "x_pos": 66.5, + "y_pos": 94 + }, + { + "id": 8493, + "x_pos": 188.42851970887477, + "y_pos": 347.86417853273133 + }, + { + "id": 8492, + "x_pos": 74, + "y_pos": -30.5 + }, + { + "id": 8491, + "x_pos": 185.49996991787066, + "y_pos": 342.4328545411008 + }, + { + "id": 8490, + "x_pos": 747, + "y_pos": 151.16246178802248 + }, + { + "id": 8489, + "x_pos": 742.8999633789062, + "y_pos": 148.9726890588695 + }, + { + "id": 7967, + "x_pos": -1806, + "y_pos": 2650 + }, + { + "id": 7966, + "x_pos": -1760.5, + "y_pos": 2650 + }, + { + "id": 7965, + "x_pos": -1805, + "y_pos": 2652.5 + }, + { + "id": 7964, + "x_pos": -1755.5, + "y_pos": 2653.5 + }, + { + "id": 7963, + "x_pos": 117, + "y_pos": 431.5 + }, + { + "id": 7962, + "x_pos": 116.5, + "y_pos": 456 + }, + { + "id": 7780, + "x_pos": -2038.5, + "y_pos": 1668.7615513956416 + }, + { + "id": 7779, + "x_pos": -2041, + "y_pos": 1668.101612533791 + }, + { + "id": 7778, + "x_pos": -2034, + "y_pos": 1127.7417424540363 + }, + { + "id": 7777, + "x_pos": -2037, + "y_pos": 1122.6082155143258 + }, + { + "id": 7776, + "x_pos": -1723, + "y_pos": 1203 + }, + { + "id": 7775, + "x_pos": -1705.5, + "y_pos": 1174 + }, + { + "id": 7774, + "x_pos": -1511, + "y_pos": 582.7278028284622 + }, + { + "id": 7773, + "x_pos": -1513.6000061035156, + "y_pos": 581.133519299121 + }, + { + "id": 7772, + "x_pos": -1323, + "y_pos": 478.98386702150356 + }, + { + "id": 7771, + "x_pos": -1620.5, + "y_pos": 586.9589224283709 + }, + { + "id": 7770, + "x_pos": -1269, + "y_pos": 574.7241345059429 + }, + { + "id": 7769, + "x_pos": -1439, + "y_pos": 589.8213374121206 + }, + { + "id": 7768, + "x_pos": -1618.5, + "y_pos": 584.54512036699 + }, + { + "id": 7767, + "x_pos": -1436, + "y_pos": 593.2167978609036 + }, + { + "id": 7766, + "x_pos": -1349.3999938964844, + "y_pos": 634.2681543761769 + }, + { + "id": 7765, + "x_pos": -1272.7000122070312, + "y_pos": 571.9222239219966 + }, + { + "id": 7764, + "x_pos": -1318.7000122070312, + "y_pos": 481.7329537611681 + }, + { + "id": 7763, + "x_pos": -1350.9000244140625, + "y_pos": 630.571517007952 + }, + { + "id": 7762, + "x_pos": -449, + "y_pos": 589.1812227730538 + }, + { + "id": 7761, + "x_pos": -451.5000305175781, + "y_pos": 585.0373939679312 + }, + { + "id": 7760, + "x_pos": 216.49996948242188, + "y_pos": 2573.7949560523375 + }, + { + "id": 7759, + "x_pos": 213, + "y_pos": 2576.2300038219737 + }, + { + "id": 7758, + "x_pos": 933.1999816894531, + "y_pos": -72.15957202959908 + }, + { + "id": 7757, + "x_pos": 934.1999816894531, + "y_pos": -73.76595338266543 + }, + { + "id": 7751, + "x_pos": -2496, + "y_pos": 1362.9662743545887 + }, + { + "id": 7750, + "x_pos": -2492.8999633789062, + "y_pos": 1359.0245777608807 + }, + { + "id": 7749, + "x_pos": -2490.6000061035156, + "y_pos": 1361.1474742058745 + }, + { + "id": 7748, + "x_pos": -2497.4000244140625, + "y_pos": 1366.0370347762682 + }, + { + "id": 7747, + "x_pos": -2493, + "y_pos": 1364.7256018349508 + }, + { + "id": 7746, + "x_pos": -2489.8999938964844, + "y_pos": 1365.2329384799896 + }, + { + "id": 7745, + "x_pos": -2489.5, + "y_pos": 1358.6397630879937 + }, + { + "id": 7744, + "x_pos": -2493.5, + "y_pos": 1369.2439434475482 + }, + { + "id": 7743, + "x_pos": -2500.5, + "y_pos": 1362.2160794775782 + }, + { + "id": 7742, + "x_pos": -1625, + "y_pos": 1631.115185327113 + }, + { + "id": 7741, + "x_pos": -1620, + "y_pos": 1639.4600076439474 + }, + { + "id": 7740, + "x_pos": 968.0000305175781, + "y_pos": 205.4255254122645 + }, + { + "id": 7739, + "x_pos": 374.8000183105469, + "y_pos": -115.7391822688619 + }, + { + "id": 7738, + "x_pos": 374.1999816894531, + "y_pos": -113.84298815557531 + }, + { + "id": 7737, + "x_pos": 971.5, + "y_pos": 208.74174245403628 + }, + { + "id": 7736, + "x_pos": 362.5, + "y_pos": -213.92479938835004 + }, + { + "id": 7735, + "x_pos": 818.5999755859375, + "y_pos": -284.603828808481 + }, + { + "id": 7734, + "x_pos": 524.9000244140625, + "y_pos": 425.440191061753 + }, + { + "id": 7733, + "x_pos": 527.5, + "y_pos": 428.8690256048744 + }, + { + "id": 7732, + "x_pos": 364, + "y_pos": -210.7677951845144 + }, + { + "id": 7731, + "x_pos": 821.5, + "y_pos": -282.2912724486391 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/3774818f576e9ac0b0c22db53db06236_3117052274833919637.png" + }, + "129": { + "name": "Wooden Crate", + "clear_name": "WoodenCrate", + "points": [ + { + "id": 26270, + "x_pos": -2657.25, + "y_pos": 3155.75 + }, + { + "id": 26269, + "x_pos": -2662.75, + "y_pos": 3148.25 + }, + { + "id": 26264, + "x_pos": -2523.75, + "y_pos": 3176.5 + }, + { + "id": 26263, + "x_pos": -2513.5, + "y_pos": 3169.25 + }, + { + "id": 23428, + "x_pos": 2475, + "y_pos": 5233.5 + }, + { + "id": 23427, + "x_pos": 2115, + "y_pos": 5829.5 + }, + { + "id": 23426, + "x_pos": 2097.5, + "y_pos": 5801 + }, + { + "id": 23425, + "x_pos": 2094.5, + "y_pos": 5797 + }, + { + "id": 23112, + "x_pos": 3564, + "y_pos": 7283 + }, + { + "id": 23070, + "x_pos": 3061, + "y_pos": 6550 + }, + { + "id": 23069, + "x_pos": 3018.5, + "y_pos": 6542.5 + }, + { + "id": 23068, + "x_pos": 3002.5, + "y_pos": 6559.5 + }, + { + "id": 23067, + "x_pos": 2781, + "y_pos": 6981 + }, + { + "id": 23066, + "x_pos": 2767, + "y_pos": 6995 + }, + { + "id": 23053, + "x_pos": 2951, + "y_pos": 6844.5 + }, + { + "id": 23050, + "x_pos": 2905.5, + "y_pos": 6651 + }, + { + "id": 23049, + "x_pos": 2909.5, + "y_pos": 6638.5 + }, + { + "id": 23048, + "x_pos": 2931, + "y_pos": 6747 + }, + { + "id": 23047, + "x_pos": 2916, + "y_pos": 6773.5 + }, + { + "id": 23046, + "x_pos": 2944, + "y_pos": 6766.5 + }, + { + "id": 23045, + "x_pos": 2961, + "y_pos": 6782.5 + }, + { + "id": 22851, + "x_pos": 2337, + "y_pos": 5676 + }, + { + "id": 22850, + "x_pos": 2432.5, + "y_pos": 5731 + }, + { + "id": 22849, + "x_pos": 2428.5, + "y_pos": 5724 + }, + { + "id": 22848, + "x_pos": 2414.5, + "y_pos": 5613 + }, + { + "id": 22847, + "x_pos": 2420.5, + "y_pos": 5582.5 + }, + { + "id": 21568, + "x_pos": 3645, + "y_pos": 4806 + }, + { + "id": 19430, + "x_pos": 3470.369345707115, + "y_pos": 7243.76352530541 + }, + { + "id": 19429, + "x_pos": 3474.1261308585763, + "y_pos": 7242.751308900524 + }, + { + "id": 19428, + "x_pos": 3502.1143699293752, + "y_pos": 7235.880890052356 + }, + { + "id": 19427, + "x_pos": 3464.6252261717145, + "y_pos": 7273.630453752181 + }, + { + "id": 19426, + "x_pos": 3393.754071090878, + "y_pos": 7267.129581151832 + }, + { + "id": 19425, + "x_pos": 2415.5, + "y_pos": 5498 + }, + { + "id": 19422, + "x_pos": -1292, + "y_pos": 1421 + }, + { + "id": 19330, + "x_pos": 1934.5, + "y_pos": 7321.5 + }, + { + "id": 19329, + "x_pos": 1931, + "y_pos": 7315 + }, + { + "id": 19327, + "x_pos": 1935, + "y_pos": 7349 + }, + { + "id": 19326, + "x_pos": 1927, + "y_pos": 7353 + }, + { + "id": 19325, + "x_pos": 1779, + "y_pos": 7102 + }, + { + "id": 19324, + "x_pos": 1748, + "y_pos": 7114.5 + }, + { + "id": 19323, + "x_pos": 1745, + "y_pos": 7115 + }, + { + "id": 19322, + "x_pos": 1762.5, + "y_pos": 7121.5 + }, + { + "id": 18965, + "x_pos": 2532, + "y_pos": 8523.5 + }, + { + "id": 18964, + "x_pos": 2536.5, + "y_pos": 8533 + }, + { + "id": 18963, + "x_pos": 2515, + "y_pos": 8541.5 + }, + { + "id": 18962, + "x_pos": 2524, + "y_pos": 8544 + }, + { + "id": 18959, + "x_pos": 1699, + "y_pos": 8220.5 + }, + { + "id": 18958, + "x_pos": 1705, + "y_pos": 8227 + }, + { + "id": 18957, + "x_pos": 1699.5, + "y_pos": 8230 + }, + { + "id": 18954, + "x_pos": 1728, + "y_pos": 8247.5 + }, + { + "id": 18953, + "x_pos": 1667, + "y_pos": 8609 + }, + { + "id": 18952, + "x_pos": 1660.5, + "y_pos": 8612.5 + }, + { + "id": 18951, + "x_pos": 1656.5, + "y_pos": 8622 + }, + { + "id": 18950, + "x_pos": 1663, + "y_pos": 8688 + }, + { + "id": 18949, + "x_pos": 1674, + "y_pos": 8696 + }, + { + "id": 18948, + "x_pos": 1623.5, + "y_pos": 8744 + }, + { + "id": 18947, + "x_pos": 1621.5, + "y_pos": 8756 + }, + { + "id": 18946, + "x_pos": 1646.5, + "y_pos": 8752.5 + }, + { + "id": 18409, + "x_pos": 2919.5, + "y_pos": 6730.5 + }, + { + "id": 18408, + "x_pos": 2904, + "y_pos": 6702 + }, + { + "id": 18407, + "x_pos": 2927, + "y_pos": 6680.5 + }, + { + "id": 18406, + "x_pos": 2890.5, + "y_pos": 6710.5 + }, + { + "id": 18405, + "x_pos": 2600, + "y_pos": 5405 + }, + { + "id": 18404, + "x_pos": 2678.5, + "y_pos": 5376 + }, + { + "id": 18403, + "x_pos": 2733.5, + "y_pos": 5397.5 + }, + { + "id": 18047, + "x_pos": -281.5, + "y_pos": 5865.5 + }, + { + "id": 18046, + "x_pos": -299, + "y_pos": 6089 + }, + { + "id": 18045, + "x_pos": 322, + "y_pos": 5871 + }, + { + "id": 18044, + "x_pos": 282.5, + "y_pos": 5911.5 + }, + { + "id": 17998, + "x_pos": 349.5, + "y_pos": 6040 + }, + { + "id": 17997, + "x_pos": 476.5, + "y_pos": 5943.5 + }, + { + "id": 17996, + "x_pos": -155, + "y_pos": 6248.5 + }, + { + "id": 17995, + "x_pos": 259.5, + "y_pos": 6402 + }, + { + "id": 17994, + "x_pos": 167, + "y_pos": 6461.5 + }, + { + "id": 17993, + "x_pos": -1, + "y_pos": 6426 + }, + { + "id": 17992, + "x_pos": -112, + "y_pos": 6415 + }, + { + "id": 17991, + "x_pos": -385.5, + "y_pos": 6269.5 + }, + { + "id": 17755, + "x_pos": 4165, + "y_pos": 4550.5 + }, + { + "id": 17754, + "x_pos": 4173, + "y_pos": 4553 + }, + { + "id": 17753, + "x_pos": 4106, + "y_pos": 4582.5 + }, + { + "id": 17752, + "x_pos": 4069, + "y_pos": 4582 + }, + { + "id": 17751, + "x_pos": 4077.5, + "y_pos": 4578 + }, + { + "id": 17750, + "x_pos": 4049, + "y_pos": 4574 + }, + { + "id": 17749, + "x_pos": 4069, + "y_pos": 4610 + }, + { + "id": 17748, + "x_pos": 3492, + "y_pos": 5692 + }, + { + "id": 17747, + "x_pos": 3520.5, + "y_pos": 5712 + }, + { + "id": 15813, + "x_pos": 1928, + "y_pos": 5695 + }, + { + "id": 15603, + "x_pos": 2977.5, + "y_pos": 5595 + }, + { + "id": 15602, + "x_pos": 3029.5, + "y_pos": 5642.5 + }, + { + "id": 15601, + "x_pos": 3041.5, + "y_pos": 5655 + }, + { + "id": 15600, + "x_pos": 2866, + "y_pos": 5761 + }, + { + "id": 15599, + "x_pos": 2999, + "y_pos": 5773.5 + }, + { + "id": 15598, + "x_pos": 2964.5, + "y_pos": 5795.5 + }, + { + "id": 15597, + "x_pos": 2811.5, + "y_pos": 5777 + }, + { + "id": 15596, + "x_pos": 2956, + "y_pos": 5834.5 + }, + { + "id": 15595, + "x_pos": 2904, + "y_pos": 5912.5 + }, + { + "id": 15594, + "x_pos": 2832, + "y_pos": 5850 + }, + { + "id": 15593, + "x_pos": 2896.5, + "y_pos": 5900.5 + }, + { + "id": 15592, + "x_pos": 2888.5, + "y_pos": 5924.5 + }, + { + "id": 15591, + "x_pos": 2812.5, + "y_pos": 5997 + }, + { + "id": 15590, + "x_pos": 2830, + "y_pos": 5969.5 + }, + { + "id": 15589, + "x_pos": 2797, + "y_pos": 6000.5 + }, + { + "id": 14460, + "x_pos": 3258.5, + "y_pos": 5044 + }, + { + "id": 14459, + "x_pos": 3267, + "y_pos": 5052 + }, + { + "id": 14458, + "x_pos": 3270.5, + "y_pos": 5071 + }, + { + "id": 14454, + "x_pos": 3260.5, + "y_pos": 5083.5 + }, + { + "id": 14453, + "x_pos": 3245.5, + "y_pos": 5080 + }, + { + "id": 14257, + "x_pos": 1839.6666870117188, + "y_pos": 5905.666656494141 + }, + { + "id": 14254, + "x_pos": 2824.5, + "y_pos": 5443.25 + }, + { + "id": 13956, + "x_pos": 3609, + "y_pos": 5184.5 + }, + { + "id": 13955, + "x_pos": 3618.5, + "y_pos": 5194.5 + }, + { + "id": 13862, + "x_pos": 3544.199951171875, + "y_pos": 4392.057545316934 + }, + { + "id": 13861, + "x_pos": 3553.699981689453, + "y_pos": 4330.553578917659 + }, + { + "id": 13657, + "x_pos": 2919, + "y_pos": 4884.5 + }, + { + "id": 13656, + "x_pos": 2917, + "y_pos": 4888 + }, + { + "id": 13655, + "x_pos": 2914.5, + "y_pos": 4890.5 + }, + { + "id": 9151, + "x_pos": -346, + "y_pos": 2613 + }, + { + "id": 9150, + "x_pos": -342, + "y_pos": 2627 + }, + { + "id": 9149, + "x_pos": -136, + "y_pos": 2345.5 + }, + { + "id": 9148, + "x_pos": -352, + "y_pos": 2629 + }, + { + "id": 9147, + "x_pos": -334, + "y_pos": 2287 + }, + { + "id": 6404, + "x_pos": -2464.5, + "y_pos": 1442.5 + }, + { + "id": 6403, + "x_pos": -2513.5, + "y_pos": 1425.5 + }, + { + "id": 6402, + "x_pos": -2466, + "y_pos": 1337.5 + }, + { + "id": 6401, + "x_pos": -2460.5, + "y_pos": 1373 + }, + { + "id": 6400, + "x_pos": -2534.5, + "y_pos": 1480 + }, + { + "id": 6399, + "x_pos": -2517.5, + "y_pos": 1418.5 + }, + { + "id": 6398, + "x_pos": -2456.5, + "y_pos": 1504 + }, + { + "id": 6397, + "x_pos": -2463.5, + "y_pos": 1511.5 + }, + { + "id": 6396, + "x_pos": -2450.5, + "y_pos": 1516 + }, + { + "id": 6395, + "x_pos": -2429, + "y_pos": 1578 + }, + { + "id": 6394, + "x_pos": -2460.5, + "y_pos": 1451 + }, + { + "id": 6393, + "x_pos": -2424.5, + "y_pos": 1574 + }, + { + "id": 6392, + "x_pos": -2411, + "y_pos": 1624 + }, + { + "id": 6391, + "x_pos": -2414, + "y_pos": 1637.5 + }, + { + "id": 6390, + "x_pos": -2405, + "y_pos": 1626.5 + }, + { + "id": 6389, + "x_pos": -1008.9989173196395, + "y_pos": 939.0008050431338 + }, + { + "id": 6388, + "x_pos": -908, + "y_pos": 930 + }, + { + "id": 6387, + "x_pos": -920.5, + "y_pos": 980.5 + }, + { + "id": 6386, + "x_pos": -162, + "y_pos": 2591.5 + }, + { + "id": 6385, + "x_pos": -147.5, + "y_pos": 2593.5 + }, + { + "id": 6384, + "x_pos": -91, + "y_pos": 2925.5 + }, + { + "id": 6383, + "x_pos": -29.5, + "y_pos": 2759 + }, + { + "id": 6382, + "x_pos": 292.5, + "y_pos": 2475.5 + }, + { + "id": 6381, + "x_pos": 225, + "y_pos": 2684 + }, + { + "id": 6380, + "x_pos": 287.5, + "y_pos": 2471 + }, + { + "id": 6379, + "x_pos": -876, + "y_pos": 989 + }, + { + "id": 6378, + "x_pos": -1016.9989173196395, + "y_pos": 1025.9995974784333 + }, + { + "id": 6377, + "x_pos": -1520.000649608216, + "y_pos": 850.502351834431 + }, + { + "id": 6376, + "x_pos": -1478.999350391784, + "y_pos": 945.5018814675445 + }, + { + "id": 6375, + "x_pos": -882.5, + "y_pos": 992 + }, + { + "id": 6374, + "x_pos": -156.5, + "y_pos": 2590 + }, + { + "id": 6373, + "x_pos": -1168, + "y_pos": 982 + }, + { + "id": 6372, + "x_pos": 288.5, + "y_pos": 2475 + }, + { + "id": 6371, + "x_pos": 179.5, + "y_pos": 2319.5 + }, + { + "id": 6370, + "x_pos": -1373.499783463928, + "y_pos": 940.5018814675445 + }, + { + "id": 6369, + "x_pos": -814, + "y_pos": 1124 + }, + { + "id": 6368, + "x_pos": -635.5, + "y_pos": 2057.5 + }, + { + "id": 6367, + "x_pos": -658.5, + "y_pos": 1987 + }, + { + "id": 6366, + "x_pos": -722, + "y_pos": 1807.5 + }, + { + "id": 6365, + "x_pos": -748.5, + "y_pos": 1501 + }, + { + "id": 6364, + "x_pos": -1770, + "y_pos": 1071.5 + }, + { + "id": 6363, + "x_pos": -1746.5, + "y_pos": 1084.5 + }, + { + "id": 6362, + "x_pos": -1719.5, + "y_pos": 1090 + }, + { + "id": 6361, + "x_pos": -757, + "y_pos": 1510 + }, + { + "id": 6360, + "x_pos": -450, + "y_pos": 1304.5 + }, + { + "id": 6359, + "x_pos": -1647.5, + "y_pos": 1112 + }, + { + "id": 6358, + "x_pos": -673, + "y_pos": 2181 + }, + { + "id": 6357, + "x_pos": -999.999783463928, + "y_pos": 1411.0008050431343 + }, + { + "id": 6356, + "x_pos": -523, + "y_pos": 2353 + }, + { + "id": 6355, + "x_pos": -1910, + "y_pos": 819 + }, + { + "id": 6354, + "x_pos": -1246.5, + "y_pos": 1896 + }, + { + "id": 6353, + "x_pos": -1299.5, + "y_pos": 1882 + }, + { + "id": 6352, + "x_pos": -589, + "y_pos": 2565.5 + }, + { + "id": 6351, + "x_pos": -1292.5, + "y_pos": 1883 + }, + { + "id": 6350, + "x_pos": -2119, + "y_pos": 2050.5 + }, + { + "id": 6349, + "x_pos": -2050, + "y_pos": 2126 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/00695c6df8cd78f1947eb317280fa8d3_3626194140678419452.png" + }, + "15": { + "name": "White\u00a0Iron\u00a0Chunk", + "clear_name": "WhiteIronChunk", + "points": [ + { + "id": 26191, + "x_pos": -2386.300018310547, + "y_pos": 3158.1468878235446 + }, + { + "id": 26190, + "x_pos": -2393.550018310547, + "y_pos": 3161.39934692474 + }, + { + "id": 26184, + "x_pos": -2416.8499908447266, + "y_pos": 3165.1865346841223 + }, + { + "id": 26183, + "x_pos": -2411.8499908447266, + "y_pos": 3159.4321839666245 + }, + { + "id": 26182, + "x_pos": -2419.3499908447266, + "y_pos": 3157.931048996843 + }, + { + "id": 26177, + "x_pos": -2508.8499603271484, + "y_pos": 3215.474556171822 + }, + { + "id": 26176, + "x_pos": -2523.8499603271484, + "y_pos": 3216.475312818343 + }, + { + "id": 26175, + "x_pos": -2516.0999603271484, + "y_pos": 3205.2168005449776 + }, + { + "id": 26174, + "x_pos": -2483.949966430664, + "y_pos": 3188.854430901387 + }, + { + "id": 26173, + "x_pos": -2489.199966430664, + "y_pos": 3199.862754013122 + }, + { + "id": 26172, + "x_pos": -2496.949966430664, + "y_pos": 3188.3540525781254 + }, + { + "id": 26169, + "x_pos": -2671.749969482422, + "y_pos": 3176.673600803855 + }, + { + "id": 26168, + "x_pos": -2665.249969482422, + "y_pos": 3173.1709525410297 + }, + { + "id": 26167, + "x_pos": -2673.249969482422, + "y_pos": 3155.657711226906 + }, + { + "id": 26166, + "x_pos": -2666.249969482422, + "y_pos": 3152.4052521257117 + }, + { + "id": 26165, + "x_pos": -2685.249969482422, + "y_pos": 3135.892767458109 + }, + { + "id": 26159, + "x_pos": -2732.550003051758, + "y_pos": 3067.4926284602525 + }, + { + "id": 26158, + "x_pos": -2726.800003051758, + "y_pos": 3074.4979249859025 + }, + { + "id": 26157, + "x_pos": -2721.800003051758, + "y_pos": 3070.4948983998165 + }, + { + "id": 26156, + "x_pos": -2722.550003051758, + "y_pos": 3063.7397910357977 + }, + { + "id": 26155, + "x_pos": -2727.050003051758, + "y_pos": 3061.4880885811244 + }, + { + "id": 26151, + "x_pos": -2643.7999877929688, + "y_pos": 2789.956472082994 + }, + { + "id": 26150, + "x_pos": -2662.7999877929688, + "y_pos": 2812.4734966297247 + }, + { + "id": 26144, + "x_pos": -2556.399932861328, + "y_pos": 2910.303391712274 + }, + { + "id": 26143, + "x_pos": -2562.399932861328, + "y_pos": 2906.300365126189 + }, + { + "id": 26142, + "x_pos": -2549.899932861328, + "y_pos": 2896.7931769842353 + }, + { + "id": 26141, + "x_pos": -2556.399932861328, + "y_pos": 2890.2882587818467 + }, + { + "id": 26136, + "x_pos": -2404.1000366210938, + "y_pos": 2905.905777516353 + }, + { + "id": 26135, + "x_pos": -2349.6000366210938, + "y_pos": 2940.1816862396954 + }, + { + "id": 26134, + "x_pos": -2359.1000366210938, + "y_pos": 2934.677524683828 + }, + { + "id": 26133, + "x_pos": -2370.9000244140625, + "y_pos": 3023.2039194161107 + }, + { + "id": 19026, + "x_pos": 1765.8320756818266, + "y_pos": 8113.834028809524 + }, + { + "id": 19025, + "x_pos": 1783.3154999364106, + "y_pos": 8261.41287207416 + }, + { + "id": 19024, + "x_pos": 1782, + "y_pos": 8265.167470218468 + }, + { + "id": 19023, + "x_pos": 1779.8313149827627, + "y_pos": 8269.50234960232 + }, + { + "id": 19022, + "x_pos": 1925.8335665391587, + "y_pos": 8281.50146850145 + }, + { + "id": 19021, + "x_pos": 2220.5, + "y_pos": 8376.5 + }, + { + "id": 19020, + "x_pos": 2218, + "y_pos": 8403.5 + }, + { + "id": 19019, + "x_pos": 2166.3345590072386, + "y_pos": 8531.001463342782 + }, + { + "id": 19018, + "x_pos": 2514, + "y_pos": 8447 + }, + { + "id": 19017, + "x_pos": 2521, + "y_pos": 8439.5 + }, + { + "id": 19016, + "x_pos": 2204.5, + "y_pos": 8624.5 + }, + { + "id": 19015, + "x_pos": 2208.5, + "y_pos": 8626 + }, + { + "id": 19014, + "x_pos": 2024, + "y_pos": 8710.5 + }, + { + "id": 19013, + "x_pos": 2026, + "y_pos": 8712.5 + }, + { + "id": 19012, + "x_pos": 1905, + "y_pos": 8624.5 + }, + { + "id": 19011, + "x_pos": 1906, + "y_pos": 8615.5 + }, + { + "id": 19010, + "x_pos": 1942, + "y_pos": 8585 + }, + { + "id": 19009, + "x_pos": 1768.088431266082, + "y_pos": 8383.70252161333 + }, + { + "id": 19008, + "x_pos": 1606.4655478266031, + "y_pos": 8504.738059348438 + }, + { + "id": 19005, + "x_pos": 1607.966688875198, + "y_pos": 8503.737765648148 + }, + { + "id": 19003, + "x_pos": 1681.6331223360376, + "y_pos": 8636.930787791858 + }, + { + "id": 19001, + "x_pos": 1677.6300795397856, + "y_pos": 8640.931962593018 + }, + { + "id": 18998, + "x_pos": 1714.5, + "y_pos": 8714 + }, + { + "id": 18997, + "x_pos": 1712.5, + "y_pos": 8718 + }, + { + "id": 18994, + "x_pos": 1764.8335215155512, + "y_pos": 8783.333995875624 + }, + { + "id": 18992, + "x_pos": 1767.9989319744382, + "y_pos": 8784.66714427209 + }, + { + "id": 18990, + "x_pos": 1841, + "y_pos": 8845 + }, + { + "id": 18987, + "x_pos": 1807, + "y_pos": 8967.5 + }, + { + "id": 18986, + "x_pos": 1810.5, + "y_pos": 8965 + }, + { + "id": 18985, + "x_pos": 1836.5, + "y_pos": 9058.5 + }, + { + "id": 18984, + "x_pos": 1839.5, + "y_pos": 9057.5 + }, + { + "id": 18983, + "x_pos": 1969, + "y_pos": 9071.5 + }, + { + "id": 18982, + "x_pos": 1967, + "y_pos": 9070 + }, + { + "id": 18394, + "x_pos": 3111.7999877929688, + "y_pos": 6626.235001653036 + }, + { + "id": 18393, + "x_pos": 3128.800048828125, + "y_pos": 6630.638488072927 + }, + { + "id": 18392, + "x_pos": 3051.2999877929688, + "y_pos": 6752.354367595975 + }, + { + "id": 18389, + "x_pos": 3071.5, + "y_pos": 6787.602531760633 + }, + { + "id": 18363, + "x_pos": -197.11712825633367, + "y_pos": 6093.091122696773 + }, + { + "id": 17873, + "x_pos": 3799.5, + "y_pos": 5150.5 + }, + { + "id": 17872, + "x_pos": 3801.5, + "y_pos": 5147.5 + }, + { + "id": 17871, + "x_pos": 3835.5, + "y_pos": 5163.5 + }, + { + "id": 17870, + "x_pos": 3832.5, + "y_pos": 5163 + }, + { + "id": 17864, + "x_pos": 3467, + "y_pos": 5230.5 + }, + { + "id": 17863, + "x_pos": 3462.5, + "y_pos": 5234 + }, + { + "id": 17859, + "x_pos": 3908, + "y_pos": 5694 + }, + { + "id": 17858, + "x_pos": 3779.5, + "y_pos": 5639.5 + }, + { + "id": 17857, + "x_pos": 3914.5, + "y_pos": 5711.5 + }, + { + "id": 17856, + "x_pos": 3909, + "y_pos": 5713.5 + }, + { + "id": 17855, + "x_pos": 3905, + "y_pos": 5724.5 + }, + { + "id": 17854, + "x_pos": 3915.5, + "y_pos": 5727 + }, + { + "id": 17848, + "x_pos": 2812.5, + "y_pos": 5552.5 + }, + { + "id": 17847, + "x_pos": 2802, + "y_pos": 5556.5 + }, + { + "id": 17846, + "x_pos": 2807.5, + "y_pos": 5557.5 + }, + { + "id": 17842, + "x_pos": 2700.5, + "y_pos": 5732 + }, + { + "id": 17841, + "x_pos": 2682.5, + "y_pos": 5772.5 + }, + { + "id": 17840, + "x_pos": 2533, + "y_pos": 5857.5 + }, + { + "id": 17839, + "x_pos": 2574, + "y_pos": 5986.5 + }, + { + "id": 17838, + "x_pos": 2567.5, + "y_pos": 5987.5 + }, + { + "id": 17837, + "x_pos": 2540.5, + "y_pos": 5863.5 + }, + { + "id": 17836, + "x_pos": 2568, + "y_pos": 5990 + }, + { + "id": 17835, + "x_pos": 2229, + "y_pos": 5950.5 + }, + { + "id": 17831, + "x_pos": 2233, + "y_pos": 5965.5 + }, + { + "id": 17829, + "x_pos": 1527.5, + "y_pos": 6099 + }, + { + "id": 17828, + "x_pos": 1524.5, + "y_pos": 6091 + }, + { + "id": 17827, + "x_pos": 2721.5, + "y_pos": 6407.5 + }, + { + "id": 17826, + "x_pos": 2732.5, + "y_pos": 6409.5 + }, + { + "id": 17824, + "x_pos": 3272, + "y_pos": 7207.5 + }, + { + "id": 17823, + "x_pos": 3277.5, + "y_pos": 7205.5 + }, + { + "id": 17661, + "x_pos": 2298.5999755859375, + "y_pos": 6193.0999755859375 + }, + { + "id": 17659, + "x_pos": 2294.2999877929688, + "y_pos": 6195.700012207031 + }, + { + "id": 17013, + "x_pos": 3454, + "y_pos": 7395 + }, + { + "id": 17012, + "x_pos": 3449, + "y_pos": 7408.5 + }, + { + "id": 17011, + "x_pos": 3284.247100830078, + "y_pos": 7227.3375244140625 + }, + { + "id": 17010, + "x_pos": 3291.914306640625, + "y_pos": 7226.900054931641 + }, + { + "id": 17008, + "x_pos": 3492.883026123047, + "y_pos": 6630.09375 + }, + { + "id": 17007, + "x_pos": 3494.5149536132812, + "y_pos": 6637.946640014648 + }, + { + "id": 17005, + "x_pos": 3104.3999633789062, + "y_pos": 6716.142883300781 + }, + { + "id": 17003, + "x_pos": 3107.7701416015625, + "y_pos": 6716.775817871094 + }, + { + "id": 17001, + "x_pos": 3104.5, + "y_pos": 6719 + }, + { + "id": 15723, + "x_pos": 3785.5, + "y_pos": 5622 + }, + { + "id": 15465, + "x_pos": 2532, + "y_pos": 5860 + }, + { + "id": 15464, + "x_pos": 2564.5, + "y_pos": 5994.5 + }, + { + "id": 15463, + "x_pos": 2541.5, + "y_pos": 5858 + }, + { + "id": 15347, + "x_pos": 1776.7999877929688, + "y_pos": 6077.801254579297 + }, + { + "id": 15346, + "x_pos": 1772.1999816894531, + "y_pos": 6079.102509158596 + }, + { + "id": 15345, + "x_pos": 1770.1000061035156, + "y_pos": 6087.205079448997 + }, + { + "id": 15344, + "x_pos": 1766.2000122070312, + "y_pos": 6095.608873752793 + }, + { + "id": 15343, + "x_pos": 1696.2000122070312, + "y_pos": 6167.910158897994 + }, + { + "id": 15342, + "x_pos": 1693.3999938964844, + "y_pos": 6168.906991883847 + }, + { + "id": 15341, + "x_pos": 1696.7999877929688, + "y_pos": 6180.705079448997 + }, + { + "id": 15185, + "x_pos": 1485.5995235969167, + "y_pos": 6363.102443242362 + }, + { + "id": 15182, + "x_pos": 1480.4005069574741, + "y_pos": 6365.201840072787 + }, + { + "id": 15179, + "x_pos": 1470.0995235969167, + "y_pos": 6371.701809508724 + }, + { + "id": 15002, + "x_pos": 2338.5, + "y_pos": 5768 + }, + { + "id": 15001, + "x_pos": 2338, + "y_pos": 5768 + }, + { + "id": 14999, + "x_pos": 2342, + "y_pos": 5773 + }, + { + "id": 14992, + "x_pos": 2675, + "y_pos": 5758.5 + }, + { + "id": 14990, + "x_pos": 2684, + "y_pos": 5765.5 + }, + { + "id": 14988, + "x_pos": 2694.5, + "y_pos": 5789 + }, + { + "id": 14577, + "x_pos": 1422.3035068750532, + "y_pos": 5888.002288236301 + }, + { + "id": 14576, + "x_pos": 1426.5969897419645, + "y_pos": 5890.6018366995395 + }, + { + "id": 14575, + "x_pos": 1426.0995033829831, + "y_pos": 5899.004576472602 + }, + { + "id": 14574, + "x_pos": 1696.0978804204742, + "y_pos": 5803.405028009362 + }, + { + "id": 14573, + "x_pos": 1648.8979829759983, + "y_pos": 5989.4096044819635 + }, + { + "id": 14572, + "x_pos": 1644.1020170240017, + "y_pos": 5995.9073162456625 + }, + { + "id": 14567, + "x_pos": 3427, + "y_pos": 4883.5 + }, + { + "id": 14566, + "x_pos": 3419.5, + "y_pos": 4891 + }, + { + "id": 14265, + "x_pos": 3574, + "y_pos": 5316.5 + }, + { + "id": 14264, + "x_pos": 3565.5, + "y_pos": 5317 + }, + { + "id": 13921, + "x_pos": 3792, + "y_pos": 5151 + }, + { + "id": 11704, + "x_pos": -514, + "y_pos": 27 + }, + { + "id": 11703, + "x_pos": -513.5, + "y_pos": 27 + }, + { + "id": 11288, + "x_pos": 1887.5, + "y_pos": 669 + }, + { + "id": 11287, + "x_pos": 1865.5, + "y_pos": 688.5 + }, + { + "id": 11286, + "x_pos": 1874.5, + "y_pos": 689.5 + }, + { + "id": 11285, + "x_pos": 1870, + "y_pos": 690 + }, + { + "id": 11284, + "x_pos": 1869.5, + "y_pos": 694.5 + }, + { + "id": 9680, + "x_pos": -1521.5243830393993, + "y_pos": 1941.3091660666842 + }, + { + "id": 9679, + "x_pos": -1525.57933813288, + "y_pos": 1964.0969001429776 + }, + { + "id": 8478, + "x_pos": -2025.944496117248, + "y_pos": 2953.88931958011 + }, + { + "id": 8477, + "x_pos": -2042.388992234496, + "y_pos": 2948.555340209945 + }, + { + "id": 8476, + "x_pos": -2017.055503882752, + "y_pos": 2949.5553249571167 + }, + { + "id": 8475, + "x_pos": -2052.555503882752, + "y_pos": 2964.9446750428833 + }, + { + "id": 8474, + "x_pos": -2053.333427320775, + "y_pos": 2974.6640520136807 + }, + { + "id": 8473, + "x_pos": -2025.944496117248, + "y_pos": 2986.832010754012 + }, + { + "id": 8472, + "x_pos": -1938.6110687964729, + "y_pos": 3026.3320412596686 + }, + { + "id": 8471, + "x_pos": -1931.3889312035271, + "y_pos": 3034.3320412596686 + }, + { + "id": 8470, + "x_pos": -2060.3334883517446, + "y_pos": 2983.11068041989 + }, + { + "id": 8469, + "x_pos": -1950.388992234496, + "y_pos": 3122.776716302551 + }, + { + "id": 7830, + "x_pos": -381, + "y_pos": -440.5 + }, + { + "id": 7829, + "x_pos": -384.5, + "y_pos": -432.5 + }, + { + "id": 7828, + "x_pos": -353.5, + "y_pos": -325.5 + }, + { + "id": 7827, + "x_pos": -998, + "y_pos": -192 + }, + { + "id": 7826, + "x_pos": -350.5, + "y_pos": -312 + }, + { + "id": 7825, + "x_pos": -347, + "y_pos": -309 + }, + { + "id": 7824, + "x_pos": -440.5, + "y_pos": -391.5 + }, + { + "id": 7823, + "x_pos": -353.5, + "y_pos": -316.5 + }, + { + "id": 7822, + "x_pos": -347.5, + "y_pos": -295.5 + }, + { + "id": 7821, + "x_pos": -306.5, + "y_pos": -338.5 + }, + { + "id": 7820, + "x_pos": -350.5, + "y_pos": -299 + }, + { + "id": 7819, + "x_pos": -452.5, + "y_pos": -387.5 + }, + { + "id": 7818, + "x_pos": -351, + "y_pos": -305 + }, + { + "id": 7817, + "x_pos": -303.5, + "y_pos": -334.5 + }, + { + "id": 7816, + "x_pos": -412.5, + "y_pos": -282 + }, + { + "id": 7815, + "x_pos": -770, + "y_pos": -174 + }, + { + "id": 7563, + "x_pos": -1281, + "y_pos": 1146 + }, + { + "id": 7562, + "x_pos": -1284.5, + "y_pos": 1145.5 + }, + { + "id": 7561, + "x_pos": -1294, + "y_pos": 1145 + }, + { + "id": 7560, + "x_pos": -1281, + "y_pos": 1143 + }, + { + "id": 7559, + "x_pos": -1294, + "y_pos": 1142 + }, + { + "id": 7558, + "x_pos": -1278, + "y_pos": 1141 + }, + { + "id": 7556, + "x_pos": -1293, + "y_pos": 1148.5 + }, + { + "id": 2030, + "x_pos": -735.5, + "y_pos": 738 + }, + { + "id": 2029, + "x_pos": -731, + "y_pos": 722.5 + }, + { + "id": 2028, + "x_pos": -655.5, + "y_pos": 649.5 + }, + { + "id": 2027, + "x_pos": -529, + "y_pos": 796 + }, + { + "id": 2026, + "x_pos": -546.3844478177557, + "y_pos": 766.9224106853267 + }, + { + "id": 2025, + "x_pos": -611, + "y_pos": 666.5 + }, + { + "id": 2024, + "x_pos": -720, + "y_pos": 643.5021298036354 + }, + { + "id": 2023, + "x_pos": -672, + "y_pos": 557 + }, + { + "id": 2022, + "x_pos": -947.5, + "y_pos": 770.5 + }, + { + "id": 1529, + "x_pos": -1010.9991418936102, + "y_pos": 692.0069218618146 + }, + { + "id": 1478, + "x_pos": -763.5, + "y_pos": 665.5010649018177 + }, + { + "id": 1464, + "x_pos": -621, + "y_pos": 1462.118697810874 + }, + { + "id": 1455, + "x_pos": -502, + "y_pos": 1352.2392789242313 + }, + { + "id": 1424, + "x_pos": -692, + "y_pos": 1422.2798482707813 + }, + { + "id": 1367, + "x_pos": -1698.5, + "y_pos": 1094 + }, + { + "id": 1364, + "x_pos": -1648.5, + "y_pos": 1208 + }, + { + "id": 1335, + "x_pos": -2371.5, + "y_pos": 1251 + }, + { + "id": 1328, + "x_pos": -2399.5, + "y_pos": 1214.5 + }, + { + "id": 1326, + "x_pos": -2343.5, + "y_pos": 1228.5 + }, + { + "id": 1325, + "x_pos": -1601, + "y_pos": 1642 + }, + { + "id": 1321, + "x_pos": -2261.5, + "y_pos": 1253.5 + }, + { + "id": 1315, + "x_pos": -2367.5, + "y_pos": 1297.5 + }, + { + "id": 1309, + "x_pos": -2377.5, + "y_pos": 1258 + }, + { + "id": 1300, + "x_pos": -2283, + "y_pos": 1248 + }, + { + "id": 1299, + "x_pos": -2368.5, + "y_pos": 1322.5 + }, + { + "id": 1286, + "x_pos": -2306.5, + "y_pos": 1263 + }, + { + "id": 1284, + "x_pos": -2349.5, + "y_pos": 1324 + }, + { + "id": 1283, + "x_pos": -2412.5, + "y_pos": 1189.5 + }, + { + "id": 1275, + "x_pos": -2311.5, + "y_pos": 1108 + }, + { + "id": 1268, + "x_pos": -2383.5, + "y_pos": 1209 + }, + { + "id": 1267, + "x_pos": -2379.5, + "y_pos": 1118.5 + }, + { + "id": 1264, + "x_pos": -2274.5, + "y_pos": 1266 + }, + { + "id": 1263, + "x_pos": -2348, + "y_pos": 1290 + }, + { + "id": 1262, + "x_pos": -2343, + "y_pos": 1241 + }, + { + "id": 1249, + "x_pos": -2287.5, + "y_pos": 1270 + }, + { + "id": 1225, + "x_pos": 874, + "y_pos": -589.5 + }, + { + "id": 1223, + "x_pos": -1825.5, + "y_pos": 1644 + }, + { + "id": 1217, + "x_pos": -1668, + "y_pos": 1518 + }, + { + "id": 1216, + "x_pos": -1613, + "y_pos": 1557 + }, + { + "id": 1186, + "x_pos": -2347, + "y_pos": 1341 + }, + { + "id": 1174, + "x_pos": -1681.5, + "y_pos": 1703 + }, + { + "id": 1167, + "x_pos": -2239.5, + "y_pos": 1204 + }, + { + "id": 1093, + "x_pos": -2318, + "y_pos": 1284 + }, + { + "id": 1003, + "x_pos": -1853, + "y_pos": 1606.5 + }, + { + "id": 980, + "x_pos": 474, + "y_pos": 538 + }, + { + "id": 956, + "x_pos": 598, + "y_pos": -373 + }, + { + "id": 940, + "x_pos": -2427, + "y_pos": 1793 + }, + { + "id": 910, + "x_pos": -322.5, + "y_pos": 152.5 + }, + { + "id": 897, + "x_pos": -559.5, + "y_pos": 168 + }, + { + "id": 894, + "x_pos": -392.5, + "y_pos": 62 + }, + { + "id": 790, + "x_pos": 545.5, + "y_pos": 731 + }, + { + "id": 759, + "x_pos": -1755, + "y_pos": 1818 + }, + { + "id": 717, + "x_pos": 664.5, + "y_pos": -458.5 + }, + { + "id": 697, + "x_pos": -407, + "y_pos": 1451.0522091595835 + }, + { + "id": 691, + "x_pos": -519, + "y_pos": 1616.9158510781235 + }, + { + "id": 685, + "x_pos": -745.5, + "y_pos": 1892.029485358671 + }, + { + "id": 681, + "x_pos": -739.5, + "y_pos": 1901.6720415347427 + }, + { + "id": 669, + "x_pos": -728.5, + "y_pos": 1907.1162586832365 + }, + { + "id": 658, + "x_pos": -563, + "y_pos": 2416.4267192389816 + }, + { + "id": 649, + "x_pos": -1654.9986890660794, + "y_pos": 2838.0003613698973 + }, + { + "id": 643, + "x_pos": -1637.4989075550661, + "y_pos": 2802.50289095918 + }, + { + "id": 640, + "x_pos": -1691.0003277334804, + "y_pos": 2771.998915890307 + }, + { + "id": 611, + "x_pos": -158.5, + "y_pos": 164.5 + }, + { + "id": 588, + "x_pos": 1888.5, + "y_pos": 668 + }, + { + "id": 579, + "x_pos": 1867.5, + "y_pos": 693 + }, + { + "id": 569, + "x_pos": 1894, + "y_pos": 667.5 + }, + { + "id": 558, + "x_pos": -1623, + "y_pos": 2961.00337278571 + }, + { + "id": 554, + "x_pos": -325.5, + "y_pos": 133 + }, + { + "id": 534, + "x_pos": -1938.5, + "y_pos": 2158.5 + }, + { + "id": 505, + "x_pos": -1645.9998907555068, + "y_pos": 2974.4984340637775 + }, + { + "id": 496, + "x_pos": -1745.4995630220265, + "y_pos": 3029.999759086735 + }, + { + "id": 491, + "x_pos": -1759.498361332599, + "y_pos": 3014.4998795433676 + }, + { + "id": 489, + "x_pos": -1749.002840356828, + "y_pos": 3042.49855452041 + }, + { + "id": 486, + "x_pos": -1611.99967226652, + "y_pos": 3005.5015659362225 + }, + { + "id": 482, + "x_pos": -1399.502840356828, + "y_pos": 3025.5009636530604 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a1e6d42d614a36b3f248d15761867b7a_3583691230971212151.png" + }, + "16": { + "name": "Crystal Chunk", + "clear_name": "CrystalChunk", + "points": [ + { + "id": 26189, + "x_pos": -2386.3999938964844, + "y_pos": 3140.768070981968 + }, + { + "id": 26188, + "x_pos": -2392.6499938964844, + "y_pos": 3136.765044395882 + }, + { + "id": 26187, + "x_pos": -2385.6499938964844, + "y_pos": 3131.2608828400143 + }, + { + "id": 26186, + "x_pos": -2432.999984741211, + "y_pos": 3238.491959041813 + }, + { + "id": 26185, + "x_pos": -2423.999984741211, + "y_pos": 3236.49044574877 + }, + { + "id": 26181, + "x_pos": -2513.0999603271484, + "y_pos": 3206.467746353129 + }, + { + "id": 26180, + "x_pos": -2523.8499603271484, + "y_pos": 3221.72928521258 + }, + { + "id": 26179, + "x_pos": -2530.0999603271484, + "y_pos": 3214.2236103636696 + }, + { + "id": 26178, + "x_pos": -2528.0999603271484, + "y_pos": 3205.2168005449776 + }, + { + "id": 26171, + "x_pos": -2652.499969482422, + "y_pos": 3172.420385056139 + }, + { + "id": 26170, + "x_pos": -2657.249969482422, + "y_pos": 3162.1626294292946 + }, + { + "id": 26164, + "x_pos": -2729.050003051758, + "y_pos": 3110.5251642606718 + }, + { + "id": 26163, + "x_pos": -2736.050003051758, + "y_pos": 3107.773083482738 + }, + { + "id": 26162, + "x_pos": -2725.300003051758, + "y_pos": 3085.5062480976376 + }, + { + "id": 26154, + "x_pos": -2629.2999877929688, + "y_pos": 2800.4644168714685 + }, + { + "id": 26153, + "x_pos": -2626.2999877929688, + "y_pos": 2785.953445496909 + }, + { + "id": 26152, + "x_pos": -2649.2999877929688, + "y_pos": 2794.960255315601 + }, + { + "id": 26146, + "x_pos": -2557.4000244140625, + "y_pos": 2911.4046667488456 + }, + { + "id": 26145, + "x_pos": -2562.399932861328, + "y_pos": 2904.907436041044 + }, + { + "id": 26140, + "x_pos": -2419.9999389648438, + "y_pos": 2901.2920742841525 + }, + { + "id": 26139, + "x_pos": -2392.4999389648438, + "y_pos": 2909.2981274563235 + }, + { + "id": 26130, + "x_pos": -2380.9000244140625, + "y_pos": 3028.2077026487177 + }, + { + "id": 26129, + "x_pos": -2375.9000244140625, + "y_pos": 3024.7050543858923 + }, + { + "id": 26128, + "x_pos": -2380.4000244140625, + "y_pos": 3018.2001361835037 + }, + { + "id": 11180, + "x_pos": 606.5, + "y_pos": -373 + }, + { + "id": 11171, + "x_pos": -279.5, + "y_pos": 152.5 + }, + { + "id": 11170, + "x_pos": -36, + "y_pos": 649.5 + }, + { + "id": 11169, + "x_pos": -26, + "y_pos": 653 + }, + { + "id": 11168, + "x_pos": -22.5, + "y_pos": 653.5 + }, + { + "id": 11164, + "x_pos": -2394.5, + "y_pos": 1214 + }, + { + "id": 11163, + "x_pos": -2371, + "y_pos": 1212.5 + }, + { + "id": 11162, + "x_pos": -2363, + "y_pos": 1225.5 + }, + { + "id": 11161, + "x_pos": -2401, + "y_pos": 1230 + }, + { + "id": 11152, + "x_pos": 71.5, + "y_pos": 2769.5 + }, + { + "id": 11151, + "x_pos": 67.5, + "y_pos": 2777 + }, + { + "id": 11150, + "x_pos": 61, + "y_pos": 2777.5 + }, + { + "id": 11149, + "x_pos": 65.5, + "y_pos": 2794 + }, + { + "id": 11148, + "x_pos": 68.5, + "y_pos": 2758 + }, + { + "id": 11147, + "x_pos": 69, + "y_pos": 2749.5 + }, + { + "id": 11146, + "x_pos": 27.5, + "y_pos": 2659.5 + }, + { + "id": 11145, + "x_pos": 31, + "y_pos": 2654 + }, + { + "id": 11144, + "x_pos": 86.5, + "y_pos": 2592.5 + }, + { + "id": 11143, + "x_pos": -54.5, + "y_pos": 2394.5 + }, + { + "id": 11142, + "x_pos": -51.5, + "y_pos": 2397.5 + }, + { + "id": 11141, + "x_pos": -1323, + "y_pos": 2867 + }, + { + "id": 11140, + "x_pos": -1325, + "y_pos": 2875 + }, + { + "id": 11139, + "x_pos": -1312, + "y_pos": 2918 + }, + { + "id": 11138, + "x_pos": -1318.5, + "y_pos": 2924 + }, + { + "id": 11137, + "x_pos": -1535, + "y_pos": 3112 + }, + { + "id": 11136, + "x_pos": -1523.5, + "y_pos": 3114 + }, + { + "id": 11135, + "x_pos": -1626, + "y_pos": 2995 + }, + { + "id": 11134, + "x_pos": -1838, + "y_pos": 2974.5 + }, + { + "id": 11133, + "x_pos": -1834.5, + "y_pos": 2979 + }, + { + "id": 11132, + "x_pos": -1770.5, + "y_pos": 3215.5 + }, + { + "id": 11131, + "x_pos": -1443.5, + "y_pos": 2587.5 + }, + { + "id": 11130, + "x_pos": -1452.5, + "y_pos": 2599 + }, + { + "id": 11129, + "x_pos": -1436, + "y_pos": 2616 + }, + { + "id": 11128, + "x_pos": -1792, + "y_pos": 2632 + }, + { + "id": 11127, + "x_pos": -1785.5, + "y_pos": 2632 + }, + { + "id": 11126, + "x_pos": -1779, + "y_pos": 2638 + }, + { + "id": 11125, + "x_pos": -1783.5, + "y_pos": 2645 + }, + { + "id": 11124, + "x_pos": -1780.5, + "y_pos": 2646 + }, + { + "id": 11123, + "x_pos": -1876.5, + "y_pos": 2667.5 + }, + { + "id": 11122, + "x_pos": -1869.5, + "y_pos": 2668.5 + }, + { + "id": 11121, + "x_pos": -1863.5, + "y_pos": 2668 + }, + { + "id": 11120, + "x_pos": -1430.5, + "y_pos": 2026 + }, + { + "id": 11119, + "x_pos": -1434.5, + "y_pos": 2033.5 + }, + { + "id": 11118, + "x_pos": -1484, + "y_pos": 1946.5 + }, + { + "id": 11117, + "x_pos": -1480.5, + "y_pos": 1946.5 + }, + { + "id": 11116, + "x_pos": -1652, + "y_pos": 1886 + }, + { + "id": 11115, + "x_pos": -1620.5, + "y_pos": 1989 + }, + { + "id": 11114, + "x_pos": -1675, + "y_pos": 2049 + }, + { + "id": 11111, + "x_pos": -1772.5, + "y_pos": 2186 + }, + { + "id": 11110, + "x_pos": -2067.5, + "y_pos": 2019 + }, + { + "id": 11108, + "x_pos": -2028, + "y_pos": 1709 + }, + { + "id": 11104, + "x_pos": -2086.5, + "y_pos": 1501.5 + }, + { + "id": 11103, + "x_pos": -2099, + "y_pos": 1510 + }, + { + "id": 11102, + "x_pos": -2094, + "y_pos": 1508 + }, + { + "id": 11091, + "x_pos": -2124.5, + "y_pos": 952 + }, + { + "id": 11090, + "x_pos": -1526, + "y_pos": 793.5 + }, + { + "id": 9505, + "x_pos": -2318.3617890823916, + "y_pos": 1489.8805644176318 + }, + { + "id": 7727, + "x_pos": -1800, + "y_pos": 1116.5 + }, + { + "id": 7722, + "x_pos": -779, + "y_pos": -295.5 + }, + { + "id": 7718, + "x_pos": -885.5, + "y_pos": -683 + }, + { + "id": 7714, + "x_pos": -835, + "y_pos": -74.5 + }, + { + "id": 5255, + "x_pos": -2027, + "y_pos": 3212.5 + }, + { + "id": 5249, + "x_pos": -1104.5, + "y_pos": -123 + }, + { + "id": 5245, + "x_pos": -2141, + "y_pos": 2235 + }, + { + "id": 5244, + "x_pos": -1450.5, + "y_pos": 2635.5 + }, + { + "id": 5243, + "x_pos": -1496.5, + "y_pos": 1931.5 + }, + { + "id": 5242, + "x_pos": -1643.5, + "y_pos": 1944 + }, + { + "id": 5240, + "x_pos": -906, + "y_pos": -83 + }, + { + "id": 5238, + "x_pos": -400.5, + "y_pos": 249.5 + }, + { + "id": 5237, + "x_pos": 1052, + "y_pos": 83 + }, + { + "id": 5235, + "x_pos": -127, + "y_pos": 301 + }, + { + "id": 5233, + "x_pos": -1775.5, + "y_pos": 2188 + }, + { + "id": 5232, + "x_pos": -1620, + "y_pos": 1986 + }, + { + "id": 5229, + "x_pos": -1426, + "y_pos": 2027 + }, + { + "id": 5225, + "x_pos": 466, + "y_pos": -360 + }, + { + "id": 5224, + "x_pos": -317.5, + "y_pos": 21 + }, + { + "id": 1696, + "x_pos": -2359.5, + "y_pos": 1232.5 + }, + { + "id": 1689, + "x_pos": -2366.5, + "y_pos": 1218 + }, + { + "id": 1687, + "x_pos": -2398.5, + "y_pos": 1224.5 + }, + { + "id": 1685, + "x_pos": -2380.5, + "y_pos": 1234 + }, + { + "id": 1664, + "x_pos": -1470.9302134918744, + "y_pos": 766.421345783509 + }, + { + "id": 1626, + "x_pos": -259.5, + "y_pos": -352.16391347408285 + }, + { + "id": 1624, + "x_pos": -1474.4310715982642, + "y_pos": 757.8814119653489 + }, + { + "id": 1617, + "x_pos": -1112.5, + "y_pos": -257.1890520136965 + }, + { + "id": 1614, + "x_pos": -1106, + "y_pos": -246.81058053910328 + }, + { + "id": 1602, + "x_pos": -1100.5, + "y_pos": -192.11703510975167 + }, + { + "id": 1591, + "x_pos": -1174.5, + "y_pos": -218.28132367187573 + }, + { + "id": 1590, + "x_pos": -1128.5, + "y_pos": -301.1110337010896 + }, + { + "id": 1571, + "x_pos": -1526.5012871595845, + "y_pos": 791.0023960290896 + }, + { + "id": 1569, + "x_pos": -1146, + "y_pos": -373.1275375749103 + }, + { + "id": 1562, + "x_pos": -844.5, + "y_pos": -230.3030787782759 + }, + { + "id": 1560, + "x_pos": -1466.5014301773163, + "y_pos": 759.9976039709104 + }, + { + "id": 1539, + "x_pos": -1469.0007150886581, + "y_pos": 769.5005324509088 + }, + { + "id": 1513, + "x_pos": 466, + "y_pos": 661.5 + }, + { + "id": 1401, + "x_pos": -2127.5, + "y_pos": 961 + }, + { + "id": 1396, + "x_pos": -1281, + "y_pos": -500.10314921137933 + }, + { + "id": 1388, + "x_pos": -2301, + "y_pos": 981.5 + }, + { + "id": 1381, + "x_pos": -1645.5, + "y_pos": 1196.5 + }, + { + "id": 1360, + "x_pos": -1444, + "y_pos": 1340.5 + }, + { + "id": 1330, + "x_pos": -2174, + "y_pos": 1341 + }, + { + "id": 1312, + "x_pos": -1794.5, + "y_pos": 1116 + }, + { + "id": 1311, + "x_pos": -416.5, + "y_pos": -63.1717979637931 + }, + { + "id": 1287, + "x_pos": -1300, + "y_pos": -426.1162849336688 + }, + { + "id": 1282, + "x_pos": -1784.5, + "y_pos": 1313 + }, + { + "id": 1279, + "x_pos": -2249, + "y_pos": 1339.5 + }, + { + "id": 1277, + "x_pos": -1751, + "y_pos": 1359.5 + }, + { + "id": 1276, + "x_pos": -1930, + "y_pos": 1311 + }, + { + "id": 1260, + "x_pos": -2017, + "y_pos": 1481.5 + }, + { + "id": 1256, + "x_pos": -1935.5, + "y_pos": 1673 + }, + { + "id": 1236, + "x_pos": -2020.5, + "y_pos": 1563.5 + }, + { + "id": 1219, + "x_pos": -960, + "y_pos": -274.4433617057516 + }, + { + "id": 1213, + "x_pos": -1888, + "y_pos": 1004 + }, + { + "id": 1208, + "x_pos": -1987, + "y_pos": 1433.5 + }, + { + "id": 1187, + "x_pos": -2238, + "y_pos": 1547 + }, + { + "id": 1184, + "x_pos": -2190.5, + "y_pos": 1493.5 + }, + { + "id": 1183, + "x_pos": -2246.5, + "y_pos": 1403 + }, + { + "id": 1181, + "x_pos": -2137.5, + "y_pos": 1382.5 + }, + { + "id": 1177, + "x_pos": -1812, + "y_pos": 1401 + }, + { + "id": 1175, + "x_pos": -2203, + "y_pos": 1468.5 + }, + { + "id": 1172, + "x_pos": -2299.5, + "y_pos": 1472.5 + }, + { + "id": 1169, + "x_pos": -2315.5, + "y_pos": 1478.5 + }, + { + "id": 1165, + "x_pos": -2104.5, + "y_pos": 1301.5 + }, + { + "id": 1146, + "x_pos": -2020, + "y_pos": 1259 + }, + { + "id": 1143, + "x_pos": -2189.5, + "y_pos": 1650.5 + }, + { + "id": 1142, + "x_pos": -990, + "y_pos": -284.7535671568137 + }, + { + "id": 1136, + "x_pos": -1011.5, + "y_pos": -342.0768930484828 + }, + { + "id": 1120, + "x_pos": -34, + "y_pos": 651 + }, + { + "id": 1116, + "x_pos": -2114, + "y_pos": 1398.5 + }, + { + "id": 1113, + "x_pos": -2216.5, + "y_pos": 1336 + }, + { + "id": 1112, + "x_pos": -1890, + "y_pos": 1475 + }, + { + "id": 1109, + "x_pos": -2090.5, + "y_pos": 1499 + }, + { + "id": 1101, + "x_pos": -2195.5, + "y_pos": 1459 + }, + { + "id": 1092, + "x_pos": -2119, + "y_pos": 1666 + }, + { + "id": 1091, + "x_pos": -2223, + "y_pos": 1641 + }, + { + "id": 1079, + "x_pos": -938, + "y_pos": -116.22656081783452 + }, + { + "id": 1073, + "x_pos": -949, + "y_pos": -150.7880752566207 + }, + { + "id": 1050, + "x_pos": -1012, + "y_pos": -107.16429620296549 + }, + { + "id": 999, + "x_pos": -1901, + "y_pos": 1750.5 + }, + { + "id": 952, + "x_pos": -277.5, + "y_pos": 151 + }, + { + "id": 939, + "x_pos": 597.5, + "y_pos": -373.5 + }, + { + "id": 914, + "x_pos": -968, + "y_pos": -362.85559110406894 + }, + { + "id": 905, + "x_pos": -705.5, + "y_pos": 252.5 + }, + { + "id": 879, + "x_pos": -1332.0021848898677, + "y_pos": 2873.001686392855 + }, + { + "id": 829, + "x_pos": -2031.5, + "y_pos": 1707 + }, + { + "id": 827, + "x_pos": -852, + "y_pos": -421.75281698073104 + }, + { + "id": 820, + "x_pos": -917.5, + "y_pos": -436.7558176850621 + }, + { + "id": 796, + "x_pos": -894, + "y_pos": -423.74531521990343 + }, + { + "id": 740, + "x_pos": 796.5, + "y_pos": -486.5 + }, + { + "id": 739, + "x_pos": -786, + "y_pos": -405.4501132904966 + }, + { + "id": 664, + "x_pos": 876, + "y_pos": -588.5 + }, + { + "id": 638, + "x_pos": -2381, + "y_pos": 1954 + }, + { + "id": 633, + "x_pos": -1315.5002184889868, + "y_pos": 2917.9996386301027 + }, + { + "id": 618, + "x_pos": -413.5, + "y_pos": -112.4591154034897 + }, + { + "id": 616, + "x_pos": -149, + "y_pos": 163 + }, + { + "id": 587, + "x_pos": -1647.5038235572688, + "y_pos": 2969.50626374489 + }, + { + "id": 583, + "x_pos": -1860.5026218678413, + "y_pos": 2668.0001204566324 + }, + { + "id": 566, + "x_pos": -1797.9993445330397, + "y_pos": 2645.002047762752 + }, + { + "id": 560, + "x_pos": -1852.5, + "y_pos": 2076.5 + }, + { + "id": 513, + "x_pos": -2062.5, + "y_pos": 2018.5 + }, + { + "id": 487, + "x_pos": -1623, + "y_pos": 2995 + }, + { + "id": 479, + "x_pos": -1533.999126044053, + "y_pos": 3107.5038546122405 + }, + { + "id": 471, + "x_pos": -1840, + "y_pos": 2980.5 + }, + { + "id": 458, + "x_pos": -46.5, + "y_pos": 2402 + }, + { + "id": 443, + "x_pos": 98, + "y_pos": 2591.5 + }, + { + "id": 440, + "x_pos": 41.5, + "y_pos": 2687.5 + }, + { + "id": 433, + "x_pos": 74.5, + "y_pos": 2766 + }, + { + "id": 372, + "x_pos": -1774.0004369779735, + "y_pos": 3213.9990363469396 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/5d28b68268829ef9673d3f41d769bc5a_5453055352953307529.png" + }, + "172": { + "name": "Iron Chunk", + "clear_name": "IronChunk", + "points": [ + { + "id": 26161, + "x_pos": -2723.800003051758, + "y_pos": 3093.2621121081784 + }, + { + "id": 26160, + "x_pos": -2723.050003051758, + "y_pos": 3086.5070047441586 + }, + { + "id": 26149, + "x_pos": -2645.7999877929688, + "y_pos": 2812.973874952985 + }, + { + "id": 26148, + "x_pos": -2661.7999877929688, + "y_pos": 2804.4674434575536 + }, + { + "id": 26147, + "x_pos": -2652.2999877929688, + "y_pos": 2793.4591203458185 + }, + { + "id": 26138, + "x_pos": -2411.4999389648438, + "y_pos": 2907.2966141632814 + }, + { + "id": 26137, + "x_pos": -2397.4999389648438, + "y_pos": 2907.2966141632814 + }, + { + "id": 26132, + "x_pos": -2380.9000244140625, + "y_pos": 3036.2137558208888 + }, + { + "id": 26131, + "x_pos": -2373.9000244140625, + "y_pos": 3032.210729234803 + }, + { + "id": 24737, + "x_pos": -781.5, + "y_pos": -40.25 + }, + { + "id": 20079, + "x_pos": 589.5617065429688, + "y_pos": 235.38143920898438 + }, + { + "id": 20078, + "x_pos": 582.6285400390625, + "y_pos": 241.97152709960938 + }, + { + "id": 20077, + "x_pos": 635.675537109375, + "y_pos": 244.3359375 + }, + { + "id": 20076, + "x_pos": 570, + "y_pos": 212 + }, + { + "id": 20075, + "x_pos": 477.37890625, + "y_pos": 190.6176300048828 + }, + { + "id": 20074, + "x_pos": 347.85113525390625, + "y_pos": 205.9241943359375 + }, + { + "id": 20073, + "x_pos": 359.707763671875, + "y_pos": 260.57582092285156 + }, + { + "id": 19062, + "x_pos": 2216.5, + "y_pos": 8393.5 + }, + { + "id": 19061, + "x_pos": 2216.5, + "y_pos": 8401 + }, + { + "id": 19060, + "x_pos": 2513.5, + "y_pos": 8445 + }, + { + "id": 19059, + "x_pos": 2162.747053346615, + "y_pos": 8534.262423150383 + }, + { + "id": 19058, + "x_pos": 2157.000534012781, + "y_pos": 8543.833441065022 + }, + { + "id": 19057, + "x_pos": 2175.0870135494133, + "y_pos": 8579.942444838945 + }, + { + "id": 19056, + "x_pos": 1940.5, + "y_pos": 8586 + }, + { + "id": 19055, + "x_pos": 1935.5, + "y_pos": 8587 + }, + { + "id": 19053, + "x_pos": 1905.5, + "y_pos": 8620.5 + }, + { + "id": 19052, + "x_pos": 2215.5, + "y_pos": 8631.5 + }, + { + "id": 19051, + "x_pos": 2210.5, + "y_pos": 8628.5 + }, + { + "id": 19050, + "x_pos": 2013, + "y_pos": 8704.5 + }, + { + "id": 19049, + "x_pos": 2012, + "y_pos": 8706.5 + }, + { + "id": 19048, + "x_pos": 1965, + "y_pos": 9064 + }, + { + "id": 19047, + "x_pos": 1965, + "y_pos": 9065 + }, + { + "id": 19046, + "x_pos": 1818.5, + "y_pos": 8960 + }, + { + "id": 19045, + "x_pos": 1822.5, + "y_pos": 8960 + }, + { + "id": 19044, + "x_pos": 1845, + "y_pos": 8843 + }, + { + "id": 19043, + "x_pos": 1841, + "y_pos": 8843 + }, + { + "id": 19042, + "x_pos": 1781.6044719341135, + "y_pos": 8789.471443254246 + }, + { + "id": 19041, + "x_pos": 1775.1010008510366, + "y_pos": 8783.969833577188 + }, + { + "id": 19040, + "x_pos": 1720, + "y_pos": 8718.5 + }, + { + "id": 19039, + "x_pos": 1722.5, + "y_pos": 8719 + }, + { + "id": 19038, + "x_pos": 1674.1274170930647, + "y_pos": 8642.932549993599 + }, + { + "id": 19037, + "x_pos": 1674.3328058400966, + "y_pos": 8644.00176220174 + }, + { + "id": 19036, + "x_pos": 1604.9644067780082, + "y_pos": 8510.239674700033 + }, + { + "id": 19035, + "x_pos": 1605.965167477072, + "y_pos": 8505.738353048728 + }, + { + "id": 19034, + "x_pos": 1765.1338830351015, + "y_pos": 8380.44356375448 + }, + { + "id": 19033, + "x_pos": 1759.6232332482177, + "y_pos": 8378.943123204044 + }, + { + "id": 19032, + "x_pos": 1804.000760699064, + "y_pos": 8287.00088110087 + }, + { + "id": 19031, + "x_pos": 1802.663550298561, + "y_pos": 8285.918158679382 + }, + { + "id": 19030, + "x_pos": 1925.6338830351015, + "y_pos": 8279.419774030977 + }, + { + "id": 19029, + "x_pos": 1923.6323616369755, + "y_pos": 8283.921095682283 + }, + { + "id": 19028, + "x_pos": 1751.6247546463437, + "y_pos": 8112.369110730926 + }, + { + "id": 19027, + "x_pos": 1756.6285581416596, + "y_pos": 8112.369110730926 + }, + { + "id": 18391, + "x_pos": 3074.699951171875, + "y_pos": 6785.901695478964 + }, + { + "id": 18382, + "x_pos": 296.8000183105469, + "y_pos": 6236.961108140704 + }, + { + "id": 18381, + "x_pos": 295.5, + "y_pos": 6240.272533441432 + }, + { + "id": 18378, + "x_pos": 295.300048828125, + "y_pos": 6252.064233847039 + }, + { + "id": 18377, + "x_pos": 292, + "y_pos": 6254.416706157039 + }, + { + "id": 18374, + "x_pos": 147.43474734576648, + "y_pos": 5949.306188773704 + }, + { + "id": 18373, + "x_pos": 146.85569292388936, + "y_pos": 5955.8688684499975 + }, + { + "id": 18370, + "x_pos": 170.81010146559765, + "y_pos": 5963.477875430788 + }, + { + "id": 18362, + "x_pos": -129.10000610351562, + "y_pos": 6151.657073394104 + }, + { + "id": 17990, + "x_pos": 3801, + "y_pos": 5006.5 + }, + { + "id": 17869, + "x_pos": 3577, + "y_pos": 4675.5 + }, + { + "id": 17868, + "x_pos": 3584, + "y_pos": 4677.5 + }, + { + "id": 17867, + "x_pos": 3571.5, + "y_pos": 4682.5 + }, + { + "id": 17866, + "x_pos": 3581, + "y_pos": 4680 + }, + { + "id": 17865, + "x_pos": 3582.5, + "y_pos": 4682 + }, + { + "id": 17862, + "x_pos": 3591, + "y_pos": 5477.5 + }, + { + "id": 17861, + "x_pos": 3988, + "y_pos": 5497 + }, + { + "id": 17860, + "x_pos": 3976, + "y_pos": 5504 + }, + { + "id": 17853, + "x_pos": 2733, + "y_pos": 5505.5 + }, + { + "id": 17852, + "x_pos": 2722.5, + "y_pos": 5514.5 + }, + { + "id": 17851, + "x_pos": 2704.5, + "y_pos": 5518.5 + }, + { + "id": 17850, + "x_pos": 2713, + "y_pos": 5516 + }, + { + "id": 17849, + "x_pos": 2722, + "y_pos": 5517 + }, + { + "id": 17845, + "x_pos": 2805, + "y_pos": 5556.5 + }, + { + "id": 17844, + "x_pos": 2807, + "y_pos": 5575.5 + }, + { + "id": 17843, + "x_pos": 2815, + "y_pos": 5579 + }, + { + "id": 17834, + "x_pos": 2231, + "y_pos": 5958 + }, + { + "id": 17833, + "x_pos": 2244, + "y_pos": 5956.5 + }, + { + "id": 17832, + "x_pos": 2236, + "y_pos": 5961 + }, + { + "id": 17830, + "x_pos": 2233, + "y_pos": 5970.5 + }, + { + "id": 17825, + "x_pos": 3817, + "y_pos": 6750.5 + }, + { + "id": 17822, + "x_pos": 3384, + "y_pos": 7369.5 + }, + { + "id": 17016, + "x_pos": 3595.285675048828, + "y_pos": 7311.714324951172 + }, + { + "id": 17015, + "x_pos": 3597.6857299804688, + "y_pos": 7315.571441650391 + }, + { + "id": 17014, + "x_pos": 3383, + "y_pos": 7365 + }, + { + "id": 17009, + "x_pos": 3818.5, + "y_pos": 6762.5 + }, + { + "id": 17006, + "x_pos": 3127.3544311523438, + "y_pos": 6628.950653076172 + }, + { + "id": 17004, + "x_pos": 3113.8997802734375, + "y_pos": 6628.788421630859 + }, + { + "id": 17002, + "x_pos": 3032.591094970703, + "y_pos": 6719.357452392578 + }, + { + "id": 17000, + "x_pos": 3031.907012939453, + "y_pos": 6721.558074951172 + }, + { + "id": 16999, + "x_pos": 553.1943969726562, + "y_pos": 6089.642517089844 + }, + { + "id": 16998, + "x_pos": 556.1999816894531, + "y_pos": 6097.5428466796875 + }, + { + "id": 16997, + "x_pos": 446.64495849609375, + "y_pos": 6168.523651123047 + }, + { + "id": 16996, + "x_pos": 447.27093505859375, + "y_pos": 6176.5184326171875 + }, + { + "id": 16995, + "x_pos": 299.699951171875, + "y_pos": 6247.757171630859 + }, + { + "id": 16994, + "x_pos": 299.5883483886719, + "y_pos": 6251.110214233398 + }, + { + "id": 16993, + "x_pos": -132.07815551757812, + "y_pos": 6137.564315795898 + }, + { + "id": 16992, + "x_pos": -132.98828125, + "y_pos": 6142.085144042969 + }, + { + "id": 15778, + "x_pos": -2255.0999755859375, + "y_pos": 1076.483507720774 + }, + { + "id": 15777, + "x_pos": -2243.199981689453, + "y_pos": 1096.4877445758848 + }, + { + "id": 15776, + "x_pos": -2287.2000122070312, + "y_pos": 1060.296054559631 + }, + { + "id": 15775, + "x_pos": -1090, + "y_pos": 793.6619060116491 + }, + { + "id": 15774, + "x_pos": -1097.2000427246094, + "y_pos": 795.5687224035996 + }, + { + "id": 15773, + "x_pos": -1094.7000122070312, + "y_pos": 798.0416303490924 + }, + { + "id": 15772, + "x_pos": -1983.199951171875, + "y_pos": 1056.8690978308946 + }, + { + "id": 15771, + "x_pos": -1989.9000244140625, + "y_pos": 1054.358406405555 + }, + { + "id": 15421, + "x_pos": -412.99993896484375, + "y_pos": 1595.0605120403934 + }, + { + "id": 15351, + "x_pos": 2004.1001748164217, + "y_pos": 6129.4004515367615 + }, + { + "id": 15350, + "x_pos": 2005.6052362808305, + "y_pos": 6132.094941438143 + }, + { + "id": 15349, + "x_pos": 2014.8005244492642, + "y_pos": 6139.0995484632385 + }, + { + "id": 15348, + "x_pos": 2001, + "y_pos": 6123 + }, + { + "id": 14571, + "x_pos": 1993.6020170240017, + "y_pos": 5969.800903073523 + }, + { + "id": 14570, + "x_pos": 1994.4004966170169, + "y_pos": 5969.800933626017 + }, + { + "id": 14569, + "x_pos": 2001.9949727179628, + "y_pos": 5974.10641317214 + }, + { + "id": 14568, + "x_pos": 3427, + "y_pos": 4880 + }, + { + "id": 14534, + "x_pos": 3582, + "y_pos": 5473 + }, + { + "id": 14533, + "x_pos": 3585, + "y_pos": 5474.5 + }, + { + "id": 14532, + "x_pos": 3588, + "y_pos": 5470.5 + }, + { + "id": 14267, + "x_pos": 3565, + "y_pos": 5311.5 + }, + { + "id": 14266, + "x_pos": 3575.5, + "y_pos": 5314.5 + }, + { + "id": 14263, + "x_pos": 3555, + "y_pos": 5318.5 + }, + { + "id": 14066, + "x_pos": 18, + "y_pos": 475 + }, + { + "id": 14065, + "x_pos": 3, + "y_pos": 481.5 + }, + { + "id": 14064, + "x_pos": 3, + "y_pos": 485.5 + }, + { + "id": 14063, + "x_pos": 12.5, + "y_pos": 497 + }, + { + "id": 14062, + "x_pos": 0.5, + "y_pos": 523 + }, + { + "id": 14061, + "x_pos": -29.5, + "y_pos": 410 + }, + { + "id": 14060, + "x_pos": 422.5, + "y_pos": 38.5 + }, + { + "id": 13923, + "x_pos": 3800.5, + "y_pos": 5000.5 + }, + { + "id": 13419, + "x_pos": -9.5, + "y_pos": 661.5 + }, + { + "id": 13418, + "x_pos": -8.5, + "y_pos": 660.5 + }, + { + "id": 13417, + "x_pos": -10.5, + "y_pos": 668 + }, + { + "id": 13416, + "x_pos": 4.5, + "y_pos": 709 + }, + { + "id": 13415, + "x_pos": 1.5, + "y_pos": 707.5 + }, + { + "id": 13414, + "x_pos": -249, + "y_pos": 470.5 + }, + { + "id": 11894, + "x_pos": 812, + "y_pos": 397.3572082519531 + }, + { + "id": 11893, + "x_pos": 815.9901428222656, + "y_pos": 402.20335388183594 + }, + { + "id": 11892, + "x_pos": 810.1683959960938, + "y_pos": 406.0055847167969 + }, + { + "id": 11891, + "x_pos": 762, + "y_pos": 399 + }, + { + "id": 11890, + "x_pos": 715, + "y_pos": 378 + }, + { + "id": 11889, + "x_pos": 829.5, + "y_pos": 372 + }, + { + "id": 11888, + "x_pos": 688.8213500976562, + "y_pos": 300.52069091796875 + }, + { + "id": 11887, + "x_pos": 873.6193237304688, + "y_pos": 299.5231628417969 + }, + { + "id": 11886, + "x_pos": 933.8000183105469, + "y_pos": 187.7857666015625 + }, + { + "id": 11812, + "x_pos": -2188.5, + "y_pos": 1115 + }, + { + "id": 11639, + "x_pos": -1684, + "y_pos": 2080 + }, + { + "id": 11638, + "x_pos": -1673, + "y_pos": 2087 + }, + { + "id": 11051, + "x_pos": 887, + "y_pos": -147 + }, + { + "id": 11050, + "x_pos": 897, + "y_pos": -145.5 + }, + { + "id": 11049, + "x_pos": 903, + "y_pos": -141.5 + }, + { + "id": 10937, + "x_pos": -819.5, + "y_pos": 2218 + }, + { + "id": 10936, + "x_pos": -818.5, + "y_pos": 2216.5 + }, + { + "id": 10935, + "x_pos": -817.5, + "y_pos": 2215 + }, + { + "id": 10933, + "x_pos": -280.5, + "y_pos": 479 + }, + { + "id": 10900, + "x_pos": -928, + "y_pos": 826 + }, + { + "id": 10899, + "x_pos": -926.5, + "y_pos": 829.5 + }, + { + "id": 10873, + "x_pos": 562.0803774270407, + "y_pos": 48.31019903840934 + }, + { + "id": 10859, + "x_pos": 900.5, + "y_pos": -142 + }, + { + "id": 10858, + "x_pos": 895, + "y_pos": -147 + }, + { + "id": 10857, + "x_pos": 884, + "y_pos": -142 + }, + { + "id": 10856, + "x_pos": 891.0054477947588, + "y_pos": -135.40743785511359 + }, + { + "id": 10855, + "x_pos": 779.447533244439, + "y_pos": -131.07361541193177 + }, + { + "id": 10854, + "x_pos": 770.7765217253036, + "y_pos": -38.38566228693162 + }, + { + "id": 10853, + "x_pos": 809.6825137600408, + "y_pos": 1.0965845170453576 + }, + { + "id": 10663, + "x_pos": 1007, + "y_pos": 74.5 + }, + { + "id": 10662, + "x_pos": 1004.5, + "y_pos": 78.5 + }, + { + "id": 10661, + "x_pos": 905.0393221744571, + "y_pos": 106.5173182298131 + }, + { + "id": 10660, + "x_pos": 1027.5593695571288, + "y_pos": -121.37450882123267 + }, + { + "id": 10659, + "x_pos": 1023.3693915661224, + "y_pos": -116.80554247694317 + }, + { + "id": 10658, + "x_pos": 957.3576540629556, + "y_pos": -286.4424187725631 + }, + { + "id": 10657, + "x_pos": 1897.5, + "y_pos": 623.5 + }, + { + "id": 10656, + "x_pos": 1894.5, + "y_pos": 624.5 + }, + { + "id": 10655, + "x_pos": 1894.5, + "y_pos": 628 + }, + { + "id": 10654, + "x_pos": 1881, + "y_pos": 646.5 + }, + { + "id": 10653, + "x_pos": 1883.5, + "y_pos": 642 + }, + { + "id": 10652, + "x_pos": 1875, + "y_pos": 652 + }, + { + "id": 10651, + "x_pos": -1288.5, + "y_pos": 2066 + }, + { + "id": 10650, + "x_pos": -1289, + "y_pos": 2067.5 + }, + { + "id": 10621, + "x_pos": -542.5, + "y_pos": 818 + }, + { + "id": 10620, + "x_pos": -546.5, + "y_pos": 826 + }, + { + "id": 10619, + "x_pos": -529.5, + "y_pos": 805 + }, + { + "id": 10618, + "x_pos": -542, + "y_pos": 842 + }, + { + "id": 10394, + "x_pos": 1384.0484881552256, + "y_pos": 697.7131073680885 + }, + { + "id": 10393, + "x_pos": -1318, + "y_pos": 1436 + }, + { + "id": 10392, + "x_pos": -1304.5, + "y_pos": 1539.5 + }, + { + "id": 10391, + "x_pos": -1578.5, + "y_pos": 1295 + }, + { + "id": 10390, + "x_pos": -1586.5, + "y_pos": 1142.5 + }, + { + "id": 9865, + "x_pos": 1367.4999389648438, + "y_pos": 748.3294382840213 + }, + { + "id": 9864, + "x_pos": 1267, + "y_pos": 774.5913259495574 + }, + { + "id": 9863, + "x_pos": 1308.3000183105469, + "y_pos": 860.231432948035 + }, + { + "id": 9862, + "x_pos": 1072.7000122070312, + "y_pos": 958.3370901873336 + }, + { + "id": 9861, + "x_pos": 1074.800048828125, + "y_pos": 961.7725487226107 + }, + { + "id": 9860, + "x_pos": 1012.8999938964844, + "y_pos": 926.6159419133851 + }, + { + "id": 9859, + "x_pos": 1016.3999633789062, + "y_pos": 931.4306839855599 + }, + { + "id": 9858, + "x_pos": -862.8000183105469, + "y_pos": 2582.4743141017734 + }, + { + "id": 9857, + "x_pos": -874.5, + "y_pos": 2584.160305694103 + }, + { + "id": 9856, + "x_pos": -608.3999938964844, + "y_pos": 2509.1826671802937 + }, + { + "id": 9855, + "x_pos": -606.2000122070312, + "y_pos": 2510.870508215061 + }, + { + "id": 9854, + "x_pos": -600, + "y_pos": 2512.634627436466 + }, + { + "id": 9853, + "x_pos": -618, + "y_pos": 2511.158104700591 + }, + { + "id": 9852, + "x_pos": -788.1000366210938, + "y_pos": 2143.833419954667 + }, + { + "id": 9851, + "x_pos": -783.5, + "y_pos": 2148.168376003646 + }, + { + "id": 9850, + "x_pos": -786.8999938964844, + "y_pos": 2158.309239588396 + }, + { + "id": 9849, + "x_pos": -791, + "y_pos": 2156.4937332893596 + }, + { + "id": 9848, + "x_pos": -1047.5, + "y_pos": 2202.603813527303 + }, + { + "id": 9847, + "x_pos": -1048.800048828125, + "y_pos": 2209.477982424294 + }, + { + "id": 9846, + "x_pos": -1048.5, + "y_pos": 2212.6478333975365 + }, + { + "id": 9845, + "x_pos": -1100.8000183105469, + "y_pos": 2180.1892854420075 + }, + { + "id": 9844, + "x_pos": -1101.1000061035156, + "y_pos": 2165.3987542984614 + }, + { + "id": 9843, + "x_pos": -1115, + "y_pos": 2183.6537027135673 + }, + { + "id": 9842, + "x_pos": -1099.5, + "y_pos": 2183.072235391277 + }, + { + "id": 9841, + "x_pos": -1157.4000244140625, + "y_pos": 2172.6518761928974 + }, + { + "id": 9840, + "x_pos": -1160.800048828125, + "y_pos": 2179.4780129866504 + }, + { + "id": 9839, + "x_pos": -1149.6000366210938, + "y_pos": 2151.7270538827797 + }, + { + "id": 9838, + "x_pos": -1193.5999755859375, + "y_pos": 1959.7868628210263 + }, + { + "id": 9837, + "x_pos": -1192.5999755859375, + "y_pos": 1962.6716545721456 + }, + { + "id": 9836, + "x_pos": -1190.9000244140625, + "y_pos": 1966.573718001464 + }, + { + "id": 9835, + "x_pos": -1207.4999694824219, + "y_pos": 1894.3620634326762 + }, + { + "id": 9834, + "x_pos": -1247.3999938964844, + "y_pos": 1843.2138479217092 + }, + { + "id": 9833, + "x_pos": -1217.5, + "y_pos": 1880.158838365095 + }, + { + "id": 9832, + "x_pos": -1261, + "y_pos": 1818.4317768417259 + }, + { + "id": 9831, + "x_pos": -1254, + "y_pos": 1819.5693465767981 + }, + { + "id": 9830, + "x_pos": -1115.5, + "y_pos": 863.5421857089746 + }, + { + "id": 9829, + "x_pos": -1112.4000244140625, + "y_pos": 864.4691784502465 + }, + { + "id": 9827, + "x_pos": 693.699951171875, + "y_pos": -205.7560565524518 + }, + { + "id": 9826, + "x_pos": 692.2000122070312, + "y_pos": -194.72817730130328 + }, + { + "id": 9825, + "x_pos": 682.6000061035156, + "y_pos": -197.51979366042679 + }, + { + "id": 9824, + "x_pos": 657, + "y_pos": -199.56677111044473 + }, + { + "id": 9823, + "x_pos": 652.7000122070312, + "y_pos": -194.42479938835004 + }, + { + "id": 9822, + "x_pos": 649.699951171875, + "y_pos": -189.5249445931331 + }, + { + "id": 9821, + "x_pos": 692.9000244140625, + "y_pos": -39.550286580874854 + }, + { + "id": 9820, + "x_pos": 448, + "y_pos": 619.5429346546571 + }, + { + "id": 9819, + "x_pos": 452.60003662109375, + "y_pos": 622.3719602628898 + }, + { + "id": 9818, + "x_pos": 627.1999816894531, + "y_pos": 740.7149866214122 + }, + { + "id": 9817, + "x_pos": 633.5999755859375, + "y_pos": 744.3617042410142 + }, + { + "id": 9816, + "x_pos": 620.7999877929688, + "y_pos": 754.6434314105131 + }, + { + "id": 9815, + "x_pos": 623.0999755859375, + "y_pos": 746.2842797140843 + }, + { + "id": 9814, + "x_pos": 626.5999755859375, + "y_pos": 748.7710890341928 + }, + { + "id": 9813, + "x_pos": 633.5999145507812, + "y_pos": 749.869040886053 + }, + { + "id": 9812, + "x_pos": 624.6000366210938, + "y_pos": 756.3705234962395 + }, + { + "id": 9811, + "x_pos": 635.3999633789062, + "y_pos": 754.9655177683167 + }, + { + "id": 9810, + "x_pos": 1181.6000671386719, + "y_pos": 950.9145280852954 + }, + { + "id": 9809, + "x_pos": 1172.2999877929688, + "y_pos": 957.1768207860305 + }, + { + "id": 9808, + "x_pos": 1030.0000610351562, + "y_pos": 1006.0707986246266 + }, + { + "id": 9807, + "x_pos": 1023.7999877929688, + "y_pos": 1003.8484982799437 + }, + { + "id": 9806, + "x_pos": -895.4000854492188, + "y_pos": 673.3734275918978 + }, + { + "id": 9805, + "x_pos": -899.0999755859375, + "y_pos": 669.7094688564539 + }, + { + "id": 9804, + "x_pos": -926.5001220703125, + "y_pos": 715.4057011894802 + }, + { + "id": 9803, + "x_pos": -913.7000122070312, + "y_pos": 709.2586014564476 + }, + { + "id": 9802, + "x_pos": -747, + "y_pos": 1269.5693312956191 + }, + { + "id": 9801, + "x_pos": -753.2000122070312, + "y_pos": 1259.9835154704301 + }, + { + "id": 9800, + "x_pos": -753.8999633789062, + "y_pos": 1266.1768207860305 + }, + { + "id": 9799, + "x_pos": -751.800048828125, + "y_pos": 1268.2710890341923 + }, + { + "id": 9798, + "x_pos": -619.3999633789062, + "y_pos": 1420.2875506419941 + }, + { + "id": 9797, + "x_pos": -613.5, + "y_pos": 1420.9174627433113 + }, + { + "id": 9796, + "x_pos": -616.3999938964844, + "y_pos": 1438.7732900277042 + }, + { + "id": 9795, + "x_pos": -609, + "y_pos": 1434.162506687615 + }, + { + "id": 9794, + "x_pos": -601.4999389648438, + "y_pos": 1434.7688727595023 + }, + { + "id": 9793, + "x_pos": -598, + "y_pos": 1421.570783343448 + }, + { + "id": 9792, + "x_pos": -603.4000244140625, + "y_pos": 1419.6749789841815 + }, + { + "id": 9791, + "x_pos": -511.800048828125, + "y_pos": 1347.4335728000397 + }, + { + "id": 9790, + "x_pos": 124.10000610351562, + "y_pos": 571.455254105851 + }, + { + "id": 9789, + "x_pos": 132.39996337890625, + "y_pos": 573.7710966747818 + }, + { + "id": 9788, + "x_pos": -353, + "y_pos": 359.5 + }, + { + "id": 9787, + "x_pos": -353, + "y_pos": 361.5 + }, + { + "id": 9786, + "x_pos": -359, + "y_pos": 365 + }, + { + "id": 9785, + "x_pos": -375.5, + "y_pos": 361 + }, + { + "id": 9784, + "x_pos": -363.5, + "y_pos": 369.5 + }, + { + "id": 9783, + "x_pos": -308.4999084472656, + "y_pos": 725.0414520444706 + }, + { + "id": 9782, + "x_pos": -1685, + "y_pos": 1699.9354528048352 + }, + { + "id": 9781, + "x_pos": -865, + "y_pos": 1904.3191440591982 + }, + { + "id": 9780, + "x_pos": -872.5999755859375, + "y_pos": 1901.206159725597 + }, + { + "id": 9779, + "x_pos": -881, + "y_pos": 1906.1665418423863 + }, + { + "id": 9777, + "x_pos": 650.7999877929688, + "y_pos": -367.42149025749313 + }, + { + "id": 9776, + "x_pos": 383.5, + "y_pos": -359.2435842558857 + }, + { + "id": 9775, + "x_pos": 649.5, + "y_pos": -364.7355139463425 + }, + { + "id": 9774, + "x_pos": 381, + "y_pos": -360.8668398925415 + }, + { + "id": 9773, + "x_pos": 696.1999816894531, + "y_pos": 957.630943832768 + }, + { + "id": 9772, + "x_pos": 693, + "y_pos": 960.2380741315169 + }, + { + "id": 9771, + "x_pos": 703, + "y_pos": 966.7476117700676 + }, + { + "id": 9770, + "x_pos": 296.20001220703125, + "y_pos": 354.8576614456533 + }, + { + "id": 9769, + "x_pos": -159.20001220703125, + "y_pos": 166.73037829481518 + }, + { + "id": 9768, + "x_pos": -150.60003662109375, + "y_pos": 169.5935422242478 + }, + { + "id": 9767, + "x_pos": -109.5, + "y_pos": 284.21239587388027 + }, + { + "id": 9766, + "x_pos": -105, + "y_pos": 287.2167978609036 + }, + { + "id": 9765, + "x_pos": -118.20001220703125, + "y_pos": 288.89326709586066 + }, + { + "id": 9764, + "x_pos": -114, + "y_pos": 289.720466183423 + }, + { + "id": 9763, + "x_pos": -25.199951171875, + "y_pos": 626.4776155920417 + }, + { + "id": 9762, + "x_pos": -215, + "y_pos": 440.5 + }, + { + "id": 9761, + "x_pos": -247.79995727539062, + "y_pos": 142.2850133785878 + }, + { + "id": 9760, + "x_pos": -316.20001220703125, + "y_pos": 19.454879633010023 + }, + { + "id": 9758, + "x_pos": 744, + "y_pos": 629 + }, + { + "id": 9753, + "x_pos": 727.5, + "y_pos": 629 + }, + { + "id": 9752, + "x_pos": 718, + "y_pos": 630 + }, + { + "id": 9751, + "x_pos": 635.5, + "y_pos": 637.5 + }, + { + "id": 9750, + "x_pos": 610.5, + "y_pos": 656.5 + }, + { + "id": 9749, + "x_pos": 598.5, + "y_pos": 609 + }, + { + "id": 9748, + "x_pos": 583, + "y_pos": 645.5 + }, + { + "id": 9747, + "x_pos": 558.5, + "y_pos": 660.5 + }, + { + "id": 9746, + "x_pos": 489, + "y_pos": 664 + }, + { + "id": 9745, + "x_pos": 471.5, + "y_pos": 679 + }, + { + "id": 9744, + "x_pos": 442, + "y_pos": 665.6999159367247 + }, + { + "id": 9743, + "x_pos": 449, + "y_pos": 669.4453343538698 + }, + { + "id": 9742, + "x_pos": 433.5, + "y_pos": 682 + }, + { + "id": 9741, + "x_pos": 425.20001220703125, + "y_pos": 626.3198930048811 + }, + { + "id": 9740, + "x_pos": 521.5, + "y_pos": 576 + }, + { + "id": 9739, + "x_pos": 532.5, + "y_pos": 581.5 + }, + { + "id": 9738, + "x_pos": 591, + "y_pos": 563.5 + }, + { + "id": 9737, + "x_pos": 624, + "y_pos": 543.5 + }, + { + "id": 9736, + "x_pos": 628.5, + "y_pos": 546 + }, + { + "id": 9735, + "x_pos": 636, + "y_pos": 548 + }, + { + "id": 9734, + "x_pos": 621, + "y_pos": 548 + }, + { + "id": 9733, + "x_pos": 626, + "y_pos": 548.5 + }, + { + "id": 9732, + "x_pos": 621, + "y_pos": 550.5 + }, + { + "id": 9731, + "x_pos": 525.7999877929688, + "y_pos": 479.5158043491915 + }, + { + "id": 9730, + "x_pos": 442.5, + "y_pos": 503.6537027135678 + }, + { + "id": 9729, + "x_pos": 422.5, + "y_pos": 496.2292701574702 + }, + { + "id": 9728, + "x_pos": 392, + "y_pos": 478.2028582353296 + }, + { + "id": 9727, + "x_pos": 383.29998779296875, + "y_pos": 486.0711730974681 + }, + { + "id": 9726, + "x_pos": 381.29998779296875, + "y_pos": 500.1570118444247 + }, + { + "id": 9725, + "x_pos": 381, + "y_pos": 505.23880779602086 + }, + { + "id": 9724, + "x_pos": 366.4000244140625, + "y_pos": 589.0770347729099 + }, + { + "id": 9723, + "x_pos": 312.1000061035156, + "y_pos": 510.85617119487733 + }, + { + "id": 9722, + "x_pos": 340.20001220703125, + "y_pos": 416.2435842558857 + }, + { + "id": 9721, + "x_pos": 392.5, + "y_pos": 72.22486817044683 + }, + { + "id": 9720, + "x_pos": 386.6999816894531, + "y_pos": 93.95047764598667 + }, + { + "id": 9719, + "x_pos": 393, + "y_pos": 100.17424531967708 + }, + { + "id": 9718, + "x_pos": 383, + "y_pos": 101.21826518991156 + }, + { + "id": 9717, + "x_pos": 384.6000061035156, + "y_pos": 104.62324799606631 + }, + { + "id": 9715, + "x_pos": 403.5, + "y_pos": 82.20359189983355 + }, + { + "id": 9714, + "x_pos": -675.5, + "y_pos": 474.72193351243095 + }, + { + "id": 9713, + "x_pos": -675.5, + "y_pos": 478.2270691639583 + }, + { + "id": 9712, + "x_pos": -666.5, + "y_pos": 479.21021780213687 + }, + { + "id": 9711, + "x_pos": -655.3999938964844, + "y_pos": 1101.719747800098 + }, + { + "id": 9710, + "x_pos": -652.5, + "y_pos": 1105.221933512431 + }, + { + "id": 9709, + "x_pos": -662, + "y_pos": 1106.223400841439 + }, + { + "id": 9708, + "x_pos": -659, + "y_pos": 1110.2292701574702 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/9cee1c61743200ad2e5cfcb0ab74fe2e_3187639542103597221.png" + }, + "18": { + "name": "Seelie", + "clear_name": "Seelie", + "points": [ + { + "id": 26073, + "x_pos": -2581.8999938964844, + "y_pos": 2840.200398443798 + }, + { + "id": 26072, + "x_pos": -2546.050003051758, + "y_pos": 3019.1497931461545 + }, + { + "id": 26071, + "x_pos": -2643.500015258789, + "y_pos": 3038.9976579366376 + }, + { + "id": 26070, + "x_pos": -2654.5, + "y_pos": 3159.75 + }, + { + "id": 26069, + "x_pos": -2465.800003051758, + "y_pos": 3121.0516090390847 + }, + { + "id": 26068, + "x_pos": -2380.6000061035156, + "y_pos": 2920.3501915899515 + }, + { + "id": 26067, + "x_pos": -2479.25, + "y_pos": 2745.9001429905284 + }, + { + "id": 26066, + "x_pos": -2298.8999938964844, + "y_pos": 3160.003011224323 + }, + { + "id": 26065, + "x_pos": -2209.050003051758, + "y_pos": 2503.200383179903 + }, + { + "id": 20311, + "x_pos": -317, + "y_pos": -182 + }, + { + "id": 19252, + "x_pos": 1829.5, + "y_pos": 8283 + }, + { + "id": 19251, + "x_pos": 1844.5, + "y_pos": 8338.5 + }, + { + "id": 19250, + "x_pos": 1785, + "y_pos": 8303.5 + }, + { + "id": 18749, + "x_pos": 2469, + "y_pos": 8555 + }, + { + "id": 18739, + "x_pos": 1630.5, + "y_pos": 8685 + }, + { + "id": 18736, + "x_pos": 1976, + "y_pos": 8515 + }, + { + "id": 18716, + "x_pos": 1948.5, + "y_pos": 8314.5 + }, + { + "id": 18715, + "x_pos": 1942.5, + "y_pos": 8266 + }, + { + "id": 18714, + "x_pos": 1978.5, + "y_pos": 8240 + }, + { + "id": 17745, + "x_pos": -1748, + "y_pos": 2493 + }, + { + "id": 17380, + "x_pos": 205.5, + "y_pos": 6190 + }, + { + "id": 17372, + "x_pos": 3506.5, + "y_pos": 6961.5 + }, + { + "id": 17371, + "x_pos": 3503, + "y_pos": 6993.5 + }, + { + "id": 17370, + "x_pos": 3525.5, + "y_pos": 7011 + }, + { + "id": 17368, + "x_pos": 3013.5, + "y_pos": 6748.5 + }, + { + "id": 17363, + "x_pos": 206, + "y_pos": 5996.5 + }, + { + "id": 16413, + "x_pos": 3, + "y_pos": 6339 + }, + { + "id": 13945, + "x_pos": 3628, + "y_pos": 5035 + }, + { + "id": 13900, + "x_pos": 1439.5, + "y_pos": 6324.5 + }, + { + "id": 13865, + "x_pos": 4140.25, + "y_pos": 4599.25 + }, + { + "id": 13859, + "x_pos": 3598.5, + "y_pos": 5155.5 + }, + { + "id": 13856, + "x_pos": 1671, + "y_pos": 6272.5 + }, + { + "id": 13843, + "x_pos": 1623, + "y_pos": 6141.5 + }, + { + "id": 13784, + "x_pos": 2018, + "y_pos": 5770.5 + }, + { + "id": 13777, + "x_pos": 1889.5, + "y_pos": 5757 + }, + { + "id": 13776, + "x_pos": 1896.5, + "y_pos": 5821 + }, + { + "id": 13771, + "x_pos": 3479, + "y_pos": 4671 + }, + { + "id": 13768, + "x_pos": 3541, + "y_pos": 4620.5 + }, + { + "id": 13746, + "x_pos": 2533.5, + "y_pos": 5955 + }, + { + "id": 13744, + "x_pos": 2460, + "y_pos": 5909 + }, + { + "id": 13738, + "x_pos": 2272, + "y_pos": 6069 + }, + { + "id": 13737, + "x_pos": 2300.5, + "y_pos": 6092.5 + }, + { + "id": 13728, + "x_pos": 1596, + "y_pos": 5958 + }, + { + "id": 13529, + "x_pos": 2297, + "y_pos": 5784.5 + }, + { + "id": 13520, + "x_pos": 2765.5, + "y_pos": 5638.5 + }, + { + "id": 13514, + "x_pos": 3562, + "y_pos": 5257 + }, + { + "id": 13512, + "x_pos": 3757, + "y_pos": 5341.5 + }, + { + "id": 13390, + "x_pos": 3444.5, + "y_pos": 4193 + }, + { + "id": 13281, + "x_pos": 1724, + "y_pos": 6292.5 + }, + { + "id": 10627, + "x_pos": -623.5, + "y_pos": 446 + }, + { + "id": 7575, + "x_pos": 754.6449151599381, + "y_pos": 1191.9356166240937 + }, + { + "id": 7467, + "x_pos": -410.3887716493873, + "y_pos": 1412.593550963572 + }, + { + "id": 6311, + "x_pos": -1925.999566927856, + "y_pos": 2735.002415129402 + }, + { + "id": 6310, + "x_pos": -1640.499350391784, + "y_pos": 2578.001207564701 + }, + { + "id": 6309, + "x_pos": -2048.997401567135, + "y_pos": 3187.006037823504 + }, + { + "id": 6308, + "x_pos": -1231.4113970861845, + "y_pos": 2643.4468672451585 + }, + { + "id": 6307, + "x_pos": 278.500866144288, + "y_pos": 2507.506037823504 + }, + { + "id": 6306, + "x_pos": -1064.999783463928, + "y_pos": 2113.501207564701 + }, + { + "id": 6305, + "x_pos": -210.53005885367293, + "y_pos": 590.9826916646161 + }, + { + "id": 6304, + "x_pos": -1640.999566927856, + "y_pos": 1869.001207564701 + }, + { + "id": 6303, + "x_pos": 213.77547354400303, + "y_pos": 366.2830409674134 + }, + { + "id": 6302, + "x_pos": -1209, + "y_pos": 723.5 + }, + { + "id": 6301, + "x_pos": -1170.3644087585476, + "y_pos": 790.0144908684042 + }, + { + "id": 6300, + "x_pos": 125.15009915828068, + "y_pos": 414.4987925272935 + }, + { + "id": 6299, + "x_pos": 150.3426179359558, + "y_pos": 588.2101845637972 + }, + { + "id": 6298, + "x_pos": -224.3862789018258, + "y_pos": 206.05595058979907 + }, + { + "id": 6297, + "x_pos": -901.499133855712, + "y_pos": -531.498118532455 + }, + { + "id": 6296, + "x_pos": 550.5667327705378, + "y_pos": 132.85509232789582 + }, + { + "id": 1769, + "x_pos": -2416.4999721207946, + "y_pos": 2025.9970902036857 + }, + { + "id": 1768, + "x_pos": -2079.5, + "y_pos": 1664.5019398642094 + }, + { + "id": 1767, + "x_pos": -2555.999994424159, + "y_pos": 1638 + }, + { + "id": 1766, + "x_pos": -1472.499988848318, + "y_pos": 1257 + }, + { + "id": 1765, + "x_pos": -1402, + "y_pos": 1411.999030067895 + }, + { + "id": 1764, + "x_pos": -1889.5, + "y_pos": 875.9990300678951 + }, + { + "id": 1763, + "x_pos": -2139, + "y_pos": 1068.4995150339478 + }, + { + "id": 1762, + "x_pos": -2335.999988848318, + "y_pos": 1375.4970902036857 + }, + { + "id": 1761, + "x_pos": -2383.000005575841, + "y_pos": 1393.9980601357906 + }, + { + "id": 1760, + "x_pos": -2150.499988848318, + "y_pos": 1565.4985451018429 + }, + { + "id": 1759, + "x_pos": -2277.500011151682, + "y_pos": 1706.5 + }, + { + "id": 1758, + "x_pos": -2170.9999721207946, + "y_pos": 1651.4980601357906 + }, + { + "id": 1757, + "x_pos": -2485.4999776966356, + "y_pos": 1631.0038797284192 + }, + { + "id": 1756, + "x_pos": -1564.4999832724766, + "y_pos": 1340.5019398642094 + }, + { + "id": 1755, + "x_pos": -2356.000011151682, + "y_pos": 1465.5004849660522 + }, + { + "id": 1754, + "x_pos": -1833.5000167275232, + "y_pos": 1800.500969932105 + }, + { + "id": 1753, + "x_pos": -1959.999994424159, + "y_pos": 1491.0067895247334 + }, + { + "id": 1752, + "x_pos": -1867.5000111516822, + "y_pos": 1175.5004849660522 + }, + { + "id": 1751, + "x_pos": -2455.5000223033644, + "y_pos": 1714.0048496605236 + }, + { + "id": 1750, + "x_pos": -2467, + "y_pos": 1722.9985451018429 + }, + { + "id": 1749, + "x_pos": -1640.5000278792054, + "y_pos": 1693.9961202715813 + }, + { + "id": 1653, + "x_pos": -306.5, + "y_pos": -345.13540678293793 + }, + { + "id": 1640, + "x_pos": -1504, + "y_pos": 917.5 + }, + { + "id": 1622, + "x_pos": -1238, + "y_pos": 892 + }, + { + "id": 1598, + "x_pos": -1119, + "y_pos": -224.60803299675854 + }, + { + "id": 1578, + "x_pos": -1142.9998569822683, + "y_pos": 905.5021298036354 + }, + { + "id": 1572, + "x_pos": -683, + "y_pos": -302.61928563799984 + }, + { + "id": 1554, + "x_pos": -1549.4988558581472, + "y_pos": 841.0031947054526 + }, + { + "id": 1514, + "x_pos": -1328, + "y_pos": 975.0039933818161 + }, + { + "id": 1488, + "x_pos": -1576, + "y_pos": 575 + }, + { + "id": 1432, + "x_pos": -594, + "y_pos": 1585.4195871311208 + }, + { + "id": 1429, + "x_pos": -1090.4598181623205, + "y_pos": 1225.9857723434739 + }, + { + "id": 1428, + "x_pos": -667, + "y_pos": 1477.383525489743 + }, + { + "id": 1426, + "x_pos": -496.5, + "y_pos": 1611.1399241353906 + }, + { + "id": 1417, + "x_pos": -819, + "y_pos": 844 + }, + { + "id": 1412, + "x_pos": -1361.5012871595845, + "y_pos": 561.0042596072703 + }, + { + "id": 1407, + "x_pos": -405, + "y_pos": 1622.3147829858663 + }, + { + "id": 1402, + "x_pos": -604, + "y_pos": 1728.1254593686326 + }, + { + "id": 1383, + "x_pos": -1127.4994279290736, + "y_pos": 627.5047920581792 + }, + { + "id": 1382, + "x_pos": -1414.4997139645366, + "y_pos": 534.0037271563615 + }, + { + "id": 1366, + "x_pos": -1097.5, + "y_pos": -308.2355629308274 + }, + { + "id": 1365, + "x_pos": -1270.5, + "y_pos": 510 + }, + { + "id": 1332, + "x_pos": 561.4551508714057, + "y_pos": 445.45248724812745 + }, + { + "id": 1306, + "x_pos": 812.5550663309059, + "y_pos": 348.486292952819 + }, + { + "id": 1302, + "x_pos": -961.9279252081687, + "y_pos": 1076.5185180743651 + }, + { + "id": 1270, + "x_pos": -990.9997139645366, + "y_pos": 1214.5026622545438 + }, + { + "id": 1211, + "x_pos": -1039.4994279290736, + "y_pos": 1411.5029284799984 + }, + { + "id": 1199, + "x_pos": -1275, + "y_pos": 1708.2156134720772 + }, + { + "id": 1195, + "x_pos": -1108, + "y_pos": 1703.982339729414 + }, + { + "id": 1157, + "x_pos": -511, + "y_pos": 1397.6093271264112 + }, + { + "id": 1155, + "x_pos": -1477.4214894102456, + "y_pos": 426.53928365980846 + }, + { + "id": 1145, + "x_pos": -1469, + "y_pos": 155 + }, + { + "id": 1118, + "x_pos": -469.5, + "y_pos": 26.731429321531095 + }, + { + "id": 1115, + "x_pos": -466.5, + "y_pos": 53.778690414744915 + }, + { + "id": 1082, + "x_pos": -1154, + "y_pos": 1844.4195871311208 + }, + { + "id": 1062, + "x_pos": -980.5, + "y_pos": -184.19580359844122 + }, + { + "id": 1055, + "x_pos": 449.5, + "y_pos": 269.5 + }, + { + "id": 1023, + "x_pos": -402.5, + "y_pos": -361.7948268413654 + }, + { + "id": 1017, + "x_pos": 1013.5, + "y_pos": 153.5 + }, + { + "id": 986, + "x_pos": 726, + "y_pos": 17.5 + }, + { + "id": 979, + "x_pos": -831.5, + "y_pos": 2154 + }, + { + "id": 970, + "x_pos": -1037, + "y_pos": -507.5483863573379 + }, + { + "id": 932, + "x_pos": 348.37092726291576, + "y_pos": 589.9206572015023 + }, + { + "id": 925, + "x_pos": 545.1610663856973, + "y_pos": 684.408803253104 + }, + { + "id": 891, + "x_pos": -1635.9998907555064, + "y_pos": 2484.4998795433676 + }, + { + "id": 885, + "x_pos": 653, + "y_pos": -279 + }, + { + "id": 875, + "x_pos": 332, + "y_pos": -338.5 + }, + { + "id": 868, + "x_pos": 862.5, + "y_pos": -132 + }, + { + "id": 838, + "x_pos": 569, + "y_pos": -378.5 + }, + { + "id": 812, + "x_pos": -1067, + "y_pos": 2362.596514559131 + }, + { + "id": 786, + "x_pos": -1279.000873955947, + "y_pos": 2707.4986749770424 + }, + { + "id": 765, + "x_pos": -773, + "y_pos": -375.61178387717246 + }, + { + "id": 753, + "x_pos": -1363.5009832004407, + "y_pos": 2809.499156803572 + }, + { + "id": 747, + "x_pos": -1627.000873955947, + "y_pos": 2874.499397716838 + }, + { + "id": 729, + "x_pos": 1053, + "y_pos": -552 + }, + { + "id": 723, + "x_pos": 991.5, + "y_pos": -574.5 + }, + { + "id": 714, + "x_pos": -788, + "y_pos": -426.62153616624823 + }, + { + "id": 688, + "x_pos": -357.5, + "y_pos": -16.10053123593093 + }, + { + "id": 680, + "x_pos": -850, + "y_pos": 2449.9857205082935 + }, + { + "id": 662, + "x_pos": -1712.5003277334804, + "y_pos": 2709.999759086735 + }, + { + "id": 660, + "x_pos": -338.5, + "y_pos": -197.7760724392965 + }, + { + "id": 657, + "x_pos": -472.5, + "y_pos": -232.79707736961382 + }, + { + "id": 622, + "x_pos": -317, + "y_pos": -85.10728282067566 + }, + { + "id": 604, + "x_pos": -573.5, + "y_pos": -53.64404144873106 + }, + { + "id": 531, + "x_pos": -395, + "y_pos": -137.33571907871715 + }, + { + "id": 530, + "x_pos": -535, + "y_pos": 25.331202740537947 + }, + { + "id": 524, + "x_pos": -1339.9993445330397, + "y_pos": 2901.0003613698973 + }, + { + "id": 506, + "x_pos": -1819.4997815110132, + "y_pos": 2881.5 + }, + { + "id": 502, + "x_pos": -1975.9990167995595, + "y_pos": 2589.998915890307 + }, + { + "id": 485, + "x_pos": -1543.998033599119, + "y_pos": 3015.9998795433676 + }, + { + "id": 469, + "x_pos": -1445.5004369779735, + "y_pos": 3051.000240913265 + }, + { + "id": 468, + "x_pos": 735.4449031319691, + "y_pos": 928.9272427283904 + }, + { + "id": 461, + "x_pos": -287, + "y_pos": 2503.4432525832754 + }, + { + "id": 448, + "x_pos": 277, + "y_pos": 2593.261817450092 + }, + { + "id": 436, + "x_pos": 802.5, + "y_pos": 910.5 + }, + { + "id": 435, + "x_pos": -23, + "y_pos": 2691.213359619491 + }, + { + "id": 427, + "x_pos": -1259.49967226652, + "y_pos": 3078.9995181734703 + }, + { + "id": 413, + "x_pos": 989.5912536607893, + "y_pos": 1001.435145360656 + }, + { + "id": 409, + "x_pos": 1013.1873262180015, + "y_pos": 942.4669754072811 + }, + { + "id": 398, + "x_pos": -1392.4990167995593, + "y_pos": 3065.999397716838 + }, + { + "id": 388, + "x_pos": -1454.9957394647577, + "y_pos": 3236.504577352035 + }, + { + "id": 381, + "x_pos": -1861.5001092444934, + "y_pos": 3162.00144547959 + }, + { + "id": 375, + "x_pos": 1320.6271207488153, + "y_pos": 806.5045129105424 + }, + { + "id": 366, + "x_pos": 1312.0957370467931, + "y_pos": 753.4869515055079 + }, + { + "id": 363, + "x_pos": 1384.5018670150284, + "y_pos": 689.4985221674879 + }, + { + "id": 356, + "x_pos": 775.6098276885177, + "y_pos": 958.951609177876 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8de3558f991ac422463712dd095278b3_109842752079072307.png" + }, + "315": { + "name": "Geo Crystalfly", + "clear_name": "GeoCrystalfly", + "points": [ + { + "id": 25263, + "x_pos": -2499.5, + "y_pos": 2868.7409201838072 + }, + { + "id": 25262, + "x_pos": -2209.449996948242, + "y_pos": 2975.953463960812 + }, + { + "id": 25261, + "x_pos": -2483.8500061035156, + "y_pos": 3019.1533463126198 + }, + { + "id": 25260, + "x_pos": -2749.4000091552734, + "y_pos": 2984.6448044526323 + }, + { + "id": 25259, + "x_pos": -2741.1500091552734, + "y_pos": 2949.671969477524 + }, + { + "id": 25258, + "x_pos": -2405.8500061035156, + "y_pos": 3174.4681423963657 + }, + { + "id": 25257, + "x_pos": -2502.800003051758, + "y_pos": 2866.850296287261 + }, + { + "id": 25256, + "x_pos": -2210.3500061035156, + "y_pos": 2979.0043528225933 + }, + { + "id": 25255, + "x_pos": -2281.3999938964844, + "y_pos": 3112.0508736140628 + }, + { + "id": 25254, + "x_pos": -2286.4000244140625, + "y_pos": 3108.9169183877866 + }, + { + "id": 25253, + "x_pos": -2482.550003051758, + "y_pos": 3020.6547972534845 + }, + { + "id": 25252, + "x_pos": -2649.8999938964844, + "y_pos": 3200.616566004969 + }, + { + "id": 25251, + "x_pos": -2657, + "y_pos": 3199.73176493153 + }, + { + "id": 25250, + "x_pos": -2734.1500091552734, + "y_pos": 2951.6704171903866 + }, + { + "id": 25249, + "x_pos": -2401.1000061035156, + "y_pos": 3170.970858898855 + }, + { + "id": 25248, + "x_pos": -2405.1000061035156, + "y_pos": 3169.4720231142073 + }, + { + "id": 21017, + "x_pos": -1483.6453650921826, + "y_pos": 1890.7175847250774 + }, + { + "id": 21016, + "x_pos": -1354.3626012313698, + "y_pos": 2870.154737084502 + }, + { + "id": 21015, + "x_pos": -1337.5056452937229, + "y_pos": 2857.1567504955246 + }, + { + "id": 21014, + "x_pos": -1325.4337742467187, + "y_pos": 2839.8577399044007 + }, + { + "id": 21013, + "x_pos": -1325.8633603035069, + "y_pos": 2869.6422600955993 + }, + { + "id": 21012, + "x_pos": -1315.5743141577973, + "y_pos": 2861.571084295172 + }, + { + "id": 21011, + "x_pos": -1305.216538107532, + "y_pos": 2851.154706582751 + }, + { + "id": 21010, + "x_pos": 151.20608520507812, + "y_pos": 2621.4766845703125 + }, + { + "id": 21009, + "x_pos": 149.941162109375, + "y_pos": 2614.9886474609375 + }, + { + "id": 21008, + "x_pos": 202.6104736328125, + "y_pos": 2589.4649047851562 + }, + { + "id": 21007, + "x_pos": 212.31143188476562, + "y_pos": 2580.0983276367188 + }, + { + "id": 21006, + "x_pos": 223.72024536132812, + "y_pos": 2603.5555419921875 + }, + { + "id": 21005, + "x_pos": 216.9547119140625, + "y_pos": 2600.6700897216797 + }, + { + "id": 21004, + "x_pos": 205.44900512695312, + "y_pos": 2614.6290893554688 + }, + { + "id": 21003, + "x_pos": 226.39556884765625, + "y_pos": 2564.5574493408203 + }, + { + "id": 20942, + "x_pos": -1985.7911402406744, + "y_pos": 794.0165953162013 + }, + { + "id": 20941, + "x_pos": -1969.0749511489703, + "y_pos": 795.9351084466516 + }, + { + "id": 20940, + "x_pos": -1966.2182831866694, + "y_pos": 881.8618887334505 + }, + { + "id": 20939, + "x_pos": -1958.0038391741032, + "y_pos": 903.2175542233254 + }, + { + "id": 20938, + "x_pos": -2309.933045694823, + "y_pos": 964.5794429567759 + }, + { + "id": 20937, + "x_pos": -2301.930633104271, + "y_pos": 959.2907281838989 + }, + { + "id": 20936, + "x_pos": -2289.0017450791374, + "y_pos": 1062.2949227655772 + }, + { + "id": 20935, + "x_pos": -2282.430253568202, + "y_pos": 1054.2279262959519 + }, + { + "id": 20934, + "x_pos": -2189.2203162411533, + "y_pos": 1091.8618887334505 + }, + { + "id": 20933, + "x_pos": -2179.5045372057584, + "y_pos": 1096.3639631479755 + }, + { + "id": 20932, + "x_pos": -2193.432666158754, + "y_pos": 1113.5918894439274 + }, + { + "id": 20931, + "x_pos": -2182.5020940949653, + "y_pos": 1117.5207136435001 + }, + { + "id": 20930, + "x_pos": -2173.21787313036, + "y_pos": 1118.0187002324783 + }, + { + "id": 20929, + "x_pos": -2071.0718100065224, + "y_pos": 1159.7175237215743 + }, + { + "id": 20928, + "x_pos": -1995.9305720637885, + "y_pos": 1358.928915704828 + }, + { + "id": 20927, + "x_pos": -1988.1499633384228, + "y_pos": 1327.0124464871506 + }, + { + "id": 20926, + "x_pos": -2257.858762057266, + "y_pos": 1428.5794124550248 + }, + { + "id": 20925, + "x_pos": -1993.7200282658077, + "y_pos": 1561.5082976581007 + }, + { + "id": 20924, + "x_pos": -2001.7928853198127, + "y_pos": 1593.2866251074765 + }, + { + "id": 20890, + "x_pos": -364.86225221554196, + "y_pos": 1633.7320751250018 + }, + { + "id": 20889, + "x_pos": -359.14577514849225, + "y_pos": 1635.150588255452 + }, + { + "id": 20888, + "x_pos": -351.64368105352696, + "y_pos": 1635.2403727831024 + }, + { + "id": 20818, + "x_pos": -1017, + "y_pos": 962.5 + }, + { + "id": 20817, + "x_pos": -1020, + "y_pos": 958.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/efa663db3c3c109348d07b274f6c2f27_7541678193235906297.png" + }, + "302": { + "name": "Mud Frog", + "clear_name": "MudFrog", + "points": [ + { + "id": 25247, + "x_pos": -2701.1785237491845, + "y_pos": 2944.75 + }, + { + "id": 25246, + "x_pos": -2700.629683346814, + "y_pos": 2914.4999930435206 + }, + { + "id": 21567, + "x_pos": -1652.25, + "y_pos": 1723 + }, + { + "id": 20977, + "x_pos": -1686.3524454192248, + "y_pos": 1245.9144915734169 + }, + { + "id": 20976, + "x_pos": -1415.5012992164325, + "y_pos": 1284.498792435299 + }, + { + "id": 20975, + "x_pos": -1614, + "y_pos": 1085.5 + }, + { + "id": 20974, + "x_pos": -1600, + "y_pos": 1064.5 + }, + { + "id": 20973, + "x_pos": -1602, + "y_pos": 1079 + }, + { + "id": 20972, + "x_pos": -1642, + "y_pos": 1061 + }, + { + "id": 20806, + "x_pos": -974, + "y_pos": 1147.5 + }, + { + "id": 20805, + "x_pos": -621.5, + "y_pos": 771 + }, + { + "id": 20804, + "x_pos": -496, + "y_pos": 729.5 + }, + { + "id": 20803, + "x_pos": -490.5, + "y_pos": 737 + }, + { + "id": 20757, + "x_pos": 730.5, + "y_pos": 905 + }, + { + "id": 20756, + "x_pos": 727.5, + "y_pos": 913 + }, + { + "id": 20724, + "x_pos": -880, + "y_pos": -161 + }, + { + "id": 20723, + "x_pos": -789.5, + "y_pos": -177.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/7db95558e022ddfc3325d04e2b719090_2507081675898911381.png" + }, + "285": { + "name": "Red Horned Lizard", + "clear_name": "RedHornedLizard", + "points": [ + { + "id": 25245, + "x_pos": -2390.88680109767, + "y_pos": 3035.285729443175 + }, + { + "id": 23607, + "x_pos": -1041.5, + "y_pos": 689.9999847412109 + }, + { + "id": 21472, + "x_pos": 1331.5, + "y_pos": 6000.5 + }, + { + "id": 21471, + "x_pos": 1649.5, + "y_pos": 5922 + }, + { + "id": 21021, + "x_pos": -2013, + "y_pos": 2178 + }, + { + "id": 20923, + "x_pos": -993.3112182617188, + "y_pos": 2491.1170043945312 + }, + { + "id": 20922, + "x_pos": -802.2815551757812, + "y_pos": 2422.9285583496094 + }, + { + "id": 20921, + "x_pos": -808.8739929199219, + "y_pos": 2426.8389892578125 + }, + { + "id": 20920, + "x_pos": -1002.4724426269531, + "y_pos": 1940.9145812988281 + }, + { + "id": 20919, + "x_pos": -1106, + "y_pos": 1762.5 + }, + { + "id": 20918, + "x_pos": -1011.7612609863281, + "y_pos": 1679.1457824707031 + }, + { + "id": 20814, + "x_pos": -1185.5, + "y_pos": 917.5 + }, + { + "id": 20813, + "x_pos": -901, + "y_pos": 944.5 + }, + { + "id": 20714, + "x_pos": -804.8999938964844, + "y_pos": -392.96551012772716 + }, + { + "id": 20599, + "x_pos": 542, + "y_pos": 3 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/503ba3861998de072e10d086b214d252_2150181738238989287.png" + }, + "184": { + "name": "Archaic Stone", + "clear_name": "ArchaicStone", + "points": [ + { + "id": 25242, + "x_pos": -2409, + "y_pos": 3168.25 + }, + { + "id": 25235, + "x_pos": -2213.25, + "y_pos": 2970 + }, + { + "id": 25222, + "x_pos": -2578.25, + "y_pos": 2840.75 + }, + { + "id": 25221, + "x_pos": -2504.5, + "y_pos": 2753.25 + }, + { + "id": 25219, + "x_pos": -2669.5, + "y_pos": 2898 + }, + { + "id": 25218, + "x_pos": -2761, + "y_pos": 3160 + }, + { + "id": 25217, + "x_pos": -2633.25, + "y_pos": 3303.75 + }, + { + "id": 25216, + "x_pos": -2346.25, + "y_pos": 3311.25 + }, + { + "id": 25215, + "x_pos": -2687.25, + "y_pos": 3148 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220315/d0299f410db622591f8f4b2fb4b7e76f_3330541998111632995.png" + }, + "90": { + "name": "Crystal Core", + "clear_name": "CrystalCore", + "points": [ + { + "id": 25241, + "x_pos": -2210, + "y_pos": 2975.4970981182705 + }, + { + "id": 25240, + "x_pos": -2286.9000091552734, + "y_pos": 3109.900444430891 + }, + { + "id": 25239, + "x_pos": -2405.5499725341797, + "y_pos": 3169.4665173734065 + }, + { + "id": 25234, + "x_pos": -2498.550003051758, + "y_pos": 2869.5501481436304 + }, + { + "id": 25233, + "x_pos": -2282.1500091552734, + "y_pos": 3112.4520282676667 + }, + { + "id": 25232, + "x_pos": -2484.000030517578, + "y_pos": 3018.9043659035315 + }, + { + "id": 25231, + "x_pos": -2656.3999633789062, + "y_pos": 3196.5828087582904 + }, + { + "id": 25228, + "x_pos": -2401.2999725341797, + "y_pos": 3170.4657412298384 + }, + { + "id": 25214, + "x_pos": -2502.1500091552734, + "y_pos": 2867.551599084495 + }, + { + "id": 25213, + "x_pos": -2210.550003051758, + "y_pos": 2977.9004291831716 + }, + { + "id": 25212, + "x_pos": -2482.699996948242, + "y_pos": 3020.25 + }, + { + "id": 25211, + "x_pos": -2650.5000610351562, + "y_pos": 3203.0531025898654 + }, + { + "id": 25197, + "x_pos": -2739.6500091552734, + "y_pos": 2948.9225515851995 + }, + { + "id": 25196, + "x_pos": -2408.5499725341797, + "y_pos": 3173.7132187632415 + }, + { + "id": 25195, + "x_pos": -2751.1000366210938, + "y_pos": 2985.550514621679 + }, + { + "id": 25194, + "x_pos": -2729.6000366210938, + "y_pos": 2948.579231933707 + }, + { + "id": 24680, + "x_pos": -225, + "y_pos": 440.75 + }, + { + "id": 24679, + "x_pos": -222.5, + "y_pos": 448.75 + }, + { + "id": 24678, + "x_pos": -209, + "y_pos": 444.5 + }, + { + "id": 24608, + "x_pos": -1631, + "y_pos": 2985.5 + }, + { + "id": 24607, + "x_pos": 3585.5, + "y_pos": 7068 + }, + { + "id": 24606, + "x_pos": 2351, + "y_pos": 6064 + }, + { + "id": 24605, + "x_pos": 2348.5, + "y_pos": 6061 + }, + { + "id": 24604, + "x_pos": -223, + "y_pos": 1401.5 + }, + { + "id": 24603, + "x_pos": -224.5, + "y_pos": 1395.5 + }, + { + "id": 24602, + "x_pos": -234, + "y_pos": 1394 + }, + { + "id": 24601, + "x_pos": -241.5, + "y_pos": 1393 + }, + { + "id": 24600, + "x_pos": -313, + "y_pos": 1062.5 + }, + { + "id": 24599, + "x_pos": -322, + "y_pos": 1059.5 + }, + { + "id": 24598, + "x_pos": 548, + "y_pos": 1544.5 + }, + { + "id": 24597, + "x_pos": 243, + "y_pos": 1662.5 + }, + { + "id": 24596, + "x_pos": 237.5, + "y_pos": 1653.5 + }, + { + "id": 24595, + "x_pos": -1635.5, + "y_pos": 2989 + }, + { + "id": 24594, + "x_pos": -1647.5, + "y_pos": 2988.5 + }, + { + "id": 24593, + "x_pos": -1651.5, + "y_pos": 2983 + }, + { + "id": 24592, + "x_pos": -1639.5, + "y_pos": 2987.5 + }, + { + "id": 24591, + "x_pos": -1758, + "y_pos": 1669.5 + }, + { + "id": 24590, + "x_pos": -1776.5, + "y_pos": 1661 + }, + { + "id": 24589, + "x_pos": -1762.5, + "y_pos": 1641 + }, + { + "id": 24588, + "x_pos": -1929, + "y_pos": 1604 + }, + { + "id": 24587, + "x_pos": -470.5, + "y_pos": 523.5 + }, + { + "id": 24586, + "x_pos": -478.5, + "y_pos": 526.5 + }, + { + "id": 24585, + "x_pos": -389.5, + "y_pos": 446.5 + }, + { + "id": 24584, + "x_pos": 1053, + "y_pos": 894.5 + }, + { + "id": 23615, + "x_pos": -384.29998779296875, + "y_pos": 554.2918114235954 + }, + { + "id": 21493, + "x_pos": 3462.5, + "y_pos": 5267 + }, + { + "id": 20455, + "x_pos": -81.5, + "y_pos": 1258.5 + }, + { + "id": 20277, + "x_pos": 1037, + "y_pos": 997 + }, + { + "id": 20276, + "x_pos": 1030, + "y_pos": 1001 + }, + { + "id": 20212, + "x_pos": -146, + "y_pos": 567.9999694824219 + }, + { + "id": 20211, + "x_pos": -137, + "y_pos": 573 + }, + { + "id": 20210, + "x_pos": -176.5, + "y_pos": 464.49998474121094 + }, + { + "id": 20209, + "x_pos": -178.5, + "y_pos": 476.5000305175781 + }, + { + "id": 20208, + "x_pos": -176.50003051757812, + "y_pos": 472 + }, + { + "id": 19856, + "x_pos": 810, + "y_pos": 263 + }, + { + "id": 19832, + "x_pos": 551, + "y_pos": 532 + }, + { + "id": 19319, + "x_pos": 1972.8698252794711, + "y_pos": 8663.260412639887 + }, + { + "id": 19164, + "x_pos": 1946.37069504375, + "y_pos": 8616.115266445322 + }, + { + "id": 19163, + "x_pos": 1947.8024287144217, + "y_pos": 8616.681023236622 + }, + { + "id": 19162, + "x_pos": 1969.8651255368804, + "y_pos": 8664.122449041004 + }, + { + "id": 19161, + "x_pos": 1962.8692454366173, + "y_pos": 8682.722383868122 + }, + { + "id": 18479, + "x_pos": 3393, + "y_pos": 6635.5 + }, + { + "id": 18476, + "x_pos": 3396, + "y_pos": 6639.5 + }, + { + "id": 18430, + "x_pos": 3605.5, + "y_pos": 7162.5 + }, + { + "id": 17716, + "x_pos": 2914, + "y_pos": 7014 + }, + { + "id": 17715, + "x_pos": 2913, + "y_pos": 7017 + }, + { + "id": 17714, + "x_pos": 3002, + "y_pos": 7015.5 + }, + { + "id": 17713, + "x_pos": 2981, + "y_pos": 6742 + }, + { + "id": 17506, + "x_pos": 3383, + "y_pos": 7359.700012207031 + }, + { + "id": 17505, + "x_pos": 3379.199981689453, + "y_pos": 7359.899993896484 + }, + { + "id": 17504, + "x_pos": 3382.300018310547, + "y_pos": 7362.300018310547 + }, + { + "id": 17503, + "x_pos": 3385.2999877929688, + "y_pos": 7364 + }, + { + "id": 17502, + "x_pos": 3380.2000122070312, + "y_pos": 7365.899993896484 + }, + { + "id": 17501, + "x_pos": 3375.6000061035156, + "y_pos": 7363.200012207031 + }, + { + "id": 17270, + "x_pos": 3437.4240507528666, + "y_pos": 7032.345153327125 + }, + { + "id": 17269, + "x_pos": 3471.590796239654, + "y_pos": 7071.684192300936 + }, + { + "id": 17268, + "x_pos": 3633.143147390405, + "y_pos": 7146.374320914791 + }, + { + "id": 17267, + "x_pos": 3610.680682048518, + "y_pos": 7148.545531785445 + }, + { + "id": 17266, + "x_pos": 3578.2554004435515, + "y_pos": 7069.392371323474 + }, + { + "id": 17265, + "x_pos": 3493.249591848393, + "y_pos": 7074.2127138797605 + }, + { + "id": 17264, + "x_pos": 3506.6655451345705, + "y_pos": 7097.267529082832 + }, + { + "id": 17263, + "x_pos": 3436.9725591307524, + "y_pos": 7034.104416326933 + }, + { + "id": 17262, + "x_pos": 3555.3660563009253, + "y_pos": 6865.635913684704 + }, + { + "id": 17261, + "x_pos": 3557.8689555151905, + "y_pos": 6889.692504118879 + }, + { + "id": 17260, + "x_pos": 3500.39359883645, + "y_pos": 6864.266298045042 + }, + { + "id": 17259, + "x_pos": 3467.439510716051, + "y_pos": 6588.372947499396 + }, + { + "id": 17258, + "x_pos": 3470.7440197135948, + "y_pos": 6592.217663348021 + }, + { + "id": 17257, + "x_pos": 3463.087515604313, + "y_pos": 6593.101684741119 + }, + { + "id": 17256, + "x_pos": 3269.8515602295975, + "y_pos": 6678.3246179754005 + }, + { + "id": 17255, + "x_pos": 3271.871470680455, + "y_pos": 6674.5787229766065 + }, + { + "id": 16991, + "x_pos": 3703.5, + "y_pos": 6600.485357596182 + }, + { + "id": 16990, + "x_pos": 3704.300048828125, + "y_pos": 6597.367192696485 + }, + { + "id": 16989, + "x_pos": 3697.5, + "y_pos": 6611.0548412002645 + }, + { + "id": 16988, + "x_pos": 3540.300018310547, + "y_pos": 6574.581486329225 + }, + { + "id": 16987, + "x_pos": 3544, + "y_pos": 6575.68218387138 + }, + { + "id": 16986, + "x_pos": 3098.500030517578, + "y_pos": 6695.65853369521 + }, + { + "id": 16985, + "x_pos": 3081.0999755859375, + "y_pos": 6698.636512804542 + }, + { + "id": 16984, + "x_pos": 3103.9000244140625, + "y_pos": 6716.977392732208 + }, + { + "id": 16983, + "x_pos": 3036.5, + "y_pos": 6721.308176151189 + }, + { + "id": 16982, + "x_pos": 2960.4000244140625, + "y_pos": 6996.066303376239 + }, + { + "id": 16981, + "x_pos": 3029.7999877929688, + "y_pos": 7046.227631473206 + }, + { + "id": 16980, + "x_pos": 3032.5, + "y_pos": 7048.112877904357 + }, + { + "id": 16979, + "x_pos": 3028.3999633789062, + "y_pos": 7049.140117048435 + }, + { + "id": 15801, + "x_pos": 3590.5, + "y_pos": 5128.100689904162 + }, + { + "id": 15800, + "x_pos": 2388, + "y_pos": 6023.5 + }, + { + "id": 15799, + "x_pos": 2392, + "y_pos": 6024.5 + }, + { + "id": 15785, + "x_pos": 2291.5, + "y_pos": 5982 + }, + { + "id": 15784, + "x_pos": 2283, + "y_pos": 5989.5 + }, + { + "id": 15783, + "x_pos": 2290, + "y_pos": 5993 + }, + { + "id": 15782, + "x_pos": 2287, + "y_pos": 5993 + }, + { + "id": 15781, + "x_pos": 2293, + "y_pos": 5989 + }, + { + "id": 15667, + "x_pos": 3473, + "y_pos": 5252 + }, + { + "id": 15666, + "x_pos": 3464.5, + "y_pos": 5266 + }, + { + "id": 15412, + "x_pos": 2401, + "y_pos": 5943.5 + }, + { + "id": 15411, + "x_pos": 2398, + "y_pos": 5944 + }, + { + "id": 15410, + "x_pos": 2360, + "y_pos": 6007.5 + }, + { + "id": 15409, + "x_pos": 2363, + "y_pos": 6009 + }, + { + "id": 15408, + "x_pos": 2319, + "y_pos": 6048 + }, + { + "id": 15407, + "x_pos": 2321.5, + "y_pos": 6048 + }, + { + "id": 13913, + "x_pos": 3644.5, + "y_pos": 4879.643868377417 + }, + { + "id": 13912, + "x_pos": 3652.199981689453, + "y_pos": 4870.89481766665 + }, + { + "id": 13911, + "x_pos": 3662.999969482422, + "y_pos": 4859.751289287367 + }, + { + "id": 13809, + "x_pos": 3702, + "y_pos": 4741 + }, + { + "id": 13808, + "x_pos": 3702.5, + "y_pos": 4745.5 + }, + { + "id": 13807, + "x_pos": 3697.5, + "y_pos": 4781 + }, + { + "id": 13680, + "x_pos": 2724.5, + "y_pos": 5496 + }, + { + "id": 13679, + "x_pos": 2727.5, + "y_pos": 5496.5 + }, + { + "id": 13639, + "x_pos": 3552.1000061035156, + "y_pos": 5045.715072922907 + }, + { + "id": 13638, + "x_pos": 3554.6000061035156, + "y_pos": 5046.08319199465 + }, + { + "id": 13637, + "x_pos": 3551.7000122070312, + "y_pos": 5048.41284848734 + }, + { + "id": 13636, + "x_pos": 3555, + "y_pos": 5049.140487598537 + }, + { + "id": 13471, + "x_pos": 3448, + "y_pos": 4672.580389954902 + }, + { + "id": 13470, + "x_pos": 3449.2999877929688, + "y_pos": 4672.927676166208 + }, + { + "id": 13469, + "x_pos": 3449.8999633789062, + "y_pos": 4674.584288368974 + }, + { + "id": 11962, + "x_pos": -1995.9971971202067, + "y_pos": 1359.2999862741508 + }, + { + "id": 11750, + "x_pos": -1988.3773379815489, + "y_pos": 1327.5626499992377 + }, + { + "id": 10850, + "x_pos": 889.0774260660482, + "y_pos": -37.44834836647715 + }, + { + "id": 10385, + "x_pos": 1328.1540078798116, + "y_pos": 846.4668827654368 + }, + { + "id": 7660, + "x_pos": -58.5, + "y_pos": 1124 + }, + { + "id": 7659, + "x_pos": -62.5, + "y_pos": 1127.5 + }, + { + "id": 7658, + "x_pos": -62, + "y_pos": 1131 + }, + { + "id": 7657, + "x_pos": 431.5, + "y_pos": 991.5 + }, + { + "id": 7656, + "x_pos": 329.5, + "y_pos": 902.5 + }, + { + "id": 7655, + "x_pos": -358.5, + "y_pos": 1319.5 + }, + { + "id": 7652, + "x_pos": -366, + "y_pos": 1341.5 + }, + { + "id": 7650, + "x_pos": 326, + "y_pos": 1244 + }, + { + "id": 7648, + "x_pos": -365, + "y_pos": 1332 + }, + { + "id": 7646, + "x_pos": 315.5, + "y_pos": 1244.5 + }, + { + "id": 7642, + "x_pos": -344, + "y_pos": 1342 + }, + { + "id": 7641, + "x_pos": 424.5, + "y_pos": 992 + }, + { + "id": 7639, + "x_pos": -273.5, + "y_pos": 1449.5 + }, + { + "id": 7637, + "x_pos": 427.5, + "y_pos": 989 + }, + { + "id": 7634, + "x_pos": 144.5, + "y_pos": 1136.5 + }, + { + "id": 7586, + "x_pos": 322, + "y_pos": 903.5 + }, + { + "id": 7584, + "x_pos": 398, + "y_pos": 1121.5 + }, + { + "id": 7581, + "x_pos": 134.5, + "y_pos": 1135 + }, + { + "id": 5548, + "x_pos": -2309, + "y_pos": 964.5 + }, + { + "id": 5547, + "x_pos": -1966, + "y_pos": 882 + }, + { + "id": 5546, + "x_pos": -2189, + "y_pos": 1092 + }, + { + "id": 5544, + "x_pos": -2282.5, + "y_pos": 1054 + }, + { + "id": 5540, + "x_pos": -2302, + "y_pos": 959.5 + }, + { + "id": 5539, + "x_pos": -2289, + "y_pos": 1062 + }, + { + "id": 5536, + "x_pos": -688, + "y_pos": -608.5 + }, + { + "id": 5535, + "x_pos": -758.5, + "y_pos": -72 + }, + { + "id": 5533, + "x_pos": -719, + "y_pos": 79 + }, + { + "id": 5530, + "x_pos": -2180, + "y_pos": 1096.5 + }, + { + "id": 5529, + "x_pos": -2193, + "y_pos": 1114 + }, + { + "id": 5526, + "x_pos": -2173.5, + "y_pos": 1118 + }, + { + "id": 5524, + "x_pos": -2071, + "y_pos": 1160 + }, + { + "id": 5520, + "x_pos": -1994.5, + "y_pos": 1561.5 + }, + { + "id": 5518, + "x_pos": -2258, + "y_pos": 1428 + }, + { + "id": 5517, + "x_pos": 513, + "y_pos": 425 + }, + { + "id": 5515, + "x_pos": -2002, + "y_pos": 1593.5 + }, + { + "id": 5514, + "x_pos": -1483.5, + "y_pos": 1891 + }, + { + "id": 5512, + "x_pos": 229, + "y_pos": 2593.5 + }, + { + "id": 5509, + "x_pos": 234.5, + "y_pos": 2565.5 + }, + { + "id": 5507, + "x_pos": 229.5, + "y_pos": 2598.5 + }, + { + "id": 5506, + "x_pos": 352, + "y_pos": 15.5 + }, + { + "id": 5503, + "x_pos": 507, + "y_pos": 425.5 + }, + { + "id": 5497, + "x_pos": 1049, + "y_pos": 841 + }, + { + "id": 5493, + "x_pos": -365, + "y_pos": 1633.5 + }, + { + "id": 5491, + "x_pos": -359, + "y_pos": 1635.5 + }, + { + "id": 5489, + "x_pos": -352.5, + "y_pos": 1635.5 + }, + { + "id": 5488, + "x_pos": 229.5, + "y_pos": 2594.5 + }, + { + "id": 5487, + "x_pos": 236, + "y_pos": 2599.5 + }, + { + "id": 5486, + "x_pos": 232.5, + "y_pos": 2599.5 + }, + { + "id": 5484, + "x_pos": 220.5, + "y_pos": 2603 + }, + { + "id": 5482, + "x_pos": 243.5, + "y_pos": 2600 + }, + { + "id": 5475, + "x_pos": 158.5, + "y_pos": 2621.5 + }, + { + "id": 5471, + "x_pos": 168, + "y_pos": 2623.5 + }, + { + "id": 5466, + "x_pos": -1305.5, + "y_pos": 2851.5 + }, + { + "id": 5465, + "x_pos": -1325.5, + "y_pos": 2839.5 + }, + { + "id": 5463, + "x_pos": -1338, + "y_pos": 2856 + }, + { + "id": 5462, + "x_pos": -1325.5, + "y_pos": 2870 + }, + { + "id": 5461, + "x_pos": -1316, + "y_pos": 2861.5 + }, + { + "id": 5458, + "x_pos": -1354, + "y_pos": 2870 + }, + { + "id": 5455, + "x_pos": 899.5, + "y_pos": 927 + }, + { + "id": 5451, + "x_pos": 908.5, + "y_pos": 930.5 + }, + { + "id": 5449, + "x_pos": 794.5, + "y_pos": 870.5 + }, + { + "id": 5447, + "x_pos": 749, + "y_pos": 798.5 + }, + { + "id": 5445, + "x_pos": 739.5, + "y_pos": 734 + }, + { + "id": 5444, + "x_pos": 479, + "y_pos": 102.5 + }, + { + "id": 5442, + "x_pos": 507.5, + "y_pos": 427.5 + }, + { + "id": 5439, + "x_pos": 517.5, + "y_pos": 426.5 + }, + { + "id": 5436, + "x_pos": 512.5, + "y_pos": 427.5 + }, + { + "id": 5432, + "x_pos": 68, + "y_pos": 357 + }, + { + "id": 5431, + "x_pos": 56.5, + "y_pos": 362.5 + }, + { + "id": 5428, + "x_pos": -313.5, + "y_pos": 538.5 + }, + { + "id": 5422, + "x_pos": 75.5, + "y_pos": 392.5 + }, + { + "id": 5417, + "x_pos": 136.5, + "y_pos": 426.5 + }, + { + "id": 5414, + "x_pos": 193.5, + "y_pos": 586.5 + }, + { + "id": 5413, + "x_pos": -333.5, + "y_pos": 554 + }, + { + "id": 5411, + "x_pos": -325.5, + "y_pos": 570.5 + }, + { + "id": 5410, + "x_pos": -346, + "y_pos": 509.5 + }, + { + "id": 5404, + "x_pos": -2182.5, + "y_pos": 1117.5 + }, + { + "id": 5403, + "x_pos": -1986, + "y_pos": 794 + }, + { + "id": 5402, + "x_pos": -1969, + "y_pos": 796 + }, + { + "id": 5386, + "x_pos": -1958, + "y_pos": 904 + }, + { + "id": 5385, + "x_pos": -376.5, + "y_pos": 523.5 + }, + { + "id": 5379, + "x_pos": -481.1999816894531, + "y_pos": 524.926995927055 + }, + { + "id": 5368, + "x_pos": -302.5, + "y_pos": 510 + }, + { + "id": 5367, + "x_pos": -345.5, + "y_pos": 582.5 + }, + { + "id": 5364, + "x_pos": -317, + "y_pos": 563.5 + }, + { + "id": 5362, + "x_pos": -284, + "y_pos": 634 + }, + { + "id": 5359, + "x_pos": -245, + "y_pos": 607 + }, + { + "id": 5356, + "x_pos": -160, + "y_pos": 607 + }, + { + "id": 5353, + "x_pos": -722.5, + "y_pos": 721 + }, + { + "id": 5352, + "x_pos": -724, + "y_pos": 723 + }, + { + "id": 5350, + "x_pos": -707, + "y_pos": 639.5 + }, + { + "id": 5348, + "x_pos": -709, + "y_pos": 643 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/621ef976ab2ea278ad1a9371ad845eea_2155132189350895110.png" + }, + "163": { + "name": "Berry", + "clear_name": "Berry", + "points": [ + { + "id": 25236, + "x_pos": -2317.0542016862046, + "y_pos": 3103.5694299422676 + }, + { + "id": 25224, + "x_pos": -2148.8312813065186, + "y_pos": 2822.287344891516 + }, + { + "id": 25223, + "x_pos": -2133.774312834753, + "y_pos": 2649.5711499638865 + }, + { + "id": 25220, + "x_pos": -2358.1095592398524, + "y_pos": 2945.5640624367697 + }, + { + "id": 25210, + "x_pos": -2419.165027090038, + "y_pos": 2983.0511431979075 + }, + { + "id": 25209, + "x_pos": -2325.1654493770648, + "y_pos": 3046.517743151094 + }, + { + "id": 25208, + "x_pos": -2448.6093273382826, + "y_pos": 3209.428931018164 + }, + { + "id": 25207, + "x_pos": -2483.6091701037517, + "y_pos": 3324.3684427444077 + }, + { + "id": 25206, + "x_pos": -2654.052801369412, + "y_pos": 3160.1770488883885 + }, + { + "id": 25205, + "x_pos": -2664.05275644526, + "y_pos": 3256.626291336932 + }, + { + "id": 25204, + "x_pos": -2730.6636022198727, + "y_pos": 2958.6719635555537 + }, + { + "id": 25203, + "x_pos": -2647.9417448385634, + "y_pos": 2866.220617167053 + }, + { + "id": 25202, + "x_pos": -2564.8310342236837, + "y_pos": 2768.383204502623 + }, + { + "id": 25201, + "x_pos": -2370.8874474948975, + "y_pos": 2756.1674042077075 + }, + { + "id": 25200, + "x_pos": -2303.8877484867144, + "y_pos": 2653.221580661594 + }, + { + "id": 25199, + "x_pos": -2482.3869465906055, + "y_pos": 2668.213690886756 + }, + { + "id": 25198, + "x_pos": -2391.887353154179, + "y_pos": 2646.225262556518 + }, + { + "id": 23522, + "x_pos": 224.91780766266584, + "y_pos": 6012.982336230387 + }, + { + "id": 23520, + "x_pos": 293.8066343290229, + "y_pos": 6139.801467018235 + }, + { + "id": 23515, + "x_pos": 455.75106431511995, + "y_pos": 5862.063339086973 + }, + { + "id": 23484, + "x_pos": 1787.1689842881651, + "y_pos": 7297.38044079523 + }, + { + "id": 20062, + "x_pos": 514.3489379882812, + "y_pos": 243.556884765625 + }, + { + "id": 20059, + "x_pos": 322.0623779296875, + "y_pos": 193.6393280029297 + }, + { + "id": 19443, + "x_pos": 2071.3999938964844, + "y_pos": 8412.467351929576 + }, + { + "id": 19442, + "x_pos": 2052.699981689453, + "y_pos": 8487.939831870091 + }, + { + "id": 19441, + "x_pos": 2204.1000366210938, + "y_pos": 8528.264516616015 + }, + { + "id": 19440, + "x_pos": 2155.4000244140625, + "y_pos": 8356.986427206677 + }, + { + "id": 19439, + "x_pos": 2376.2999877929688, + "y_pos": 8617.396553304949 + }, + { + "id": 19438, + "x_pos": 1874.0998840332031, + "y_pos": 8433.531562854847 + }, + { + "id": 19437, + "x_pos": 1823.3998413085938, + "y_pos": 8654.311455863086 + }, + { + "id": 19436, + "x_pos": 1728.7000122070312, + "y_pos": 8655.769636986364 + }, + { + "id": 19320, + "x_pos": 2156.7000122070312, + "y_pos": 8604.292724496469 + }, + { + "id": 19318, + "x_pos": 1946.199951171875, + "y_pos": 8765.403530758325 + }, + { + "id": 19317, + "x_pos": 1632.2000732421875, + "y_pos": 8688.007344285628 + }, + { + "id": 19316, + "x_pos": 1646.3000183105469, + "y_pos": 8726.739564382293 + }, + { + "id": 19315, + "x_pos": 1797.3000183105469, + "y_pos": 8777.084738250202 + }, + { + "id": 19314, + "x_pos": 1667.1999816894531, + "y_pos": 8643.081780670418 + }, + { + "id": 19313, + "x_pos": 1857.8999633789062, + "y_pos": 8928.29125716746 + }, + { + "id": 19312, + "x_pos": 1864, + "y_pos": 8980.509889189623 + }, + { + "id": 19311, + "x_pos": 1845.6999816894531, + "y_pos": 9020.11520824888 + }, + { + "id": 19310, + "x_pos": 1913.1999816894531, + "y_pos": 9056.064929308595 + }, + { + "id": 19309, + "x_pos": 1988.1000366210938, + "y_pos": 9048.301559032872 + }, + { + "id": 19308, + "x_pos": 1681.3999633789062, + "y_pos": 8497.031180741416 + }, + { + "id": 19307, + "x_pos": 1731.3999633789062, + "y_pos": 8430.754596864033 + }, + { + "id": 19168, + "x_pos": 2441, + "y_pos": 8587 + }, + { + "id": 19167, + "x_pos": 2478, + "y_pos": 8371 + }, + { + "id": 18488, + "x_pos": 3741, + "y_pos": 6614 + }, + { + "id": 18487, + "x_pos": 3599, + "y_pos": 6658 + }, + { + "id": 18485, + "x_pos": 3536, + "y_pos": 6506 + }, + { + "id": 18473, + "x_pos": 3207.5, + "y_pos": 6624.5 + }, + { + "id": 18472, + "x_pos": 3157.5, + "y_pos": 6566.5 + }, + { + "id": 18470, + "x_pos": 3098, + "y_pos": 6619.5 + }, + { + "id": 18425, + "x_pos": 3981, + "y_pos": 7235.5 + }, + { + "id": 18350, + "x_pos": 2993.3999938964844, + "y_pos": 6666.84708764479 + }, + { + "id": 18348, + "x_pos": 3094.199981689453, + "y_pos": 6567.526391896448 + }, + { + "id": 18347, + "x_pos": 3006, + "y_pos": 6721.5 + }, + { + "id": 18346, + "x_pos": 3078.2000122070312, + "y_pos": 6634.65262513858 + }, + { + "id": 18345, + "x_pos": 2945.7999572753906, + "y_pos": 6628.07318042445 + }, + { + "id": 18344, + "x_pos": 3218.6000366210938, + "y_pos": 6707.40108067539 + }, + { + "id": 18343, + "x_pos": 3211.9000549316406, + "y_pos": 6707.234425042174 + }, + { + "id": 18342, + "x_pos": 3526.800048828125, + "y_pos": 6558.984218572577 + }, + { + "id": 18337, + "x_pos": 28.699951171875, + "y_pos": 6332.054582372366 + }, + { + "id": 18336, + "x_pos": -158.20004272460938, + "y_pos": 6119.876489904591 + }, + { + "id": 18332, + "x_pos": -237.00006103515625, + "y_pos": 6203.400483695081 + }, + { + "id": 18331, + "x_pos": -164.59991455078125, + "y_pos": 6223.478996203416 + }, + { + "id": 18330, + "x_pos": 290.60003662109375, + "y_pos": 6243.555391670045 + }, + { + "id": 18329, + "x_pos": 264.6000061035156, + "y_pos": 6294.455627401225 + }, + { + "id": 18319, + "x_pos": -179.70001220703125, + "y_pos": 5907.4100430185645 + }, + { + "id": 18317, + "x_pos": 150.09994506835938, + "y_pos": 5922.943654694696 + }, + { + "id": 18316, + "x_pos": 380, + "y_pos": 5886.912481863415 + }, + { + "id": 17803, + "x_pos": -741.5, + "y_pos": 1661 + }, + { + "id": 17705, + "x_pos": 3643, + "y_pos": 4775 + }, + { + "id": 17097, + "x_pos": 3469.5, + "y_pos": 5030 + }, + { + "id": 17096, + "x_pos": 3428.5, + "y_pos": 5136.5 + }, + { + "id": 17086, + "x_pos": 3538, + "y_pos": 5154.5 + }, + { + "id": 17085, + "x_pos": 3673, + "y_pos": 5136 + }, + { + "id": 17078, + "x_pos": 3430.5, + "y_pos": 5270 + }, + { + "id": 17072, + "x_pos": 3601, + "y_pos": 5026.5 + }, + { + "id": 17068, + "x_pos": 3349, + "y_pos": 4996.5 + }, + { + "id": 17065, + "x_pos": 3615, + "y_pos": 4959 + }, + { + "id": 17062, + "x_pos": 3534.5, + "y_pos": 4951.5 + }, + { + "id": 17060, + "x_pos": 4036, + "y_pos": 4679 + }, + { + "id": 17058, + "x_pos": 3720, + "y_pos": 4727 + }, + { + "id": 15769, + "x_pos": 2773, + "y_pos": 5656.5 + }, + { + "id": 15766, + "x_pos": 2666, + "y_pos": 5672.5 + }, + { + "id": 15763, + "x_pos": 2695.5, + "y_pos": 5716 + }, + { + "id": 15722, + "x_pos": 3716, + "y_pos": 5622.5 + }, + { + "id": 15516, + "x_pos": 3321.5, + "y_pos": 5084.5 + }, + { + "id": 15508, + "x_pos": 3162.5, + "y_pos": 5542 + }, + { + "id": 15507, + "x_pos": 3200.8999938964844, + "y_pos": 5545.7086708507795 + }, + { + "id": 15500, + "x_pos": 2635.699981689453, + "y_pos": 5568.108750566393 + }, + { + "id": 15493, + "x_pos": 2317.300048828125, + "y_pos": 5762.942034177091 + }, + { + "id": 15490, + "x_pos": 2345.699981689453, + "y_pos": 5785.009544380257 + }, + { + "id": 15488, + "x_pos": 2345.5999755859375, + "y_pos": 5807.282227499234 + }, + { + "id": 15479, + "x_pos": 2478, + "y_pos": 5892.5 + }, + { + "id": 15476, + "x_pos": 2297.5, + "y_pos": 5879.0508458435215 + }, + { + "id": 15473, + "x_pos": 2557.7999877929688, + "y_pos": 5940.271815079381 + }, + { + "id": 15469, + "x_pos": 2715.7999572753906, + "y_pos": 6062.253533258427 + }, + { + "id": 15404, + "x_pos": 2127.199506055442, + "y_pos": 6071.1018366995395 + }, + { + "id": 15399, + "x_pos": 2015.2996808718635, + "y_pos": 6132.703673399079 + }, + { + "id": 15396, + "x_pos": 1778.2020367876457, + "y_pos": 5994.5 + }, + { + "id": 15392, + "x_pos": 1626.5999755859375, + "y_pos": 5981.966240876443 + }, + { + "id": 15384, + "x_pos": 1838.5, + "y_pos": 6121.708246463144 + }, + { + "id": 15373, + "x_pos": 1781.8999938964844, + "y_pos": 6226.605706738646 + }, + { + "id": 15357, + "x_pos": 1611.1999816894531, + "y_pos": 6462.70485592066 + }, + { + "id": 15138, + "x_pos": 1635.7031448192001, + "y_pos": 6295.003046411935 + }, + { + "id": 15132, + "x_pos": 1573.8008014785264, + "y_pos": 6409.801206339149 + }, + { + "id": 15126, + "x_pos": 1715.5995235969167, + "y_pos": 6419.602443242362 + }, + { + "id": 15123, + "x_pos": 1793.5996145344634, + "y_pos": 6317.596350418489 + }, + { + "id": 15118, + "x_pos": 1585.3176499672682, + "y_pos": 6207.815326558415 + }, + { + "id": 15109, + "x_pos": 1447.0024125698064, + "y_pos": 6370.897556757638 + }, + { + "id": 15103, + "x_pos": 1311.8009833605574, + "y_pos": 6264.304252751086 + }, + { + "id": 15020, + "x_pos": 1589.3009848797255, + "y_pos": 6045.400670122659 + }, + { + "id": 15018, + "x_pos": 1668.4029851947907, + "y_pos": 6111.503381182469 + }, + { + "id": 15011, + "x_pos": 1476.5, + "y_pos": 6180.599360446511 + }, + { + "id": 15009, + "x_pos": 1480.8010154353397, + "y_pos": 6219.907432487598 + }, + { + "id": 15005, + "x_pos": 1531.6999816894531, + "y_pos": 6310.806425958019 + }, + { + "id": 14893, + "x_pos": 1506.4003481724867, + "y_pos": 5813.303191309824 + }, + { + "id": 14888, + "x_pos": 1433.3135614391285, + "y_pos": 5919.416484467112 + }, + { + "id": 14887, + "x_pos": 1413.9974863589814, + "y_pos": 5958.905028009362 + }, + { + "id": 14882, + "x_pos": 1546.7015204069849, + "y_pos": 5875.312344255026 + }, + { + "id": 14876, + "x_pos": 1678.2953821238543, + "y_pos": 5828.9073162456625 + }, + { + "id": 14872, + "x_pos": 1816.5995033829831, + "y_pos": 5835.708219319185 + }, + { + "id": 14864, + "x_pos": 1907.4030102580364, + "y_pos": 5801.708219319185 + }, + { + "id": 14855, + "x_pos": 1983.9975169149147, + "y_pos": 5873.402739773062 + }, + { + "id": 14854, + "x_pos": 2023.5, + "y_pos": 5766.10412493584 + }, + { + "id": 14849, + "x_pos": 2063.8035374309866, + "y_pos": 5884.907346798156 + }, + { + "id": 14659, + "x_pos": 1333.8009932340346, + "y_pos": 6159.101806147046 + }, + { + "id": 14658, + "x_pos": 1352.8979829759983, + "y_pos": 6072.2059310828845 + }, + { + "id": 14652, + "x_pos": 1398, + "y_pos": 5817 + }, + { + "id": 14641, + "x_pos": 1306.2985101489485, + "y_pos": 5974.009152945202 + }, + { + "id": 14638, + "x_pos": 1290.2959659519965, + "y_pos": 5980.414211507059 + }, + { + "id": 14635, + "x_pos": 1285.1019864680684, + "y_pos": 6003.122430826244 + }, + { + "id": 14629, + "x_pos": 1204.3000183105469, + "y_pos": 5933.300018310547 + }, + { + "id": 14626, + "x_pos": 868.5, + "y_pos": 5981.299987792969 + }, + { + "id": 14624, + "x_pos": 3407, + "y_pos": 4745.5 + }, + { + "id": 14616, + "x_pos": 3407.5, + "y_pos": 4904.5 + }, + { + "id": 14320, + "x_pos": 3539, + "y_pos": 5683.5 + }, + { + "id": 14288, + "x_pos": 1736.1999816894531, + "y_pos": 6032.399993896484 + }, + { + "id": 14218, + "x_pos": 3712, + "y_pos": 5332.5 + }, + { + "id": 14058, + "x_pos": 3683, + "y_pos": 5492.5 + }, + { + "id": 14057, + "x_pos": 3573, + "y_pos": 5471 + }, + { + "id": 14055, + "x_pos": 3525.5, + "y_pos": 5435.5 + }, + { + "id": 14051, + "x_pos": 3595, + "y_pos": 5402 + }, + { + "id": 14049, + "x_pos": 3572.5, + "y_pos": 5337 + }, + { + "id": 14042, + "x_pos": 3745.5, + "y_pos": 5148 + }, + { + "id": 14035, + "x_pos": 3798, + "y_pos": 5089 + }, + { + "id": 14032, + "x_pos": 3849, + "y_pos": 4915 + }, + { + "id": 14031, + "x_pos": 3813, + "y_pos": 4859.5 + }, + { + "id": 14003, + "x_pos": 10.5, + "y_pos": 511.5 + }, + { + "id": 13998, + "x_pos": 14.5, + "y_pos": 566.5 + }, + { + "id": 13993, + "x_pos": -31.5, + "y_pos": 585.5 + }, + { + "id": 13992, + "x_pos": -144.5, + "y_pos": 526.5 + }, + { + "id": 13991, + "x_pos": -127.5, + "y_pos": 387.5 + }, + { + "id": 13182, + "x_pos": 2310, + "y_pos": 6109 + }, + { + "id": 13180, + "x_pos": 2333, + "y_pos": 6120 + }, + { + "id": 13179, + "x_pos": 3158, + "y_pos": 4768.5 + }, + { + "id": 11915, + "x_pos": 746.3548889160156, + "y_pos": 386.4015655517578 + }, + { + "id": 11912, + "x_pos": 720.5, + "y_pos": 384 + }, + { + "id": 11906, + "x_pos": 835.5388793945312, + "y_pos": 320.53546142578125 + }, + { + "id": 11833, + "x_pos": 785.0381164550781, + "y_pos": 109.88597106933594 + }, + { + "id": 11811, + "x_pos": -2142, + "y_pos": 766.5 + }, + { + "id": 11692, + "x_pos": 449, + "y_pos": 332 + }, + { + "id": 11691, + "x_pos": 685.5, + "y_pos": 218 + }, + { + "id": 11571, + "x_pos": -1595, + "y_pos": 2092 + }, + { + "id": 10931, + "x_pos": -230, + "y_pos": 454.5 + }, + { + "id": 10925, + "x_pos": -772.5, + "y_pos": 2085 + }, + { + "id": 10922, + "x_pos": -960.5, + "y_pos": 2094 + }, + { + "id": 10916, + "x_pos": -804, + "y_pos": 2317.5 + }, + { + "id": 10913, + "x_pos": -978, + "y_pos": 2345.5 + }, + { + "id": 10906, + "x_pos": -1483, + "y_pos": 1431.5 + }, + { + "id": 10903, + "x_pos": -1872.5, + "y_pos": 1670 + }, + { + "id": 10882, + "x_pos": -317.5, + "y_pos": 718.5 + }, + { + "id": 10867, + "x_pos": 606.6431557210926, + "y_pos": 6.480227246433969 + }, + { + "id": 10849, + "x_pos": 861.0753103817606, + "y_pos": 21.565683948863807 + }, + { + "id": 10823, + "x_pos": -867, + "y_pos": 863.5 + }, + { + "id": 10812, + "x_pos": 1001.5, + "y_pos": 77 + }, + { + "id": 10807, + "x_pos": 983.7634402313324, + "y_pos": 37.81701880499759 + }, + { + "id": 10780, + "x_pos": -1258.5, + "y_pos": 2062 + }, + { + "id": 10766, + "x_pos": -1273, + "y_pos": 1842 + }, + { + "id": 10760, + "x_pos": -1423, + "y_pos": 1918 + }, + { + "id": 10744, + "x_pos": -1396, + "y_pos": 1583.5 + }, + { + "id": 10711, + "x_pos": -706, + "y_pos": 2437.5 + }, + { + "id": 10690, + "x_pos": -2001.5, + "y_pos": 804.5 + }, + { + "id": 10633, + "x_pos": -523, + "y_pos": 815 + }, + { + "id": 10597, + "x_pos": 208.5, + "y_pos": 2618.5 + }, + { + "id": 10307, + "x_pos": -1620.5, + "y_pos": 1218 + }, + { + "id": 10306, + "x_pos": -1363.5, + "y_pos": 1496 + }, + { + "id": 10305, + "x_pos": 755.6304148029212, + "y_pos": 987.8126220703125 + }, + { + "id": 10304, + "x_pos": 1072.2441160343687, + "y_pos": 885.3980140147642 + }, + { + "id": 10303, + "x_pos": 755.6304148029212, + "y_pos": 986.3126220703125 + }, + { + "id": 10302, + "x_pos": 1071.8860409231338, + "y_pos": 886.0006579610854 + }, + { + "id": 10301, + "x_pos": 754.7804305497684, + "y_pos": 990.00146484375 + }, + { + "id": 10300, + "x_pos": 1073.0198901847762, + "y_pos": 885.9041151352058 + }, + { + "id": 10299, + "x_pos": 932.451240056479, + "y_pos": 234.84100404956507 + }, + { + "id": 10119, + "x_pos": -1296.6000366210938, + "y_pos": 2319.6119702140013 + }, + { + "id": 10101, + "x_pos": -959.2999877929688, + "y_pos": 2190.950546074836 + }, + { + "id": 10092, + "x_pos": -1748, + "y_pos": 1194.033477887193 + }, + { + "id": 10076, + "x_pos": 475.5, + "y_pos": 870.5 + }, + { + "id": 10070, + "x_pos": 509.5, + "y_pos": 972.5 + }, + { + "id": 10067, + "x_pos": 635, + "y_pos": 1041.5 + }, + { + "id": 10057, + "x_pos": 632, + "y_pos": 1154 + }, + { + "id": 10054, + "x_pos": 664.5, + "y_pos": 1188 + }, + { + "id": 9692, + "x_pos": 1301, + "y_pos": 847.5 + }, + { + "id": 9683, + "x_pos": 1314.5, + "y_pos": 744.5 + }, + { + "id": 9655, + "x_pos": -1885.2609071867673, + "y_pos": 715.9868244221539 + }, + { + "id": 9654, + "x_pos": -1384.63525739143, + "y_pos": 1639.4536004843176 + }, + { + "id": 9653, + "x_pos": -1557, + "y_pos": 1222.5 + }, + { + "id": 9652, + "x_pos": 665.5794828978878, + "y_pos": -188.20779391749102 + }, + { + "id": 9445, + "x_pos": -715.5, + "y_pos": 1236.5 + }, + { + "id": 9444, + "x_pos": -692.5, + "y_pos": 1342.5 + }, + { + "id": 9378, + "x_pos": -721, + "y_pos": 1423.5 + }, + { + "id": 9377, + "x_pos": -732, + "y_pos": 1455 + }, + { + "id": 9367, + "x_pos": -478.5, + "y_pos": 1440.5 + }, + { + "id": 9330, + "x_pos": -431, + "y_pos": 1186 + }, + { + "id": 9295, + "x_pos": 532, + "y_pos": 17.5 + }, + { + "id": 9293, + "x_pos": 482, + "y_pos": 66 + }, + { + "id": 9287, + "x_pos": 644, + "y_pos": 55 + }, + { + "id": 9276, + "x_pos": 602.5, + "y_pos": 89.5 + }, + { + "id": 9275, + "x_pos": 808.5, + "y_pos": -23 + }, + { + "id": 9272, + "x_pos": 760, + "y_pos": -112 + }, + { + "id": 9257, + "x_pos": 881, + "y_pos": -47 + }, + { + "id": 9255, + "x_pos": 723, + "y_pos": -61 + }, + { + "id": 9221, + "x_pos": 512, + "y_pos": -332.5 + }, + { + "id": 9220, + "x_pos": 454.5, + "y_pos": -219 + }, + { + "id": 9219, + "x_pos": 440.5, + "y_pos": -172 + }, + { + "id": 9218, + "x_pos": 536, + "y_pos": -149.5 + }, + { + "id": 9217, + "x_pos": 347.5, + "y_pos": 37 + }, + { + "id": 9216, + "x_pos": 339, + "y_pos": 100.5 + }, + { + "id": 9215, + "x_pos": 670, + "y_pos": -329 + }, + { + "id": 9165, + "x_pos": 727, + "y_pos": -282.5 + }, + { + "id": 9161, + "x_pos": 613.5, + "y_pos": -195 + }, + { + "id": 8832, + "x_pos": -469.5838656443684, + "y_pos": 1677.5687355098135 + }, + { + "id": 8831, + "x_pos": -547.0555038827515, + "y_pos": 1444.8320412596686 + }, + { + "id": 8830, + "x_pos": -609.4444961172485, + "y_pos": 1529.7747324335705 + }, + { + "id": 8829, + "x_pos": -510.5555038827515, + "y_pos": 1694.666035882662 + }, + { + "id": 8828, + "x_pos": -450.5, + "y_pos": 1528.3339793701662 + }, + { + "id": 8818, + "x_pos": -539, + "y_pos": 1574.2766857968954 + }, + { + "id": 8813, + "x_pos": -287.75427984849284, + "y_pos": 1622.1221071036052 + }, + { + "id": 8805, + "x_pos": -637.8334273207747, + "y_pos": 1742.5553554627722 + }, + { + "id": 8795, + "x_pos": -365, + "y_pos": 1756.9980466366742 + }, + { + "id": 8792, + "x_pos": -324.02449350507777, + "y_pos": 1741.5486158675612 + }, + { + "id": 8785, + "x_pos": -665.3889617190116, + "y_pos": 1930.2766857968954 + }, + { + "id": 8775, + "x_pos": -10.277923438023208, + "y_pos": 2648.11068041989 + }, + { + "id": 8765, + "x_pos": -205.88893120352714, + "y_pos": 2473.332010754012 + }, + { + "id": 8747, + "x_pos": -1118.735193479375, + "y_pos": 646.71657905537 + }, + { + "id": 8724, + "x_pos": -920.6092030635264, + "y_pos": 630.4204702987636 + }, + { + "id": 8721, + "x_pos": -829.6000061035156, + "y_pos": 599.9965109153695 + }, + { + "id": 8692, + "x_pos": -2035.9444350862786, + "y_pos": 3149.2766857968954 + }, + { + "id": 8691, + "x_pos": -1947, + "y_pos": 2724.4427216795575 + }, + { + "id": 8690, + "x_pos": -1964.6665116482554, + "y_pos": 2796.0553554627722 + }, + { + "id": 8689, + "x_pos": -1816.1114117897678, + "y_pos": 3161.7766857968954 + }, + { + "id": 8688, + "x_pos": -2091.388992234496, + "y_pos": 3246.332010754013 + }, + { + "id": 8687, + "x_pos": -1963.4444656017636, + "y_pos": 2888.2766857968954 + }, + { + "id": 8686, + "x_pos": -1797.8889617190116, + "y_pos": 2972.8873662167853 + }, + { + "id": 8685, + "x_pos": -1806.1114117897678, + "y_pos": 3039.7766857968954 + }, + { + "id": 8684, + "x_pos": -1428.2224195552712, + "y_pos": 3167.8320412596686 + }, + { + "id": 8683, + "x_pos": -1373.8337703140696, + "y_pos": 2852.2708562125754 + }, + { + "id": 8682, + "x_pos": -1995.5, + "y_pos": 2970.5 + }, + { + "id": 8681, + "x_pos": -1519.055503882752, + "y_pos": 2756.61068041989 + }, + { + "id": 8680, + "x_pos": -1729.8334883517446, + "y_pos": 2990.666020629834 + }, + { + "id": 8679, + "x_pos": -1888.7779234380232, + "y_pos": 3054.8320260068404 + }, + { + "id": 8678, + "x_pos": -1548.944496117248, + "y_pos": 3042.5553554627722 + }, + { + "id": 8677, + "x_pos": -1780.888992234496, + "y_pos": 3176.7213608397788 + }, + { + "id": 8676, + "x_pos": -1900.5555649137214, + "y_pos": 3068.998046636674 + }, + { + "id": 8675, + "x_pos": -1617.6099787856201, + "y_pos": 3154.662098650356 + }, + { + "id": 8674, + "x_pos": -1615.055503882752, + "y_pos": 3047.998046636674 + }, + { + "id": 8673, + "x_pos": -1364.7775804447288, + "y_pos": 2909.2233142031046 + }, + { + "id": 8672, + "x_pos": -1774.6665116482554, + "y_pos": 2610.2766857968954 + }, + { + "id": 8671, + "x_pos": -1864.8334883517446, + "y_pos": 2687.11068041989 + }, + { + "id": 8670, + "x_pos": -1434.888992234496, + "y_pos": 2834.055340209945 + }, + { + "id": 8669, + "x_pos": -1657.6110687964729, + "y_pos": 2889.7213455869514 + }, + { + "id": 8668, + "x_pos": -1717.7224195552712, + "y_pos": 3187.2213608397788 + }, + { + "id": 8667, + "x_pos": -1758.7768944581394, + "y_pos": 3198.9427216795575 + }, + { + "id": 8666, + "x_pos": -1587.2779844689926, + "y_pos": 3008.4427216795575 + }, + { + "id": 8665, + "x_pos": -1635.6665726792248, + "y_pos": 2611.3320412596686 + }, + { + "id": 8664, + "x_pos": -1679.2775804447288, + "y_pos": 3235.166035882662 + }, + { + "id": 8663, + "x_pos": -1772.555503882752, + "y_pos": 2666.3873662167853 + }, + { + "id": 8662, + "x_pos": -1632.3886187257172, + "y_pos": 2775.719407476454 + }, + { + "id": 8661, + "x_pos": -1377, + "y_pos": 2928.6660053770065 + }, + { + "id": 8660, + "x_pos": -1288.3334273207752, + "y_pos": 2773.1640520136807 + }, + { + "id": 8659, + "x_pos": -1563, + "y_pos": 2931.7213608397788 + }, + { + "id": 8453, + "x_pos": 923.5, + "y_pos": -572 + }, + { + "id": 8452, + "x_pos": 847.5, + "y_pos": -451 + }, + { + "id": 8451, + "x_pos": 988.5, + "y_pos": -614.5 + }, + { + "id": 8450, + "x_pos": 1127, + "y_pos": -517.5 + }, + { + "id": 8449, + "x_pos": 853, + "y_pos": -410.5 + }, + { + "id": 8448, + "x_pos": -289, + "y_pos": -379.5 + }, + { + "id": 8447, + "x_pos": -246.5, + "y_pos": -321.5 + }, + { + "id": 8446, + "x_pos": -454.5, + "y_pos": -199 + }, + { + "id": 8445, + "x_pos": -1004, + "y_pos": -293 + }, + { + "id": 8444, + "x_pos": -1036, + "y_pos": -277.5 + }, + { + "id": 8443, + "x_pos": -276, + "y_pos": -230 + }, + { + "id": 8442, + "x_pos": 796, + "y_pos": -388.5 + }, + { + "id": 8441, + "x_pos": 649, + "y_pos": -455.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/0dac79cd68e374c60be673fef82e0804_172650782223650192.png" + }, + "94": { + "name": "Frog", + "clear_name": "Frog", + "points": [ + { + "id": 25230, + "x_pos": -2701.1710068021544, + "y_pos": 2946.3571418711545 + }, + { + "id": 25229, + "x_pos": -2700.8577455300247, + "y_pos": 2915.107147736421 + }, + { + "id": 20310, + "x_pos": 774, + "y_pos": 911 + }, + { + "id": 20309, + "x_pos": -789.5, + "y_pos": -177.5 + }, + { + "id": 20308, + "x_pos": -782.5, + "y_pos": -160 + }, + { + "id": 20307, + "x_pos": -875, + "y_pos": -162 + }, + { + "id": 20306, + "x_pos": -880, + "y_pos": -161 + }, + { + "id": 20305, + "x_pos": -829.5, + "y_pos": -590.5 + }, + { + "id": 20304, + "x_pos": -833, + "y_pos": -593 + }, + { + "id": 20303, + "x_pos": -843, + "y_pos": -575 + }, + { + "id": 20302, + "x_pos": -889.5, + "y_pos": 567.5 + }, + { + "id": 20301, + "x_pos": -1689, + "y_pos": 1000.5 + }, + { + "id": 20300, + "x_pos": -1676.5, + "y_pos": 958.5 + }, + { + "id": 20299, + "x_pos": -1762.5, + "y_pos": 987 + }, + { + "id": 20298, + "x_pos": -1588.5, + "y_pos": 1091.5 + }, + { + "id": 20297, + "x_pos": -974, + "y_pos": 1147.5 + }, + { + "id": 20296, + "x_pos": -990, + "y_pos": 1158 + }, + { + "id": 20295, + "x_pos": -1404, + "y_pos": 2235.5 + }, + { + "id": 20294, + "x_pos": -1986, + "y_pos": 3182 + }, + { + "id": 20293, + "x_pos": -1961.5, + "y_pos": 3241 + }, + { + "id": 20292, + "x_pos": -1953.5, + "y_pos": 3149.5 + }, + { + "id": 20291, + "x_pos": -1810, + "y_pos": 3096.5 + }, + { + "id": 20290, + "x_pos": -1790.5, + "y_pos": 3078.5 + }, + { + "id": 20289, + "x_pos": -1671, + "y_pos": 3090.5 + }, + { + "id": 20288, + "x_pos": -1639.5, + "y_pos": 3058.5 + }, + { + "id": 20287, + "x_pos": -1581, + "y_pos": 3096 + }, + { + "id": 15758, + "x_pos": -1582.2000122070312, + "y_pos": 624.1789336258926 + }, + { + "id": 11834, + "x_pos": 819.985107421875, + "y_pos": 71.05372619628906 + }, + { + "id": 11778, + "x_pos": -1686.3524454192248, + "y_pos": 1245.9144915734169 + }, + { + "id": 10379, + "x_pos": 739.6421120821806, + "y_pos": 941.1677551269531 + }, + { + "id": 10378, + "x_pos": 734.8471918531068, + "y_pos": 930.4388275146484 + }, + { + "id": 10377, + "x_pos": 793.5718099981923, + "y_pos": 910.7143859863281 + }, + { + "id": 10376, + "x_pos": -1582.5, + "y_pos": 1118.5 + }, + { + "id": 6238, + "x_pos": -2087.93824755912, + "y_pos": 3226.881256229747 + }, + { + "id": 6233, + "x_pos": -1415.5012992164325, + "y_pos": 1284.498792435299 + }, + { + "id": 6138, + "x_pos": -845.4246057865803, + "y_pos": -578.0809067429609 + }, + { + "id": 5985, + "x_pos": -1594.5, + "y_pos": 1059 + }, + { + "id": 5984, + "x_pos": -1465, + "y_pos": 948 + }, + { + "id": 5983, + "x_pos": -1473, + "y_pos": 940 + }, + { + "id": 5982, + "x_pos": -1457, + "y_pos": 945 + }, + { + "id": 5981, + "x_pos": -1684, + "y_pos": 980 + }, + { + "id": 5980, + "x_pos": -1691.5, + "y_pos": 937.5 + }, + { + "id": 5979, + "x_pos": -2141, + "y_pos": 755.5 + }, + { + "id": 5978, + "x_pos": -1679.5, + "y_pos": 945.5 + }, + { + "id": 5977, + "x_pos": -2144, + "y_pos": 769.5 + }, + { + "id": 5976, + "x_pos": -1751, + "y_pos": 955.5 + }, + { + "id": 5975, + "x_pos": -1754.5, + "y_pos": 986 + }, + { + "id": 5973, + "x_pos": -2094, + "y_pos": 925.5 + }, + { + "id": 5972, + "x_pos": -1673.5, + "y_pos": 989.5 + }, + { + "id": 5971, + "x_pos": -1600, + "y_pos": 1064.5 + }, + { + "id": 5970, + "x_pos": -1048.5, + "y_pos": 976 + }, + { + "id": 5969, + "x_pos": -1603.5, + "y_pos": 530.5 + }, + { + "id": 5968, + "x_pos": -1602, + "y_pos": 532.5 + }, + { + "id": 5967, + "x_pos": -1583, + "y_pos": 611.5 + }, + { + "id": 5965, + "x_pos": -1595.5, + "y_pos": 629.5 + }, + { + "id": 5964, + "x_pos": -884, + "y_pos": 576.5 + }, + { + "id": 5963, + "x_pos": -841, + "y_pos": 571 + }, + { + "id": 5955, + "x_pos": -1614, + "y_pos": 1085.5 + }, + { + "id": 5954, + "x_pos": -1585, + "y_pos": 1071 + }, + { + "id": 5953, + "x_pos": -615, + "y_pos": 754 + }, + { + "id": 5952, + "x_pos": -2365.5, + "y_pos": 1187.5 + }, + { + "id": 5949, + "x_pos": -621.5, + "y_pos": 771 + }, + { + "id": 5947, + "x_pos": -2052.5, + "y_pos": 1560.5 + }, + { + "id": 5945, + "x_pos": -2063, + "y_pos": 1561.5 + }, + { + "id": 5943, + "x_pos": -2057, + "y_pos": 1564 + }, + { + "id": 5942, + "x_pos": -487.5, + "y_pos": 729 + }, + { + "id": 5939, + "x_pos": -2370.5, + "y_pos": 1225.5 + }, + { + "id": 5937, + "x_pos": -646.5, + "y_pos": 2051 + }, + { + "id": 5935, + "x_pos": -490.5, + "y_pos": 737 + }, + { + "id": 5933, + "x_pos": -1411.5, + "y_pos": 3054.5 + }, + { + "id": 5931, + "x_pos": -1493.5, + "y_pos": 2171 + }, + { + "id": 5930, + "x_pos": -496, + "y_pos": 729.5 + }, + { + "id": 5929, + "x_pos": -1486, + "y_pos": 2176 + }, + { + "id": 5928, + "x_pos": -1484, + "y_pos": 2225 + }, + { + "id": 5925, + "x_pos": 727.5, + "y_pos": 913 + }, + { + "id": 5924, + "x_pos": -1411, + "y_pos": 2251 + }, + { + "id": 5923, + "x_pos": -1618.5, + "y_pos": 2591.5 + }, + { + "id": 5922, + "x_pos": 730.5, + "y_pos": 905 + }, + { + "id": 5919, + "x_pos": -1661.5, + "y_pos": 2467.5 + }, + { + "id": 5918, + "x_pos": -1611, + "y_pos": 2594 + }, + { + "id": 5917, + "x_pos": 135, + "y_pos": 529 + }, + { + "id": 5916, + "x_pos": -1880.5, + "y_pos": 2939.5 + }, + { + "id": 5911, + "x_pos": -1400, + "y_pos": 3021 + }, + { + "id": 5910, + "x_pos": -1460.5, + "y_pos": 2978 + }, + { + "id": 5909, + "x_pos": 156, + "y_pos": 554 + }, + { + "id": 5908, + "x_pos": -1439, + "y_pos": 3078 + }, + { + "id": 5907, + "x_pos": -1574.5, + "y_pos": 3095 + }, + { + "id": 5906, + "x_pos": 171, + "y_pos": 566.5 + }, + { + "id": 5905, + "x_pos": -1660.5, + "y_pos": 3082 + }, + { + "id": 5904, + "x_pos": -1740, + "y_pos": 3059.5 + }, + { + "id": 5902, + "x_pos": 168, + "y_pos": 480 + }, + { + "id": 5900, + "x_pos": -1924, + "y_pos": 2877.5 + }, + { + "id": 5899, + "x_pos": 179, + "y_pos": 493.5 + }, + { + "id": 5898, + "x_pos": -1887.5, + "y_pos": 2943.5 + }, + { + "id": 5897, + "x_pos": -1817, + "y_pos": 3054 + }, + { + "id": 5896, + "x_pos": -1830.5, + "y_pos": 3078 + }, + { + "id": 5894, + "x_pos": 409.5, + "y_pos": -15.5 + }, + { + "id": 5891, + "x_pos": -1868, + "y_pos": 3132.5 + }, + { + "id": 5887, + "x_pos": 718.5, + "y_pos": 25 + }, + { + "id": 5886, + "x_pos": -2102.5, + "y_pos": 3221.5 + }, + { + "id": 5885, + "x_pos": -1939, + "y_pos": 3138.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/2100d4b4cc447908da0119057bc17ba6_9022240694827521309.png" + }, + "115": { + "name": "Lizard Tail", + "clear_name": "LizardTail", + "points": [ + { + "id": 25193, + "x_pos": -2390.0011080879644, + "y_pos": 3036.285675755521 + }, + { + "id": 24532, + "x_pos": 3478.1345529274386, + "y_pos": 4646.900651073094 + }, + { + "id": 17222, + "x_pos": -1112.5, + "y_pos": 1305 + }, + { + "id": 17109, + "x_pos": 2371.5, + "y_pos": 6136.5 + }, + { + "id": 17108, + "x_pos": 2396.5, + "y_pos": 6159 + }, + { + "id": 17037, + "x_pos": 3132, + "y_pos": 4794.5 + }, + { + "id": 15751, + "x_pos": -1116.199951171875, + "y_pos": 781.1513635176534 + }, + { + "id": 14885, + "x_pos": 1505.9974863589814, + "y_pos": 5875.5 + }, + { + "id": 14542, + "x_pos": 2508.5, + "y_pos": 5907 + }, + { + "id": 14540, + "x_pos": 2737, + "y_pos": 5464.5 + }, + { + "id": 14351, + "x_pos": 3333.5, + "y_pos": 4871.5 + }, + { + "id": 14350, + "x_pos": 3346.5, + "y_pos": 4864.5 + }, + { + "id": 14286, + "x_pos": 1705.5, + "y_pos": 6293.300018310547 + }, + { + "id": 14285, + "x_pos": 1659.2000122070312, + "y_pos": 6412.299987792969 + }, + { + "id": 11939, + "x_pos": -1515.8864954901574, + "y_pos": 633.4812104843459 + }, + { + "id": 11774, + "x_pos": -1810.632470584047, + "y_pos": 1194.071572720814 + }, + { + "id": 11751, + "x_pos": -2000.3702434879233, + "y_pos": 1312.6639068523227 + }, + { + "id": 10737, + "x_pos": -1365.5, + "y_pos": 1455.5 + }, + { + "id": 10375, + "x_pos": -1328, + "y_pos": 1497.5 + }, + { + "id": 5966, + "x_pos": 788.5821068316536, + "y_pos": -289.5615857077473 + }, + { + "id": 5962, + "x_pos": 547.5912013466805, + "y_pos": -110.53340919806169 + }, + { + "id": 5961, + "x_pos": 669.0888194498875, + "y_pos": -212.49999990800552 + }, + { + "id": 5960, + "x_pos": 826.1115557374542, + "y_pos": -45.48510661002865 + }, + { + "id": 5959, + "x_pos": 455.5424807304671, + "y_pos": -213.50120747270648 + }, + { + "id": 5958, + "x_pos": 460.62844555107404, + "y_pos": -177.51650329225004 + }, + { + "id": 5957, + "x_pos": 556.130394375723, + "y_pos": -23.51891842165196 + }, + { + "id": 5956, + "x_pos": 537.6150203146071, + "y_pos": -76.0020125158403 + }, + { + "id": 5951, + "x_pos": 449.61068959316526, + "y_pos": -173.56883109595265 + }, + { + "id": 5950, + "x_pos": 541.6648236111805, + "y_pos": 4.027774080113431 + }, + { + "id": 5948, + "x_pos": -846.4044679318786, + "y_pos": -633.9818864374934 + }, + { + "id": 5946, + "x_pos": -853.9436609609215, + "y_pos": -633.1928077385701 + }, + { + "id": 5944, + "x_pos": 781.054823286574, + "y_pos": 230.46216306470205 + }, + { + "id": 5941, + "x_pos": -635.2819085150932, + "y_pos": -531.154568189711 + }, + { + "id": 5940, + "x_pos": -933.8449205120623, + "y_pos": -643.092579868402 + }, + { + "id": 5938, + "x_pos": -961.8968891693567, + "y_pos": -671.6767068758927 + }, + { + "id": 5936, + "x_pos": -848.4005702825816, + "y_pos": -635.5716487469213 + }, + { + "id": 5934, + "x_pos": 475.59553206812143, + "y_pos": -95.0764790057242 + }, + { + "id": 5932, + "x_pos": 698.5972643566975, + "y_pos": -223.07567396259037 + }, + { + "id": 5927, + "x_pos": 712.1869102905302, + "y_pos": -325.1179387271195 + }, + { + "id": 5926, + "x_pos": 531.5933667074005, + "y_pos": -162.53501928432934 + }, + { + "id": 5921, + "x_pos": -1013.405334076167, + "y_pos": -620.5752714410237 + }, + { + "id": 5920, + "x_pos": 390.5890359859595, + "y_pos": -171.483496523761 + }, + { + "id": 5915, + "x_pos": 374.10982344887725, + "y_pos": -152.03743441373126 + }, + { + "id": 5914, + "x_pos": 636.1109061292373, + "y_pos": -298.0402520646994 + }, + { + "id": 5913, + "x_pos": 896.6364573857409, + "y_pos": -105.50845286091135 + }, + { + "id": 5912, + "x_pos": 771.5836225841585, + "y_pos": -257.48470408846197 + }, + { + "id": 5903, + "x_pos": 886.5827564398696, + "y_pos": -345.09620256250446 + }, + { + "id": 5901, + "x_pos": 858.7274025360057, + "y_pos": -20.05756049207821 + }, + { + "id": 5855, + "x_pos": -854.3988379940051, + "y_pos": -631.1437001074037 + }, + { + "id": 5852, + "x_pos": -895.3628930060431, + "y_pos": -579.066013444984 + }, + { + "id": 5851, + "x_pos": -915.3602945731786, + "y_pos": -475.5945924762368 + }, + { + "id": 5849, + "x_pos": -803.8570465320977, + "y_pos": -386.7322548521306 + }, + { + "id": 5845, + "x_pos": 203.10159507813933, + "y_pos": 297.9207033433072 + }, + { + "id": 5835, + "x_pos": 136.59639821240944, + "y_pos": 604.9190932570391 + }, + { + "id": 5827, + "x_pos": 72.57755957414065, + "y_pos": 691.0362270330193 + }, + { + "id": 5823, + "x_pos": -612.9023025711576, + "y_pos": -248.5752714410237 + }, + { + "id": 5820, + "x_pos": -624.4003537465096, + "y_pos": -240.07486891945655 + }, + { + "id": 5817, + "x_pos": -633.9237396422923, + "y_pos": -246.4971822570369 + }, + { + "id": 5811, + "x_pos": -630.9046844679506, + "y_pos": -230.44968471213815 + }, + { + "id": 5809, + "x_pos": -649.4211412094273, + "y_pos": -219.975848613989 + }, + { + "id": 5807, + "x_pos": -693.9025191072305, + "y_pos": -273.0764790057242 + }, + { + "id": 5803, + "x_pos": -706.9079325090315, + "y_pos": -144.50644025307656 + }, + { + "id": 5793, + "x_pos": -719.9209246733553, + "y_pos": -112.55796301364535 + }, + { + "id": 5782, + "x_pos": -697.4129128386885, + "y_pos": -123.04508232350281 + }, + { + "id": 5770, + "x_pos": -649.3823812525288, + "y_pos": 58.5008051351283 + }, + { + "id": 5769, + "x_pos": -638.3968891693567, + "y_pos": 73.9235209942758 + }, + { + "id": 5764, + "x_pos": -627.9025191072305, + "y_pos": 102.42030082174006 + }, + { + "id": 5762, + "x_pos": -649.4174600962024, + "y_pos": 107.0116732174356 + }, + { + "id": 5757, + "x_pos": -688.8960230250686, + "y_pos": 74.87803605721138 + }, + { + "id": 5749, + "x_pos": -703.4023025711576, + "y_pos": 77.50805052333317 + }, + { + "id": 5742, + "x_pos": -718.4226569619314, + "y_pos": 254.4247285589763 + }, + { + "id": 5733, + "x_pos": -438.4181097044184, + "y_pos": 507.4235209942758 + }, + { + "id": 5729, + "x_pos": -2046.3787001393034, + "y_pos": 2168.9669933235054 + }, + { + "id": 5727, + "x_pos": -2012.3609441813946, + "y_pos": 2180.4126529119676 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/b99807ea1b34d21c3fa4fa74f57a25e3_1998878996251730722.png" + }, + "34": { + "name": "Violetgrass", + "clear_name": "Violetgrass", + "points": [ + { + "id": 25192, + "x_pos": -2810, + "y_pos": 3004.25 + }, + { + "id": 25191, + "x_pos": -2808.75, + "y_pos": 3002 + }, + { + "id": 25190, + "x_pos": -2812.5, + "y_pos": 3002.25 + }, + { + "id": 25189, + "x_pos": -2808, + "y_pos": 3004.5 + }, + { + "id": 25181, + "x_pos": -2599.75, + "y_pos": 2934.25 + }, + { + "id": 25180, + "x_pos": -2292, + "y_pos": 3142.5 + }, + { + "id": 25179, + "x_pos": -2485.25, + "y_pos": 3332.25 + }, + { + "id": 25178, + "x_pos": -2567, + "y_pos": 3186 + }, + { + "id": 25177, + "x_pos": -2652.5, + "y_pos": 3184.75 + }, + { + "id": 25176, + "x_pos": -2598, + "y_pos": 3190.5 + }, + { + "id": 25156, + "x_pos": -2337.5, + "y_pos": 2790.25 + }, + { + "id": 25155, + "x_pos": -2377, + "y_pos": 2883.75 + }, + { + "id": 25154, + "x_pos": -2291, + "y_pos": 3141 + }, + { + "id": 25153, + "x_pos": -2382.5, + "y_pos": 3108.25 + }, + { + "id": 25152, + "x_pos": -2806.5, + "y_pos": 3007.5 + }, + { + "id": 25151, + "x_pos": -2642, + "y_pos": 3172.25 + }, + { + "id": 25150, + "x_pos": -2487.75, + "y_pos": 3332.5 + }, + { + "id": 25149, + "x_pos": -2429.5, + "y_pos": 3245.25 + }, + { + "id": 25148, + "x_pos": -2441.75, + "y_pos": 3227.75 + }, + { + "id": 25147, + "x_pos": -2457.75, + "y_pos": 3226.25 + }, + { + "id": 25146, + "x_pos": -2652.5, + "y_pos": 3198.75 + }, + { + "id": 25145, + "x_pos": -2654, + "y_pos": 3191.25 + }, + { + "id": 25144, + "x_pos": -2588, + "y_pos": 3192.25 + }, + { + "id": 25143, + "x_pos": -2592, + "y_pos": 3173.75 + }, + { + "id": 25142, + "x_pos": -2621.5, + "y_pos": 3190.75 + }, + { + "id": 25141, + "x_pos": -2520.25, + "y_pos": 3092.25 + }, + { + "id": 25140, + "x_pos": -2487.75, + "y_pos": 3200.5 + }, + { + "id": 25105, + "x_pos": -2450.25, + "y_pos": 2774.5 + }, + { + "id": 25104, + "x_pos": -2334.5, + "y_pos": 2793 + }, + { + "id": 25103, + "x_pos": -2386.5, + "y_pos": 2884 + }, + { + "id": 25102, + "x_pos": -2603, + "y_pos": 2934 + }, + { + "id": 25101, + "x_pos": -2293.25, + "y_pos": 3142.75 + }, + { + "id": 25100, + "x_pos": -2298, + "y_pos": 3153 + }, + { + "id": 25099, + "x_pos": -2392.25, + "y_pos": 3118 + }, + { + "id": 25098, + "x_pos": -2379.25, + "y_pos": 3126.75 + }, + { + "id": 25097, + "x_pos": -2167.25, + "y_pos": 3104.25 + }, + { + "id": 25096, + "x_pos": -2177.5, + "y_pos": 3062.25 + }, + { + "id": 25095, + "x_pos": -2689, + "y_pos": 3164.75 + }, + { + "id": 25094, + "x_pos": -2482.25, + "y_pos": 3331.75 + }, + { + "id": 25093, + "x_pos": -2445.25, + "y_pos": 3229.5 + }, + { + "id": 25092, + "x_pos": -2562.75, + "y_pos": 3186.75 + }, + { + "id": 25091, + "x_pos": -2591.5, + "y_pos": 3174.5 + }, + { + "id": 25090, + "x_pos": -2517.5, + "y_pos": 3093.25 + }, + { + "id": 25089, + "x_pos": -2488.5, + "y_pos": 3200.75 + }, + { + "id": 17908, + "x_pos": -239, + "y_pos": 1634 + }, + { + "id": 17907, + "x_pos": -241, + "y_pos": 1633.5 + }, + { + "id": 17906, + "x_pos": -241, + "y_pos": 1636 + }, + { + "id": 17905, + "x_pos": -177, + "y_pos": 1649.5 + }, + { + "id": 17904, + "x_pos": -189.5, + "y_pos": 1650 + }, + { + "id": 17898, + "x_pos": -1453, + "y_pos": 1983.5 + }, + { + "id": 17893, + "x_pos": -2317.5, + "y_pos": 1373 + }, + { + "id": 3498, + "x_pos": -1943.5150302579436, + "y_pos": 2916.9672727225843 + }, + { + "id": 3266, + "x_pos": -2001.5137717754665, + "y_pos": 2815.977206249222 + }, + { + "id": 3265, + "x_pos": -1654.0047888143367, + "y_pos": 1307.0215846019923 + }, + { + "id": 3264, + "x_pos": -1617.5, + "y_pos": 1478 + }, + { + "id": 3263, + "x_pos": -1702.0221037973838, + "y_pos": 1490.9913970015614 + }, + { + "id": 3262, + "x_pos": -1230.0077831347135, + "y_pos": 1872.425732520282 + }, + { + "id": 3261, + "x_pos": -1413.4886889178197, + "y_pos": 2343.424958479245 + }, + { + "id": 3260, + "x_pos": -1473.99472095452, + "y_pos": 1967.4793993654926 + }, + { + "id": 3259, + "x_pos": -1465, + "y_pos": 1964 + }, + { + "id": 3258, + "x_pos": -1988.0113416024074, + "y_pos": 2609.9739810782357 + }, + { + "id": 3257, + "x_pos": -1862.5113416024074, + "y_pos": 2673.4650796063142 + }, + { + "id": 3256, + "x_pos": -1313.0076095509235, + "y_pos": 2364.443406457286 + }, + { + "id": 3255, + "x_pos": -1481, + "y_pos": 1971.5 + }, + { + "id": 3254, + "x_pos": -2422.4807040634823, + "y_pos": 1595.441858375213 + }, + { + "id": 3253, + "x_pos": -2128.510343495615, + "y_pos": 953.9739810782357 + }, + { + "id": 3252, + "x_pos": -1962.0180245783201, + "y_pos": 2658.991267994722 + }, + { + "id": 3251, + "x_pos": -1152.9939398274655, + "y_pos": 2306.963402517401 + }, + { + "id": 3250, + "x_pos": -1455.9931587004107, + "y_pos": 1994.4724329961623 + }, + { + "id": 3249, + "x_pos": -1483.9978888586866, + "y_pos": 1995.9965572751394 + }, + { + "id": 3248, + "x_pos": -2131.524273594758, + "y_pos": 957.517714396809 + }, + { + "id": 3247, + "x_pos": -1938.0070020076587, + "y_pos": 2496.0033946376298 + }, + { + "id": 3246, + "x_pos": -1890.5174604310027, + "y_pos": 2957.9342469716858 + }, + { + "id": 3245, + "x_pos": -1164.989990796244, + "y_pos": 2311.961854435328 + }, + { + "id": 3244, + "x_pos": -1819.4978020667916, + "y_pos": 2642.025712820855 + }, + { + "id": 3243, + "x_pos": -1769.999971864166, + "y_pos": 2882.4761741945067 + }, + { + "id": 3242, + "x_pos": -1938.017200055318, + "y_pos": 2500.5071358359746 + }, + { + "id": 3241, + "x_pos": -1796.5109510388797, + "y_pos": 2880.9163150210024 + }, + { + "id": 3240, + "x_pos": -1772.000145447956, + "y_pos": 2891.973723064557 + }, + { + "id": 3239, + "x_pos": -1697.9970643356844, + "y_pos": 2764.941471354695 + }, + { + "id": 3238, + "x_pos": -1797.500969970958, + "y_pos": 2877.999782446125 + }, + { + "id": 3237, + "x_pos": -937.0262698083425, + "y_pos": 2533.450888853975 + }, + { + "id": 3236, + "x_pos": -2006.5222339852262, + "y_pos": 2844.9839146048735 + }, + { + "id": 3235, + "x_pos": -1512.0121661254095, + "y_pos": 2615.8987700908374 + }, + { + "id": 3234, + "x_pos": -1993.0105604753526, + "y_pos": 2864.9810764544054 + }, + { + "id": 3233, + "x_pos": -1234.0164189282632, + "y_pos": 1767.512554123231 + }, + { + "id": 3232, + "x_pos": -535.5194566445871, + "y_pos": 1739.455275086516 + }, + { + "id": 3231, + "x_pos": -368.0034435399648, + "y_pos": 1624.448695737704 + }, + { + "id": 3228, + "x_pos": -1621.504702022442, + "y_pos": 1485.4741100850752 + }, + { + "id": 3227, + "x_pos": -675.5112982064597, + "y_pos": 1434.965466626832 + }, + { + "id": 3225, + "x_pos": -643.0241434069158, + "y_pos": 1758.461983442167 + }, + { + "id": 3224, + "x_pos": -635.009345388823, + "y_pos": 1504.941213341016 + }, + { + "id": 3223, + "x_pos": -673.5111246226697, + "y_pos": 1444.4630154968827 + }, + { + "id": 3222, + "x_pos": -565.5164623242108, + "y_pos": 1274.8768389281308 + }, + { + "id": 3221, + "x_pos": -665.0103868915626, + "y_pos": 1453.4606933737723 + }, + { + "id": 3220, + "x_pos": -538.5141189430465, + "y_pos": 937.4639185447586 + }, + { + "id": 3219, + "x_pos": -559.0175038269504, + "y_pos": 939.4988793982493 + }, + { + "id": 3216, + "x_pos": -551.5152472376813, + "y_pos": 943.9622414558462 + }, + { + "id": 3215, + "x_pos": -458.5071755914487, + "y_pos": 960.4579842301441 + }, + { + "id": 3214, + "x_pos": -500.51082085103735, + "y_pos": 919.4685627909789 + }, + { + "id": 3213, + "x_pos": -559.0158981768932, + "y_pos": 943.4623704626856 + }, + { + "id": 3208, + "x_pos": -350.5044416467572, + "y_pos": 1666.4515338881715 + }, + { + "id": 3206, + "x_pos": -579.9833512162786, + "y_pos": 1747.9615964216487 + }, + { + "id": 3202, + "x_pos": -88.00383410349241, + "y_pos": 2385.9413423478554 + }, + { + "id": 3199, + "x_pos": -72.00218505748762, + "y_pos": 2395.453468990763 + }, + { + "id": 1663, + "x_pos": -1130.0045765674117, + "y_pos": 788.5026622545438 + }, + { + "id": 1647, + "x_pos": -1301.4994279290736, + "y_pos": 730.5005324509088 + }, + { + "id": 1639, + "x_pos": -1137.4982837872203, + "y_pos": 784.5066556363599 + }, + { + "id": 1633, + "x_pos": -1345.9989988758784, + "y_pos": 900.0114476945391 + }, + { + "id": 1612, + "x_pos": -1128.5020022482427, + "y_pos": 793.5013311272719 + }, + { + "id": 1587, + "x_pos": -1348.0125855603828, + "y_pos": 908.0111814690849 + }, + { + "id": 1582, + "x_pos": -1342.5024313014374, + "y_pos": 907.9968052945474 + }, + { + "id": 1577, + "x_pos": -1370.5014301773163, + "y_pos": 766.004525832725 + }, + { + "id": 1550, + "x_pos": -1205.0004290531947, + "y_pos": 858.0039933818161 + }, + { + "id": 1540, + "x_pos": -1194, + "y_pos": 853.0023960290896 + }, + { + "id": 1527, + "x_pos": -1375.9997139645366, + "y_pos": 730.0029284799984 + }, + { + "id": 1518, + "x_pos": -1210.436935325261, + "y_pos": 849.9298649980501 + }, + { + "id": 1511, + "x_pos": -1268.915339647786, + "y_pos": 742.4016450998834 + }, + { + "id": 1505, + "x_pos": -1353.4967105921728, + "y_pos": 904.0061231854511 + }, + { + "id": 1504, + "x_pos": -1567.9403677508199, + "y_pos": 708.4479683289492 + }, + { + "id": 1493, + "x_pos": -1566.0005720709264, + "y_pos": 646.0050582836338 + }, + { + "id": 1470, + "x_pos": -477, + "y_pos": 1706.5565315897043 + }, + { + "id": 1453, + "x_pos": -451.5, + "y_pos": 1728.5418815478947 + }, + { + "id": 1450, + "x_pos": -482.5, + "y_pos": 1724.1855646502595 + }, + { + "id": 1448, + "x_pos": -641, + "y_pos": 1513.1630261243986 + }, + { + "id": 1444, + "x_pos": -365, + "y_pos": 1588.269705934144 + }, + { + "id": 1443, + "x_pos": -371.5, + "y_pos": 1616.5097641485422 + }, + { + "id": 1435, + "x_pos": -685.5, + "y_pos": 1597.2458552069384 + }, + { + "id": 1414, + "x_pos": -420, + "y_pos": 1735.729514775689 + }, + { + "id": 1411, + "x_pos": -679.5, + "y_pos": 1529.7204993653445 + }, + { + "id": 1400, + "x_pos": -2038, + "y_pos": 1101 + }, + { + "id": 1392, + "x_pos": -2127, + "y_pos": 966 + }, + { + "id": 1387, + "x_pos": -2182.5, + "y_pos": 876 + }, + { + "id": 1374, + "x_pos": -1777.5, + "y_pos": 1076.5 + }, + { + "id": 1373, + "x_pos": -1862.5, + "y_pos": 1114.5 + }, + { + "id": 1370, + "x_pos": -1845.5, + "y_pos": 1103.5 + }, + { + "id": 1362, + "x_pos": -572, + "y_pos": 1242.1483760825886 + }, + { + "id": 1359, + "x_pos": -1488.5, + "y_pos": 1342 + }, + { + "id": 1356, + "x_pos": -1625, + "y_pos": 1483 + }, + { + "id": 1346, + "x_pos": -1474.5, + "y_pos": 1347.5 + }, + { + "id": 1344, + "x_pos": -1695, + "y_pos": 1489.5 + }, + { + "id": 1320, + "x_pos": -1501, + "y_pos": 1610 + }, + { + "id": 1319, + "x_pos": -1660.5, + "y_pos": 1307.5 + }, + { + "id": 1313, + "x_pos": -2322, + "y_pos": 1372.5 + }, + { + "id": 1307, + "x_pos": -2268, + "y_pos": 1398 + }, + { + "id": 1290, + "x_pos": -1448, + "y_pos": 1505 + }, + { + "id": 1280, + "x_pos": -2308, + "y_pos": 1383.5 + }, + { + "id": 1255, + "x_pos": -555, + "y_pos": 1242.1483760825886 + }, + { + "id": 1254, + "x_pos": -2287.5, + "y_pos": 1406.5 + }, + { + "id": 1248, + "x_pos": -2333.5, + "y_pos": 1381 + }, + { + "id": 1245, + "x_pos": -1552.9902809391556, + "y_pos": 465.95648754348986 + }, + { + "id": 1234, + "x_pos": -2025.5, + "y_pos": 1113.5 + }, + { + "id": 1233, + "x_pos": -2404, + "y_pos": 1437 + }, + { + "id": 1222, + "x_pos": -2031.5, + "y_pos": 1117.5 + }, + { + "id": 1221, + "x_pos": -1751.5, + "y_pos": 1597 + }, + { + "id": 1215, + "x_pos": -1422.5, + "y_pos": 1513 + }, + { + "id": 1205, + "x_pos": -521, + "y_pos": 1426.3027649847377 + }, + { + "id": 1196, + "x_pos": -1334.416054736444, + "y_pos": 359.78450589994736 + }, + { + "id": 1194, + "x_pos": -1227, + "y_pos": 1781.2280096613008 + }, + { + "id": 1188, + "x_pos": -2383.5, + "y_pos": 1533 + }, + { + "id": 1179, + "x_pos": -1733, + "y_pos": 1601 + }, + { + "id": 1178, + "x_pos": -1989, + "y_pos": 1134 + }, + { + "id": 1176, + "x_pos": -2312.5, + "y_pos": 1395.5 + }, + { + "id": 1171, + "x_pos": -2494, + "y_pos": 1353.5 + }, + { + "id": 1166, + "x_pos": -522.5, + "y_pos": 1230 + }, + { + "id": 1160, + "x_pos": -2471.5, + "y_pos": 1423 + }, + { + "id": 1158, + "x_pos": -630.5, + "y_pos": 1278.1889454291386 + }, + { + "id": 1156, + "x_pos": -579.5, + "y_pos": 1252.5 + }, + { + "id": 1148, + "x_pos": -542.5, + "y_pos": 1241.1472491562954 + }, + { + "id": 1144, + "x_pos": -581, + "y_pos": 1745.604989420306 + }, + { + "id": 1141, + "x_pos": -2468, + "y_pos": 1402.5 + }, + { + "id": 1138, + "x_pos": -510, + "y_pos": 1489.2052858603884 + }, + { + "id": 1114, + "x_pos": -619.5, + "y_pos": 1691.580760505005 + }, + { + "id": 1102, + "x_pos": -2385, + "y_pos": 1549 + }, + { + "id": 1100, + "x_pos": -1480, + "y_pos": 1617.5 + }, + { + "id": 1098, + "x_pos": -449.5, + "y_pos": 1756.7126108812931 + }, + { + "id": 1096, + "x_pos": -2401, + "y_pos": 1540 + }, + { + "id": 1095, + "x_pos": -2499, + "y_pos": 1375.5 + }, + { + "id": 1075, + "x_pos": -1234, + "y_pos": 1870.2189942509563 + }, + { + "id": 1056, + "x_pos": -2194, + "y_pos": 826 + }, + { + "id": 1000, + "x_pos": -1125.502288283706, + "y_pos": 797.0023960290896 + }, + { + "id": 998, + "x_pos": -2423.5, + "y_pos": 1455.5 + }, + { + "id": 994, + "x_pos": -2438.5, + "y_pos": 1603 + }, + { + "id": 927, + "x_pos": -1704, + "y_pos": 2620.0003613698973 + }, + { + "id": 884, + "x_pos": -1778.9992352885463, + "y_pos": 2594.0018068494874 + }, + { + "id": 869, + "x_pos": -1734.5006554669603, + "y_pos": 2681.00144547959 + }, + { + "id": 855, + "x_pos": -1162, + "y_pos": 1954.0848900220822 + }, + { + "id": 853, + "x_pos": -1417.4995630220265, + "y_pos": 2827.499156803572 + }, + { + "id": 852, + "x_pos": -1412.0014201784143, + "y_pos": 2863.501084109693 + }, + { + "id": 821, + "x_pos": -1419.49967226652, + "y_pos": 2819.4995181734703 + }, + { + "id": 815, + "x_pos": -1416, + "y_pos": 2799.5007227397955 + }, + { + "id": 781, + "x_pos": -1408.4998907555064, + "y_pos": 2862.4996386301027 + }, + { + "id": 734, + "x_pos": -1477.0005462224672, + "y_pos": 2783.000602283162 + }, + { + "id": 725, + "x_pos": -858, + "y_pos": 2191.8786625104526 + }, + { + "id": 719, + "x_pos": -1603.000873955947, + "y_pos": 2887.49855452041 + }, + { + "id": 706, + "x_pos": -1729.5009832004407, + "y_pos": 2692.9998795433676 + }, + { + "id": 705, + "x_pos": -1564.5018571563878, + "y_pos": 2862.00144547959 + }, + { + "id": 639, + "x_pos": -1708, + "y_pos": 2881.9992772602045 + }, + { + "id": 623, + "x_pos": -1695.9994537775328, + "y_pos": 2631.0003613698973 + }, + { + "id": 608, + "x_pos": -870, + "y_pos": 2534.2640713026785 + }, + { + "id": 603, + "x_pos": -1720.0002184889868, + "y_pos": 2682.001686392855 + }, + { + "id": 595, + "x_pos": -1475.5, + "y_pos": 2802 + }, + { + "id": 585, + "x_pos": -846, + "y_pos": 2565.2990060177635 + }, + { + "id": 568, + "x_pos": -1594.0013109339206, + "y_pos": 2874.0001204566324 + }, + { + "id": 567, + "x_pos": -799, + "y_pos": 2560.1784249044067 + }, + { + "id": 549, + "x_pos": -1696.4883108392069, + "y_pos": 2885.006022831625 + }, + { + "id": 537, + "x_pos": -1607.0034958237884, + "y_pos": 2889.00289095918 + }, + { + "id": 525, + "x_pos": -1661.4973781321587, + "y_pos": 2679.0007227397955 + }, + { + "id": 522, + "x_pos": -1575.0021848898677, + "y_pos": 2859.501686392855 + }, + { + "id": 521, + "x_pos": -1554.50032773348, + "y_pos": 2865.0004818265297 + }, + { + "id": 512, + "x_pos": -1780.4928991079296, + "y_pos": 2608.505661461728 + }, + { + "id": 510, + "x_pos": -1767.9998907555064, + "y_pos": 2926.4996386301027 + }, + { + "id": 495, + "x_pos": -1782.5004369779735, + "y_pos": 2933.0009636530604 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/7b77d55a6bb4fb86952c461c2cabc96c_8109218846101342870.png" + }, + "40": { + "name": "Cor Lapis", + "clear_name": "CorLapis", + "points": [ + { + "id": 25188, + "x_pos": -2548.5832034018426, + "y_pos": 2903.0331983812966 + }, + { + "id": 25187, + "x_pos": -2743.804570645165, + "y_pos": 2980.1870456375673 + }, + { + "id": 25186, + "x_pos": -2627.3317298122092, + "y_pos": 3223.790792823618 + }, + { + "id": 25185, + "x_pos": -2609.831808429475, + "y_pos": 3225.789740853639 + }, + { + "id": 25184, + "x_pos": -2471.8598488457205, + "y_pos": 3287.076727911467 + }, + { + "id": 25173, + "x_pos": -2744.0545695220612, + "y_pos": 2970.692042494965 + }, + { + "id": 25172, + "x_pos": -2723.9424102969256, + "y_pos": 3206.7719781794676 + }, + { + "id": 25171, + "x_pos": -2606.081825276032, + "y_pos": 3227.788688883661 + }, + { + "id": 25170, + "x_pos": -2475.3598331222674, + "y_pos": 3286.576990903962 + }, + { + "id": 25135, + "x_pos": -2550.3331955401163, + "y_pos": 2915.026886561427 + }, + { + "id": 25134, + "x_pos": -2639.6383515934517, + "y_pos": 2840.2884322996388 + }, + { + "id": 25133, + "x_pos": -2740.8045841224107, + "y_pos": 2979.687308630062 + }, + { + "id": 25132, + "x_pos": -2727.9423923272648, + "y_pos": 3208.0213206982307 + }, + { + "id": 25131, + "x_pos": -2481.219655013497, + "y_pos": 3288.1516148754727 + }, + { + "id": 25130, + "x_pos": -2322.498139055741, + "y_pos": 3168.71447008168 + }, + { + "id": 25129, + "x_pos": -2280.6094112225182, + "y_pos": 3113.3546878044463 + }, + { + "id": 25128, + "x_pos": -2362.5534400669217, + "y_pos": 2814.067733086641 + }, + { + "id": 18003, + "x_pos": -1464, + "y_pos": 2428 + }, + { + "id": 17909, + "x_pos": -1253.5, + "y_pos": 492 + }, + { + "id": 17888, + "x_pos": -1465.5, + "y_pos": 2430 + }, + { + "id": 17885, + "x_pos": -1790.5, + "y_pos": 2466 + }, + { + "id": 17884, + "x_pos": -1958, + "y_pos": 3012.5 + }, + { + "id": 15839, + "x_pos": -1579.5, + "y_pos": 2470.5 + }, + { + "id": 15838, + "x_pos": -1993, + "y_pos": 2561.5 + }, + { + "id": 15833, + "x_pos": -1302, + "y_pos": 1155 + }, + { + "id": 15413, + "x_pos": -2222.6000061035156, + "y_pos": 1696.3999633789062 + }, + { + "id": 11080, + "x_pos": -2304, + "y_pos": 1005.5 + }, + { + "id": 11079, + "x_pos": -1931.5, + "y_pos": 3149 + }, + { + "id": 11078, + "x_pos": -1757.5, + "y_pos": 2848.5 + }, + { + "id": 11077, + "x_pos": -1639, + "y_pos": 2080.5 + }, + { + "id": 11020, + "x_pos": -466, + "y_pos": 914.5 + }, + { + "id": 11019, + "x_pos": -461.5, + "y_pos": 918 + }, + { + "id": 11018, + "x_pos": -471.5, + "y_pos": 918 + }, + { + "id": 11015, + "x_pos": -511, + "y_pos": 917.5 + }, + { + "id": 11014, + "x_pos": -529, + "y_pos": 936 + }, + { + "id": 11012, + "x_pos": -462, + "y_pos": 959 + }, + { + "id": 11011, + "x_pos": -465, + "y_pos": 960.5 + }, + { + "id": 11010, + "x_pos": -524.5, + "y_pos": 937.5 + }, + { + "id": 10982, + "x_pos": -1529, + "y_pos": 2309.5 + }, + { + "id": 10981, + "x_pos": -1536, + "y_pos": 2232 + }, + { + "id": 10980, + "x_pos": -1477.5, + "y_pos": 2222.5 + }, + { + "id": 10979, + "x_pos": -1478.5, + "y_pos": 2177 + }, + { + "id": 10978, + "x_pos": -1550.5, + "y_pos": 2100.5 + }, + { + "id": 10977, + "x_pos": -1614, + "y_pos": 2153 + }, + { + "id": 10976, + "x_pos": -1544, + "y_pos": 2097.5 + }, + { + "id": 10973, + "x_pos": -1683, + "y_pos": 1981.5 + }, + { + "id": 10972, + "x_pos": -1859, + "y_pos": 2097.5 + }, + { + "id": 10971, + "x_pos": -2603.5, + "y_pos": 1611 + }, + { + "id": 10970, + "x_pos": -2602, + "y_pos": 1611 + }, + { + "id": 10969, + "x_pos": -2603, + "y_pos": 1621 + }, + { + "id": 10968, + "x_pos": -2572, + "y_pos": 1651.5 + }, + { + "id": 10967, + "x_pos": -2574, + "y_pos": 1654.5 + }, + { + "id": 10966, + "x_pos": -2578, + "y_pos": 1653 + }, + { + "id": 10965, + "x_pos": -2548.5, + "y_pos": 1571 + }, + { + "id": 10964, + "x_pos": -2567, + "y_pos": 1518.5 + }, + { + "id": 10963, + "x_pos": -2267, + "y_pos": 1328.5 + }, + { + "id": 10962, + "x_pos": -2402.5, + "y_pos": 1216 + }, + { + "id": 10961, + "x_pos": -1813.5, + "y_pos": 1042.5 + }, + { + "id": 10954, + "x_pos": 23, + "y_pos": 2673.5 + }, + { + "id": 10593, + "x_pos": 183, + "y_pos": 2498.5 + }, + { + "id": 9509, + "x_pos": -1679.6256497953373, + "y_pos": 1892.0226514444757 + }, + { + "id": 9508, + "x_pos": -1646.5734386482136, + "y_pos": 1974.548052484317 + }, + { + "id": 9507, + "x_pos": -1645.5735072468724, + "y_pos": 2025.8060226973712 + }, + { + "id": 9506, + "x_pos": -1833.585271916876, + "y_pos": 719.8490781435426 + }, + { + "id": 3662, + "x_pos": -2567.5, + "y_pos": 1605 + }, + { + "id": 3661, + "x_pos": -1840, + "y_pos": 1791 + }, + { + "id": 3660, + "x_pos": -1531.5, + "y_pos": 2308 + }, + { + "id": 3659, + "x_pos": -1544.5, + "y_pos": 2215 + }, + { + "id": 3658, + "x_pos": -1514.5, + "y_pos": 2316 + }, + { + "id": 3657, + "x_pos": -1533, + "y_pos": 2222.5 + }, + { + "id": 2679, + "x_pos": -1205.5, + "y_pos": 833 + }, + { + "id": 2678, + "x_pos": -1204, + "y_pos": 838.5 + }, + { + "id": 1708, + "x_pos": -2357, + "y_pos": 1232 + }, + { + "id": 1679, + "x_pos": -2394.5, + "y_pos": 1221.5 + }, + { + "id": 1656, + "x_pos": -1021.0085810638975, + "y_pos": 692.509850341813 + }, + { + "id": 1655, + "x_pos": -1529.4289263322898, + "y_pos": 540.8079337399345 + }, + { + "id": 1649, + "x_pos": -1019.382445569513, + "y_pos": 686.459682248943 + }, + { + "id": 1638, + "x_pos": -1272.3672856899611, + "y_pos": 494.8750225544436 + }, + { + "id": 1630, + "x_pos": -1179.4018959810132, + "y_pos": 564.4298649980501 + }, + { + "id": 1616, + "x_pos": -810.9183430201501, + "y_pos": 659.9687339143925 + }, + { + "id": 1576, + "x_pos": -807.922061481172, + "y_pos": 664.8976517180672 + }, + { + "id": 1536, + "x_pos": -1586.5004290531947, + "y_pos": 738.0005324509088 + }, + { + "id": 1523, + "x_pos": -1590.0622188581615, + "y_pos": 732.9122941180594 + }, + { + "id": 1490, + "x_pos": -861.8751516652001, + "y_pos": 539.8297642271955 + }, + { + "id": 1489, + "x_pos": -1170.5005720709264, + "y_pos": 565.0013311272719 + }, + { + "id": 1481, + "x_pos": -623, + "y_pos": 1457.2753405656094 + }, + { + "id": 1479, + "x_pos": -412, + "y_pos": 1463.0702399802726 + }, + { + "id": 1462, + "x_pos": -613, + "y_pos": 1452.269705934144 + }, + { + "id": 1437, + "x_pos": -342, + "y_pos": 1648.1479978944935 + }, + { + "id": 1384, + "x_pos": -2082.5, + "y_pos": 1173.5 + }, + { + "id": 1379, + "x_pos": -2299.5, + "y_pos": 986 + }, + { + "id": 1376, + "x_pos": -1817, + "y_pos": 1041 + }, + { + "id": 1354, + "x_pos": -1647, + "y_pos": 1531 + }, + { + "id": 1347, + "x_pos": -2195.5, + "y_pos": 1111 + }, + { + "id": 1343, + "x_pos": -1618, + "y_pos": 1531.5 + }, + { + "id": 1334, + "x_pos": -1686.5, + "y_pos": 1120.5 + }, + { + "id": 1333, + "x_pos": -1541, + "y_pos": 1538.5 + }, + { + "id": 1331, + "x_pos": -1611, + "y_pos": 1495 + }, + { + "id": 1323, + "x_pos": -1766, + "y_pos": 1152.5 + }, + { + "id": 1308, + "x_pos": -2264, + "y_pos": 1324.5 + }, + { + "id": 1301, + "x_pos": -1613, + "y_pos": 1669 + }, + { + "id": 1297, + "x_pos": -1426, + "y_pos": 1534.5 + }, + { + "id": 1257, + "x_pos": -1699.5, + "y_pos": 1668 + }, + { + "id": 1220, + "x_pos": -1534.5, + "y_pos": 1436 + }, + { + "id": 1214, + "x_pos": -1731, + "y_pos": 1694.5 + }, + { + "id": 1163, + "x_pos": -1522.438794555772, + "y_pos": 541.9000477471573 + }, + { + "id": 1128, + "x_pos": -1263.0007150886581, + "y_pos": 499.00292847999845 + }, + { + "id": 1117, + "x_pos": -2119, + "y_pos": 1106 + }, + { + "id": 1089, + "x_pos": -1520, + "y_pos": 1704.5 + }, + { + "id": 1074, + "x_pos": -1983, + "y_pos": 791 + }, + { + "id": 1065, + "x_pos": -656, + "y_pos": 1935.1446171156144 + }, + { + "id": 1036, + "x_pos": -253, + "y_pos": 1811.2449135556967 + }, + { + "id": 992, + "x_pos": -2228.199981689453, + "y_pos": 1694.500015258789 + }, + { + "id": 874, + "x_pos": -2565.5, + "y_pos": 1659 + }, + { + "id": 854, + "x_pos": -2575, + "y_pos": 1696 + }, + { + "id": 836, + "x_pos": -1629.9911511960354, + "y_pos": 2968.4946999081694 + }, + { + "id": 817, + "x_pos": -1557.0043697797355, + "y_pos": 2942.0026500459153 + }, + { + "id": 808, + "x_pos": -1810.9993445330397, + "y_pos": 2871.498915890307 + }, + { + "id": 795, + "x_pos": -2091, + "y_pos": 1925.5 + }, + { + "id": 785, + "x_pos": -2576, + "y_pos": 1650.5 + }, + { + "id": 756, + "x_pos": -2611.5, + "y_pos": 1610.5 + }, + { + "id": 730, + "x_pos": -2023.5, + "y_pos": 1987.5 + }, + { + "id": 727, + "x_pos": -2563, + "y_pos": 1522 + }, + { + "id": 722, + "x_pos": -1729.50032773348, + "y_pos": 2769.4984340637775 + }, + { + "id": 715, + "x_pos": -1832, + "y_pos": 1791 + }, + { + "id": 710, + "x_pos": -1946, + "y_pos": 1902.5 + }, + { + "id": 708, + "x_pos": -2557, + "y_pos": 1566 + }, + { + "id": 704, + "x_pos": -1827.5, + "y_pos": 1852.5 + }, + { + "id": 702, + "x_pos": -2639, + "y_pos": 1606 + }, + { + "id": 700, + "x_pos": -2624.5, + "y_pos": 1571 + }, + { + "id": 686, + "x_pos": -1744.5005462224672, + "y_pos": 2620.5021682193856 + }, + { + "id": 683, + "x_pos": -1573.5638404096057, + "y_pos": 2830.7740961279706 + }, + { + "id": 682, + "x_pos": -976, + "y_pos": 2222.0826361694963 + }, + { + "id": 679, + "x_pos": -1862.0007647114537, + "y_pos": 2668.499156803572 + }, + { + "id": 629, + "x_pos": -1982, + "y_pos": 2019 + }, + { + "id": 619, + "x_pos": -1927.5, + "y_pos": 2007.5 + }, + { + "id": 613, + "x_pos": -1821.5, + "y_pos": 1956 + }, + { + "id": 605, + "x_pos": -1896.5, + "y_pos": 2009 + }, + { + "id": 596, + "x_pos": -1835, + "y_pos": 1914.5 + }, + { + "id": 570, + "x_pos": -1853, + "y_pos": 2093.5 + }, + { + "id": 526, + "x_pos": -1852, + "y_pos": 2009 + }, + { + "id": 519, + "x_pos": -1611.0001092444936, + "y_pos": 2966.9996386301027 + }, + { + "id": 518, + "x_pos": -2029.5, + "y_pos": 2121.5 + }, + { + "id": 515, + "x_pos": -1545.9966134207048, + "y_pos": 2921.9959044744946 + }, + { + "id": 511, + "x_pos": -1712.5005462224672, + "y_pos": 2914.498915890307 + }, + { + "id": 483, + "x_pos": -1501.4981428436122, + "y_pos": 3029.0003613698973 + }, + { + "id": 472, + "x_pos": -1734.5003277334804, + "y_pos": 3109.4973499540847 + }, + { + "id": 459, + "x_pos": -111, + "y_pos": 2360.0679861276867 + }, + { + "id": 447, + "x_pos": 219.5, + "y_pos": 2573 + }, + { + "id": 446, + "x_pos": 196, + "y_pos": 2569.30125987035 + }, + { + "id": 445, + "x_pos": 203, + "y_pos": 2595.16152101001 + }, + { + "id": 394, + "x_pos": -1394.0007647114535, + "y_pos": 3217.000602283162 + }, + { + "id": 392, + "x_pos": -1392.9985798215857, + "y_pos": 3226.000240913265 + }, + { + "id": 382, + "x_pos": -1598.4993445330397, + "y_pos": 3198.000602283162 + }, + { + "id": 373, + "x_pos": -1943.9987983105727, + "y_pos": 3216.4998795433676 + }, + { + "id": 371, + "x_pos": -2637, + "y_pos": 1703 + }, + { + "id": 367, + "x_pos": -1812.5010924449339, + "y_pos": 3263.4998795433676 + }, + { + "id": 365, + "x_pos": -1724.498798310573, + "y_pos": 3301.9992772602045 + }, + { + "id": 11, + "x_pos": -1705, + "y_pos": 1130 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/7e4c2ba659e2cbb09d1e466a5802f420_3756978506289510540.png" + }, + "32": { + "name": "Qingxin", + "clear_name": "Qingxin", + "points": [ + { + "id": 25183, + "x_pos": -2807.99682742542, + "y_pos": 3014.356595865772 + }, + { + "id": 25182, + "x_pos": -2476.831870742372, + "y_pos": 2809.9966302291905 + }, + { + "id": 25169, + "x_pos": -2248.610424417051, + "y_pos": 3128.8519596162596 + }, + { + "id": 25168, + "x_pos": -2424.5540920093104, + "y_pos": 3357.7315243044986 + }, + { + "id": 25167, + "x_pos": -2490.220422984126, + "y_pos": 3235.7956944731795 + }, + { + "id": 25166, + "x_pos": -2513.2203196585765, + "y_pos": 3168.3311984599495 + }, + { + "id": 25165, + "x_pos": -2525.2202657495945, + "y_pos": 3166.3322504299276 + }, + { + "id": 25164, + "x_pos": -2566.7200793143647, + "y_pos": 3192.8183118277148 + }, + { + "id": 25163, + "x_pos": -2517.220301688916, + "y_pos": 3267.27912594602 + }, + { + "id": 25162, + "x_pos": -2669.0529936137996, + "y_pos": 3165.999051756223 + }, + { + "id": 25161, + "x_pos": -2809.0523646756747, + "y_pos": 3106.5303478630794 + }, + { + "id": 25160, + "x_pos": -2820.0523152591077, + "y_pos": 3121.5224580882414 + }, + { + "id": 25159, + "x_pos": -2805.9968364102506, + "y_pos": 2988.370271475491 + }, + { + "id": 25158, + "x_pos": -2807.496829671628, + "y_pos": 2962.883684092715 + }, + { + "id": 25157, + "x_pos": -2573.8592058494346, + "y_pos": 2719.84962077778 + }, + { + "id": 25127, + "x_pos": -2524.60831243973, + "y_pos": 3072.812025046411 + }, + { + "id": 25126, + "x_pos": -2207.6106086060736, + "y_pos": 2991.4242825522724 + }, + { + "id": 25125, + "x_pos": -2288.6102447204444, + "y_pos": 3076.3795738281915 + }, + { + "id": 25124, + "x_pos": -2293.110224504576, + "y_pos": 3048.894038415394 + }, + { + "id": 25123, + "x_pos": -2342.110004376232, + "y_pos": 3032.9024541752215 + }, + { + "id": 25122, + "x_pos": -2401.109739323737, + "y_pos": 3025.40639906264 + }, + { + "id": 25121, + "x_pos": -2399.0542065658974, + "y_pos": 3347.736784154391 + }, + { + "id": 25120, + "x_pos": -2433.720676805583, + "y_pos": 3304.25966450142 + }, + { + "id": 25119, + "x_pos": -2637.497593382208, + "y_pos": 3310.3120213694183 + }, + { + "id": 25118, + "x_pos": -2692.552888042043, + "y_pos": 3125.5203541482842 + }, + { + "id": 25117, + "x_pos": -2714.552789208909, + "y_pos": 3089.5392896078956 + }, + { + "id": 25116, + "x_pos": -2778.5525016943375, + "y_pos": 3132.016935245855 + }, + { + "id": 25115, + "x_pos": -2658.3863850387083, + "y_pos": 2958.830275254739 + }, + { + "id": 25114, + "x_pos": -2669.21964935925, + "y_pos": 2898.139985231798 + }, + { + "id": 25113, + "x_pos": -2756.719256272922, + "y_pos": 2894.6418261792605 + }, + { + "id": 25112, + "x_pos": -2562.109258635313, + "y_pos": 2726.096333371597 + }, + { + "id": 25111, + "x_pos": -2501.1095326726386, + "y_pos": 2749.583972724351 + }, + { + "id": 25110, + "x_pos": -2562.109258635313, + "y_pos": 2671.8748680572608 + }, + { + "id": 25109, + "x_pos": -2441.5264568398957, + "y_pos": 2705.940276610673 + }, + { + "id": 25108, + "x_pos": -2466.27634565262, + "y_pos": 2692.1975089042744 + }, + { + "id": 25107, + "x_pos": -2450.526416408159, + "y_pos": 2688.1996128442315 + }, + { + "id": 25106, + "x_pos": -2446.0264366240276, + "y_pos": 2670.2090805740363 + }, + { + "id": 18002, + "x_pos": -1673.5, + "y_pos": 1305 + }, + { + "id": 18001, + "x_pos": -1495.5, + "y_pos": 1363 + }, + { + "id": 17911, + "x_pos": -1309.5, + "y_pos": 620.5 + }, + { + "id": 17910, + "x_pos": -1277, + "y_pos": 625 + }, + { + "id": 17903, + "x_pos": -327.5, + "y_pos": 1866.5 + }, + { + "id": 17902, + "x_pos": -325.5, + "y_pos": 1865.5 + }, + { + "id": 17901, + "x_pos": -325.5, + "y_pos": 1869 + }, + { + "id": 17900, + "x_pos": 59.5, + "y_pos": 2302 + }, + { + "id": 17899, + "x_pos": -1165, + "y_pos": 2328.5 + }, + { + "id": 17897, + "x_pos": -1468.5, + "y_pos": 1709.5 + }, + { + "id": 17896, + "x_pos": -1486, + "y_pos": 1604 + }, + { + "id": 17895, + "x_pos": -2415, + "y_pos": 1445.5 + }, + { + "id": 17894, + "x_pos": -2411.5, + "y_pos": 1445.5 + }, + { + "id": 17892, + "x_pos": -2507, + "y_pos": 1475.5 + }, + { + "id": 17891, + "x_pos": -2514.5, + "y_pos": 1472 + }, + { + "id": 17890, + "x_pos": -2514.5, + "y_pos": 1477.5 + }, + { + "id": 17889, + "x_pos": -2392, + "y_pos": 1542 + }, + { + "id": 17887, + "x_pos": -137.5, + "y_pos": 2642 + }, + { + "id": 17886, + "x_pos": -37, + "y_pos": 2713 + }, + { + "id": 17883, + "x_pos": -2046, + "y_pos": 3216.5 + }, + { + "id": 17882, + "x_pos": -2008.5, + "y_pos": 3184.5 + }, + { + "id": 15706, + "x_pos": -1695.1000366210938, + "y_pos": 2897.0999755859375 + }, + { + "id": 15705, + "x_pos": -1695.7999572753906, + "y_pos": 2902.8999938964844 + }, + { + "id": 10642, + "x_pos": -2216, + "y_pos": 1560 + }, + { + "id": 10641, + "x_pos": -2218.5, + "y_pos": 1564.5 + }, + { + "id": 10080, + "x_pos": -1841.5999450683594, + "y_pos": 1344.2921847778716 + }, + { + "id": 9304, + "x_pos": -1468, + "y_pos": 1990 + }, + { + "id": 9303, + "x_pos": -1473, + "y_pos": 1986 + }, + { + "id": 9302, + "x_pos": -1441.5, + "y_pos": 1519 + }, + { + "id": 9301, + "x_pos": -1444.5, + "y_pos": 1514 + }, + { + "id": 1671, + "x_pos": -1218.4994279290736, + "y_pos": 663.0039933818161 + }, + { + "id": 1670, + "x_pos": -1260.0021452659744, + "y_pos": 650.000798676363 + }, + { + "id": 1667, + "x_pos": -1357.4998569822683, + "y_pos": 735.0018635781807 + }, + { + "id": 1666, + "x_pos": -1329.417913966955, + "y_pos": 895.4461047507684 + }, + { + "id": 1665, + "x_pos": -1439.4407968040146, + "y_pos": 818.4660716598482 + }, + { + "id": 1662, + "x_pos": -1148.8813014276598, + "y_pos": 733.9530266125826 + }, + { + "id": 1661, + "x_pos": -1063.4997139645366, + "y_pos": 723.0026622545438 + }, + { + "id": 1658, + "x_pos": -1392.0007150886581, + "y_pos": 769.0037271563615 + }, + { + "id": 1657, + "x_pos": -1218.0020022482427, + "y_pos": 673.5031947054526 + }, + { + "id": 1646, + "x_pos": -1369.4987128404155, + "y_pos": 719.5050582836334 + }, + { + "id": 1636, + "x_pos": -1265.5, + "y_pos": 655 + }, + { + "id": 1627, + "x_pos": -1232.408474796668, + "y_pos": 907.9083007362433 + }, + { + "id": 1621, + "x_pos": -1228.5, + "y_pos": 625.0039933818161 + }, + { + "id": 1620, + "x_pos": -1437.9897088682292, + "y_pos": 824.9538252889461 + }, + { + "id": 1564, + "x_pos": -1336.5120134894564, + "y_pos": 738.5031947054526 + }, + { + "id": 1549, + "x_pos": -1381.9998569822683, + "y_pos": 773.5034609309073 + }, + { + "id": 1531, + "x_pos": -1465.9367923075292, + "y_pos": 701.0499326779845 + }, + { + "id": 1472, + "x_pos": -380, + "y_pos": 1621.035119990136 + }, + { + "id": 1434, + "x_pos": -645, + "y_pos": 1612.0138936656194 + }, + { + "id": 1423, + "x_pos": -507, + "y_pos": 1734.0655470000488 + }, + { + "id": 1397, + "x_pos": -2137.5, + "y_pos": 999.5 + }, + { + "id": 1390, + "x_pos": -2127.5, + "y_pos": 995 + }, + { + "id": 1386, + "x_pos": -2176.5, + "y_pos": 910 + }, + { + "id": 1355, + "x_pos": -1575.5, + "y_pos": 1603.5 + }, + { + "id": 1353, + "x_pos": -1489, + "y_pos": 1602.5 + }, + { + "id": 1352, + "x_pos": -1682, + "y_pos": 1496 + }, + { + "id": 1342, + "x_pos": -2317, + "y_pos": 1275.5 + }, + { + "id": 1339, + "x_pos": -1674.5, + "y_pos": 1308 + }, + { + "id": 1338, + "x_pos": -1488.5, + "y_pos": 1361 + }, + { + "id": 1329, + "x_pos": -1731, + "y_pos": 1594 + }, + { + "id": 1318, + "x_pos": -2413.5, + "y_pos": 1444 + }, + { + "id": 1304, + "x_pos": -1790, + "y_pos": 1600 + }, + { + "id": 1303, + "x_pos": -1585, + "y_pos": 1665 + }, + { + "id": 1292, + "x_pos": -2321.5, + "y_pos": 1384 + }, + { + "id": 1274, + "x_pos": -2115, + "y_pos": 1618 + }, + { + "id": 1273, + "x_pos": -2247.5, + "y_pos": 1176.5 + }, + { + "id": 1265, + "x_pos": -1695, + "y_pos": 1496 + }, + { + "id": 1252, + "x_pos": -2072, + "y_pos": 1717 + }, + { + "id": 1251, + "x_pos": -2030, + "y_pos": 1455.5 + }, + { + "id": 1224, + "x_pos": -2388, + "y_pos": 1540.5 + }, + { + "id": 1204, + "x_pos": -1823, + "y_pos": 1700 + }, + { + "id": 1198, + "x_pos": -2149, + "y_pos": 1451.5 + }, + { + "id": 1193, + "x_pos": -1734, + "y_pos": 1717.5 + }, + { + "id": 1173, + "x_pos": -1471, + "y_pos": 1710 + }, + { + "id": 1162, + "x_pos": -2491.5, + "y_pos": 1364.5 + }, + { + "id": 1125, + "x_pos": -425, + "y_pos": 1703.2774091431438 + }, + { + "id": 1097, + "x_pos": -2213.5, + "y_pos": 1560 + }, + { + "id": 1094, + "x_pos": -2509.5, + "y_pos": 1473 + }, + { + "id": 1087, + "x_pos": -1511.5, + "y_pos": 1775.5 + }, + { + "id": 1069, + "x_pos": -636.5, + "y_pos": 1761.1990877657763 + }, + { + "id": 1061, + "x_pos": -2202.5, + "y_pos": 834 + }, + { + "id": 1035, + "x_pos": -657, + "y_pos": 1799.0965374731081 + }, + { + "id": 977, + "x_pos": -2150, + "y_pos": 1798.5 + }, + { + "id": 945, + "x_pos": -1072, + "y_pos": 2221.2167403983703 + }, + { + "id": 915, + "x_pos": -1744.0024033788545, + "y_pos": 2675.0003613698973 + }, + { + "id": 886, + "x_pos": -2440, + "y_pos": 1605.5 + }, + { + "id": 862, + "x_pos": -2546.5, + "y_pos": 1738.5 + }, + { + "id": 769, + "x_pos": -2541, + "y_pos": 1545.5 + }, + { + "id": 757, + "x_pos": -938.8000183105469, + "y_pos": 2368.508372143954 + }, + { + "id": 698, + "x_pos": -909, + "y_pos": 2293.2775944181953 + }, + { + "id": 692, + "x_pos": -1782, + "y_pos": 1849 + }, + { + "id": 628, + "x_pos": -1560.5750925924253, + "y_pos": 2919.2866236177515 + }, + { + "id": 610, + "x_pos": -1699.3000183105469, + "y_pos": 2901.5 + }, + { + "id": 589, + "x_pos": -1932.5, + "y_pos": 2061.5 + }, + { + "id": 488, + "x_pos": -1733.9990167995593, + "y_pos": 3040.5001204566324 + }, + { + "id": 473, + "x_pos": -1715.9990167995593, + "y_pos": 3105.9995181734703 + }, + { + "id": 467, + "x_pos": 167, + "y_pos": 2321.217867324663 + }, + { + "id": 452, + "x_pos": 257, + "y_pos": 2540.3271791750904 + }, + { + "id": 437, + "x_pos": -161.5, + "y_pos": 2718 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/0c8225a89322df69733b62234eff546a_5573906858635297503.png" + }, + "42": { + "name": "Noctilucous Jade", + "clear_name": "NoctilucousJade", + "points": [ + { + "id": 25175, + "x_pos": -2477.499052758769, + "y_pos": 2834.9698129741537 + }, + { + "id": 25174, + "x_pos": -2730.3047267565926, + "y_pos": 3107.6865196525778 + }, + { + "id": 25139, + "x_pos": -2347.384498224334, + "y_pos": 2502.3639509646237 + }, + { + "id": 25138, + "x_pos": -2341.8845229326175, + "y_pos": 2498.865791912086 + }, + { + "id": 25137, + "x_pos": -2351.884478008466, + "y_pos": 2498.865791912086 + }, + { + "id": 25136, + "x_pos": -2472.9990729746373, + "y_pos": 2837.46849801168 + }, + { + "id": 11017, + "x_pos": -542, + "y_pos": 906 + }, + { + "id": 11016, + "x_pos": -547.5, + "y_pos": 911 + }, + { + "id": 11013, + "x_pos": -539, + "y_pos": 912 + }, + { + "id": 11004, + "x_pos": -533.5, + "y_pos": 1235 + }, + { + "id": 11003, + "x_pos": -544, + "y_pos": 1236.5 + }, + { + "id": 11002, + "x_pos": -525, + "y_pos": 1226.5 + }, + { + "id": 11001, + "x_pos": -504, + "y_pos": 1347.5 + }, + { + "id": 11000, + "x_pos": -501.5, + "y_pos": 1351 + }, + { + "id": 10999, + "x_pos": -601, + "y_pos": 1443 + }, + { + "id": 10998, + "x_pos": -605, + "y_pos": 1442.5 + }, + { + "id": 10997, + "x_pos": -532, + "y_pos": 1516.5 + }, + { + "id": 10996, + "x_pos": -526, + "y_pos": 1517 + }, + { + "id": 10995, + "x_pos": -533.5, + "y_pos": 1522 + }, + { + "id": 10994, + "x_pos": -500.5, + "y_pos": 1633 + }, + { + "id": 10993, + "x_pos": -334.5, + "y_pos": 1648 + }, + { + "id": 10992, + "x_pos": -341, + "y_pos": 1651 + }, + { + "id": 10991, + "x_pos": -330.5, + "y_pos": 1651.5 + }, + { + "id": 10990, + "x_pos": -336, + "y_pos": 1652 + }, + { + "id": 10989, + "x_pos": -500, + "y_pos": 1718 + }, + { + "id": 10953, + "x_pos": 66.5, + "y_pos": 2777.5 + }, + { + "id": 10952, + "x_pos": -1352, + "y_pos": 2827 + }, + { + "id": 10951, + "x_pos": -1374.5, + "y_pos": 2830.5 + }, + { + "id": 10950, + "x_pos": -1372.5, + "y_pos": 2831 + }, + { + "id": 10949, + "x_pos": -1370, + "y_pos": 2848 + }, + { + "id": 10948, + "x_pos": -2020, + "y_pos": 3202.5 + }, + { + "id": 10947, + "x_pos": -2015, + "y_pos": 3202.5 + }, + { + "id": 3656, + "x_pos": -2017, + "y_pos": 3202.5 + }, + { + "id": 3655, + "x_pos": -1437.5, + "y_pos": 2615 + }, + { + "id": 1648, + "x_pos": -1032.3625661048172, + "y_pos": 691.8108622199329 + }, + { + "id": 1607, + "x_pos": -1201.9997139645366, + "y_pos": 854.0029284799984 + }, + { + "id": 1593, + "x_pos": -1209.5, + "y_pos": 850.0005324509088 + }, + { + "id": 1483, + "x_pos": -615, + "y_pos": 1440.2167403983703 + }, + { + "id": 1461, + "x_pos": -504, + "y_pos": 1722.2798482707813 + }, + { + "id": 1440, + "x_pos": -362, + "y_pos": 1646.3519715535372 + }, + { + "id": 1436, + "x_pos": -528.5, + "y_pos": 1522.5 + }, + { + "id": 1415, + "x_pos": -505, + "y_pos": 1632.9485319406222 + }, + { + "id": 1408, + "x_pos": -344, + "y_pos": 1652.3564792587094 + }, + { + "id": 1369, + "x_pos": -503, + "y_pos": 1359.208851914319 + }, + { + "id": 1348, + "x_pos": -2191.5, + "y_pos": 1106 + }, + { + "id": 1345, + "x_pos": -1444.5, + "y_pos": 1343.5 + }, + { + "id": 1340, + "x_pos": -537, + "y_pos": 1225.2392789242313 + }, + { + "id": 1336, + "x_pos": -1580, + "y_pos": 1583.5 + }, + { + "id": 1129, + "x_pos": -409, + "y_pos": 1465.6517339474908 + }, + { + "id": 742, + "x_pos": -1364.9998907555064, + "y_pos": 2847.4990363469396 + }, + { + "id": 478, + "x_pos": -1530.9986890660794, + "y_pos": 3118.5004818265297 + }, + { + "id": 434, + "x_pos": 76, + "y_pos": 2754.8737384272235 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/f7f2ebb4ce20b9729578435ff70bfa50_9037585527228488046.png" + }, + "169": { + "name": "Geovishap", + "clear_name": "Geovishap", + "points": [ + { + "id": 25088, + "x_pos": -2447.1000061035156, + "y_pos": 3045.899703712739 + }, + { + "id": 25086, + "x_pos": -2529, + "y_pos": 2874.5959129692283 + }, + { + "id": 9305, + "x_pos": -2342, + "y_pos": 1936.5 + }, + { + "id": 9142, + "x_pos": -2193.3330843274807, + "y_pos": 1164.6679739931596 + }, + { + "id": 9141, + "x_pos": -2316.888931203527, + "y_pos": 1034.6660053770065 + }, + { + "id": 8783, + "x_pos": -2050.555503882752, + "y_pos": 2260.88931958011 + }, + { + "id": 8752, + "x_pos": -1958.5, + "y_pos": 1813 + }, + { + "id": 8751, + "x_pos": -1319.8587282218214, + "y_pos": 2432.4877211030716 + }, + { + "id": 8729, + "x_pos": -2384.301925448074, + "y_pos": 1238.053421369861 + }, + { + "id": 8715, + "x_pos": -2441, + "y_pos": 2047.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/7395724ddaff18a17da140bbc03243b4_7346214567256973914.png" + }, + "210": { + "name": "Fatui Mirror Maiden", + "clear_name": "FatuiMirrorMaiden", + "points": [ + { + "id": 25087, + "x_pos": -2472.6000366210938, + "y_pos": 3009.072230051168 + }, + { + "id": 17607, + "x_pos": 587.7000122070312, + "y_pos": 6104.000015258789 + }, + { + "id": 17605, + "x_pos": 49, + "y_pos": 5862.0999755859375 + }, + { + "id": 17485, + "x_pos": 3149.800018310547, + "y_pos": 6654.899963378906 + }, + { + "id": 17482, + "x_pos": 3015.199981689453, + "y_pos": 6802.600006103516 + }, + { + "id": 16777, + "x_pos": 3312.5, + "y_pos": 6640 + }, + { + "id": 16776, + "x_pos": 3394.5, + "y_pos": 6735.5 + }, + { + "id": 16773, + "x_pos": 3190.5, + "y_pos": 6603 + }, + { + "id": 16759, + "x_pos": 3096.5, + "y_pos": 6793.5 + }, + { + "id": 16757, + "x_pos": 3355, + "y_pos": 7075.5 + }, + { + "id": 16722, + "x_pos": -246, + "y_pos": 5904 + }, + { + "id": 16719, + "x_pos": 527.5, + "y_pos": 6332.5 + }, + { + "id": 16718, + "x_pos": 476, + "y_pos": 6379 + }, + { + "id": 14181, + "x_pos": 1271.5999755859375, + "y_pos": 5992.5 + }, + { + "id": 14134, + "x_pos": 3537.3999938964844, + "y_pos": 4863.399993896484 + }, + { + "id": 14115, + "x_pos": 2431.5, + "y_pos": 6114.399993896484 + }, + { + "id": 14111, + "x_pos": 2441.2999877929688, + "y_pos": 5993.699981689453 + }, + { + "id": 14109, + "x_pos": 2323.7999877929688, + "y_pos": 5984.299987792969 + }, + { + "id": 13962, + "x_pos": 3529, + "y_pos": 4827 + }, + { + "id": 13847, + "x_pos": 3641.5, + "y_pos": 4965 + }, + { + "id": 13727, + "x_pos": 4011, + "y_pos": 5561 + }, + { + "id": 13631, + "x_pos": 2147, + "y_pos": 5953 + }, + { + "id": 13626, + "x_pos": 1481, + "y_pos": 6151.5 + }, + { + "id": 13466, + "x_pos": 3718.0999755859375, + "y_pos": 4681.3795736097245 + }, + { + "id": 13464, + "x_pos": 1893.2999877929688, + "y_pos": 6160.468616062861 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/596c028652f0797454c80c8c2e57856f_2639242042836509216.png" + }, + "150": { + "name": "Ruin Grader", + "clear_name": "RuinGrader", + "points": [ + { + "id": 25085, + "x_pos": -2622.2000122070312, + "y_pos": 3214.79650554375 + }, + { + "id": 13853, + "x_pos": 3496, + "y_pos": 4613.5 + }, + { + "id": 7032, + "x_pos": 450, + "y_pos": 1784 + }, + { + "id": 7028, + "x_pos": 394, + "y_pos": 1693.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/a90a60e07a1a942bf89fbb071efacf78_6801467019841823806.png" + }, + "27": { + "name": "Ruin Guard", + "clear_name": "RuinGuard", + "points": [ + { + "id": 25084, + "x_pos": -2604.2000122070312, + "y_pos": 3210.398222276436 + }, + { + "id": 20790, + "x_pos": 1523.199951171875, + "y_pos": -245.8267474234808 + }, + { + "id": 20789, + "x_pos": 1497.5000610351562, + "y_pos": -360.8206338108366 + }, + { + "id": 19491, + "x_pos": 1923.6000061035156, + "y_pos": 8817.299987792969 + }, + { + "id": 19490, + "x_pos": 1916.1000061035156, + "y_pos": 8819.200012207031 + }, + { + "id": 19489, + "x_pos": 1935, + "y_pos": 8797.100006103516 + }, + { + "id": 19472, + "x_pos": 1890.5999755859375, + "y_pos": 8337.899993896484 + }, + { + "id": 19339, + "x_pos": 2002.7999877929688, + "y_pos": 8418.200012207031 + }, + { + "id": 13963, + "x_pos": 3542, + "y_pos": 4758.5 + }, + { + "id": 3268, + "x_pos": -1647.5004369779735, + "y_pos": 2499.00144547959 + }, + { + "id": 3076, + "x_pos": -51.00076471145394, + "y_pos": 2687.00144547959 + }, + { + "id": 3074, + "x_pos": -51.500546222467165, + "y_pos": 2697.5007227397946 + }, + { + "id": 3073, + "x_pos": -28.000327733479935, + "y_pos": 2686.001686392855 + }, + { + "id": 2353, + "x_pos": -1938, + "y_pos": 2576.3312427233286 + }, + { + "id": 2327, + "x_pos": -1900, + "y_pos": 1831.8000183105469 + }, + { + "id": 2303, + "x_pos": -491, + "y_pos": 1420.0491239808657 + }, + { + "id": 1579, + "x_pos": -929, + "y_pos": -366.02026239507586 + }, + { + "id": 1574, + "x_pos": -444, + "y_pos": -371.9988747358759 + }, + { + "id": 1547, + "x_pos": -748, + "y_pos": -200.03901679714477 + }, + { + "id": 1358, + "x_pos": -1707, + "y_pos": 1540 + }, + { + "id": 1317, + "x_pos": -1719, + "y_pos": 1565.5 + }, + { + "id": 1288, + "x_pos": -1858, + "y_pos": 1298.5 + }, + { + "id": 1212, + "x_pos": -1872, + "y_pos": 1414.5 + }, + { + "id": 1071, + "x_pos": -961, + "y_pos": 1993.2651982289717 + }, + { + "id": 1067, + "x_pos": -186, + "y_pos": 1736.026289854843 + }, + { + "id": 1040, + "x_pos": -1237, + "y_pos": 2064.9721973927763 + }, + { + "id": 912, + "x_pos": 988.5, + "y_pos": -38.5 + }, + { + "id": 755, + "x_pos": -1287.4989075550661, + "y_pos": 2949.4990363469396 + }, + { + "id": 751, + "x_pos": 985, + "y_pos": -532 + }, + { + "id": 707, + "x_pos": -841, + "y_pos": 2389.016147518206 + }, + { + "id": 695, + "x_pos": -1851.5004369779735, + "y_pos": 2637.5007227397955 + }, + { + "id": 508, + "x_pos": -1906.0455965792094, + "y_pos": 2667.790478229992 + }, + { + "id": 441, + "x_pos": -31, + "y_pos": 2668.412825573362 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a90a60e07a1a942bf89fbb071efacf78_4504588708900504078.png" + }, + "28": { + "name": "Ruin Hunter", + "clear_name": "RuinHunter", + "points": [ + { + "id": 25083, + "x_pos": -2172, + "y_pos": 2488.162590642354 + }, + { + "id": 13936, + "x_pos": 3439.5, + "y_pos": 4650.5 + }, + { + "id": 11052, + "x_pos": -120, + "y_pos": 2641 + }, + { + "id": 2348, + "x_pos": -1932, + "y_pos": 2623.260713037713 + }, + { + "id": 2323, + "x_pos": -2527, + "y_pos": 1505.0793509889868 + }, + { + "id": 1018, + "x_pos": -575, + "y_pos": 1981.5784837384422 + }, + { + "id": 929, + "x_pos": -1846.5, + "y_pos": 1974.5 + }, + { + "id": 766, + "x_pos": -1349.5002184889868, + "y_pos": 2808.502047762752 + }, + { + "id": 492, + "x_pos": -1718.9993445330397, + "y_pos": 2957.000843196428 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/b831b1f949e45bbaadea4f2df12b2018_6403429362889945695.png" + }, + "58": { + "name": "Treasure Hoarder", + "clear_name": "TreasureHoarder", + "points": [ + { + "id": 25082, + "x_pos": -2103.1478881835938, + "y_pos": 2537.171112060547 + }, + { + "id": 25080, + "x_pos": -2471, + "y_pos": 3001 + }, + { + "id": 25079, + "x_pos": -2374.5149841308594, + "y_pos": 3058.766799926758 + }, + { + "id": 25078, + "x_pos": -2736, + "y_pos": 2945 + }, + { + "id": 25077, + "x_pos": -2260.8211669921875, + "y_pos": 2651.540054321289 + }, + { + "id": 25072, + "x_pos": -2128.292724609375, + "y_pos": 2406.6029663085938 + }, + { + "id": 25070, + "x_pos": -2244.1283569335938, + "y_pos": 2506.123245239258 + }, + { + "id": 25061, + "x_pos": -2640.643310546875, + "y_pos": 2968.92724609375 + }, + { + "id": 25059, + "x_pos": -2368.2489624023438, + "y_pos": 3069.970489501953 + }, + { + "id": 25056, + "x_pos": -2556.4307556152344, + "y_pos": 2981.1535415649414 + }, + { + "id": 25054, + "x_pos": -2499.4874267578125, + "y_pos": 2864.2899780273438 + }, + { + "id": 25053, + "x_pos": -2360.6907653808594, + "y_pos": 2904.1695861816406 + }, + { + "id": 25051, + "x_pos": -2393.1449584960938, + "y_pos": 2905.9713745117188 + }, + { + "id": 25050, + "x_pos": -2425.0299682617188, + "y_pos": 2936.5335998535156 + }, + { + "id": 25049, + "x_pos": -2408, + "y_pos": 3144 + }, + { + "id": 25044, + "x_pos": -2549.0487060546875, + "y_pos": 2891.771194458008 + }, + { + "id": 25043, + "x_pos": -2461.6265563964844, + "y_pos": 2814.678436279297 + }, + { + "id": 25040, + "x_pos": -2423.461456298828, + "y_pos": 3253.623580932617 + }, + { + "id": 25034, + "x_pos": -2355.9523010253906, + "y_pos": 2668.0070037841797 + }, + { + "id": 25033, + "x_pos": -2330.777313232422, + "y_pos": 2629.174530029297 + }, + { + "id": 25032, + "x_pos": -2176.2865600585938, + "y_pos": 2576.666549682617 + }, + { + "id": 25031, + "x_pos": -2238, + "y_pos": 2595.5 + }, + { + "id": 25030, + "x_pos": -2264.796356201172, + "y_pos": 2686.3157653808594 + }, + { + "id": 25028, + "x_pos": -2169.9927978515625, + "y_pos": 2671.0746459960938 + }, + { + "id": 25027, + "x_pos": -2061.6404418945312, + "y_pos": 2587.494415283203 + }, + { + "id": 25025, + "x_pos": -2358.798095703125, + "y_pos": 2526.3995971679688 + }, + { + "id": 23420, + "x_pos": -2077.5, + "y_pos": 2953.5 + }, + { + "id": 23419, + "x_pos": -2023, + "y_pos": 1070.5 + }, + { + "id": 23418, + "x_pos": -2024, + "y_pos": 1074 + }, + { + "id": 23417, + "x_pos": -2055.5, + "y_pos": 1203.5 + }, + { + "id": 23416, + "x_pos": -935, + "y_pos": 1961 + }, + { + "id": 23415, + "x_pos": -932, + "y_pos": 1951 + }, + { + "id": 23414, + "x_pos": -1516.5, + "y_pos": 2296 + }, + { + "id": 23413, + "x_pos": -1517.5, + "y_pos": 2286 + }, + { + "id": 23412, + "x_pos": -1520, + "y_pos": 2286 + }, + { + "id": 23278, + "x_pos": 3367.5499877929688, + "y_pos": 5296.94874080529 + }, + { + "id": 23276, + "x_pos": 3360.3499908447266, + "y_pos": 5298.651131468076 + }, + { + "id": 23259, + "x_pos": -1559.9500122070312, + "y_pos": 3155.0925115027994 + }, + { + "id": 23258, + "x_pos": -1556.0999908447266, + "y_pos": 3144.951736765719 + }, + { + "id": 23257, + "x_pos": -1548.1500244140625, + "y_pos": 3150.2949250614256 + }, + { + "id": 17769, + "x_pos": 3417.699951171875, + "y_pos": 4718.807886630093 + }, + { + "id": 17768, + "x_pos": 3412.1000366210938, + "y_pos": 4722.493404882334 + }, + { + "id": 17767, + "x_pos": 3409.300048828125, + "y_pos": 4726.907248515854 + }, + { + "id": 17766, + "x_pos": 3417.7999877929688, + "y_pos": 4721.97691708817 + }, + { + "id": 17593, + "x_pos": 3470.5999755859375, + "y_pos": 6735.599990844727 + }, + { + "id": 17592, + "x_pos": 3480.5, + "y_pos": 6723.300018310547 + }, + { + "id": 17591, + "x_pos": 3486.2999877929688, + "y_pos": 6720.399993896484 + }, + { + "id": 17463, + "x_pos": 3779.7999877929688, + "y_pos": 6995 + }, + { + "id": 17458, + "x_pos": 3758.0999755859375, + "y_pos": 6583.899993896484 + }, + { + "id": 17454, + "x_pos": 3585.300018310547, + "y_pos": 6559.5 + }, + { + "id": 17451, + "x_pos": 3572.1000061035156, + "y_pos": 6558.500030517578 + }, + { + "id": 17450, + "x_pos": 3586, + "y_pos": 6564.699981689453 + }, + { + "id": 17449, + "x_pos": 3611.1000061035156, + "y_pos": 6581.5 + }, + { + "id": 17448, + "x_pos": 3566.300018310547, + "y_pos": 6569.199981689453 + }, + { + "id": 17414, + "x_pos": 3181.5, + "y_pos": 7186.200012207031 + }, + { + "id": 17413, + "x_pos": 3176.699981689453, + "y_pos": 7196.299987792969 + }, + { + "id": 17411, + "x_pos": 3178.000030517578, + "y_pos": 7193.100036621094 + }, + { + "id": 17399, + "x_pos": 3187.699981689453, + "y_pos": 7199.699996948242 + }, + { + "id": 17398, + "x_pos": 3313.6000061035156, + "y_pos": 7252.600006103516 + }, + { + "id": 16653, + "x_pos": 3221.999755859375, + "y_pos": 7011.200568987351 + }, + { + "id": 16626, + "x_pos": 3774.300018310547, + "y_pos": 6996.1195835221315 + }, + { + "id": 16614, + "x_pos": 3742, + "y_pos": 6584.4000244140625 + }, + { + "id": 16613, + "x_pos": 3612, + "y_pos": 6577.698079667691 + }, + { + "id": 16612, + "x_pos": 3562.1000061035156, + "y_pos": 6544.149707868819 + }, + { + "id": 16605, + "x_pos": 3474.7999877929688, + "y_pos": 6729.238299004664 + }, + { + "id": 16570, + "x_pos": 3311.2999572753906, + "y_pos": 7259.634634239217 + }, + { + "id": 16569, + "x_pos": 3183.1000061035156, + "y_pos": 7195.337707821238 + }, + { + "id": 15819, + "x_pos": 1615, + "y_pos": 6031.5 + }, + { + "id": 15804, + "x_pos": 1517.8999938964844, + "y_pos": 5983.399993896484 + }, + { + "id": 15803, + "x_pos": 1513.8000183105469, + "y_pos": 5980 + }, + { + "id": 15704, + "x_pos": 2693.2000122070312, + "y_pos": 5731.800018310547 + }, + { + "id": 15522, + "x_pos": 2608.8999938964844, + "y_pos": 5953.211379030576 + }, + { + "id": 15521, + "x_pos": 2590.1000061035156, + "y_pos": 5984.8754454760565 + }, + { + "id": 14901, + "x_pos": 1445.1000061035156, + "y_pos": 6261.3032218623175 + }, + { + "id": 14593, + "x_pos": 1742.8999938964844, + "y_pos": 6215.699951171875 + }, + { + "id": 14592, + "x_pos": 1567.7015204069849, + "y_pos": 5951.303191309824 + }, + { + "id": 14591, + "x_pos": 1583.280884105884, + "y_pos": 5955.624719062545 + }, + { + "id": 14590, + "x_pos": 1581.1019864680684, + "y_pos": 5959.504576472602 + }, + { + "id": 14585, + "x_pos": 1516.5, + "y_pos": 5812.307767782424 + }, + { + "id": 14423, + "x_pos": 3368.0999755859375, + "y_pos": 4842.700012207031 + }, + { + "id": 14421, + "x_pos": 3368.5999755859375, + "y_pos": 4844.800010681152 + }, + { + "id": 14296, + "x_pos": 2537.7999877929688, + "y_pos": 6155.800018310547 + }, + { + "id": 14292, + "x_pos": 2573.6000061035156, + "y_pos": 6260.499984741211 + }, + { + "id": 14291, + "x_pos": 2497.199981689453, + "y_pos": 6282.5 + }, + { + "id": 14290, + "x_pos": 2438.8999938964844, + "y_pos": 6353.399993896484 + }, + { + "id": 14278, + "x_pos": 1606.6000061035156, + "y_pos": 6032.899993896484 + }, + { + "id": 14274, + "x_pos": 1762.3999938964844, + "y_pos": 6016.9000244140625 + }, + { + "id": 14158, + "x_pos": 1757.5, + "y_pos": 6371.500030517578 + }, + { + "id": 14157, + "x_pos": 1737.5, + "y_pos": 6385.600036621094 + }, + { + "id": 13196, + "x_pos": 3281.614671066136, + "y_pos": 5159.230723935008 + }, + { + "id": 13195, + "x_pos": 3376.6697555119226, + "y_pos": 5299.898613402089 + }, + { + "id": 13194, + "x_pos": 2642.613920987712, + "y_pos": 5504.809389646227 + }, + { + "id": 13193, + "x_pos": 2508.781374524133, + "y_pos": 5454.416801270978 + }, + { + "id": 13191, + "x_pos": 2729.835923443049, + "y_pos": 5700.321786106806 + }, + { + "id": 13190, + "x_pos": 2620.891954858973, + "y_pos": 5635.40243674484 + }, + { + "id": 13189, + "x_pos": 2742.447011808081, + "y_pos": 5681.9400014309085 + }, + { + "id": 13188, + "x_pos": 2678.3353381123334, + "y_pos": 5718.2939437462555 + }, + { + "id": 13187, + "x_pos": 2690.891379829831, + "y_pos": 5884.311428762361 + }, + { + "id": 13186, + "x_pos": 2703.50240715998, + "y_pos": 5894.085424096636 + }, + { + "id": 13185, + "x_pos": 1456.2792842343333, + "y_pos": 6293.381043690872 + }, + { + "id": 13184, + "x_pos": 1505.4462984435331, + "y_pos": 5797.616315896579 + }, + { + "id": 13183, + "x_pos": 1409.281036276252, + "y_pos": 5774.251892605254 + }, + { + "id": 7310, + "x_pos": 117, + "y_pos": 794 + }, + { + "id": 7303, + "x_pos": 399, + "y_pos": 820 + }, + { + "id": 7302, + "x_pos": 403.5, + "y_pos": 827 + }, + { + "id": 7292, + "x_pos": 394, + "y_pos": 826 + }, + { + "id": 7291, + "x_pos": 399, + "y_pos": 830 + }, + { + "id": 7185, + "x_pos": 262, + "y_pos": 864 + }, + { + "id": 7180, + "x_pos": 114, + "y_pos": 790.5 + }, + { + "id": 7175, + "x_pos": 111.5, + "y_pos": 798 + }, + { + "id": 7171, + "x_pos": 85.5, + "y_pos": 783.5 + }, + { + "id": 7161, + "x_pos": 108.5, + "y_pos": 802 + }, + { + "id": 7153, + "x_pos": 84.5, + "y_pos": 784.5 + }, + { + "id": 7144, + "x_pos": 112.5, + "y_pos": 803 + }, + { + "id": 6288, + "x_pos": 269.5, + "y_pos": 865 + }, + { + "id": 3615, + "x_pos": -2115.5, + "y_pos": 3155 + }, + { + "id": 3614, + "x_pos": -2109.5, + "y_pos": 3152.5 + }, + { + "id": 3613, + "x_pos": -2110, + "y_pos": 3158.5 + }, + { + "id": 3612, + "x_pos": -1596.5, + "y_pos": 2680.7224272085377 + }, + { + "id": 3611, + "x_pos": -2118.5, + "y_pos": 3162 + }, + { + "id": 3610, + "x_pos": -1937, + "y_pos": 3169.5 + }, + { + "id": 3609, + "x_pos": -1542, + "y_pos": 2808.2749395343308 + }, + { + "id": 3608, + "x_pos": -1547.5, + "y_pos": 2805.705923334717 + }, + { + "id": 3607, + "x_pos": -1597.5, + "y_pos": 2683.226178088952 + }, + { + "id": 3606, + "x_pos": -1443.5, + "y_pos": 3225.2509338996824 + }, + { + "id": 3605, + "x_pos": -1445, + "y_pos": 3218.732929673696 + }, + { + "id": 3604, + "x_pos": -1465.5, + "y_pos": 3221.7374307301934 + }, + { + "id": 3603, + "x_pos": -1412, + "y_pos": 2943.7164257998757 + }, + { + "id": 3602, + "x_pos": -1561.5, + "y_pos": 2819.726928265034 + }, + { + "id": 3601, + "x_pos": -1412.5, + "y_pos": 2942.214175271628 + }, + { + "id": 3599, + "x_pos": -1469.5, + "y_pos": 3218.765937421338 + }, + { + "id": 3598, + "x_pos": -1431, + "y_pos": 3222.0727441575036 + }, + { + "id": 3597, + "x_pos": -1669.5, + "y_pos": 2958.740431434524 + }, + { + "id": 3596, + "x_pos": -1959.5, + "y_pos": 3180.5 + }, + { + "id": 3595, + "x_pos": -1422.5, + "y_pos": 2952.7299289693656 + }, + { + "id": 3593, + "x_pos": -1660, + "y_pos": 2958.740431434524 + }, + { + "id": 3592, + "x_pos": -1942, + "y_pos": 3166.5 + }, + { + "id": 3591, + "x_pos": -1965, + "y_pos": 3180.5 + }, + { + "id": 3590, + "x_pos": -1566, + "y_pos": 3128.506751584745 + }, + { + "id": 3589, + "x_pos": -1941.5, + "y_pos": 2662.7246777367864 + }, + { + "id": 3587, + "x_pos": -1475, + "y_pos": 3223.239681258441 + }, + { + "id": 3586, + "x_pos": -1550, + "y_pos": 3133.2246777367864 + }, + { + "id": 3585, + "x_pos": -1608.5, + "y_pos": 2690.0603891746623 + }, + { + "id": 3584, + "x_pos": -1557, + "y_pos": 3132.2441823149384 + }, + { + "id": 3583, + "x_pos": -1438.5, + "y_pos": 3231.240431434524 + }, + { + "id": 3582, + "x_pos": -1423, + "y_pos": 2955.734430025862 + }, + { + "id": 3581, + "x_pos": -1422.5, + "y_pos": 3241.7584356605103 + }, + { + "id": 3580, + "x_pos": -1426.5, + "y_pos": 3237.752434251848 + }, + { + "id": 3579, + "x_pos": -1510, + "y_pos": 2733.7291787932827 + }, + { + "id": 3578, + "x_pos": -1611.5, + "y_pos": 3126.581394104979 + }, + { + "id": 3577, + "x_pos": -1934.5, + "y_pos": 2659.8477066143587 + }, + { + "id": 3576, + "x_pos": -1418, + "y_pos": 3237.0037508804135 + }, + { + "id": 3575, + "x_pos": -1664.5, + "y_pos": 2957.2359303780277 + }, + { + "id": 3574, + "x_pos": -1946.5, + "y_pos": 2658.7186763281243 + }, + { + "id": 3573, + "x_pos": -1549.5, + "y_pos": 2025.0690085587726 + }, + { + "id": 3572, + "x_pos": -1491.5, + "y_pos": 2731.726178088952 + }, + { + "id": 3571, + "x_pos": -1500, + "y_pos": 2733.4741189251445 + }, + { + "id": 3570, + "x_pos": -1941, + "y_pos": 2661.2224272085377 + }, + { + "id": 3569, + "x_pos": -2157.5, + "y_pos": 2118.7269282650345 + }, + { + "id": 3568, + "x_pos": -2159.5, + "y_pos": 2120.2291787932827 + }, + { + "id": 3567, + "x_pos": -2169, + "y_pos": 2130.744932491021 + }, + { + "id": 3566, + "x_pos": -2158, + "y_pos": 2141.6669141784137 + }, + { + "id": 3565, + "x_pos": -2307.5, + "y_pos": 1975.3274518601243 + }, + { + "id": 3564, + "x_pos": -2491, + "y_pos": 1907.2254279128692 + }, + { + "id": 3563, + "x_pos": -2307, + "y_pos": 1978.746432843186 + }, + { + "id": 3562, + "x_pos": -2502.5, + "y_pos": 1914.0911463940552 + }, + { + "id": 3561, + "x_pos": -2500, + "y_pos": 1921.246432843186 + }, + { + "id": 3560, + "x_pos": -2256.5, + "y_pos": 1606.3919670032415 + }, + { + "id": 3559, + "x_pos": -2255.5, + "y_pos": 1610.2644370691723 + }, + { + "id": 3558, + "x_pos": -2027, + "y_pos": 1506.2419317866897 + }, + { + "id": 3557, + "x_pos": -1558.5, + "y_pos": 2821.2291787932827 + }, + { + "id": 3556, + "x_pos": -1549, + "y_pos": 2829.873212601173 + }, + { + "id": 3555, + "x_pos": -1413.5, + "y_pos": 2965.970735491931 + }, + { + "id": 3554, + "x_pos": -953, + "y_pos": 2049.2869423516554 + }, + { + "id": 3553, + "x_pos": -673, + "y_pos": 2277.7434321388555 + }, + { + "id": 3552, + "x_pos": -794.5, + "y_pos": 2199.451230913779 + }, + { + "id": 3551, + "x_pos": -785.5, + "y_pos": 2202.77193883 + }, + { + "id": 3550, + "x_pos": -792.5, + "y_pos": 2204.7576854844274 + }, + { + "id": 3549, + "x_pos": -683, + "y_pos": 2277.343955733945 + }, + { + "id": 3548, + "x_pos": -614, + "y_pos": 2509.7899430559864 + }, + { + "id": 3547, + "x_pos": -678, + "y_pos": 2282.7509338996824 + }, + { + "id": 3546, + "x_pos": -586.5, + "y_pos": 2428.721677032455 + }, + { + "id": 3545, + "x_pos": -575, + "y_pos": 2438.695053422359 + }, + { + "id": 3544, + "x_pos": -564, + "y_pos": 2432.7839416473244 + }, + { + "id": 3543, + "x_pos": -623, + "y_pos": 2510.8492069665244 + }, + { + "id": 3542, + "x_pos": -967, + "y_pos": 2048.305696753724 + }, + { + "id": 3541, + "x_pos": -1004, + "y_pos": 2019.2021724543033 + }, + { + "id": 3537, + "x_pos": -1554, + "y_pos": 2018.2366805541105 + }, + { + "id": 3536, + "x_pos": -1541, + "y_pos": 2023.2501837236 + }, + { + "id": 3535, + "x_pos": -1513.5, + "y_pos": 1918.8342034448692 + }, + { + "id": 3534, + "x_pos": -1507.5, + "y_pos": 1919.7351802019448 + }, + { + "id": 3533, + "x_pos": -999, + "y_pos": 2020.243432138855 + }, + { + "id": 3532, + "x_pos": -1832, + "y_pos": 1602.2524342518482 + }, + { + "id": 3531, + "x_pos": -1834, + "y_pos": 1605.2284286171998 + }, + { + "id": 3530, + "x_pos": -1511.5, + "y_pos": 1920.2891928799036 + }, + { + "id": 3529, + "x_pos": -1838.5, + "y_pos": 1604.2269282650345 + }, + { + "id": 3528, + "x_pos": -2030.5, + "y_pos": 1504.9343595927585 + }, + { + "id": 3527, + "x_pos": -2101, + "y_pos": 1137.3071971058898 + }, + { + "id": 3526, + "x_pos": -2127.5, + "y_pos": 1214.213425095545 + }, + { + "id": 3525, + "x_pos": -2131.5, + "y_pos": 1217.2179261520414 + }, + { + "id": 3524, + "x_pos": -2102, + "y_pos": 1143.2711886539173 + }, + { + "id": 3523, + "x_pos": -2137.5, + "y_pos": 1216.374712953338 + }, + { + "id": 3522, + "x_pos": -2110, + "y_pos": 1052.6759162914068 + }, + { + "id": 3521, + "x_pos": -1886.5, + "y_pos": 1032.2869423516554 + }, + { + "id": 3520, + "x_pos": -1872.5, + "y_pos": 1036.642158367683 + }, + { + "id": 3519, + "x_pos": -1639.5, + "y_pos": 410.2501837236 + }, + { + "id": 3518, + "x_pos": -1616.5, + "y_pos": 405.8450886389105 + }, + { + "id": 3517, + "x_pos": -1618.5, + "y_pos": 413.2546847800968 + }, + { + "id": 3516, + "x_pos": -1601.5, + "y_pos": 446.77568971041364 + }, + { + "id": 3515, + "x_pos": -1627.5, + "y_pos": 415.75843566051026 + }, + { + "id": 3514, + "x_pos": -1588.5, + "y_pos": 449.1916699891449 + }, + { + "id": 3513, + "x_pos": -2061.5, + "y_pos": 1107.8679613685931 + }, + { + "id": 3512, + "x_pos": -2073, + "y_pos": 1104.2329296736966 + }, + { + "id": 3511, + "x_pos": -2022, + "y_pos": 1152.3049465776412 + }, + { + "id": 3510, + "x_pos": -1869, + "y_pos": 1023.427608008014 + }, + { + "id": 3509, + "x_pos": -1868, + "y_pos": 1026.7381809062758 + }, + { + "id": 3508, + "x_pos": -1870.5, + "y_pos": 1031.2449324910208 + }, + { + "id": 3507, + "x_pos": -1864.5, + "y_pos": 1030.243432138855 + }, + { + "id": 3506, + "x_pos": -1876.5, + "y_pos": 1027.2389310823587 + }, + { + "id": 3505, + "x_pos": -1931, + "y_pos": 1114.7674377735034 + }, + { + "id": 3504, + "x_pos": -1509, + "y_pos": 757.1159022047864 + }, + { + "id": 3503, + "x_pos": -1518.5, + "y_pos": 755.7621865409242 + }, + { + "id": 3502, + "x_pos": -1496, + "y_pos": 755.7134250955451 + }, + { + "id": 3501, + "x_pos": -1506, + "y_pos": 787.8360712442345 + }, + { + "id": 3500, + "x_pos": -1520.5, + "y_pos": 779.7494335475171 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8d42ff5f7bdfb638bca30feb75856b76_3677046310229927021.png" + }, + "55": { + "name": "Hilichurl", + "clear_name": "Hilichurl", + "points": [ + { + "id": 25081, + "x_pos": -2692, + "y_pos": 3291 + }, + { + "id": 25076, + "x_pos": -2061.5081787109375, + "y_pos": 2581.5299224853516 + }, + { + "id": 25071, + "x_pos": -2170.3331909179688, + "y_pos": 2493.3844146728516 + }, + { + "id": 25060, + "x_pos": -2658.143310546875, + "y_pos": 2952.92724609375 + }, + { + "id": 25057, + "x_pos": -2695.5384674072266, + "y_pos": 3129.802276611328 + }, + { + "id": 25055, + "x_pos": -2499.3978576660156, + "y_pos": 2925.3875274658203 + }, + { + "id": 25052, + "x_pos": -2356.1449584960938, + "y_pos": 2925.9713745117188 + }, + { + "id": 25045, + "x_pos": -2744, + "y_pos": 3088.7893829345703 + }, + { + "id": 25042, + "x_pos": -2258.7197265625, + "y_pos": 2874.8770141601562 + }, + { + "id": 25038, + "x_pos": -2632.4828491210938, + "y_pos": 3295.5108032226562 + }, + { + "id": 25037, + "x_pos": -2768.1069946289062, + "y_pos": 3153.8482513427734 + }, + { + "id": 25029, + "x_pos": -2117.2150268554688, + "y_pos": 2738.59130859375 + }, + { + "id": 25026, + "x_pos": -2117.5289306640625, + "y_pos": 2573.400909423828 + }, + { + "id": 25024, + "x_pos": -2464.4554443359375, + "y_pos": 2648.172821044922 + }, + { + "id": 20050, + "x_pos": 608.3370056152344, + "y_pos": 324.3673400878906 + }, + { + "id": 20049, + "x_pos": 618.1007385253906, + "y_pos": 333.0705261230469 + }, + { + "id": 19896, + "x_pos": 2147.199981689453, + "y_pos": 8369.5 + }, + { + "id": 19895, + "x_pos": 2141, + "y_pos": 8372.5 + }, + { + "id": 19894, + "x_pos": 2145.2000122070312, + "y_pos": 8372.399993896484 + }, + { + "id": 19893, + "x_pos": 2075.5, + "y_pos": 8513.199981689453 + }, + { + "id": 19892, + "x_pos": 2069.800018310547, + "y_pos": 8529.599975585938 + }, + { + "id": 19891, + "x_pos": 2077.8999938964844, + "y_pos": 8525.200012207031 + }, + { + "id": 19889, + "x_pos": 1726.8000183105469, + "y_pos": 8491.799987792969 + }, + { + "id": 19886, + "x_pos": 1727.6000061035156, + "y_pos": 8547.100006103516 + }, + { + "id": 19885, + "x_pos": 1728.6000061035156, + "y_pos": 8542.399993896484 + }, + { + "id": 19881, + "x_pos": 1781.5, + "y_pos": 8608.5 + }, + { + "id": 19880, + "x_pos": 1782.3999938964844, + "y_pos": 8603.399993896484 + }, + { + "id": 19874, + "x_pos": 1938.1000061035156, + "y_pos": 8801.899993896484 + }, + { + "id": 19873, + "x_pos": 1940.0000305175781, + "y_pos": 8809.899993896484 + }, + { + "id": 19663, + "x_pos": -820.7000122070312, + "y_pos": 1662.5999755859375 + }, + { + "id": 19661, + "x_pos": 2076.2999877929688, + "y_pos": 8486.399993896484 + }, + { + "id": 19659, + "x_pos": 2081.5, + "y_pos": 8485.599975585938 + }, + { + "id": 19658, + "x_pos": 2085.8999938964844, + "y_pos": 8484.900024414062 + }, + { + "id": 19656, + "x_pos": 1764, + "y_pos": 8550.599975585938 + }, + { + "id": 19655, + "x_pos": 1828, + "y_pos": 8578 + }, + { + "id": 19654, + "x_pos": 1757.6000061035156, + "y_pos": 8548 + }, + { + "id": 19653, + "x_pos": 1832, + "y_pos": 8575.899993896484 + }, + { + "id": 19649, + "x_pos": 2061.2999877929688, + "y_pos": 8729.699981689453 + }, + { + "id": 19648, + "x_pos": 2063.9000244140625, + "y_pos": 8727 + }, + { + "id": 19647, + "x_pos": 2055.300018310547, + "y_pos": 8731.100006103516 + }, + { + "id": 19646, + "x_pos": 2024.3999938964844, + "y_pos": 8787.899993896484 + }, + { + "id": 19645, + "x_pos": 2053.4000244140625, + "y_pos": 8787.100006103516 + }, + { + "id": 19470, + "x_pos": 2471.7999877929688, + "y_pos": 8545.199981689453 + }, + { + "id": 19467, + "x_pos": 2475, + "y_pos": 8553.799987792969 + }, + { + "id": 19460, + "x_pos": 1968.6000061035156, + "y_pos": 7294.600006103516 + }, + { + "id": 19458, + "x_pos": 1965, + "y_pos": 7294.899993896484 + }, + { + "id": 19452, + "x_pos": 1797.8999938964844, + "y_pos": 7269 + }, + { + "id": 19451, + "x_pos": 1792.8999938964844, + "y_pos": 7266.800018310547 + }, + { + "id": 19449, + "x_pos": 1804.1000061035156, + "y_pos": 7114.800018310547 + }, + { + "id": 19388, + "x_pos": 2201.300048828125, + "y_pos": 8405.700012207031 + }, + { + "id": 19387, + "x_pos": 2464.5, + "y_pos": 8351.299987792969 + }, + { + "id": 19386, + "x_pos": 2459.7000122070312, + "y_pos": 8355.700012207031 + }, + { + "id": 19385, + "x_pos": 2465.2000122070312, + "y_pos": 8345.700012207031 + }, + { + "id": 19382, + "x_pos": 2213.9000244140625, + "y_pos": 8661.900024414062 + }, + { + "id": 19381, + "x_pos": 2217.300018310547, + "y_pos": 8663.100006103516 + }, + { + "id": 19380, + "x_pos": 2206.8999938964844, + "y_pos": 8671 + }, + { + "id": 19379, + "x_pos": 2204.0999755859375, + "y_pos": 8407.5 + }, + { + "id": 19378, + "x_pos": 1729.7000122070312, + "y_pos": 8586.800018310547 + }, + { + "id": 19377, + "x_pos": 1841.1000061035156, + "y_pos": 8686.600006103516 + }, + { + "id": 19376, + "x_pos": 1823, + "y_pos": 8523.099960327148 + }, + { + "id": 19374, + "x_pos": 1963.6999816894531, + "y_pos": 8529.299987792969 + }, + { + "id": 19369, + "x_pos": 1823.2999877929688, + "y_pos": 8388.5 + }, + { + "id": 19368, + "x_pos": 1828.8000183105469, + "y_pos": 8389 + }, + { + "id": 19367, + "x_pos": 1835.1999816894531, + "y_pos": 8387.799987792969 + }, + { + "id": 19366, + "x_pos": 1764.7000122070312, + "y_pos": 8090.300018310547 + }, + { + "id": 19365, + "x_pos": 1762.5999755859375, + "y_pos": 8143.799957275391 + }, + { + "id": 19363, + "x_pos": 1757.5999755859375, + "y_pos": 8147.100006103516 + }, + { + "id": 19360, + "x_pos": 1828.0999755859375, + "y_pos": 8523.299987792969 + }, + { + "id": 19353, + "x_pos": 1810, + "y_pos": 8744.799987792969 + }, + { + "id": 19351, + "x_pos": 1818.3999938964844, + "y_pos": 8747.399993896484 + }, + { + "id": 19350, + "x_pos": 1635.1000061035156, + "y_pos": 8711.599975585938 + }, + { + "id": 19349, + "x_pos": 1814.3000183105469, + "y_pos": 8749.799987792969 + }, + { + "id": 19348, + "x_pos": 1856.1000061035156, + "y_pos": 8977.5 + }, + { + "id": 19347, + "x_pos": 1856.5, + "y_pos": 8980.700012207031 + }, + { + "id": 19345, + "x_pos": 1822.2000122070312, + "y_pos": 8990.300018310547 + }, + { + "id": 19344, + "x_pos": 1826.0999755859375, + "y_pos": 8992 + }, + { + "id": 19343, + "x_pos": 1850.6000061035156, + "y_pos": 9078.5 + }, + { + "id": 17559, + "x_pos": 529.2000122070312, + "y_pos": 6150.800018310547 + }, + { + "id": 17558, + "x_pos": 440.1999816894531, + "y_pos": 6194.399993896484 + }, + { + "id": 17545, + "x_pos": 247.10000610351562, + "y_pos": 6339.799987792969 + }, + { + "id": 17429, + "x_pos": 3467.7999877929688, + "y_pos": 7307.5 + }, + { + "id": 17427, + "x_pos": 3508.5999755859375, + "y_pos": 7305.299987792969 + }, + { + "id": 17425, + "x_pos": 3515.1000061035156, + "y_pos": 7309.699981689453 + }, + { + "id": 17422, + "x_pos": 3466.2000122070312, + "y_pos": 7310.600006103516 + }, + { + "id": 17421, + "x_pos": 3475.2000122070312, + "y_pos": 7317.399993896484 + }, + { + "id": 17395, + "x_pos": 3174.6000061035156, + "y_pos": 6832.100006103516 + }, + { + "id": 17392, + "x_pos": 2916.3999938964844, + "y_pos": 6715.5 + }, + { + "id": 17391, + "x_pos": 2931.5999755859375, + "y_pos": 6716.199981689453 + }, + { + "id": 17389, + "x_pos": 2927, + "y_pos": 6733.899993896484 + }, + { + "id": 17388, + "x_pos": 2915.800018310547, + "y_pos": 6768.600006103516 + }, + { + "id": 17383, + "x_pos": -313.9000244140625, + "y_pos": 6191.799987792969 + }, + { + "id": 17381, + "x_pos": -314.3999938964844, + "y_pos": 6197.399993896484 + }, + { + "id": 16663, + "x_pos": 446.19989013671875, + "y_pos": 6194.510584500273 + }, + { + "id": 16662, + "x_pos": 241.5999755859375, + "y_pos": 6339.968086111583 + }, + { + "id": 16660, + "x_pos": 672.1999816894531, + "y_pos": 6368.471298121687 + }, + { + "id": 16611, + "x_pos": 3494.2000732421875, + "y_pos": 6548.474980548019 + }, + { + "id": 16610, + "x_pos": 3500.5999755859375, + "y_pos": 6551.883418220032 + }, + { + "id": 16604, + "x_pos": 3163.999969482422, + "y_pos": 6842.84937062905 + }, + { + "id": 16602, + "x_pos": 3184.4000244140625, + "y_pos": 6831.211551110993 + }, + { + "id": 16601, + "x_pos": 3890, + "y_pos": 7040.236696818363 + }, + { + "id": 16600, + "x_pos": 3897.2000122070312, + "y_pos": 7040.199981689453 + }, + { + "id": 16599, + "x_pos": 3894, + "y_pos": 7045.100006103516 + }, + { + "id": 16597, + "x_pos": 3889, + "y_pos": 7044.100021362305 + }, + { + "id": 16596, + "x_pos": 3971.7999877929688, + "y_pos": 7115.200012207031 + }, + { + "id": 16593, + "x_pos": 4047.9000854492188, + "y_pos": 7175.977886584811 + }, + { + "id": 16592, + "x_pos": 4008, + "y_pos": 7181.54021551822 + }, + { + "id": 16587, + "x_pos": 3971.5999755859375, + "y_pos": 7223.1261032477105 + }, + { + "id": 16586, + "x_pos": 3849.3999633789062, + "y_pos": 7111.188867992016 + }, + { + "id": 16585, + "x_pos": 3856, + "y_pos": 7172.629510250748 + }, + { + "id": 16583, + "x_pos": 3964.5, + "y_pos": 7227.600006103516 + }, + { + "id": 16582, + "x_pos": 3893, + "y_pos": 7292.579016205569 + }, + { + "id": 16581, + "x_pos": 3861.2999877929688, + "y_pos": 7172.399978637695 + }, + { + "id": 16580, + "x_pos": 3841.2999877929688, + "y_pos": 7328.8270622209275 + }, + { + "id": 16577, + "x_pos": 3697.6000061035156, + "y_pos": 7137.768939592608 + }, + { + "id": 16576, + "x_pos": 3565.500030517578, + "y_pos": 7215.290395236143 + }, + { + "id": 16573, + "x_pos": 3486.1000061035156, + "y_pos": 7223.470758967918 + }, + { + "id": 14914, + "x_pos": 3178.8059092783515, + "y_pos": 5288.020317663989 + }, + { + "id": 14913, + "x_pos": 3184.4378532081655, + "y_pos": 5294.027049459758 + }, + { + "id": 14912, + "x_pos": 3191.004985509856, + "y_pos": 5292.329695859967 + }, + { + "id": 14911, + "x_pos": 3194.243884708975, + "y_pos": 5293.855439164835 + }, + { + "id": 14909, + "x_pos": 3289.2040006301304, + "y_pos": 5349.00338118247 + }, + { + "id": 14908, + "x_pos": 3378.8009848797246, + "y_pos": 5279.821657909309 + }, + { + "id": 14902, + "x_pos": 1546.5, + "y_pos": 5922.399993896484 + }, + { + "id": 14586, + "x_pos": 1381.3009932340346, + "y_pos": 5977.60641317214 + }, + { + "id": 14584, + "x_pos": 1350, + "y_pos": 5799.199981689453 + }, + { + "id": 14583, + "x_pos": 1343.5, + "y_pos": 5811.5 + }, + { + "id": 14582, + "x_pos": 1361.8000183105469, + "y_pos": 5836.5 + }, + { + "id": 14427, + "x_pos": 3526.1000061035156, + "y_pos": 5185.0999755859375 + }, + { + "id": 14321, + "x_pos": 3457.2000122070312, + "y_pos": 4601.899993896484 + }, + { + "id": 14309, + "x_pos": 3886.300018310547, + "y_pos": 5021.899993896484 + }, + { + "id": 14307, + "x_pos": 3842.0999755859375, + "y_pos": 5056.799987792969 + }, + { + "id": 14306, + "x_pos": 3869.5, + "y_pos": 5028.5 + }, + { + "id": 14304, + "x_pos": 3525.7000122070312, + "y_pos": 5036.600006103516 + }, + { + "id": 14164, + "x_pos": 2020, + "y_pos": 5776.399993896484 + }, + { + "id": 14163, + "x_pos": 2163.7000122070312, + "y_pos": 6005.699981689453 + }, + { + "id": 14162, + "x_pos": 2131.5, + "y_pos": 6057.200012207031 + }, + { + "id": 14155, + "x_pos": 1279.1000061035156, + "y_pos": 5861.9000244140625 + }, + { + "id": 14153, + "x_pos": 1058, + "y_pos": 5913.199981689453 + }, + { + "id": 14095, + "x_pos": 2200.9000244140625, + "y_pos": 6164.5 + }, + { + "id": 14094, + "x_pos": 3262, + "y_pos": 5023.799987792969 + }, + { + "id": 14093, + "x_pos": 3391.7999877929688, + "y_pos": 4946.399978637695 + }, + { + "id": 14091, + "x_pos": 3212.8999938964844, + "y_pos": 5042.499977111816 + }, + { + "id": 14090, + "x_pos": 3639.5999755859375, + "y_pos": 5133.9000244140625 + }, + { + "id": 14088, + "x_pos": 3450.5000610351562, + "y_pos": 5210.800010681152 + }, + { + "id": 14087, + "x_pos": 2974.7999877929688, + "y_pos": 5677.5000076293945 + }, + { + "id": 14085, + "x_pos": 2865.2999877929688, + "y_pos": 5592.600006103516 + }, + { + "id": 14084, + "x_pos": 2865.2999267578125, + "y_pos": 5545.39998626709 + }, + { + "id": 14083, + "x_pos": 2786.8999938964844, + "y_pos": 5476.4000244140625 + }, + { + "id": 14082, + "x_pos": 2721.3999938964844, + "y_pos": 5454.300018310547 + }, + { + "id": 14079, + "x_pos": 2293.5, + "y_pos": 5850.399993896484 + }, + { + "id": 14076, + "x_pos": 2450.199981689453, + "y_pos": 5833.100006103516 + }, + { + "id": 14073, + "x_pos": 2212, + "y_pos": 6269.700012207031 + }, + { + "id": 13876, + "x_pos": 3255.5, + "y_pos": 4923.5 + }, + { + "id": 12053, + "x_pos": 43.335705560913084, + "y_pos": 2414.9254704739615 + }, + { + "id": 12052, + "x_pos": 108.5025621483037, + "y_pos": 2449.5943397252204 + }, + { + "id": 12051, + "x_pos": 145.4467998900127, + "y_pos": 2477.442437572451 + }, + { + "id": 12050, + "x_pos": 189.66883022930688, + "y_pos": 2470.6681818997004 + }, + { + "id": 12049, + "x_pos": 245.2797864553686, + "y_pos": 2431.2439739355723 + }, + { + "id": 12047, + "x_pos": -159.55139826422328, + "y_pos": 2697.966663837711 + }, + { + "id": 12046, + "x_pos": -1604.6648089755354, + "y_pos": 1109.886621307348 + }, + { + "id": 12044, + "x_pos": -1788.4418154004638, + "y_pos": 1201.67277878831 + }, + { + "id": 12039, + "x_pos": -1923.6083573638816, + "y_pos": 1427.0822723454212 + }, + { + "id": 12037, + "x_pos": -1655.886807867923, + "y_pos": 1339.7683810233639 + }, + { + "id": 12036, + "x_pos": -1584.4977609183115, + "y_pos": 1776.9835394305383 + }, + { + "id": 12035, + "x_pos": -1639.2199062014693, + "y_pos": 2211.2851215464907 + }, + { + "id": 10862, + "x_pos": 770.6099729910229, + "y_pos": -132.1194790482955 + }, + { + "id": 10861, + "x_pos": 764.8977301896302, + "y_pos": -126.72850816761365 + }, + { + "id": 10860, + "x_pos": 749.3998653242443, + "y_pos": 58.284672230113756 + }, + { + "id": 10625, + "x_pos": -547, + "y_pos": 825.5 + }, + { + "id": 10624, + "x_pos": -547, + "y_pos": 829 + }, + { + "id": 10623, + "x_pos": -559.5, + "y_pos": 814.5 + }, + { + "id": 8485, + "x_pos": -1685.5, + "y_pos": 2041 + }, + { + "id": 8480, + "x_pos": -1629, + "y_pos": 2014.5 + }, + { + "id": 7456, + "x_pos": 459.5, + "y_pos": 817 + }, + { + "id": 7403, + "x_pos": -446.5, + "y_pos": 1190 + }, + { + "id": 7399, + "x_pos": -452.5, + "y_pos": 1193.5 + }, + { + "id": 7307, + "x_pos": 287, + "y_pos": 1171 + }, + { + "id": 7306, + "x_pos": 293.5, + "y_pos": 1162 + }, + { + "id": 7300, + "x_pos": 421.5, + "y_pos": 892.5 + }, + { + "id": 7299, + "x_pos": 227.5, + "y_pos": 918 + }, + { + "id": 7290, + "x_pos": 457, + "y_pos": 953 + }, + { + "id": 7289, + "x_pos": 420.5, + "y_pos": 897.5 + }, + { + "id": 7288, + "x_pos": 221.5, + "y_pos": 917.5 + }, + { + "id": 7287, + "x_pos": 454, + "y_pos": 956.5 + }, + { + "id": 7286, + "x_pos": 297, + "y_pos": 1172.5 + }, + { + "id": 7100, + "x_pos": -308, + "y_pos": 1388 + }, + { + "id": 7095, + "x_pos": -303, + "y_pos": 1392 + }, + { + "id": 7090, + "x_pos": -371.5, + "y_pos": 1368.5 + }, + { + "id": 7086, + "x_pos": -251, + "y_pos": 1487 + }, + { + "id": 7081, + "x_pos": -352, + "y_pos": 1372.5 + }, + { + "id": 7077, + "x_pos": -89.5, + "y_pos": 1384.5 + }, + { + "id": 7072, + "x_pos": -314, + "y_pos": 1505.5 + }, + { + "id": 7058, + "x_pos": -75, + "y_pos": 1381 + }, + { + "id": 7052, + "x_pos": -75, + "y_pos": 1384 + }, + { + "id": 7036, + "x_pos": -95, + "y_pos": 1382.5 + }, + { + "id": 7030, + "x_pos": -95.5, + "y_pos": 1394 + }, + { + "id": 7006, + "x_pos": -87, + "y_pos": 1387 + }, + { + "id": 6981, + "x_pos": 246.5, + "y_pos": 1474.5 + }, + { + "id": 6974, + "x_pos": 123, + "y_pos": 1364.5 + }, + { + "id": 6964, + "x_pos": 532, + "y_pos": 1342 + }, + { + "id": 6952, + "x_pos": 143, + "y_pos": 1378 + }, + { + "id": 6946, + "x_pos": 522, + "y_pos": 1344 + }, + { + "id": 6939, + "x_pos": 488, + "y_pos": 1367 + }, + { + "id": 6930, + "x_pos": 427.5, + "y_pos": 1207 + }, + { + "id": 6918, + "x_pos": -304, + "y_pos": 1395 + }, + { + "id": 6911, + "x_pos": -353.5, + "y_pos": 1201 + }, + { + "id": 6905, + "x_pos": 377, + "y_pos": 1206 + }, + { + "id": 6889, + "x_pos": 379.5, + "y_pos": 1210 + }, + { + "id": 6883, + "x_pos": 451, + "y_pos": 1230 + }, + { + "id": 6876, + "x_pos": 267, + "y_pos": 1101.5 + }, + { + "id": 6871, + "x_pos": 292.5, + "y_pos": 1114.5 + }, + { + "id": 6861, + "x_pos": 406.5, + "y_pos": 1115 + }, + { + "id": 6855, + "x_pos": -30, + "y_pos": 1158.5 + }, + { + "id": 6850, + "x_pos": 141, + "y_pos": 1066 + }, + { + "id": 6841, + "x_pos": 331, + "y_pos": 1027.5 + }, + { + "id": 6830, + "x_pos": 144.5, + "y_pos": 1067 + }, + { + "id": 6825, + "x_pos": 423.5, + "y_pos": 1042.5 + }, + { + "id": 6821, + "x_pos": -20.5, + "y_pos": 1194 + }, + { + "id": 6816, + "x_pos": -348, + "y_pos": 1197.5 + }, + { + "id": 6811, + "x_pos": 371, + "y_pos": 974.5 + }, + { + "id": 6805, + "x_pos": 367.5, + "y_pos": 978.5 + }, + { + "id": 6798, + "x_pos": -29.5, + "y_pos": 1163.5 + }, + { + "id": 6794, + "x_pos": 462, + "y_pos": 1053.5 + }, + { + "id": 6786, + "x_pos": 476, + "y_pos": 1039 + }, + { + "id": 6775, + "x_pos": 151, + "y_pos": 1067.5 + }, + { + "id": 6640, + "x_pos": -385.5, + "y_pos": 1242.5 + }, + { + "id": 6637, + "x_pos": -310.5, + "y_pos": 1509.5 + }, + { + "id": 6624, + "x_pos": 82.5, + "y_pos": 1382.5 + }, + { + "id": 6620, + "x_pos": -28, + "y_pos": 1195 + }, + { + "id": 4820, + "x_pos": -2520.884472502452, + "y_pos": 1632.3641829579806 + }, + { + "id": 4819, + "x_pos": -1797.9042851892295, + "y_pos": 1749.3506012537782 + }, + { + "id": 4818, + "x_pos": -2190.9023318257446, + "y_pos": 1874.4004008358525 + }, + { + "id": 4817, + "x_pos": -2039.8554511021018, + "y_pos": 1695.5325960900846 + }, + { + "id": 4816, + "x_pos": -1799.9062385527147, + "y_pos": 1742.3496958068317 + }, + { + "id": 4815, + "x_pos": -2128.9014946699654, + "y_pos": 2047.3361141026298 + }, + { + "id": 4814, + "x_pos": -1795.867450334939, + "y_pos": 1784.322532398428 + }, + { + "id": 4813, + "x_pos": -1816.9313532260946, + "y_pos": 1961.4212261156285 + }, + { + "id": 4812, + "x_pos": -2131.8833562947466, + "y_pos": 2051.3089506942256 + }, + { + "id": 4811, + "x_pos": -1792.9059595007884, + "y_pos": 1864.344263125151 + }, + { + "id": 4810, + "x_pos": -1491.9988837922942, + "y_pos": 1491.998189106106 + }, + { + "id": 4809, + "x_pos": -1444.8953555275834, + "y_pos": 1466.3098561411725 + }, + { + "id": 4808, + "x_pos": -1436.893123112172, + "y_pos": 1478.298990777811 + }, + { + "id": 4807, + "x_pos": -1494.8571254136605, + "y_pos": 1498.3641829579806 + }, + { + "id": 4806, + "x_pos": -1532.8716361138356, + "y_pos": 1626.321626951481 + }, + { + "id": 4805, + "x_pos": -1323.9006575141857, + "y_pos": 1567.330681420949 + }, + { + "id": 4804, + "x_pos": -1541.8741475811737, + "y_pos": 1637.3116670350664 + }, + { + "id": 4803, + "x_pos": -1407.8853096582316, + "y_pos": 1623.3279650801087 + }, + { + "id": 4802, + "x_pos": -1453.8981460468476, + "y_pos": 1463.4728365915962 + }, + { + "id": 4801, + "x_pos": -1618.854334894396, + "y_pos": 1622.4655930160216 + }, + { + "id": 4800, + "x_pos": -1468.8537767905432, + "y_pos": 1652.298085330864 + }, + { + "id": 4799, + "x_pos": -2325.8300573767956, + "y_pos": 1698.3044234594918 + }, + { + "id": 4798, + "x_pos": -2191.8283830652367, + "y_pos": 1872.4502004179262 + }, + { + "id": 4797, + "x_pos": -1994.8858677620842, + "y_pos": 2086.4139825400543 + }, + { + "id": 4796, + "x_pos": -1566.904564241156, + "y_pos": 1550.4438622892985 + }, + { + "id": 4795, + "x_pos": -1333.9034480334503, + "y_pos": 1565.3324923148425 + }, + { + "id": 4794, + "x_pos": -1812.8096865861648, + "y_pos": 1133.3288705270552 + }, + { + "id": 4793, + "x_pos": -1976.8973088910684, + "y_pos": 896.3605611701933 + }, + { + "id": 4792, + "x_pos": -2003.904564241156, + "y_pos": 2262.4004008358525 + }, + { + "id": 4791, + "x_pos": -2006.9003784622594, + "y_pos": 999.3496958068317 + }, + { + "id": 4790, + "x_pos": -1794.9037270853767, + "y_pos": 2016.3388304434702 + }, + { + "id": 4789, + "x_pos": -2061.9737691189143, + "y_pos": 1284.2582456652053 + }, + { + "id": 4788, + "x_pos": -1770.893123112172, + "y_pos": 1160.3831973438632 + }, + { + "id": 4787, + "x_pos": -1977.906517604641, + "y_pos": 891.4846074019047 + }, + { + "id": 4786, + "x_pos": -1672.8652179195274, + "y_pos": 1205.3297759740021 + }, + { + "id": 4785, + "x_pos": -2010.869961802277, + "y_pos": 1394.2582456652053 + }, + { + "id": 4784, + "x_pos": -1404.8320107402806, + "y_pos": 1613.2600565590988 + }, + { + "id": 4783, + "x_pos": -2461.903727085377, + "y_pos": 1984.3487903598848 + }, + { + "id": 4782, + "x_pos": -1965.8671712830126, + "y_pos": 1484.289936308343 + }, + { + "id": 4781, + "x_pos": -2264.8546139463224, + "y_pos": 1731.3768592152355 + }, + { + "id": 4780, + "x_pos": -2143.9386085761826, + "y_pos": 1073.2826927327687 + }, + { + "id": 4779, + "x_pos": -2465.9335856415064, + "y_pos": 1976.1939589319827 + }, + { + "id": 4778, + "x_pos": -1929.9104243316115, + "y_pos": 1826.2845036266622 + }, + { + "id": 4777, + "x_pos": -2525.0373929581438, + "y_pos": 1636.2491911957372 + }, + { + "id": 4776, + "x_pos": -2005.9054013969353, + "y_pos": 996.2700164755133 + }, + { + "id": 4775, + "x_pos": -1996.8853096582313, + "y_pos": 2096.3315868678956 + }, + { + "id": 4774, + "x_pos": -2001.9218654605957, + "y_pos": 2262.608653633615 + }, + { + "id": 4773, + "x_pos": -1466.8766590485116, + "y_pos": 1661.352412147672 + }, + { + "id": 4772, + "x_pos": -1679.8671712830126, + "y_pos": 1204.330681420949 + }, + { + "id": 4771, + "x_pos": -1938.9455848743432, + "y_pos": 1826.3786701091294 + }, + { + "id": 4770, + "x_pos": -2199.9059595007884, + "y_pos": 1876.3985899419586 + }, + { + "id": 4769, + "x_pos": -2245.8721942176885, + "y_pos": 1802.3515067007252 + }, + { + "id": 4768, + "x_pos": -2060.882519138967, + "y_pos": 2097.29084175529 + }, + { + "id": 4767, + "x_pos": -1803.9014946699651, + "y_pos": 1868.4393350545647 + }, + { + "id": 4766, + "x_pos": -2053.9023318257446, + "y_pos": 2103.3985899419586 + }, + { + "id": 4765, + "x_pos": -1329.8632645560424, + "y_pos": 1559.2256495751203 + }, + { + "id": 4764, + "x_pos": -1798.6927638289849, + "y_pos": 2011.5280688553507 + }, + { + "id": 4763, + "x_pos": -1824.8546139463224, + "y_pos": 2019.620424443924 + }, + { + "id": 4170, + "x_pos": 785.0906918760948, + "y_pos": 1060.4049280705863 + }, + { + "id": 4169, + "x_pos": 804.0008371557797, + "y_pos": 1098.9945673183192 + }, + { + "id": 4168, + "x_pos": 772.091249979947, + "y_pos": 1002.3496958068317 + }, + { + "id": 4166, + "x_pos": 798.0985053300346, + "y_pos": 1018.3352086556829 + }, + { + "id": 4165, + "x_pos": 912.1185970687384, + "y_pos": 1079.3161942698002 + }, + { + "id": 4164, + "x_pos": 798.0987843819612, + "y_pos": 1019.4420513954051 + }, + { + "id": 4163, + "x_pos": 973.1356192362518, + "y_pos": 1063.330681420949 + }, + { + "id": 4162, + "x_pos": 904.1319915612085, + "y_pos": 1069.289030861396 + }, + { + "id": 4160, + "x_pos": 863.1205504322243, + "y_pos": 974.3750483213421 + }, + { + "id": 4156, + "x_pos": 838.0979472261815, + "y_pos": 888.4076444114266 + }, + { + "id": 4155, + "x_pos": 817.0932033434328, + "y_pos": 769.410360752267 + }, + { + "id": 4152, + "x_pos": 828.0962729146231, + "y_pos": 780.4004008358525 + }, + { + "id": 4151, + "x_pos": 995.1635244288964, + "y_pos": 905.4094553053201 + }, + { + "id": 4150, + "x_pos": 875.1063187839754, + "y_pos": 801.4239424564689 + }, + { + "id": 4149, + "x_pos": 847.0985053300346, + "y_pos": 824.4031171766928 + }, + { + "id": 4148, + "x_pos": 890.1146903417684, + "y_pos": 711.3949681541717 + }, + { + "id": 4144, + "x_pos": 42.09794722618199, + "y_pos": 611.375953768289 + }, + { + "id": 4143, + "x_pos": 54.10129584929928, + "y_pos": 669.3234378453744 + }, + { + "id": 4142, + "x_pos": 838.0979472261815, + "y_pos": 833.4574439935004 + }, + { + "id": 4140, + "x_pos": 854.104644472417, + "y_pos": 710.3958736011182 + }, + { + "id": 4138, + "x_pos": 34.09571481077046, + "y_pos": 600.3859136847036 + }, + { + "id": 4137, + "x_pos": 20.092087135726615, + "y_pos": 673.4076444114266 + }, + { + "id": 4136, + "x_pos": 291.0987843819612, + "y_pos": 542.375953768289 + }, + { + "id": 4135, + "x_pos": 288.097947226182, + "y_pos": 544.3741428743951 + }, + { + "id": 4134, + "x_pos": 31.094598603064696, + "y_pos": 693.3895354724909 + }, + { + "id": 4132, + "x_pos": 279.16798925971943, + "y_pos": 545.5235416206169 + }, + { + "id": 4131, + "x_pos": 1221.11301603021, + "y_pos": 903.3804810030229 + }, + { + "id": 4130, + "x_pos": -166.90093656611225, + "y_pos": 341.41217164616046 + }, + { + "id": 4129, + "x_pos": 522.0923661876532, + "y_pos": 512.3723319805017 + }, + { + "id": 4128, + "x_pos": -707.4539564321367, + "y_pos": 106.1037703180923 + }, + { + "id": 4126, + "x_pos": -659.9462825041596, + "y_pos": 311.6743951799426 + }, + { + "id": 4125, + "x_pos": -532.9023318257446, + "y_pos": 22.327059633161753 + }, + { + "id": 4124, + "x_pos": -168.90149466996536, + "y_pos": 346.40764441142665 + }, + { + "id": 4123, + "x_pos": -411.8947974237303, + "y_pos": -56.61680265613677 + }, + { + "id": 4122, + "x_pos": 532.0666934104202, + "y_pos": 512.4502004179262 + }, + { + "id": 4121, + "x_pos": 842.1021330050789, + "y_pos": 708.4655930160216 + }, + { + "id": 4120, + "x_pos": 413.0477178794222, + "y_pos": 383.6952204597187 + }, + { + "id": 4119, + "x_pos": -416.89619268336264, + "y_pos": -55.617708103083714 + }, + { + "id": 4118, + "x_pos": -168.90149466996536, + "y_pos": 357.3976844950121 + }, + { + "id": 4117, + "x_pos": -682.4514449647986, + "y_pos": 285.077512356635 + }, + { + "id": 4116, + "x_pos": 447.025672777233, + "y_pos": 96.6707733921553 + }, + { + "id": 4115, + "x_pos": 427.0580428007006, + "y_pos": -419.3106649454353 + }, + { + "id": 4114, + "x_pos": 443.5556708593258, + "y_pos": 102.69340956582528 + }, + { + "id": 4113, + "x_pos": 414.53432338695256, + "y_pos": 380.77942702577093 + }, + { + "id": 4112, + "x_pos": 895.1160856014012, + "y_pos": 715.3913463663844 + }, + { + "id": 4111, + "x_pos": 886.1135741340631, + "y_pos": 715.3913463663844 + }, + { + "id": 4110, + "x_pos": 429.55776374877405, + "y_pos": -416.8405446946797 + }, + { + "id": 4109, + "x_pos": -412.86856654264466, + "y_pos": -56.63581704201965 + }, + { + "id": 4108, + "x_pos": 741.0950171809545, + "y_pos": 225.6721315625755 + }, + { + "id": 4107, + "x_pos": 383.0468807236425, + "y_pos": -207.3093067750151 + }, + { + "id": 4106, + "x_pos": 384.53683485429065, + "y_pos": -192.79663051776015 + }, + { + "id": 4105, + "x_pos": 402.05008982079653, + "y_pos": -383.30251592291415 + }, + { + "id": 4104, + "x_pos": 987.0477178794217, + "y_pos": 909.3750483213421 + }, + { + "id": 4103, + "x_pos": 454.07729738362514, + "y_pos": -458.76539259809556 + }, + { + "id": 4102, + "x_pos": 394.04883408712794, + "y_pos": -374.3514100580412 + }, + { + "id": 4101, + "x_pos": -287.9037270853769, + "y_pos": 191.4058335175332 + }, + { + "id": 4100, + "x_pos": 840.1007377454462, + "y_pos": 714.3922518133313 + }, + { + "id": 4099, + "x_pos": 548.5651586248246, + "y_pos": -369.839639247733 + }, + { + "id": 4098, + "x_pos": 771.5590194824426, + "y_pos": 100.21785663338869 + }, + { + "id": 4097, + "x_pos": 492.0711582412432, + "y_pos": -436.3595590805626 + }, + { + "id": 4096, + "x_pos": -662.4469801339756, + "y_pos": 319.667151604368 + }, + { + "id": 4095, + "x_pos": -152.89926225455383, + "y_pos": 239.3813864499698 + }, + { + "id": 4094, + "x_pos": 634.0940404992116, + "y_pos": 568.3994953889055 + }, + { + "id": 4093, + "x_pos": 773.0592985343692, + "y_pos": 107.67846969120296 + }, + { + "id": 4092, + "x_pos": 785.5641819430821, + "y_pos": 247.16081347574027 + }, + { + "id": 4091, + "x_pos": 450.0574846968475, + "y_pos": 105.6906932249849 + }, + { + "id": 4089, + "x_pos": 533.0605542680382, + "y_pos": -454.2844069839782 + }, + { + "id": 4088, + "x_pos": -275.89535552758343, + "y_pos": -306.6032209519349 + }, + { + "id": 4087, + "x_pos": 856.1052025762692, + "y_pos": 716.3904409194374 + }, + { + "id": 4086, + "x_pos": 498.0507874506129, + "y_pos": -433.8029686463876 + }, + { + "id": 4085, + "x_pos": 488.54813645731156, + "y_pos": -431.30523226375453 + }, + { + "id": 4084, + "x_pos": 741.5641819430821, + "y_pos": -476.8441664824668 + }, + { + "id": 4083, + "x_pos": 827.0923661876532, + "y_pos": 784.3967790480651 + }, + { + "id": 4082, + "x_pos": 456.55706611895766, + "y_pos": 14.685713266777384 + }, + { + "id": 4081, + "x_pos": -309.86131119255697, + "y_pos": -299.47736382633 + }, + { + "id": 4080, + "x_pos": 737.5630657353768, + "y_pos": -476.8441664824668 + }, + { + "id": 4079, + "x_pos": 826.0740882864711, + "y_pos": 119.16805705131492 + }, + { + "id": 4078, + "x_pos": -240.88558871015766, + "y_pos": -300.60865363361563 + }, + { + "id": 4077, + "x_pos": 638.5447878341947, + "y_pos": -408.3604645275093 + }, + { + "id": 4076, + "x_pos": 710.0553918073992, + "y_pos": -510.8133812862759 + }, + { + "id": 4075, + "x_pos": 707.0752044941764, + "y_pos": -444.738681913165 + }, + { + "id": 4074, + "x_pos": -249.88810017749574, + "y_pos": -300.60865363361563 + }, + { + "id": 4073, + "x_pos": 740.0637633651922, + "y_pos": -473.84688282330717 + }, + { + "id": 4072, + "x_pos": -243.89423931987767, + "y_pos": -345.61680265613677 + }, + { + "id": 4071, + "x_pos": -231.89089069676038, + "y_pos": -344.6177081030837 + }, + { + "id": 4070, + "x_pos": 412.1325496650611, + "y_pos": 599.3243432923214 + }, + { + "id": 4069, + "x_pos": 1218.1127369782835, + "y_pos": 899.4411459484581 + }, + { + "id": 4068, + "x_pos": -291.9109824354641, + "y_pos": 193.40402262363932 + }, + { + "id": 4067, + "x_pos": 740.0502293467598, + "y_pos": 126.69386228929852 + }, + { + "id": 4066, + "x_pos": 638.0443692563049, + "y_pos": 575.5181089389362 + }, + { + "id": 4065, + "x_pos": 815.5711582412432, + "y_pos": 123.66398254005435 + }, + { + "id": 4064, + "x_pos": -238.89284406024535, + "y_pos": -341.6204244439241 + }, + { + "id": 4063, + "x_pos": -482.9681880803855, + "y_pos": 63.442956842351805 + }, + { + "id": 4062, + "x_pos": -249.89926225455383, + "y_pos": 101.3795755560759 + }, + { + "id": 4061, + "x_pos": 638.0486945611647, + "y_pos": -406.3364701834191 + }, + { + "id": 4060, + "x_pos": 364.5313933417251, + "y_pos": 9.190693224984898 + }, + { + "id": 4059, + "x_pos": 730.5460435678633, + "y_pos": 130.71830935686216 + }, + { + "id": 4058, + "x_pos": -144.8970298391423, + "y_pos": 237.38319734386323 + }, + { + "id": 4057, + "x_pos": -685.4522821205778, + "y_pos": 183.6694152217351 + }, + { + "id": 4056, + "x_pos": -173.87191516576195, + "y_pos": 244.35784482935287 + }, + { + "id": 4055, + "x_pos": -298.91293579894955, + "y_pos": 150.3352086556829 + }, + { + "id": 4054, + "x_pos": -541.9101452796849, + "y_pos": 24.414887987001066 + }, + { + "id": 4053, + "x_pos": -686.4450267704906, + "y_pos": 180.61916291618763 + }, + { + "id": 4052, + "x_pos": 634.0463226197899, + "y_pos": -406.83601745994565 + }, + { + "id": 4051, + "x_pos": 490.5647400469352, + "y_pos": -146.27263617366998 + }, + { + "id": 4050, + "x_pos": 821.0726930268384, + "y_pos": 119.66760432784145 + }, + { + "id": 4049, + "x_pos": 886.0634843132657, + "y_pos": 129.17348973299568 + }, + { + "id": 4048, + "x_pos": 530.049113139054, + "y_pos": -104.80387409333434 + }, + { + "id": 4047, + "x_pos": 552.5551127554727, + "y_pos": 123.64632632459166 + }, + { + "id": 4046, + "x_pos": 704.5431135226354, + "y_pos": -439.2291747202237 + }, + { + "id": 4045, + "x_pos": 740.0771578576623, + "y_pos": -421.82243575574375 + }, + { + "id": 4044, + "x_pos": 888.5721349229862, + "y_pos": -268.3242466496374 + }, + { + "id": 4043, + "x_pos": 892.5926452395797, + "y_pos": 122.66488798700107 + }, + { + "id": 4042, + "x_pos": 891.5835760519703, + "y_pos": -264.7970832412334 + }, + { + "id": 4041, + "x_pos": 882.0708791893167, + "y_pos": -263.80749588112167 + }, + { + "id": 4040, + "x_pos": 746.0531593919877, + "y_pos": 233.17348973299568 + }, + { + "id": 4039, + "x_pos": 813.5563684891422, + "y_pos": 178.67484790341587 + }, + { + "id": 4038, + "x_pos": 805.0696234556481, + "y_pos": 183.21876208033564 + }, + { + "id": 4037, + "x_pos": 811.5796693249995, + "y_pos": 447.6481372184853 + }, + { + "id": 4036, + "x_pos": 920.0325095494309, + "y_pos": 51.7798797492444 + }, + { + "id": 4035, + "x_pos": 889.0426949447456, + "y_pos": -99.20563309960698 + }, + { + "id": 4034, + "x_pos": -100.88363534667269, + "y_pos": 428.30080167170445 + }, + { + "id": 4033, + "x_pos": 35.096272914623114, + "y_pos": 696.3868191316506 + }, + { + "id": 4032, + "x_pos": 1042.5565080151046, + "y_pos": -620.339639247733 + }, + { + "id": 4031, + "x_pos": -284.8978669949215, + "y_pos": -311.59869371720083 + }, + { + "id": 4030, + "x_pos": 648.0979472261815, + "y_pos": 575.3931572602778 + }, + { + "id": 4029, + "x_pos": -693.4270279212346, + "y_pos": -564.2753525145104 + }, + { + "id": 4028, + "x_pos": -682.4266093433453, + "y_pos": -25.304326816807816 + }, + { + "id": 4027, + "x_pos": 857.1032492127842, + "y_pos": 891.4049280705863 + }, + { + "id": 4026, + "x_pos": 568.511859706874, + "y_pos": 223.35141005804144 + }, + { + "id": 4025, + "x_pos": -173.8922859563927, + "y_pos": 375.4176043278412 + }, + { + "id": 4024, + "x_pos": 495.54590404190003, + "y_pos": -143.28621787787188 + }, + { + "id": 4023, + "x_pos": 549.0626471574869, + "y_pos": -309.79527234733996 + }, + { + "id": 4022, + "x_pos": 18.094598603064696, + "y_pos": 681.4004008358525 + }, + { + "id": 4021, + "x_pos": -298.90484329308265, + "y_pos": 197.2926526491833 + }, + { + "id": 4020, + "x_pos": -914.4483753936079, + "y_pos": -413.8233412026907 + }, + { + "id": 4019, + "x_pos": 418.1342239766195, + "y_pos": 607.3170997167472 + }, + { + "id": 4018, + "x_pos": -172.9054013969353, + "y_pos": 249.3723319805017 + }, + { + "id": 4017, + "x_pos": -257.89033259290727, + "y_pos": -328.5833011191053 + }, + { + "id": 4016, + "x_pos": -985.4616303601138, + "y_pos": -436.8260575435311 + }, + { + "id": 4015, + "x_pos": -917.4546540619526, + "y_pos": -411.23822918969154 + }, + { + "id": 4014, + "x_pos": -934.9540959581, + "y_pos": -433.305684987228 + }, + { + "id": 4013, + "x_pos": -830.9436315108583, + "y_pos": -436.2527163408404 + }, + { + "id": 4012, + "x_pos": -979.950886860946, + "y_pos": -434.8278684374245 + }, + { + "id": 4011, + "x_pos": -840.4580026850699, + "y_pos": -364.7635817042019 + }, + { + "id": 4010, + "x_pos": -736.925214083713, + "y_pos": -315.29934685860053 + }, + { + "id": 4009, + "x_pos": -866.4270279212346, + "y_pos": -207.27263617366998 + }, + { + "id": 4008, + "x_pos": -682.4355390049914, + "y_pos": -155.84009197120622 + }, + { + "id": 4007, + "x_pos": -786.9391666800352, + "y_pos": -300.81247583932895 + }, + { + "id": 4005, + "x_pos": -337.86912464649777, + "y_pos": -104.65392598095559 + }, + { + "id": 4003, + "x_pos": 494.04715977556907, + "y_pos": -137.82515209658413 + }, + { + "id": 4002, + "x_pos": 360.54646214575314, + "y_pos": 14.692956842351805 + }, + { + "id": 4000, + "x_pos": 544.0639028911555, + "y_pos": -309.8939660645408 + }, + { + "id": 3999, + "x_pos": -680.383774872636, + "y_pos": -151.37540440213138 + }, + { + "id": 3998, + "x_pos": -451.9059595007884, + "y_pos": -121.55794860459491 + }, + { + "id": 3997, + "x_pos": -838.9458639262698, + "y_pos": -363.31881396795666 + }, + { + "id": 3994, + "x_pos": -957.451165912872, + "y_pos": -125.33013205479165 + }, + { + "id": 3993, + "x_pos": -1113.0004185778898, + "y_pos": -176.24683093568615 + }, + { + "id": 3992, + "x_pos": -855.9271674471979, + "y_pos": -201.30251592291415 + }, + { + "id": 3991, + "x_pos": -477.4418176733361, + "y_pos": 88.22193114464926 + }, + { + "id": 3990, + "x_pos": -960.9112614873907, + "y_pos": -125.88310070117905 + }, + { + "id": 3989, + "x_pos": 524.5185569531086, + "y_pos": -96.35095733456797 + }, + { + "id": 3988, + "x_pos": 467.0622285795971, + "y_pos": 12.74864182957981 + }, + { + "id": 3987, + "x_pos": 670.5592985343692, + "y_pos": -137.31383400974914 + }, + { + "id": 3985, + "x_pos": 1043.5556708593258, + "y_pos": -619.7744470675634 + }, + { + "id": 3984, + "x_pos": -298.90484329308265, + "y_pos": 152.33339776178946 + }, + { + "id": 3983, + "x_pos": 989.5519036583182, + "y_pos": 150.1906932249849 + }, + { + "id": 3982, + "x_pos": -442.89842509877417, + "y_pos": -118.64124972370041 + }, + { + "id": 3981, + "x_pos": -341.87024085420353, + "y_pos": -122.63762793591332 + }, + { + "id": 3980, + "x_pos": -237.93191132994752, + "y_pos": 112.52173072672304 + }, + { + "id": 3979, + "x_pos": -678.4380504723295, + "y_pos": 13.648137218485317 + }, + { + "id": 3978, + "x_pos": -790.4761410602891, + "y_pos": -293.7948196238665 + }, + { + "id": 3977, + "x_pos": 457.0542755996935, + "y_pos": -221.83601745994565 + }, + { + "id": 3976, + "x_pos": -734.4259117135289, + "y_pos": -306.33465928952546 + }, + { + "id": 3975, + "x_pos": 531.0602752161121, + "y_pos": -353.8541263988818 + }, + { + "id": 3974, + "x_pos": 663.0512060285027, + "y_pos": -392.7844069839782 + }, + { + "id": 3973, + "x_pos": 672.0599961641856, + "y_pos": -145.75181089389366 + }, + { + "id": 3972, + "x_pos": 513.0460435678633, + "y_pos": -373.73460740190444 + }, + { + "id": 3971, + "x_pos": 466.059717112259, + "y_pos": 18.682091478990287 + }, + { + "id": 3969, + "x_pos": 556.059717112259, + "y_pos": 140.18073330856987 + }, + { + "id": 3968, + "x_pos": 458.05455465162004, + "y_pos": -216.34099741815317 + }, + { + "id": 3967, + "x_pos": 522.5470202496058, + "y_pos": -99.30885405154186 + }, + { + "id": 3966, + "x_pos": -247.8875420736431, + "y_pos": -293.61499176224333 + }, + { + "id": 3965, + "x_pos": 670.0535779698776, + "y_pos": -396.3713298908708 + }, + { + "id": 3964, + "x_pos": 1063.153897137434, + "y_pos": -583.7472836591596 + }, + { + "id": 2546, + "x_pos": -1467, + "y_pos": 962.2708328604372 + }, + { + "id": 2545, + "x_pos": -533, + "y_pos": 1523.43761795181 + }, + { + "id": 2544, + "x_pos": -440, + "y_pos": 1505.1829326095785 + }, + { + "id": 2543, + "x_pos": -520, + "y_pos": 1625.2753405656094 + }, + { + "id": 2542, + "x_pos": -1383, + "y_pos": 934.2392789242313 + }, + { + "id": 2541, + "x_pos": -1504, + "y_pos": 920.1570133048381 + }, + { + "id": 2540, + "x_pos": -1173, + "y_pos": 921.4421256569822 + }, + { + "id": 2539, + "x_pos": -621, + "y_pos": 1411.212232693198 + }, + { + "id": 2538, + "x_pos": -295, + "y_pos": 1686.2404058505244 + }, + { + "id": 2537, + "x_pos": -260, + "y_pos": 1813.3125291332803 + }, + { + "id": 2536, + "x_pos": -951, + "y_pos": 1257.326326596 + }, + { + "id": 2535, + "x_pos": -1263, + "y_pos": 997.3632408164676 + }, + { + "id": 2534, + "x_pos": -126, + "y_pos": 1772.3666215953472 + }, + { + "id": 2533, + "x_pos": -285, + "y_pos": 1624.2877367548326 + }, + { + "id": 2532, + "x_pos": -413, + "y_pos": 1475.2674520815576 + }, + { + "id": 2531, + "x_pos": -820, + "y_pos": 1286.3114022069872 + }, + { + "id": 2529, + "x_pos": -670, + "y_pos": 1927.2223750298353 + }, + { + "id": 2527, + "x_pos": -698, + "y_pos": 1459.4511410673267 + }, + { + "id": 2526, + "x_pos": -699, + "y_pos": 1845.2944983125913 + }, + { + "id": 2523, + "x_pos": -926, + "y_pos": 1477.1716633466476 + }, + { + "id": 2522, + "x_pos": -343, + "y_pos": 1729.2888636811258 + }, + { + "id": 2521, + "x_pos": -799, + "y_pos": 1296.1840595358713 + }, + { + "id": 2518, + "x_pos": -886, + "y_pos": 1554.1457440419072 + }, + { + "id": 2515, + "x_pos": -666, + "y_pos": 1893.2167403983703 + }, + { + "id": 2513, + "x_pos": -724.5, + "y_pos": 1082.7306791454484 + }, + { + "id": 2512, + "x_pos": -718, + "y_pos": 1891.2449135556967 + }, + { + "id": 2511, + "x_pos": -632, + "y_pos": 1636.3012598703494 + }, + { + "id": 2507, + "x_pos": -787, + "y_pos": 2102.2944983125913 + }, + { + "id": 2506, + "x_pos": -600, + "y_pos": 1644.310275280694 + }, + { + "id": 2503, + "x_pos": -1035, + "y_pos": 2057.1130631794085 + }, + { + "id": 2502, + "x_pos": -582, + "y_pos": 1646.31252913328 + }, + { + "id": 2500, + "x_pos": -938, + "y_pos": 1666.2843559759535 + }, + { + "id": 2494, + "x_pos": -976, + "y_pos": 1599.266325155265 + }, + { + "id": 2492, + "x_pos": -455, + "y_pos": 1327.2651982289717 + }, + { + "id": 2491, + "x_pos": -746, + "y_pos": 1348.3260522487967 + }, + { + "id": 2486, + "x_pos": -628, + "y_pos": 1747.1840595358713 + }, + { + "id": 2482, + "x_pos": -1219, + "y_pos": 1836.3204176173317 + }, + { + "id": 2479, + "x_pos": -178, + "y_pos": 1710.2043442091463 + }, + { + "id": 2477, + "x_pos": -1188, + "y_pos": 1698.2764674919022 + }, + { + "id": 2476, + "x_pos": -909, + "y_pos": 1361.9894822531587 + }, + { + "id": 2474, + "x_pos": -1257, + "y_pos": 967.4094447944835 + }, + { + "id": 2471, + "x_pos": -1230, + "y_pos": 1668.28660982854 + }, + { + "id": 2467, + "x_pos": -1096, + "y_pos": 1675.2944983125913 + }, + { + "id": 2465, + "x_pos": -972, + "y_pos": 1731.293371386298 + }, + { + "id": 2464, + "x_pos": -1048, + "y_pos": 1821.2629443763853 + }, + { + "id": 2460, + "x_pos": -1253, + "y_pos": 1841.2821021233676 + }, + { + "id": 2454, + "x_pos": -817, + "y_pos": 1660.2651982289717 + }, + { + "id": 2452, + "x_pos": -1214, + "y_pos": 1893.208851914319 + }, + { + "id": 2451, + "x_pos": -1093, + "y_pos": 1093.2990060177635 + }, + { + "id": 2449, + "x_pos": -649, + "y_pos": 1958.1727902729408 + }, + { + "id": 2443, + "x_pos": -1132, + "y_pos": 1969.1446171156144 + }, + { + "id": 2439, + "x_pos": -535, + "y_pos": 1090.2801907669104 + }, + { + "id": 2438, + "x_pos": -853, + "y_pos": 2128.1851864621644 + }, + { + "id": 2437, + "x_pos": -593, + "y_pos": 1338.2843559759535 + }, + { + "id": 2436, + "x_pos": -1088, + "y_pos": 1136.2026310993592 + }, + { + "id": 2433, + "x_pos": -1076, + "y_pos": 2066.310275280694 + }, + { + "id": 2428, + "x_pos": -1272, + "y_pos": 1142.7219739277634 + }, + { + "id": 2427, + "x_pos": -594, + "y_pos": 1057.0701414637379 + }, + { + "id": 2425, + "x_pos": -492, + "y_pos": 1339.2246288824217 + }, + { + "id": 2422, + "x_pos": -715, + "y_pos": 1253.1885672410435 + }, + { + "id": 2421, + "x_pos": -1265, + "y_pos": 795.3598600375885 + }, + { + "id": 2420, + "x_pos": -1018, + "y_pos": 667.1031492113793 + }, + { + "id": 2418, + "x_pos": -904, + "y_pos": 860.4958663907037 + }, + { + "id": 2416, + "x_pos": -1208, + "y_pos": 843.2595635975063 + }, + { + "id": 2411, + "x_pos": -1127, + "y_pos": 693.2134250955451 + }, + { + "id": 2409, + "x_pos": -1205, + "y_pos": 2093.2843559759535 + }, + { + "id": 2407, + "x_pos": -834, + "y_pos": 898.5408769556689 + }, + { + "id": 2405, + "x_pos": -1663, + "y_pos": 3143.986847434586 + }, + { + "id": 2404, + "x_pos": -730, + "y_pos": 2551.1581402311313 + }, + { + "id": 2401, + "x_pos": -904, + "y_pos": 2447.3756370056917 + }, + { + "id": 2400, + "x_pos": -610.5, + "y_pos": 989.1376573111861 + }, + { + "id": 2396, + "x_pos": -1608, + "y_pos": 2829.9158510781235 + }, + { + "id": 2394, + "x_pos": -1803, + "y_pos": 2639.1130631794085 + }, + { + "id": 2393, + "x_pos": -1683, + "y_pos": 3175.213359619491 + }, + { + "id": 2392, + "x_pos": -1822, + "y_pos": 3150.242659703111 + }, + { + "id": 2389, + "x_pos": -1605, + "y_pos": 664.0499553069976 + }, + { + "id": 2382, + "x_pos": -701, + "y_pos": 783.638399846428 + }, + { + "id": 2379, + "x_pos": -1629, + "y_pos": 2835.3339407328485 + }, + { + "id": 2378, + "x_pos": -1638, + "y_pos": 2853.354225406123 + }, + { + "id": 2376, + "x_pos": -901, + "y_pos": 678.1987966619308 + }, + { + "id": 2372, + "x_pos": -679, + "y_pos": 737.4778621647174 + }, + { + "id": 2370, + "x_pos": -730, + "y_pos": 725.2588107485517 + }, + { + "id": 2366, + "x_pos": -741, + "y_pos": 635.6113935074482 + }, + { + "id": 2363, + "x_pos": -809, + "y_pos": 590.5438776599999 + }, + { + "id": 1959, + "x_pos": 1035, + "y_pos": -623.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/4cca7114e8db044283d84ed3b0b72b06_5192184377885677903.png" + }, + "54": { + "name": "Fatui Skirmisher", + "clear_name": "FatuiSkirmisher", + "points": [ + { + "id": 25068, + "x_pos": -2724.6500396728516, + "y_pos": 2918.95184748865 + }, + { + "id": 25067, + "x_pos": -2739.1500396728516, + "y_pos": 2915.704369955247 + }, + { + "id": 25064, + "x_pos": -2476.199996948242, + "y_pos": 2997.2986972027657 + }, + { + "id": 25063, + "x_pos": -2463, + "y_pos": 3003.405522723917 + }, + { + "id": 25062, + "x_pos": -2474.800048828125, + "y_pos": 3015.829861935915 + }, + { + "id": 25018, + "x_pos": -2737.9000396728516, + "y_pos": 2928.694280088859 + }, + { + "id": 17601, + "x_pos": 132.30001831054688, + "y_pos": 6391.100006103516 + }, + { + "id": 17600, + "x_pos": 126.60000610351562, + "y_pos": 6391.5 + }, + { + "id": 17481, + "x_pos": 3022.3999938964844, + "y_pos": 6807.4000244140625 + }, + { + "id": 16774, + "x_pos": 3215, + "y_pos": 6649 + }, + { + "id": 16772, + "x_pos": 3202.5, + "y_pos": 6665 + }, + { + "id": 16771, + "x_pos": 3218.1000061035156, + "y_pos": 6683.5 + }, + { + "id": 16770, + "x_pos": 2984.5, + "y_pos": 6692.5 + }, + { + "id": 16769, + "x_pos": 2985, + "y_pos": 6699 + }, + { + "id": 16768, + "x_pos": 2992.5, + "y_pos": 6699 + }, + { + "id": 16767, + "x_pos": 3082, + "y_pos": 6749.5 + }, + { + "id": 16766, + "x_pos": 3090, + "y_pos": 6755 + }, + { + "id": 16765, + "x_pos": 3103, + "y_pos": 6759.5 + }, + { + "id": 16764, + "x_pos": 3086, + "y_pos": 6761.5 + }, + { + "id": 16763, + "x_pos": 3066.5, + "y_pos": 6763 + }, + { + "id": 16761, + "x_pos": 3101, + "y_pos": 6811 + }, + { + "id": 16760, + "x_pos": 3099.5, + "y_pos": 6814.5 + }, + { + "id": 16758, + "x_pos": 3105, + "y_pos": 6818 + }, + { + "id": 16724, + "x_pos": -132, + "y_pos": 5855 + }, + { + "id": 16723, + "x_pos": -126.5, + "y_pos": 5854 + }, + { + "id": 16721, + "x_pos": -125.5, + "y_pos": 5858 + }, + { + "id": 16720, + "x_pos": 515.5, + "y_pos": 6325.5 + }, + { + "id": 16717, + "x_pos": 537, + "y_pos": 6329 + }, + { + "id": 15810, + "x_pos": 2463.5, + "y_pos": 6118.700012207031 + }, + { + "id": 15809, + "x_pos": 2458.699981689453, + "y_pos": 6121.699981689453 + }, + { + "id": 15527, + "x_pos": 2231.6000061035156, + "y_pos": 6045.300018310547 + }, + { + "id": 15526, + "x_pos": 2226.7000122070312, + "y_pos": 6044.699981689453 + }, + { + "id": 15525, + "x_pos": 2225.3999938964844, + "y_pos": 6048.700012207031 + }, + { + "id": 15423, + "x_pos": -1732.4000244140625, + "y_pos": 2525.399948120117 + }, + { + "id": 14114, + "x_pos": 2443.8999938964844, + "y_pos": 6114.799987792969 + }, + { + "id": 14113, + "x_pos": 2494.2999877929688, + "y_pos": 6022.100006103516 + }, + { + "id": 14110, + "x_pos": 2445.1000061035156, + "y_pos": 5995.399993896484 + }, + { + "id": 14108, + "x_pos": 2325.8999938964844, + "y_pos": 5986.700012207031 + }, + { + "id": 13855, + "x_pos": 3454.5, + "y_pos": 4764 + }, + { + "id": 13854, + "x_pos": 3453, + "y_pos": 4767 + }, + { + "id": 13852, + "x_pos": 3450.5, + "y_pos": 4770.5 + }, + { + "id": 13851, + "x_pos": 3518.5, + "y_pos": 4774.5 + }, + { + "id": 13850, + "x_pos": 3513.5, + "y_pos": 4777 + }, + { + "id": 13849, + "x_pos": 3499.5, + "y_pos": 4787.5 + }, + { + "id": 7413, + "x_pos": -404, + "y_pos": 812 + }, + { + "id": 7412, + "x_pos": -397.5, + "y_pos": 811.5 + }, + { + "id": 7317, + "x_pos": -190.5, + "y_pos": 963 + }, + { + "id": 7314, + "x_pos": 94, + "y_pos": 991 + }, + { + "id": 7294, + "x_pos": -271.5, + "y_pos": 913.5 + }, + { + "id": 7293, + "x_pos": -251.5, + "y_pos": 927.5 + }, + { + "id": 6983, + "x_pos": 295.5, + "y_pos": 925 + }, + { + "id": 6980, + "x_pos": 300, + "y_pos": 929.5 + }, + { + "id": 6978, + "x_pos": 304, + "y_pos": 936 + }, + { + "id": 6947, + "x_pos": 115, + "y_pos": 991.5 + }, + { + "id": 6923, + "x_pos": -6, + "y_pos": 952 + }, + { + "id": 6919, + "x_pos": -86.5, + "y_pos": 902 + }, + { + "id": 6916, + "x_pos": -80, + "y_pos": 905.5 + }, + { + "id": 6913, + "x_pos": -36, + "y_pos": 959.5 + }, + { + "id": 6910, + "x_pos": -122, + "y_pos": 951 + }, + { + "id": 6903, + "x_pos": -225, + "y_pos": 985.5 + }, + { + "id": 6900, + "x_pos": -190.5, + "y_pos": 967 + }, + { + "id": 6891, + "x_pos": -240.5, + "y_pos": 919.5 + }, + { + "id": 6888, + "x_pos": -237.5, + "y_pos": 994.5 + }, + { + "id": 6856, + "x_pos": -76.5, + "y_pos": 1313 + }, + { + "id": 6847, + "x_pos": -157, + "y_pos": 1364.5 + }, + { + "id": 6846, + "x_pos": -204, + "y_pos": 1549 + }, + { + "id": 6840, + "x_pos": -206, + "y_pos": 1543.5 + }, + { + "id": 6832, + "x_pos": -147.5, + "y_pos": 1369.5 + }, + { + "id": 3492, + "x_pos": -1743, + "y_pos": 2536 + }, + { + "id": 3491, + "x_pos": -1821, + "y_pos": 2566 + }, + { + "id": 3490, + "x_pos": -1898.5, + "y_pos": 2462 + }, + { + "id": 3489, + "x_pos": -1751, + "y_pos": 2540 + }, + { + "id": 3488, + "x_pos": -1825.5, + "y_pos": 2569.5 + }, + { + "id": 3487, + "x_pos": -1897.5, + "y_pos": 2470 + }, + { + "id": 3486, + "x_pos": -1868, + "y_pos": 2572.5 + }, + { + "id": 3485, + "x_pos": -1667, + "y_pos": 2548.5 + }, + { + "id": 3484, + "x_pos": -2011, + "y_pos": 2175 + }, + { + "id": 3483, + "x_pos": -1616.5, + "y_pos": 2495.5 + }, + { + "id": 3482, + "x_pos": -2010.5, + "y_pos": 2160 + }, + { + "id": 3481, + "x_pos": -1996.5, + "y_pos": 2164.5 + }, + { + "id": 3480, + "x_pos": -1897, + "y_pos": 2862 + }, + { + "id": 3479, + "x_pos": -1690, + "y_pos": 1845 + }, + { + "id": 3478, + "x_pos": -1625, + "y_pos": 1822 + }, + { + "id": 3477, + "x_pos": -1710, + "y_pos": 1903 + }, + { + "id": 3476, + "x_pos": -1890, + "y_pos": 2868 + }, + { + "id": 3472, + "x_pos": -1198, + "y_pos": -447 + }, + { + "id": 3471, + "x_pos": -1621, + "y_pos": 1826 + }, + { + "id": 3469, + "x_pos": -691.5, + "y_pos": 575 + }, + { + "id": 3468, + "x_pos": -1202.5, + "y_pos": -446 + }, + { + "id": 3467, + "x_pos": 534, + "y_pos": 909.5 + }, + { + "id": 3466, + "x_pos": -535.5, + "y_pos": 1458 + }, + { + "id": 3465, + "x_pos": -1712, + "y_pos": 1895 + }, + { + "id": 3464, + "x_pos": -1770, + "y_pos": 3341 + }, + { + "id": 3463, + "x_pos": 1066, + "y_pos": 1100 + }, + { + "id": 3462, + "x_pos": -1668, + "y_pos": 2553 + }, + { + "id": 3461, + "x_pos": 528.5, + "y_pos": 913 + }, + { + "id": 3460, + "x_pos": -1355, + "y_pos": 3112.5 + }, + { + "id": 3459, + "x_pos": -538.5, + "y_pos": 1462 + }, + { + "id": 3458, + "x_pos": -1360.5, + "y_pos": 3124 + }, + { + "id": 3457, + "x_pos": 534, + "y_pos": 782 + }, + { + "id": 3456, + "x_pos": -1719, + "y_pos": 1901 + }, + { + "id": 3455, + "x_pos": -1769, + "y_pos": 3347 + }, + { + "id": 3454, + "x_pos": -536.5, + "y_pos": 1475 + }, + { + "id": 3453, + "x_pos": -1680, + "y_pos": 993 + }, + { + "id": 3451, + "x_pos": -1630, + "y_pos": 1826 + }, + { + "id": 3450, + "x_pos": -695.5, + "y_pos": 573.5 + }, + { + "id": 2347, + "x_pos": -1894, + "y_pos": 2854.832497089332 + }, + { + "id": 2346, + "x_pos": -1617, + "y_pos": 2488.3879183635554 + }, + { + "id": 2344, + "x_pos": -1903, + "y_pos": 2465.136026629214 + }, + { + "id": 2329, + "x_pos": -1681, + "y_pos": 1841.0289726421183 + }, + { + "id": 2320, + "x_pos": -1411, + "y_pos": 1382.5629729335856 + }, + { + "id": 2302, + "x_pos": -533, + "y_pos": 1463.1624752613197 + }, + { + "id": 2290, + "x_pos": 1067, + "y_pos": 1108.18514551741 + }, + { + "id": 2287, + "x_pos": 528, + "y_pos": 905.2682697897435 + }, + { + "id": 2286, + "x_pos": 540, + "y_pos": 785.4949723506511 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/71cffd628025a16813dfbb1337e5cfca_1951629793205322023.png" + }, + "353": { + "name": "Unique Rocks", + "clear_name": "UniqueRocks", + "points": [ + { + "id": 25066, + "x_pos": -2358.6499938964844, + "y_pos": 2524.3502068538455 + }, + { + "id": 25007, + "x_pos": -2627.3333435058594, + "y_pos": 2825.4166564941406 + }, + { + "id": 25006, + "x_pos": -2848, + "y_pos": 3005.699075385771 + }, + { + "id": 25004, + "x_pos": -2696.6666870117188, + "y_pos": 2905 + }, + { + "id": 25003, + "x_pos": -2556.25, + "y_pos": 2883.5 + }, + { + "id": 25001, + "x_pos": -2353.5, + "y_pos": 2928 + }, + { + "id": 24997, + "x_pos": -2800.5, + "y_pos": 2909.6666564941406 + }, + { + "id": 24996, + "x_pos": -2766.5, + "y_pos": 2862.75 + }, + { + "id": 24995, + "x_pos": -2641.0833435058594, + "y_pos": 2737.1666717529297 + }, + { + "id": 24994, + "x_pos": -2719.833251953125, + "y_pos": 2825.5 + }, + { + "id": 24993, + "x_pos": -2696.300003051758, + "y_pos": 2877.0016805343485 + }, + { + "id": 24992, + "x_pos": -2819.5, + "y_pos": 3066.1666870117188 + }, + { + "id": 24989, + "x_pos": -2519.4166564941406, + "y_pos": 3224.5833282470703 + }, + { + "id": 24988, + "x_pos": -2504.5, + "y_pos": 3331.9993308390394 + }, + { + "id": 24987, + "x_pos": -2508.3333129882812, + "y_pos": 3287.6666870117188 + }, + { + "id": 24986, + "x_pos": -2439.75, + "y_pos": 3349.9024926858383 + }, + { + "id": 24983, + "x_pos": -2362.7000122070312, + "y_pos": 3280.551274458604 + }, + { + "id": 24982, + "x_pos": -2475.4166564941406, + "y_pos": 2959.5 + }, + { + "id": 24980, + "x_pos": -2498.25, + "y_pos": 2903.5 + }, + { + "id": 24978, + "x_pos": -2644.25, + "y_pos": 2843.9986387822373 + }, + { + "id": 24977, + "x_pos": -2350.550018310547, + "y_pos": 2858.4530674556927 + }, + { + "id": 24976, + "x_pos": -2407.3333129882812, + "y_pos": 2786.499969482422 + }, + { + "id": 24975, + "x_pos": -2505.75, + "y_pos": 2736.3333435058594 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/d8710dc6c38cb2cf9e2a36b654f78850_3536851757529013076.png" + }, + "76": { + "name": "Geogranum", + "clear_name": "Geogranum", + "points": [ + { + "id": 25065, + "x_pos": -2160.5, + "y_pos": 2453.0833435058594 + }, + { + "id": 25000, + "x_pos": -2285.1666870117188, + "y_pos": 3023.3333129882812 + }, + { + "id": 23277, + "x_pos": -1638.75, + "y_pos": 2915 + }, + { + "id": 6339, + "x_pos": -2201.999783463928, + "y_pos": 1706.5016100862676 + }, + { + "id": 2600, + "x_pos": -1563.5, + "y_pos": 3163.5486431056524 + }, + { + "id": 2599, + "x_pos": -1366.5, + "y_pos": 2984.046952716213 + }, + { + "id": 2598, + "x_pos": -1981, + "y_pos": 2771.441021644666 + }, + { + "id": 2597, + "x_pos": -1834, + "y_pos": 2722.993423717293 + }, + { + "id": 2596, + "x_pos": -1467, + "y_pos": 2424.0604758317304 + }, + { + "id": 2595, + "x_pos": -1443.5, + "y_pos": 2299.157391492933 + }, + { + "id": 2594, + "x_pos": -737.5, + "y_pos": 2100.494550643586 + }, + { + "id": 2593, + "x_pos": -1835.5, + "y_pos": 1799.9137672246043 + }, + { + "id": 2592, + "x_pos": -2519.5, + "y_pos": 1684.5424450110413 + }, + { + "id": 2591, + "x_pos": -2055, + "y_pos": 1683.610624051771 + }, + { + "id": 2590, + "x_pos": -2005.5, + "y_pos": 1570.5452623267738 + }, + { + "id": 2589, + "x_pos": -2308.5, + "y_pos": 1451.1551376403472 + }, + { + "id": 2588, + "x_pos": -2263, + "y_pos": 1449.6179490726763 + }, + { + "id": 2587, + "x_pos": -2060.5, + "y_pos": 1462.5407546216015 + }, + { + "id": 2586, + "x_pos": -1685, + "y_pos": 1570.1151317569434 + }, + { + "id": 2585, + "x_pos": -1723, + "y_pos": 1492.6083701991852 + }, + { + "id": 2584, + "x_pos": -1981, + "y_pos": 1377.5503334950927 + }, + { + "id": 2583, + "x_pos": -2302, + "y_pos": 1310.5 + }, + { + "id": 2582, + "x_pos": -1984.5, + "y_pos": 1106.058221979144 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/4a0559feff526b72cffd39ae1fd3dcb7_1270369440081207218.png" + }, + "64": { + "name": "Time Trial Challenge", + "clear_name": "TimeTrialChallenge", + "points": [ + { + "id": 25014, + "x_pos": -2391.5, + "y_pos": 3265 + }, + { + "id": 25013, + "x_pos": -2656.8333129882812, + "y_pos": 3170.1666717529297 + }, + { + "id": 25012, + "x_pos": -2677.1666870117188, + "y_pos": 2879.6666870117188 + }, + { + "id": 25011, + "x_pos": -2424, + "y_pos": 2996.5 + }, + { + "id": 25010, + "x_pos": -2304.3333129882812, + "y_pos": 2836.3333435058594 + }, + { + "id": 19253, + "x_pos": 1870.5, + "y_pos": 8224 + }, + { + "id": 19240, + "x_pos": 1990.5, + "y_pos": 8308.5 + }, + { + "id": 18796, + "x_pos": 1927.5, + "y_pos": 8658.5 + }, + { + "id": 18792, + "x_pos": 1938, + "y_pos": 8709.5 + }, + { + "id": 18789, + "x_pos": 2567, + "y_pos": 8448 + }, + { + "id": 18779, + "x_pos": 1762, + "y_pos": 8735 + }, + { + "id": 18751, + "x_pos": 2073.5, + "y_pos": 8667.5 + }, + { + "id": 18743, + "x_pos": 2092, + "y_pos": 8555 + }, + { + "id": 18741, + "x_pos": 1812.5, + "y_pos": 8628 + }, + { + "id": 18740, + "x_pos": 1716, + "y_pos": 8671.5 + }, + { + "id": 18733, + "x_pos": 1719, + "y_pos": 8438.5 + }, + { + "id": 18719, + "x_pos": 1876.5, + "y_pos": 8330.5 + }, + { + "id": 18710, + "x_pos": 1982.5, + "y_pos": 8187.5 + }, + { + "id": 18689, + "x_pos": 1940, + "y_pos": 7339.5 + }, + { + "id": 18688, + "x_pos": 1692.5, + "y_pos": 7339.5 + }, + { + "id": 18687, + "x_pos": 1749, + "y_pos": 7135.5 + }, + { + "id": 17622, + "x_pos": 123, + "y_pos": 6511 + }, + { + "id": 17614, + "x_pos": -104.5, + "y_pos": 5955 + }, + { + "id": 17355, + "x_pos": -67, + "y_pos": 6262.5 + }, + { + "id": 17317, + "x_pos": 3506, + "y_pos": 6594.5 + }, + { + "id": 17316, + "x_pos": 3529, + "y_pos": 6596.5 + }, + { + "id": 17285, + "x_pos": -248, + "y_pos": 6201.5 + }, + { + "id": 17280, + "x_pos": 3671.5, + "y_pos": 6818.5 + }, + { + "id": 17279, + "x_pos": 3500.5, + "y_pos": 6823 + }, + { + "id": 17276, + "x_pos": 3117.5, + "y_pos": 6722 + }, + { + "id": 17271, + "x_pos": 2886.5, + "y_pos": 6590 + }, + { + "id": 16794, + "x_pos": 3357, + "y_pos": 6968 + }, + { + "id": 16792, + "x_pos": 3001, + "y_pos": 6844.5 + }, + { + "id": 16791, + "x_pos": 3043, + "y_pos": 6954 + }, + { + "id": 16789, + "x_pos": 3378.5, + "y_pos": 7039 + }, + { + "id": 16783, + "x_pos": 3853.5, + "y_pos": 7273 + }, + { + "id": 16778, + "x_pos": 3055.5, + "y_pos": 7251 + }, + { + "id": 16451, + "x_pos": 412, + "y_pos": 6241 + }, + { + "id": 16443, + "x_pos": 332, + "y_pos": 6183 + }, + { + "id": 16433, + "x_pos": 223, + "y_pos": 6214 + }, + { + "id": 16430, + "x_pos": 155, + "y_pos": 6229 + }, + { + "id": 16426, + "x_pos": 157, + "y_pos": 6353 + }, + { + "id": 16418, + "x_pos": 19.5, + "y_pos": 6309 + }, + { + "id": 16375, + "x_pos": -28, + "y_pos": 6079 + }, + { + "id": 16372, + "x_pos": 259, + "y_pos": 6050.5 + }, + { + "id": 16367, + "x_pos": 433, + "y_pos": 5874.5 + }, + { + "id": 16345, + "x_pos": 154, + "y_pos": 5895.5 + }, + { + "id": 16330, + "x_pos": 50, + "y_pos": 5891 + }, + { + "id": 16316, + "x_pos": -119, + "y_pos": 5757.5 + }, + { + "id": 16312, + "x_pos": -369, + "y_pos": 6362.5 + }, + { + "id": 13278, + "x_pos": 3942.5, + "y_pos": 5136.5 + }, + { + "id": 13275, + "x_pos": 3796, + "y_pos": 4897 + }, + { + "id": 13274, + "x_pos": 3694.5, + "y_pos": 5017.5 + }, + { + "id": 13273, + "x_pos": 3531.5, + "y_pos": 4931 + }, + { + "id": 13271, + "x_pos": 3388.5, + "y_pos": 4966 + }, + { + "id": 13268, + "x_pos": 3459.500030517578, + "y_pos": 5111.109177061264 + }, + { + "id": 13265, + "x_pos": 3190, + "y_pos": 5335.5 + }, + { + "id": 13262, + "x_pos": 2571, + "y_pos": 5267.5 + }, + { + "id": 13261, + "x_pos": 2901, + "y_pos": 5606.5 + }, + { + "id": 13256, + "x_pos": 2656, + "y_pos": 5614 + }, + { + "id": 13255, + "x_pos": 2584, + "y_pos": 5781 + }, + { + "id": 13253, + "x_pos": 2655, + "y_pos": 5773 + }, + { + "id": 13248, + "x_pos": 2552.5, + "y_pos": 5912 + }, + { + "id": 13243, + "x_pos": 2186.999969482422, + "y_pos": 5754.430840018649 + }, + { + "id": 13242, + "x_pos": 2340, + "y_pos": 5815 + }, + { + "id": 13241, + "x_pos": 2321.5, + "y_pos": 5952.5 + }, + { + "id": 13237, + "x_pos": 2393, + "y_pos": 6034 + }, + { + "id": 13235, + "x_pos": 2377.5, + "y_pos": 6039 + }, + { + "id": 13234, + "x_pos": 2445.5, + "y_pos": 6103.5 + }, + { + "id": 13232, + "x_pos": 2256.5, + "y_pos": 5997.5 + }, + { + "id": 13231, + "x_pos": 2391.999969482422, + "y_pos": 6100.698032710565 + }, + { + "id": 13230, + "x_pos": 2736.7234652786656, + "y_pos": 6089.203246962274 + }, + { + "id": 13229, + "x_pos": 2349.499969482422, + "y_pos": 6110.497168883621 + }, + { + "id": 13227, + "x_pos": 2434.5, + "y_pos": 6238.5 + }, + { + "id": 13225, + "x_pos": 2543.3333435058594, + "y_pos": 6257.359833341947 + }, + { + "id": 13220, + "x_pos": 2254.5, + "y_pos": 6257 + }, + { + "id": 13219, + "x_pos": 2374.3333129882812, + "y_pos": 6338.022511515992 + }, + { + "id": 13218, + "x_pos": 2164.499969482422, + "y_pos": 6254.326951244791 + }, + { + "id": 13216, + "x_pos": 2012.5, + "y_pos": 6112 + }, + { + "id": 13215, + "x_pos": 1692.5, + "y_pos": 6329 + }, + { + "id": 13210, + "x_pos": 1687.666748046875, + "y_pos": 6422.229640417196 + }, + { + "id": 13208, + "x_pos": 1691, + "y_pos": 6148.5 + }, + { + "id": 13206, + "x_pos": 1600, + "y_pos": 6196.5 + }, + { + "id": 13205, + "x_pos": 1257, + "y_pos": 5887 + }, + { + "id": 13203, + "x_pos": 1382, + "y_pos": 6328.5 + }, + { + "id": 7730, + "x_pos": -331.5, + "y_pos": 984 + }, + { + "id": 7729, + "x_pos": 25.5, + "y_pos": 1493 + }, + { + "id": 7728, + "x_pos": 289.5, + "y_pos": 1318.5 + }, + { + "id": 7620, + "x_pos": -3, + "y_pos": 1024 + }, + { + "id": 7617, + "x_pos": -248.5, + "y_pos": 1273 + }, + { + "id": 7140, + "x_pos": 378, + "y_pos": 1200 + }, + { + "id": 7115, + "x_pos": -311, + "y_pos": 1239 + }, + { + "id": 7091, + "x_pos": 184, + "y_pos": 1337 + }, + { + "id": 7087, + "x_pos": 507.5, + "y_pos": 1442.5 + }, + { + "id": 7082, + "x_pos": 149.5, + "y_pos": 1011 + }, + { + "id": 7080, + "x_pos": 207.5, + "y_pos": 1384.5 + }, + { + "id": 7065, + "x_pos": 200.5, + "y_pos": 1673.5 + }, + { + "id": 7060, + "x_pos": 437, + "y_pos": 1774 + }, + { + "id": 7051, + "x_pos": 76.5, + "y_pos": 954 + }, + { + "id": 6984, + "x_pos": 57, + "y_pos": 809 + }, + { + "id": 6868, + "x_pos": -126.5, + "y_pos": 885.5 + }, + { + "id": 1999, + "x_pos": -1341, + "y_pos": 586.5012731670158 + }, + { + "id": 1998, + "x_pos": -1158, + "y_pos": 866.549743634655 + }, + { + "id": 1997, + "x_pos": -645.5, + "y_pos": 1776 + }, + { + "id": 1996, + "x_pos": -525.5, + "y_pos": 1050.469754872051 + }, + { + "id": 1995, + "x_pos": -327, + "y_pos": 1847.6647954213013 + }, + { + "id": 1994, + "x_pos": -296, + "y_pos": 1876.9950141877025 + }, + { + "id": 1993, + "x_pos": -787, + "y_pos": 1101 + }, + { + "id": 1992, + "x_pos": -911, + "y_pos": 1002.0530115374518 + }, + { + "id": 1991, + "x_pos": -341.5, + "y_pos": 1611.4333041926711 + }, + { + "id": 1990, + "x_pos": -617.5, + "y_pos": 1601.2195248682538 + }, + { + "id": 1989, + "x_pos": -907, + "y_pos": 1693.4257949440062 + }, + { + "id": 1988, + "x_pos": -907, + "y_pos": 631.0737145181811 + }, + { + "id": 1987, + "x_pos": -1232, + "y_pos": 2536.968504602699 + }, + { + "id": 1986, + "x_pos": -2126.5, + "y_pos": 1434.0559110233116 + }, + { + "id": 1985, + "x_pos": -1928, + "y_pos": 1539.5341648793637 + }, + { + "id": 1984, + "x_pos": -2147, + "y_pos": 2219.0842845635107 + }, + { + "id": 1983, + "x_pos": -1398, + "y_pos": 438.9378528950392 + }, + { + "id": 1982, + "x_pos": -835, + "y_pos": -552.0476496756623 + }, + { + "id": 1981, + "x_pos": -1147, + "y_pos": -443.10439675605994 + }, + { + "id": 1980, + "x_pos": -415, + "y_pos": -127.06297552949218 + }, + { + "id": 1979, + "x_pos": -1122, + "y_pos": -488.02942433597264 + }, + { + "id": 1978, + "x_pos": -696, + "y_pos": 29.868679446671194 + }, + { + "id": 1977, + "x_pos": -656, + "y_pos": -215.10936730324806 + }, + { + "id": 1976, + "x_pos": -382, + "y_pos": 74.08324140029163 + }, + { + "id": 1975, + "x_pos": 584, + "y_pos": -453.0575907700386 + }, + { + "id": 1974, + "x_pos": 762, + "y_pos": -440.01409848214234 + }, + { + "id": 1973, + "x_pos": -288, + "y_pos": 360.9428234422271 + }, + { + "id": 1972, + "x_pos": 75, + "y_pos": 468.4805625537324 + }, + { + "id": 1971, + "x_pos": 240, + "y_pos": 444.9647766923081 + }, + { + "id": 1970, + "x_pos": 948, + "y_pos": -200.0691887134774 + }, + { + "id": 1969, + "x_pos": 661, + "y_pos": -18.056762345507195 + }, + { + "id": 1968, + "x_pos": 376, + "y_pos": -334 + }, + { + "id": 1967, + "x_pos": 835, + "y_pos": -495 + }, + { + "id": 1966, + "x_pos": 846, + "y_pos": -570.05841919457 + }, + { + "id": 1965, + "x_pos": -2261.5, + "y_pos": 1440.5441059737395 + }, + { + "id": 1964, + "x_pos": -1751, + "y_pos": 2501.555289704913 + }, + { + "id": 1963, + "x_pos": -1564, + "y_pos": 2239.747898408453 + }, + { + "id": 1962, + "x_pos": -2297.5, + "y_pos": 2011.8811134471962 + }, + { + "id": 1961, + "x_pos": -2313, + "y_pos": 1434.9289549638816 + }, + { + "id": 1960, + "x_pos": -1979, + "y_pos": 2499.345698298481 + }, + { + "id": 1957, + "x_pos": -2297.5, + "y_pos": 1096.3048983903118 + }, + { + "id": 1955, + "x_pos": -1901.5, + "y_pos": 2361.943245287048 + }, + { + "id": 1954, + "x_pos": -1364, + "y_pos": 2978.9051377586056 + }, + { + "id": 1953, + "x_pos": -2034, + "y_pos": 3192.1072432728924 + }, + { + "id": 1952, + "x_pos": -1560, + "y_pos": 1746.6768991676627 + }, + { + "id": 1951, + "x_pos": -1932.5, + "y_pos": 2276.897681937823 + }, + { + "id": 1950, + "x_pos": -1368, + "y_pos": 2841.4765893744343 + }, + { + "id": 1949, + "x_pos": -1751, + "y_pos": 3196.3263693329536 + }, + { + "id": 1946, + "x_pos": 219, + "y_pos": 2598.3176855426645 + }, + { + "id": 1945, + "x_pos": -2321, + "y_pos": 1586.4683051291208 + }, + { + "id": 1944, + "x_pos": -2393, + "y_pos": 1270.922534673764 + }, + { + "id": 1943, + "x_pos": -2611.5, + "y_pos": 1481.4221204614983 + }, + { + "id": 1942, + "x_pos": -2290, + "y_pos": 987.9451092422432 + }, + { + "id": 1941, + "x_pos": -1813, + "y_pos": 820.9279194332175 + }, + { + "id": 1940, + "x_pos": -2255.5, + "y_pos": 1326.9417955441177 + }, + { + "id": 1939, + "x_pos": -2400.5, + "y_pos": 1962.4948147141245 + }, + { + "id": 1937, + "x_pos": -1620.5, + "y_pos": 1973.8898119047753 + }, + { + "id": 1936, + "x_pos": -2689.5, + "y_pos": 1662.4757609499034 + }, + { + "id": 1935, + "x_pos": -2370, + "y_pos": 1649.3647520627019 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/5f0745a1c1812d249a90601c8de54552_2767759384451412130.png" + }, + "68": { + "name": "Bloatty Floatty", + "clear_name": "BloattyFloatty", + "points": [ + { + "id": 25008, + "x_pos": -2433, + "y_pos": 3300.5 + }, + { + "id": 24999, + "x_pos": -2481.25, + "y_pos": 3175 + }, + { + "id": 24998, + "x_pos": -2417, + "y_pos": 2892.75 + }, + { + "id": 6316, + "x_pos": -2492.4656766130474, + "y_pos": 1481.4874203854288 + }, + { + "id": 5218, + "x_pos": -2027.0020928894482, + "y_pos": 1346.5025317227737 + }, + { + "id": 2740, + "x_pos": -1789, + "y_pos": 2628 + }, + { + "id": 2738, + "x_pos": -1956, + "y_pos": 2433.5 + }, + { + "id": 2737, + "x_pos": -1879, + "y_pos": 2414 + }, + { + "id": 2735, + "x_pos": -2165.5, + "y_pos": 2204 + }, + { + "id": 2734, + "x_pos": -1689.5, + "y_pos": 2600 + }, + { + "id": 2733, + "x_pos": -1703.5, + "y_pos": 2435 + }, + { + "id": 2732, + "x_pos": -1880.5, + "y_pos": 2234 + }, + { + "id": 2731, + "x_pos": -2042, + "y_pos": 2165.5 + }, + { + "id": 2726, + "x_pos": -1713.5, + "y_pos": 2027.5 + }, + { + "id": 2722, + "x_pos": -2485.5, + "y_pos": 1782 + }, + { + "id": 2721, + "x_pos": -2306, + "y_pos": 1578.5 + }, + { + "id": 2719, + "x_pos": -1591.002511467338, + "y_pos": 2909.4895873601117 + }, + { + "id": 2718, + "x_pos": -1900.5, + "y_pos": 3021 + }, + { + "id": 2717, + "x_pos": -1676, + "y_pos": 3017 + }, + { + "id": 2716, + "x_pos": -2206.5, + "y_pos": 1622.5 + }, + { + "id": 2715, + "x_pos": -1810, + "y_pos": 3065 + }, + { + "id": 2714, + "x_pos": -1935.5, + "y_pos": 1744.5 + }, + { + "id": 2713, + "x_pos": -2381, + "y_pos": 1618 + }, + { + "id": 2712, + "x_pos": -2630.5, + "y_pos": 1575.5 + }, + { + "id": 2706, + "x_pos": -1479.5, + "y_pos": 1570 + }, + { + "id": 2705, + "x_pos": -2189.300003051758, + "y_pos": 1454.7955865904387 + }, + { + "id": 2704, + "x_pos": -2062, + "y_pos": 1516.5 + }, + { + "id": 2702, + "x_pos": -2285.5, + "y_pos": 1399.5 + }, + { + "id": 2701, + "x_pos": -2236, + "y_pos": 1336 + }, + { + "id": 2699, + "x_pos": -2198, + "y_pos": 1411.5 + }, + { + "id": 2698, + "x_pos": -2435.5166035896236, + "y_pos": 1287.486418295798 + }, + { + "id": 2697, + "x_pos": -2073.5, + "y_pos": 3239 + }, + { + "id": 2696, + "x_pos": -2289, + "y_pos": 1214.5 + }, + { + "id": 2691, + "x_pos": -1461, + "y_pos": 2583 + }, + { + "id": 2688, + "x_pos": -1702, + "y_pos": 3116.5 + }, + { + "id": 2685, + "x_pos": -1791.5, + "y_pos": 1023.5 + }, + { + "id": 2684, + "x_pos": -1946.5, + "y_pos": 762.5 + }, + { + "id": 2683, + "x_pos": -1558.5, + "y_pos": 3283.5 + }, + { + "id": 2673, + "x_pos": -1032.5, + "y_pos": 1879.5 + }, + { + "id": 2672, + "x_pos": -1281, + "y_pos": 2286 + }, + { + "id": 2670, + "x_pos": -854.5, + "y_pos": 2041.5 + }, + { + "id": 2668, + "x_pos": -792.5, + "y_pos": 2380.5 + }, + { + "id": 2661, + "x_pos": -127.5, + "y_pos": 2426.5 + }, + { + "id": 2660, + "x_pos": -4, + "y_pos": 2678.5 + }, + { + "id": 2659, + "x_pos": -858, + "y_pos": 1881 + }, + { + "id": 2654, + "x_pos": -1202.5, + "y_pos": 1759 + }, + { + "id": 2653, + "x_pos": -538, + "y_pos": 1718.5 + }, + { + "id": 2650, + "x_pos": -507.5, + "y_pos": 1749 + }, + { + "id": 2649, + "x_pos": -249.5, + "y_pos": 1727.5 + }, + { + "id": 2647, + "x_pos": -656, + "y_pos": 1427 + }, + { + "id": 2641, + "x_pos": -1012, + "y_pos": 1273 + }, + { + "id": 2625, + "x_pos": -1085, + "y_pos": 1012 + }, + { + "id": 2612, + "x_pos": -866, + "y_pos": 788.5 + }, + { + "id": 2610, + "x_pos": -825, + "y_pos": 612 + }, + { + "id": 2607, + "x_pos": -214, + "y_pos": 437.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/c8bc224c24b8b9036b50f3d44f48b308_6549675881226177642.png" + }, + "66": { + "name": "Floating Anemo Slime", + "clear_name": "FloatingAnemoSlime", + "points": [ + { + "id": 25005, + "x_pos": -2714.8333282470703, + "y_pos": 3119.8333282470703 + }, + { + "id": 3766, + "x_pos": 400.5551127554727, + "y_pos": -119.75407451126057 + }, + { + "id": 3765, + "x_pos": 527.0615309497807, + "y_pos": 247.71378212212812 + }, + { + "id": 3763, + "x_pos": -2135.935259953065, + "y_pos": 2118.6925041188783 + }, + { + "id": 3762, + "x_pos": -2025.957305055254, + "y_pos": 868.2255529324366 + }, + { + "id": 3761, + "x_pos": 761.3044456517509, + "y_pos": 484.86525120034867 + }, + { + "id": 3760, + "x_pos": -1525.428423180867, + "y_pos": 1379.757696299048 + }, + { + "id": 2558, + "x_pos": 1118, + "y_pos": -525.9994431731304 + }, + { + "id": 2557, + "x_pos": 814, + "y_pos": -593.0410119471676 + }, + { + "id": 2556, + "x_pos": -386, + "y_pos": -344.99888634626086 + }, + { + "id": 2555, + "x_pos": -310, + "y_pos": 89.00148487165234 + }, + { + "id": 2554, + "x_pos": -501, + "y_pos": -11.498700737304262 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/de716a733d9691a3145581bc6f4bea54_126299787285554341.png" + }, + "70": { + "name": "Elemental Monument", + "clear_name": "ElementalMonument", + "points": [ + { + "id": 25002, + "x_pos": -2753.000030517578, + "y_pos": 2951.197052638994 + }, + { + "id": 24973, + "x_pos": -2452.75, + "y_pos": 2737.2489962585587 + }, + { + "id": 19191, + "x_pos": 2112, + "y_pos": 8596.5 + }, + { + "id": 18808, + "x_pos": 1925.5, + "y_pos": 9034.5 + }, + { + "id": 18806, + "x_pos": 1923.3999938964844, + "y_pos": 9042.928046716312 + }, + { + "id": 18804, + "x_pos": 1886.7999877929688, + "y_pos": 9046.803173724802 + }, + { + "id": 18692, + "x_pos": 1781.3000183105469, + "y_pos": 7264.303173724802 + }, + { + "id": 18691, + "x_pos": 1771.2999877929688, + "y_pos": 7285.205872237511 + }, + { + "id": 18690, + "x_pos": 1813.2000122070312, + "y_pos": 7308 + }, + { + "id": 17742, + "x_pos": -796, + "y_pos": 2266 + }, + { + "id": 17624, + "x_pos": 589.5, + "y_pos": 6105 + }, + { + "id": 17533, + "x_pos": 61.5, + "y_pos": 6187.5 + }, + { + "id": 17353, + "x_pos": -99.5, + "y_pos": 6276 + }, + { + "id": 17305, + "x_pos": 3359, + "y_pos": 7055 + }, + { + "id": 17281, + "x_pos": 3695.5, + "y_pos": 7001 + }, + { + "id": 16784, + "x_pos": 4031, + "y_pos": 7192 + }, + { + "id": 16435, + "x_pos": 250.5, + "y_pos": 6201 + }, + { + "id": 16421, + "x_pos": 26.5, + "y_pos": 6285.5 + }, + { + "id": 13860, + "x_pos": 3362.5, + "y_pos": 4795 + }, + { + "id": 13731, + "x_pos": 1533.5, + "y_pos": 6308 + }, + { + "id": 13406, + "x_pos": 3847.5, + "y_pos": 5160 + }, + { + "id": 13394, + "x_pos": 3510, + "y_pos": 4671.5 + }, + { + "id": 13393, + "x_pos": 3542.5, + "y_pos": 4672.5 + }, + { + "id": 13391, + "x_pos": 3528, + "y_pos": 4591.5 + }, + { + "id": 13289, + "x_pos": 3491.7738202391592, + "y_pos": 4648.601472356302 + }, + { + "id": 9244, + "x_pos": -1116.5, + "y_pos": 1430.5 + }, + { + "id": 7573, + "x_pos": -6.928004602977126, + "y_pos": 738.7246474854896 + }, + { + "id": 7331, + "x_pos": 512.5721349229862, + "y_pos": 1574.7948196238667 + }, + { + "id": 7083, + "x_pos": 427.5, + "y_pos": 1427.5 + }, + { + "id": 5217, + "x_pos": -2079.4507473349827, + "y_pos": 1309.752614517568 + }, + { + "id": 3695, + "x_pos": -2645.5, + "y_pos": 1629.4597304886584 + }, + { + "id": 3694, + "x_pos": -2402.5, + "y_pos": 1475.500742435826 + }, + { + "id": 3693, + "x_pos": -2197.5, + "y_pos": 2014.5009280447825 + }, + { + "id": 3692, + "x_pos": -2086, + "y_pos": 1827 + }, + { + "id": 3691, + "x_pos": -2052, + "y_pos": 1552.0007424358264 + }, + { + "id": 3690, + "x_pos": -2086.5, + "y_pos": 1504.5005568268698 + }, + { + "id": 3689, + "x_pos": -2025, + "y_pos": 1792.0003712179132 + }, + { + "id": 3688, + "x_pos": -1812, + "y_pos": 1604.5003712179132 + }, + { + "id": 3687, + "x_pos": -1597.5, + "y_pos": 2193.99944317313 + }, + { + "id": 3686, + "x_pos": -1577, + "y_pos": 1972.4996287820868 + }, + { + "id": 3685, + "x_pos": -1826, + "y_pos": 2647 + }, + { + "id": 3684, + "x_pos": -1473, + "y_pos": 2446.0016704806085 + }, + { + "id": 3683, + "x_pos": -1640.5, + "y_pos": 1652.4990719552175 + }, + { + "id": 3682, + "x_pos": -1345.5, + "y_pos": 2775 + }, + { + "id": 3681, + "x_pos": -1021.5, + "y_pos": 2310.00055682687 + }, + { + "id": 3679, + "x_pos": -841.5, + "y_pos": 2245.999628782087 + }, + { + "id": 3678, + "x_pos": -677, + "y_pos": 2015.001670480609 + }, + { + "id": 3677, + "x_pos": -557.5, + "y_pos": 2009.003526570174 + }, + { + "id": 3676, + "x_pos": -1354.5, + "y_pos": 2038.0007424358264 + }, + { + "id": 3675, + "x_pos": -1702, + "y_pos": 1201.0003712179132 + }, + { + "id": 3674, + "x_pos": -1417.5, + "y_pos": 1377.000742435826 + }, + { + "id": 3673, + "x_pos": -1114.5, + "y_pos": 1154.045481826578 + }, + { + "id": 3672, + "x_pos": -372.5, + "y_pos": 1708.4725375066596 + }, + { + "id": 3671, + "x_pos": -1036, + "y_pos": 972.0014848716523 + }, + { + "id": 3670, + "x_pos": -792, + "y_pos": 808 + }, + { + "id": 3669, + "x_pos": -1349, + "y_pos": 511.99925756417406 + }, + { + "id": 3668, + "x_pos": -376, + "y_pos": 296 + }, + { + "id": 3667, + "x_pos": 593.5, + "y_pos": 611 + }, + { + "id": 3666, + "x_pos": 813, + "y_pos": 389 + }, + { + "id": 3665, + "x_pos": 1850.5, + "y_pos": 661 + }, + { + "id": 3664, + "x_pos": 1035.5, + "y_pos": -86 + }, + { + "id": 3663, + "x_pos": 489, + "y_pos": 461.99925756417406 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/f381e3a85279e3c1815874f324355c4e_7651994827911834755.png" + }, + "83": { + "name": "Storm Barrier", + "clear_name": "StormBarrier", + "points": [ + { + "id": 24991, + "x_pos": -2702.3500061035156, + "y_pos": 2937.650812151489 + }, + { + "id": 5029, + "x_pos": -2206.039067269702, + "y_pos": 1920.7866119376686 + }, + { + "id": 5028, + "x_pos": -1985.886425865937, + "y_pos": 1286.2294673379256 + }, + { + "id": 5027, + "x_pos": -905.9360971088445, + "y_pos": 2526.2652731314356 + }, + { + "id": 5026, + "x_pos": -2220.951724016725, + "y_pos": 1283.252614517568 + }, + { + "id": 5025, + "x_pos": -1860.9360971088443, + "y_pos": 3219.2844418895766 + }, + { + "id": 5024, + "x_pos": 486.08999424627837, + "y_pos": 599.7699749023 + }, + { + "id": 5023, + "x_pos": 426.07325113069146, + "y_pos": 663.7236805430148 + }, + { + "id": 5022, + "x_pos": 639.5719953970229, + "y_pos": 850.2555079150234 + }, + { + "id": 5021, + "x_pos": 949.0565080151046, + "y_pos": 893.2204254708772 + }, + { + "id": 5020, + "x_pos": -1178.4570260033274, + "y_pos": 1617.2197021215134 + }, + { + "id": 5019, + "x_pos": -624.9397247838879, + "y_pos": -14.724599977471144 + }, + { + "id": 5018, + "x_pos": -1767.4012156180388, + "y_pos": 2009.0982099238927 + }, + { + "id": 5017, + "x_pos": -906.4360971088445, + "y_pos": 560.7887819857597 + }, + { + "id": 5016, + "x_pos": 1357.0652981507883, + "y_pos": 718.7489977707492 + }, + { + "id": 5015, + "x_pos": 509.5968310184762, + "y_pos": 700.227297289834 + }, + { + "id": 5014, + "x_pos": 1117.1635244288964, + "y_pos": 873.5218660705045 + }, + { + "id": 5013, + "x_pos": -893.929678914536, + "y_pos": 796.0616502855155 + }, + { + "id": 5012, + "x_pos": 800.0719953970229, + "y_pos": -558.7224299293796 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/de87958fa1e78efcc84da49aad61dede_613786767338836681.jpg" + }, + "67": { + "name": "Pressure Plate", + "clear_name": "PressurePlate", + "points": [ + { + "id": 24981, + "x_pos": -2498.3999938964844, + "y_pos": 2918.8522143367272 + }, + { + "id": 24979, + "x_pos": -2626.25, + "y_pos": 2858.850860750912 + }, + { + "id": 23263, + "x_pos": -2296.4000091552734, + "y_pos": 2000.6511467319697 + }, + { + "id": 9310, + "x_pos": -1671.5, + "y_pos": 3305.5 + }, + { + "id": 6315, + "x_pos": -642.1307663367952, + "y_pos": 2466.017308519373 + }, + { + "id": 6314, + "x_pos": -1614.8579126763857, + "y_pos": 1771.0000000919945 + }, + { + "id": 6313, + "x_pos": -1134.4982677114235, + "y_pos": 1279.0004025215671 + }, + { + "id": 6312, + "x_pos": -1061.5378541522673, + "y_pos": 829.9456596804575 + }, + { + "id": 2739, + "x_pos": -1921.5, + "y_pos": 2508.5 + }, + { + "id": 2736, + "x_pos": -2074, + "y_pos": 2318 + }, + { + "id": 2730, + "x_pos": -986, + "y_pos": 2393 + }, + { + "id": 2729, + "x_pos": -1093, + "y_pos": 2224.5 + }, + { + "id": 2728, + "x_pos": -1508, + "y_pos": 2179.5 + }, + { + "id": 2727, + "x_pos": -1829, + "y_pos": 2078 + }, + { + "id": 2725, + "x_pos": -824, + "y_pos": 2043.5 + }, + { + "id": 2724, + "x_pos": -1149.5, + "y_pos": 1995 + }, + { + "id": 2723, + "x_pos": -1533.5, + "y_pos": 1853.5 + }, + { + "id": 2720, + "x_pos": -1530, + "y_pos": 2716.5 + }, + { + "id": 2711, + "x_pos": -2063.5, + "y_pos": 1636 + }, + { + "id": 2710, + "x_pos": -2388.5, + "y_pos": 1537.5 + }, + { + "id": 2709, + "x_pos": -582, + "y_pos": 1897 + }, + { + "id": 2708, + "x_pos": -1339.5, + "y_pos": 2967 + }, + { + "id": 2707, + "x_pos": -1603, + "y_pos": 1559 + }, + { + "id": 2703, + "x_pos": -2304, + "y_pos": 1344.5 + }, + { + "id": 2700, + "x_pos": -2165.5, + "y_pos": 1368.5 + }, + { + "id": 2695, + "x_pos": -2274.5, + "y_pos": 1183.5 + }, + { + "id": 2694, + "x_pos": -413, + "y_pos": 1531.5 + }, + { + "id": 2693, + "x_pos": -785, + "y_pos": 1333 + }, + { + "id": 2692, + "x_pos": -1200.5, + "y_pos": 1222.5 + }, + { + "id": 2690, + "x_pos": -1804.5, + "y_pos": 3096.5 + }, + { + "id": 2689, + "x_pos": -664, + "y_pos": 1005.5 + }, + { + "id": 2687, + "x_pos": -958.5, + "y_pos": 929.5 + }, + { + "id": 2686, + "x_pos": -1214.5, + "y_pos": 912.5 + }, + { + "id": 2682, + "x_pos": -1890, + "y_pos": 713.5 + }, + { + "id": 2681, + "x_pos": -1840.5, + "y_pos": 754 + }, + { + "id": 2680, + "x_pos": -1463.5, + "y_pos": 472.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/35c7ea86473fff509f9c8a21a3b97b3e_3954477622996238225.png" + }, + "17": { + "name": "Common Chest", + "clear_name": "CommonChest", + "points": [ + { + "id": 24966, + "x_pos": -2561, + "y_pos": 2983 + }, + { + "id": 24965, + "x_pos": -2648, + "y_pos": 2979 + }, + { + "id": 24964, + "x_pos": -2658, + "y_pos": 2954.5 + }, + { + "id": 24936, + "x_pos": -2426.5, + "y_pos": 3263 + }, + { + "id": 24927, + "x_pos": -2634.500030517578, + "y_pos": 2848.1666717529297 + }, + { + "id": 24926, + "x_pos": -2624.8333435058594, + "y_pos": 2859 + }, + { + "id": 24921, + "x_pos": -2362.5, + "y_pos": 3063 + }, + { + "id": 24920, + "x_pos": -2429.5, + "y_pos": 2950.1666717529297 + }, + { + "id": 24917, + "x_pos": -2452.8333129882812, + "y_pos": 2811.1666564941406 + }, + { + "id": 24800, + "x_pos": 717.1345529274386, + "y_pos": 80.2612105793005 + }, + { + "id": 23432, + "x_pos": 3564.75, + "y_pos": 4713.5 + }, + { + "id": 23123, + "x_pos": -796, + "y_pos": -62 + }, + { + "id": 23030, + "x_pos": -1096.5, + "y_pos": 1439.25 + }, + { + "id": 19188, + "x_pos": 1826.5, + "y_pos": 8521.5 + }, + { + "id": 19187, + "x_pos": 1813, + "y_pos": 8775 + }, + { + "id": 18647, + "x_pos": 1825.5, + "y_pos": 8983.5 + }, + { + "id": 18620, + "x_pos": 1820, + "y_pos": 8747 + }, + { + "id": 18618, + "x_pos": 2047, + "y_pos": 8793 + }, + { + "id": 18613, + "x_pos": 2056.5, + "y_pos": 8729.5 + }, + { + "id": 18611, + "x_pos": 2077, + "y_pos": 8726 + }, + { + "id": 18607, + "x_pos": 2136, + "y_pos": 8606.5 + }, + { + "id": 18602, + "x_pos": 2213.5, + "y_pos": 8661.5 + }, + { + "id": 18600, + "x_pos": 2229, + "y_pos": 8581 + }, + { + "id": 18597, + "x_pos": 2402, + "y_pos": 8591 + }, + { + "id": 18595, + "x_pos": 2475, + "y_pos": 8549.5 + }, + { + "id": 18592, + "x_pos": 2176.5, + "y_pos": 8499.5 + }, + { + "id": 18590, + "x_pos": 2032.5, + "y_pos": 8542.5 + }, + { + "id": 18585, + "x_pos": 2077.5, + "y_pos": 8485 + }, + { + "id": 18583, + "x_pos": 1829, + "y_pos": 8575 + }, + { + "id": 18581, + "x_pos": 1763, + "y_pos": 8559 + }, + { + "id": 18579, + "x_pos": 1699.5, + "y_pos": 8490 + }, + { + "id": 18578, + "x_pos": 1823.5, + "y_pos": 8474 + }, + { + "id": 18576, + "x_pos": 2455, + "y_pos": 8354.5 + }, + { + "id": 18575, + "x_pos": 2203, + "y_pos": 8404 + }, + { + "id": 18574, + "x_pos": 2092.5, + "y_pos": 8424 + }, + { + "id": 18573, + "x_pos": 2140, + "y_pos": 8344 + }, + { + "id": 18571, + "x_pos": 1919, + "y_pos": 8415 + }, + { + "id": 18570, + "x_pos": 1733.5, + "y_pos": 8407.5 + }, + { + "id": 18569, + "x_pos": 1831.5, + "y_pos": 8386.5 + }, + { + "id": 18564, + "x_pos": 1833.5, + "y_pos": 8315.5 + }, + { + "id": 18563, + "x_pos": 1841, + "y_pos": 8300 + }, + { + "id": 18557, + "x_pos": 1764.5, + "y_pos": 8137 + }, + { + "id": 18556, + "x_pos": 1734.5, + "y_pos": 8126 + }, + { + "id": 18262, + "x_pos": -1604, + "y_pos": 356 + }, + { + "id": 17744, + "x_pos": 583, + "y_pos": 6101.5 + }, + { + "id": 17539, + "x_pos": -249, + "y_pos": 5901.5 + }, + { + "id": 17530, + "x_pos": -55, + "y_pos": 6164.5 + }, + { + "id": 17348, + "x_pos": 3022, + "y_pos": 6753 + }, + { + "id": 17347, + "x_pos": 3233.5, + "y_pos": 6752 + }, + { + "id": 17341, + "x_pos": 260, + "y_pos": 5757.5 + }, + { + "id": 17340, + "x_pos": 128, + "y_pos": 6387 + }, + { + "id": 17339, + "x_pos": -100.5, + "y_pos": 6335.5 + }, + { + "id": 17338, + "x_pos": -255.4681362271831, + "y_pos": 6094.29714339599 + }, + { + "id": 17293, + "x_pos": 3890.5, + "y_pos": 7291.5 + }, + { + "id": 17292, + "x_pos": 3701, + "y_pos": 7138 + }, + { + "id": 17290, + "x_pos": 3177.5, + "y_pos": 6822 + }, + { + "id": 17289, + "x_pos": 3566.5, + "y_pos": 7216.5 + }, + { + "id": 17238, + "x_pos": 3763, + "y_pos": 7001.5 + }, + { + "id": 17237, + "x_pos": 3514.5, + "y_pos": 6851 + }, + { + "id": 17236, + "x_pos": 3398, + "y_pos": 6870.5 + }, + { + "id": 17230, + "x_pos": 3033.5, + "y_pos": 6745 + }, + { + "id": 17229, + "x_pos": 3102, + "y_pos": 6802 + }, + { + "id": 17228, + "x_pos": 3135.5540602697783, + "y_pos": 6748.319509879284 + }, + { + "id": 17226, + "x_pos": 3133.1669666773796, + "y_pos": 6668.931596399481 + }, + { + "id": 17225, + "x_pos": 166, + "y_pos": 6059.5 + }, + { + "id": 17224, + "x_pos": -82, + "y_pos": 6045.5 + }, + { + "id": 16311, + "x_pos": 3976, + "y_pos": 7141.5 + }, + { + "id": 16310, + "x_pos": 3886, + "y_pos": 7037 + }, + { + "id": 16309, + "x_pos": 3866, + "y_pos": 6938 + }, + { + "id": 16305, + "x_pos": 3493, + "y_pos": 7221.5 + }, + { + "id": 16304, + "x_pos": 3458, + "y_pos": 7035 + }, + { + "id": 16299, + "x_pos": 3172, + "y_pos": 7195 + }, + { + "id": 16298, + "x_pos": 3202, + "y_pos": 6998.5 + }, + { + "id": 16164, + "x_pos": 3795, + "y_pos": 6763.5 + }, + { + "id": 16160, + "x_pos": 3568, + "y_pos": 6559 + }, + { + "id": 16154, + "x_pos": 3478, + "y_pos": 6735 + }, + { + "id": 16148, + "x_pos": 3474.5, + "y_pos": 6565.5 + }, + { + "id": 16144, + "x_pos": 3020, + "y_pos": 6571 + }, + { + "id": 16141, + "x_pos": 3104, + "y_pos": 6645 + }, + { + "id": 16140, + "x_pos": 3188.5, + "y_pos": 6668.5 + }, + { + "id": 16137, + "x_pos": 3083, + "y_pos": 6756.5 + }, + { + "id": 16131, + "x_pos": 2982, + "y_pos": 6692.5 + }, + { + "id": 15991, + "x_pos": 640, + "y_pos": 6013 + }, + { + "id": 15989, + "x_pos": 630, + "y_pos": 6092 + }, + { + "id": 15984, + "x_pos": 204, + "y_pos": 5934.5 + }, + { + "id": 15983, + "x_pos": 46.5, + "y_pos": 5860 + }, + { + "id": 15981, + "x_pos": -13.5, + "y_pos": 5779 + }, + { + "id": 15979, + "x_pos": -111, + "y_pos": 5922 + }, + { + "id": 15975, + "x_pos": 111.5, + "y_pos": 6046.5 + }, + { + "id": 15972, + "x_pos": 99, + "y_pos": 6096 + }, + { + "id": 15971, + "x_pos": 46, + "y_pos": 6110.5 + }, + { + "id": 15969, + "x_pos": 256.5, + "y_pos": 6194 + }, + { + "id": 15964, + "x_pos": 103, + "y_pos": 6257.5 + }, + { + "id": 15961, + "x_pos": 660, + "y_pos": 6362.5 + }, + { + "id": 15958, + "x_pos": 245, + "y_pos": 6343 + }, + { + "id": 15953, + "x_pos": -281, + "y_pos": 6308.5 + }, + { + "id": 15952, + "x_pos": -375, + "y_pos": 6368.5 + }, + { + "id": 15834, + "x_pos": 539.5, + "y_pos": -92 + }, + { + "id": 15787, + "x_pos": 467, + "y_pos": -397 + }, + { + "id": 15786, + "x_pos": 1518.1406633383021, + "y_pos": 5979.648884475646 + }, + { + "id": 14546, + "x_pos": 2399, + "y_pos": 5929 + }, + { + "id": 14545, + "x_pos": 2405.5, + "y_pos": 5929 + }, + { + "id": 14516, + "x_pos": 3357, + "y_pos": 4072 + }, + { + "id": 14512, + "x_pos": 2402.5, + "y_pos": 5931 + }, + { + "id": 14449, + "x_pos": 3684.5, + "y_pos": 4809 + }, + { + "id": 14006, + "x_pos": 4100, + "y_pos": 4563.5 + }, + { + "id": 13914, + "x_pos": 3495.5, + "y_pos": 4179.5 + }, + { + "id": 13884, + "x_pos": 1505.5, + "y_pos": 6184.5 + }, + { + "id": 13883, + "x_pos": 1496, + "y_pos": 6267 + }, + { + "id": 13882, + "x_pos": 1405, + "y_pos": 6400 + }, + { + "id": 13881, + "x_pos": 1604.5, + "y_pos": 6451.5 + }, + { + "id": 13880, + "x_pos": 1759.5, + "y_pos": 6315 + }, + { + "id": 13878, + "x_pos": 1336.5, + "y_pos": 5917.5 + }, + { + "id": 13803, + "x_pos": 4177.5, + "y_pos": 4545.5 + }, + { + "id": 13802, + "x_pos": 4071.5, + "y_pos": 4654.5 + }, + { + "id": 13795, + "x_pos": 3341.5, + "y_pos": 5160 + }, + { + "id": 13791, + "x_pos": 3481.5, + "y_pos": 4686.5 + }, + { + "id": 13789, + "x_pos": 1610, + "y_pos": 6154.5 + }, + { + "id": 13765, + "x_pos": 3503.25, + "y_pos": 4662.25 + }, + { + "id": 13764, + "x_pos": 3534, + "y_pos": 4664 + }, + { + "id": 13763, + "x_pos": 2712, + "y_pos": 5491.5 + }, + { + "id": 13762, + "x_pos": 2664.5, + "y_pos": 5769 + }, + { + "id": 13761, + "x_pos": 2253, + "y_pos": 6204 + }, + { + "id": 13759, + "x_pos": 2312, + "y_pos": 6111.5 + }, + { + "id": 13757, + "x_pos": 2287.5, + "y_pos": 5987.5 + }, + { + "id": 13756, + "x_pos": 2438.5, + "y_pos": 5992 + }, + { + "id": 13755, + "x_pos": 2450.5, + "y_pos": 5938 + }, + { + "id": 13754, + "x_pos": 2468, + "y_pos": 5808.5 + }, + { + "id": 13752, + "x_pos": 2513.5, + "y_pos": 6049.5 + }, + { + "id": 13751, + "x_pos": 2445, + "y_pos": 6111.5 + }, + { + "id": 13695, + "x_pos": 1828, + "y_pos": 6126.5 + }, + { + "id": 13694, + "x_pos": 1701.5, + "y_pos": 6062 + }, + { + "id": 13693, + "x_pos": 2438.5, + "y_pos": 6350 + }, + { + "id": 13692, + "x_pos": 2483.5, + "y_pos": 6161.5 + }, + { + "id": 13691, + "x_pos": 2572.5, + "y_pos": 6255 + }, + { + "id": 13690, + "x_pos": 2416, + "y_pos": 6044.5 + }, + { + "id": 13689, + "x_pos": 2341, + "y_pos": 5984.5 + }, + { + "id": 13688, + "x_pos": 2532, + "y_pos": 5868 + }, + { + "id": 13664, + "x_pos": 1503, + "y_pos": 5997.5 + }, + { + "id": 13663, + "x_pos": 1403, + "y_pos": 5786 + }, + { + "id": 13549, + "x_pos": 2278.5, + "y_pos": 6231 + }, + { + "id": 13547, + "x_pos": 2214.5, + "y_pos": 6270.5 + }, + { + "id": 13546, + "x_pos": 2289, + "y_pos": 6309.5 + }, + { + "id": 13545, + "x_pos": 2243.5, + "y_pos": 5944 + }, + { + "id": 13509, + "x_pos": 2239.5, + "y_pos": 6177.5 + }, + { + "id": 13508, + "x_pos": 2230, + "y_pos": 6181 + }, + { + "id": 13507, + "x_pos": 2225, + "y_pos": 6040.5 + }, + { + "id": 13504, + "x_pos": 2682.5, + "y_pos": 5890 + }, + { + "id": 13502, + "x_pos": 2645, + "y_pos": 5525.5 + }, + { + "id": 13501, + "x_pos": 2727.5, + "y_pos": 5575 + }, + { + "id": 13500, + "x_pos": 2866, + "y_pos": 5589 + }, + { + "id": 13499, + "x_pos": 2962.5, + "y_pos": 5678 + }, + { + "id": 13498, + "x_pos": 2716, + "y_pos": 5455.5 + }, + { + "id": 13497, + "x_pos": 2785.5, + "y_pos": 5473 + }, + { + "id": 13496, + "x_pos": 3618.5, + "y_pos": 5438 + }, + { + "id": 13494, + "x_pos": 3371, + "y_pos": 5295.5 + }, + { + "id": 13493, + "x_pos": 3890.5, + "y_pos": 5018.5 + }, + { + "id": 13492, + "x_pos": 3567, + "y_pos": 4782 + }, + { + "id": 13491, + "x_pos": 3926.5, + "y_pos": 4797 + }, + { + "id": 13375, + "x_pos": 3710.5, + "y_pos": 5641.5 + }, + { + "id": 13374, + "x_pos": 3336, + "y_pos": 5178.5 + }, + { + "id": 13373, + "x_pos": 3368.5, + "y_pos": 5157 + }, + { + "id": 13372, + "x_pos": 3275, + "y_pos": 5163.5 + }, + { + "id": 13371, + "x_pos": 3251, + "y_pos": 5094 + }, + { + "id": 13370, + "x_pos": 3212, + "y_pos": 5040.5 + }, + { + "id": 13369, + "x_pos": 3489.5, + "y_pos": 5091 + }, + { + "id": 13368, + "x_pos": 3291.5, + "y_pos": 5026 + }, + { + "id": 13367, + "x_pos": 3533, + "y_pos": 5023 + }, + { + "id": 13366, + "x_pos": 3593.5, + "y_pos": 5072.5 + }, + { + "id": 13365, + "x_pos": 3664.5, + "y_pos": 5147 + }, + { + "id": 13364, + "x_pos": 3826, + "y_pos": 5158.5 + }, + { + "id": 13363, + "x_pos": 3729, + "y_pos": 5014.5 + }, + { + "id": 13362, + "x_pos": 3537.5, + "y_pos": 4820.5 + }, + { + "id": 13361, + "x_pos": 3670, + "y_pos": 4755 + }, + { + "id": 13360, + "x_pos": 3514, + "y_pos": 4782 + }, + { + "id": 13359, + "x_pos": 3546.5, + "y_pos": 4756 + }, + { + "id": 13358, + "x_pos": 3483.5, + "y_pos": 4198.5 + }, + { + "id": 13357, + "x_pos": 3476.5, + "y_pos": 4167.5 + }, + { + "id": 13313, + "x_pos": 3443, + "y_pos": 4933.5 + }, + { + "id": 12366, + "x_pos": 3767.6870727539062, + "y_pos": 5714.482971191406 + }, + { + "id": 12363, + "x_pos": 3770.8571166992188, + "y_pos": 5598.5999755859375 + }, + { + "id": 12359, + "x_pos": 3814.8087463378906, + "y_pos": 5567.6907958984375 + }, + { + "id": 12354, + "x_pos": 3655.4285583496094, + "y_pos": 5480.171478271484 + }, + { + "id": 12351, + "x_pos": 3682.6439208984375, + "y_pos": 5356.123870849609 + }, + { + "id": 12347, + "x_pos": 3461.0284729003906, + "y_pos": 5221.228607177734 + }, + { + "id": 12336, + "x_pos": 3325.5, + "y_pos": 5290 + }, + { + "id": 12330, + "x_pos": 3181, + "y_pos": 5283 + }, + { + "id": 12327, + "x_pos": 3436.5, + "y_pos": 5130 + }, + { + "id": 12324, + "x_pos": 3298, + "y_pos": 5146.5 + }, + { + "id": 12322, + "x_pos": 3353, + "y_pos": 5116 + }, + { + "id": 12317, + "x_pos": 3277, + "y_pos": 5041 + }, + { + "id": 12314, + "x_pos": 3646.5, + "y_pos": 4809.5 + }, + { + "id": 12311, + "x_pos": 3435.5, + "y_pos": 4643.5 + }, + { + "id": 12301, + "x_pos": 3427.5, + "y_pos": 4726.5 + }, + { + "id": 12295, + "x_pos": 3653.5, + "y_pos": 4665.5 + }, + { + "id": 12289, + "x_pos": 3899, + "y_pos": 4778.5 + }, + { + "id": 12272, + "x_pos": 2848.5, + "y_pos": 4626.5 + }, + { + "id": 12265, + "x_pos": 2508, + "y_pos": 5444 + }, + { + "id": 12263, + "x_pos": 2820, + "y_pos": 5628 + }, + { + "id": 12258, + "x_pos": 2682, + "y_pos": 5723.5 + }, + { + "id": 12247, + "x_pos": 2290.055539496462, + "y_pos": 5853.108727056564 + }, + { + "id": 12244, + "x_pos": 2301.3333129882812, + "y_pos": 5869.518131307928 + }, + { + "id": 12240, + "x_pos": 2449, + "y_pos": 5826.5 + }, + { + "id": 12236, + "x_pos": 2519.7778420141512, + "y_pos": 5883.832010754013 + }, + { + "id": 12233, + "x_pos": 2615.444482965614, + "y_pos": 6071.27863916022 + }, + { + "id": 12229, + "x_pos": 2528.944460503538, + "y_pos": 6163.723314203104 + }, + { + "id": 12227, + "x_pos": 2404.8333435058594, + "y_pos": 6161.0234501320065 + }, + { + "id": 12221, + "x_pos": 2116.8888680275586, + "y_pos": 6032.053371593791 + }, + { + "id": 12218, + "x_pos": 2407.6666259765625, + "y_pos": 6287.517818435925 + }, + { + "id": 12211, + "x_pos": 2065.44439311731, + "y_pos": 5883.217454113128 + }, + { + "id": 12209, + "x_pos": 1888, + "y_pos": 5791 + }, + { + "id": 12205, + "x_pos": 1520.8332824707031, + "y_pos": 5904.435876507398 + }, + { + "id": 12203, + "x_pos": 1612, + "y_pos": 6027 + }, + { + "id": 12195, + "x_pos": 1551.6666870117188, + "y_pos": 6128.210875731089 + }, + { + "id": 12191, + "x_pos": 1736.5, + "y_pos": 6226.5 + }, + { + "id": 12185, + "x_pos": 1619.8333129882812, + "y_pos": 6307.177085554595 + }, + { + "id": 12175, + "x_pos": 1337, + "y_pos": 6227 + }, + { + "id": 12171, + "x_pos": 1227, + "y_pos": 5994.5 + }, + { + "id": 12066, + "x_pos": -1122.5, + "y_pos": -125.5 + }, + { + "id": 12065, + "x_pos": -1105, + "y_pos": -117.5 + }, + { + "id": 11625, + "x_pos": -1049.5, + "y_pos": 902.5 + }, + { + "id": 11511, + "x_pos": -499.5, + "y_pos": 917 + }, + { + "id": 11510, + "x_pos": -461, + "y_pos": 924 + }, + { + "id": 11181, + "x_pos": -1418, + "y_pos": 3249 + }, + { + "id": 7601, + "x_pos": -364.5, + "y_pos": 1374 + }, + { + "id": 7590, + "x_pos": 515.5, + "y_pos": 1277.5 + }, + { + "id": 7589, + "x_pos": 12.5, + "y_pos": 1106.5 + }, + { + "id": 7587, + "x_pos": 141.5, + "y_pos": 1263 + }, + { + "id": 7512, + "x_pos": 546.5, + "y_pos": 1495.7238691711727 + }, + { + "id": 7511, + "x_pos": 308.1137398179508, + "y_pos": 1666.8810608591257 + }, + { + "id": 7510, + "x_pos": 205.56501909886174, + "y_pos": 1497.2309856141173 + }, + { + "id": 7509, + "x_pos": 119.20183301659381, + "y_pos": 1474.5223919805376 + }, + { + "id": 7508, + "x_pos": 821.485266931918, + "y_pos": 1169.0448501138126 + }, + { + "id": 7507, + "x_pos": 649.7185499742554, + "y_pos": 1158.071820236849 + }, + { + "id": 7506, + "x_pos": 292.11086645674277, + "y_pos": 1213.835742776867 + }, + { + "id": 7505, + "x_pos": -354.9208887788527, + "y_pos": 1473.2219616345956 + }, + { + "id": 7504, + "x_pos": -174.94209672526267, + "y_pos": 1296.2291747202235 + }, + { + "id": 7503, + "x_pos": -119.7379440831437, + "y_pos": 1252.3481595960166 + }, + { + "id": 7502, + "x_pos": -324.666314948161, + "y_pos": 1287.667848520974 + }, + { + "id": 7501, + "x_pos": 231.5472993015319, + "y_pos": 994.820721504534 + }, + { + "id": 7500, + "x_pos": -450.87956293581465, + "y_pos": 1188.0914501416264 + }, + { + "id": 7499, + "x_pos": -431.2249681685644, + "y_pos": 928.4421023031696 + }, + { + "id": 7498, + "x_pos": 24.590970928020397, + "y_pos": 893.749094553053 + }, + { + "id": 7497, + "x_pos": -113.42507455775012, + "y_pos": 840.2595071929413 + }, + { + "id": 7496, + "x_pos": -44.38137677333634, + "y_pos": 732.9199340979462 + }, + { + "id": 7495, + "x_pos": 180.38916406935186, + "y_pos": 605.0559596703065 + }, + { + "id": 7452, + "x_pos": -125.70099586081506, + "y_pos": 1496.311608504815 + }, + { + "id": 7451, + "x_pos": -104.02371941374804, + "y_pos": 1417.418606417472 + }, + { + "id": 7449, + "x_pos": 22.21079320433455, + "y_pos": 1418.3186664175082 + }, + { + "id": 7443, + "x_pos": 141.8325993702274, + "y_pos": 1291.003591297841 + }, + { + "id": 7438, + "x_pos": 234.6806294383532, + "y_pos": 1165.847981555622 + }, + { + "id": 7437, + "x_pos": 369.0502293467598, + "y_pos": 976.161266199214 + }, + { + "id": 7436, + "x_pos": 410.0869246750872, + "y_pos": 927.2038222057135 + }, + { + "id": 7433, + "x_pos": 422.61050456287194, + "y_pos": 928.8769711028926 + }, + { + "id": 7385, + "x_pos": -226.1706402530208, + "y_pos": 966.6101745994574 + }, + { + "id": 7272, + "x_pos": 191.5316723936512, + "y_pos": 1072.2133293986549 + }, + { + "id": 7269, + "x_pos": 349.5406020552973, + "y_pos": 697.2653925980958 + }, + { + "id": 7084, + "x_pos": -1686.9620665270463, + "y_pos": 1479.1561784599671 + }, + { + "id": 7079, + "x_pos": -865.3068101633799, + "y_pos": -427.29424317343955 + }, + { + "id": 7078, + "x_pos": 1470.1104730570933, + "y_pos": -363.02126533719365 + }, + { + "id": 7076, + "x_pos": 386.6524810550727, + "y_pos": -343.6670463582859 + }, + { + "id": 6676, + "x_pos": -2016.500216536072, + "y_pos": 3198.001207564701 + }, + { + "id": 6674, + "x_pos": -1882.8109243487488, + "y_pos": 3117.90057726496 + }, + { + "id": 6671, + "x_pos": -982.499133855712, + "y_pos": 2655.0020126078343 + }, + { + "id": 6669, + "x_pos": -1684.415727807626, + "y_pos": 1573.594995181793 + }, + { + "id": 6661, + "x_pos": 237, + "y_pos": 980.5 + }, + { + "id": 6655, + "x_pos": 208, + "y_pos": 1354.5 + }, + { + "id": 6638, + "x_pos": -80.5, + "y_pos": 1312.5 + }, + { + "id": 6634, + "x_pos": -90.5, + "y_pos": 1298 + }, + { + "id": 6630, + "x_pos": -23.5, + "y_pos": 1166.5 + }, + { + "id": 6629, + "x_pos": 101, + "y_pos": 1195.5 + }, + { + "id": 6625, + "x_pos": 168.5, + "y_pos": 1423 + }, + { + "id": 6621, + "x_pos": -260, + "y_pos": 1483.5 + }, + { + "id": 6598, + "x_pos": 120, + "y_pos": 1686 + }, + { + "id": 6480, + "x_pos": -8.5, + "y_pos": 954 + }, + { + "id": 6470, + "x_pos": -112, + "y_pos": 954.5 + }, + { + "id": 6465, + "x_pos": -332.5, + "y_pos": 1364.5 + }, + { + "id": 6450, + "x_pos": -242.5, + "y_pos": 993 + }, + { + "id": 6446, + "x_pos": -356, + "y_pos": 1193.5 + }, + { + "id": 6415, + "x_pos": -296.05062978051865, + "y_pos": 512.0317992957825 + }, + { + "id": 6412, + "x_pos": -363.44734207414604, + "y_pos": 261.0466925937594 + }, + { + "id": 6411, + "x_pos": 75.88687060175198, + "y_pos": 787.0523531274926 + }, + { + "id": 6405, + "x_pos": 283.5, + "y_pos": 823.5 + }, + { + "id": 5222, + "x_pos": -1068, + "y_pos": 3189.5 + }, + { + "id": 5221, + "x_pos": -966.4122381691332, + "y_pos": 3230.722233844287 + }, + { + "id": 4882, + "x_pos": -1699.5, + "y_pos": 2592 + }, + { + "id": 4881, + "x_pos": -1908.5, + "y_pos": 2721 + }, + { + "id": 4880, + "x_pos": -1849.5, + "y_pos": 2686 + }, + { + "id": 4879, + "x_pos": -1608, + "y_pos": 2609 + }, + { + "id": 4878, + "x_pos": -1820, + "y_pos": 2787.5 + }, + { + "id": 4877, + "x_pos": -1676.5, + "y_pos": 2543 + }, + { + "id": 4876, + "x_pos": -1936, + "y_pos": 2853.5 + }, + { + "id": 4875, + "x_pos": -1378.5, + "y_pos": 2659.5 + }, + { + "id": 4874, + "x_pos": -1421, + "y_pos": 2681.5 + }, + { + "id": 4873, + "x_pos": -1419, + "y_pos": 2349.5 + }, + { + "id": 4872, + "x_pos": -1412, + "y_pos": 2610 + }, + { + "id": 4870, + "x_pos": -1728.5, + "y_pos": 2512 + }, + { + "id": 4869, + "x_pos": -1406, + "y_pos": 2702 + }, + { + "id": 4868, + "x_pos": -1926.5, + "y_pos": 2662 + }, + { + "id": 4867, + "x_pos": -1405.75, + "y_pos": 2752.25 + }, + { + "id": 4866, + "x_pos": -1603, + "y_pos": 2683 + }, + { + "id": 4865, + "x_pos": -1503.5, + "y_pos": 2306 + }, + { + "id": 4863, + "x_pos": -1973, + "y_pos": 2554 + }, + { + "id": 4861, + "x_pos": -1767, + "y_pos": 2359 + }, + { + "id": 4860, + "x_pos": -1124, + "y_pos": 2276 + }, + { + "id": 4859, + "x_pos": -1266.5, + "y_pos": 2598 + }, + { + "id": 4858, + "x_pos": -558, + "y_pos": 1575 + }, + { + "id": 4857, + "x_pos": -684.5, + "y_pos": 1572 + }, + { + "id": 4856, + "x_pos": -897.5, + "y_pos": 2232 + }, + { + "id": 4855, + "x_pos": -666, + "y_pos": 1619.5 + }, + { + "id": 4854, + "x_pos": -517.5, + "y_pos": 1653.5 + }, + { + "id": 4852, + "x_pos": -638, + "y_pos": 1499.5 + }, + { + "id": 4851, + "x_pos": -1936, + "y_pos": 3170 + }, + { + "id": 4850, + "x_pos": -1987.5, + "y_pos": 3209 + }, + { + "id": 4849, + "x_pos": -977, + "y_pos": 2371 + }, + { + "id": 4848, + "x_pos": -1810, + "y_pos": 2865.5 + }, + { + "id": 4847, + "x_pos": -1099, + "y_pos": 2844.5 + }, + { + "id": 4846, + "x_pos": -620.5, + "y_pos": 2402.5 + }, + { + "id": 4845, + "x_pos": -2030.5, + "y_pos": 3202 + }, + { + "id": 4844, + "x_pos": -1891.5, + "y_pos": 2865 + }, + { + "id": 4843, + "x_pos": -750, + "y_pos": 1685 + }, + { + "id": 4842, + "x_pos": -653, + "y_pos": 1800.5 + }, + { + "id": 4841, + "x_pos": -558.5, + "y_pos": 1895.5 + }, + { + "id": 4840, + "x_pos": -610, + "y_pos": 1709 + }, + { + "id": 4839, + "x_pos": -1077.5, + "y_pos": 2826 + }, + { + "id": 4838, + "x_pos": -646, + "y_pos": 1637.5 + }, + { + "id": 4837, + "x_pos": -1104.5, + "y_pos": 2916 + }, + { + "id": 4836, + "x_pos": -559.5, + "y_pos": 2415.5 + }, + { + "id": 4835, + "x_pos": -453, + "y_pos": 1756.5 + }, + { + "id": 4834, + "x_pos": -239, + "y_pos": 1659 + }, + { + "id": 4833, + "x_pos": -2042.5, + "y_pos": 3214.5 + }, + { + "id": 4832, + "x_pos": -1071, + "y_pos": 2950 + }, + { + "id": 4831, + "x_pos": -544.5, + "y_pos": 1951 + }, + { + "id": 4830, + "x_pos": 159, + "y_pos": 2432 + }, + { + "id": 4829, + "x_pos": 568, + "y_pos": 2716.5 + }, + { + "id": 4828, + "x_pos": -475, + "y_pos": 1712 + }, + { + "id": 4827, + "x_pos": -2286.8696827503504, + "y_pos": 1416.1775642442562 + }, + { + "id": 4826, + "x_pos": -2479.9274464991245, + "y_pos": 1411.7694671093564 + }, + { + "id": 4825, + "x_pos": -1010.4086104940893, + "y_pos": -136.88445887159946 + }, + { + "id": 4824, + "x_pos": 508.5, + "y_pos": 436.5 + }, + { + "id": 4823, + "x_pos": -925.928423180867, + "y_pos": -734.1730370095222 + }, + { + "id": 4821, + "x_pos": -608.5, + "y_pos": 1317 + }, + { + "id": 4762, + "x_pos": -2018, + "y_pos": 2813.5 + }, + { + "id": 4761, + "x_pos": -976, + "y_pos": 2964.5 + }, + { + "id": 4760, + "x_pos": 562, + "y_pos": 2722 + }, + { + "id": 4759, + "x_pos": -938.4157263182137, + "y_pos": -197.78395426050497 + }, + { + "id": 4758, + "x_pos": -295.59334286939566, + "y_pos": 393.84507192941373 + }, + { + "id": 4757, + "x_pos": -1311.443491984895, + "y_pos": 1390.2020113118197 + }, + { + "id": 4756, + "x_pos": -1601.5, + "y_pos": 1470.0027163408404 + }, + { + "id": 4754, + "x_pos": -405, + "y_pos": 1807.5 + }, + { + "id": 4753, + "x_pos": -745.9009365661123, + "y_pos": -96.37132989087081 + }, + { + "id": 4752, + "x_pos": -545.4482358676446, + "y_pos": 1.7902923891324463 + }, + { + "id": 4751, + "x_pos": -1153.9747458006568, + "y_pos": -195.76539259809556 + }, + { + "id": 4750, + "x_pos": -850.4658161390107, + "y_pos": -367.0575925238056 + }, + { + "id": 4748, + "x_pos": -1879.5, + "y_pos": 2565.5 + }, + { + "id": 4747, + "x_pos": -301, + "y_pos": 1689 + }, + { + "id": 4746, + "x_pos": -1503, + "y_pos": 1823 + }, + { + "id": 4745, + "x_pos": -1106.5, + "y_pos": 1988.5 + }, + { + "id": 4744, + "x_pos": -772.9631651457094, + "y_pos": 169.6381773020703 + }, + { + "id": 4743, + "x_pos": -186.40261087767112, + "y_pos": 196.84959916414755 + }, + { + "id": 4742, + "x_pos": -1622, + "y_pos": 2057.5 + }, + { + "id": 4741, + "x_pos": -2032.4766991641418, + "y_pos": 1510.2889342187123 + }, + { + "id": 4740, + "x_pos": -2189.9388876281087, + "y_pos": 855.4891346366385 + }, + { + "id": 4739, + "x_pos": -1636, + "y_pos": 2481.5 + }, + { + "id": 4738, + "x_pos": -1374, + "y_pos": 2500.5 + }, + { + "id": 4737, + "x_pos": -1685.5, + "y_pos": 1868 + }, + { + "id": 4736, + "x_pos": -799, + "y_pos": 1666 + }, + { + "id": 4735, + "x_pos": -6.5, + "y_pos": 2642 + }, + { + "id": 4734, + "x_pos": 143.58483178563893, + "y_pos": 599.0268073276143 + }, + { + "id": 4733, + "x_pos": -1901.9405619396673, + "y_pos": 1605.7549799582075 + }, + { + "id": 4732, + "x_pos": -653.5, + "y_pos": 2487.5 + }, + { + "id": 4731, + "x_pos": -458.5, + "y_pos": 2055.5 + }, + { + "id": 4730, + "x_pos": -513, + "y_pos": 1401.5 + }, + { + "id": 4728, + "x_pos": -628, + "y_pos": 2930 + }, + { + "id": 4727, + "x_pos": 793.5, + "y_pos": 734 + }, + { + "id": 4726, + "x_pos": -999.5, + "y_pos": 2814.5 + }, + { + "id": 3963, + "x_pos": -1088, + "y_pos": 1422.641203608579 + }, + { + "id": 3961, + "x_pos": -1101, + "y_pos": 1420.138546027254 + }, + { + "id": 3952, + "x_pos": -1096.5, + "y_pos": 1084.5061984772574 + }, + { + "id": 3948, + "x_pos": -1444.5, + "y_pos": 937.5 + }, + { + "id": 3945, + "x_pos": -1334.5, + "y_pos": 906.5880519820744 + }, + { + "id": 3936, + "x_pos": -1558.5, + "y_pos": 410.6247266043629 + }, + { + "id": 3931, + "x_pos": -1608, + "y_pos": 286.6226005393023 + }, + { + "id": 3929, + "x_pos": -1477.5, + "y_pos": 193 + }, + { + "id": 3920, + "x_pos": -1013, + "y_pos": 757.6018714049656 + }, + { + "id": 3918, + "x_pos": -793.5, + "y_pos": 560.5205494164134 + }, + { + "id": 3917, + "x_pos": -708, + "y_pos": 645.0822053031588 + }, + { + "id": 3913, + "x_pos": -658, + "y_pos": 590.1486448362898 + }, + { + "id": 3648, + "x_pos": 770.5, + "y_pos": -51.99433303900787 + }, + { + "id": 3647, + "x_pos": 779.5, + "y_pos": -131.49911668539312 + }, + { + "id": 3646, + "x_pos": 691, + "y_pos": -187.40556982274506 + }, + { + "id": 3645, + "x_pos": 940, + "y_pos": 40.09655624231527 + }, + { + "id": 3644, + "x_pos": 828, + "y_pos": 168.59602472605002 + }, + { + "id": 3641, + "x_pos": 834, + "y_pos": -388.8231848016628 + }, + { + "id": 3640, + "x_pos": 344.5, + "y_pos": -56.3194641878074 + }, + { + "id": 3639, + "x_pos": 828, + "y_pos": -324.90929043660026 + }, + { + "id": 3637, + "x_pos": 775.5, + "y_pos": 94.06944891279772 + }, + { + "id": 3636, + "x_pos": 778, + "y_pos": -245.52462946611536 + }, + { + "id": 3635, + "x_pos": 333.5, + "y_pos": 235.77248812604557 + }, + { + "id": 3634, + "x_pos": 501, + "y_pos": -252.7482410082912 + }, + { + "id": 3632, + "x_pos": 681.5, + "y_pos": -549.6357163655102 + }, + { + "id": 3631, + "x_pos": 884.5, + "y_pos": -644.40397527395 + }, + { + "id": 3630, + "x_pos": 998.5, + "y_pos": -537.8704897492519 + }, + { + "id": 3629, + "x_pos": 834.5, + "y_pos": -607.9433074775634 + }, + { + "id": 3628, + "x_pos": 616, + "y_pos": 218.09230411219505 + }, + { + "id": 3626, + "x_pos": 918, + "y_pos": -11.389624334793552 + }, + { + "id": 3624, + "x_pos": 923, + "y_pos": -517.9055698227451 + }, + { + "id": 2830, + "x_pos": -892.5, + "y_pos": 705.1410510616838 + }, + { + "id": 2112, + "x_pos": -1104, + "y_pos": 1402.9996287820868 + }, + { + "id": 2090, + "x_pos": 115.3588456894604, + "y_pos": 176.4000015258789 + }, + { + "id": 2089, + "x_pos": 78.49702385489809, + "y_pos": 158 + }, + { + "id": 2088, + "x_pos": 170.5, + "y_pos": 122.5 + }, + { + "id": 2087, + "x_pos": 9.999574836414013, + "y_pos": 91 + }, + { + "id": 2086, + "x_pos": 204.00127549075796, + "y_pos": 33 + }, + { + "id": 2085, + "x_pos": -233.6313755480628, + "y_pos": 193.4000015258789 + }, + { + "id": 2084, + "x_pos": -217.50212581792994, + "y_pos": 212.5 + }, + { + "id": 2083, + "x_pos": 130.91709310073702, + "y_pos": 37.400001525878906 + }, + { + "id": 2082, + "x_pos": 29.000850327171975, + "y_pos": 84.5 + }, + { + "id": 2081, + "x_pos": 176.3550192171865, + "y_pos": 3.4000015258789062 + }, + { + "id": 2080, + "x_pos": 193.89243361275112, + "y_pos": 103.4000015258789 + }, + { + "id": 2079, + "x_pos": 128.500425163586, + "y_pos": 137 + }, + { + "id": 2078, + "x_pos": 23.366073470421725, + "y_pos": 115.4000015258789 + }, + { + "id": 2077, + "x_pos": -287.999574836414, + "y_pos": 177 + }, + { + "id": 2076, + "x_pos": -255.69642557671523, + "y_pos": 220.9000015258789 + }, + { + "id": 2075, + "x_pos": -276.999149672828, + "y_pos": 161.5 + }, + { + "id": 2074, + "x_pos": -142.500425163586, + "y_pos": 538.5 + }, + { + "id": 2073, + "x_pos": -224, + "y_pos": 647.5 + }, + { + "id": 2072, + "x_pos": -330, + "y_pos": 555.5 + }, + { + "id": 2071, + "x_pos": -354.999149672828, + "y_pos": 473 + }, + { + "id": 2070, + "x_pos": -118.99787418207006, + "y_pos": 575.5 + }, + { + "id": 2069, + "x_pos": -353.999149672828, + "y_pos": 582.5 + }, + { + "id": 2068, + "x_pos": -388.999149672828, + "y_pos": 570 + }, + { + "id": 2067, + "x_pos": -268.000850327172, + "y_pos": 114 + }, + { + "id": 2066, + "x_pos": -103.75254717006237, + "y_pos": 369.4000015258789 + }, + { + "id": 2065, + "x_pos": 125.34736627263919, + "y_pos": 3.9000015258789062 + }, + { + "id": 2064, + "x_pos": -270.99829934565605, + "y_pos": 90 + }, + { + "id": 2063, + "x_pos": 87.38988263123565, + "y_pos": 58.900001525878906 + }, + { + "id": 2062, + "x_pos": -21.5, + "y_pos": 61.5 + }, + { + "id": 2061, + "x_pos": 121.49914967282803, + "y_pos": 437 + }, + { + "id": 2060, + "x_pos": -230.000425163586, + "y_pos": 532.5 + }, + { + "id": 2059, + "x_pos": -346.3686244519372, + "y_pos": 95.9000015258789 + }, + { + "id": 2058, + "x_pos": -362.499574836414, + "y_pos": 641 + }, + { + "id": 2057, + "x_pos": 160.99829934565605, + "y_pos": 389.5 + }, + { + "id": 2056, + "x_pos": -375.9974490184841, + "y_pos": 355 + }, + { + "id": 2055, + "x_pos": -472.9974490184841, + "y_pos": 515 + }, + { + "id": 2054, + "x_pos": -702, + "y_pos": 268 + }, + { + "id": 2053, + "x_pos": 75.00170065434395, + "y_pos": 528 + }, + { + "id": 2052, + "x_pos": -580.000850327172, + "y_pos": 421 + }, + { + "id": 2051, + "x_pos": -678.999149672828, + "y_pos": 210 + }, + { + "id": 2050, + "x_pos": 77.35289339925657, + "y_pos": 581.4000015258789 + }, + { + "id": 2049, + "x_pos": -321.1126683502803, + "y_pos": 185.9000015258789 + }, + { + "id": 2048, + "x_pos": -733.896260085025, + "y_pos": 164.8000030517578 + }, + { + "id": 2047, + "x_pos": 164.89030779482164, + "y_pos": 379.9000015258789 + }, + { + "id": 2046, + "x_pos": 109.8193054759654, + "y_pos": -20.099998474121094 + }, + { + "id": 2045, + "x_pos": -281.999149672828, + "y_pos": 773.5 + }, + { + "id": 2044, + "x_pos": 76.43580029851955, + "y_pos": -57.599998474121094 + }, + { + "id": 2043, + "x_pos": 9.223621026207184, + "y_pos": -59.16258970763238 + }, + { + "id": 2039, + "x_pos": -793, + "y_pos": 528 + }, + { + "id": 2038, + "x_pos": -1183.5, + "y_pos": 800.5 + }, + { + "id": 2036, + "x_pos": -1255.5, + "y_pos": 999 + }, + { + "id": 2035, + "x_pos": -1142.5, + "y_pos": 1098 + }, + { + "id": 1861, + "x_pos": -2364.001034490422, + "y_pos": 1109.4999912404783 + }, + { + "id": 1857, + "x_pos": -1601.5003448301409, + "y_pos": 1259.5000262785652 + }, + { + "id": 1851, + "x_pos": -2318.5003448301404, + "y_pos": 1239.5000437976087 + }, + { + "id": 1850, + "x_pos": -2406.9104208421263, + "y_pos": 1194.7723891962883 + }, + { + "id": 1848, + "x_pos": -1713.0003448301409, + "y_pos": 1185.5000437976087 + }, + { + "id": 1847, + "x_pos": -2121.9987930945076, + "y_pos": 1134.9999824809565 + }, + { + "id": 1844, + "x_pos": -2192.9993103397187, + "y_pos": 1335.4999737214348 + }, + { + "id": 1842, + "x_pos": -1693.4998275849298, + "y_pos": 1176.500035038087 + }, + { + "id": 1839, + "x_pos": -2162.0006896602813, + "y_pos": 1647.9999824809565 + }, + { + "id": 1838, + "x_pos": -2468.9996551698596, + "y_pos": 1419 + }, + { + "id": 1837, + "x_pos": -2126.00017241507, + "y_pos": 707.4999649619131 + }, + { + "id": 1836, + "x_pos": -2359.388696543263, + "y_pos": 1266.272065093984 + }, + { + "id": 1835, + "x_pos": -2369.0008620753515, + "y_pos": 1107.0000875952173 + }, + { + "id": 1832, + "x_pos": -1572.4996551698596, + "y_pos": 1060.5 + }, + { + "id": 1831, + "x_pos": -1685.9998275849298, + "y_pos": 936.4999562023913 + }, + { + "id": 1830, + "x_pos": -1920.499482754789, + "y_pos": 841.0000350380869 + }, + { + "id": 1828, + "x_pos": -2427.00017241507, + "y_pos": 1438.5000437976087 + }, + { + "id": 1827, + "x_pos": -2383, + "y_pos": 1334.0000175190435 + }, + { + "id": 1814, + "x_pos": -2099.00017241507, + "y_pos": 1668.5000175190435 + }, + { + "id": 1811, + "x_pos": -2021.000517245211, + "y_pos": 1632 + }, + { + "id": 1810, + "x_pos": -2047.9993103397187, + "y_pos": 1639.4999299238261 + }, + { + "id": 1808, + "x_pos": -1925.5, + "y_pos": 1722.5000087595217 + }, + { + "id": 1806, + "x_pos": -1884.4989655095778, + "y_pos": 1735.5000262785652 + }, + { + "id": 1803, + "x_pos": -1420.000517245211, + "y_pos": 1361.5000175190435 + }, + { + "id": 1801, + "x_pos": -1267.5, + "y_pos": 1543.9999912404783 + }, + { + "id": 1797, + "x_pos": -1405, + "y_pos": 1666.000035038087 + }, + { + "id": 1793, + "x_pos": -2311, + "y_pos": 1529.5000262785652 + }, + { + "id": 1790, + "x_pos": -2519.499988848318, + "y_pos": 1543.9980601357906 + }, + { + "id": 1789, + "x_pos": -2492.999966544953, + "y_pos": 1562.5067895247334 + }, + { + "id": 1788, + "x_pos": -2531.500011151682, + "y_pos": 1559.4995150339478 + }, + { + "id": 1787, + "x_pos": -2518.500005575841, + "y_pos": 1587.4966052376335 + }, + { + "id": 1786, + "x_pos": -2605.500011151682, + "y_pos": 1516.0004849660522 + }, + { + "id": 1784, + "x_pos": -2652.502609362276, + "y_pos": 1613.4979013426282 + }, + { + "id": 1783, + "x_pos": -2580.500011151682, + "y_pos": 1673.0014548981571 + }, + { + "id": 1782, + "x_pos": -2607.9999832724766, + "y_pos": 1675.9980601357906 + }, + { + "id": 1781, + "x_pos": -2264.9998275849293, + "y_pos": 1742.000035038087 + }, + { + "id": 1780, + "x_pos": -2266.5002609362277, + "y_pos": 1749.9994753356568 + }, + { + "id": 1778, + "x_pos": -2398.999482754789, + "y_pos": 1785.5000262785652 + }, + { + "id": 1775, + "x_pos": -2317.5, + "y_pos": 1890.5000262785652 + }, + { + "id": 1773, + "x_pos": -2414.9991379246485, + "y_pos": 2009.0000262785652 + }, + { + "id": 1772, + "x_pos": -2298.4993103397187, + "y_pos": 2013.5000262785652 + }, + { + "id": 1771, + "x_pos": -2220.4993103397187, + "y_pos": 2007.4999912404783 + }, + { + "id": 1652, + "x_pos": -1398.4104770449107, + "y_pos": 961.9508968089476 + }, + { + "id": 1651, + "x_pos": -1366.9310715982642, + "y_pos": 945.8987166198849 + }, + { + "id": 1632, + "x_pos": -1506.5, + "y_pos": 911.5 + }, + { + "id": 1631, + "x_pos": -1235.5, + "y_pos": 902 + }, + { + "id": 1629, + "x_pos": -967.9968536099041, + "y_pos": 734.0021298036354 + }, + { + "id": 1628, + "x_pos": -1353.5, + "y_pos": 862.5 + }, + { + "id": 1623, + "x_pos": -1360, + "y_pos": 858 + }, + { + "id": 1618, + "x_pos": -1471.9988558581472, + "y_pos": 898.5031947054526 + }, + { + "id": 1613, + "x_pos": -970, + "y_pos": -286.2348127547448 + }, + { + "id": 1606, + "x_pos": -1285.904327282451, + "y_pos": 527.3787497108051 + }, + { + "id": 1596, + "x_pos": -1146.5, + "y_pos": -91.74156433948974 + }, + { + "id": 1595, + "x_pos": -1140.5, + "y_pos": -84.66879725946205 + }, + { + "id": 1592, + "x_pos": -1217.5, + "y_pos": -139.81358124343433 + }, + { + "id": 1589, + "x_pos": -567.4988558581472, + "y_pos": 736.5042596072703 + }, + { + "id": 1573, + "x_pos": -1282.5, + "y_pos": 838 + }, + { + "id": 1567, + "x_pos": -1335, + "y_pos": 887 + }, + { + "id": 1551, + "x_pos": -769.5, + "y_pos": -253.2175587048414 + }, + { + "id": 1548, + "x_pos": 762.6372938674785, + "y_pos": 515.2491435668098 + }, + { + "id": 1545, + "x_pos": -1513.0001430177317, + "y_pos": 862.0029284799984 + }, + { + "id": 1541, + "x_pos": -795, + "y_pos": -92.23256222649661 + }, + { + "id": 1538, + "x_pos": -810.5, + "y_pos": -77.68680148544831 + }, + { + "id": 1537, + "x_pos": -1174.3937439703109, + "y_pos": 944.9035086780641 + }, + { + "id": 1533, + "x_pos": -895, + "y_pos": -124.19955447885513 + }, + { + "id": 1532, + "x_pos": -1077, + "y_pos": 876 + }, + { + "id": 1530, + "x_pos": -778, + "y_pos": -95.17029761162757 + }, + { + "id": 1525, + "x_pos": -882.5, + "y_pos": 776 + }, + { + "id": 1520, + "x_pos": -1169.896747342675, + "y_pos": 695.7743893326801 + }, + { + "id": 1519, + "x_pos": -1017.3925998284581, + "y_pos": 685.8651722126306 + }, + { + "id": 1516, + "x_pos": -833.9977117162939, + "y_pos": 638.0234278399871 + }, + { + "id": 1510, + "x_pos": -886.9994279290736, + "y_pos": 684.0047920581792 + }, + { + "id": 1509, + "x_pos": -1139.4126223108851, + "y_pos": 801.4083007362433 + }, + { + "id": 1506, + "x_pos": -988.4141955059331, + "y_pos": 1187.431994801685 + }, + { + "id": 1502, + "x_pos": -1149.89102663341, + "y_pos": 964.9176186271475 + }, + { + "id": 1499, + "x_pos": -1607.9423699990625, + "y_pos": 668.9349232816835 + }, + { + "id": 1495, + "x_pos": -1064.9998569822683, + "y_pos": 620.0018635781807 + }, + { + "id": 1492, + "x_pos": -1010.9164837896387, + "y_pos": 1385.9391828889538 + }, + { + "id": 1491, + "x_pos": -1026.5, + "y_pos": 842.0034609309073 + }, + { + "id": 1485, + "x_pos": -926, + "y_pos": 642 + }, + { + "id": 1484, + "x_pos": -921.0074369220442, + "y_pos": 736.0106490181761 + }, + { + "id": 1475, + "x_pos": -1276, + "y_pos": 824.5 + }, + { + "id": 1474, + "x_pos": -762, + "y_pos": 556.5 + }, + { + "id": 1473, + "x_pos": -806, + "y_pos": 583 + }, + { + "id": 1469, + "x_pos": -1069.4995709468053, + "y_pos": 611.5026622545438 + }, + { + "id": 1468, + "x_pos": -720.5002860354634, + "y_pos": 1082.0023960290896 + }, + { + "id": 1465, + "x_pos": -1438.392599828458, + "y_pos": 592.8638410853587 + }, + { + "id": 1463, + "x_pos": -789.5, + "y_pos": 770.5 + }, + { + "id": 1459, + "x_pos": -1324.5, + "y_pos": 601 + }, + { + "id": 1441, + "x_pos": -975.4998569822683, + "y_pos": 1378.0023960290896 + }, + { + "id": 1425, + "x_pos": -1126.5, + "y_pos": 1442.5 + }, + { + "id": 1420, + "x_pos": -510, + "y_pos": 1646.310275280694 + }, + { + "id": 1403, + "x_pos": -547, + "y_pos": 1630.2201211772494 + }, + { + "id": 1391, + "x_pos": -1193, + "y_pos": -323.75056645248264 + }, + { + "id": 1371, + "x_pos": -1342.9182000024184, + "y_pos": 619.9359881835012 + }, + { + "id": 1305, + "x_pos": -974, + "y_pos": 1599.3373215117276 + }, + { + "id": 1298, + "x_pos": -953, + "y_pos": 1676.400429384139 + }, + { + "id": 1296, + "x_pos": -1018, + "y_pos": -196.34283811066211 + }, + { + "id": 1295, + "x_pos": 833.2138278675711, + "y_pos": 349.2601560298672 + }, + { + "id": 1294, + "x_pos": -1029.4284972790952, + "y_pos": 994.9080345107891 + }, + { + "id": 1285, + "x_pos": 750.1110637174434, + "y_pos": 357.7620993355895 + }, + { + "id": 1272, + "x_pos": -1210, + "y_pos": -305.1777993724552 + }, + { + "id": 1269, + "x_pos": -1628.493999400178, + "y_pos": 582.9735259725717 + }, + { + "id": 1259, + "x_pos": -968.8956032008218, + "y_pos": 1143.4399815653169 + }, + { + "id": 1246, + "x_pos": -465, + "y_pos": 1477.1682825677685 + }, + { + "id": 1243, + "x_pos": -1143, + "y_pos": -253.2760724392965 + }, + { + "id": 1242, + "x_pos": -514, + "y_pos": 1225.040939896653 + }, + { + "id": 1237, + "x_pos": -1221.5, + "y_pos": -375.86909427355863 + }, + { + "id": 1231, + "x_pos": 737.583465037841, + "y_pos": 324.73898904533416 + }, + { + "id": 1229, + "x_pos": -711, + "y_pos": 1090.0005324509088 + }, + { + "id": 1226, + "x_pos": -749, + "y_pos": -266.1695474355447 + }, + { + "id": 1210, + "x_pos": -1100.5, + "y_pos": 1463.0031947054526 + }, + { + "id": 1207, + "x_pos": -917, + "y_pos": 1483.08038231691 + }, + { + "id": 1201, + "x_pos": 785.1827109504266, + "y_pos": 342.2133948469159 + }, + { + "id": 1200, + "x_pos": -1068, + "y_pos": 1606.324925322504 + }, + { + "id": 1192, + "x_pos": -795, + "y_pos": 1081.5 + }, + { + "id": 1191, + "x_pos": -877, + "y_pos": 1718.3925409000876 + }, + { + "id": 1185, + "x_pos": 820, + "y_pos": 200.5 + }, + { + "id": 1159, + "x_pos": 847, + "y_pos": 256 + }, + { + "id": 1154, + "x_pos": -1126, + "y_pos": -349.28882543270333 + }, + { + "id": 1139, + "x_pos": 836.5, + "y_pos": 298 + }, + { + "id": 1133, + "x_pos": -1552.4565287544929, + "y_pos": 282.9567537689445 + }, + { + "id": 1131, + "x_pos": -798.5, + "y_pos": -284.7055558875172 + }, + { + "id": 1127, + "x_pos": -904, + "y_pos": -231.131288455324 + }, + { + "id": 1124, + "x_pos": -1471.5, + "y_pos": 192.5 + }, + { + "id": 1122, + "x_pos": 962.5, + "y_pos": 164 + }, + { + "id": 1111, + "x_pos": 525.0529012108436, + "y_pos": 608.7351373302913 + }, + { + "id": 1110, + "x_pos": 776.0953256274224, + "y_pos": 565.784509314019 + }, + { + "id": 1107, + "x_pos": -889, + "y_pos": 1546.4071909418972 + }, + { + "id": 1105, + "x_pos": -877, + "y_pos": -162.83870450136556 + }, + { + "id": 1104, + "x_pos": -885, + "y_pos": -136.73931381124135 + }, + { + "id": 1099, + "x_pos": -1059, + "y_pos": 1571.2854829022467 + }, + { + "id": 1090, + "x_pos": -518, + "y_pos": 1709.2606905237994 + }, + { + "id": 1068, + "x_pos": -179, + "y_pos": 1711.5 + }, + { + "id": 1066, + "x_pos": -168, + "y_pos": 1708.5 + }, + { + "id": 1063, + "x_pos": -1131, + "y_pos": 2052.269705934144 + }, + { + "id": 1054, + "x_pos": 787, + "y_pos": 147.5 + }, + { + "id": 1048, + "x_pos": 670, + "y_pos": 254 + }, + { + "id": 1046, + "x_pos": 632.0271272373302, + "y_pos": 480.3366825450503 + }, + { + "id": 1043, + "x_pos": -336, + "y_pos": -316.48087050988966 + }, + { + "id": 1039, + "x_pos": -1021, + "y_pos": 2051.3767639319844 + }, + { + "id": 1038, + "x_pos": -667.5, + "y_pos": -325.6110337010896 + }, + { + "id": 1031, + "x_pos": -814.5, + "y_pos": -141.40135184511723 + }, + { + "id": 1029, + "x_pos": -832, + "y_pos": 2146.5 + }, + { + "id": 1026, + "x_pos": -842.5, + "y_pos": -307.1425410965653 + }, + { + "id": 1016, + "x_pos": -1103, + "y_pos": 1774.2257558087144 + }, + { + "id": 1015, + "x_pos": 603.4996888308287, + "y_pos": 620.4998481779776 + }, + { + "id": 1014, + "x_pos": -689, + "y_pos": -289.6695474355447 + }, + { + "id": 1011, + "x_pos": -691, + "y_pos": -324.8150815956001 + }, + { + "id": 1009, + "x_pos": -1159, + "y_pos": 771.5 + }, + { + "id": 1004, + "x_pos": 447.0615685647681, + "y_pos": 520.1717591100451 + }, + { + "id": 996, + "x_pos": -941, + "y_pos": -302.14929268131027 + }, + { + "id": 995, + "x_pos": 437.0697797421708, + "y_pos": 647.710626416384 + }, + { + "id": 990, + "x_pos": -816, + "y_pos": 2035.3192906910385 + }, + { + "id": 973, + "x_pos": -726, + "y_pos": -190.61553475758615 + }, + { + "id": 966, + "x_pos": -662, + "y_pos": 2064.208851914319 + }, + { + "id": 963, + "x_pos": -238, + "y_pos": -349.8255840607585 + }, + { + "id": 958, + "x_pos": 457.6693306760544, + "y_pos": 662.699275398817 + }, + { + "id": 955, + "x_pos": 1002, + "y_pos": 31 + }, + { + "id": 954, + "x_pos": -604, + "y_pos": 2123.3564792587094 + }, + { + "id": 948, + "x_pos": 520.5, + "y_pos": -210 + }, + { + "id": 947, + "x_pos": 414.99982588062994, + "y_pos": 494 + }, + { + "id": 943, + "x_pos": -922.5, + "y_pos": -378.82333353251033 + }, + { + "id": 936, + "x_pos": 604.5, + "y_pos": -370.5 + }, + { + "id": 926, + "x_pos": -960.5, + "y_pos": -400.39910131686884 + }, + { + "id": 923, + "x_pos": 685, + "y_pos": -410.5 + }, + { + "id": 920, + "x_pos": -934, + "y_pos": -399.23331240257926 + }, + { + "id": 919, + "x_pos": -438.5, + "y_pos": 60.28019076691044 + }, + { + "id": 911, + "x_pos": 630, + "y_pos": -411 + }, + { + "id": 906, + "x_pos": 610.5513045930147, + "y_pos": 841.7347871743787 + }, + { + "id": 892, + "x_pos": 912.5, + "y_pos": -49.5 + }, + { + "id": 889, + "x_pos": 647, + "y_pos": -130 + }, + { + "id": 887, + "x_pos": -558.5, + "y_pos": -73.23781345907582 + }, + { + "id": 881, + "x_pos": 608.5, + "y_pos": -303.5 + }, + { + "id": 880, + "x_pos": 659.5, + "y_pos": -158.5 + }, + { + "id": 866, + "x_pos": -1072, + "y_pos": 2069.288863681126 + }, + { + "id": 863, + "x_pos": 655, + "y_pos": -365 + }, + { + "id": 861, + "x_pos": 574, + "y_pos": -361.5 + }, + { + "id": 860, + "x_pos": -783.5, + "y_pos": -380.2873250805378 + }, + { + "id": 849, + "x_pos": 807, + "y_pos": -216 + }, + { + "id": 848, + "x_pos": 418.5, + "y_pos": -207 + }, + { + "id": 847, + "x_pos": -793, + "y_pos": -350.66054532255157 + }, + { + "id": 842, + "x_pos": 546.5, + "y_pos": -359.5 + }, + { + "id": 840, + "x_pos": -928, + "y_pos": -425.73931381124135 + }, + { + "id": 837, + "x_pos": 1060.5, + "y_pos": -169.5 + }, + { + "id": 835, + "x_pos": 469.5, + "y_pos": -343 + }, + { + "id": 831, + "x_pos": 413.5, + "y_pos": -276 + }, + { + "id": 824, + "x_pos": 725, + "y_pos": -332 + }, + { + "id": 803, + "x_pos": 381, + "y_pos": -204.5 + }, + { + "id": 802, + "x_pos": -839, + "y_pos": -410.1545439138895 + }, + { + "id": 794, + "x_pos": 534, + "y_pos": 716.4990890678646 + }, + { + "id": 793, + "x_pos": 426, + "y_pos": -410.5 + }, + { + "id": 792, + "x_pos": 532, + "y_pos": -67.5 + }, + { + "id": 787, + "x_pos": 659, + "y_pos": -495 + }, + { + "id": 783, + "x_pos": 425.5, + "y_pos": -429 + }, + { + "id": 782, + "x_pos": 489, + "y_pos": -141.5 + }, + { + "id": 779, + "x_pos": 370, + "y_pos": -371.5 + }, + { + "id": 778, + "x_pos": 578.6486982805382, + "y_pos": 647.2459921635932 + }, + { + "id": 777, + "x_pos": -1399.5773867267867, + "y_pos": 3024.783612201939 + }, + { + "id": 776, + "x_pos": 1050, + "y_pos": -56 + }, + { + "id": 770, + "x_pos": 406, + "y_pos": -437 + }, + { + "id": 763, + "x_pos": 935.6788059310129, + "y_pos": 643.776105572108 + }, + { + "id": 760, + "x_pos": 353, + "y_pos": -166.5 + }, + { + "id": 752, + "x_pos": 385.5, + "y_pos": -500.5 + }, + { + "id": 750, + "x_pos": 446, + "y_pos": -66 + }, + { + "id": 748, + "x_pos": 743, + "y_pos": -491 + }, + { + "id": 744, + "x_pos": 829.0987469513402, + "y_pos": 829.7330363948136 + }, + { + "id": 743, + "x_pos": 819, + "y_pos": -468 + }, + { + "id": 741, + "x_pos": 477.5, + "y_pos": 13.5 + }, + { + "id": 737, + "x_pos": -785, + "y_pos": 2204.313656059573 + }, + { + "id": 736, + "x_pos": 700.5298642964644, + "y_pos": 867.6941690884751 + }, + { + "id": 726, + "x_pos": 1125.5, + "y_pos": -521.5 + }, + { + "id": 724, + "x_pos": 346, + "y_pos": 7 + }, + { + "id": 720, + "x_pos": 860.6833332887691, + "y_pos": 858.6821195102666 + }, + { + "id": 716, + "x_pos": 352, + "y_pos": 59 + }, + { + "id": 709, + "x_pos": -904, + "y_pos": 2227.276467491902 + }, + { + "id": 699, + "x_pos": -850.5, + "y_pos": -634.8278345890069 + }, + { + "id": 687, + "x_pos": -835, + "y_pos": 2263.2787213444885 + }, + { + "id": 677, + "x_pos": 597.5, + "y_pos": -523.5 + }, + { + "id": 676, + "x_pos": -1163.4998907555064, + "y_pos": 2792.999759086735 + }, + { + "id": 673, + "x_pos": 881.7405884163154, + "y_pos": 764.7262997188341 + }, + { + "id": 672, + "x_pos": -949, + "y_pos": 2180.2235019561285 + }, + { + "id": 666, + "x_pos": -566.5, + "y_pos": -470.86459321706207 + }, + { + "id": 663, + "x_pos": 374, + "y_pos": -2.5 + }, + { + "id": 653, + "x_pos": 812.4996888308287, + "y_pos": 756.4998481779776 + }, + { + "id": 647, + "x_pos": 903.222851773543, + "y_pos": 769.7091438302841 + }, + { + "id": 644, + "x_pos": -774, + "y_pos": -575.1785495485378 + }, + { + "id": 637, + "x_pos": 646.5, + "y_pos": -240 + }, + { + "id": 634, + "x_pos": -1226.5671177444078, + "y_pos": 2911.2628936611472 + }, + { + "id": 632, + "x_pos": -315.5, + "y_pos": -154.9381104731724 + }, + { + "id": 625, + "x_pos": 870, + "y_pos": -587 + }, + { + "id": 609, + "x_pos": -354, + "y_pos": -44.79107596095173 + }, + { + "id": 606, + "x_pos": -661.5, + "y_pos": -1.2040555353516993 + }, + { + "id": 600, + "x_pos": -553, + "y_pos": -51.683050605034396 + }, + { + "id": 593, + "x_pos": -1232.595630557183, + "y_pos": 2909.288550923872 + }, + { + "id": 586, + "x_pos": 1043.5, + "y_pos": -526 + }, + { + "id": 578, + "x_pos": 1092, + "y_pos": -553.5 + }, + { + "id": 577, + "x_pos": 451, + "y_pos": -225 + }, + { + "id": 575, + "x_pos": 584, + "y_pos": 64.5 + }, + { + "id": 565, + "x_pos": 570.5, + "y_pos": 218 + }, + { + "id": 564, + "x_pos": 517.5, + "y_pos": 191 + }, + { + "id": 556, + "x_pos": -728, + "y_pos": 2550.291117533712 + }, + { + "id": 555, + "x_pos": -359, + "y_pos": -22.835336349834506 + }, + { + "id": 551, + "x_pos": -1151.0978154470508, + "y_pos": 2880.778553023374 + }, + { + "id": 547, + "x_pos": -658.5, + "y_pos": -28.312080891269034 + }, + { + "id": 545, + "x_pos": -184, + "y_pos": -168.8278345890069 + }, + { + "id": 544, + "x_pos": 933, + "y_pos": -500.5 + }, + { + "id": 539, + "x_pos": 1000, + "y_pos": -620.5 + }, + { + "id": 527, + "x_pos": -1705.0592521408835, + "y_pos": 2817.294453298865 + }, + { + "id": 517, + "x_pos": 1099, + "y_pos": -554 + }, + { + "id": 514, + "x_pos": -1299.5511680483723, + "y_pos": 3004.285298594794 + }, + { + "id": 509, + "x_pos": -1556.0510588038787, + "y_pos": 2942.271927908586 + }, + { + "id": 500, + "x_pos": -1664.0730169470507, + "y_pos": 2951.782769005512 + }, + { + "id": 497, + "x_pos": -1638.5811010395619, + "y_pos": 2976.7778302835786 + }, + { + "id": 494, + "x_pos": -278.5, + "y_pos": -13.161295498634445 + }, + { + "id": 484, + "x_pos": -1620.0401343545395, + "y_pos": 3056.8122808804765 + }, + { + "id": 481, + "x_pos": -1509.5737816585047, + "y_pos": 3072.2985488243703 + }, + { + "id": 465, + "x_pos": -261, + "y_pos": 2437.331686880262 + }, + { + "id": 464, + "x_pos": -327, + "y_pos": 2442.3226714699176 + }, + { + "id": 450, + "x_pos": 789.7237852810567, + "y_pos": 1057.6933543399368 + }, + { + "id": 442, + "x_pos": 766.5957818039451, + "y_pos": 1028.7305853034231 + }, + { + "id": 438, + "x_pos": -133, + "y_pos": 2630.063478422514 + }, + { + "id": 428, + "x_pos": 927.9993776616575, + "y_pos": 969.5 + }, + { + "id": 426, + "x_pos": 1026.2592585666016, + "y_pos": 826.7149130671414 + }, + { + "id": 424, + "x_pos": 902.0015558458572, + "y_pos": 1071.5001518220224 + }, + { + "id": 423, + "x_pos": 973.7446336155435, + "y_pos": 1075.206259211855 + }, + { + "id": 419, + "x_pos": -1087.0794623721608, + "y_pos": 2948.2822871789813 + }, + { + "id": 418, + "x_pos": -1079.5811010395619, + "y_pos": 2941.2806007861263 + }, + { + "id": 417, + "x_pos": -1038.5888573985926, + "y_pos": 2969.2845758549993 + }, + { + "id": 415, + "x_pos": 953.613116511794, + "y_pos": 1020.2333865507267 + }, + { + "id": 412, + "x_pos": -965.0930086893418, + "y_pos": 2955.2784325667417 + }, + { + "id": 411, + "x_pos": -981.1014205153328, + "y_pos": 3001.2922850794803 + }, + { + "id": 410, + "x_pos": -893.0878741981523, + "y_pos": 3052.2824076356137 + }, + { + "id": 408, + "x_pos": -846.0981431805312, + "y_pos": 3016.2737347580733 + }, + { + "id": 405, + "x_pos": 1100.6557690166346, + "y_pos": 998.7599984001117 + }, + { + "id": 404, + "x_pos": -789.4997815110132, + "y_pos": 2986.498795433675 + }, + { + "id": 402, + "x_pos": 1095.5868863617588, + "y_pos": 911.6987211153432 + }, + { + "id": 401, + "x_pos": -775, + "y_pos": 2980.0001204566324 + }, + { + "id": 396, + "x_pos": 1140.0978345982949, + "y_pos": 910.7337367066393 + }, + { + "id": 391, + "x_pos": -1414.062420231192, + "y_pos": 3225.7837326585714 + }, + { + "id": 390, + "x_pos": -1418.5614370307512, + "y_pos": 3235.2860213345893 + }, + { + "id": 387, + "x_pos": -1454.0537899162136, + "y_pos": 3237.7826485488795 + }, + { + "id": 386, + "x_pos": -1468.0507310703988, + "y_pos": 3205.7749393243985 + }, + { + "id": 384, + "x_pos": -1572.0798993501344, + "y_pos": 3188.7575935693176 + }, + { + "id": 383, + "x_pos": 1234.133188278778, + "y_pos": 834.210626416384 + }, + { + "id": 364, + "x_pos": -1607.0722522355973, + "y_pos": 3302.785057681529 + }, + { + "id": 361, + "x_pos": -1834.060781563791, + "y_pos": 3370.3045716559955 + }, + { + "id": 357, + "x_pos": 751.5889391561095, + "y_pos": 1013.7200806260339 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/35cf41aad7620ce6d5dc516defb967f7_7806440070871726330.png" + }, + "46": { + "name": "Luxurious\u00a0Chest", + "clear_name": "LuxuriousChest", + "points": [ + { + "id": 24963, + "x_pos": -2599, + "y_pos": 3119 + }, + { + "id": 24962, + "x_pos": -2634.3333435058594, + "y_pos": 2798.6666564941406 + }, + { + "id": 24961, + "x_pos": -2510, + "y_pos": 3222 + }, + { + "id": 23249, + "x_pos": 3710, + "y_pos": 4809 + }, + { + "id": 19257, + "x_pos": 2063, + "y_pos": 8328 + }, + { + "id": 19256, + "x_pos": 2019.5, + "y_pos": 8436 + }, + { + "id": 18568, + "x_pos": 1991.5, + "y_pos": 8285 + }, + { + "id": 17346, + "x_pos": 3518.5, + "y_pos": 6987.5 + }, + { + "id": 17342, + "x_pos": 3515.5, + "y_pos": 7010.5 + }, + { + "id": 16303, + "x_pos": 3414.5, + "y_pos": 7011 + }, + { + "id": 16136, + "x_pos": 3030.5, + "y_pos": 6754.5 + }, + { + "id": 15986, + "x_pos": 403.5, + "y_pos": 5862.5 + }, + { + "id": 14468, + "x_pos": 1652, + "y_pos": 6464.5 + }, + { + "id": 14007, + "x_pos": 3418.5, + "y_pos": 5250 + }, + { + "id": 13915, + "x_pos": 3640, + "y_pos": 4798 + }, + { + "id": 13885, + "x_pos": 1159.5, + "y_pos": 6107 + }, + { + "id": 13794, + "x_pos": 3312, + "y_pos": 5133 + }, + { + "id": 13792, + "x_pos": 3499.5, + "y_pos": 4670.5 + }, + { + "id": 13760, + "x_pos": 2344.5, + "y_pos": 6122.5 + }, + { + "id": 13506, + "x_pos": 2223, + "y_pos": 5716 + }, + { + "id": 13505, + "x_pos": 3137.5, + "y_pos": 5569.5 + }, + { + "id": 13503, + "x_pos": 2520, + "y_pos": 5625 + }, + { + "id": 13380, + "x_pos": 3531, + "y_pos": 5187.5 + }, + { + "id": 12670, + "x_pos": 3685.500030517578, + "y_pos": 4862.805706485153 + }, + { + "id": 12668, + "x_pos": 2410, + "y_pos": 6218 + }, + { + "id": 12665, + "x_pos": 1637, + "y_pos": 5972.5 + }, + { + "id": 10878, + "x_pos": 417, + "y_pos": 2711 + }, + { + "id": 7439, + "x_pos": 404.06320526134004, + "y_pos": 1384.1766587973098 + }, + { + "id": 6478, + "x_pos": -60.5, + "y_pos": 1130.5 + }, + { + "id": 6474, + "x_pos": -2033.99891731964, + "y_pos": 3169.0040252156696 + }, + { + "id": 6471, + "x_pos": 277, + "y_pos": 1339 + }, + { + "id": 6467, + "x_pos": 429, + "y_pos": 990.5 + }, + { + "id": 6463, + "x_pos": -58.5, + "y_pos": 1388.5 + }, + { + "id": 6461, + "x_pos": -2146.807243235524, + "y_pos": 2160.5801018838156 + }, + { + "id": 6457, + "x_pos": -2151.3447039759903, + "y_pos": 2165.4762513195446 + }, + { + "id": 6454, + "x_pos": -2147.500433072144, + "y_pos": 2173.4983899137324 + }, + { + "id": 6451, + "x_pos": 2.5, + "y_pos": 1934.0016100862676 + }, + { + "id": 6438, + "x_pos": -1687.999783463928, + "y_pos": 2499.504830258803 + }, + { + "id": 6432, + "x_pos": 76, + "y_pos": 1284 + }, + { + "id": 2186, + "x_pos": -983, + "y_pos": 1889 + }, + { + "id": 2144, + "x_pos": -1523, + "y_pos": 2309 + }, + { + "id": 2139, + "x_pos": -1898, + "y_pos": 2857 + }, + { + "id": 2135, + "x_pos": -1492, + "y_pos": 193.5 + }, + { + "id": 2124, + "x_pos": -1736.5, + "y_pos": 1986 + }, + { + "id": 2123, + "x_pos": 1488, + "y_pos": -342 + }, + { + "id": 2122, + "x_pos": 678, + "y_pos": -631 + }, + { + "id": 2120, + "x_pos": -1257, + "y_pos": 626.5 + }, + { + "id": 2119, + "x_pos": -95, + "y_pos": -48.5 + }, + { + "id": 2118, + "x_pos": 5.5, + "y_pos": 77 + }, + { + "id": 2115, + "x_pos": -560, + "y_pos": 2967 + }, + { + "id": 2109, + "x_pos": -1762, + "y_pos": 2494 + }, + { + "id": 2108, + "x_pos": -1669.5, + "y_pos": 2478 + }, + { + "id": 2020, + "x_pos": -2134.5007594936706, + "y_pos": 2121.501067429822 + }, + { + "id": 2014, + "x_pos": -2180.4994936708863, + "y_pos": 1493.4997865140358 + }, + { + "id": 1580, + "x_pos": -878, + "y_pos": -330.55852137529655 + }, + { + "id": 799, + "x_pos": -1071.0001092444936, + "y_pos": 2493.500843196428 + }, + { + "id": 429, + "x_pos": 824.0001741193701, + "y_pos": 950.0002745236361 + }, + { + "id": 406, + "x_pos": -831.5003277334799, + "y_pos": 3037.9995181734703 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/3c110f9d0de63330f592ba922952d776_784803524970068534.png" + }, + "2": { + "name": "Statue of The Seven", + "clear_name": "StatueofTheSeven", + "points": [ + { + "id": 24908, + "x_pos": -2749.550702054338, + "y_pos": 3004.2079660674644 + }, + { + "id": 18584, + "x_pos": 2522, + "y_pos": 8454 + }, + { + "id": 16022, + "x_pos": 3288.5, + "y_pos": 6761 + }, + { + "id": 15938, + "x_pos": -169, + "y_pos": 6160 + }, + { + "id": 12749, + "x_pos": 1476.5, + "y_pos": 6029.5 + }, + { + "id": 12745, + "x_pos": 2491.5, + "y_pos": 5860.5 + }, + { + "id": 12740, + "x_pos": 3160.5, + "y_pos": 4756 + }, + { + "id": 6537, + "x_pos": 278, + "y_pos": 1156 + }, + { + "id": 107, + "x_pos": -1732.5, + "y_pos": 2680 + }, + { + "id": 97, + "x_pos": -998.5, + "y_pos": 2347 + }, + { + "id": 41, + "x_pos": -2228, + "y_pos": 1572.5 + }, + { + "id": 35, + "x_pos": -489.5, + "y_pos": 1706.5 + }, + { + "id": 33, + "x_pos": -1004, + "y_pos": 1056 + }, + { + "id": 25, + "x_pos": -925, + "y_pos": -306 + }, + { + "id": 19, + "x_pos": -173.5, + "y_pos": 475.5 + }, + { + "id": 13, + "x_pos": 516.5, + "y_pos": 404 + }, + { + "id": 12, + "x_pos": 577, + "y_pos": -233 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220401/c59585d1fabc9c22ad3fcf94e1622aa8_357413506633071859.png" + }, + "154": { + "name": "Domain", + "clear_name": "Domain", + "points": [ + { + "id": 24907, + "x_pos": -2646.6241067408714, + "y_pos": 2798.381964769672 + }, + { + "id": 24906, + "x_pos": 3653.5, + "y_pos": 4803.5 + }, + { + "id": 20369, + "x_pos": 3465, + "y_pos": 6612.5 + }, + { + "id": 18667, + "x_pos": 1796.5, + "y_pos": 7294.000030517578 + }, + { + "id": 18048, + "x_pos": -2511, + "y_pos": 1701 + }, + { + "id": 17223, + "x_pos": 3815.5, + "y_pos": 5677.000030517578 + }, + { + "id": 15949, + "x_pos": 380.5, + "y_pos": 5935 + }, + { + "id": 12794, + "x_pos": 1481, + "y_pos": 6328 + }, + { + "id": 12791, + "x_pos": 1628.5, + "y_pos": 6093 + }, + { + "id": 12788, + "x_pos": 2477, + "y_pos": 6202.5 + }, + { + "id": 12784, + "x_pos": 3187, + "y_pos": 5534.5 + }, + { + "id": 12781, + "x_pos": 3655, + "y_pos": 4732 + }, + { + "id": 12778, + "x_pos": 3721, + "y_pos": 4512 + }, + { + "id": 10009, + "x_pos": -431, + "y_pos": 859 + }, + { + "id": 9778, + "x_pos": -1275, + "y_pos": 2219 + }, + { + "id": 7220, + "x_pos": -1636.5, + "y_pos": 2896.5 + }, + { + "id": 7218, + "x_pos": -1004.5, + "y_pos": 3227 + }, + { + "id": 7215, + "x_pos": 219, + "y_pos": 2609 + }, + { + "id": 7210, + "x_pos": 1127, + "y_pos": 993 + }, + { + "id": 7206, + "x_pos": 890.5, + "y_pos": 156 + }, + { + "id": 7201, + "x_pos": 814.5, + "y_pos": -173.5 + }, + { + "id": 7190, + "x_pos": -927.5, + "y_pos": 1936.5 + }, + { + "id": 7186, + "x_pos": 690, + "y_pos": 655 + }, + { + "id": 7173, + "x_pos": -335, + "y_pos": 1600 + }, + { + "id": 7164, + "x_pos": 74.5, + "y_pos": 1286 + }, + { + "id": 7157, + "x_pos": 425.5, + "y_pos": 183.5 + }, + { + "id": 7149, + "x_pos": 143, + "y_pos": 658.5 + }, + { + "id": 7137, + "x_pos": -81, + "y_pos": 620 + }, + { + "id": 7121, + "x_pos": -1142.5, + "y_pos": 632 + }, + { + "id": 7116, + "x_pos": -1918.5, + "y_pos": 1666.5 + }, + { + "id": 7114, + "x_pos": -2174, + "y_pos": 1032 + }, + { + "id": 7111, + "x_pos": -873.5, + "y_pos": -331.5 + }, + { + "id": 7092, + "x_pos": -508.5, + "y_pos": 65 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220401/186a776c87addad503af2d730230e333_5715047075425774284.png" + }, + "219": { + "name": "Aralia Wood", + "clear_name": "AraliaWood", + "points": [ + { + "id": 24904, + "x_pos": 1753.5, + "y_pos": 8510 + }, + { + "id": 24903, + "x_pos": 1761, + "y_pos": 8514.5 + }, + { + "id": 24902, + "x_pos": 1769.25, + "y_pos": 8520.25 + }, + { + "id": 24901, + "x_pos": 1739.75, + "y_pos": 8530 + }, + { + "id": 24900, + "x_pos": 1769, + "y_pos": 8552.25 + }, + { + "id": 24899, + "x_pos": 1705.5, + "y_pos": 8544.5 + }, + { + "id": 24898, + "x_pos": 1994.5, + "y_pos": 8669.25 + }, + { + "id": 24897, + "x_pos": 1889.25, + "y_pos": 8739.25 + }, + { + "id": 24896, + "x_pos": 1883.75, + "y_pos": 8740.75 + }, + { + "id": 24895, + "x_pos": 1868, + "y_pos": 8757 + }, + { + "id": 24894, + "x_pos": 1901.5, + "y_pos": 8781.75 + }, + { + "id": 24893, + "x_pos": 1841.25, + "y_pos": 8792.75 + }, + { + "id": 24892, + "x_pos": 1834.75, + "y_pos": 8815.5 + }, + { + "id": 24891, + "x_pos": 1815.75, + "y_pos": 8773.75 + }, + { + "id": 24890, + "x_pos": 1819.25, + "y_pos": 8760.25 + }, + { + "id": 24889, + "x_pos": 1934.5, + "y_pos": 9037 + }, + { + "id": 24888, + "x_pos": 1927.25, + "y_pos": 9037.25 + }, + { + "id": 24887, + "x_pos": 1866.25, + "y_pos": 8984.5 + }, + { + "id": 24886, + "x_pos": 1850, + "y_pos": 9024 + }, + { + "id": 24885, + "x_pos": 1832.5, + "y_pos": 9044.5 + }, + { + "id": 24884, + "x_pos": 1827.5, + "y_pos": 9045.5 + }, + { + "id": 24883, + "x_pos": 1836, + "y_pos": 8998.75 + }, + { + "id": 24882, + "x_pos": 1888.5, + "y_pos": 8958 + }, + { + "id": 19766, + "x_pos": 2500.5, + "y_pos": 8451 + }, + { + "id": 19764, + "x_pos": 2537.5, + "y_pos": 8453 + }, + { + "id": 19761, + "x_pos": 2240.5, + "y_pos": 8505 + }, + { + "id": 19755, + "x_pos": 2186.5, + "y_pos": 8540 + }, + { + "id": 19754, + "x_pos": 2227.5, + "y_pos": 8541 + }, + { + "id": 19753, + "x_pos": 2205.5, + "y_pos": 8542 + }, + { + "id": 19752, + "x_pos": 2222.5, + "y_pos": 8557 + }, + { + "id": 19751, + "x_pos": 2213, + "y_pos": 8565.5 + }, + { + "id": 19749, + "x_pos": 2178.5, + "y_pos": 8564.5 + }, + { + "id": 19748, + "x_pos": 2172, + "y_pos": 8568 + }, + { + "id": 19747, + "x_pos": 2220.5, + "y_pos": 8571 + }, + { + "id": 19746, + "x_pos": 2118, + "y_pos": 8540 + }, + { + "id": 19744, + "x_pos": 2399.5, + "y_pos": 8588.5 + }, + { + "id": 19743, + "x_pos": 2386.5, + "y_pos": 8564.5 + }, + { + "id": 19742, + "x_pos": 2391.5, + "y_pos": 8594 + }, + { + "id": 19741, + "x_pos": 2408, + "y_pos": 8600.5 + }, + { + "id": 19740, + "x_pos": 2409.5, + "y_pos": 8613 + }, + { + "id": 19734, + "x_pos": 2187.5, + "y_pos": 8581 + }, + { + "id": 19732, + "x_pos": 2278, + "y_pos": 8570.5 + }, + { + "id": 19731, + "x_pos": 2427, + "y_pos": 8612.5 + }, + { + "id": 19730, + "x_pos": 2301.5, + "y_pos": 8581 + }, + { + "id": 19729, + "x_pos": 2103.5, + "y_pos": 8542.5 + }, + { + "id": 19728, + "x_pos": 2070.5, + "y_pos": 8467.5 + }, + { + "id": 19727, + "x_pos": 2060, + "y_pos": 8471.5 + }, + { + "id": 19726, + "x_pos": 2077.5, + "y_pos": 8479.5 + }, + { + "id": 19725, + "x_pos": 2041.5, + "y_pos": 8485 + }, + { + "id": 19724, + "x_pos": 2075, + "y_pos": 8498 + }, + { + "id": 19723, + "x_pos": 2024, + "y_pos": 8507 + }, + { + "id": 19722, + "x_pos": 2045.5, + "y_pos": 8529.5 + }, + { + "id": 19720, + "x_pos": 2131.5, + "y_pos": 8389 + }, + { + "id": 19718, + "x_pos": 2073, + "y_pos": 8401.5 + }, + { + "id": 19716, + "x_pos": 2078, + "y_pos": 8545.5 + }, + { + "id": 19715, + "x_pos": 2093, + "y_pos": 8546.5 + }, + { + "id": 19713, + "x_pos": 2202, + "y_pos": 8604 + }, + { + "id": 19712, + "x_pos": 2162, + "y_pos": 8598 + }, + { + "id": 19711, + "x_pos": 2107.5, + "y_pos": 8680 + }, + { + "id": 19710, + "x_pos": 2118.5, + "y_pos": 8684 + }, + { + "id": 19707, + "x_pos": 2059.5, + "y_pos": 8567.5 + }, + { + "id": 19706, + "x_pos": 2318, + "y_pos": 8588 + }, + { + "id": 19705, + "x_pos": 2283.5, + "y_pos": 8600.5 + }, + { + "id": 19703, + "x_pos": 2156.5, + "y_pos": 8614 + }, + { + "id": 19702, + "x_pos": 2252.5, + "y_pos": 8611.5 + }, + { + "id": 19701, + "x_pos": 2141, + "y_pos": 8591 + }, + { + "id": 19699, + "x_pos": 2075.5, + "y_pos": 8616.5 + }, + { + "id": 19698, + "x_pos": 2187.5, + "y_pos": 8656 + }, + { + "id": 19697, + "x_pos": 2218, + "y_pos": 8611.5 + }, + { + "id": 19696, + "x_pos": 2308, + "y_pos": 8603.5 + }, + { + "id": 19695, + "x_pos": 2480, + "y_pos": 8518.5 + }, + { + "id": 19690, + "x_pos": 2215, + "y_pos": 8543 + }, + { + "id": 19689, + "x_pos": 2179, + "y_pos": 8625 + }, + { + "id": 19688, + "x_pos": 2055, + "y_pos": 8629.5 + }, + { + "id": 19687, + "x_pos": 2034.5, + "y_pos": 8652.5 + }, + { + "id": 19686, + "x_pos": 2069.5, + "y_pos": 8673 + }, + { + "id": 19684, + "x_pos": 2024.5, + "y_pos": 8667 + }, + { + "id": 19683, + "x_pos": 2088, + "y_pos": 8702.5 + }, + { + "id": 19681, + "x_pos": 2052.5, + "y_pos": 8683 + }, + { + "id": 19680, + "x_pos": 2065.5, + "y_pos": 8793 + }, + { + "id": 18192, + "x_pos": 3662.5, + "y_pos": 5121 + }, + { + "id": 18191, + "x_pos": 3670.5, + "y_pos": 5121 + }, + { + "id": 18190, + "x_pos": 3681, + "y_pos": 5096.5 + }, + { + "id": 18189, + "x_pos": 3662, + "y_pos": 5102 + }, + { + "id": 18188, + "x_pos": 3663, + "y_pos": 5105 + }, + { + "id": 18187, + "x_pos": 3678, + "y_pos": 5099.5 + }, + { + "id": 18186, + "x_pos": 3665.5, + "y_pos": 5121 + }, + { + "id": 18185, + "x_pos": 3658.5, + "y_pos": 5106.5 + }, + { + "id": 18184, + "x_pos": 3682.5, + "y_pos": 5104 + }, + { + "id": 18183, + "x_pos": 3684, + "y_pos": 5083 + }, + { + "id": 18182, + "x_pos": 3710, + "y_pos": 5111 + }, + { + "id": 18181, + "x_pos": 3713, + "y_pos": 5126.5 + }, + { + "id": 18180, + "x_pos": 3712, + "y_pos": 5111 + }, + { + "id": 18179, + "x_pos": 3687.5, + "y_pos": 5120.5 + }, + { + "id": 18178, + "x_pos": 3710, + "y_pos": 5128.5 + }, + { + "id": 18177, + "x_pos": 3715, + "y_pos": 5128.5 + }, + { + "id": 18176, + "x_pos": 3729.5, + "y_pos": 5120.5 + }, + { + "id": 18175, + "x_pos": 3737, + "y_pos": 5117.5 + }, + { + "id": 18174, + "x_pos": 3695.5, + "y_pos": 5071 + }, + { + "id": 18173, + "x_pos": 3744.5, + "y_pos": 5104 + }, + { + "id": 18172, + "x_pos": 3747.5, + "y_pos": 5106 + }, + { + "id": 18171, + "x_pos": 3750.5, + "y_pos": 5103.5 + }, + { + "id": 18170, + "x_pos": 3756.5, + "y_pos": 5059.5 + }, + { + "id": 18169, + "x_pos": 3715.5, + "y_pos": 5029.5 + }, + { + "id": 18168, + "x_pos": 3819, + "y_pos": 4962 + }, + { + "id": 18167, + "x_pos": 3809.5, + "y_pos": 4967.5 + }, + { + "id": 18166, + "x_pos": 3695.5, + "y_pos": 4996 + }, + { + "id": 18165, + "x_pos": 3691.5, + "y_pos": 5002 + }, + { + "id": 18164, + "x_pos": 3662, + "y_pos": 5006.5 + }, + { + "id": 18163, + "x_pos": 3657, + "y_pos": 5012 + }, + { + "id": 18162, + "x_pos": 3611.5, + "y_pos": 5034 + }, + { + "id": 18161, + "x_pos": 3607.5, + "y_pos": 5025 + }, + { + "id": 18160, + "x_pos": 3582.5, + "y_pos": 5032 + }, + { + "id": 18159, + "x_pos": 3576, + "y_pos": 5040 + }, + { + "id": 18158, + "x_pos": 3537.5, + "y_pos": 5054.5 + }, + { + "id": 18157, + "x_pos": 3530, + "y_pos": 5124 + }, + { + "id": 18156, + "x_pos": 3644, + "y_pos": 4969 + }, + { + "id": 18155, + "x_pos": 3626, + "y_pos": 4961 + }, + { + "id": 18154, + "x_pos": 3627.5, + "y_pos": 4964.5 + }, + { + "id": 18153, + "x_pos": 3611, + "y_pos": 4917 + }, + { + "id": 18152, + "x_pos": 3640, + "y_pos": 4921.5 + }, + { + "id": 18151, + "x_pos": 3622, + "y_pos": 4923.5 + }, + { + "id": 18150, + "x_pos": 3534, + "y_pos": 4811 + }, + { + "id": 18149, + "x_pos": 3550.5, + "y_pos": 4834 + }, + { + "id": 18148, + "x_pos": 3536.5, + "y_pos": 4850 + }, + { + "id": 18147, + "x_pos": 3545.5, + "y_pos": 4869.5 + }, + { + "id": 18146, + "x_pos": 3549, + "y_pos": 4883.5 + }, + { + "id": 18145, + "x_pos": 3542.5, + "y_pos": 4885.5 + }, + { + "id": 18144, + "x_pos": 3549, + "y_pos": 4900.5 + }, + { + "id": 18143, + "x_pos": 3529, + "y_pos": 4906 + }, + { + "id": 18142, + "x_pos": 3492.5, + "y_pos": 4909 + }, + { + "id": 18141, + "x_pos": 3473, + "y_pos": 4919.5 + }, + { + "id": 18140, + "x_pos": 3478, + "y_pos": 4919.5 + }, + { + "id": 18139, + "x_pos": 3439.5, + "y_pos": 4924 + }, + { + "id": 18138, + "x_pos": 3448.5, + "y_pos": 4928 + }, + { + "id": 18137, + "x_pos": 3425.5, + "y_pos": 4933.5 + }, + { + "id": 18136, + "x_pos": 3425, + "y_pos": 4939 + }, + { + "id": 18135, + "x_pos": 3420.5, + "y_pos": 4948.5 + }, + { + "id": 15305, + "x_pos": 1694.5, + "y_pos": 6306.102539724499 + }, + { + "id": 15301, + "x_pos": 1728.6000061035156, + "y_pos": 6283.503167014147 + }, + { + "id": 15299, + "x_pos": 1732.1000061035156, + "y_pos": 6254.304436876397 + }, + { + "id": 15296, + "x_pos": 1709.7999877929688, + "y_pos": 6194.605691455694 + }, + { + "id": 15267, + "x_pos": 2203.8998251835783, + "y_pos": 6034.402739773062 + }, + { + "id": 15237, + "x_pos": 1708, + "y_pos": 6207.403649581511 + }, + { + "id": 15234, + "x_pos": 1668.0995839870102, + "y_pos": 6262.701809508724 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210723/e5d774d916a14823b9a4b991a625b79b_3494668997173108660.png" + }, + "161": { + "name": "Mint", + "clear_name": "Mint", + "points": [ + { + "id": 24881, + "x_pos": 3864.25, + "y_pos": 4834.5 + }, + { + "id": 24880, + "x_pos": 3803.5, + "y_pos": 4786.25 + }, + { + "id": 24879, + "x_pos": 3728.25, + "y_pos": 4753 + }, + { + "id": 24878, + "x_pos": 3679.25, + "y_pos": 4653 + }, + { + "id": 24877, + "x_pos": 3660.25, + "y_pos": 4706.75 + }, + { + "id": 24876, + "x_pos": 3494.5, + "y_pos": 4715.25 + }, + { + "id": 24875, + "x_pos": 3433, + "y_pos": 4677.25 + }, + { + "id": 24874, + "x_pos": 3475.5, + "y_pos": 4626.25 + }, + { + "id": 24873, + "x_pos": 3426.5, + "y_pos": 4615 + }, + { + "id": 24872, + "x_pos": 3486.5, + "y_pos": 4564.75 + }, + { + "id": 24871, + "x_pos": 3537.75, + "y_pos": 4538.5 + }, + { + "id": 24870, + "x_pos": 3412.25, + "y_pos": 4987.5 + }, + { + "id": 24869, + "x_pos": 3352, + "y_pos": 5001.25 + }, + { + "id": 24868, + "x_pos": 3327.25, + "y_pos": 4978.75 + }, + { + "id": 24867, + "x_pos": 3336.75, + "y_pos": 4965.75 + }, + { + "id": 24866, + "x_pos": 3399, + "y_pos": 5053.75 + }, + { + "id": 24865, + "x_pos": 3471, + "y_pos": 5071.5 + }, + { + "id": 24864, + "x_pos": 3477.25, + "y_pos": 5030.25 + }, + { + "id": 24863, + "x_pos": 3463.5, + "y_pos": 5157.75 + }, + { + "id": 24862, + "x_pos": 3479.75, + "y_pos": 5204.75 + }, + { + "id": 24861, + "x_pos": 3386, + "y_pos": 5217.75 + }, + { + "id": 24860, + "x_pos": 3441.25, + "y_pos": 5313.5 + }, + { + "id": 24859, + "x_pos": 3804.5, + "y_pos": 5763.75 + }, + { + "id": 24858, + "x_pos": 3836.5, + "y_pos": 5785 + }, + { + "id": 24857, + "x_pos": 3885.25, + "y_pos": 5764.5 + }, + { + "id": 24856, + "x_pos": 3994, + "y_pos": 5551.75 + }, + { + "id": 24855, + "x_pos": 3934.25, + "y_pos": 5552.5 + }, + { + "id": 24854, + "x_pos": 3971.25, + "y_pos": 5599 + }, + { + "id": 24853, + "x_pos": 3677.25, + "y_pos": 5579.25 + }, + { + "id": 24852, + "x_pos": 3762.75, + "y_pos": 5723.75 + }, + { + "id": 24851, + "x_pos": 2405, + "y_pos": 5391 + }, + { + "id": 24850, + "x_pos": 2869.75, + "y_pos": 5603.5 + }, + { + "id": 24849, + "x_pos": 2839.75, + "y_pos": 5562 + }, + { + "id": 24848, + "x_pos": 2833.25, + "y_pos": 5554.75 + }, + { + "id": 24847, + "x_pos": 2809.25, + "y_pos": 5514.5 + }, + { + "id": 24846, + "x_pos": 2651, + "y_pos": 5773 + }, + { + "id": 24845, + "x_pos": 2667, + "y_pos": 5855 + }, + { + "id": 24844, + "x_pos": 2522, + "y_pos": 6056 + }, + { + "id": 24843, + "x_pos": 2474.5, + "y_pos": 5913 + }, + { + "id": 24842, + "x_pos": 2430, + "y_pos": 5905 + }, + { + "id": 24841, + "x_pos": 2264, + "y_pos": 5948 + }, + { + "id": 24840, + "x_pos": 2365, + "y_pos": 5942 + }, + { + "id": 24839, + "x_pos": 2346, + "y_pos": 5945 + }, + { + "id": 24838, + "x_pos": 2243, + "y_pos": 6288 + }, + { + "id": 24837, + "x_pos": 2159, + "y_pos": 6308 + }, + { + "id": 24836, + "x_pos": 2147, + "y_pos": 6269 + }, + { + "id": 24835, + "x_pos": 2150, + "y_pos": 6211 + }, + { + "id": 24834, + "x_pos": 2215, + "y_pos": 6147 + }, + { + "id": 24833, + "x_pos": 2250, + "y_pos": 6122 + }, + { + "id": 24832, + "x_pos": 2359, + "y_pos": 6113 + }, + { + "id": 24831, + "x_pos": 2438, + "y_pos": 6125 + }, + { + "id": 24830, + "x_pos": 2393, + "y_pos": 6411 + }, + { + "id": 24829, + "x_pos": 3072, + "y_pos": 6500 + }, + { + "id": 24828, + "x_pos": 3055, + "y_pos": 6499 + }, + { + "id": 24827, + "x_pos": 3070, + "y_pos": 6493 + }, + { + "id": 24826, + "x_pos": 3358, + "y_pos": 6574 + }, + { + "id": 24825, + "x_pos": 3347, + "y_pos": 6570 + }, + { + "id": 24824, + "x_pos": 3541, + "y_pos": 7392 + }, + { + "id": 24823, + "x_pos": 3459, + "y_pos": 7407 + }, + { + "id": 24822, + "x_pos": 3448, + "y_pos": 7390 + }, + { + "id": 24821, + "x_pos": 3406, + "y_pos": 7396 + }, + { + "id": 24820, + "x_pos": 3939, + "y_pos": 7068 + }, + { + "id": 23541, + "x_pos": 100.64028453253741, + "y_pos": 6165.354188750869 + }, + { + "id": 23540, + "x_pos": 117.58463590136853, + "y_pos": 6210.7842683252 + }, + { + "id": 23539, + "x_pos": 140.58453257581914, + "y_pos": 6213.786990057837 + }, + { + "id": 23538, + "x_pos": 160.00111710099827, + "y_pos": 6205.696328258002 + }, + { + "id": 23537, + "x_pos": 175.72327547412442, + "y_pos": 6181.952577399139 + }, + { + "id": 23536, + "x_pos": 169.0844198007071, + "y_pos": 6118.839813358818 + }, + { + "id": 23535, + "x_pos": 190.61209745442738, + "y_pos": 6145.807926932379 + }, + { + "id": 23534, + "x_pos": 184.52887093213758, + "y_pos": 6177.271050662775 + }, + { + "id": 23533, + "x_pos": 220.91625208645564, + "y_pos": 6218.6446069361955 + }, + { + "id": 23532, + "x_pos": 216.11070116531664, + "y_pos": 6292.016670229688 + }, + { + "id": 23531, + "x_pos": 167.1109212936608, + "y_pos": 6285.232742503771 + }, + { + "id": 23530, + "x_pos": 96.94454949983174, + "y_pos": 6265.075570845791 + }, + { + "id": 23529, + "x_pos": 7.972735454837675, + "y_pos": 6236.104853145984 + }, + { + "id": 23528, + "x_pos": -80.5548633105227, + "y_pos": 6154.546219053338 + }, + { + "id": 23526, + "x_pos": -139.55331784224654, + "y_pos": 6203.239239077575 + }, + { + "id": 23525, + "x_pos": -227.82882209648596, + "y_pos": 6129.773940403269 + }, + { + "id": 23521, + "x_pos": 246.50132375209614, + "y_pos": 5988.393676783035 + }, + { + "id": 23514, + "x_pos": 435.1678296600094, + "y_pos": 5826.318767279612 + }, + { + "id": 23511, + "x_pos": 488.1674772765118, + "y_pos": 6094.236153071295 + }, + { + "id": 23510, + "x_pos": 456.6676187875901, + "y_pos": 6163.409968231856 + }, + { + "id": 23508, + "x_pos": 434.02886551025676, + "y_pos": 6189.655979564934 + }, + { + "id": 23507, + "x_pos": 399.1123658762335, + "y_pos": 6227.050989721767 + }, + { + "id": 23504, + "x_pos": 521.1394947194758, + "y_pos": 6318.132931133243 + }, + { + "id": 23502, + "x_pos": 483.5007477934887, + "y_pos": 6371.014207384193 + }, + { + "id": 23501, + "x_pos": 438.2509510752752, + "y_pos": 6415.554579751622 + }, + { + "id": 23498, + "x_pos": 1753.9463690054336, + "y_pos": 7126.992578622017 + }, + { + "id": 23493, + "x_pos": 1624.002941757386, + "y_pos": 7392.339316971562 + }, + { + "id": 23487, + "x_pos": 1913.279549286829, + "y_pos": 7328.714274589116 + }, + { + "id": 23485, + "x_pos": 1775.1135574893597, + "y_pos": 7282.811632281289 + }, + { + "id": 23483, + "x_pos": 1783.6134582689483, + "y_pos": 7265.8519084204545 + }, + { + "id": 23256, + "x_pos": -2052, + "y_pos": 2795.4993308390394 + }, + { + "id": 21550, + "x_pos": 1613.0000610351562, + "y_pos": 8689.828065287102 + }, + { + "id": 21549, + "x_pos": 2356.8999938964844, + "y_pos": 8568.447984429708 + }, + { + "id": 21548, + "x_pos": 2193.6000061035156, + "y_pos": 8607.440475927448 + }, + { + "id": 21547, + "x_pos": 2121, + "y_pos": 8635.80655905593 + }, + { + "id": 21546, + "x_pos": 2086.800018310547, + "y_pos": 8617.029463379726 + }, + { + "id": 21545, + "x_pos": 1836.2999877929688, + "y_pos": 8490.56503556656 + }, + { + "id": 21544, + "x_pos": 1915.1000061035156, + "y_pos": 8274.074175905407 + }, + { + "id": 21543, + "x_pos": 1825.4999694824219, + "y_pos": 8210.07241103859 + }, + { + "id": 21542, + "x_pos": 1795.2999572753906, + "y_pos": 8143.407216364927 + }, + { + "id": 21541, + "x_pos": 1814.2999877929688, + "y_pos": 8125.362530523033 + }, + { + "id": 21540, + "x_pos": 1742.0999755859375, + "y_pos": 8324.693054806572 + }, + { + "id": 21539, + "x_pos": 1731.8999938964844, + "y_pos": 8287.098318000897 + }, + { + "id": 21538, + "x_pos": 1922.6999816894531, + "y_pos": 8396.451350637355 + }, + { + "id": 21537, + "x_pos": 1945.3999938964844, + "y_pos": 8778.249891553221 + }, + { + "id": 21536, + "x_pos": 1888.3999938964844, + "y_pos": 8819.761561409941 + }, + { + "id": 21535, + "x_pos": 1692.5, + "y_pos": 8738.185186850602 + }, + { + "id": 21534, + "x_pos": 1684.9999694824219, + "y_pos": 8689.391857060558 + }, + { + "id": 21533, + "x_pos": 1686.699951171875, + "y_pos": 8650.108336961182 + }, + { + "id": 21532, + "x_pos": 1737.7000122070312, + "y_pos": 8493.902564432512 + }, + { + "id": 21531, + "x_pos": 1762.2999267578125, + "y_pos": 8469.381465304668 + }, + { + "id": 21530, + "x_pos": 2002.9999694824219, + "y_pos": 8415.393100853664 + }, + { + "id": 21529, + "x_pos": 2144.5999450683594, + "y_pos": 8517.625678025926 + }, + { + "id": 21528, + "x_pos": 2113.8999633789062, + "y_pos": 8525.44080297942 + }, + { + "id": 21527, + "x_pos": 2060.300018310547, + "y_pos": 8554.343955195107 + }, + { + "id": 21526, + "x_pos": 2126.7000122070312, + "y_pos": 8447.952563934705 + }, + { + "id": 21525, + "x_pos": 2384.1000061035156, + "y_pos": 8587.751317932158 + }, + { + "id": 21524, + "x_pos": 2257.8999633789062, + "y_pos": 8620.046846376134 + }, + { + "id": 21523, + "x_pos": 2200.999969482422, + "y_pos": 8657.258514630324 + }, + { + "id": 21522, + "x_pos": 2138.2999877929688, + "y_pos": 8711.018227310122 + }, + { + "id": 21521, + "x_pos": 2080.800018310547, + "y_pos": 8708.30568043449 + }, + { + "id": 21520, + "x_pos": 2066.300018310547, + "y_pos": 8794.988543224868 + }, + { + "id": 20243, + "x_pos": 3062.5, + "y_pos": 7016 + }, + { + "id": 20242, + "x_pos": 3020.5, + "y_pos": 7061 + }, + { + "id": 20241, + "x_pos": 3017, + "y_pos": 6920.5 + }, + { + "id": 20240, + "x_pos": 2992, + "y_pos": 6954 + }, + { + "id": 20239, + "x_pos": 2964.5, + "y_pos": 6954 + }, + { + "id": 20238, + "x_pos": 2986, + "y_pos": 7029 + }, + { + "id": 20237, + "x_pos": 2905, + "y_pos": 7019.5 + }, + { + "id": 20236, + "x_pos": 2871, + "y_pos": 7024 + }, + { + "id": 20235, + "x_pos": 3018, + "y_pos": 7062 + }, + { + "id": 20234, + "x_pos": 2954.5, + "y_pos": 6995 + }, + { + "id": 20233, + "x_pos": 2877, + "y_pos": 7033 + }, + { + "id": 20232, + "x_pos": 2898.5, + "y_pos": 7046.5 + }, + { + "id": 20231, + "x_pos": 2911.5, + "y_pos": 7029 + }, + { + "id": 20230, + "x_pos": 2925, + "y_pos": 7011.5 + }, + { + "id": 20229, + "x_pos": 2935, + "y_pos": 7051 + }, + { + "id": 20228, + "x_pos": 2952.5, + "y_pos": 7055.5 + }, + { + "id": 20227, + "x_pos": 3004.5, + "y_pos": 7059 + }, + { + "id": 20226, + "x_pos": 2941.5, + "y_pos": 7087 + }, + { + "id": 20225, + "x_pos": 3012.5, + "y_pos": 7034.5 + }, + { + "id": 20224, + "x_pos": 3007.5, + "y_pos": 7063 + }, + { + "id": 20223, + "x_pos": 2991.5, + "y_pos": 7075 + }, + { + "id": 20222, + "x_pos": 2965.5, + "y_pos": 7088.5 + }, + { + "id": 20221, + "x_pos": 2811.5, + "y_pos": 7012.5 + }, + { + "id": 20220, + "x_pos": 2840, + "y_pos": 7145 + }, + { + "id": 20219, + "x_pos": 2835.5, + "y_pos": 7153.5 + }, + { + "id": 20218, + "x_pos": 2827.5, + "y_pos": 7153.5 + }, + { + "id": 20217, + "x_pos": 3049.5, + "y_pos": 6578.5 + }, + { + "id": 20216, + "x_pos": 3152, + "y_pos": 6624 + }, + { + "id": 20215, + "x_pos": -194, + "y_pos": 5993.5 + }, + { + "id": 20214, + "x_pos": -425.5, + "y_pos": 6031.5 + }, + { + "id": 20213, + "x_pos": -442.5, + "y_pos": 6084 + }, + { + "id": 20072, + "x_pos": 623.5359497070312, + "y_pos": 228.63888549804688 + }, + { + "id": 20071, + "x_pos": 621, + "y_pos": 233 + }, + { + "id": 20069, + "x_pos": 585.5, + "y_pos": 234.5 + }, + { + "id": 20063, + "x_pos": 577.5227355957031, + "y_pos": 240.67898559570312 + }, + { + "id": 20061, + "x_pos": 395.4676208496094, + "y_pos": 211.0478057861328 + }, + { + "id": 20056, + "x_pos": 379.1878204345703, + "y_pos": 430.21974182128906 + }, + { + "id": 19178, + "x_pos": 2472.5, + "y_pos": 8364.5 + }, + { + "id": 19177, + "x_pos": 2496.5, + "y_pos": 8351 + }, + { + "id": 19176, + "x_pos": 2548, + "y_pos": 8380.5 + }, + { + "id": 19175, + "x_pos": 2567, + "y_pos": 8444 + }, + { + "id": 19174, + "x_pos": 2486.5, + "y_pos": 8469 + }, + { + "id": 19173, + "x_pos": 2524, + "y_pos": 8490 + }, + { + "id": 19172, + "x_pos": 2429.5, + "y_pos": 8584 + }, + { + "id": 19171, + "x_pos": 2434.5, + "y_pos": 8622 + }, + { + "id": 18034, + "x_pos": 3432.2777585171934, + "y_pos": 7343.219407476454 + }, + { + "id": 18032, + "x_pos": 3235.2777585171934, + "y_pos": 7214.162098650355 + }, + { + "id": 18023, + "x_pos": 526.1110789929244, + "y_pos": 6150.774762939225 + }, + { + "id": 18019, + "x_pos": 98.5, + "y_pos": 5879.332041259668 + }, + { + "id": 17739, + "x_pos": 3265, + "y_pos": 7084.5 + }, + { + "id": 17738, + "x_pos": 3261.5, + "y_pos": 7148 + }, + { + "id": 17737, + "x_pos": 3362.5, + "y_pos": 7127 + }, + { + "id": 17736, + "x_pos": 3334, + "y_pos": 7073 + }, + { + "id": 17735, + "x_pos": 3316, + "y_pos": 7039.5 + }, + { + "id": 15770, + "x_pos": 3478, + "y_pos": 4818 + }, + { + "id": 15768, + "x_pos": 2724.5, + "y_pos": 5679.5 + }, + { + "id": 15767, + "x_pos": 2726, + "y_pos": 5699 + }, + { + "id": 15762, + "x_pos": 2697.5, + "y_pos": 5773 + }, + { + "id": 15761, + "x_pos": 1410, + "y_pos": 5813.5 + }, + { + "id": 15759, + "x_pos": -1595.6000366210938, + "y_pos": 610.078469414294 + }, + { + "id": 15757, + "x_pos": -1489.1000061035156, + "y_pos": 631.027287047441 + }, + { + "id": 15752, + "x_pos": -1202.0000305175781, + "y_pos": 751.4351473781594 + }, + { + "id": 15749, + "x_pos": -1312.2999572753906, + "y_pos": 820.5398484448688 + }, + { + "id": 15747, + "x_pos": -1155.5, + "y_pos": 881.2822809617683 + }, + { + "id": 15746, + "x_pos": -1451.6999816894531, + "y_pos": 860.6002768561707 + }, + { + "id": 15743, + "x_pos": -2006.6999816894531, + "y_pos": 1061.7768970615753 + }, + { + "id": 15736, + "x_pos": -2052.6000061035156, + "y_pos": 1742.3270622209266 + }, + { + "id": 15735, + "x_pos": -1999.2999877929688, + "y_pos": 1779.5827291819196 + }, + { + "id": 15734, + "x_pos": -1993.8000183105469, + "y_pos": 1858.2505238787599 + }, + { + "id": 15733, + "x_pos": -2007.4000244140625, + "y_pos": 1933.528537435399 + }, + { + "id": 15731, + "x_pos": -1931.5000305175781, + "y_pos": 1993.320481395309 + }, + { + "id": 15729, + "x_pos": -1893.8999633789062, + "y_pos": 1990.5037282513604 + }, + { + "id": 15727, + "x_pos": -1974.5, + "y_pos": 2136.3419370388438 + }, + { + "id": 15725, + "x_pos": -1962.7000122070312, + "y_pos": 2159.749258215792 + }, + { + "id": 15721, + "x_pos": 3690.5, + "y_pos": 5647.5 + }, + { + "id": 15665, + "x_pos": 3123, + "y_pos": 5566.5 + }, + { + "id": 15664, + "x_pos": 2918.5, + "y_pos": 5630 + }, + { + "id": 15518, + "x_pos": 3366.5, + "y_pos": 5004 + }, + { + "id": 15513, + "x_pos": 3866.3999633789062, + "y_pos": 5565.191682378749 + }, + { + "id": 15512, + "x_pos": 3795.699951171875, + "y_pos": 5541.4759058689015 + }, + { + "id": 15506, + "x_pos": 3242.999969482422, + "y_pos": 5558.280116709184 + }, + { + "id": 15502, + "x_pos": 2491.0000610351562, + "y_pos": 5496.719539129979 + }, + { + "id": 15501, + "x_pos": 2586.6000061035156, + "y_pos": 5554.151849208889 + }, + { + "id": 15499, + "x_pos": 2649.1000061035156, + "y_pos": 5543.882550180435 + }, + { + "id": 15498, + "x_pos": 2627.5, + "y_pos": 5620.5 + }, + { + "id": 15496, + "x_pos": 2301.0000610351562, + "y_pos": 5724.718453184934 + }, + { + "id": 15494, + "x_pos": 2328.0000915527344, + "y_pos": 5744.587872264152 + }, + { + "id": 15492, + "x_pos": 2297.0999755859375, + "y_pos": 5770.074060478764 + }, + { + "id": 15491, + "x_pos": 2318.199951171875, + "y_pos": 5785.763632067463 + }, + { + "id": 15487, + "x_pos": 2484.7000122070312, + "y_pos": 5821.155539272726 + }, + { + "id": 15485, + "x_pos": 2521.1000366210938, + "y_pos": 5855.052253036889 + }, + { + "id": 15482, + "x_pos": 2293.999969482422, + "y_pos": 5854.943613450876 + }, + { + "id": 15481, + "x_pos": 2345.6000061035156, + "y_pos": 5870.633066421689 + }, + { + "id": 15480, + "x_pos": 2282, + "y_pos": 5896.894572424093 + }, + { + "id": 15477, + "x_pos": 2533.499969482422, + "y_pos": 5910.184833767342 + }, + { + "id": 15475, + "x_pos": 2340.6000061035156, + "y_pos": 5872.55967898959 + }, + { + "id": 15470, + "x_pos": 2565.7000122070312, + "y_pos": 6023.296960786753 + }, + { + "id": 15468, + "x_pos": 2682.4000244140625, + "y_pos": 6074.574354995821 + }, + { + "id": 15466, + "x_pos": 2509.3999633789062, + "y_pos": 6183.156632855274 + }, + { + "id": 15406, + "x_pos": 2132.5, + "y_pos": 6027.002288236301 + }, + { + "id": 15401, + "x_pos": 2063.8989816061767, + "y_pos": 6041.902770325556 + }, + { + "id": 15395, + "x_pos": 1695.3999938964844, + "y_pos": 5958.0995484632385 + }, + { + "id": 15393, + "x_pos": 1779.5999755859375, + "y_pos": 6045.2059310828845 + }, + { + "id": 15390, + "x_pos": 1615.6999816894531, + "y_pos": 6043.303191309824 + }, + { + "id": 15386, + "x_pos": 1887.2000122070312, + "y_pos": 6119.304421593446 + }, + { + "id": 15385, + "x_pos": 1829.3000183105469, + "y_pos": 6115.906976600896 + }, + { + "id": 15382, + "x_pos": 1781.5, + "y_pos": 6129.807588607593 + }, + { + "id": 15381, + "x_pos": 1811.699951171875, + "y_pos": 6154.19873013775 + }, + { + "id": 15379, + "x_pos": 1769.0999755859375, + "y_pos": 6154.003167014147 + }, + { + "id": 15378, + "x_pos": 1714.5, + "y_pos": 6138.605706738646 + }, + { + "id": 15377, + "x_pos": 1748, + "y_pos": 6189.4006272896495 + }, + { + "id": 15376, + "x_pos": 1791.3000183105469, + "y_pos": 6200.506334028294 + }, + { + "id": 15375, + "x_pos": 1769.5, + "y_pos": 6222.019002084884 + }, + { + "id": 15371, + "x_pos": 1749.8999938964844, + "y_pos": 6260.5993574274 + }, + { + "id": 15370, + "x_pos": 1740.5999755859375, + "y_pos": 6268.897490841404 + }, + { + "id": 15369, + "x_pos": 1728.8999938964844, + "y_pos": 6286.4038248697 + }, + { + "id": 15367, + "x_pos": 1646, + "y_pos": 6265.503046411935 + }, + { + "id": 15365, + "x_pos": 1712.8999938964844, + "y_pos": 6307.009516325394 + }, + { + "id": 15364, + "x_pos": 1625.0999755859375, + "y_pos": 6330.208246463144 + }, + { + "id": 15362, + "x_pos": 1652.5, + "y_pos": 6380.506092823873 + }, + { + "id": 15361, + "x_pos": 1656.5999755859375, + "y_pos": 6441.8042833151485 + }, + { + "id": 15355, + "x_pos": 1534.6000061035156, + "y_pos": 6445.003046411935 + }, + { + "id": 15354, + "x_pos": 1521.09933123902, + "y_pos": 6502.002288236301 + }, + { + "id": 15133, + "x_pos": 1524.3009528061666, + "y_pos": 6399.406726557509 + }, + { + "id": 15130, + "x_pos": 1605.3964697152624, + "y_pos": 6423.605489654297 + }, + { + "id": 15125, + "x_pos": 1725.0995235969167, + "y_pos": 6337.301206339149 + }, + { + "id": 15122, + "x_pos": 1767.5995235969167, + "y_pos": 6330.698763096789 + }, + { + "id": 15121, + "x_pos": 1752.4028889728897, + "y_pos": 6352.906695993446 + }, + { + "id": 15117, + "x_pos": 1688.7011563966107, + "y_pos": 6192.105459090235 + }, + { + "id": 15116, + "x_pos": 1644.1992290689268, + "y_pos": 6176.701840072787 + }, + { + "id": 15115, + "x_pos": 1591.9980421248629, + "y_pos": 6131.503046411935 + }, + { + "id": 15114, + "x_pos": 1395.9005069574741, + "y_pos": 6241.801236903211 + }, + { + "id": 15111, + "x_pos": 1435.6990166394426, + "y_pos": 6297.400603169575 + }, + { + "id": 15110, + "x_pos": 1373.7014597636407, + "y_pos": 6227.403680145573 + }, + { + "id": 15107, + "x_pos": 1377.5000305543908, + "y_pos": 6255.310345574957 + }, + { + "id": 15105, + "x_pos": 1325.8956207090787, + "y_pos": 6189.599396830425 + }, + { + "id": 15099, + "x_pos": 1226.3009528061666, + "y_pos": 6004.102412678298 + }, + { + "id": 15096, + "x_pos": 1153.5494729582288, + "y_pos": 6096.530844920851 + }, + { + "id": 15022, + "x_pos": 1534.4999389648438, + "y_pos": 5969.600006103516 + }, + { + "id": 15021, + "x_pos": 1560.9004924398623, + "y_pos": 6042 + }, + { + "id": 15017, + "x_pos": 1555.5995075601377, + "y_pos": 6068.407447772184 + }, + { + "id": 15013, + "x_pos": 1539.4975072450725, + "y_pos": 6171.9040818743 + }, + { + "id": 15012, + "x_pos": 1548.995014490144, + "y_pos": 6171.9040665897155 + }, + { + "id": 15007, + "x_pos": 1518.6999816894531, + "y_pos": 6287.905028009362 + }, + { + "id": 15006, + "x_pos": 1512.7999877929688, + "y_pos": 6303.803780307191 + }, + { + "id": 14889, + "x_pos": 1461.8009932340346, + "y_pos": 5896.905058561857 + }, + { + "id": 14884, + "x_pos": 1514.1170988701142, + "y_pos": 5836.89587506416 + }, + { + "id": 14875, + "x_pos": 1711.198976210033, + "y_pos": 5912.10412493584 + }, + { + "id": 14873, + "x_pos": 1731.1975322479875, + "y_pos": 5798.5 + }, + { + "id": 14871, + "x_pos": 1826.0045981565563, + "y_pos": 5855.924470379794 + }, + { + "id": 14866, + "x_pos": 1876.5995033829831, + "y_pos": 5750.205961635378 + }, + { + "id": 14862, + "x_pos": 1889.698976210033, + "y_pos": 5829.5 + }, + { + "id": 14856, + "x_pos": 1977.0025136410186, + "y_pos": 5853.2059310828845 + }, + { + "id": 14853, + "x_pos": 2038.6990067659663, + "y_pos": 5851.405028009362 + }, + { + "id": 14852, + "x_pos": 1970.2014898510515, + "y_pos": 5908.203642846585 + }, + { + "id": 14848, + "x_pos": 2126.4030102580364, + "y_pos": 5893.002288236301 + }, + { + "id": 14847, + "x_pos": 1790.6964625690134, + "y_pos": 5927.4004515367615 + }, + { + "id": 14843, + "x_pos": 1571.2014898510515, + "y_pos": 5990.5995484632385 + }, + { + "id": 14841, + "x_pos": 1456.9004966170169, + "y_pos": 6059.002288236301 + }, + { + "id": 14837, + "x_pos": 1431.0995033829831, + "y_pos": 6066.703673399079 + }, + { + "id": 14831, + "x_pos": 2162.1990067659654, + "y_pos": 5959.902739773062 + }, + { + "id": 14654, + "x_pos": 1426, + "y_pos": 5756.5 + }, + { + "id": 14653, + "x_pos": 1390.0996646713447, + "y_pos": 5799.198602781393 + }, + { + "id": 14651, + "x_pos": 1407.7015204069849, + "y_pos": 5879.502288236301 + }, + { + "id": 14640, + "x_pos": 1312.4080375400736, + "y_pos": 5898.4073162456625 + }, + { + "id": 14639, + "x_pos": 1291.3035068750532, + "y_pos": 6013.208219319185 + }, + { + "id": 14633, + "x_pos": 1257.4030102580364, + "y_pos": 5907.402739773062 + }, + { + "id": 14631, + "x_pos": 1245.2015204069849, + "y_pos": 5982.006864708901 + }, + { + "id": 14630, + "x_pos": 1228.1000061035156, + "y_pos": 5894.300018310547 + }, + { + "id": 14625, + "x_pos": 3389, + "y_pos": 4777 + }, + { + "id": 14623, + "x_pos": 3352.5, + "y_pos": 4810 + }, + { + "id": 14617, + "x_pos": 3414, + "y_pos": 4896.5 + }, + { + "id": 14614, + "x_pos": 3899, + "y_pos": 4875.5 + }, + { + "id": 14513, + "x_pos": 3468, + "y_pos": 5348.5 + }, + { + "id": 14470, + "x_pos": 3358, + "y_pos": 4944.5 + }, + { + "id": 14289, + "x_pos": 104.5, + "y_pos": 1692.5 + }, + { + "id": 14219, + "x_pos": 3739.5, + "y_pos": 5326 + }, + { + "id": 14217, + "x_pos": 3467.5, + "y_pos": 5298 + }, + { + "id": 14151, + "x_pos": 2295.5, + "y_pos": 6288 + }, + { + "id": 14054, + "x_pos": 3529.5, + "y_pos": 5397 + }, + { + "id": 14041, + "x_pos": 3734, + "y_pos": 5154.5 + }, + { + "id": 14037, + "x_pos": 3761.5, + "y_pos": 5102 + }, + { + "id": 13999, + "x_pos": -32, + "y_pos": 558.5 + }, + { + "id": 13997, + "x_pos": -70.5, + "y_pos": 532 + }, + { + "id": 13995, + "x_pos": -89, + "y_pos": 546.5 + }, + { + "id": 13814, + "x_pos": 3127.5, + "y_pos": 4931 + }, + { + "id": 13642, + "x_pos": 3127.5, + "y_pos": 4818.5 + }, + { + "id": 13484, + "x_pos": -189.5, + "y_pos": 351.5 + }, + { + "id": 13481, + "x_pos": -368.5, + "y_pos": 387 + }, + { + "id": 12033, + "x_pos": -1711.1091659986137, + "y_pos": 2200.291548477737 + }, + { + "id": 12031, + "x_pos": -1671.2760319581125, + "y_pos": 2230.775866765496 + }, + { + "id": 12030, + "x_pos": -1638.2199106938847, + "y_pos": 2218.281522464993 + }, + { + "id": 12021, + "x_pos": -1707.7758679849585, + "y_pos": 2308.069479486704 + }, + { + "id": 12019, + "x_pos": -1663.7760656512264, + "y_pos": 2333.5563685469624 + }, + { + "id": 12013, + "x_pos": -1594.331252880374, + "y_pos": 2244.490269191865 + }, + { + "id": 12011, + "x_pos": -1701.33077219195, + "y_pos": 2142.042970028083 + }, + { + "id": 12009, + "x_pos": -1685.6640945266117, + "y_pos": 2090.735989289884 + }, + { + "id": 12008, + "x_pos": -1747.1645460143372, + "y_pos": 2063.5840413842834 + }, + { + "id": 12007, + "x_pos": -1740.8867421857149, + "y_pos": 2072.6349579306952 + }, + { + "id": 12005, + "x_pos": -1796.386540414309, + "y_pos": 2045.9747988040435 + }, + { + "id": 12004, + "x_pos": -1716.6639552617412, + "y_pos": 2013.2758362636087 + }, + { + "id": 12003, + "x_pos": -1712.7194138947302, + "y_pos": 1880.3193280716641 + }, + { + "id": 12002, + "x_pos": -1607.71927292584, + "y_pos": 1780.1048875179358 + }, + { + "id": 11999, + "x_pos": -1485.831517158315, + "y_pos": 1724.1218622418974 + }, + { + "id": 11994, + "x_pos": -1679.8855000329181, + "y_pos": 1544.5719968808999 + }, + { + "id": 11993, + "x_pos": -1673.9410687300788, + "y_pos": 1563.8953848102574 + }, + { + "id": 11989, + "x_pos": -1755.4407025982423, + "y_pos": 1622.8650496947766 + }, + { + "id": 11982, + "x_pos": -1767.8307019398712, + "y_pos": 1501.7406624332116 + }, + { + "id": 11981, + "x_pos": -1713.940919550913, + "y_pos": 1488.4897321609496 + }, + { + "id": 11979, + "x_pos": -1906.7749470398471, + "y_pos": 1514.6629640999845 + }, + { + "id": 11976, + "x_pos": -1758.219691649917, + "y_pos": 1402.680506356749 + }, + { + "id": 11972, + "x_pos": -1667.2201004596982, + "y_pos": 1378.0265018331493 + }, + { + "id": 11969, + "x_pos": -2087.608382072165, + "y_pos": 1283.0367544212559 + }, + { + "id": 11966, + "x_pos": -2030.8306752177468, + "y_pos": 1347.2922739566557 + }, + { + "id": 11965, + "x_pos": -2034.1083416404285, + "y_pos": 1348.0141316232693 + }, + { + "id": 11960, + "x_pos": -1983.4972532753968, + "y_pos": 1358.8002433514002 + }, + { + "id": 11959, + "x_pos": -1941.9974397106266, + "y_pos": 1371.7935593429047 + }, + { + "id": 11957, + "x_pos": -1764.1087032798505, + "y_pos": 1176.3524147821754 + }, + { + "id": 11955, + "x_pos": -1743.719756789937, + "y_pos": 1187.0136174687705 + }, + { + "id": 11952, + "x_pos": -1778.4421023728469, + "y_pos": 1127.8128706385305 + }, + { + "id": 11944, + "x_pos": -1718.8867974114391, + "y_pos": 1105.3244696166603 + }, + { + "id": 11919, + "x_pos": 749.5, + "y_pos": 413 + }, + { + "id": 11918, + "x_pos": 763, + "y_pos": 401.5 + }, + { + "id": 11917, + "x_pos": 785.50830078125, + "y_pos": 397.902587890625 + }, + { + "id": 11916, + "x_pos": 776.1626281738281, + "y_pos": 385.9371032714844 + }, + { + "id": 11913, + "x_pos": 699.2911987304688, + "y_pos": 425.2541809082031 + }, + { + "id": 11911, + "x_pos": 719.2657470703125, + "y_pos": 370.5392303466797 + }, + { + "id": 11910, + "x_pos": 720.3857421875, + "y_pos": 319.1714782714844 + }, + { + "id": 11909, + "x_pos": 728, + "y_pos": 316.5 + }, + { + "id": 11908, + "x_pos": 748.3006286621094, + "y_pos": 311.0724334716797 + }, + { + "id": 11907, + "x_pos": 821.2456665039062, + "y_pos": 345.0981750488281 + }, + { + "id": 11902, + "x_pos": 698.7143249511719, + "y_pos": 266.10003662109375 + }, + { + "id": 11843, + "x_pos": 880.3108215332031, + "y_pos": 202.38319396972656 + }, + { + "id": 11817, + "x_pos": -2034.5, + "y_pos": 2228.5 + }, + { + "id": 11805, + "x_pos": -1552, + "y_pos": 1238.5 + }, + { + "id": 11803, + "x_pos": -1503.5, + "y_pos": 1257 + }, + { + "id": 11802, + "x_pos": -1499.5, + "y_pos": 1259.5 + }, + { + "id": 11780, + "x_pos": -1998.4934202328545, + "y_pos": 1321.0878142132715 + }, + { + "id": 11775, + "x_pos": -1821.6842274839955, + "y_pos": 1187.834992446843 + }, + { + "id": 11772, + "x_pos": -1844.7628181790074, + "y_pos": 1201.7611674048385 + }, + { + "id": 11769, + "x_pos": -1885.6639581847976, + "y_pos": 1211.8641275016844 + }, + { + "id": 11768, + "x_pos": -1921.3299630022775, + "y_pos": 1210.655507748415 + }, + { + "id": 11766, + "x_pos": -1881.580212729877, + "y_pos": 1226.4664214062027 + }, + { + "id": 11761, + "x_pos": -1933.929808134627, + "y_pos": 1146.6940534988366 + }, + { + "id": 11760, + "x_pos": -1955.0317304422206, + "y_pos": 1163.459176468627 + }, + { + "id": 11759, + "x_pos": -1994.591295088925, + "y_pos": 1143.4787633451815 + }, + { + "id": 11758, + "x_pos": -2091.74009292059, + "y_pos": 1080.0095176265745 + }, + { + "id": 11749, + "x_pos": -1565.9273827179695, + "y_pos": 534.4972164232126 + }, + { + "id": 11746, + "x_pos": -1583.802082983952, + "y_pos": 785.3998947672708 + }, + { + "id": 11742, + "x_pos": -1967.1774048753796, + "y_pos": 1046.8478936471552 + }, + { + "id": 11738, + "x_pos": -1937.6725998559064, + "y_pos": 1101.6430537864894 + }, + { + "id": 11733, + "x_pos": -2297.600067138672, + "y_pos": 1410.525206461578 + }, + { + "id": 11705, + "x_pos": 390, + "y_pos": 691 + }, + { + "id": 11631, + "x_pos": -1643.5, + "y_pos": 2122.5 + }, + { + "id": 11629, + "x_pos": -1584.5, + "y_pos": 2154 + }, + { + "id": 11575, + "x_pos": 682.5, + "y_pos": 656.5 + }, + { + "id": 11574, + "x_pos": 690.5, + "y_pos": 659 + }, + { + "id": 11573, + "x_pos": 674, + "y_pos": 671 + }, + { + "id": 11572, + "x_pos": 638.5, + "y_pos": 693 + }, + { + "id": 11309, + "x_pos": -459.5, + "y_pos": 487 + }, + { + "id": 11030, + "x_pos": -92, + "y_pos": -87.5 + }, + { + "id": 10932, + "x_pos": 867, + "y_pos": 1191.5 + }, + { + "id": 10930, + "x_pos": -778, + "y_pos": 2048 + }, + { + "id": 10929, + "x_pos": -751.5, + "y_pos": 2070 + }, + { + "id": 10928, + "x_pos": -832, + "y_pos": 2017.5 + }, + { + "id": 10927, + "x_pos": -799, + "y_pos": 2070 + }, + { + "id": 10924, + "x_pos": -803, + "y_pos": 2098 + }, + { + "id": 10923, + "x_pos": -904, + "y_pos": 2054 + }, + { + "id": 10915, + "x_pos": -801.5, + "y_pos": 2480.5 + }, + { + "id": 10914, + "x_pos": -849.5, + "y_pos": 2486 + }, + { + "id": 10907, + "x_pos": -1510.5, + "y_pos": 1411 + }, + { + "id": 10905, + "x_pos": -1834, + "y_pos": 1600 + }, + { + "id": 10904, + "x_pos": -1835.5, + "y_pos": 1604 + }, + { + "id": 10893, + "x_pos": -892, + "y_pos": 877.5 + }, + { + "id": 10885, + "x_pos": 963.5, + "y_pos": 1082.5 + }, + { + "id": 10884, + "x_pos": 937.5, + "y_pos": 1085.5 + }, + { + "id": 10880, + "x_pos": -199, + "y_pos": 1089 + }, + { + "id": 10879, + "x_pos": -174.5, + "y_pos": 1116 + }, + { + "id": 10868, + "x_pos": 592.1154519930406, + "y_pos": 28.781997733830394 + }, + { + "id": 10866, + "x_pos": 661.6130521393543, + "y_pos": 7.217303275397171 + }, + { + "id": 10820, + "x_pos": -1671, + "y_pos": 1749 + }, + { + "id": 10814, + "x_pos": 1017, + "y_pos": 157 + }, + { + "id": 10804, + "x_pos": 953, + "y_pos": -184.5 + }, + { + "id": 10783, + "x_pos": -1224.5, + "y_pos": 2134 + }, + { + "id": 10782, + "x_pos": -1216, + "y_pos": 2108 + }, + { + "id": 10779, + "x_pos": -1208, + "y_pos": 2043.5 + }, + { + "id": 10777, + "x_pos": -1189.5, + "y_pos": 2018 + }, + { + "id": 10773, + "x_pos": -1195, + "y_pos": 1884 + }, + { + "id": 10765, + "x_pos": -1299.5, + "y_pos": 1948 + }, + { + "id": 10757, + "x_pos": -1412, + "y_pos": 1844.5 + }, + { + "id": 10756, + "x_pos": -1352.5, + "y_pos": 1814 + }, + { + "id": 10748, + "x_pos": -1354.5, + "y_pos": 1678.5 + }, + { + "id": 10742, + "x_pos": -1383.5, + "y_pos": 1577.5 + }, + { + "id": 10732, + "x_pos": -1450.5, + "y_pos": 1602 + }, + { + "id": 10730, + "x_pos": -1500.5, + "y_pos": 1580 + }, + { + "id": 10729, + "x_pos": -1514.5, + "y_pos": 1602 + }, + { + "id": 10727, + "x_pos": -1455, + "y_pos": 1496.5 + }, + { + "id": 10726, + "x_pos": -1502, + "y_pos": 1548.5 + }, + { + "id": 10724, + "x_pos": -1598.5, + "y_pos": 1533 + }, + { + "id": 10712, + "x_pos": -190, + "y_pos": 1087 + }, + { + "id": 10710, + "x_pos": -654, + "y_pos": 2434.5 + }, + { + "id": 10708, + "x_pos": -1015, + "y_pos": 1543 + }, + { + "id": 10706, + "x_pos": -1233, + "y_pos": 545 + }, + { + "id": 10705, + "x_pos": -1218, + "y_pos": 569 + }, + { + "id": 10694, + "x_pos": -1883, + "y_pos": 837.5 + }, + { + "id": 10689, + "x_pos": -2048, + "y_pos": 846.5 + }, + { + "id": 10683, + "x_pos": -1002, + "y_pos": 2284 + }, + { + "id": 10682, + "x_pos": -1839, + "y_pos": 2253.5 + }, + { + "id": 10681, + "x_pos": -1812.5, + "y_pos": 2258 + }, + { + "id": 10673, + "x_pos": -2045, + "y_pos": 2240 + }, + { + "id": 10670, + "x_pos": -2017, + "y_pos": 1514 + }, + { + "id": 10668, + "x_pos": -2191, + "y_pos": 1365.5 + }, + { + "id": 10630, + "x_pos": -555.5, + "y_pos": 833.5 + }, + { + "id": 10629, + "x_pos": -516.5, + "y_pos": 834 + }, + { + "id": 10628, + "x_pos": -566, + "y_pos": 853 + }, + { + "id": 10600, + "x_pos": -1109.5, + "y_pos": 1290 + }, + { + "id": 10599, + "x_pos": 195.5, + "y_pos": 2638.5 + }, + { + "id": 10594, + "x_pos": 202.5, + "y_pos": 2566 + }, + { + "id": 10583, + "x_pos": -355.81702770522406, + "y_pos": 684.431468601173 + }, + { + "id": 10578, + "x_pos": -1125, + "y_pos": 1232.5 + }, + { + "id": 10577, + "x_pos": -1163.5, + "y_pos": 1205.5 + }, + { + "id": 10576, + "x_pos": -1173, + "y_pos": 1252.5 + }, + { + "id": 10574, + "x_pos": -1214, + "y_pos": 1256 + }, + { + "id": 10572, + "x_pos": -1214, + "y_pos": 1274.5 + }, + { + "id": 10571, + "x_pos": -1011.5, + "y_pos": 1441 + }, + { + "id": 10329, + "x_pos": 978.5, + "y_pos": 210.06798183681394 + }, + { + "id": 10328, + "x_pos": 948.9539353562468, + "y_pos": 248.39250589336643 + }, + { + "id": 10327, + "x_pos": 765, + "y_pos": 990.5 + }, + { + "id": 10326, + "x_pos": 735.381665903481, + "y_pos": 884.0388488769531 + }, + { + "id": 10325, + "x_pos": 746.065632025895, + "y_pos": 887.10693359375 + }, + { + "id": 10323, + "x_pos": -1377.5, + "y_pos": 1534.5 + }, + { + "id": 10322, + "x_pos": -1414.5, + "y_pos": 1439 + }, + { + "id": 10321, + "x_pos": -1433.5, + "y_pos": 1399.5 + }, + { + "id": 10320, + "x_pos": -1432, + "y_pos": 1318 + }, + { + "id": 10319, + "x_pos": -1496.5, + "y_pos": 1235.5 + }, + { + "id": 10318, + "x_pos": -1517, + "y_pos": 1306 + }, + { + "id": 10317, + "x_pos": -1628.5, + "y_pos": 1256 + }, + { + "id": 10316, + "x_pos": -1619.5, + "y_pos": 1194.5 + }, + { + "id": 10315, + "x_pos": 216.5, + "y_pos": 117.5 + }, + { + "id": 10136, + "x_pos": -1397.8999938964844, + "y_pos": 2314.576163631311 + }, + { + "id": 10135, + "x_pos": -1350.2999572753906, + "y_pos": 2370.742394329376 + }, + { + "id": 10133, + "x_pos": -1426.8999633789062, + "y_pos": 2345.0990264682123 + }, + { + "id": 10124, + "x_pos": -1431.7999572753906, + "y_pos": 2432.96072125892 + }, + { + "id": 10123, + "x_pos": -1391.1999816894531, + "y_pos": 2464.1886806365865 + }, + { + "id": 10121, + "x_pos": -1423.3000183105469, + "y_pos": 2504.7939590445903 + }, + { + "id": 10120, + "x_pos": -1552.2000122070312, + "y_pos": 2266.3169786869003 + }, + { + "id": 10116, + "x_pos": -1250.2999572753906, + "y_pos": 2271.157680612796 + }, + { + "id": 10113, + "x_pos": -1262.2999572753906, + "y_pos": 2371.0543867394535 + }, + { + "id": 10111, + "x_pos": -1264.9000244140625, + "y_pos": 2404.668249838058 + }, + { + "id": 10110, + "x_pos": -1238.7000427246094, + "y_pos": 2382.2901811494485 + }, + { + "id": 10106, + "x_pos": -1318.1000061035156, + "y_pos": 2537.7035478169983 + }, + { + "id": 10104, + "x_pos": -875.7999877929688, + "y_pos": 2313.2028442203145 + }, + { + "id": 10099, + "x_pos": -1032.7000427246094, + "y_pos": 2115.0660571847693 + }, + { + "id": 10094, + "x_pos": -1702.1000061035156, + "y_pos": 1262.7221661612843 + }, + { + "id": 10091, + "x_pos": -1774.4999389648438, + "y_pos": 1338.159244611571 + }, + { + "id": 10089, + "x_pos": -1829.5000305175781, + "y_pos": 1314.1411730585596 + }, + { + "id": 10085, + "x_pos": -1931.7000122070312, + "y_pos": 1387.9803568107081 + }, + { + "id": 10084, + "x_pos": -1915.2999877929688, + "y_pos": 1413.316431895626 + }, + { + "id": 10083, + "x_pos": -2225.499969482422, + "y_pos": 1790.5715597028484 + }, + { + "id": 10082, + "x_pos": -2254.9000244140625, + "y_pos": 1879.8807453636964 + }, + { + "id": 10079, + "x_pos": 549, + "y_pos": 908 + }, + { + "id": 10078, + "x_pos": 515.5, + "y_pos": 896 + }, + { + "id": 10077, + "x_pos": 504, + "y_pos": 907 + }, + { + "id": 10074, + "x_pos": 574.5, + "y_pos": 941 + }, + { + "id": 10073, + "x_pos": 568.5, + "y_pos": 944 + }, + { + "id": 10072, + "x_pos": 571.5, + "y_pos": 950 + }, + { + "id": 10071, + "x_pos": 514, + "y_pos": 969 + }, + { + "id": 10068, + "x_pos": 629.5, + "y_pos": 1027.5 + }, + { + "id": 10065, + "x_pos": 564.5, + "y_pos": 1057 + }, + { + "id": 10059, + "x_pos": 574, + "y_pos": 1136 + }, + { + "id": 10055, + "x_pos": 680, + "y_pos": 1146.5 + }, + { + "id": 10053, + "x_pos": 686.5, + "y_pos": 1222 + }, + { + "id": 10047, + "x_pos": 794, + "y_pos": 1179.5 + }, + { + "id": 10041, + "x_pos": 837.5, + "y_pos": 1146 + }, + { + "id": 10039, + "x_pos": 871.5, + "y_pos": 1079.5 + }, + { + "id": 10038, + "x_pos": 840.5, + "y_pos": 1053 + }, + { + "id": 10026, + "x_pos": 1011.5, + "y_pos": 1131.5 + }, + { + "id": 10025, + "x_pos": 1048.5, + "y_pos": 1137 + }, + { + "id": 10023, + "x_pos": 1051.5, + "y_pos": 1088.5 + }, + { + "id": 10020, + "x_pos": 1056.5, + "y_pos": 1055 + }, + { + "id": 10017, + "x_pos": 1125, + "y_pos": 1105 + }, + { + "id": 9698, + "x_pos": 1204, + "y_pos": 1081 + }, + { + "id": 9697, + "x_pos": 1239, + "y_pos": 997 + }, + { + "id": 9696, + "x_pos": 1214.5, + "y_pos": 934 + }, + { + "id": 9695, + "x_pos": 1291.5, + "y_pos": 931 + }, + { + "id": 9528, + "x_pos": -1652.9039772576243, + "y_pos": 1875.2557998389375 + }, + { + "id": 9527, + "x_pos": -1386.803095362, + "y_pos": 1920.6780453071487 + }, + { + "id": 9526, + "x_pos": -1440.8593805616401, + "y_pos": 1938.3660686335115 + }, + { + "id": 9525, + "x_pos": -1343.246665397353, + "y_pos": 1856.7240357959863 + }, + { + "id": 9524, + "x_pos": -1572.516699989601, + "y_pos": 1967.1337230398422 + }, + { + "id": 9523, + "x_pos": -1349.132037038306, + "y_pos": 1980.5648033376665 + }, + { + "id": 9522, + "x_pos": -1352.1311719873802, + "y_pos": 2039.7080801169814 + }, + { + "id": 9521, + "x_pos": -1374.2447179032633, + "y_pos": 1668.4046291941222 + }, + { + "id": 9520, + "x_pos": -1382.577520268419, + "y_pos": 1668.571221334275 + }, + { + "id": 9519, + "x_pos": -1376.5799898201399, + "y_pos": 1667.2738640762927 + }, + { + "id": 9518, + "x_pos": -1558.187361856721, + "y_pos": 1897.1053953879618 + }, + { + "id": 9517, + "x_pos": -1274.8024093754111, + "y_pos": 1524.812216310257 + }, + { + "id": 9516, + "x_pos": -1735.9131732617639, + "y_pos": 1043.727402744843 + }, + { + "id": 9515, + "x_pos": -1812.8587707413994, + "y_pos": 973.3891138519352 + }, + { + "id": 9514, + "x_pos": -2014.5, + "y_pos": 763.5 + }, + { + "id": 9513, + "x_pos": -2018.5, + "y_pos": 756 + }, + { + "id": 9512, + "x_pos": -1817.3075885741591, + "y_pos": 787.7129222136191 + }, + { + "id": 9437, + "x_pos": -2417.0786178469616, + "y_pos": 2031.5382057230845 + }, + { + "id": 9436, + "x_pos": -2464.020129922547, + "y_pos": 1948.19909034586 + }, + { + "id": 9435, + "x_pos": -2374.079475330198, + "y_pos": 1956.9487583876798 + }, + { + "id": 9434, + "x_pos": -2447.796269795438, + "y_pos": 2001.250309078835 + }, + { + "id": 9433, + "x_pos": -2455.577211574454, + "y_pos": 1607.8319250856175 + }, + { + "id": 9432, + "x_pos": -2430.356712781632, + "y_pos": 1646.3317015060738 + }, + { + "id": 9431, + "x_pos": -2483.0753251113338, + "y_pos": 1579.0652360480353 + }, + { + "id": 9430, + "x_pos": -2486.727053748593, + "y_pos": 1547.7540431090702 + }, + { + "id": 9429, + "x_pos": -2289.075942499264, + "y_pos": 1307.5411560186485 + }, + { + "id": 9428, + "x_pos": -2364.0824593718608, + "y_pos": 1667.055196213054 + }, + { + "id": 9427, + "x_pos": -2376.5813960926475, + "y_pos": 2041.0345373218415 + }, + { + "id": 9426, + "x_pos": -2317.5856492095004, + "y_pos": 1560.0965139954787 + }, + { + "id": 9425, + "x_pos": -2528.0721009743647, + "y_pos": 1669.04631482057 + }, + { + "id": 9424, + "x_pos": -2467.5726840629654, + "y_pos": 1897.5681321542806 + }, + { + "id": 9423, + "x_pos": -2450.5763197918877, + "y_pos": 2052.5300966256 + }, + { + "id": 9422, + "x_pos": -2291.466409604927, + "y_pos": 1359.6154352229441 + }, + { + "id": 9421, + "x_pos": -2288.8031639606593, + "y_pos": 1463.470784048036 + }, + { + "id": 9420, + "x_pos": -2426.801277497539, + "y_pos": 1727.634796787227 + }, + { + "id": 9419, + "x_pos": -1950.0868839853606, + "y_pos": 1474.5831224645372 + }, + { + "id": 9418, + "x_pos": -748, + "y_pos": 1243 + }, + { + "id": 9417, + "x_pos": -651.5, + "y_pos": 1317 + }, + { + "id": 9416, + "x_pos": -555, + "y_pos": 1345.5 + }, + { + "id": 9415, + "x_pos": -757, + "y_pos": 1359.5 + }, + { + "id": 9414, + "x_pos": -608, + "y_pos": 1352 + }, + { + "id": 9413, + "x_pos": -721, + "y_pos": 1689.5 + }, + { + "id": 9412, + "x_pos": -467, + "y_pos": 1358.5 + }, + { + "id": 9411, + "x_pos": -814.5, + "y_pos": 1226.5 + }, + { + "id": 9384, + "x_pos": -769.5, + "y_pos": 1382 + }, + { + "id": 9380, + "x_pos": -526.5, + "y_pos": 1398.5 + }, + { + "id": 9379, + "x_pos": -689.5, + "y_pos": 1425 + }, + { + "id": 9373, + "x_pos": -712.5, + "y_pos": 1470.5 + }, + { + "id": 9368, + "x_pos": -668.5, + "y_pos": 1376 + }, + { + "id": 9366, + "x_pos": -360.5, + "y_pos": 1571.5 + }, + { + "id": 9339, + "x_pos": -718.433489816337, + "y_pos": -736.2827691523007 + }, + { + "id": 9291, + "x_pos": 576.5, + "y_pos": 125.5 + }, + { + "id": 9284, + "x_pos": 530.5, + "y_pos": -52.5 + }, + { + "id": 9269, + "x_pos": 628.5, + "y_pos": -35 + }, + { + "id": 9267, + "x_pos": 742.5, + "y_pos": -66 + }, + { + "id": 9260, + "x_pos": 837.5, + "y_pos": -114.5 + }, + { + "id": 9259, + "x_pos": 517, + "y_pos": 109 + }, + { + "id": 9256, + "x_pos": 680, + "y_pos": -160 + }, + { + "id": 9249, + "x_pos": 955, + "y_pos": -116 + }, + { + "id": 9246, + "x_pos": 780, + "y_pos": 54 + }, + { + "id": 9245, + "x_pos": 669, + "y_pos": 131 + }, + { + "id": 9204, + "x_pos": 370, + "y_pos": -342.5 + }, + { + "id": 9203, + "x_pos": 532, + "y_pos": -341.5 + }, + { + "id": 9202, + "x_pos": 488, + "y_pos": -183.5 + }, + { + "id": 9201, + "x_pos": 434.5, + "y_pos": 126.5 + }, + { + "id": 9200, + "x_pos": 473, + "y_pos": 218.5 + }, + { + "id": 9199, + "x_pos": 471, + "y_pos": 227 + }, + { + "id": 9198, + "x_pos": 477.5, + "y_pos": 221.5 + }, + { + "id": 9197, + "x_pos": 551, + "y_pos": 226.5 + }, + { + "id": 9166, + "x_pos": 751, + "y_pos": -289.5 + }, + { + "id": 9160, + "x_pos": 682.5, + "y_pos": -217 + }, + { + "id": 9005, + "x_pos": 365.5, + "y_pos": 1669 + }, + { + "id": 9004, + "x_pos": 439.5, + "y_pos": 1672 + }, + { + "id": 9003, + "x_pos": 418.5, + "y_pos": 1629 + }, + { + "id": 9002, + "x_pos": 416, + "y_pos": 1590.5 + }, + { + "id": 9001, + "x_pos": 391, + "y_pos": 1566.5 + }, + { + "id": 9000, + "x_pos": 258, + "y_pos": 1636 + }, + { + "id": 8999, + "x_pos": 271, + "y_pos": 1594 + }, + { + "id": 8998, + "x_pos": 365, + "y_pos": 1551.5 + }, + { + "id": 8997, + "x_pos": 338, + "y_pos": 1552.5 + }, + { + "id": 8996, + "x_pos": 467.5, + "y_pos": 1558.5 + }, + { + "id": 8995, + "x_pos": 551.5, + "y_pos": 1536.5 + }, + { + "id": 8994, + "x_pos": 428, + "y_pos": 1460 + }, + { + "id": 8993, + "x_pos": 265, + "y_pos": 1470 + }, + { + "id": 8992, + "x_pos": 301.5, + "y_pos": 1299.5 + }, + { + "id": 8991, + "x_pos": 262.5, + "y_pos": 1304 + }, + { + "id": 8990, + "x_pos": 320.5, + "y_pos": 1190 + }, + { + "id": 8989, + "x_pos": 254.5, + "y_pos": 1206.5 + }, + { + "id": 8988, + "x_pos": 159.5, + "y_pos": 1206.5 + }, + { + "id": 8987, + "x_pos": 284.5, + "y_pos": 1154.5 + }, + { + "id": 8986, + "x_pos": 248, + "y_pos": 1167 + }, + { + "id": 8985, + "x_pos": 206, + "y_pos": 1494.5 + }, + { + "id": 8984, + "x_pos": 201, + "y_pos": 1648 + }, + { + "id": 8983, + "x_pos": 153.5, + "y_pos": 1639.5 + }, + { + "id": 8982, + "x_pos": 67.5, + "y_pos": 1668 + }, + { + "id": 8981, + "x_pos": 77.5, + "y_pos": 1638 + }, + { + "id": 8980, + "x_pos": 35, + "y_pos": 1659.5 + }, + { + "id": 8979, + "x_pos": 20, + "y_pos": 1665.5 + }, + { + "id": 8978, + "x_pos": 50, + "y_pos": 1527 + }, + { + "id": 8977, + "x_pos": -90.5, + "y_pos": 1541 + }, + { + "id": 8976, + "x_pos": 67, + "y_pos": 1254 + }, + { + "id": 8975, + "x_pos": -62.5, + "y_pos": 1403 + }, + { + "id": 8974, + "x_pos": -97.5, + "y_pos": 1314 + }, + { + "id": 8973, + "x_pos": -74, + "y_pos": 1292.5 + }, + { + "id": 8972, + "x_pos": -54.5, + "y_pos": 1291 + }, + { + "id": 8971, + "x_pos": -180, + "y_pos": 1338.5 + }, + { + "id": 8970, + "x_pos": -161, + "y_pos": 1317.5 + }, + { + "id": 8969, + "x_pos": -87.5, + "y_pos": 1234.5 + }, + { + "id": 8968, + "x_pos": -27.5, + "y_pos": 1188.5 + }, + { + "id": 8967, + "x_pos": -42.5, + "y_pos": 1150.5 + }, + { + "id": 8966, + "x_pos": -21, + "y_pos": 1120 + }, + { + "id": 8965, + "x_pos": 13.5, + "y_pos": 1089 + }, + { + "id": 8964, + "x_pos": 36, + "y_pos": 1090.5 + }, + { + "id": 8963, + "x_pos": -119.5, + "y_pos": 978 + }, + { + "id": 8962, + "x_pos": -137, + "y_pos": 991.5 + }, + { + "id": 8961, + "x_pos": -147, + "y_pos": 980.5 + }, + { + "id": 8960, + "x_pos": -297.5, + "y_pos": 1040 + }, + { + "id": 8959, + "x_pos": -212, + "y_pos": 1189.5 + }, + { + "id": 8958, + "x_pos": -201.5, + "y_pos": 969 + }, + { + "id": 8957, + "x_pos": -78.5, + "y_pos": 934 + }, + { + "id": 8956, + "x_pos": 2, + "y_pos": 936.5 + }, + { + "id": 8955, + "x_pos": 37.5, + "y_pos": 1054.5 + }, + { + "id": 8954, + "x_pos": 88.5, + "y_pos": 998 + }, + { + "id": 8953, + "x_pos": 176, + "y_pos": 1072.5 + }, + { + "id": 8952, + "x_pos": 473, + "y_pos": 1380 + }, + { + "id": 8951, + "x_pos": 519.5, + "y_pos": 1361.5 + }, + { + "id": 8950, + "x_pos": 491.5, + "y_pos": 1233.5 + }, + { + "id": 8949, + "x_pos": 446.5, + "y_pos": 1243.5 + }, + { + "id": 8948, + "x_pos": 429.5, + "y_pos": 1226.5 + }, + { + "id": 8947, + "x_pos": 434, + "y_pos": 1172 + }, + { + "id": 8946, + "x_pos": 385, + "y_pos": 1152 + }, + { + "id": 8945, + "x_pos": 387.5, + "y_pos": 1130.5 + }, + { + "id": 8944, + "x_pos": 422.5, + "y_pos": 1049.5 + }, + { + "id": 8943, + "x_pos": 336, + "y_pos": 1024.5 + }, + { + "id": 8942, + "x_pos": 390.5, + "y_pos": 1008.5 + }, + { + "id": 8941, + "x_pos": 306.5, + "y_pos": 1003 + }, + { + "id": 8940, + "x_pos": 91, + "y_pos": 892 + }, + { + "id": 8939, + "x_pos": -305, + "y_pos": 1136.5 + }, + { + "id": 8938, + "x_pos": -335, + "y_pos": 1173.5 + }, + { + "id": 8937, + "x_pos": -324.5, + "y_pos": 1116.5 + }, + { + "id": 8936, + "x_pos": -354.5, + "y_pos": 1209 + }, + { + "id": 8935, + "x_pos": -274.5, + "y_pos": 1331.5 + }, + { + "id": 8934, + "x_pos": -297, + "y_pos": 1343.5 + }, + { + "id": 8933, + "x_pos": -306, + "y_pos": 1347.5 + }, + { + "id": 8932, + "x_pos": -236.5, + "y_pos": 1445 + }, + { + "id": 8931, + "x_pos": -289.5, + "y_pos": 1405 + }, + { + "id": 8930, + "x_pos": -274, + "y_pos": 1439 + }, + { + "id": 8929, + "x_pos": -281, + "y_pos": 1470 + }, + { + "id": 8928, + "x_pos": -305.5, + "y_pos": 1487.5 + }, + { + "id": 8927, + "x_pos": -303, + "y_pos": 1524.5 + }, + { + "id": 8926, + "x_pos": -332, + "y_pos": 1526 + }, + { + "id": 8925, + "x_pos": -351, + "y_pos": 1478 + }, + { + "id": 8924, + "x_pos": -361, + "y_pos": 1372 + }, + { + "id": 8923, + "x_pos": -364, + "y_pos": 1414 + }, + { + "id": 8922, + "x_pos": -378.5, + "y_pos": 1434.5 + }, + { + "id": 8921, + "x_pos": -403.5, + "y_pos": 1436 + }, + { + "id": 8920, + "x_pos": -381.5, + "y_pos": 1392.5 + }, + { + "id": 8919, + "x_pos": -399, + "y_pos": 1322.5 + }, + { + "id": 8918, + "x_pos": -365.5, + "y_pos": 1303 + }, + { + "id": 8917, + "x_pos": -375.5, + "y_pos": 1274 + }, + { + "id": 8916, + "x_pos": -379.5, + "y_pos": 1259 + }, + { + "id": 8915, + "x_pos": -402.5, + "y_pos": 1233 + }, + { + "id": 8914, + "x_pos": -386.5, + "y_pos": 1139.5 + }, + { + "id": 8913, + "x_pos": -370, + "y_pos": 1120.5 + }, + { + "id": 8912, + "x_pos": -351.5, + "y_pos": 1051 + }, + { + "id": 8911, + "x_pos": -250.5, + "y_pos": 963.5 + }, + { + "id": 8910, + "x_pos": -322, + "y_pos": 989 + }, + { + "id": 8909, + "x_pos": -160.5, + "y_pos": 931 + }, + { + "id": 8908, + "x_pos": -54.5, + "y_pos": 857.5 + }, + { + "id": 8907, + "x_pos": -219.5, + "y_pos": 919.5 + }, + { + "id": 8906, + "x_pos": -199, + "y_pos": 853.5 + }, + { + "id": 8905, + "x_pos": -152.5, + "y_pos": 831.5 + }, + { + "id": 8904, + "x_pos": -131, + "y_pos": 809.5 + }, + { + "id": 8903, + "x_pos": -92.5, + "y_pos": 806 + }, + { + "id": 8902, + "x_pos": -31.5, + "y_pos": 785.5 + }, + { + "id": 8901, + "x_pos": 22.5, + "y_pos": 772.5 + }, + { + "id": 8900, + "x_pos": 37, + "y_pos": 757.5 + }, + { + "id": 8899, + "x_pos": 306, + "y_pos": 964 + }, + { + "id": 8898, + "x_pos": 326, + "y_pos": 965.5 + }, + { + "id": 8897, + "x_pos": 453.5, + "y_pos": 960 + }, + { + "id": 8896, + "x_pos": 456.5, + "y_pos": 934 + }, + { + "id": 8895, + "x_pos": 399.5, + "y_pos": 937.5 + }, + { + "id": 8894, + "x_pos": 372.5, + "y_pos": 907 + }, + { + "id": 8893, + "x_pos": 422, + "y_pos": 900.5 + }, + { + "id": 8892, + "x_pos": 412.5, + "y_pos": 852.5 + }, + { + "id": 8891, + "x_pos": 274, + "y_pos": 873 + }, + { + "id": 8890, + "x_pos": 405.5, + "y_pos": 819.5 + }, + { + "id": 8889, + "x_pos": 363.5, + "y_pos": 835.5 + }, + { + "id": 8888, + "x_pos": 253, + "y_pos": 827.5 + }, + { + "id": 8887, + "x_pos": 311, + "y_pos": 794.5 + }, + { + "id": 8886, + "x_pos": 184.5, + "y_pos": 693 + }, + { + "id": 8885, + "x_pos": -360, + "y_pos": 956.5 + }, + { + "id": 8884, + "x_pos": -321.5, + "y_pos": 916 + }, + { + "id": 8883, + "x_pos": -247, + "y_pos": 879.5 + }, + { + "id": 8882, + "x_pos": -228, + "y_pos": 877.5 + }, + { + "id": 8847, + "x_pos": -576.9444961172485, + "y_pos": 1533.7213608397788 + }, + { + "id": 8846, + "x_pos": -652.5788579422679, + "y_pos": 1544.5798696807688 + }, + { + "id": 8845, + "x_pos": -440.61106879647286, + "y_pos": 1488.555340209945 + }, + { + "id": 8844, + "x_pos": -548.8334273207747, + "y_pos": 1560.9427216795575 + }, + { + "id": 8843, + "x_pos": -526.1110687964729, + "y_pos": 1630.4980466366742 + }, + { + "id": 8842, + "x_pos": -413.4444961172485, + "y_pos": 1624.166035882662 + }, + { + "id": 8841, + "x_pos": -607.0555038827515, + "y_pos": 1666.0533715937918 + }, + { + "id": 8840, + "x_pos": -638, + "y_pos": 1699.5533715937918 + }, + { + "id": 8839, + "x_pos": -322.5555038827515, + "y_pos": 1687.1679587403314 + }, + { + "id": 8838, + "x_pos": -446.8334273207747, + "y_pos": 1713.166035882662 + }, + { + "id": 8802, + "x_pos": -553.0555038827515, + "y_pos": 1739.776716302551 + }, + { + "id": 8801, + "x_pos": -622.5555038827515, + "y_pos": 1748.6106804198898 + }, + { + "id": 8784, + "x_pos": -57.388931203527136, + "y_pos": 2917.553371593792 + }, + { + "id": 8769, + "x_pos": 146.55556491372135, + "y_pos": 2613.7213608397788 + }, + { + "id": 8766, + "x_pos": -235.9444656017631, + "y_pos": 2468.11068041989 + }, + { + "id": 8763, + "x_pos": -99.38899223449607, + "y_pos": 2390.1660053770065 + }, + { + "id": 8755, + "x_pos": 282, + "y_pos": 2517.11068041989 + }, + { + "id": 8754, + "x_pos": 149.77798446899214, + "y_pos": 2449.11068041989 + }, + { + "id": 8753, + "x_pos": 165.9139048992165, + "y_pos": 2391.099598650356 + }, + { + "id": 8750, + "x_pos": -1119.223451582101, + "y_pos": 594.5110822776783 + }, + { + "id": 8739, + "x_pos": -992.5422546107357, + "y_pos": 662.494250598164 + }, + { + "id": 8738, + "x_pos": -1139.621801474273, + "y_pos": 663.5108911777656 + }, + { + "id": 8727, + "x_pos": -910.5463477943194, + "y_pos": 695.4677525632137 + }, + { + "id": 8720, + "x_pos": -546.7744976058148, + "y_pos": 455.5072348597282 + }, + { + "id": 8658, + "x_pos": -1627.055503882752, + "y_pos": 3109.8873662167853 + }, + { + "id": 8657, + "x_pos": -2067.388992234496, + "y_pos": 3217.6660053770065 + }, + { + "id": 8656, + "x_pos": -1992.3334273207752, + "y_pos": 3227.38931958011 + }, + { + "id": 8655, + "x_pos": -2141.5, + "y_pos": 3222.276716302551 + }, + { + "id": 8654, + "x_pos": -1585.1669156725193, + "y_pos": 3184.5534020994473 + }, + { + "id": 8653, + "x_pos": -1714.8334883517446, + "y_pos": 3271.0553554627722 + }, + { + "id": 8652, + "x_pos": -1502.944496117248, + "y_pos": 3238.61068041989 + }, + { + "id": 8651, + "x_pos": -1853.5558773915309, + "y_pos": 3336.8873662167853 + }, + { + "id": 8650, + "x_pos": -1563.5, + "y_pos": 3193.7213608397788 + }, + { + "id": 8649, + "x_pos": -1870.5, + "y_pos": 3202.61068041989 + }, + { + "id": 8648, + "x_pos": -1659.778327462287, + "y_pos": 3306.6660053770065 + }, + { + "id": 8647, + "x_pos": -1433.1668546415503, + "y_pos": 3278.2766857968954 + }, + { + "id": 8646, + "x_pos": -1562.7779844689926, + "y_pos": 3277.442752185213 + }, + { + "id": 8645, + "x_pos": -1701.888992234496, + "y_pos": 3209.3320260068404 + }, + { + "id": 8644, + "x_pos": -1643.7779234380232, + "y_pos": 3155.0534020994473 + }, + { + "id": 8643, + "x_pos": -1839, + "y_pos": 3265 + }, + { + "id": 8642, + "x_pos": -2056.277923438023, + "y_pos": 2952.4427216795575 + }, + { + "id": 8641, + "x_pos": -2043.444496117248, + "y_pos": 3077.0553249571167 + }, + { + "id": 8640, + "x_pos": -2018.0882559585389, + "y_pos": 3105.984696111813 + }, + { + "id": 8639, + "x_pos": -1947, + "y_pos": 3026.3873662167853 + }, + { + "id": 8638, + "x_pos": -1607.7224195552712, + "y_pos": 3068.7766857968954 + }, + { + "id": 8637, + "x_pos": -2012.7224195552712, + "y_pos": 2995.3320260068404 + }, + { + "id": 8636, + "x_pos": -2037.388992234496, + "y_pos": 2875.8320412596686 + }, + { + "id": 8635, + "x_pos": -1896, + "y_pos": 3041.7213608397788 + }, + { + "id": 8634, + "x_pos": -1515.7779539535077, + "y_pos": 3110.221330334123 + }, + { + "id": 8633, + "x_pos": -2000.2224195552712, + "y_pos": 2937.3320412596686 + }, + { + "id": 8632, + "x_pos": -1853.5891820404345, + "y_pos": 3034.5447091409105 + }, + { + "id": 8631, + "x_pos": -1454.388992234496, + "y_pos": 3216.7213608397788 + }, + { + "id": 8630, + "x_pos": -1890.944496117248, + "y_pos": 3072.998046636674 + }, + { + "id": 8629, + "x_pos": -1532.111007765504, + "y_pos": 3197.6086965509085 + }, + { + "id": 8628, + "x_pos": -2120.5555343982364, + "y_pos": 3016.7766857968954 + }, + { + "id": 8627, + "x_pos": -1638.7779234380232, + "y_pos": 3003.498046636674 + }, + { + "id": 8626, + "x_pos": -1683.1113507587984, + "y_pos": 3100.5 + }, + { + "id": 8625, + "x_pos": -1559.388992234496, + "y_pos": 3139.11068041989 + }, + { + "id": 8624, + "x_pos": -1886.055503882752, + "y_pos": 2854.666035882662 + }, + { + "id": 8623, + "x_pos": -1643.3889312035271, + "y_pos": 2952.832010754013 + }, + { + "id": 8622, + "x_pos": -1544.9441531239536, + "y_pos": 3027.830057390687 + }, + { + "id": 8621, + "x_pos": -1550.5, + "y_pos": 3215.9427216795575 + }, + { + "id": 8620, + "x_pos": -1759.1110687964729, + "y_pos": 3002.942691173902 + }, + { + "id": 8619, + "x_pos": -1952.944496117248, + "y_pos": 2555.3873662167853 + }, + { + "id": 8618, + "x_pos": -1458.6665726792248, + "y_pos": 3122.276716302551 + }, + { + "id": 8617, + "x_pos": -1956.6665421637404, + "y_pos": 2743.3873662167853 + }, + { + "id": 8616, + "x_pos": -1885.3889617190116, + "y_pos": 2555.2766857968954 + }, + { + "id": 8615, + "x_pos": -1927.444496117248, + "y_pos": 2600.61068041989 + }, + { + "id": 8614, + "x_pos": -1923.944496117248, + "y_pos": 2606.2766857968954 + }, + { + "id": 8613, + "x_pos": -1962.8002180021704, + "y_pos": 2623.3044311825306 + }, + { + "id": 8612, + "x_pos": -1862.8334273207752, + "y_pos": 2653.666020629834 + }, + { + "id": 8611, + "x_pos": -1827.7779234380232, + "y_pos": 2698.8873662167853 + }, + { + "id": 8610, + "x_pos": -1735.8334273207752, + "y_pos": 2853.998046636674 + }, + { + "id": 8609, + "x_pos": -1582.0827337664964, + "y_pos": 3031.5673681554854 + }, + { + "id": 8608, + "x_pos": -1455.5555649137214, + "y_pos": 3006.8320412596686 + }, + { + "id": 8607, + "x_pos": -1569.4989710201162, + "y_pos": 2803.2213608397788 + }, + { + "id": 8606, + "x_pos": -1612.444496117248, + "y_pos": 2849.3320412596686 + }, + { + "id": 8605, + "x_pos": -1548, + "y_pos": 2917.4427216795575 + }, + { + "id": 8604, + "x_pos": -1325.2461584751009, + "y_pos": 3007.9205505140753 + }, + { + "id": 8603, + "x_pos": -1374.6110687964729, + "y_pos": 3032.942691173902 + }, + { + "id": 8602, + "x_pos": -1245.8330843274807, + "y_pos": 3071.61068041989 + }, + { + "id": 8601, + "x_pos": -1361.4444350862786, + "y_pos": 3037.498046636674 + }, + { + "id": 8600, + "x_pos": -1677, + "y_pos": 2922.2213608397788 + }, + { + "id": 8599, + "x_pos": -1470.388992234496, + "y_pos": 3062 + }, + { + "id": 8598, + "x_pos": -1491.944496117248, + "y_pos": 2869.666020629834 + }, + { + "id": 8597, + "x_pos": -1421.3889312035271, + "y_pos": 2892.332010754013 + }, + { + "id": 8596, + "x_pos": -1621.555503882752, + "y_pos": 2717.9980161310186 + }, + { + "id": 8595, + "x_pos": -1297.2955800250043, + "y_pos": 2934.856540224836 + }, + { + "id": 8594, + "x_pos": -1356.055503882752, + "y_pos": 2849.4980618895024 + }, + { + "id": 8593, + "x_pos": -1511.944496117248, + "y_pos": 2805.2766857968954 + }, + { + "id": 8592, + "x_pos": -1468.7779844689926, + "y_pos": 2846.9427216795575 + }, + { + "id": 8591, + "x_pos": -1359.9441531239536, + "y_pos": 2897.5553554627722 + }, + { + "id": 8590, + "x_pos": -1973.7355524146087, + "y_pos": 2765.714261077558 + }, + { + "id": 8589, + "x_pos": -1421.5555649137214, + "y_pos": 3088.4427216795575 + }, + { + "id": 8588, + "x_pos": -1364.2213905753874, + "y_pos": 2866.7747324335705 + }, + { + "id": 8587, + "x_pos": -1344.7224195552712, + "y_pos": 2935.8873662167853 + }, + { + "id": 8586, + "x_pos": -1349.7775804447288, + "y_pos": 2962.3320412596686 + }, + { + "id": 8585, + "x_pos": -1634.8330843274807, + "y_pos": 2624.7213608397788 + }, + { + "id": 8584, + "x_pos": -1394.5555649137214, + "y_pos": 2735.664067266509 + }, + { + "id": 8583, + "x_pos": -1329.444496117248, + "y_pos": 2801.053386846619 + }, + { + "id": 8582, + "x_pos": -1216.3889312035271, + "y_pos": 3101.5 + }, + { + "id": 8581, + "x_pos": -646.8886492412021, + "y_pos": 3156.666035882662 + }, + { + "id": 8352, + "x_pos": -1280, + "y_pos": -351.5 + }, + { + "id": 8351, + "x_pos": -1249.5, + "y_pos": -506 + }, + { + "id": 8350, + "x_pos": -995.5, + "y_pos": -704 + }, + { + "id": 8349, + "x_pos": -991, + "y_pos": -656.5 + }, + { + "id": 8348, + "x_pos": -981.5, + "y_pos": -636.5 + }, + { + "id": 8347, + "x_pos": -1002, + "y_pos": -509 + }, + { + "id": 8346, + "x_pos": -1106, + "y_pos": -317 + }, + { + "id": 8345, + "x_pos": -854, + "y_pos": -198 + }, + { + "id": 8344, + "x_pos": -886, + "y_pos": -199.5 + }, + { + "id": 8343, + "x_pos": -993.5, + "y_pos": -498.5 + }, + { + "id": 8342, + "x_pos": -777, + "y_pos": -330 + }, + { + "id": 8341, + "x_pos": -899.5, + "y_pos": -589.5 + }, + { + "id": 8340, + "x_pos": -793.5, + "y_pos": -158.5 + }, + { + "id": 8339, + "x_pos": -887.5, + "y_pos": -478.5 + }, + { + "id": 8338, + "x_pos": -1114, + "y_pos": -566.5 + }, + { + "id": 8337, + "x_pos": -1196, + "y_pos": -233.5 + }, + { + "id": 8336, + "x_pos": -1020.5, + "y_pos": -269 + }, + { + "id": 8335, + "x_pos": -1343, + "y_pos": -461.5 + }, + { + "id": 8334, + "x_pos": -782, + "y_pos": -457.5 + }, + { + "id": 8333, + "x_pos": -828, + "y_pos": -659.5 + }, + { + "id": 8332, + "x_pos": -699, + "y_pos": -526.5 + }, + { + "id": 8331, + "x_pos": -699.5, + "y_pos": -327.5 + }, + { + "id": 8330, + "x_pos": -717, + "y_pos": -514.5 + }, + { + "id": 8329, + "x_pos": -770.5, + "y_pos": -308 + }, + { + "id": 8328, + "x_pos": -648, + "y_pos": -325.5 + }, + { + "id": 8327, + "x_pos": -587.5, + "y_pos": -246 + }, + { + "id": 8326, + "x_pos": -560.5, + "y_pos": -324.5 + }, + { + "id": 8325, + "x_pos": -558.5, + "y_pos": -196 + }, + { + "id": 8324, + "x_pos": -540, + "y_pos": -418 + }, + { + "id": 8323, + "x_pos": -395.5, + "y_pos": -461 + }, + { + "id": 8322, + "x_pos": -344, + "y_pos": -465.5 + }, + { + "id": 8321, + "x_pos": -454.5, + "y_pos": -451.5 + }, + { + "id": 8320, + "x_pos": -361.5, + "y_pos": -440.5 + }, + { + "id": 8319, + "x_pos": -251, + "y_pos": -447 + }, + { + "id": 8318, + "x_pos": -677, + "y_pos": -441.5 + }, + { + "id": 8317, + "x_pos": -959.5, + "y_pos": -161 + }, + { + "id": 8316, + "x_pos": -302.5, + "y_pos": -196 + }, + { + "id": 8315, + "x_pos": -321.5, + "y_pos": -175 + }, + { + "id": 8314, + "x_pos": -255.5, + "y_pos": -280 + }, + { + "id": 8313, + "x_pos": -727.5, + "y_pos": -193 + }, + { + "id": 8312, + "x_pos": -680, + "y_pos": -350 + }, + { + "id": 8311, + "x_pos": -367.5, + "y_pos": -161.5 + }, + { + "id": 8310, + "x_pos": -358, + "y_pos": -147.5 + }, + { + "id": 8309, + "x_pos": -468.5, + "y_pos": -142 + }, + { + "id": 8308, + "x_pos": 472.5, + "y_pos": -627 + }, + { + "id": 8307, + "x_pos": 647.5, + "y_pos": -620.5 + }, + { + "id": 8306, + "x_pos": 596, + "y_pos": -565.5 + }, + { + "id": 8305, + "x_pos": 970.5, + "y_pos": -672 + }, + { + "id": 8304, + "x_pos": 565, + "y_pos": -525.5 + }, + { + "id": 8303, + "x_pos": 928.5, + "y_pos": -644 + }, + { + "id": 8302, + "x_pos": 892, + "y_pos": -597 + }, + { + "id": 8301, + "x_pos": 1019, + "y_pos": -628.5 + }, + { + "id": 8300, + "x_pos": 1001.5, + "y_pos": -566.5 + }, + { + "id": 8299, + "x_pos": 488.5, + "y_pos": -498.5 + }, + { + "id": 8298, + "x_pos": 805.5, + "y_pos": -540 + }, + { + "id": 8297, + "x_pos": 509, + "y_pos": -458 + }, + { + "id": 8296, + "x_pos": 1047, + "y_pos": -608 + }, + { + "id": 8295, + "x_pos": 1025, + "y_pos": -532.5 + }, + { + "id": 8294, + "x_pos": 743, + "y_pos": -515 + }, + { + "id": 8293, + "x_pos": 885.5, + "y_pos": -524 + }, + { + "id": 8292, + "x_pos": 417.5, + "y_pos": -595.5 + }, + { + "id": 8291, + "x_pos": 420, + "y_pos": -440.5 + }, + { + "id": 8290, + "x_pos": 1021.5, + "y_pos": -586 + }, + { + "id": 8289, + "x_pos": 790, + "y_pos": -499.5 + }, + { + "id": 8288, + "x_pos": 865, + "y_pos": -495.5 + }, + { + "id": 8287, + "x_pos": 891.5, + "y_pos": -488.5 + }, + { + "id": 8286, + "x_pos": 1018.5, + "y_pos": -526.5 + }, + { + "id": 8285, + "x_pos": 939.5, + "y_pos": -479 + }, + { + "id": 8284, + "x_pos": 661.5, + "y_pos": -447 + }, + { + "id": 8283, + "x_pos": 916.5, + "y_pos": -466 + }, + { + "id": 8282, + "x_pos": 843, + "y_pos": -458 + }, + { + "id": 8281, + "x_pos": 554, + "y_pos": -435 + }, + { + "id": 8280, + "x_pos": -766.5, + "y_pos": -192 + }, + { + "id": 8279, + "x_pos": 684, + "y_pos": -442.5 + }, + { + "id": 8278, + "x_pos": -197.5, + "y_pos": -305.5 + }, + { + "id": 8277, + "x_pos": 851, + "y_pos": -376.5 + }, + { + "id": 8276, + "x_pos": 656, + "y_pos": -400 + }, + { + "id": 8275, + "x_pos": 622, + "y_pos": -435.5 + }, + { + "id": 8274, + "x_pos": 401.5, + "y_pos": -422 + }, + { + "id": 8273, + "x_pos": 405.5, + "y_pos": -402.5 + }, + { + "id": 8272, + "x_pos": 649, + "y_pos": -408 + }, + { + "id": 8271, + "x_pos": -1093.5, + "y_pos": -459.5 + }, + { + "id": 8270, + "x_pos": 522.5, + "y_pos": -406.5 + }, + { + "id": 8269, + "x_pos": -735.5, + "y_pos": -145.5 + }, + { + "id": 8268, + "x_pos": -641.5, + "y_pos": -100 + }, + { + "id": 8267, + "x_pos": -803.5, + "y_pos": -95 + }, + { + "id": 8266, + "x_pos": 820.5, + "y_pos": -552 + }, + { + "id": 8265, + "x_pos": 840.5, + "y_pos": -385 + }, + { + "id": 8264, + "x_pos": 809.5, + "y_pos": -349 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/aa83f2e70bcc0a0d69998f52b97b07d4_6511257378598580635.png" + }, + "162": { + "name": "Mushroom", + "clear_name": "Mushroom", + "points": [ + { + "id": 24819, + "x_pos": -1403, + "y_pos": 2489 + }, + { + "id": 24818, + "x_pos": -1254, + "y_pos": 2438 + }, + { + "id": 24817, + "x_pos": -1298, + "y_pos": 2424 + }, + { + "id": 24816, + "x_pos": -1350, + "y_pos": 2365 + }, + { + "id": 24815, + "x_pos": -1259, + "y_pos": 2332 + }, + { + "id": 24814, + "x_pos": -1394, + "y_pos": 2275 + }, + { + "id": 24813, + "x_pos": -1418, + "y_pos": 2268 + }, + { + "id": 24812, + "x_pos": -1421, + "y_pos": 2253 + }, + { + "id": 24811, + "x_pos": -1395, + "y_pos": 2262 + }, + { + "id": 24810, + "x_pos": -1371, + "y_pos": 2262 + }, + { + "id": 24809, + "x_pos": -1440, + "y_pos": 2346 + }, + { + "id": 24808, + "x_pos": -1920, + "y_pos": 2120 + }, + { + "id": 24807, + "x_pos": -1897, + "y_pos": 2108 + }, + { + "id": 24806, + "x_pos": -1847, + "y_pos": 2041 + }, + { + "id": 24805, + "x_pos": -2095, + "y_pos": 1141 + }, + { + "id": 24804, + "x_pos": -1929, + "y_pos": 984 + }, + { + "id": 24803, + "x_pos": -1968, + "y_pos": 976 + }, + { + "id": 24802, + "x_pos": -1871, + "y_pos": 820 + }, + { + "id": 24801, + "x_pos": -1860, + "y_pos": 811 + }, + { + "id": 20070, + "x_pos": 569.1683044433594, + "y_pos": 212.24305725097656 + }, + { + "id": 20067, + "x_pos": 638.1912231445312, + "y_pos": 258.9210510253906 + }, + { + "id": 20066, + "x_pos": 629.9333801269531, + "y_pos": 307.9195556640625 + }, + { + "id": 20065, + "x_pos": 635.1448059082031, + "y_pos": 306.52508544921875 + }, + { + "id": 20064, + "x_pos": 647.3640441894531, + "y_pos": 311.19012451171875 + }, + { + "id": 18484, + "x_pos": 3480.5, + "y_pos": 6639 + }, + { + "id": 18483, + "x_pos": 3480.5, + "y_pos": 6642 + }, + { + "id": 18482, + "x_pos": 3471, + "y_pos": 6644 + }, + { + "id": 18481, + "x_pos": 3462.5, + "y_pos": 6659 + }, + { + "id": 18480, + "x_pos": 3440, + "y_pos": 6665.5 + }, + { + "id": 18478, + "x_pos": 3442.5, + "y_pos": 6670.5 + }, + { + "id": 18477, + "x_pos": 3458.5, + "y_pos": 6674 + }, + { + "id": 18475, + "x_pos": 3456, + "y_pos": 6674.5 + }, + { + "id": 18474, + "x_pos": 3457.5, + "y_pos": 6680.5 + }, + { + "id": 18471, + "x_pos": 3059.5, + "y_pos": 6685.5 + }, + { + "id": 18469, + "x_pos": 3059.5, + "y_pos": 6688 + }, + { + "id": 15745, + "x_pos": -1949.2000122070312, + "y_pos": 972.7826022100917 + }, + { + "id": 12029, + "x_pos": -1636.219919678715, + "y_pos": 2239.2707252205 + }, + { + "id": 12028, + "x_pos": -1651.4428080693074, + "y_pos": 2247.545041897025 + }, + { + "id": 12026, + "x_pos": -1629.8310933996354, + "y_pos": 2255.984356415119 + }, + { + "id": 12025, + "x_pos": -1658.4427766224012, + "y_pos": 2279.528588953035 + }, + { + "id": 12022, + "x_pos": -1666.6094269459713, + "y_pos": 2305.2931366940666 + }, + { + "id": 12020, + "x_pos": -1664.2760634050187, + "y_pos": 2333.056625624212 + }, + { + "id": 11995, + "x_pos": -1676.441057499041, + "y_pos": 1535.909781136249 + }, + { + "id": 11975, + "x_pos": -1700.7199499637895, + "y_pos": 1399.515447511406 + }, + { + "id": 11914, + "x_pos": 732.3548889160156, + "y_pos": 382.4015655517578 + }, + { + "id": 11837, + "x_pos": 874.8571166992188, + "y_pos": 77.17156982421875 + }, + { + "id": 11836, + "x_pos": 873.5206909179688, + "y_pos": 59.71659851074219 + }, + { + "id": 11835, + "x_pos": 818.4026489257812, + "y_pos": 52.81517028808594 + }, + { + "id": 11830, + "x_pos": -728.5, + "y_pos": 18 + }, + { + "id": 11723, + "x_pos": 699.5, + "y_pos": 648.5 + }, + { + "id": 11711, + "x_pos": 120.5, + "y_pos": 475.5 + }, + { + "id": 11708, + "x_pos": -520, + "y_pos": 88 + }, + { + "id": 11637, + "x_pos": -187, + "y_pos": 441.5 + }, + { + "id": 11636, + "x_pos": -183, + "y_pos": 450 + }, + { + "id": 11632, + "x_pos": -1629.5, + "y_pos": 2098 + }, + { + "id": 11630, + "x_pos": -1610.5, + "y_pos": 2148.5 + }, + { + "id": 11605, + "x_pos": -1523, + "y_pos": 236 + }, + { + "id": 11604, + "x_pos": -1521, + "y_pos": 236.5 + }, + { + "id": 11603, + "x_pos": -1519, + "y_pos": 235.5 + }, + { + "id": 11022, + "x_pos": 218.5, + "y_pos": 61.5 + }, + { + "id": 11021, + "x_pos": -519, + "y_pos": 60.5 + }, + { + "id": 10887, + "x_pos": 764.5, + "y_pos": 137 + }, + { + "id": 10886, + "x_pos": 739, + "y_pos": 150.5 + }, + { + "id": 10771, + "x_pos": -1150.5, + "y_pos": 1860.5 + }, + { + "id": 10764, + "x_pos": -1341.5, + "y_pos": 1954.5 + }, + { + "id": 10763, + "x_pos": -1367, + "y_pos": 1884 + }, + { + "id": 10762, + "x_pos": -1374.5, + "y_pos": 1894.5 + }, + { + "id": 10761, + "x_pos": -1412, + "y_pos": 1943.5 + }, + { + "id": 10722, + "x_pos": -1422, + "y_pos": 1759.5 + }, + { + "id": 10721, + "x_pos": -1438, + "y_pos": 1769.5 + }, + { + "id": 10720, + "x_pos": -1458.5, + "y_pos": 1778 + }, + { + "id": 10719, + "x_pos": -1446.5, + "y_pos": 1839.5 + }, + { + "id": 10718, + "x_pos": -1454, + "y_pos": 1819 + }, + { + "id": 10717, + "x_pos": -1473, + "y_pos": 1815.5 + }, + { + "id": 10716, + "x_pos": -1469, + "y_pos": 1830.5 + }, + { + "id": 10714, + "x_pos": -1490, + "y_pos": 1890 + }, + { + "id": 10675, + "x_pos": -1907, + "y_pos": 2097.5 + }, + { + "id": 10674, + "x_pos": -2066, + "y_pos": 2301 + }, + { + "id": 10672, + "x_pos": -2156, + "y_pos": 2120 + }, + { + "id": 10671, + "x_pos": -2151, + "y_pos": 2110.5 + }, + { + "id": 10595, + "x_pos": 211, + "y_pos": 2581 + }, + { + "id": 10314, + "x_pos": 1098.8692367028798, + "y_pos": 868.5391209929003 + }, + { + "id": 10313, + "x_pos": 1106.4276599152572, + "y_pos": 869.284696542868 + }, + { + "id": 10312, + "x_pos": 1005.5019005781869, + "y_pos": 957.4022708019579 + }, + { + "id": 10311, + "x_pos": 1013.1819483640966, + "y_pos": 963.9494889434973 + }, + { + "id": 10310, + "x_pos": 811.5705360757584, + "y_pos": 1020.6430053710938 + }, + { + "id": 10309, + "x_pos": 758.3576844616691, + "y_pos": 991.71435546875 + }, + { + "id": 10308, + "x_pos": 758.2852833056886, + "y_pos": 994.5000610351562 + }, + { + "id": 10163, + "x_pos": 794.3457340536761, + "y_pos": 878.1639099121094 + }, + { + "id": 10162, + "x_pos": 778.2762765018706, + "y_pos": 900.7151794433594 + }, + { + "id": 10161, + "x_pos": 772.423007520164, + "y_pos": 898.5445251464844 + }, + { + "id": 10160, + "x_pos": 790.9221610963932, + "y_pos": 892.8670043945312 + }, + { + "id": 10159, + "x_pos": 811.0641602238065, + "y_pos": 895.0352172851562 + }, + { + "id": 10158, + "x_pos": 707.7682050264129, + "y_pos": 940.0111083984375 + }, + { + "id": 10157, + "x_pos": 714.7852833056886, + "y_pos": 939.7858276367188 + }, + { + "id": 10156, + "x_pos": 721.6913593533818, + "y_pos": 949.6750183105469 + }, + { + "id": 10155, + "x_pos": 727.8768669963756, + "y_pos": 937.2476806640625 + }, + { + "id": 10154, + "x_pos": 739.9805688812812, + "y_pos": 946.0909881591797 + }, + { + "id": 10153, + "x_pos": 718.6384888086832, + "y_pos": 961.4921875 + }, + { + "id": 10152, + "x_pos": 741.0717489269546, + "y_pos": 971.0714721679688 + }, + { + "id": 10151, + "x_pos": 747.0561050602164, + "y_pos": 966.0857238769531 + }, + { + "id": 10150, + "x_pos": 818.4981654553958, + "y_pos": 990 + }, + { + "id": 10149, + "x_pos": 825.1736133438935, + "y_pos": 992.8110656738281 + }, + { + "id": 10148, + "x_pos": 838.9967768094384, + "y_pos": 989.0128784179688 + }, + { + "id": 10147, + "x_pos": 875.2448321842967, + "y_pos": 910.3319702148438 + }, + { + "id": 10146, + "x_pos": 878.981966985174, + "y_pos": 911.2142333984375 + }, + { + "id": 10145, + "x_pos": 848.3943582557704, + "y_pos": 930.9663696289062 + }, + { + "id": 10144, + "x_pos": 866.583832974341, + "y_pos": 915.2960968017578 + }, + { + "id": 10143, + "x_pos": 878.2858744634768, + "y_pos": 928.3572387695312 + }, + { + "id": 10132, + "x_pos": -1468.1000061035156, + "y_pos": 2327.1432914861152 + }, + { + "id": 10130, + "x_pos": -1460, + "y_pos": 2348.2657810450382 + }, + { + "id": 10109, + "x_pos": -1231.8000183105469, + "y_pos": 2402.827593737192 + }, + { + "id": 10107, + "x_pos": -1223.6999816894531, + "y_pos": 2459.1337471058587 + }, + { + "id": 10103, + "x_pos": -948.6000366210938, + "y_pos": 2233.211401943089 + }, + { + "id": 10097, + "x_pos": -1649.0999755859375, + "y_pos": 1226.7616663900044 + }, + { + "id": 10095, + "x_pos": -1652, + "y_pos": 1228.6089379218201 + }, + { + "id": 10093, + "x_pos": -1718.4999694824219, + "y_pos": 1316.0233867156621 + }, + { + "id": 9651, + "x_pos": -1322.5776574657366, + "y_pos": 1950.5758551042663 + }, + { + "id": 9650, + "x_pos": -1327.8069368868996, + "y_pos": 1942.2812008787787 + }, + { + "id": 9649, + "x_pos": -1225.5, + "y_pos": 1976.5 + }, + { + "id": 9648, + "x_pos": -1155.5, + "y_pos": 1841 + }, + { + "id": 9647, + "x_pos": -1145.5, + "y_pos": 1838 + }, + { + "id": 9646, + "x_pos": -1104.5, + "y_pos": 1958 + }, + { + "id": 9645, + "x_pos": -1168, + "y_pos": 1859 + }, + { + "id": 9644, + "x_pos": -1171.5, + "y_pos": 1844.5 + }, + { + "id": 9643, + "x_pos": -981, + "y_pos": 1825 + }, + { + "id": 9642, + "x_pos": -1020.5, + "y_pos": 1854 + }, + { + "id": 9641, + "x_pos": -980, + "y_pos": 1568.5 + }, + { + "id": 9640, + "x_pos": -1219, + "y_pos": 1975.5 + }, + { + "id": 9639, + "x_pos": -964, + "y_pos": 1802 + }, + { + "id": 9638, + "x_pos": -1191, + "y_pos": 1969.5 + }, + { + "id": 9637, + "x_pos": -1205.5, + "y_pos": 1987 + }, + { + "id": 9636, + "x_pos": -1120, + "y_pos": 1953.5 + }, + { + "id": 9635, + "x_pos": -1106, + "y_pos": 1614 + }, + { + "id": 9634, + "x_pos": -980.5, + "y_pos": 1565 + }, + { + "id": 9633, + "x_pos": -1219.5, + "y_pos": 1983.5 + }, + { + "id": 9632, + "x_pos": -1011, + "y_pos": 2024.5 + }, + { + "id": 9631, + "x_pos": -1027, + "y_pos": 2019.5 + }, + { + "id": 9630, + "x_pos": -984.5, + "y_pos": 1820.5 + }, + { + "id": 9629, + "x_pos": -1179.5, + "y_pos": 1843.5 + }, + { + "id": 9628, + "x_pos": -945, + "y_pos": 1800 + }, + { + "id": 9627, + "x_pos": -1160.5, + "y_pos": 2101.5 + }, + { + "id": 9626, + "x_pos": -1249, + "y_pos": 2007 + }, + { + "id": 9625, + "x_pos": -1009.5, + "y_pos": 2041 + }, + { + "id": 9624, + "x_pos": -1155, + "y_pos": 2101 + }, + { + "id": 9623, + "x_pos": -1543.0732671515661, + "y_pos": 1985.0833849805022 + }, + { + "id": 9622, + "x_pos": -1166, + "y_pos": 2112 + }, + { + "id": 9621, + "x_pos": -1057, + "y_pos": 2231.5 + }, + { + "id": 9620, + "x_pos": -1066.5, + "y_pos": 2262 + }, + { + "id": 9619, + "x_pos": -964, + "y_pos": 2142.5 + }, + { + "id": 9618, + "x_pos": -1057, + "y_pos": 2412.5 + }, + { + "id": 9617, + "x_pos": -1003, + "y_pos": 2254 + }, + { + "id": 9616, + "x_pos": -1001, + "y_pos": 2294.5 + }, + { + "id": 9615, + "x_pos": -983.5, + "y_pos": 1568 + }, + { + "id": 9614, + "x_pos": -971, + "y_pos": 1572.5 + }, + { + "id": 9613, + "x_pos": -979, + "y_pos": 1574.5 + }, + { + "id": 9612, + "x_pos": -1018, + "y_pos": 1614 + }, + { + "id": 9611, + "x_pos": -1030, + "y_pos": 1655 + }, + { + "id": 9610, + "x_pos": -970, + "y_pos": 1575 + }, + { + "id": 9609, + "x_pos": -987, + "y_pos": 1578.5 + }, + { + "id": 9608, + "x_pos": -964.5, + "y_pos": 2508 + }, + { + "id": 9607, + "x_pos": -887, + "y_pos": 2539.5 + }, + { + "id": 9606, + "x_pos": -877.5, + "y_pos": 2545 + }, + { + "id": 9605, + "x_pos": -1065.5, + "y_pos": 2415 + }, + { + "id": 9604, + "x_pos": -1455.5773144724421, + "y_pos": 1903.8173056699634 + }, + { + "id": 9603, + "x_pos": -1542.0682251501357, + "y_pos": 1985.6468520548178 + }, + { + "id": 9602, + "x_pos": -1631.5737473421786, + "y_pos": 2049.0828057592535 + }, + { + "id": 9601, + "x_pos": -1634.6300744088376, + "y_pos": 2047.676709043798 + }, + { + "id": 9600, + "x_pos": -1133.5, + "y_pos": 1663 + }, + { + "id": 9599, + "x_pos": -940.5, + "y_pos": 1586 + }, + { + "id": 9598, + "x_pos": -1016, + "y_pos": 1627 + }, + { + "id": 9597, + "x_pos": -1122, + "y_pos": 1234 + }, + { + "id": 9596, + "x_pos": -1157.5, + "y_pos": 1236.5 + }, + { + "id": 9595, + "x_pos": -1084.5, + "y_pos": 1104 + }, + { + "id": 9594, + "x_pos": -1074.5, + "y_pos": 1104 + }, + { + "id": 9593, + "x_pos": -1118.5, + "y_pos": 1105 + }, + { + "id": 9592, + "x_pos": -1101, + "y_pos": 1076.5 + }, + { + "id": 9591, + "x_pos": -1120, + "y_pos": 1111 + }, + { + "id": 9590, + "x_pos": -1117.5, + "y_pos": 1149.5 + }, + { + "id": 9589, + "x_pos": -1072, + "y_pos": 1107.5 + }, + { + "id": 9588, + "x_pos": -1108.5, + "y_pos": 1112 + }, + { + "id": 9587, + "x_pos": -1253, + "y_pos": 748 + }, + { + "id": 9586, + "x_pos": -1220, + "y_pos": 759 + }, + { + "id": 9585, + "x_pos": -1001, + "y_pos": 1057 + }, + { + "id": 9584, + "x_pos": -1095.5, + "y_pos": 1074 + }, + { + "id": 9583, + "x_pos": -1094.5, + "y_pos": 1146.5 + }, + { + "id": 9582, + "x_pos": -1231, + "y_pos": 757 + }, + { + "id": 9581, + "x_pos": -1116, + "y_pos": 1269 + }, + { + "id": 9580, + "x_pos": -1256, + "y_pos": 760 + }, + { + "id": 9579, + "x_pos": -1095.5, + "y_pos": 1170 + }, + { + "id": 9578, + "x_pos": -1091.5, + "y_pos": 1235 + }, + { + "id": 9577, + "x_pos": -981.5, + "y_pos": 2146.5 + }, + { + "id": 9576, + "x_pos": -1142.5, + "y_pos": 1287.5 + }, + { + "id": 9575, + "x_pos": -803, + "y_pos": 2436 + }, + { + "id": 9574, + "x_pos": -1104.5, + "y_pos": 1667.5 + }, + { + "id": 9573, + "x_pos": -1268, + "y_pos": 776 + }, + { + "id": 9572, + "x_pos": -1055, + "y_pos": 797 + }, + { + "id": 9571, + "x_pos": -831.5, + "y_pos": 2453.5 + }, + { + "id": 9570, + "x_pos": -1150, + "y_pos": 2100 + }, + { + "id": 9569, + "x_pos": -815, + "y_pos": 2574.5 + }, + { + "id": 9568, + "x_pos": -953, + "y_pos": 1824.5 + }, + { + "id": 9567, + "x_pos": -1045, + "y_pos": 2248.5 + }, + { + "id": 9566, + "x_pos": -1134, + "y_pos": 2023.5 + }, + { + "id": 9565, + "x_pos": -1194, + "y_pos": 823 + }, + { + "id": 9564, + "x_pos": -1632.9643173458298, + "y_pos": 2034.179589897146 + }, + { + "id": 9563, + "x_pos": -1234.5, + "y_pos": 1991 + }, + { + "id": 9562, + "x_pos": -1018, + "y_pos": 1070 + }, + { + "id": 9561, + "x_pos": -808, + "y_pos": 2573 + }, + { + "id": 9560, + "x_pos": -1145.5, + "y_pos": 1685.5 + }, + { + "id": 9559, + "x_pos": -1040.5, + "y_pos": 2287 + }, + { + "id": 9558, + "x_pos": -1104, + "y_pos": 835 + }, + { + "id": 9557, + "x_pos": -951, + "y_pos": 1848 + }, + { + "id": 9556, + "x_pos": -1369.0766970845116, + "y_pos": 1379.572765924272 + }, + { + "id": 9555, + "x_pos": -859.5, + "y_pos": 2565 + }, + { + "id": 9554, + "x_pos": -1113, + "y_pos": 725 + }, + { + "id": 9553, + "x_pos": -903, + "y_pos": 947 + }, + { + "id": 9552, + "x_pos": -1380, + "y_pos": 375 + }, + { + "id": 9551, + "x_pos": -1171, + "y_pos": 561 + }, + { + "id": 9550, + "x_pos": -1156, + "y_pos": 569 + }, + { + "id": 9549, + "x_pos": -1597, + "y_pos": 360 + }, + { + "id": 9548, + "x_pos": -1554, + "y_pos": 234 + }, + { + "id": 9547, + "x_pos": -1590, + "y_pos": 375 + }, + { + "id": 9546, + "x_pos": -1536, + "y_pos": 245 + }, + { + "id": 9443, + "x_pos": -677, + "y_pos": 1304 + }, + { + "id": 9442, + "x_pos": -783.5, + "y_pos": 1355 + }, + { + "id": 9441, + "x_pos": -620.5, + "y_pos": 1337 + }, + { + "id": 9440, + "x_pos": -571.5, + "y_pos": 1350.5 + }, + { + "id": 9439, + "x_pos": -545, + "y_pos": 1321 + }, + { + "id": 9438, + "x_pos": -612.5, + "y_pos": 1365.5 + }, + { + "id": 9394, + "x_pos": -715.5, + "y_pos": 1370.5 + }, + { + "id": 9393, + "x_pos": -634.5, + "y_pos": 1366.5 + }, + { + "id": 9390, + "x_pos": -429, + "y_pos": 1347 + }, + { + "id": 9385, + "x_pos": -531, + "y_pos": 1395.5 + }, + { + "id": 9376, + "x_pos": -704, + "y_pos": 1420 + }, + { + "id": 9375, + "x_pos": -843, + "y_pos": 1338 + }, + { + "id": 9372, + "x_pos": -692, + "y_pos": 1538.5 + }, + { + "id": 9361, + "x_pos": -481, + "y_pos": 1407.5 + }, + { + "id": 9360, + "x_pos": -584.5, + "y_pos": 1381.5 + }, + { + "id": 9357, + "x_pos": -445, + "y_pos": 1415.5 + }, + { + "id": 9285, + "x_pos": 677, + "y_pos": -101 + }, + { + "id": 9283, + "x_pos": 634, + "y_pos": -89.5 + }, + { + "id": 9280, + "x_pos": 688.5, + "y_pos": -105 + }, + { + "id": 9214, + "x_pos": 512, + "y_pos": -269 + }, + { + "id": 9213, + "x_pos": 789.5, + "y_pos": -297.5 + }, + { + "id": 9212, + "x_pos": 622, + "y_pos": -128 + }, + { + "id": 9211, + "x_pos": 683, + "y_pos": -293 + }, + { + "id": 9210, + "x_pos": 387.5, + "y_pos": 6.5 + }, + { + "id": 9209, + "x_pos": 544.5, + "y_pos": -132 + }, + { + "id": 9208, + "x_pos": 428.5, + "y_pos": 195 + }, + { + "id": 9207, + "x_pos": 455.5, + "y_pos": -245.5 + }, + { + "id": 9206, + "x_pos": 570, + "y_pos": 232 + }, + { + "id": 9205, + "x_pos": 563, + "y_pos": 235 + }, + { + "id": 9168, + "x_pos": 709, + "y_pos": -229.5 + }, + { + "id": 9167, + "x_pos": 876, + "y_pos": -294.5 + }, + { + "id": 9163, + "x_pos": 668, + "y_pos": -247.5 + }, + { + "id": 9162, + "x_pos": 701.5, + "y_pos": -268.5 + }, + { + "id": 9159, + "x_pos": 685.5, + "y_pos": -246 + }, + { + "id": 9157, + "x_pos": 593.5, + "y_pos": -313 + }, + { + "id": 9122, + "x_pos": 897.5, + "y_pos": 1051.5 + }, + { + "id": 9121, + "x_pos": 908.5, + "y_pos": 1062 + }, + { + "id": 9120, + "x_pos": 804.5, + "y_pos": 1068.5 + }, + { + "id": 9119, + "x_pos": 805, + "y_pos": 1076.5 + }, + { + "id": 9118, + "x_pos": 895.5, + "y_pos": 1055 + }, + { + "id": 9117, + "x_pos": 210, + "y_pos": 318.5 + }, + { + "id": 9116, + "x_pos": 388, + "y_pos": 405.5 + }, + { + "id": 9115, + "x_pos": 385, + "y_pos": 454 + }, + { + "id": 9114, + "x_pos": 404, + "y_pos": 461 + }, + { + "id": 9113, + "x_pos": -717, + "y_pos": 244 + }, + { + "id": 9112, + "x_pos": -744, + "y_pos": 255 + }, + { + "id": 9111, + "x_pos": 471, + "y_pos": 510 + }, + { + "id": 9110, + "x_pos": -318, + "y_pos": 426.5 + }, + { + "id": 9109, + "x_pos": 475.5, + "y_pos": 501 + }, + { + "id": 9108, + "x_pos": -287.5, + "y_pos": 450 + }, + { + "id": 9107, + "x_pos": 324, + "y_pos": 505 + }, + { + "id": 9106, + "x_pos": 200, + "y_pos": 323.5 + }, + { + "id": 9105, + "x_pos": 809.5, + "y_pos": 1065.5 + }, + { + "id": 9104, + "x_pos": -722, + "y_pos": 242 + }, + { + "id": 9103, + "x_pos": -56, + "y_pos": 478.5 + }, + { + "id": 9102, + "x_pos": -505, + "y_pos": 462 + }, + { + "id": 9101, + "x_pos": 288.5, + "y_pos": 397 + }, + { + "id": 9100, + "x_pos": 320, + "y_pos": 500 + }, + { + "id": 9099, + "x_pos": -674, + "y_pos": 312 + }, + { + "id": 9098, + "x_pos": -444, + "y_pos": 512 + }, + { + "id": 9097, + "x_pos": 460.5, + "y_pos": 504.5 + }, + { + "id": 9096, + "x_pos": 807, + "y_pos": 1064 + }, + { + "id": 9095, + "x_pos": 691.5, + "y_pos": 1100.5 + }, + { + "id": 9094, + "x_pos": -254.5, + "y_pos": 612 + }, + { + "id": 9093, + "x_pos": 546.5, + "y_pos": 532 + }, + { + "id": 9092, + "x_pos": 921.5, + "y_pos": 1116.5 + }, + { + "id": 9091, + "x_pos": 812.5, + "y_pos": 1106 + }, + { + "id": 9090, + "x_pos": 689, + "y_pos": 1111 + }, + { + "id": 9089, + "x_pos": 546, + "y_pos": 527 + }, + { + "id": 9088, + "x_pos": 577.5, + "y_pos": 648 + }, + { + "id": 9087, + "x_pos": 942, + "y_pos": 792.5 + }, + { + "id": 9086, + "x_pos": 462, + "y_pos": 509 + }, + { + "id": 9085, + "x_pos": -578, + "y_pos": 342 + }, + { + "id": 9084, + "x_pos": 977.5, + "y_pos": 985.5 + }, + { + "id": 9083, + "x_pos": 935.5, + "y_pos": 1120 + }, + { + "id": 9082, + "x_pos": 535.5, + "y_pos": 538 + }, + { + "id": 9081, + "x_pos": -451, + "y_pos": 604 + }, + { + "id": 9080, + "x_pos": 587.5, + "y_pos": 649 + }, + { + "id": 9079, + "x_pos": -298.5, + "y_pos": 644.5 + }, + { + "id": 9078, + "x_pos": 185, + "y_pos": 337 + }, + { + "id": 9077, + "x_pos": -258.5, + "y_pos": 517 + }, + { + "id": 9076, + "x_pos": -265, + "y_pos": 649 + }, + { + "id": 9075, + "x_pos": 457, + "y_pos": 501.5 + }, + { + "id": 9074, + "x_pos": 470.5, + "y_pos": 518 + }, + { + "id": 9073, + "x_pos": 214.5, + "y_pos": 516.5 + }, + { + "id": 9072, + "x_pos": -281, + "y_pos": 659.5 + }, + { + "id": 9071, + "x_pos": -290, + "y_pos": 671.5 + }, + { + "id": 9070, + "x_pos": 209, + "y_pos": 324.5 + }, + { + "id": 9069, + "x_pos": 550, + "y_pos": 695 + }, + { + "id": 9068, + "x_pos": -44.5, + "y_pos": 568.5 + }, + { + "id": 9067, + "x_pos": 807, + "y_pos": 1120 + }, + { + "id": 9066, + "x_pos": 961.5, + "y_pos": 1009.5 + }, + { + "id": 9065, + "x_pos": 949, + "y_pos": 818.5 + }, + { + "id": 9064, + "x_pos": 808, + "y_pos": 730 + }, + { + "id": 9063, + "x_pos": 117, + "y_pos": 583 + }, + { + "id": 9062, + "x_pos": -321.5, + "y_pos": 384 + }, + { + "id": 9051, + "x_pos": 385, + "y_pos": 443 + }, + { + "id": 9050, + "x_pos": 196, + "y_pos": 403 + }, + { + "id": 9049, + "x_pos": -8, + "y_pos": 493 + }, + { + "id": 9048, + "x_pos": 174, + "y_pos": 397.5 + }, + { + "id": 9047, + "x_pos": 210, + "y_pos": 356 + }, + { + "id": 9046, + "x_pos": 201.5, + "y_pos": 416.5 + }, + { + "id": 9045, + "x_pos": -146.5, + "y_pos": 471.5 + }, + { + "id": 9044, + "x_pos": 228.5, + "y_pos": 407 + }, + { + "id": 9043, + "x_pos": 175, + "y_pos": 419 + }, + { + "id": 9042, + "x_pos": 144.5, + "y_pos": 424 + }, + { + "id": 9041, + "x_pos": 119.5, + "y_pos": 475.5 + }, + { + "id": 9040, + "x_pos": -289, + "y_pos": 387.5 + }, + { + "id": 9039, + "x_pos": -221, + "y_pos": 149 + }, + { + "id": 9038, + "x_pos": -248, + "y_pos": 159 + }, + { + "id": 9037, + "x_pos": -198, + "y_pos": 176 + }, + { + "id": 9036, + "x_pos": -205, + "y_pos": 173 + }, + { + "id": 9034, + "x_pos": -189, + "y_pos": 120 + }, + { + "id": 9033, + "x_pos": 243.5, + "y_pos": 268.5 + }, + { + "id": 9032, + "x_pos": 230.5, + "y_pos": 299.5 + }, + { + "id": 9031, + "x_pos": 212.5, + "y_pos": 363.5 + }, + { + "id": 9029, + "x_pos": 260.5, + "y_pos": 294 + }, + { + "id": 9028, + "x_pos": 402, + "y_pos": 413.5 + }, + { + "id": 9027, + "x_pos": 305, + "y_pos": 203.5 + }, + { + "id": 9026, + "x_pos": 292.5, + "y_pos": 132.5 + }, + { + "id": 9025, + "x_pos": 350, + "y_pos": -110 + }, + { + "id": 9024, + "x_pos": 132.5, + "y_pos": 166 + }, + { + "id": 9023, + "x_pos": 414.5, + "y_pos": -91 + }, + { + "id": 9022, + "x_pos": 353.5, + "y_pos": 135 + }, + { + "id": 9021, + "x_pos": 201, + "y_pos": -16 + }, + { + "id": 9020, + "x_pos": 380, + "y_pos": -100 + }, + { + "id": 9019, + "x_pos": 353.5, + "y_pos": 160 + }, + { + "id": 9018, + "x_pos": 289.5, + "y_pos": 148.5 + }, + { + "id": 9017, + "x_pos": 497, + "y_pos": -93 + }, + { + "id": 9016, + "x_pos": 431.5, + "y_pos": 13.5 + }, + { + "id": 9015, + "x_pos": 282, + "y_pos": 148.5 + }, + { + "id": 9014, + "x_pos": 193.5, + "y_pos": 120.5 + }, + { + "id": 9013, + "x_pos": 359, + "y_pos": 113 + }, + { + "id": 9012, + "x_pos": 379, + "y_pos": -17.5 + }, + { + "id": 9011, + "x_pos": 330.5, + "y_pos": 24 + }, + { + "id": 9010, + "x_pos": 193, + "y_pos": 142 + }, + { + "id": 9009, + "x_pos": 317, + "y_pos": 188 + }, + { + "id": 9008, + "x_pos": 352, + "y_pos": 115 + }, + { + "id": 9007, + "x_pos": 364, + "y_pos": 140 + }, + { + "id": 8827, + "x_pos": -467.27798446899214, + "y_pos": 1498.8320412596686 + }, + { + "id": 8826, + "x_pos": -391.2772374514343, + "y_pos": 1562 + }, + { + "id": 8825, + "x_pos": -409.4993140134111, + "y_pos": 1574 + }, + { + "id": 8824, + "x_pos": -408, + "y_pos": 1666.2213303341232 + }, + { + "id": 8823, + "x_pos": -422.8334273207747, + "y_pos": 1598.2213608397788 + }, + { + "id": 8822, + "x_pos": -404.6113507587979, + "y_pos": 1555.7194074764539 + }, + { + "id": 8821, + "x_pos": -440, + "y_pos": 1609.4427216795575 + }, + { + "id": 8820, + "x_pos": -414.4444961172485, + "y_pos": 1577.276716302551 + }, + { + "id": 8819, + "x_pos": -578.5, + "y_pos": 1459.8873662167853 + }, + { + "id": 8816, + "x_pos": -624.0808130040468, + "y_pos": 1555.5755722814529 + }, + { + "id": 8811, + "x_pos": -497.4444961172485, + "y_pos": 1709.6106499142334 + }, + { + "id": 8810, + "x_pos": -547, + "y_pos": 1730.5553249571167 + }, + { + "id": 8797, + "x_pos": -544.6665726792253, + "y_pos": 1688.6660053770065 + }, + { + "id": 8749, + "x_pos": -1108.3202319578531, + "y_pos": 646.3561128840092 + }, + { + "id": 8748, + "x_pos": -1118.5, + "y_pos": 610.5 + }, + { + "id": 8746, + "x_pos": -1150, + "y_pos": 645 + }, + { + "id": 8745, + "x_pos": -1111.6124334252563, + "y_pos": 648.0095851915603 + }, + { + "id": 8744, + "x_pos": -1100.3199178622299, + "y_pos": 612.6732986934167 + }, + { + "id": 8742, + "x_pos": -1118.1925353234055, + "y_pos": 652.4625849602403 + }, + { + "id": 8741, + "x_pos": -1060.2889711056732, + "y_pos": 674.4875106942159 + }, + { + "id": 8740, + "x_pos": -1049.8862697097943, + "y_pos": 639.5032765812443 + }, + { + "id": 8730, + "x_pos": -875.581205203141, + "y_pos": 702.7469411768338 + }, + { + "id": 8723, + "x_pos": -898.2287327559152, + "y_pos": 611.0036174298643 + }, + { + "id": 8440, + "x_pos": -1139.5, + "y_pos": -215.5 + }, + { + "id": 8439, + "x_pos": -1013.5, + "y_pos": -160 + }, + { + "id": 8438, + "x_pos": -1065, + "y_pos": -144 + }, + { + "id": 8437, + "x_pos": -1045.5, + "y_pos": -142.5 + }, + { + "id": 8436, + "x_pos": -877, + "y_pos": -90 + }, + { + "id": 8435, + "x_pos": -874, + "y_pos": -156 + }, + { + "id": 8434, + "x_pos": -934.5, + "y_pos": -357 + }, + { + "id": 8433, + "x_pos": -834, + "y_pos": -313 + }, + { + "id": 8432, + "x_pos": -908.5, + "y_pos": -372 + }, + { + "id": 8431, + "x_pos": -831.5, + "y_pos": -358.5 + }, + { + "id": 8430, + "x_pos": -828.5, + "y_pos": -227 + }, + { + "id": 8429, + "x_pos": -922.5, + "y_pos": -295 + }, + { + "id": 8428, + "x_pos": -1025, + "y_pos": -389.5 + }, + { + "id": 8427, + "x_pos": -939.5, + "y_pos": -343.5 + }, + { + "id": 8426, + "x_pos": -991, + "y_pos": -245 + }, + { + "id": 8425, + "x_pos": -1201, + "y_pos": -208 + }, + { + "id": 8424, + "x_pos": -905.5, + "y_pos": -271.5 + }, + { + "id": 8423, + "x_pos": -1026, + "y_pos": -371.5 + }, + { + "id": 8422, + "x_pos": -1128.5, + "y_pos": -574 + }, + { + "id": 8421, + "x_pos": -1148, + "y_pos": -535.5 + }, + { + "id": 8420, + "x_pos": -1171.5, + "y_pos": -533 + }, + { + "id": 8419, + "x_pos": -1064.5, + "y_pos": -626 + }, + { + "id": 8418, + "x_pos": -1044, + "y_pos": -551.5 + }, + { + "id": 8417, + "x_pos": -876, + "y_pos": -586.5 + }, + { + "id": 8416, + "x_pos": -883, + "y_pos": -537.5 + }, + { + "id": 8415, + "x_pos": -939, + "y_pos": -681.5 + }, + { + "id": 8414, + "x_pos": -826, + "y_pos": -604.5 + }, + { + "id": 8413, + "x_pos": -888, + "y_pos": -532.5 + }, + { + "id": 8412, + "x_pos": -785.5, + "y_pos": -574 + }, + { + "id": 8411, + "x_pos": -814, + "y_pos": -478.5 + }, + { + "id": 8410, + "x_pos": -794, + "y_pos": -533 + }, + { + "id": 8409, + "x_pos": -800.5, + "y_pos": -568 + }, + { + "id": 8408, + "x_pos": -700.5, + "y_pos": -603 + }, + { + "id": 8407, + "x_pos": -638, + "y_pos": -585 + }, + { + "id": 8406, + "x_pos": -772.5, + "y_pos": -394 + }, + { + "id": 8405, + "x_pos": -568.5, + "y_pos": -272.5 + }, + { + "id": 8404, + "x_pos": -484.5, + "y_pos": -262 + }, + { + "id": 8403, + "x_pos": -599, + "y_pos": -239 + }, + { + "id": 8402, + "x_pos": -499.5, + "y_pos": -240 + }, + { + "id": 8401, + "x_pos": -609, + "y_pos": -372.5 + }, + { + "id": 8400, + "x_pos": -444.5, + "y_pos": -260 + }, + { + "id": 8399, + "x_pos": -475, + "y_pos": -286 + }, + { + "id": 8398, + "x_pos": -436.5, + "y_pos": -230.5 + }, + { + "id": 8397, + "x_pos": -481.5, + "y_pos": -223.5 + }, + { + "id": 8396, + "x_pos": -463.5, + "y_pos": -255 + }, + { + "id": 8395, + "x_pos": -456.5, + "y_pos": -214 + }, + { + "id": 8394, + "x_pos": -493.5, + "y_pos": -201.5 + }, + { + "id": 8393, + "x_pos": -629.5, + "y_pos": -359 + }, + { + "id": 8392, + "x_pos": -473, + "y_pos": -203.5 + }, + { + "id": 8391, + "x_pos": -568, + "y_pos": -334 + }, + { + "id": 8390, + "x_pos": -368, + "y_pos": -241 + }, + { + "id": 8389, + "x_pos": -413.5, + "y_pos": -212 + }, + { + "id": 8388, + "x_pos": -702, + "y_pos": -222.5 + }, + { + "id": 8387, + "x_pos": -477.5, + "y_pos": -181 + }, + { + "id": 8386, + "x_pos": -629.5, + "y_pos": -531 + }, + { + "id": 8385, + "x_pos": -385.5, + "y_pos": -214 + }, + { + "id": 8384, + "x_pos": -283.5, + "y_pos": -415 + }, + { + "id": 8383, + "x_pos": -222, + "y_pos": -432.5 + }, + { + "id": 8382, + "x_pos": -213.5, + "y_pos": -407 + }, + { + "id": 8381, + "x_pos": -217.5, + "y_pos": -303 + }, + { + "id": 8380, + "x_pos": -300.5, + "y_pos": -401 + }, + { + "id": 8379, + "x_pos": -238.5, + "y_pos": -398.5 + }, + { + "id": 8378, + "x_pos": -298.5, + "y_pos": -349.5 + }, + { + "id": 8377, + "x_pos": -241.5, + "y_pos": -390.5 + }, + { + "id": 8376, + "x_pos": -280.5, + "y_pos": -330 + }, + { + "id": 8375, + "x_pos": -248, + "y_pos": -281.5 + }, + { + "id": 8374, + "x_pos": -858, + "y_pos": -273 + }, + { + "id": 8373, + "x_pos": -815.5, + "y_pos": -322 + }, + { + "id": 8372, + "x_pos": -927.5, + "y_pos": -343 + }, + { + "id": 8371, + "x_pos": -424.5, + "y_pos": -187.5 + }, + { + "id": 8370, + "x_pos": -1079.5, + "y_pos": -204 + }, + { + "id": 8369, + "x_pos": -784.5, + "y_pos": -94 + }, + { + "id": 8368, + "x_pos": -930.5, + "y_pos": -317.5 + }, + { + "id": 8367, + "x_pos": -1150.5, + "y_pos": -463 + }, + { + "id": 8366, + "x_pos": -585, + "y_pos": -320 + }, + { + "id": 8365, + "x_pos": -636, + "y_pos": -445.5 + }, + { + "id": 8364, + "x_pos": -1230, + "y_pos": -346 + }, + { + "id": 8363, + "x_pos": -799.5, + "y_pos": -525.5 + }, + { + "id": 8362, + "x_pos": -974, + "y_pos": -409 + }, + { + "id": 8361, + "x_pos": 985, + "y_pos": -628 + }, + { + "id": 8360, + "x_pos": 956, + "y_pos": -621 + }, + { + "id": 8359, + "x_pos": 1000, + "y_pos": -609.5 + }, + { + "id": 8358, + "x_pos": 967, + "y_pos": -554.5 + }, + { + "id": 8357, + "x_pos": 948, + "y_pos": -579 + }, + { + "id": 8356, + "x_pos": -373.5, + "y_pos": -190.5 + }, + { + "id": 8355, + "x_pos": 977.5, + "y_pos": -595 + }, + { + "id": 8354, + "x_pos": 852, + "y_pos": -515.5 + }, + { + "id": 8353, + "x_pos": 450.5, + "y_pos": -473.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/1c4dd7692a34154dca818014931903d2_3268659946357391207.png" + }, + "176": { + "name": "Bamboo Segment", + "clear_name": "BambooSegment", + "points": [ + { + "id": 24781, + "x_pos": -1185.5, + "y_pos": 2828.5 + }, + { + "id": 24780, + "x_pos": -1184.25, + "y_pos": 2827.25 + }, + { + "id": 24779, + "x_pos": -1178, + "y_pos": 2833.75 + }, + { + "id": 24778, + "x_pos": -1197.5, + "y_pos": 2830.5 + }, + { + "id": 24777, + "x_pos": -1174, + "y_pos": 2847.25 + }, + { + "id": 24776, + "x_pos": -1163.75, + "y_pos": 2854.5 + }, + { + "id": 24775, + "x_pos": -1162.25, + "y_pos": 2860 + }, + { + "id": 24774, + "x_pos": -1159.75, + "y_pos": 2863.25 + }, + { + "id": 24773, + "x_pos": -1246, + "y_pos": 2842 + }, + { + "id": 24772, + "x_pos": -1248.75, + "y_pos": 2843.5 + }, + { + "id": 24771, + "x_pos": -1251.5, + "y_pos": 2848.25 + }, + { + "id": 24770, + "x_pos": -1138, + "y_pos": 2902.25 + }, + { + "id": 24769, + "x_pos": -1141.5, + "y_pos": 2897.5 + }, + { + "id": 24768, + "x_pos": -1146.5, + "y_pos": 2887.75 + }, + { + "id": 24767, + "x_pos": -1193.5, + "y_pos": 2933 + }, + { + "id": 24766, + "x_pos": -1195, + "y_pos": 2933.5 + }, + { + "id": 24765, + "x_pos": -1199.5, + "y_pos": 2933.25 + }, + { + "id": 24764, + "x_pos": -1203.25, + "y_pos": 2937.75 + }, + { + "id": 24763, + "x_pos": -1174.25, + "y_pos": 2936.25 + }, + { + "id": 24762, + "x_pos": -1177.25, + "y_pos": 2940 + }, + { + "id": 24761, + "x_pos": -1178.5, + "y_pos": 2949.25 + }, + { + "id": 24760, + "x_pos": -1112.5, + "y_pos": 3000 + }, + { + "id": 24759, + "x_pos": -1110, + "y_pos": 2998 + }, + { + "id": 24758, + "x_pos": -1108, + "y_pos": 2994 + }, + { + "id": 24757, + "x_pos": -1112, + "y_pos": 2994.25 + }, + { + "id": 24756, + "x_pos": -1110.5, + "y_pos": 2991.5 + }, + { + "id": 24755, + "x_pos": -1109.25, + "y_pos": 2989 + }, + { + "id": 24754, + "x_pos": -1117.25, + "y_pos": 2984.5 + }, + { + "id": 24753, + "x_pos": -1120.5, + "y_pos": 2983.75 + }, + { + "id": 24752, + "x_pos": -1150.5, + "y_pos": 2974.5 + }, + { + "id": 24751, + "x_pos": -1152, + "y_pos": 2975.25 + }, + { + "id": 24750, + "x_pos": -1141.25, + "y_pos": 2978 + }, + { + "id": 24749, + "x_pos": -1129.25, + "y_pos": 2986.25 + }, + { + "id": 24748, + "x_pos": -1139.5, + "y_pos": 2997.5 + }, + { + "id": 24747, + "x_pos": -1132.5, + "y_pos": 2993.25 + }, + { + "id": 24746, + "x_pos": -1128.5, + "y_pos": 2998 + }, + { + "id": 24745, + "x_pos": -1125.25, + "y_pos": 2990.75 + }, + { + "id": 24744, + "x_pos": -1121.75, + "y_pos": 2995 + }, + { + "id": 24743, + "x_pos": -1123.5, + "y_pos": 3000.25 + }, + { + "id": 24742, + "x_pos": -1119.75, + "y_pos": 3001 + }, + { + "id": 24741, + "x_pos": -1123.75, + "y_pos": 3005.75 + }, + { + "id": 24740, + "x_pos": -1124.5, + "y_pos": 3008.5 + }, + { + "id": 9982, + "x_pos": -1522.5, + "y_pos": 562 + }, + { + "id": 9980, + "x_pos": -1572, + "y_pos": 553 + }, + { + "id": 9977, + "x_pos": -1611, + "y_pos": 558 + }, + { + "id": 9975, + "x_pos": -1609.5, + "y_pos": 589.5 + }, + { + "id": 9973, + "x_pos": -1581.5, + "y_pos": 615 + }, + { + "id": 9970, + "x_pos": -1583, + "y_pos": 625 + }, + { + "id": 9968, + "x_pos": -1574.5, + "y_pos": 650 + }, + { + "id": 9966, + "x_pos": -1599, + "y_pos": 658 + }, + { + "id": 9964, + "x_pos": -1611, + "y_pos": 679.5 + }, + { + "id": 9958, + "x_pos": -1587.5, + "y_pos": 692 + }, + { + "id": 9956, + "x_pos": -1612.5, + "y_pos": 706 + }, + { + "id": 9954, + "x_pos": -1610, + "y_pos": 715.5 + }, + { + "id": 9949, + "x_pos": -1602, + "y_pos": 731 + }, + { + "id": 9948, + "x_pos": -1600, + "y_pos": 737.5 + }, + { + "id": 9947, + "x_pos": -1585.5, + "y_pos": 741.5 + }, + { + "id": 9946, + "x_pos": -1566.5, + "y_pos": 802 + }, + { + "id": 9945, + "x_pos": -1558.5, + "y_pos": 810 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/1fdbc4d33f65a52704f119fe6ec323c3_3602860793126457274.png" + }, + "75": { + "name": "Sealed Chest", + "clear_name": "SealedChest", + "points": [ + { + "id": 24739, + "x_pos": -506.8634052982452, + "y_pos": 1687.9025839315937 + }, + { + "id": 24675, + "x_pos": -950, + "y_pos": 2300.5 + }, + { + "id": 23609, + "x_pos": -1392.75, + "y_pos": 2750 + }, + { + "id": 23608, + "x_pos": -1403.75, + "y_pos": 2696.25 + }, + { + "id": 21376, + "x_pos": -899.767462682637, + "y_pos": 1957.165029423676 + }, + { + "id": 18263, + "x_pos": -1117.5, + "y_pos": 917.5 + }, + { + "id": 15832, + "x_pos": -2368, + "y_pos": 1238 + }, + { + "id": 15831, + "x_pos": -2057.5, + "y_pos": 1139.5 + }, + { + "id": 15830, + "x_pos": -1904.5, + "y_pos": 1280.5 + }, + { + "id": 15829, + "x_pos": -2574, + "y_pos": 1495 + }, + { + "id": 15828, + "x_pos": -2156.5, + "y_pos": 1499.5 + }, + { + "id": 15827, + "x_pos": -2214.5, + "y_pos": 1508.5 + }, + { + "id": 15826, + "x_pos": -2001.5, + "y_pos": 1602 + }, + { + "id": 15825, + "x_pos": -2019.5, + "y_pos": 1666 + }, + { + "id": 15824, + "x_pos": -1254, + "y_pos": 1685.5 + }, + { + "id": 15823, + "x_pos": -841.5, + "y_pos": 1662.5 + }, + { + "id": 15822, + "x_pos": -566, + "y_pos": 1690 + }, + { + "id": 15821, + "x_pos": -414, + "y_pos": 1703 + }, + { + "id": 15820, + "x_pos": -1622, + "y_pos": 2499 + }, + { + "id": 14500, + "x_pos": -815, + "y_pos": 2194.5 + }, + { + "id": 14499, + "x_pos": -528.5, + "y_pos": 1104.5 + }, + { + "id": 14498, + "x_pos": -551.5, + "y_pos": 1143.5 + }, + { + "id": 12074, + "x_pos": -630, + "y_pos": 1774 + }, + { + "id": 11936, + "x_pos": -1747, + "y_pos": 2722.5 + }, + { + "id": 11935, + "x_pos": -1460, + "y_pos": 2792.5 + }, + { + "id": 11934, + "x_pos": -1459, + "y_pos": 2407 + }, + { + "id": 11933, + "x_pos": -487, + "y_pos": 1653.5 + }, + { + "id": 11932, + "x_pos": -673, + "y_pos": 1091 + }, + { + "id": 11931, + "x_pos": -768.5, + "y_pos": 632.5 + }, + { + "id": 11640, + "x_pos": -834.5, + "y_pos": 638.5 + }, + { + "id": 11569, + "x_pos": -559.5, + "y_pos": 930.5 + }, + { + "id": 7629, + "x_pos": 126, + "y_pos": 761 + }, + { + "id": 7626, + "x_pos": -243.5, + "y_pos": 1495 + }, + { + "id": 7622, + "x_pos": 71.5, + "y_pos": 787 + }, + { + "id": 7523, + "x_pos": 270.0731116047282, + "y_pos": 1597.1992949709793 + }, + { + "id": 7522, + "x_pos": -72.27916092631312, + "y_pos": 1451.6424603436717 + }, + { + "id": 7521, + "x_pos": -213.4568864773646, + "y_pos": 1396.8014324355727 + }, + { + "id": 7520, + "x_pos": 11.181885172022703, + "y_pos": 1327.3565833016164 + }, + { + "id": 7519, + "x_pos": 335.57227444894943, + "y_pos": 1229.72736382633 + }, + { + "id": 7518, + "x_pos": 207.05887995647936, + "y_pos": 1172.6929568423516 + }, + { + "id": 7517, + "x_pos": 258.5558103852891, + "y_pos": 1039.7155930160216 + }, + { + "id": 7516, + "x_pos": 139.06711198831, + "y_pos": 973.7436618713723 + }, + { + "id": 7515, + "x_pos": 207.89580463156744, + "y_pos": 807.2925560064996 + }, + { + "id": 7483, + "x_pos": 55.2619425488183, + "y_pos": 1193.1760813908468 + }, + { + "id": 7481, + "x_pos": 81.60729546571747, + "y_pos": 1171.6911459484581 + }, + { + "id": 7473, + "x_pos": 139.56725151427327, + "y_pos": 1009.7513581704202 + }, + { + "id": 7471, + "x_pos": -226.4902375507436, + "y_pos": 1180.6763688692577 + }, + { + "id": 7470, + "x_pos": -253.47926731549887, + "y_pos": 1180.1026868307508 + }, + { + "id": 7468, + "x_pos": 222.2442271196578, + "y_pos": 1215.8056188344904 + }, + { + "id": 7463, + "x_pos": 79.48311083174121, + "y_pos": 1037.9961925493317 + }, + { + "id": 7418, + "x_pos": 278.92469087412337, + "y_pos": 835.0049799582075 + }, + { + "id": 7416, + "x_pos": -168.17133788283718, + "y_pos": 1279.7118593405776 + }, + { + "id": 7167, + "x_pos": 469, + "y_pos": 1375.5 + }, + { + "id": 7150, + "x_pos": 402.5, + "y_pos": 1222 + }, + { + "id": 7143, + "x_pos": 461, + "y_pos": 1125 + }, + { + "id": 7141, + "x_pos": 370.5, + "y_pos": 1069.5 + }, + { + "id": 7070, + "x_pos": -172, + "y_pos": 1714 + }, + { + "id": 6338, + "x_pos": -304.8615937896111, + "y_pos": 1661.0434724212237 + }, + { + "id": 6337, + "x_pos": -328.498700783568, + "y_pos": 1645.004830258803 + }, + { + "id": 6336, + "x_pos": -428.000216536072, + "y_pos": 1717.502415129402 + }, + { + "id": 6335, + "x_pos": -497.99805117535107, + "y_pos": 1710.5044277372363 + }, + { + "id": 6334, + "x_pos": -673.3622433978271, + "y_pos": 1520.1336372522192 + }, + { + "id": 6333, + "x_pos": -660.499783463928, + "y_pos": 1454.5004025215667 + }, + { + "id": 6332, + "x_pos": -855.999133855712, + "y_pos": 1826.0016100862676 + }, + { + "id": 6331, + "x_pos": -1659.500433072144, + "y_pos": 2199.001207564701 + }, + { + "id": 6330, + "x_pos": -2290.502598432865, + "y_pos": 2015.9983899137324 + }, + { + "id": 6329, + "x_pos": -1679.4148616633374, + "y_pos": 1670.0338119036178 + }, + { + "id": 6328, + "x_pos": -2379.875885170367, + "y_pos": 1574.540654770255 + }, + { + "id": 6327, + "x_pos": -1671.7871053808226, + "y_pos": 1265.545485029059 + }, + { + "id": 6326, + "x_pos": -1955.3596449649622, + "y_pos": 1178.6147187385723 + }, + { + "id": 6325, + "x_pos": -1796.9733264027936, + "y_pos": 1637.3675704964708 + }, + { + "id": 6324, + "x_pos": -2024.4562200531009, + "y_pos": 1022.805984696729 + }, + { + "id": 6323, + "x_pos": 186.000649608216, + "y_pos": 2565.0040252156696 + }, + { + "id": 6322, + "x_pos": -1036.362026861755, + "y_pos": 712.4380117706855 + }, + { + "id": 2829, + "x_pos": -975.5, + "y_pos": 2264.1833107976736 + }, + { + "id": 2828, + "x_pos": -876, + "y_pos": 2236.5847047470306 + }, + { + "id": 2827, + "x_pos": -1069.5, + "y_pos": 2193.9849717700954 + }, + { + "id": 2823, + "x_pos": -1159, + "y_pos": 2297.284170700902 + }, + { + "id": 2822, + "x_pos": -1192.5, + "y_pos": 2065.016525706301 + }, + { + "id": 2821, + "x_pos": -1251, + "y_pos": 2101.175985776769 + }, + { + "id": 2819, + "x_pos": -1327.5, + "y_pos": 2041.633726040779 + }, + { + "id": 2816, + "x_pos": -1139, + "y_pos": 2405.6528837877613 + }, + { + "id": 2815, + "x_pos": -1473.5, + "y_pos": 1922.7370479856222 + }, + { + "id": 2814, + "x_pos": -668.5, + "y_pos": 2390.5841412838845 + }, + { + "id": 2813, + "x_pos": -1545.5, + "y_pos": 1775.072308557807 + }, + { + "id": 2812, + "x_pos": -957, + "y_pos": 2541.080197041859 + }, + { + "id": 2811, + "x_pos": -1629.5, + "y_pos": 1574.982717917509 + }, + { + "id": 2810, + "x_pos": -867, + "y_pos": 2533.1472491562954 + }, + { + "id": 2808, + "x_pos": -1540.5, + "y_pos": 2331.1376702828047 + }, + { + "id": 2806, + "x_pos": -914, + "y_pos": 2544.6602088086656 + }, + { + "id": 2805, + "x_pos": -1492, + "y_pos": 1471.5503334950927 + }, + { + "id": 2804, + "x_pos": -1060.5, + "y_pos": 1554.0762527998331 + }, + { + "id": 2803, + "x_pos": -702, + "y_pos": 2558.5311757481104 + }, + { + "id": 2802, + "x_pos": -1439.5, + "y_pos": 2354.8762233828147 + }, + { + "id": 2800, + "x_pos": -1159, + "y_pos": 1870.0430084741874 + }, + { + "id": 2799, + "x_pos": -1056.5, + "y_pos": 1360.0125814642752 + }, + { + "id": 2798, + "x_pos": -1639, + "y_pos": 1393.090339378496 + }, + { + "id": 2797, + "x_pos": -1664.5, + "y_pos": 2327.1427414511236 + }, + { + "id": 2796, + "x_pos": -1156.5, + "y_pos": 1281.5779431892724 + }, + { + "id": 2795, + "x_pos": -1075.5, + "y_pos": 2413.360238225684 + }, + { + "id": 2791, + "x_pos": -1884, + "y_pos": 1407.0655470000488 + }, + { + "id": 2789, + "x_pos": -1656.5, + "y_pos": 2290.8327756165936 + }, + { + "id": 2783, + "x_pos": -1016.5, + "y_pos": 629.56047583173 + }, + { + "id": 2782, + "x_pos": -1798.5, + "y_pos": 2626.181265134116 + }, + { + "id": 2781, + "x_pos": -1601, + "y_pos": 599.621893314702 + }, + { + "id": 2779, + "x_pos": -1803.5, + "y_pos": 1864.023287264059 + }, + { + "id": 2778, + "x_pos": -856.5, + "y_pos": 827.0294853586711 + }, + { + "id": 2777, + "x_pos": -880, + "y_pos": 717.5 + }, + { + "id": 2776, + "x_pos": -1703, + "y_pos": 1751.0542777371184 + }, + { + "id": 2775, + "x_pos": -919, + "y_pos": 717.1545741772006 + }, + { + "id": 2771, + "x_pos": -985, + "y_pos": 2429.6652799769845 + }, + { + "id": 2770, + "x_pos": -1429.5, + "y_pos": 2806.0790701155656 + }, + { + "id": 2769, + "x_pos": -66, + "y_pos": 2447.1061163465993 + }, + { + "id": 2768, + "x_pos": -1543.5, + "y_pos": 3067.4334884347327 + }, + { + "id": 2767, + "x_pos": -628, + "y_pos": 809.5441354004806 + }, + { + "id": 2766, + "x_pos": -2361, + "y_pos": 1167.5948470836684 + }, + { + "id": 2765, + "x_pos": -1581, + "y_pos": 613.0587854422906 + }, + { + "id": 2763, + "x_pos": -773, + "y_pos": -317.45361074693324 + }, + { + "id": 2761, + "x_pos": 307, + "y_pos": 130.579633578712 + }, + { + "id": 2759, + "x_pos": -204, + "y_pos": 325.607243272892 + }, + { + "id": 2758, + "x_pos": -2561.5, + "y_pos": 1430.5525873476786 + }, + { + "id": 2755, + "x_pos": 474, + "y_pos": 224.04977003194608 + }, + { + "id": 2752, + "x_pos": -2190.5, + "y_pos": 1521.0948470836684 + }, + { + "id": 2751, + "x_pos": 375, + "y_pos": 277.1252740935811 + }, + { + "id": 2750, + "x_pos": -2174, + "y_pos": 1627.7712110485322 + }, + { + "id": 2748, + "x_pos": -2437, + "y_pos": 1807.0542777371184 + }, + { + "id": 2747, + "x_pos": -697.5, + "y_pos": 571 + }, + { + "id": 2745, + "x_pos": 878.5, + "y_pos": 857.9780020233084 + }, + { + "id": 2741, + "x_pos": -997.5, + "y_pos": 2450.1540107140536 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/630e357fc7401823c7485bfb28c9fac4_8735103261485855747.png" + }, + "199": { + "name": "Sakura Bloom", + "clear_name": "SakuraBloom", + "points": [ + { + "id": 24736, + "x_pos": 3625.75, + "y_pos": 4847.25 + }, + { + "id": 15435, + "x_pos": 3631.5, + "y_pos": 5378.25 + }, + { + "id": 14520, + "x_pos": 3739.25, + "y_pos": 4951.25 + }, + { + "id": 14008, + "x_pos": 3752.5, + "y_pos": 5405.5 + }, + { + "id": 13893, + "x_pos": 3551.25, + "y_pos": 5361 + }, + { + "id": 13891, + "x_pos": 3670, + "y_pos": 4873.5 + }, + { + "id": 13890, + "x_pos": 3675.75, + "y_pos": 4860.5 + }, + { + "id": 13889, + "x_pos": 3626.75, + "y_pos": 4888.5 + }, + { + "id": 13888, + "x_pos": 3644.25, + "y_pos": 4842.75 + }, + { + "id": 13887, + "x_pos": 3636.5, + "y_pos": 4838 + }, + { + "id": 13886, + "x_pos": 4179, + "y_pos": 4540.5 + }, + { + "id": 13877, + "x_pos": 3630.5, + "y_pos": 5173 + }, + { + "id": 13804, + "x_pos": 3621.75, + "y_pos": 4824.5 + }, + { + "id": 13635, + "x_pos": 3735.5, + "y_pos": 4859.5 + }, + { + "id": 13634, + "x_pos": 3727.5, + "y_pos": 4836.75 + }, + { + "id": 13557, + "x_pos": 3469.75, + "y_pos": 5235.5 + }, + { + "id": 13556, + "x_pos": 3494.25, + "y_pos": 5338.5 + }, + { + "id": 13555, + "x_pos": 3535.75, + "y_pos": 4661.5 + }, + { + "id": 13473, + "x_pos": 3548.25, + "y_pos": 5366.25 + }, + { + "id": 13472, + "x_pos": 3554.5, + "y_pos": 5364.75 + }, + { + "id": 13388, + "x_pos": 3670.75, + "y_pos": 4795.75 + }, + { + "id": 13387, + "x_pos": 3672.75, + "y_pos": 4778.5 + }, + { + "id": 13386, + "x_pos": 3676, + "y_pos": 4797.25 + }, + { + "id": 13385, + "x_pos": 3703.75, + "y_pos": 5348.75 + }, + { + "id": 13341, + "x_pos": 3490, + "y_pos": 4670 + }, + { + "id": 13338, + "x_pos": 3363, + "y_pos": 5127.5 + }, + { + "id": 13337, + "x_pos": 3536.75, + "y_pos": 4563 + }, + { + "id": 13336, + "x_pos": 3625, + "y_pos": 4699.75 + }, + { + "id": 13335, + "x_pos": 3824.75, + "y_pos": 4811 + }, + { + "id": 13334, + "x_pos": 3869.75, + "y_pos": 4801 + }, + { + "id": 13333, + "x_pos": 3431, + "y_pos": 4829.75 + }, + { + "id": 13332, + "x_pos": 3413.25, + "y_pos": 4806.75 + }, + { + "id": 13329, + "x_pos": 3664, + "y_pos": 4816.25 + }, + { + "id": 13328, + "x_pos": 3593.5, + "y_pos": 4782.5 + }, + { + "id": 13327, + "x_pos": 3587.75, + "y_pos": 4664 + }, + { + "id": 13326, + "x_pos": 3514.75, + "y_pos": 4762 + }, + { + "id": 13324, + "x_pos": 3544, + "y_pos": 4608.25 + }, + { + "id": 13323, + "x_pos": 3501.75, + "y_pos": 4634.5 + }, + { + "id": 13322, + "x_pos": 3531, + "y_pos": 4590 + }, + { + "id": 13321, + "x_pos": 3470.25, + "y_pos": 4666.75 + }, + { + "id": 13320, + "x_pos": 3615.25, + "y_pos": 5306 + }, + { + "id": 13319, + "x_pos": 3660, + "y_pos": 4765.25 + }, + { + "id": 13318, + "x_pos": 3666.25, + "y_pos": 4781.5 + }, + { + "id": 13317, + "x_pos": 3639.25, + "y_pos": 4790.75 + }, + { + "id": 13315, + "x_pos": 3639, + "y_pos": 4956 + }, + { + "id": 13314, + "x_pos": 3635.75, + "y_pos": 4943.75 + }, + { + "id": 12200, + "x_pos": 3399.5, + "y_pos": 5279.25 + }, + { + "id": 12198, + "x_pos": 3649.5, + "y_pos": 5308.75 + }, + { + "id": 12196, + "x_pos": 3670.25, + "y_pos": 5310.75 + }, + { + "id": 12192, + "x_pos": 3440.5, + "y_pos": 4974.5 + }, + { + "id": 12184, + "x_pos": 3483, + "y_pos": 5119.5 + }, + { + "id": 12181, + "x_pos": 3556.75, + "y_pos": 5083.5 + }, + { + "id": 12176, + "x_pos": 3566, + "y_pos": 5142.25 + }, + { + "id": 12174, + "x_pos": 3656.75, + "y_pos": 5116.25 + }, + { + "id": 12172, + "x_pos": 3684.25, + "y_pos": 5085 + }, + { + "id": 12170, + "x_pos": 3716, + "y_pos": 5135.75 + }, + { + "id": 12168, + "x_pos": 3773, + "y_pos": 5104.5 + }, + { + "id": 12167, + "x_pos": 3562.5, + "y_pos": 4947 + }, + { + "id": 12166, + "x_pos": 3613, + "y_pos": 4996.75 + }, + { + "id": 12165, + "x_pos": 3755.5, + "y_pos": 5004.5 + }, + { + "id": 12149, + "x_pos": 3708.5, + "y_pos": 4910.25 + }, + { + "id": 12146, + "x_pos": 3659.25, + "y_pos": 4906.5 + }, + { + "id": 12139, + "x_pos": 3720.75, + "y_pos": 4909.5 + }, + { + "id": 12138, + "x_pos": 3716.5, + "y_pos": 4920.5 + }, + { + "id": 12136, + "x_pos": 3758.75, + "y_pos": 4814.25 + }, + { + "id": 12134, + "x_pos": 3880.25, + "y_pos": 4913.25 + }, + { + "id": 12132, + "x_pos": 3668.75, + "y_pos": 4885 + }, + { + "id": 12126, + "x_pos": 3679.5, + "y_pos": 4817 + }, + { + "id": 12125, + "x_pos": 3626.5, + "y_pos": 4791.75 + }, + { + "id": 12121, + "x_pos": 3899.25, + "y_pos": 4869.5 + }, + { + "id": 12118, + "x_pos": 3682.75, + "y_pos": 4821.75 + }, + { + "id": 12117, + "x_pos": 3671.75, + "y_pos": 4825 + }, + { + "id": 12112, + "x_pos": 3745.75, + "y_pos": 4830 + }, + { + "id": 12109, + "x_pos": 3720, + "y_pos": 4796 + }, + { + "id": 12107, + "x_pos": 3751, + "y_pos": 4827 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/678db2982ec6ec4a6b1b218b5a66fd2f_7607694575039582116.png" + }, + "200": { + "name": "Lavender Melon", + "clear_name": "LavenderMelon", + "points": [ + { + "id": 24692, + "x_pos": 3627.800003051758, + "y_pos": 4747.500758483875 + }, + { + "id": 18353, + "x_pos": 3045.9999389648438, + "y_pos": 6867.892680939083 + }, + { + "id": 18352, + "x_pos": 3046.8999633789062, + "y_pos": 6871.7020582502755 + }, + { + "id": 18351, + "x_pos": 3040.3999938964844, + "y_pos": 6870.303368042301 + }, + { + "id": 18339, + "x_pos": 109.4392512945069, + "y_pos": 6320.920867276307 + }, + { + "id": 18338, + "x_pos": 99.45223675893612, + "y_pos": 6324.53491411365 + }, + { + "id": 18335, + "x_pos": -139.42482901749827, + "y_pos": 6169.867075588176 + }, + { + "id": 18334, + "x_pos": -143.84937565226937, + "y_pos": 6168.256114013198 + }, + { + "id": 18333, + "x_pos": -140.61039906375663, + "y_pos": 6166.360734240623 + }, + { + "id": 18328, + "x_pos": 102.0373769028447, + "y_pos": 6320.084958345775 + }, + { + "id": 18327, + "x_pos": 57.89919884320261, + "y_pos": 6331.843712043086 + }, + { + "id": 18326, + "x_pos": 64.47075860242694, + "y_pos": 6329.589544991979 + }, + { + "id": 18325, + "x_pos": 124.09743393258213, + "y_pos": 6348.652894494011 + }, + { + "id": 18324, + "x_pos": 59.102393096716696, + "y_pos": 6327.433141095275 + }, + { + "id": 18323, + "x_pos": 127.74807861356749, + "y_pos": 6353.70018310223 + }, + { + "id": 18322, + "x_pos": -24.80980137754341, + "y_pos": 5868.842811796127 + }, + { + "id": 18321, + "x_pos": 120.10781010417304, + "y_pos": 6352.868107039116 + }, + { + "id": 18320, + "x_pos": -21.039388647503074, + "y_pos": 5871.142866747214 + }, + { + "id": 18318, + "x_pos": -30.31974266699399, + "y_pos": 5875.368845553712 + }, + { + "id": 17746, + "x_pos": 3513, + "y_pos": 5664.5 + }, + { + "id": 17706, + "x_pos": 3640.5, + "y_pos": 4756 + }, + { + "id": 16976, + "x_pos": 4051.2999877929688, + "y_pos": 7170.655170042575 + }, + { + "id": 16974, + "x_pos": 3166.4999389648438, + "y_pos": 6683 + }, + { + "id": 16973, + "x_pos": 3169.5, + "y_pos": 6684.5 + }, + { + "id": 16972, + "x_pos": 3163.5, + "y_pos": 6685.000030517578 + }, + { + "id": 16966, + "x_pos": 590.5000610351562, + "y_pos": 6079.500030517578 + }, + { + "id": 16965, + "x_pos": 595, + "y_pos": 6081.5 + }, + { + "id": 16964, + "x_pos": 591, + "y_pos": 6082 + }, + { + "id": 16963, + "x_pos": 266.00006103515625, + "y_pos": 6063.499984741211 + }, + { + "id": 16962, + "x_pos": 261.5, + "y_pos": 6062 + }, + { + "id": 16961, + "x_pos": 261.00006103515625, + "y_pos": 6065.499923706055 + }, + { + "id": 15489, + "x_pos": 2341.2999572753906, + "y_pos": 5792.474460488011 + }, + { + "id": 15471, + "x_pos": 2570.000030517578, + "y_pos": 6015.257777751043 + }, + { + "id": 15405, + "x_pos": 2116.8998251835783, + "y_pos": 6045.9004515367615 + }, + { + "id": 15136, + "x_pos": 1522.4023433406737, + "y_pos": 6367.3072991630215 + }, + { + "id": 15134, + "x_pos": 1585.701186944063, + "y_pos": 6383.403649581511 + }, + { + "id": 15128, + "x_pos": 1615.8984275903995, + "y_pos": 6450.307329727084 + }, + { + "id": 15029, + "x_pos": 3547.699951171875, + "y_pos": 5115.703981653854 + }, + { + "id": 15028, + "x_pos": 3354.0000610351562, + "y_pos": 5089.081069927681 + }, + { + "id": 15027, + "x_pos": 3358.0999755859375, + "y_pos": 5090.9706457792545 + }, + { + "id": 15026, + "x_pos": 3400.6000061035156, + "y_pos": 5079.893595725166 + }, + { + "id": 15025, + "x_pos": 3540.199951171875, + "y_pos": 5117.170202524317 + }, + { + "id": 15024, + "x_pos": 2733.2999877929688, + "y_pos": 5681.568223158274 + }, + { + "id": 14615, + "x_pos": 3471, + "y_pos": 4817 + }, + { + "id": 14034, + "x_pos": 3758, + "y_pos": 5114 + }, + { + "id": 13806, + "x_pos": 3819.5, + "y_pos": 4970 + }, + { + "id": 13805, + "x_pos": 3674.5, + "y_pos": 4724.5 + }, + { + "id": 13687, + "x_pos": 2777, + "y_pos": 5659.5 + }, + { + "id": 13686, + "x_pos": 2775.5, + "y_pos": 5659.5 + }, + { + "id": 13685, + "x_pos": 2778.5, + "y_pos": 5659.5 + }, + { + "id": 13684, + "x_pos": 2789, + "y_pos": 5659.5 + }, + { + "id": 13683, + "x_pos": 2794, + "y_pos": 5659.5 + }, + { + "id": 13682, + "x_pos": 2648.5, + "y_pos": 5541 + }, + { + "id": 13681, + "x_pos": 2653, + "y_pos": 5540.5 + }, + { + "id": 13676, + "x_pos": 4001, + "y_pos": 5540 + }, + { + "id": 13675, + "x_pos": 4005, + "y_pos": 5543 + }, + { + "id": 13674, + "x_pos": 4000, + "y_pos": 5542.5 + }, + { + "id": 13673, + "x_pos": 3443.5, + "y_pos": 4619 + }, + { + "id": 13672, + "x_pos": 3445, + "y_pos": 4620.5 + }, + { + "id": 13671, + "x_pos": 3441.5, + "y_pos": 4621 + }, + { + "id": 13641, + "x_pos": 2931.5, + "y_pos": 4865 + }, + { + "id": 13640, + "x_pos": 2997, + "y_pos": 4913 + }, + { + "id": 13574, + "x_pos": 1543.5, + "y_pos": 6311 + }, + { + "id": 13573, + "x_pos": 1548, + "y_pos": 6313.5 + }, + { + "id": 13572, + "x_pos": 1538.5, + "y_pos": 6312.5 + }, + { + "id": 13563, + "x_pos": 1346, + "y_pos": 5862 + }, + { + "id": 13562, + "x_pos": 1340, + "y_pos": 5862 + }, + { + "id": 13561, + "x_pos": 1342, + "y_pos": 5865 + }, + { + "id": 13560, + "x_pos": 1274.5, + "y_pos": 5920 + }, + { + "id": 13559, + "x_pos": 1280.5, + "y_pos": 5920 + }, + { + "id": 13558, + "x_pos": 1276, + "y_pos": 5918 + }, + { + "id": 12458, + "x_pos": 3804, + "y_pos": 4835.5 + }, + { + "id": 12450, + "x_pos": 3746.3999938964844, + "y_pos": 4787.995231180725 + }, + { + "id": 12430, + "x_pos": 3544.1000061035156, + "y_pos": 5113.410086303638 + }, + { + "id": 12426, + "x_pos": 3444.7000122070312, + "y_pos": 5131.108516840806 + }, + { + "id": 12409, + "x_pos": 3333, + "y_pos": 5122 + }, + { + "id": 12401, + "x_pos": 3298.800048828125, + "y_pos": 5135.242206155635 + }, + { + "id": 12393, + "x_pos": 3297.6000366210938, + "y_pos": 5005.044974671448 + }, + { + "id": 12382, + "x_pos": 3715, + "y_pos": 5497.5 + }, + { + "id": 12372, + "x_pos": 2791.5, + "y_pos": 5658.590531046117 + }, + { + "id": 12364, + "x_pos": 2650.5, + "y_pos": 5539.064151880573 + }, + { + "id": 12355, + "x_pos": 2298.600067138672, + "y_pos": 5914.783578575782 + }, + { + "id": 12342, + "x_pos": 2199.6027055486256, + "y_pos": 6048.805479546123 + }, + { + "id": 12335, + "x_pos": 2303.7000122070312, + "y_pos": 6181.960997677823 + }, + { + "id": 12321, + "x_pos": 2223, + "y_pos": 6279.8717038773975 + }, + { + "id": 12313, + "x_pos": 2235.2000122070312, + "y_pos": 6286.4388406595135 + }, + { + "id": 12297, + "x_pos": 2222.7999877929688, + "y_pos": 6288.622905476557 + }, + { + "id": 12290, + "x_pos": 1803.0999755859375, + "y_pos": 6285.367443537449 + }, + { + "id": 12284, + "x_pos": 1712.7999572753906, + "y_pos": 6396.532948495122 + }, + { + "id": 12275, + "x_pos": 1671.4999694824219, + "y_pos": 5832.031183016004 + }, + { + "id": 12260, + "x_pos": 1559.908216966085, + "y_pos": 6336.789035973437 + }, + { + "id": 12253, + "x_pos": 1536.8999633789062, + "y_pos": 6352.826155141269 + }, + { + "id": 12245, + "x_pos": 1568.7999877929688, + "y_pos": 6136.020386446829 + }, + { + "id": 12235, + "x_pos": 1377.213522612673, + "y_pos": 6212.301236903211 + }, + { + "id": 12226, + "x_pos": 893.4000244140625, + "y_pos": 5944.045569105574 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/03b3f3e56463d505ce3f8758eda55ea4_8721088142785889797.png" + }, + "309": { + "name": "Boot Weasel", + "clear_name": "BootWeasel", + "points": [ + { + "id": 24691, + "x_pos": 3173.75, + "y_pos": 7120.25 + }, + { + "id": 23295, + "x_pos": 3430.134450838723, + "y_pos": 7348.473713124398 + }, + { + "id": 21381, + "x_pos": -1658.0682355079052, + "y_pos": 1973.2706149903506 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/aef221523179cc09308c20cbb2ef1393_5989368574714544698.png" + }, + "286": { + "name": "Red-Tailed Weasel", + "clear_name": "RedTailedWeasel", + "points": [ + { + "id": 24690, + "x_pos": 3174, + "y_pos": 7119.25 + }, + { + "id": 21384, + "x_pos": 2662.6345629656553, + "y_pos": 5674.00225556445 + }, + { + "id": 21383, + "x_pos": 2661.134290387062, + "y_pos": 5669.002410692679 + }, + { + "id": 21382, + "x_pos": 2651.1118145964974, + "y_pos": 5681.028501228502 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/7668f4a916adae8ac281ce2bb9ae8c5e_1804788055468468899.png" + }, + "179": { + "name": "Cuihua Wood", + "clear_name": "CuihuaWood", + "points": [ + { + "id": 24689, + "x_pos": 3757.800018310547, + "y_pos": 5110 + }, + { + "id": 24688, + "x_pos": 3819.3999938964844, + "y_pos": 4969.393653130997 + }, + { + "id": 24687, + "x_pos": 3470.699996948242, + "y_pos": 4814.848792524686 + }, + { + "id": 24686, + "x_pos": 3746.1000061035156, + "y_pos": 4783.249241516125 + }, + { + "id": 24685, + "x_pos": 3635.9000091552734, + "y_pos": 4751.702894436496 + }, + { + "id": 24684, + "x_pos": 3675.199996948242, + "y_pos": 4721.24848303225 + }, + { + "id": 24683, + "x_pos": 3443.75, + "y_pos": 4619.75151696775 + }, + { + "id": 15268, + "x_pos": 2199.1994755507358, + "y_pos": 6048.8981633004605 + }, + { + "id": 15229, + "x_pos": 1795.0995235969167, + "y_pos": 6283.503046411935 + }, + { + "id": 15211, + "x_pos": 1713.1990166394426, + "y_pos": 6398.3042833151485 + }, + { + "id": 15204, + "x_pos": 1620.5, + "y_pos": 6447.301206339149 + }, + { + "id": 15196, + "x_pos": 1586.7031448192001, + "y_pos": 6385.304252751084 + }, + { + "id": 15193, + "x_pos": 1559.687481818104, + "y_pos": 6332.421897489063 + }, + { + "id": 15192, + "x_pos": 1538.7011563966107, + "y_pos": 6349.204886484722 + }, + { + "id": 15189, + "x_pos": 1520.4003854655366, + "y_pos": 6367.105489654297 + }, + { + "id": 15187, + "x_pos": 1543.6991985214736, + "y_pos": 6305.207932896659 + }, + { + "id": 15158, + "x_pos": 1379.3009528061666, + "y_pos": 6207.403649581511 + }, + { + "id": 14982, + "x_pos": 1571.1020003150652, + "y_pos": 6113.8047214277885 + }, + { + "id": 14785, + "x_pos": 1674.2010750620666, + "y_pos": 5837.4073162456625 + }, + { + "id": 14761, + "x_pos": 1341.1020170240017, + "y_pos": 5864.405058561857 + }, + { + "id": 14731, + "x_pos": 892, + "y_pos": 5928.600006103516 + }, + { + "id": 14443, + "x_pos": 2777, + "y_pos": 5659.5 + }, + { + "id": 14442, + "x_pos": 2790.5, + "y_pos": 5657 + }, + { + "id": 14438, + "x_pos": 4001.5, + "y_pos": 5539 + }, + { + "id": 14432, + "x_pos": 3803, + "y_pos": 4838 + }, + { + "id": 11801, + "x_pos": -1829.9674661759868, + "y_pos": 1187.9804105774692 + }, + { + "id": 10944, + "x_pos": -820.5, + "y_pos": 2077.5 + }, + { + "id": 10649, + "x_pos": -1342.5, + "y_pos": 1471.5 + }, + { + "id": 10648, + "x_pos": -1399, + "y_pos": 1869 + }, + { + "id": 10647, + "x_pos": -1351, + "y_pos": 1519.5 + }, + { + "id": 10646, + "x_pos": -1123.5, + "y_pos": 1647 + }, + { + "id": 10525, + "x_pos": 508.5, + "y_pos": -477.5 + }, + { + "id": 10524, + "x_pos": 546, + "y_pos": -461.5 + }, + { + "id": 10523, + "x_pos": 477.5, + "y_pos": -400.5 + }, + { + "id": 10522, + "x_pos": 409.5, + "y_pos": -440 + }, + { + "id": 10521, + "x_pos": 444.5, + "y_pos": -312.5 + }, + { + "id": 10520, + "x_pos": 514.5, + "y_pos": -266.5 + }, + { + "id": 10519, + "x_pos": 480.5, + "y_pos": -254 + }, + { + "id": 10518, + "x_pos": 340, + "y_pos": -333 + }, + { + "id": 10517, + "x_pos": 408.5, + "y_pos": -203.5 + }, + { + "id": 10516, + "x_pos": 655.5, + "y_pos": -217.5 + }, + { + "id": 10515, + "x_pos": 373, + "y_pos": -119.5 + }, + { + "id": 10514, + "x_pos": 429, + "y_pos": -143.5 + }, + { + "id": 10513, + "x_pos": 808.5, + "y_pos": -274 + }, + { + "id": 10512, + "x_pos": 698, + "y_pos": -227.5 + }, + { + "id": 10511, + "x_pos": 487.5, + "y_pos": -93 + }, + { + "id": 10510, + "x_pos": 504, + "y_pos": -96.5 + }, + { + "id": 10509, + "x_pos": 868.5, + "y_pos": -461 + }, + { + "id": 10508, + "x_pos": 571.5, + "y_pos": -82 + }, + { + "id": 10507, + "x_pos": 620.5, + "y_pos": -137 + }, + { + "id": 10506, + "x_pos": 337, + "y_pos": 32.5 + }, + { + "id": 10505, + "x_pos": 618.5, + "y_pos": 51 + }, + { + "id": 10504, + "x_pos": 692, + "y_pos": 156.5 + }, + { + "id": 10503, + "x_pos": 305.5, + "y_pos": 121.5 + }, + { + "id": 10502, + "x_pos": 399, + "y_pos": 149.5 + }, + { + "id": 10501, + "x_pos": 412, + "y_pos": 153.5 + }, + { + "id": 10500, + "x_pos": 292.5, + "y_pos": 184.5 + }, + { + "id": 10499, + "x_pos": 1306, + "y_pos": 759.5 + }, + { + "id": 10498, + "x_pos": 1253, + "y_pos": 831 + }, + { + "id": 10497, + "x_pos": 1188, + "y_pos": 822 + }, + { + "id": 10496, + "x_pos": 1185, + "y_pos": 875.5 + }, + { + "id": 10495, + "x_pos": 1226, + "y_pos": 906 + }, + { + "id": 10494, + "x_pos": 1376.5, + "y_pos": 882 + }, + { + "id": 10493, + "x_pos": 1291.5, + "y_pos": 973.5 + }, + { + "id": 10492, + "x_pos": 1146.5, + "y_pos": 977.5 + }, + { + "id": 10491, + "x_pos": 1071, + "y_pos": 900 + }, + { + "id": 10490, + "x_pos": 1045.5, + "y_pos": 990 + }, + { + "id": 10489, + "x_pos": 1030.5, + "y_pos": 996.5 + }, + { + "id": 10488, + "x_pos": 990.5, + "y_pos": 884.5 + }, + { + "id": 10487, + "x_pos": 965.5, + "y_pos": 851.5 + }, + { + "id": 10486, + "x_pos": 873.5, + "y_pos": 831.5 + }, + { + "id": 10485, + "x_pos": 826, + "y_pos": 834.5 + }, + { + "id": 10484, + "x_pos": 833, + "y_pos": 865.5 + }, + { + "id": 10483, + "x_pos": 862, + "y_pos": 912 + }, + { + "id": 10482, + "x_pos": 902.5, + "y_pos": 933 + }, + { + "id": 10481, + "x_pos": 983.5, + "y_pos": 1007 + }, + { + "id": 10480, + "x_pos": 829, + "y_pos": 809.5 + }, + { + "id": 10479, + "x_pos": 773.5, + "y_pos": 877.5 + }, + { + "id": 10478, + "x_pos": 901.5, + "y_pos": 1030 + }, + { + "id": 10477, + "x_pos": 713.5, + "y_pos": 924.5 + }, + { + "id": 10476, + "x_pos": 793.5, + "y_pos": 990.5 + }, + { + "id": 10475, + "x_pos": 765.5, + "y_pos": 998.5 + }, + { + "id": 10474, + "x_pos": 767, + "y_pos": 1027 + }, + { + "id": 10473, + "x_pos": 972, + "y_pos": 1100.5 + }, + { + "id": 10472, + "x_pos": 923, + "y_pos": 1111.5 + }, + { + "id": 10471, + "x_pos": 803.5, + "y_pos": 1090.5 + }, + { + "id": 10470, + "x_pos": 715.5, + "y_pos": 1032.5 + }, + { + "id": 10469, + "x_pos": 736, + "y_pos": 1123 + }, + { + "id": 10468, + "x_pos": 670.5, + "y_pos": 1089 + }, + { + "id": 10467, + "x_pos": 733, + "y_pos": 888.5 + }, + { + "id": 10466, + "x_pos": 916, + "y_pos": 737 + }, + { + "id": 10465, + "x_pos": 844, + "y_pos": 698 + }, + { + "id": 10464, + "x_pos": 829.5, + "y_pos": 706 + }, + { + "id": 10463, + "x_pos": 820, + "y_pos": 719 + }, + { + "id": 10462, + "x_pos": 628.5, + "y_pos": 676 + }, + { + "id": 10461, + "x_pos": 568.5, + "y_pos": 661 + }, + { + "id": 10460, + "x_pos": 550, + "y_pos": 688 + }, + { + "id": 10459, + "x_pos": 537.5, + "y_pos": 559.5 + }, + { + "id": 10458, + "x_pos": 491.5, + "y_pos": 561 + }, + { + "id": 10457, + "x_pos": 509.5, + "y_pos": 573.5 + }, + { + "id": 10456, + "x_pos": 369, + "y_pos": 537.5 + }, + { + "id": 10455, + "x_pos": 344.5, + "y_pos": 415.5 + }, + { + "id": 10454, + "x_pos": 94, + "y_pos": 673 + }, + { + "id": 10453, + "x_pos": 95, + "y_pos": 509 + }, + { + "id": 10452, + "x_pos": -14, + "y_pos": 482.5 + }, + { + "id": 10451, + "x_pos": 109, + "y_pos": 302 + }, + { + "id": 10450, + "x_pos": 21, + "y_pos": 300 + }, + { + "id": 10449, + "x_pos": -134.5, + "y_pos": 194 + }, + { + "id": 10448, + "x_pos": -126, + "y_pos": 236.5 + }, + { + "id": 10447, + "x_pos": -118, + "y_pos": 235 + }, + { + "id": 10446, + "x_pos": -230, + "y_pos": 221.5 + }, + { + "id": 10445, + "x_pos": -304.5, + "y_pos": 99.5 + }, + { + "id": 10444, + "x_pos": -303.5, + "y_pos": 3.5 + }, + { + "id": 10443, + "x_pos": -380, + "y_pos": 38 + }, + { + "id": 10442, + "x_pos": -388.5, + "y_pos": 318 + }, + { + "id": 10441, + "x_pos": -547.5, + "y_pos": -97 + }, + { + "id": 10440, + "x_pos": -639, + "y_pos": 630.5 + }, + { + "id": 10439, + "x_pos": -615.5, + "y_pos": 706.5 + }, + { + "id": 10438, + "x_pos": -565, + "y_pos": 752.5 + }, + { + "id": 10437, + "x_pos": -619, + "y_pos": 820 + }, + { + "id": 10436, + "x_pos": -741, + "y_pos": 634 + }, + { + "id": 10435, + "x_pos": -647, + "y_pos": 712.5 + }, + { + "id": 10434, + "x_pos": -794, + "y_pos": 792 + }, + { + "id": 10433, + "x_pos": -792.5, + "y_pos": 807 + }, + { + "id": 10432, + "x_pos": -724.5, + "y_pos": 808 + }, + { + "id": 10431, + "x_pos": -865.5, + "y_pos": 848.5 + }, + { + "id": 10430, + "x_pos": -1163.5, + "y_pos": 563.5 + }, + { + "id": 10429, + "x_pos": -1560, + "y_pos": 574 + }, + { + "id": 10428, + "x_pos": -1557.5, + "y_pos": 620.5 + }, + { + "id": 10427, + "x_pos": -1487, + "y_pos": 811.5 + }, + { + "id": 10426, + "x_pos": -1199, + "y_pos": 954 + }, + { + "id": 10425, + "x_pos": -1050.5, + "y_pos": 1203.5 + }, + { + "id": 10424, + "x_pos": -1144, + "y_pos": 1288 + }, + { + "id": 10423, + "x_pos": -1565, + "y_pos": 1356 + }, + { + "id": 10422, + "x_pos": -1592.5, + "y_pos": 1214.5 + }, + { + "id": 10421, + "x_pos": -1244.5, + "y_pos": 1757.5 + }, + { + "id": 10420, + "x_pos": -1051.5, + "y_pos": 1688.5 + }, + { + "id": 10419, + "x_pos": -1050, + "y_pos": 1777.5 + }, + { + "id": 10418, + "x_pos": -1141, + "y_pos": 1899 + }, + { + "id": 10417, + "x_pos": -1045.5, + "y_pos": 1920 + }, + { + "id": 10416, + "x_pos": -868.5, + "y_pos": 2008.5 + }, + { + "id": 10415, + "x_pos": -1785, + "y_pos": 1947 + }, + { + "id": 10414, + "x_pos": -853.5, + "y_pos": 2327 + }, + { + "id": 10413, + "x_pos": -765, + "y_pos": 2402 + }, + { + "id": 10412, + "x_pos": -1059, + "y_pos": 2301.5 + }, + { + "id": 10411, + "x_pos": -1792, + "y_pos": 1957.5 + }, + { + "id": 10410, + "x_pos": -2087, + "y_pos": 1624 + }, + { + "id": 10409, + "x_pos": -1770.5, + "y_pos": 2639.5 + }, + { + "id": 10408, + "x_pos": -1686, + "y_pos": 2953 + }, + { + "id": 10407, + "x_pos": -1513.5, + "y_pos": 2926 + }, + { + "id": 10406, + "x_pos": -1646, + "y_pos": 2979 + }, + { + "id": 10405, + "x_pos": -1743, + "y_pos": 3213 + }, + { + "id": 10404, + "x_pos": -1572.5, + "y_pos": 3217 + }, + { + "id": 10403, + "x_pos": -2083.5, + "y_pos": 3089 + }, + { + "id": 9924, + "x_pos": -200, + "y_pos": 510 + }, + { + "id": 9917, + "x_pos": -432.5, + "y_pos": 426 + }, + { + "id": 9916, + "x_pos": -443.5, + "y_pos": 549.5 + }, + { + "id": 9915, + "x_pos": -368, + "y_pos": 414.5 + }, + { + "id": 9902, + "x_pos": -920.5, + "y_pos": 1777.5 + }, + { + "id": 9899, + "x_pos": -1008, + "y_pos": 2221 + }, + { + "id": 9898, + "x_pos": -1061, + "y_pos": 2306 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/9d4e04f0f573771e790b142315631c47_3409979110559064903.png" + }, + "5": { + "name": "Anemoculus", + "clear_name": "Anemoculus", + "points": [ + { + "id": 24676, + "x_pos": 689, + "y_pos": 653 + }, + { + "id": 1743, + "x_pos": -1069.5, + "y_pos": -262.5 + }, + { + "id": 858, + "x_pos": 625.0006223383425, + "y_pos": 595.5019704433498 + }, + { + "id": 839, + "x_pos": 637.2934871754605, + "y_pos": 795.0310176454741 + }, + { + "id": 165, + "x_pos": -931, + "y_pos": -404.29632719353094 + }, + { + "id": 164, + "x_pos": -834, + "y_pos": -537.7670703263034 + }, + { + "id": 163, + "x_pos": -731.5, + "y_pos": -490.1717979637931 + }, + { + "id": 162, + "x_pos": -385.5, + "y_pos": -196.51876204291034 + }, + { + "id": 161, + "x_pos": -302, + "y_pos": -230.3330858215861 + }, + { + "id": 160, + "x_pos": -308, + "y_pos": -163.2175587048414 + }, + { + "id": 134, + "x_pos": 443.5, + "y_pos": -449 + }, + { + "id": 133, + "x_pos": 1062, + "y_pos": -629.5 + }, + { + "id": 132, + "x_pos": 209, + "y_pos": 394 + }, + { + "id": 131, + "x_pos": 102, + "y_pos": 391 + }, + { + "id": 130, + "x_pos": 286.05730802390826, + "y_pos": 555.5060495334828 + }, + { + "id": 129, + "x_pos": 362.50382763372636, + "y_pos": 590.0141716833114 + }, + { + "id": 128, + "x_pos": -319, + "y_pos": 131 + }, + { + "id": 127, + "x_pos": -203, + "y_pos": 330 + }, + { + "id": 126, + "x_pos": -308.5, + "y_pos": -7.908486158744836 + }, + { + "id": 124, + "x_pos": -1132.5, + "y_pos": -229.69130254194488 + }, + { + "id": 123, + "x_pos": -881, + "y_pos": -330.70330535926905 + }, + { + "id": 122, + "x_pos": -933.5, + "y_pos": -361.7273109939172 + }, + { + "id": 121, + "x_pos": -242, + "y_pos": 65.87846383375177 + }, + { + "id": 120, + "x_pos": 814, + "y_pos": 79.5 + }, + { + "id": 117, + "x_pos": 1023, + "y_pos": -17.5 + }, + { + "id": 115, + "x_pos": 511.22063137116857, + "y_pos": 437.94524316855086 + }, + { + "id": 114, + "x_pos": 478.6085467210878, + "y_pos": 494.4307550093972 + }, + { + "id": 113, + "x_pos": 603.1671509809876, + "y_pos": 463.4204376839393 + }, + { + "id": 112, + "x_pos": 516.5, + "y_pos": 13 + }, + { + "id": 99, + "x_pos": 376.50186701502844, + "y_pos": 640.4980295566502 + }, + { + "id": 95, + "x_pos": 438.6482567114026, + "y_pos": 755.9138521570512 + }, + { + "id": 93, + "x_pos": 852.5012446766859, + "y_pos": 845.5004926108377 + }, + { + "id": 91, + "x_pos": 821.9993776616575, + "y_pos": 948.9985221674879 + }, + { + "id": 90, + "x_pos": 1172.2702688590616, + "y_pos": 830.5409528259893 + }, + { + "id": 89, + "x_pos": 840.5, + "y_pos": -484 + }, + { + "id": 88, + "x_pos": 892, + "y_pos": -181 + }, + { + "id": 87, + "x_pos": 519.7085379916562, + "y_pos": 349.49801271936576 + }, + { + "id": 86, + "x_pos": 361.0947739370349, + "y_pos": 400.93123061017695 + }, + { + "id": 85, + "x_pos": -20, + "y_pos": 244 + }, + { + "id": 84, + "x_pos": -306, + "y_pos": 707 + }, + { + "id": 83, + "x_pos": -338.5, + "y_pos": 561 + }, + { + "id": 82, + "x_pos": -283, + "y_pos": 238 + }, + { + "id": 81, + "x_pos": -1006, + "y_pos": -142.8653433931447 + }, + { + "id": 80, + "x_pos": -266, + "y_pos": -317.2550675089792 + }, + { + "id": 79, + "x_pos": -373, + "y_pos": -323.65154320955844 + }, + { + "id": 78, + "x_pos": -365.5, + "y_pos": -372.799327897862 + }, + { + "id": 77, + "x_pos": -718, + "y_pos": -603.5033757923725 + }, + { + "id": 76, + "x_pos": -1051, + "y_pos": -550.8450886389103 + }, + { + "id": 75, + "x_pos": -988, + "y_pos": -383.715308176593 + }, + { + "id": 74, + "x_pos": -436.5, + "y_pos": -56.40435254944828 + }, + { + "id": 73, + "x_pos": -680.5, + "y_pos": 3.9137221096414123 + }, + { + "id": 72, + "x_pos": -468, + "y_pos": 661 + }, + { + "id": 71, + "x_pos": 944.6556222741219, + "y_pos": 985.8949736466393 + }, + { + "id": 70, + "x_pos": 707, + "y_pos": 1110 + }, + { + "id": 68, + "x_pos": 676.7465709616163, + "y_pos": 691.9680729950956 + }, + { + "id": 67, + "x_pos": 652.6421721161123, + "y_pos": 317.02097672776245 + }, + { + "id": 66, + "x_pos": 516, + "y_pos": 256.5 + }, + { + "id": 65, + "x_pos": -59, + "y_pos": 471 + }, + { + "id": 64, + "x_pos": -559, + "y_pos": -332.7168085287585 + }, + { + "id": 63, + "x_pos": -771.5, + "y_pos": 124.5 + }, + { + "id": 62, + "x_pos": -559, + "y_pos": -125.34358828674476 + }, + { + "id": 61, + "x_pos": -74.5, + "y_pos": -340 + }, + { + "id": 60, + "x_pos": -23.5, + "y_pos": -243.5 + }, + { + "id": 59, + "x_pos": 356, + "y_pos": -585.5 + }, + { + "id": 58, + "x_pos": 1438, + "y_pos": -334 + }, + { + "id": 56, + "x_pos": 1922.0018670150284, + "y_pos": 683.9995073891628 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/9d3ded0ae2ac20aab3758cc475f9f65b_6769403721373052094.png" + }, + "202": { + "name": "Amethyst Lump", + "clear_name": "AmethystLump", + "points": [ + { + "id": 24674, + "x_pos": 3745, + "y_pos": 4887.5 + }, + { + "id": 24673, + "x_pos": 3163, + "y_pos": 6700.5 + }, + { + "id": 24672, + "x_pos": 3162, + "y_pos": 6698 + }, + { + "id": 24671, + "x_pos": 2651, + "y_pos": 5880.25 + }, + { + "id": 24670, + "x_pos": 3746.5, + "y_pos": 4885 + }, + { + "id": 19123, + "x_pos": 1776.6437721229213, + "y_pos": 8109.868376480201 + }, + { + "id": 19115, + "x_pos": 1783.8158802859434, + "y_pos": 8262.41316577445 + }, + { + "id": 19114, + "x_pos": 1797, + "y_pos": 8293.333410882402 + }, + { + "id": 19112, + "x_pos": 1796.5, + "y_pos": 8295.334028809524 + }, + { + "id": 19109, + "x_pos": 2215.5, + "y_pos": 8385 + }, + { + "id": 19105, + "x_pos": 1923.9204764071164, + "y_pos": 8286.931081492148 + }, + { + "id": 19103, + "x_pos": 1920.1664334608413, + "y_pos": 8288.50029370029 + }, + { + "id": 19099, + "x_pos": 1774.3350879372847, + "y_pos": 8388.668027092506 + }, + { + "id": 19097, + "x_pos": 1778.999239300936, + "y_pos": 8391.00117480116 + }, + { + "id": 19095, + "x_pos": 1603.0756895567756, + "y_pos": 8513.394515806025 + }, + { + "id": 19091, + "x_pos": 1964.5, + "y_pos": 9059.5 + }, + { + "id": 19089, + "x_pos": 1846, + "y_pos": 9058.5 + }, + { + "id": 19087, + "x_pos": 1850, + "y_pos": 9060.5 + }, + { + "id": 19085, + "x_pos": 1812.5, + "y_pos": 8963.5 + }, + { + "id": 19083, + "x_pos": 1819.5, + "y_pos": 8959 + }, + { + "id": 19082, + "x_pos": 1926.5, + "y_pos": 8582.5 + }, + { + "id": 19081, + "x_pos": 1927, + "y_pos": 8584 + }, + { + "id": 19080, + "x_pos": 1904.5, + "y_pos": 8634.5 + }, + { + "id": 19079, + "x_pos": 1903, + "y_pos": 8632.5 + }, + { + "id": 19078, + "x_pos": 1676.9150224204932, + "y_pos": 8638.904354765744 + }, + { + "id": 19077, + "x_pos": 1711.5, + "y_pos": 8714.5 + }, + { + "id": 19076, + "x_pos": 1791.6097815280464, + "y_pos": 8796.306786664883 + }, + { + "id": 19075, + "x_pos": 1790.1670430311042, + "y_pos": 8797.834319070691 + }, + { + "id": 19074, + "x_pos": 1844, + "y_pos": 8846 + }, + { + "id": 19073, + "x_pos": 2027.5, + "y_pos": 8716 + }, + { + "id": 19072, + "x_pos": 2029.5, + "y_pos": 8717 + }, + { + "id": 19071, + "x_pos": 2216.5, + "y_pos": 8632 + }, + { + "id": 19070, + "x_pos": 2216.5, + "y_pos": 8636 + }, + { + "id": 19069, + "x_pos": 2166.5508341835066, + "y_pos": 8570.888855966654 + }, + { + "id": 19068, + "x_pos": 2168.5519022090684, + "y_pos": 8573.389587638045 + }, + { + "id": 19067, + "x_pos": 2163.8330180366465, + "y_pos": 8537.834319070691 + }, + { + "id": 19066, + "x_pos": 2160.155664725635, + "y_pos": 8539.422543377124 + }, + { + "id": 19065, + "x_pos": 2215.5, + "y_pos": 8386 + }, + { + "id": 19064, + "x_pos": 2520, + "y_pos": 8440 + }, + { + "id": 19063, + "x_pos": 2511, + "y_pos": 8446 + }, + { + "id": 18401, + "x_pos": 3564.2000122070312, + "y_pos": 6621.329132404271 + }, + { + "id": 18399, + "x_pos": 3549.4999389648438, + "y_pos": 6629.309962833688 + }, + { + "id": 18398, + "x_pos": 3401.168774936774, + "y_pos": 6683.499145545613 + }, + { + "id": 18397, + "x_pos": 3409.076971510827, + "y_pos": 6700.039116238368 + }, + { + "id": 18390, + "x_pos": 3070.999969482422, + "y_pos": 6784.786583846773 + }, + { + "id": 18388, + "x_pos": 3434.5135348074, + "y_pos": 5112.554337941985 + }, + { + "id": 18387, + "x_pos": 2006.462569636089, + "y_pos": 5882.3780493745035 + }, + { + "id": 18386, + "x_pos": 2012.4024922730969, + "y_pos": 5878.100872771416 + }, + { + "id": 18385, + "x_pos": 2006.2075506136134, + "y_pos": 5880.376810398628 + }, + { + "id": 18384, + "x_pos": 2014.063378331588, + "y_pos": 5883.089014002318 + }, + { + "id": 18383, + "x_pos": 343.51001245584484, + "y_pos": 6232.259515108195 + }, + { + "id": 18380, + "x_pos": 298.0999755859375, + "y_pos": 6241.2505387874935 + }, + { + "id": 18379, + "x_pos": 338.1947940708442, + "y_pos": 6248.927992931027 + }, + { + "id": 18372, + "x_pos": 156.787581721901, + "y_pos": 5956.587820819013 + }, + { + "id": 18371, + "x_pos": 166.9789833245013, + "y_pos": 5959.4732735203925 + }, + { + "id": 18369, + "x_pos": 179.792612052428, + "y_pos": 5910.269373490535 + }, + { + "id": 18368, + "x_pos": 180.18222841115312, + "y_pos": 5971.857163781167 + }, + { + "id": 18367, + "x_pos": -120.79119557310514, + "y_pos": 5950.471857547962 + }, + { + "id": 18365, + "x_pos": -124.7417741365025, + "y_pos": 5957.146745407204 + }, + { + "id": 18364, + "x_pos": -193.6620024497597, + "y_pos": 6086.264448115413 + }, + { + "id": 18361, + "x_pos": 47.06553240903304, + "y_pos": 6261.204254022965 + }, + { + "id": 18360, + "x_pos": -122.9624246753765, + "y_pos": 6350.980368646731 + }, + { + "id": 18356, + "x_pos": -122.5932199052695, + "y_pos": 6365.37167749857 + }, + { + "id": 17821, + "x_pos": 3454, + "y_pos": 7406 + }, + { + "id": 17820, + "x_pos": 3458.5, + "y_pos": 7409 + }, + { + "id": 17819, + "x_pos": 3447, + "y_pos": 7414 + }, + { + "id": 17667, + "x_pos": 3869.5, + "y_pos": 7316.5 + }, + { + "id": 17666, + "x_pos": 3870, + "y_pos": 7320 + }, + { + "id": 17665, + "x_pos": 4060, + "y_pos": 7122.5 + }, + { + "id": 17664, + "x_pos": 4071, + "y_pos": 7171.5 + }, + { + "id": 17663, + "x_pos": 4063.5, + "y_pos": 7121 + }, + { + "id": 17662, + "x_pos": 2292.0999755859375, + "y_pos": 6190.5 + }, + { + "id": 17660, + "x_pos": 2299.300018310547, + "y_pos": 6193.5 + }, + { + "id": 17658, + "x_pos": 2295, + "y_pos": 6201.5 + }, + { + "id": 17657, + "x_pos": 2254.7000122070312, + "y_pos": 6193.699981689453 + }, + { + "id": 17656, + "x_pos": 2267.699981689453, + "y_pos": 6193.700012207031 + }, + { + "id": 17655, + "x_pos": 2261.2000427246094, + "y_pos": 6202.300018310547 + }, + { + "id": 17654, + "x_pos": 2258.3999938964844, + "y_pos": 6196.799987792969 + }, + { + "id": 17653, + "x_pos": 2259.800018310547, + "y_pos": 6192.5999755859375 + }, + { + "id": 17652, + "x_pos": 2413.3999938964844, + "y_pos": 6422.899993896484 + }, + { + "id": 17651, + "x_pos": 2408, + "y_pos": 6427.799987792969 + }, + { + "id": 17650, + "x_pos": 2379.699981689453, + "y_pos": 6410 + }, + { + "id": 17649, + "x_pos": 2376.5, + "y_pos": 6426.399993896484 + }, + { + "id": 17512, + "x_pos": 3500.6000061035156, + "y_pos": 6971.799987792969 + }, + { + "id": 17511, + "x_pos": 3506.300018310547, + "y_pos": 6969.099990844727 + }, + { + "id": 17510, + "x_pos": 3505.999969482422, + "y_pos": 6987.899993896484 + }, + { + "id": 17509, + "x_pos": 3518.6000061035156, + "y_pos": 6994.799987792969 + }, + { + "id": 17508, + "x_pos": 3525.699981689453, + "y_pos": 6996.5 + }, + { + "id": 17507, + "x_pos": 3515.2000122070312, + "y_pos": 6972.5 + }, + { + "id": 16267, + "x_pos": -112.3636474609375, + "y_pos": 5946.387161254883 + }, + { + "id": 16264, + "x_pos": 180.63177490234375, + "y_pos": 5905.465972900391 + }, + { + "id": 16262, + "x_pos": 87.7659912109375, + "y_pos": 6031.697082519531 + }, + { + "id": 16261, + "x_pos": 89.3714599609375, + "y_pos": 6027.028594970703 + }, + { + "id": 16259, + "x_pos": 95.0433349609375, + "y_pos": 6025.222671508789 + }, + { + "id": 16257, + "x_pos": -66.15975952148438, + "y_pos": 6109.76155090332 + }, + { + "id": 16255, + "x_pos": -74.1058349609375, + "y_pos": 6111.583435058594 + }, + { + "id": 16253, + "x_pos": -68.5025634765625, + "y_pos": 6099.339569091797 + }, + { + "id": 16251, + "x_pos": -132.08782958984375, + "y_pos": 6140.335708618164 + }, + { + "id": 16250, + "x_pos": -131.43841552734375, + "y_pos": 6137.326278686523 + }, + { + "id": 16248, + "x_pos": -10.834136962890625, + "y_pos": 6156.774673461914 + }, + { + "id": 16246, + "x_pos": 138.3052978515625, + "y_pos": 6141.834899902344 + }, + { + "id": 16245, + "x_pos": 143.35311889648438, + "y_pos": 6142.291290283203 + }, + { + "id": 16244, + "x_pos": 140.34286499023438, + "y_pos": 6144.442901611328 + }, + { + "id": 16243, + "x_pos": 39.028594970703125, + "y_pos": 6268.8714599609375 + }, + { + "id": 16242, + "x_pos": 46.41748046875, + "y_pos": 6258.948669433594 + }, + { + "id": 16241, + "x_pos": -119.51901245117188, + "y_pos": 6365.495361328125 + }, + { + "id": 16240, + "x_pos": -116.9140625, + "y_pos": 6346.490997314453 + }, + { + "id": 16239, + "x_pos": 71.4720458984375, + "y_pos": 6386.518463134766 + }, + { + "id": 16238, + "x_pos": 296.17132568359375, + "y_pos": 6240.5999755859375 + }, + { + "id": 16237, + "x_pos": 300.36669921875, + "y_pos": 6244.380798339844 + }, + { + "id": 16236, + "x_pos": 342.7572021484375, + "y_pos": 6246.671478271484 + }, + { + "id": 16233, + "x_pos": 459.42852783203125, + "y_pos": 6170.857116699219 + }, + { + "id": 16231, + "x_pos": 457.0142517089844, + "y_pos": 6163.742828369141 + }, + { + "id": 16228, + "x_pos": 551.2840576171875, + "y_pos": 6078.927947998047 + }, + { + "id": 16222, + "x_pos": 3035.743865966797, + "y_pos": 6723.959762573242 + }, + { + "id": 16220, + "x_pos": 3037.2185668945312, + "y_pos": 6722.280059814453 + }, + { + "id": 16217, + "x_pos": 3036.1541748046875, + "y_pos": 6720.310134887695 + }, + { + "id": 16215, + "x_pos": 3038.220703125, + "y_pos": 6719.616058349609 + }, + { + "id": 16212, + "x_pos": 3078.0714416503906, + "y_pos": 6738.600036621094 + }, + { + "id": 16210, + "x_pos": 3083.100067138672, + "y_pos": 6736.942901611328 + }, + { + "id": 16208, + "x_pos": 3104.161895751953, + "y_pos": 6712.797424316406 + }, + { + "id": 16206, + "x_pos": 3107.085693359375, + "y_pos": 6711.142883300781 + }, + { + "id": 16204, + "x_pos": 3105.7049865722656, + "y_pos": 6706.165802001953 + }, + { + "id": 16202, + "x_pos": 3118.0130310058594, + "y_pos": 6629.591369628906 + }, + { + "id": 16199, + "x_pos": 3123.2715454101562, + "y_pos": 6629.214324951172 + }, + { + "id": 16196, + "x_pos": 3212.586456298828, + "y_pos": 7177.686492919922 + }, + { + "id": 16194, + "x_pos": 3208.1695861816406, + "y_pos": 7174.690856933594 + }, + { + "id": 16191, + "x_pos": 3210.7608032226562, + "y_pos": 7173.204772949219 + }, + { + "id": 16188, + "x_pos": 3256.5, + "y_pos": 7128.5 + }, + { + "id": 16186, + "x_pos": 3254.5, + "y_pos": 7130.5 + }, + { + "id": 16179, + "x_pos": 3376.351348876953, + "y_pos": 7365.871368408203 + }, + { + "id": 16178, + "x_pos": 3377.127227783203, + "y_pos": 7364.730361938477 + }, + { + "id": 16176, + "x_pos": 3382.199981689453, + "y_pos": 7365.431213378906 + }, + { + "id": 16174, + "x_pos": 3380.199981689453, + "y_pos": 7362.5 + }, + { + "id": 16172, + "x_pos": 3386.2999877929688, + "y_pos": 7366.200012207031 + }, + { + "id": 16170, + "x_pos": 3380.8999938964844, + "y_pos": 7369.000015258789 + }, + { + "id": 16169, + "x_pos": 3590.0972290039062, + "y_pos": 7320.492370605469 + }, + { + "id": 16167, + "x_pos": 3584.8563232421875, + "y_pos": 7313.983123779297 + }, + { + "id": 16165, + "x_pos": 3597.199981689453, + "y_pos": 7309.32861328125 + }, + { + "id": 16153, + "x_pos": 3880.699981689453, + "y_pos": 7213.571563720703 + }, + { + "id": 16149, + "x_pos": 3881.318115234375, + "y_pos": 7215.228179931641 + }, + { + "id": 16132, + "x_pos": 3814.3571166992188, + "y_pos": 6761.528594970703 + }, + { + "id": 16130, + "x_pos": 3821.5872192382812, + "y_pos": 6760.717102050781 + }, + { + "id": 16127, + "x_pos": 3819.107177734375, + "y_pos": 6762.6973876953125 + }, + { + "id": 16126, + "x_pos": 3819.8243103027344, + "y_pos": 6758.565460205078 + }, + { + "id": 16124, + "x_pos": 3820.1229858398438, + "y_pos": 6756.0904541015625 + }, + { + "id": 16122, + "x_pos": 3493.4269409179688, + "y_pos": 6634.9959716796875 + }, + { + "id": 16120, + "x_pos": 3492.9295959472656, + "y_pos": 6632.537689208984 + }, + { + "id": 16118, + "x_pos": 3494.48095703125, + "y_pos": 6629.375244140625 + }, + { + "id": 16113, + "x_pos": 3514.1534423828125, + "y_pos": 6622.052764892578 + }, + { + "id": 16110, + "x_pos": 3515.8750610351562, + "y_pos": 6618.315872192383 + }, + { + "id": 16107, + "x_pos": 3559.5669555664062, + "y_pos": 6625.870956420898 + }, + { + "id": 16105, + "x_pos": 3554.7798461914062, + "y_pos": 6627.643005371094 + }, + { + "id": 15816, + "x_pos": 4068.5, + "y_pos": 4657.5 + }, + { + "id": 15815, + "x_pos": 3500.5, + "y_pos": 4535 + }, + { + "id": 15000, + "x_pos": 2340, + "y_pos": 5771 + }, + { + "id": 14998, + "x_pos": 2347.5, + "y_pos": 5775.5 + }, + { + "id": 14997, + "x_pos": 2715.6000061035156, + "y_pos": 5644.5 + }, + { + "id": 14996, + "x_pos": 2708.2000427246094, + "y_pos": 5646.500030517578 + }, + { + "id": 14995, + "x_pos": 2706, + "y_pos": 5664 + }, + { + "id": 14994, + "x_pos": 2712.6000061035156, + "y_pos": 5664.100006103516 + }, + { + "id": 14993, + "x_pos": 2717.5, + "y_pos": 5665 + }, + { + "id": 14991, + "x_pos": 2672.5, + "y_pos": 5755.800018310547 + }, + { + "id": 14989, + "x_pos": 2677.5, + "y_pos": 5769.299987792969 + }, + { + "id": 14580, + "x_pos": 1430.8985767654467, + "y_pos": 5739.599517910745 + }, + { + "id": 14579, + "x_pos": 1438.8985767654467, + "y_pos": 5745.9073162456625 + }, + { + "id": 14578, + "x_pos": 1430.50177140704, + "y_pos": 5745.701385162778 + }, + { + "id": 13920, + "x_pos": 3713.4999389648438, + "y_pos": 4939.4691631690675 + }, + { + "id": 13919, + "x_pos": 3706.3999633789062, + "y_pos": 4938.42846771087 + }, + { + "id": 13704, + "x_pos": 3510, + "y_pos": 4528 + }, + { + "id": 13703, + "x_pos": 3506, + "y_pos": 4531 + }, + { + "id": 13702, + "x_pos": 3502, + "y_pos": 4537 + }, + { + "id": 13583, + "x_pos": 2741.5, + "y_pos": 6398.927718765186 + }, + { + "id": 13582, + "x_pos": 2730.5000610351562, + "y_pos": 6404.976515095284 + }, + { + "id": 13581, + "x_pos": 2737.5999755859375, + "y_pos": 6409.67460451134 + }, + { + "id": 13580, + "x_pos": 2729.500030517578, + "y_pos": 6411.553190676534 + }, + { + "id": 13579, + "x_pos": 2735.500030517578, + "y_pos": 6414.171669853324 + }, + { + "id": 13578, + "x_pos": 2565.5, + "y_pos": 6261.9996331677485 + }, + { + "id": 13577, + "x_pos": 2552.2000122070312, + "y_pos": 6285.2017500979855 + }, + { + "id": 13576, + "x_pos": 1693.5, + "y_pos": 5801.5 + }, + { + "id": 13575, + "x_pos": 1688, + "y_pos": 5805.5 + }, + { + "id": 13384, + "x_pos": 2520.941162109375, + "y_pos": 5626.267578125 + }, + { + "id": 13383, + "x_pos": 2518.50390625, + "y_pos": 5622.8759765625 + }, + { + "id": 13382, + "x_pos": 2637.34326171875, + "y_pos": 5869.77978515625 + }, + { + "id": 12806, + "x_pos": 1371.5, + "y_pos": 6088 + }, + { + "id": 12804, + "x_pos": 1367.5, + "y_pos": 6089.5 + }, + { + "id": 12802, + "x_pos": 1379.5, + "y_pos": 6089.5 + }, + { + "id": 12798, + "x_pos": 1526, + "y_pos": 6108.5 + }, + { + "id": 12796, + "x_pos": 1529, + "y_pos": 6090.5 + }, + { + "id": 12793, + "x_pos": 1526.5, + "y_pos": 6085 + }, + { + "id": 12789, + "x_pos": 1642, + "y_pos": 5996 + }, + { + "id": 12785, + "x_pos": 1650, + "y_pos": 5997 + }, + { + "id": 12783, + "x_pos": 1652, + "y_pos": 5990 + }, + { + "id": 12776, + "x_pos": 1324.5, + "y_pos": 6300 + }, + { + "id": 12774, + "x_pos": 1318, + "y_pos": 6298.5 + }, + { + "id": 12770, + "x_pos": 1327.5, + "y_pos": 6300 + }, + { + "id": 12766, + "x_pos": 1469.5, + "y_pos": 6374 + }, + { + "id": 12763, + "x_pos": 1529.5, + "y_pos": 6356.5 + }, + { + "id": 12760, + "x_pos": 1531.5, + "y_pos": 6333.5 + }, + { + "id": 12757, + "x_pos": 1552, + "y_pos": 6310.5 + }, + { + "id": 12755, + "x_pos": 1533, + "y_pos": 6285.5 + }, + { + "id": 12751, + "x_pos": 1536, + "y_pos": 6289.5 + }, + { + "id": 12747, + "x_pos": 1731.5, + "y_pos": 6386.5 + }, + { + "id": 12743, + "x_pos": 1732.5, + "y_pos": 6388 + }, + { + "id": 12737, + "x_pos": 1748, + "y_pos": 6348 + }, + { + "id": 12734, + "x_pos": 1755, + "y_pos": 6344.5 + }, + { + "id": 12671, + "x_pos": 2420.142333984375, + "y_pos": 6230.340087890625 + }, + { + "id": 12666, + "x_pos": 2413.677490234375, + "y_pos": 6229.037353515625 + }, + { + "id": 12661, + "x_pos": 2414.770751953125, + "y_pos": 6232.476318359375 + }, + { + "id": 12659, + "x_pos": 2428.1513671875, + "y_pos": 6226.66259765625 + }, + { + "id": 12657, + "x_pos": 2427.377197265625, + "y_pos": 6217.817626953125 + }, + { + "id": 12651, + "x_pos": 2733.5, + "y_pos": 6085 + }, + { + "id": 12648, + "x_pos": 2727, + "y_pos": 6089.5 + }, + { + "id": 12645, + "x_pos": 2736.5, + "y_pos": 6080.5 + }, + { + "id": 12641, + "x_pos": 2622.468505859375, + "y_pos": 5818.23876953125 + }, + { + "id": 12640, + "x_pos": 2615.642578125, + "y_pos": 5825.389404296875 + }, + { + "id": 12638, + "x_pos": 2622.259765625, + "y_pos": 5812.54052734375 + }, + { + "id": 12635, + "x_pos": 2912.503173828125, + "y_pos": 5703.9609375 + }, + { + "id": 12633, + "x_pos": 2914.253173828125, + "y_pos": 5701.718505859375 + }, + { + "id": 12629, + "x_pos": 2674.961181640625, + "y_pos": 5632.3916015625 + }, + { + "id": 12621, + "x_pos": 3285.5, + "y_pos": 5138 + }, + { + "id": 12617, + "x_pos": 3289, + "y_pos": 5141.5 + }, + { + "id": 12612, + "x_pos": 3286, + "y_pos": 5133.5 + }, + { + "id": 12608, + "x_pos": 3290, + "y_pos": 5133.5 + }, + { + "id": 12604, + "x_pos": 3289.5, + "y_pos": 5130.5 + }, + { + "id": 12597, + "x_pos": 3191, + "y_pos": 4928.5 + }, + { + "id": 12593, + "x_pos": 3196, + "y_pos": 4925 + }, + { + "id": 12588, + "x_pos": 3438.7109375, + "y_pos": 4673.45654296875 + }, + { + "id": 12577, + "x_pos": 3435.61474609375, + "y_pos": 4667.3486328125 + }, + { + "id": 12566, + "x_pos": 3418.990234375, + "y_pos": 4650.69287109375 + }, + { + "id": 12562, + "x_pos": 3419.20751953125, + "y_pos": 4642.38671875 + }, + { + "id": 12542, + "x_pos": 3404, + "y_pos": 4973.5 + }, + { + "id": 12539, + "x_pos": 3394, + "y_pos": 4980 + }, + { + "id": 12525, + "x_pos": 3407, + "y_pos": 4968.5 + }, + { + "id": 12505, + "x_pos": 3386.5, + "y_pos": 4874 + }, + { + "id": 12496, + "x_pos": 3387, + "y_pos": 4881 + }, + { + "id": 12490, + "x_pos": 3424.5, + "y_pos": 4888.5 + }, + { + "id": 12482, + "x_pos": 3413.5, + "y_pos": 5048.5 + }, + { + "id": 12479, + "x_pos": 3451.5, + "y_pos": 5080.5 + }, + { + "id": 12476, + "x_pos": 3462.5, + "y_pos": 5232 + }, + { + "id": 12473, + "x_pos": 3467, + "y_pos": 5235 + }, + { + "id": 12467, + "x_pos": 3774.5, + "y_pos": 5683 + }, + { + "id": 12464, + "x_pos": 3776, + "y_pos": 5671 + }, + { + "id": 12462, + "x_pos": 3764, + "y_pos": 5561.5 + }, + { + "id": 12459, + "x_pos": 3764, + "y_pos": 5554 + }, + { + "id": 12455, + "x_pos": 3769, + "y_pos": 5563 + }, + { + "id": 12452, + "x_pos": 3985.5, + "y_pos": 5500 + }, + { + "id": 12442, + "x_pos": 3578.5, + "y_pos": 5064.5 + }, + { + "id": 12433, + "x_pos": 3577.53759765625, + "y_pos": 5057.65576171875 + }, + { + "id": 12429, + "x_pos": 3578.7919921875, + "y_pos": 5055.1640625 + }, + { + "id": 12417, + "x_pos": 3662.5, + "y_pos": 4949 + }, + { + "id": 12406, + "x_pos": 3659.5, + "y_pos": 4942.5 + }, + { + "id": 12404, + "x_pos": 3651, + "y_pos": 4942.5 + }, + { + "id": 12397, + "x_pos": 3794.5, + "y_pos": 5004.5 + }, + { + "id": 12395, + "x_pos": 3804.5, + "y_pos": 4998.5 + }, + { + "id": 12390, + "x_pos": 3805, + "y_pos": 4995.5 + }, + { + "id": 12377, + "x_pos": 3660.5, + "y_pos": 4810.5 + }, + { + "id": 12374, + "x_pos": 3662, + "y_pos": 4806 + }, + { + "id": 12371, + "x_pos": 3651.5, + "y_pos": 4793.5 + }, + { + "id": 12368, + "x_pos": 3650, + "y_pos": 4796 + }, + { + "id": 12362, + "x_pos": 3653.5, + "y_pos": 4797 + }, + { + "id": 12358, + "x_pos": 3664, + "y_pos": 4779 + }, + { + "id": 12352, + "x_pos": 3814.5, + "y_pos": 4764.5 + }, + { + "id": 12349, + "x_pos": 3813.5, + "y_pos": 4767.5 + }, + { + "id": 12346, + "x_pos": 3816.5, + "y_pos": 4762.5 + }, + { + "id": 12340, + "x_pos": 3817, + "y_pos": 4769 + }, + { + "id": 12337, + "x_pos": 3815, + "y_pos": 4771.5 + }, + { + "id": 12329, + "x_pos": 3823, + "y_pos": 4773.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/29e9020dc18c6cdaf6a3b00e39d6dc26_8354955156439687915.png" + }, + "217": { + "name": "Otogi Wood", + "clear_name": "OtogiWood", + "points": [ + { + "id": 24669, + "x_pos": 1984, + "y_pos": 8662 + }, + { + "id": 24668, + "x_pos": 1982.5, + "y_pos": 8674.25 + }, + { + "id": 24667, + "x_pos": 1998.25, + "y_pos": 8685 + }, + { + "id": 24666, + "x_pos": 1951.5, + "y_pos": 8699 + }, + { + "id": 24665, + "x_pos": 1913.5, + "y_pos": 8700 + }, + { + "id": 24664, + "x_pos": 1884, + "y_pos": 8715.5 + }, + { + "id": 24663, + "x_pos": 1797.5, + "y_pos": 8805.5 + }, + { + "id": 24662, + "x_pos": 1812.5, + "y_pos": 8736.5 + }, + { + "id": 24661, + "x_pos": 1810, + "y_pos": 8730 + }, + { + "id": 24660, + "x_pos": 1800.5, + "y_pos": 8732.5 + }, + { + "id": 24659, + "x_pos": 1774, + "y_pos": 8719 + }, + { + "id": 24658, + "x_pos": 1770.5, + "y_pos": 8717.5 + }, + { + "id": 24657, + "x_pos": 1735, + "y_pos": 8765 + }, + { + "id": 24656, + "x_pos": 1729.5, + "y_pos": 8762 + }, + { + "id": 24655, + "x_pos": 1723.5, + "y_pos": 8753.5 + }, + { + "id": 24654, + "x_pos": -462.75, + "y_pos": 6098 + }, + { + "id": 24653, + "x_pos": -454, + "y_pos": 6100.5 + }, + { + "id": 24652, + "x_pos": -453.75, + "y_pos": 6056.5 + }, + { + "id": 24651, + "x_pos": -450.25, + "y_pos": 6055 + }, + { + "id": 24650, + "x_pos": -405.75, + "y_pos": 6066.25 + }, + { + "id": 24649, + "x_pos": -455.75, + "y_pos": 6041.75 + }, + { + "id": 24648, + "x_pos": 3365.5, + "y_pos": 4947.75 + }, + { + "id": 24647, + "x_pos": 3372.25, + "y_pos": 4883.75 + }, + { + "id": 24646, + "x_pos": 3383.75, + "y_pos": 4884 + }, + { + "id": 24645, + "x_pos": 3406.5, + "y_pos": 4928.25 + }, + { + "id": 24644, + "x_pos": 3426, + "y_pos": 4931.25 + }, + { + "id": 24643, + "x_pos": 3418.5, + "y_pos": 4922.5 + }, + { + "id": 24642, + "x_pos": 3472.75, + "y_pos": 4920 + }, + { + "id": 24641, + "x_pos": 3471.5, + "y_pos": 4917.5 + }, + { + "id": 24640, + "x_pos": 3455.5, + "y_pos": 4897.5 + }, + { + "id": 24639, + "x_pos": 3460.25, + "y_pos": 4894 + }, + { + "id": 24638, + "x_pos": 3446.25, + "y_pos": 4856.5 + }, + { + "id": 24637, + "x_pos": 3449.25, + "y_pos": 4854 + }, + { + "id": 24636, + "x_pos": 3387.25, + "y_pos": 4844 + }, + { + "id": 24635, + "x_pos": 3391.5, + "y_pos": 4837.5 + }, + { + "id": 24634, + "x_pos": 3415.25, + "y_pos": 4829.75 + }, + { + "id": 24633, + "x_pos": 3350.5, + "y_pos": 4795.25 + }, + { + "id": 24632, + "x_pos": 3383, + "y_pos": 4805.5 + }, + { + "id": 24631, + "x_pos": 3390.25, + "y_pos": 4801 + }, + { + "id": 24630, + "x_pos": 3529.25, + "y_pos": 4920.5 + }, + { + "id": 24629, + "x_pos": 3521.75, + "y_pos": 4858 + }, + { + "id": 24628, + "x_pos": 3512.5, + "y_pos": 4863.5 + }, + { + "id": 24627, + "x_pos": 3501.25, + "y_pos": 4845.25 + }, + { + "id": 24626, + "x_pos": 3479.25, + "y_pos": 4828.5 + }, + { + "id": 24625, + "x_pos": 3490.25, + "y_pos": 4822.25 + }, + { + "id": 24624, + "x_pos": 3478, + "y_pos": 4797.25 + }, + { + "id": 24623, + "x_pos": 3468.5, + "y_pos": 4775 + }, + { + "id": 24622, + "x_pos": 3430, + "y_pos": 4776 + }, + { + "id": 24621, + "x_pos": 3414.5, + "y_pos": 4765 + }, + { + "id": 24620, + "x_pos": 3446.5, + "y_pos": 4750 + }, + { + "id": 24619, + "x_pos": 3436, + "y_pos": 4751.5 + }, + { + "id": 24618, + "x_pos": 3432.5, + "y_pos": 4744 + }, + { + "id": 24617, + "x_pos": 3439.5, + "y_pos": 4725.5 + }, + { + "id": 24616, + "x_pos": 3737.25, + "y_pos": 4855.75 + }, + { + "id": 24615, + "x_pos": 3713, + "y_pos": 4827.5 + }, + { + "id": 24614, + "x_pos": 3708.75, + "y_pos": 4764.5 + }, + { + "id": 24613, + "x_pos": 3697.75, + "y_pos": 4763 + }, + { + "id": 24612, + "x_pos": 3689.25, + "y_pos": 4700 + }, + { + "id": 24611, + "x_pos": 3658, + "y_pos": 4703 + }, + { + "id": 24610, + "x_pos": 3655, + "y_pos": 4680.5 + }, + { + "id": 24609, + "x_pos": 3506, + "y_pos": 4151 + }, + { + "id": 20363, + "x_pos": 2725.277736055117, + "y_pos": 6072.72136083978 + }, + { + "id": 20362, + "x_pos": 2730, + "y_pos": 6077.998046636674 + }, + { + "id": 20361, + "x_pos": 2704.555539496462, + "y_pos": 6034.276685796896 + }, + { + "id": 20360, + "x_pos": 2588.0555475518277, + "y_pos": 5980.608727056564 + }, + { + "id": 20359, + "x_pos": 2570, + "y_pos": 6016.490233183373 + }, + { + "id": 20358, + "x_pos": 2565.1666490068274, + "y_pos": 6025.4427216795575 + }, + { + "id": 20357, + "x_pos": 2329.725025076197, + "y_pos": 5969.27726417948 + }, + { + "id": 20356, + "x_pos": 2374.1666490068274, + "y_pos": 6318.488279820047 + }, + { + "id": 20355, + "x_pos": 2293.1666184893866, + "y_pos": 6289.387366216784 + }, + { + "id": 20354, + "x_pos": 2386.2221885032905, + "y_pos": 6319.053371593791 + }, + { + "id": 20353, + "x_pos": 2378.891370845, + "y_pos": 6322.549787885557 + }, + { + "id": 20352, + "x_pos": 2400.6667019863444, + "y_pos": 6416.9427216795575 + }, + { + "id": 20351, + "x_pos": 2391.944429986097, + "y_pos": 6416.274762939225 + }, + { + "id": 20350, + "x_pos": 2145.3332980136556, + "y_pos": 6231.7747324335705 + }, + { + "id": 20349, + "x_pos": 2148.555539496462, + "y_pos": 6238.332041259668 + }, + { + "id": 20348, + "x_pos": 23.277758517193433, + "y_pos": 5881.22136083978 + }, + { + "id": 20347, + "x_pos": 2.9444829656140428, + "y_pos": 5879.9310014996045 + }, + { + "id": 20346, + "x_pos": 1.1665960273112432, + "y_pos": 5887.051418230465 + }, + { + "id": 20345, + "x_pos": -53.777803441344986, + "y_pos": 5885.608727056564 + }, + { + "id": 20344, + "x_pos": -45.83332047573094, + "y_pos": 5893.553371593791 + }, + { + "id": 20343, + "x_pos": -62.72224148280657, + "y_pos": 5898.883459490135 + }, + { + "id": 20342, + "x_pos": -53.61110145500061, + "y_pos": 5908.274762939225 + }, + { + "id": 20341, + "x_pos": -11.05556195853842, + "y_pos": 5895.383459490135 + }, + { + "id": 20340, + "x_pos": 9.499977537923769, + "y_pos": 5886.608727056564 + }, + { + "id": 20339, + "x_pos": 12.333320475730943, + "y_pos": 5913.9427216795575 + }, + { + "id": 20338, + "x_pos": -82.44448296561404, + "y_pos": 5874.887366216784 + }, + { + "id": 20337, + "x_pos": -90.77778097926875, + "y_pos": 5900.887366216784 + }, + { + "id": 20336, + "x_pos": -109.38889048963483, + "y_pos": 5889.719407476454 + }, + { + "id": 20335, + "x_pos": -123.94442998609702, + "y_pos": 5893.330087896344 + }, + { + "id": 20334, + "x_pos": -135.94442998609702, + "y_pos": 5860.776685796896 + }, + { + "id": 20333, + "x_pos": -144.44445244817234, + "y_pos": 5865.88931958011 + }, + { + "id": 20332, + "x_pos": -163.1666714689036, + "y_pos": 5859.887366216784 + }, + { + "id": 20331, + "x_pos": -175.6111319724414, + "y_pos": 5845.164082519337 + }, + { + "id": 20330, + "x_pos": -56, + "y_pos": 5928.22136083978 + }, + { + "id": 20329, + "x_pos": -106.16664900682736, + "y_pos": 5924.272779070245 + }, + { + "id": 20328, + "x_pos": -157.5555924759792, + "y_pos": 5905.662098650355 + }, + { + "id": 20327, + "x_pos": -182.88889048963483, + "y_pos": 5864.332041259668 + }, + { + "id": 20326, + "x_pos": -186.94445244817234, + "y_pos": 5884.272809575901 + }, + { + "id": 20325, + "x_pos": -186.83335099317264, + "y_pos": 5912.498046636674 + }, + { + "id": 20324, + "x_pos": -163.21950505977657, + "y_pos": 5925.303814667877 + }, + { + "id": 20323, + "x_pos": -144.1085460453196, + "y_pos": 5928.064438110498 + }, + { + "id": 20322, + "x_pos": -88.44439946865532, + "y_pos": 5945.330087896344 + }, + { + "id": 20321, + "x_pos": -99.22221096536578, + "y_pos": 5959.776685796896 + }, + { + "id": 20320, + "x_pos": -124.83327555157939, + "y_pos": 5962.047511503815 + }, + { + "id": 20319, + "x_pos": -133.88892100707562, + "y_pos": 5962.053371593791 + }, + { + "id": 20318, + "x_pos": -115.72221902073125, + "y_pos": 5975.776685796896 + }, + { + "id": 20317, + "x_pos": -157.05556195853842, + "y_pos": 5964.832041259668 + }, + { + "id": 20316, + "x_pos": -144.72224148280657, + "y_pos": 5995.108727056564 + }, + { + "id": 20315, + "x_pos": -130.6666714689036, + "y_pos": 6005.498046636674 + }, + { + "id": 20314, + "x_pos": -203.1666714689036, + "y_pos": 5989.332041259668 + }, + { + "id": 20313, + "x_pos": -133.94448296561404, + "y_pos": 6039.164052013681 + }, + { + "id": 19765, + "x_pos": 2529, + "y_pos": 8442.5 + }, + { + "id": 19763, + "x_pos": 2570.5, + "y_pos": 8448 + }, + { + "id": 19762, + "x_pos": 2179.5, + "y_pos": 8486.5 + }, + { + "id": 19760, + "x_pos": 2207, + "y_pos": 8504 + }, + { + "id": 19759, + "x_pos": 2186.5, + "y_pos": 8510 + }, + { + "id": 19758, + "x_pos": 2212, + "y_pos": 8534 + }, + { + "id": 19757, + "x_pos": 2222, + "y_pos": 8534 + }, + { + "id": 19756, + "x_pos": 2181.5, + "y_pos": 8531.5 + }, + { + "id": 19750, + "x_pos": 2158, + "y_pos": 8552 + }, + { + "id": 19745, + "x_pos": 2144, + "y_pos": 8568.5 + }, + { + "id": 19739, + "x_pos": 2506.5, + "y_pos": 8370 + }, + { + "id": 19738, + "x_pos": 2512.5, + "y_pos": 8374.5 + }, + { + "id": 19737, + "x_pos": 2497.5, + "y_pos": 8380 + }, + { + "id": 19736, + "x_pos": 2516.5, + "y_pos": 8388 + }, + { + "id": 19735, + "x_pos": 2178, + "y_pos": 8574 + }, + { + "id": 19733, + "x_pos": 2232, + "y_pos": 8568.5 + }, + { + "id": 19721, + "x_pos": 2174, + "y_pos": 8398.5 + }, + { + "id": 19719, + "x_pos": 2198.5, + "y_pos": 8400.5 + }, + { + "id": 19717, + "x_pos": 2180, + "y_pos": 8589 + }, + { + "id": 19714, + "x_pos": 2154, + "y_pos": 8590 + }, + { + "id": 19709, + "x_pos": 2016.5, + "y_pos": 8619.5 + }, + { + "id": 19708, + "x_pos": 2015, + "y_pos": 8639 + }, + { + "id": 19704, + "x_pos": 2204, + "y_pos": 8608 + }, + { + "id": 19700, + "x_pos": 2082, + "y_pos": 8608 + }, + { + "id": 19694, + "x_pos": 2489.5, + "y_pos": 8477 + }, + { + "id": 19693, + "x_pos": 2528.5, + "y_pos": 8456.5 + }, + { + "id": 19692, + "x_pos": 2220, + "y_pos": 8572.5 + }, + { + "id": 19691, + "x_pos": 2517.5, + "y_pos": 8370 + }, + { + "id": 19685, + "x_pos": 2093, + "y_pos": 8686.5 + }, + { + "id": 19682, + "x_pos": 2186, + "y_pos": 8636.5 + }, + { + "id": 15319, + "x_pos": 1519.3000183105469, + "y_pos": 6431.403649581511 + }, + { + "id": 15318, + "x_pos": 1545.2000122070312, + "y_pos": 6439.801236903211 + }, + { + "id": 15317, + "x_pos": 1609.8000183105469, + "y_pos": 6468.8042833151485 + }, + { + "id": 15316, + "x_pos": 1641.3999938964844, + "y_pos": 6459.204886484722 + }, + { + "id": 15315, + "x_pos": 1650.1000061035156, + "y_pos": 6462.503046411935 + }, + { + "id": 15314, + "x_pos": 1642.6999816894531, + "y_pos": 6443.415835229254 + }, + { + "id": 15313, + "x_pos": 1641.8999938964844, + "y_pos": 6253.503046411935 + }, + { + "id": 15312, + "x_pos": 1622.6999816894531, + "y_pos": 6292.804421593446 + }, + { + "id": 15311, + "x_pos": 1628, + "y_pos": 6319.605691455694 + }, + { + "id": 15310, + "x_pos": 1646.6000061035156, + "y_pos": 6302.410128332091 + }, + { + "id": 15309, + "x_pos": 1654.2999877929688, + "y_pos": 6276.304237469054 + }, + { + "id": 15308, + "x_pos": 1685.2999877929688, + "y_pos": 6275.509501042443 + }, + { + "id": 15307, + "x_pos": 1697.6000061035156, + "y_pos": 6264.3075733246405 + }, + { + "id": 15306, + "x_pos": 1728.2999877929688, + "y_pos": 6281.208215897241 + }, + { + "id": 15304, + "x_pos": 1698.7999877929688, + "y_pos": 6306.105676172743 + }, + { + "id": 15303, + "x_pos": 1721.5, + "y_pos": 6296.105706738646 + }, + { + "id": 15302, + "x_pos": 1729.5, + "y_pos": 6292.804436876397 + }, + { + "id": 15300, + "x_pos": 1738.2000122070312, + "y_pos": 6278.102524441547 + }, + { + "id": 15298, + "x_pos": 1728.7000122070312, + "y_pos": 6243.301254579297 + }, + { + "id": 15297, + "x_pos": 1611.6000061035156, + "y_pos": 6211.704886484722 + }, + { + "id": 15295, + "x_pos": 1713.7999877929688, + "y_pos": 6185.9038248697 + }, + { + "id": 15294, + "x_pos": 1695.7000122070312, + "y_pos": 6136.608873752793 + }, + { + "id": 15293, + "x_pos": 1671.0999755859375, + "y_pos": 6102.105706738646 + }, + { + "id": 15292, + "x_pos": 1682.6000061035156, + "y_pos": 6091.313922635887 + }, + { + "id": 15291, + "x_pos": 1665.5, + "y_pos": 6066.701881868947 + }, + { + "id": 15290, + "x_pos": 1615.6999816894531, + "y_pos": 5965.708249871679 + }, + { + "id": 15289, + "x_pos": 1688.2996503671566, + "y_pos": 5959.803191309824 + }, + { + "id": 15288, + "x_pos": 1671.1000061035156, + "y_pos": 5999.805479546123 + }, + { + "id": 15287, + "x_pos": 1695.1999816894531, + "y_pos": 6024.504561196354 + }, + { + "id": 15286, + "x_pos": 1719, + "y_pos": 6017.210507555486 + }, + { + "id": 15285, + "x_pos": 1722.7999877929688, + "y_pos": 6041.1109896447415 + }, + { + "id": 15284, + "x_pos": 1730.5, + "y_pos": 6022.4073162456625 + }, + { + "id": 15283, + "x_pos": 1761.9015123383815, + "y_pos": 5989.9096044819635 + }, + { + "id": 15282, + "x_pos": 1773.7000122070312, + "y_pos": 6012.902739773062 + }, + { + "id": 15281, + "x_pos": 1784.7020062829397, + "y_pos": 6001.405028009362 + }, + { + "id": 15280, + "x_pos": 1777.5, + "y_pos": 6050.902739773062 + }, + { + "id": 15279, + "x_pos": 1787.1000061035156, + "y_pos": 6223.804421593446 + }, + { + "id": 15278, + "x_pos": 1774.1999816894531, + "y_pos": 6206.304436876397 + }, + { + "id": 15277, + "x_pos": 1754.5, + "y_pos": 6136.605706738646 + }, + { + "id": 15276, + "x_pos": 1764.1000061035156, + "y_pos": 6128.208246463144 + }, + { + "id": 15275, + "x_pos": 1812, + "y_pos": 6113.31395320179 + }, + { + "id": 15274, + "x_pos": 1842.7999877929688, + "y_pos": 6182.807588607593 + }, + { + "id": 15273, + "x_pos": 1866.6999816894531, + "y_pos": 6146.304452159347 + }, + { + "id": 15272, + "x_pos": 1875.5, + "y_pos": 6154.705048883094 + }, + { + "id": 15271, + "x_pos": 2019.90066876098, + "y_pos": 6136.509152945202 + }, + { + "id": 15270, + "x_pos": 2131.6994755507358, + "y_pos": 6057.10412493584 + }, + { + "id": 15269, + "x_pos": 2204.2003191281365, + "y_pos": 6043.407346798156 + }, + { + "id": 15244, + "x_pos": 1660.7031448192001, + "y_pos": 6147.704886484722 + }, + { + "id": 15243, + "x_pos": 1673.1991985214736, + "y_pos": 6158.20485592066 + }, + { + "id": 15242, + "x_pos": 1609.5, + "y_pos": 6198.105489654297 + }, + { + "id": 15241, + "x_pos": 1653.5, + "y_pos": 6194.304252751086 + }, + { + "id": 15240, + "x_pos": 1638.8008014785264, + "y_pos": 6214.108536066233 + }, + { + "id": 15239, + "x_pos": 1659.5996145344634, + "y_pos": 6211.60850550217 + }, + { + "id": 15238, + "x_pos": 1689.8008014785264, + "y_pos": 6191.710979308595 + }, + { + "id": 15236, + "x_pos": 1707.1991985214736, + "y_pos": 6220.102443242362 + }, + { + "id": 15235, + "x_pos": 1664.1991985214736, + "y_pos": 6257.909742405383 + }, + { + "id": 15233, + "x_pos": 1747.9003854655366, + "y_pos": 6288.8042833151485 + }, + { + "id": 15232, + "x_pos": 1739.5996145344634, + "y_pos": 6299.3042833151485 + }, + { + "id": 15231, + "x_pos": 1764.3984581378527, + "y_pos": 6280.707932896659 + }, + { + "id": 15230, + "x_pos": 1774.5976566593263, + "y_pos": 6264.009139235808 + }, + { + "id": 15228, + "x_pos": 1794.7961276665528, + "y_pos": 6289.003046411935 + }, + { + "id": 15227, + "x_pos": 1802.0138926459813, + "y_pos": 6295.557866544752 + }, + { + "id": 15226, + "x_pos": 1793.194815011875, + "y_pos": 6304.7619837854745 + }, + { + "id": 15225, + "x_pos": 1779.4891332510733, + "y_pos": 6322.374327866628 + }, + { + "id": 15224, + "x_pos": 1766.3058085001703, + "y_pos": 6330.798159927213 + }, + { + "id": 15223, + "x_pos": 1717.5019578751371, + "y_pos": 6321.701840072787 + }, + { + "id": 15222, + "x_pos": 1732.2985402363593, + "y_pos": 6358.605489654297 + }, + { + "id": 15221, + "x_pos": 1662.9004160129898, + "y_pos": 6332.602443242362 + }, + { + "id": 15220, + "x_pos": 1682.1991985214736, + "y_pos": 6350.701809508724 + }, + { + "id": 15219, + "x_pos": 1719.79008605724, + "y_pos": 6363.856079959074 + }, + { + "id": 15218, + "x_pos": 1683.6991985214736, + "y_pos": 6330.403680145573 + }, + { + "id": 15217, + "x_pos": 1706.0995235969167, + "y_pos": 6362.201840072787 + }, + { + "id": 15216, + "x_pos": 1689.5, + "y_pos": 6386.707932896659 + }, + { + "id": 15215, + "x_pos": 1714.298570790751, + "y_pos": 6409.207932896659 + }, + { + "id": 15214, + "x_pos": 1641.5, + "y_pos": 6419.713995156468 + }, + { + "id": 15213, + "x_pos": 1665.3007709310732, + "y_pos": 6399.204886484722 + }, + { + "id": 15212, + "x_pos": 1720, + "y_pos": 6416.801206339149 + }, + { + "id": 15210, + "x_pos": 1702.083831708378, + "y_pos": 6423.958523201436 + }, + { + "id": 15209, + "x_pos": 1627.0996450819157, + "y_pos": 6433.521324883552 + }, + { + "id": 15208, + "x_pos": 1600.8984581378527, + "y_pos": 6406.003046411935 + }, + { + "id": 15207, + "x_pos": 1617.699229068926, + "y_pos": 6409.60850550217 + }, + { + "id": 15206, + "x_pos": 1615.800770931074, + "y_pos": 6436.70485592066 + }, + { + "id": 15205, + "x_pos": 1615.0995839870102, + "y_pos": 6442.5 + }, + { + "id": 15203, + "x_pos": 1585.800770931074, + "y_pos": 6454.204886484722 + }, + { + "id": 15202, + "x_pos": 1572.798813055937, + "y_pos": 6414.403649581511 + }, + { + "id": 15201, + "x_pos": 1553.8984275903995, + "y_pos": 6407.605489654297 + }, + { + "id": 15200, + "x_pos": 1532.4951748603871, + "y_pos": 6405 + }, + { + "id": 15199, + "x_pos": 1510.5, + "y_pos": 6401.301206339149 + }, + { + "id": 15198, + "x_pos": 1544.5, + "y_pos": 6376.406726557509 + }, + { + "id": 15197, + "x_pos": 1546.5, + "y_pos": 6387.801206339149 + }, + { + "id": 15195, + "x_pos": 1589.7011563966107, + "y_pos": 6378.701840072787 + }, + { + "id": 15194, + "x_pos": 1575, + "y_pos": 6350.108536066233 + }, + { + "id": 15191, + "x_pos": 1537.1019361667231, + "y_pos": 6265.608536066233 + }, + { + "id": 15190, + "x_pos": 1567.6015724096005, + "y_pos": 6305.506092823873 + }, + { + "id": 15188, + "x_pos": 1500.8008014785264, + "y_pos": 6352.5030616939675 + }, + { + "id": 15186, + "x_pos": 1485.4004764030833, + "y_pos": 6250.105489654297 + }, + { + "id": 15184, + "x_pos": 1475.5024125698064, + "y_pos": 6336.003046411935 + }, + { + "id": 15183, + "x_pos": 1469.1990471938334, + "y_pos": 6316.3072991630215 + }, + { + "id": 15181, + "x_pos": 1485.6990471938334, + "y_pos": 6385.707902332595 + }, + { + "id": 15180, + "x_pos": 1482, + "y_pos": 6398.900633733638 + }, + { + "id": 15178, + "x_pos": 1454.1019361667231, + "y_pos": 6377.602443242362 + }, + { + "id": 15177, + "x_pos": 1449.0995235969167, + "y_pos": 6395.698793660851 + }, + { + "id": 15176, + "x_pos": 1442.0971110271103, + "y_pos": 6392.701809508724 + }, + { + "id": 15175, + "x_pos": 1409.7014597636407, + "y_pos": 6366 + }, + { + "id": 15174, + "x_pos": 1405.5, + "y_pos": 6323.403680145573 + }, + { + "id": 15173, + "x_pos": 1391.7014597636407, + "y_pos": 6304.006092823873 + }, + { + "id": 15172, + "x_pos": 1403.5, + "y_pos": 6319.304252751086 + }, + { + "id": 15171, + "x_pos": 1380.6019361667231, + "y_pos": 6299.70485592066 + }, + { + "id": 15170, + "x_pos": 1374.0048251396129, + "y_pos": 6302.409742405382 + }, + { + "id": 15169, + "x_pos": 1467.8009528061666, + "y_pos": 6187.602443242362 + }, + { + "id": 15168, + "x_pos": 1403.7014597636407, + "y_pos": 6229.503046411935 + }, + { + "id": 15167, + "x_pos": 1346.4999694456092, + "y_pos": 6285.20485592066 + }, + { + "id": 15166, + "x_pos": 1330.2014597636407, + "y_pos": 6299.403680145573 + }, + { + "id": 15165, + "x_pos": 1311.4975874301936, + "y_pos": 6264.503046411935 + }, + { + "id": 15164, + "x_pos": 1321.9029195272806, + "y_pos": 6264.906695993446 + }, + { + "id": 15163, + "x_pos": 1306.3033348215813, + "y_pos": 6246.903680145573 + }, + { + "id": 15162, + "x_pos": 1345.701429209249, + "y_pos": 6231.204886484722 + }, + { + "id": 15161, + "x_pos": 1323.7038417790554, + "y_pos": 6211.506092823873 + }, + { + "id": 15160, + "x_pos": 1368.5995235969167, + "y_pos": 6200.201840072787 + }, + { + "id": 15159, + "x_pos": 1378.4005069574741, + "y_pos": 6204.003046411935 + }, + { + "id": 15157, + "x_pos": 1364.303365375973, + "y_pos": 6174.003046411935 + }, + { + "id": 15156, + "x_pos": 1062.2014597636407, + "y_pos": 6140.10850550217 + }, + { + "id": 15155, + "x_pos": 1039.7961582209446, + "y_pos": 6124.801206339149 + }, + { + "id": 15154, + "x_pos": 1002.5850481780781, + "y_pos": 5900.111613042232 + }, + { + "id": 15153, + "x_pos": 993.1019361667231, + "y_pos": 5903.602443242362 + }, + { + "id": 15152, + "x_pos": 975.1043487365296, + "y_pos": 5912.006092823873 + }, + { + "id": 15151, + "x_pos": 972, + "y_pos": 5887.207932896659 + }, + { + "id": 15150, + "x_pos": 972.298570790751, + "y_pos": 5879.006092823873 + }, + { + "id": 15149, + "x_pos": 953.7828789022115, + "y_pos": 5887.360619012916 + }, + { + "id": 14984, + "x_pos": 1635.4004924398623, + "y_pos": 6076.308102610259 + }, + { + "id": 14979, + "x_pos": 1574.6020003150652, + "y_pos": 6171.9040665897155 + }, + { + "id": 14977, + "x_pos": 1473.7014773195879, + "y_pos": 6170 + }, + { + "id": 14826, + "x_pos": 1346.301023789967, + "y_pos": 6115.1018366995395 + }, + { + "id": 14825, + "x_pos": 1363.6964625690134, + "y_pos": 6103.488558818497 + }, + { + "id": 14824, + "x_pos": 1359.3035068750532, + "y_pos": 6110.203673399079 + }, + { + "id": 14807, + "x_pos": 1541.2984795930151, + "y_pos": 5968.902770325556 + }, + { + "id": 14805, + "x_pos": 1580.9949727179628, + "y_pos": 5956.810056018725 + }, + { + "id": 14804, + "x_pos": 1594.1990067659654, + "y_pos": 5943.10641317214 + }, + { + "id": 14803, + "x_pos": 1619.6914658429096, + "y_pos": 5933.902739773062 + }, + { + "id": 14802, + "x_pos": 1632.5025136410186, + "y_pos": 5921.203642846585 + }, + { + "id": 14800, + "x_pos": 1600.0025136410186, + "y_pos": 6005.402739773062 + }, + { + "id": 14799, + "x_pos": 1619.0995033829831, + "y_pos": 6007.60641317214 + }, + { + "id": 14798, + "x_pos": 1658.7014898510515, + "y_pos": 5978.803191309824 + }, + { + "id": 14797, + "x_pos": 1666.9849181538875, + "y_pos": 5947.694551006371 + }, + { + "id": 14796, + "x_pos": 1687.5995033829831, + "y_pos": 5896.504576472602 + }, + { + "id": 14795, + "x_pos": 1739.2014898510515, + "y_pos": 5871.613277881042 + }, + { + "id": 14794, + "x_pos": 1771.8035374309866, + "y_pos": 5935.405028009362 + }, + { + "id": 14793, + "x_pos": 1817.801023789967, + "y_pos": 5856.60412493584 + }, + { + "id": 14792, + "x_pos": 1990.9974863589814, + "y_pos": 5959.5995484632385 + }, + { + "id": 14791, + "x_pos": 1908.5025136410186, + "y_pos": 5819.5 + }, + { + "id": 14790, + "x_pos": 1906.4005271729502, + "y_pos": 5809.402739773062 + }, + { + "id": 14789, + "x_pos": 1905.698976210033, + "y_pos": 5789.004576472602 + }, + { + "id": 14788, + "x_pos": 1900.1990067659654, + "y_pos": 5746.504576472602 + }, + { + "id": 14787, + "x_pos": 1730.5978804204742, + "y_pos": 5803.411923270758 + }, + { + "id": 14786, + "x_pos": 1673.5978804204742, + "y_pos": 5828.812344255026 + }, + { + "id": 14784, + "x_pos": 1656.1957608409484, + "y_pos": 5844.8123748075195 + }, + { + "id": 14783, + "x_pos": 1661.8968053584076, + "y_pos": 5851.210507555486 + }, + { + "id": 14782, + "x_pos": 1640.9003481724867, + "y_pos": 5855.101806147046 + }, + { + "id": 14781, + "x_pos": 1626.50177140704, + "y_pos": 5852.8032218623175 + }, + { + "id": 14780, + "x_pos": 1604.7989249379334, + "y_pos": 5849.506864708901 + }, + { + "id": 14779, + "x_pos": 1584.19750170338, + "y_pos": 5848.902739773062 + }, + { + "id": 14778, + "x_pos": 1551.5978804204742, + "y_pos": 5839.9073162456625 + }, + { + "id": 14777, + "x_pos": 1547.6020170240017, + "y_pos": 5906.509152945202 + }, + { + "id": 14776, + "x_pos": 1554.8009932340346, + "y_pos": 5916.803191309824 + }, + { + "id": 14775, + "x_pos": 1496.0995033829831, + "y_pos": 5928.1087014084405 + }, + { + "id": 14774, + "x_pos": 1463.392955693961, + "y_pos": 5934.10412493584 + }, + { + "id": 14773, + "x_pos": 1517.8060205160718, + "y_pos": 5850.703673399079 + }, + { + "id": 14772, + "x_pos": 1480.283428302836, + "y_pos": 5842.604094383347 + }, + { + "id": 14771, + "x_pos": 1468.0894488189078, + "y_pos": 5848.004576472602 + }, + { + "id": 14770, + "x_pos": 1457.405523899055, + "y_pos": 5878.39587506416 + }, + { + "id": 14769, + "x_pos": 1506.9021195795258, + "y_pos": 5811.402770325556 + }, + { + "id": 14768, + "x_pos": 1451.798994014035, + "y_pos": 5781.5 + }, + { + "id": 14767, + "x_pos": 1441.6993293426904, + "y_pos": 5799.506864708901 + }, + { + "id": 14766, + "x_pos": 1390.5017071869024, + "y_pos": 5795.807798334918 + }, + { + "id": 14765, + "x_pos": 1375.8999938964844, + "y_pos": 5823.299987792969 + }, + { + "id": 14764, + "x_pos": 1420.7115749710601, + "y_pos": 5917.2059310828845 + }, + { + "id": 14763, + "x_pos": 1333.3000183105469, + "y_pos": 5850.600006103516 + }, + { + "id": 14762, + "x_pos": 1346.2155294393951, + "y_pos": 5861.335211341784 + }, + { + "id": 14760, + "x_pos": 1361.9622953847183, + "y_pos": 5876.199096926477 + }, + { + "id": 14759, + "x_pos": 1349.5995033829831, + "y_pos": 5881.4096044819635 + }, + { + "id": 14758, + "x_pos": 1410.7985101489485, + "y_pos": 5948.208219319185 + }, + { + "id": 14757, + "x_pos": 1387.0050272820372, + "y_pos": 5956.411892718264 + }, + { + "id": 14756, + "x_pos": 1397.8009932340346, + "y_pos": 5968.597260226938 + }, + { + "id": 14754, + "x_pos": 1365.7015204069849, + "y_pos": 5991.009152945202 + }, + { + "id": 14753, + "x_pos": 1343.5995033829831, + "y_pos": 5920.203642846585 + }, + { + "id": 14752, + "x_pos": 1328.9105817370255, + "y_pos": 5910.617823801149 + }, + { + "id": 14751, + "x_pos": 1323.0995033829831, + "y_pos": 5943.402770325556 + }, + { + "id": 14750, + "x_pos": 1305.594476100945, + "y_pos": 5941.006864708901 + }, + { + "id": 14749, + "x_pos": 1320.4949727179628, + "y_pos": 5882.4073162456625 + }, + { + "id": 14748, + "x_pos": 1304.2090307741073, + "y_pos": 5889.409635034457 + }, + { + "id": 14747, + "x_pos": 1300.5969897419636, + "y_pos": 6030.905058561857 + }, + { + "id": 14746, + "x_pos": 1288.716571697164, + "y_pos": 6017.726555762083 + }, + { + "id": 14745, + "x_pos": 1286.6020170240017, + "y_pos": 5979.8398336431255 + }, + { + "id": 14744, + "x_pos": 1270.43568759128, + "y_pos": 5964.520594126705 + }, + { + "id": 14743, + "x_pos": 1278.1020170240017, + "y_pos": 5948.504576472602 + }, + { + "id": 14742, + "x_pos": 1254.5100851200086, + "y_pos": 5942.305479546123 + }, + { + "id": 14741, + "x_pos": 1260.887928411923, + "y_pos": 5909.5 + }, + { + "id": 14740, + "x_pos": 1259.9030102580355, + "y_pos": 5890.120173142437 + }, + { + "id": 14739, + "x_pos": 1228.4000244140625, + "y_pos": 5913.899993896484 + }, + { + "id": 14738, + "x_pos": 1207.6000061035156, + "y_pos": 5918.300018310547 + }, + { + "id": 14737, + "x_pos": 1217.5, + "y_pos": 5931.799987792969 + }, + { + "id": 14736, + "x_pos": 1214.5995033829831, + "y_pos": 5958.805479546123 + }, + { + "id": 14735, + "x_pos": 1225.1999816894531, + "y_pos": 5879.900009155273 + }, + { + "id": 14734, + "x_pos": 1211.3000183105469, + "y_pos": 5835.800018310547 + }, + { + "id": 14733, + "x_pos": 1208.7000122070312, + "y_pos": 5821.200012207031 + }, + { + "id": 14732, + "x_pos": 1230.5, + "y_pos": 5800.699981689453 + }, + { + "id": 14730, + "x_pos": 880.5, + "y_pos": 5946 + }, + { + "id": 14729, + "x_pos": 888.5, + "y_pos": 5958.899993896484 + }, + { + "id": 14728, + "x_pos": 869.7999877929688, + "y_pos": 5975.799987792969 + }, + { + "id": 14727, + "x_pos": 916, + "y_pos": 6064 + }, + { + "id": 14726, + "x_pos": 928.2999877929688, + "y_pos": 6067.799987792969 + }, + { + "id": 14725, + "x_pos": 923, + "y_pos": 6085.9000244140625 + }, + { + "id": 14441, + "x_pos": 3970.5, + "y_pos": 5510.5 + }, + { + "id": 14440, + "x_pos": 3991.5, + "y_pos": 5515.5 + }, + { + "id": 14439, + "x_pos": 3983, + "y_pos": 5519 + }, + { + "id": 14437, + "x_pos": 3993, + "y_pos": 5542 + }, + { + "id": 14436, + "x_pos": 3925.5, + "y_pos": 5471.5 + }, + { + "id": 14435, + "x_pos": 3918, + "y_pos": 5521.5 + }, + { + "id": 14434, + "x_pos": 3922, + "y_pos": 5524 + }, + { + "id": 14433, + "x_pos": 3889, + "y_pos": 5434 + }, + { + "id": 14317, + "x_pos": 3076.5, + "y_pos": 4842.5 + }, + { + "id": 14249, + "x_pos": 3096.5, + "y_pos": 4814.5 + }, + { + "id": 14226, + "x_pos": 3115, + "y_pos": 4684 + }, + { + "id": 14225, + "x_pos": 3154, + "y_pos": 4742.5 + }, + { + "id": 14224, + "x_pos": 3182.5, + "y_pos": 4828.5 + }, + { + "id": 14223, + "x_pos": 3182, + "y_pos": 4840 + }, + { + "id": 14222, + "x_pos": 3056.5, + "y_pos": 4984 + }, + { + "id": 14221, + "x_pos": 3406, + "y_pos": 4841.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210723/874c4e4e7f55c4965a4142507d940d95_8904822044728475666.png" + }, + "279": { + "name": "Crimson Finch", + "clear_name": "CrimsonFinch", + "points": [ + { + "id": 24583, + "x_pos": -1681, + "y_pos": 1705.25 + }, + { + "id": 23621, + "x_pos": -1555.250015258789, + "y_pos": 483.99998474121094 + }, + { + "id": 23620, + "x_pos": -1554, + "y_pos": 507 + }, + { + "id": 23619, + "x_pos": -1554, + "y_pos": 484 + }, + { + "id": 23618, + "x_pos": -1556.499984741211, + "y_pos": 484.25 + }, + { + "id": 23323, + "x_pos": -1957, + "y_pos": 2592 + }, + { + "id": 23322, + "x_pos": -1946, + "y_pos": 2590 + }, + { + "id": 23321, + "x_pos": -1585, + "y_pos": 2975 + }, + { + "id": 23320, + "x_pos": -1592, + "y_pos": 2968 + }, + { + "id": 23319, + "x_pos": -1608, + "y_pos": 585 + }, + { + "id": 23318, + "x_pos": -1610, + "y_pos": 581.5 + }, + { + "id": 23317, + "x_pos": -1557.75, + "y_pos": 506.49998474121094 + }, + { + "id": 23316, + "x_pos": -1923, + "y_pos": 745.5 + }, + { + "id": 23315, + "x_pos": -1911.5, + "y_pos": 741.5 + }, + { + "id": 23314, + "x_pos": -1919.5, + "y_pos": 739.5 + }, + { + "id": 23313, + "x_pos": -1992, + "y_pos": 758.5 + }, + { + "id": 23312, + "x_pos": -1994, + "y_pos": 748.5 + }, + { + "id": 23289, + "x_pos": 343.63863647607104, + "y_pos": 555.8989115004433 + }, + { + "id": 23288, + "x_pos": 342.64853908150417, + "y_pos": 555.1873753845957 + }, + { + "id": 23287, + "x_pos": 3220.4499791735498, + "y_pos": 6685.469643096156 + }, + { + "id": 23285, + "x_pos": 1032.3499908447266, + "y_pos": -631.3884174098243 + }, + { + "id": 23284, + "x_pos": 1035.25, + "y_pos": -631.4826094469722 + }, + { + "id": 23283, + "x_pos": 1037.8499908447266, + "y_pos": -631.399800778101 + }, + { + "id": 23282, + "x_pos": 1042, + "y_pos": -634.9933083903943 + }, + { + "id": 23281, + "x_pos": 1044.8499908447266, + "y_pos": -635.1990677538233 + }, + { + "id": 23280, + "x_pos": 1018.6500091552734, + "y_pos": -631.7416354879929 + }, + { + "id": 23279, + "x_pos": 1021.5999908447266, + "y_pos": -631.7509961094938 + }, + { + "id": 23266, + "x_pos": 209.75, + "y_pos": 6301.942056861153 + }, + { + "id": 23265, + "x_pos": 209.14999389648438, + "y_pos": 6300.145445385879 + }, + { + "id": 23252, + "x_pos": -1491.1999969482422, + "y_pos": 3121.0492669757223 + }, + { + "id": 23251, + "x_pos": -1484.8000030517578, + "y_pos": 3123.5546278953543 + }, + { + "id": 23250, + "x_pos": -1480.5500183105469, + "y_pos": 3127.309646602558 + }, + { + "id": 21371, + "x_pos": 1870, + "y_pos": 9008.5 + }, + { + "id": 21370, + "x_pos": 1867, + "y_pos": 9012 + }, + { + "id": 20957, + "x_pos": -1335, + "y_pos": 1488.8550524668453 + }, + { + "id": 20956, + "x_pos": -1897, + "y_pos": 1072 + }, + { + "id": 20955, + "x_pos": -1913, + "y_pos": 1065 + }, + { + "id": 20954, + "x_pos": -1937.5, + "y_pos": 1024 + }, + { + "id": 20953, + "x_pos": -1950, + "y_pos": 1028.5 + }, + { + "id": 20952, + "x_pos": -1629, + "y_pos": 1436.5 + }, + { + "id": 20951, + "x_pos": -1552, + "y_pos": 1234 + }, + { + "id": 20950, + "x_pos": -1561.5, + "y_pos": 1234 + }, + { + "id": 20949, + "x_pos": -1660.5, + "y_pos": 1095.5 + }, + { + "id": 20948, + "x_pos": -1657, + "y_pos": 1097.5 + }, + { + "id": 20947, + "x_pos": -1654.5, + "y_pos": 1096 + }, + { + "id": 20946, + "x_pos": -1657, + "y_pos": 1094 + }, + { + "id": 20945, + "x_pos": -1684.5, + "y_pos": 1145 + }, + { + "id": 20944, + "x_pos": -1792, + "y_pos": 1061.5 + }, + { + "id": 20943, + "x_pos": -1793, + "y_pos": 1059 + }, + { + "id": 20856, + "x_pos": -1223.5, + "y_pos": 2821 + }, + { + "id": 20855, + "x_pos": -1110, + "y_pos": 2938 + }, + { + "id": 20854, + "x_pos": -1158, + "y_pos": 2965 + }, + { + "id": 20819, + "x_pos": -956, + "y_pos": 750.5 + }, + { + "id": 20681, + "x_pos": -441.5, + "y_pos": 65.00003051757812 + }, + { + "id": 20680, + "x_pos": -436, + "y_pos": 65.5 + }, + { + "id": 20679, + "x_pos": -438.5, + "y_pos": 61.000030517578125 + }, + { + "id": 20678, + "x_pos": -44, + "y_pos": 427 + }, + { + "id": 20677, + "x_pos": -50, + "y_pos": 425.5 + }, + { + "id": 20676, + "x_pos": -48.49993896484375, + "y_pos": 423.5000305175781 + }, + { + "id": 20675, + "x_pos": -129, + "y_pos": 465 + }, + { + "id": 20674, + "x_pos": -132, + "y_pos": 464 + }, + { + "id": 20673, + "x_pos": -129.5, + "y_pos": 462.5 + }, + { + "id": 20642, + "x_pos": 380, + "y_pos": 139.5 + }, + { + "id": 20641, + "x_pos": 326.5, + "y_pos": 146.5 + }, + { + "id": 20640, + "x_pos": 320, + "y_pos": 148 + }, + { + "id": 20639, + "x_pos": 316, + "y_pos": 146.5 + }, + { + "id": 20638, + "x_pos": 320.5, + "y_pos": 145 + }, + { + "id": 20637, + "x_pos": 436.5, + "y_pos": 138 + }, + { + "id": 20636, + "x_pos": 431.5, + "y_pos": 137.5 + }, + { + "id": 20635, + "x_pos": 447, + "y_pos": -364 + }, + { + "id": 20634, + "x_pos": 475.5, + "y_pos": -139.5 + }, + { + "id": 20633, + "x_pos": 471.5, + "y_pos": -134.5 + }, + { + "id": 20632, + "x_pos": 468, + "y_pos": -137 + }, + { + "id": 20631, + "x_pos": 408.5, + "y_pos": -175 + }, + { + "id": 20630, + "x_pos": 404, + "y_pos": -178.5 + }, + { + "id": 20629, + "x_pos": 1020.5, + "y_pos": -632.5 + }, + { + "id": 20628, + "x_pos": 1047.5, + "y_pos": -635.5 + }, + { + "id": 20627, + "x_pos": 980.5, + "y_pos": -667.5 + }, + { + "id": 20626, + "x_pos": 977, + "y_pos": -673.5 + }, + { + "id": 20625, + "x_pos": 940.5, + "y_pos": -638 + }, + { + "id": 20624, + "x_pos": 936, + "y_pos": -643.5 + }, + { + "id": 20623, + "x_pos": 444, + "y_pos": -360 + }, + { + "id": 20622, + "x_pos": 440, + "y_pos": -363 + }, + { + "id": 20621, + "x_pos": 863.5, + "y_pos": 28.5 + }, + { + "id": 20620, + "x_pos": 858, + "y_pos": 28.5 + }, + { + "id": 20619, + "x_pos": 368.5, + "y_pos": 213 + }, + { + "id": 20618, + "x_pos": 292, + "y_pos": 212.5 + }, + { + "id": 20617, + "x_pos": 388.5, + "y_pos": 134.5 + }, + { + "id": 20616, + "x_pos": 388.5, + "y_pos": 144 + }, + { + "id": 20615, + "x_pos": 339, + "y_pos": -61 + }, + { + "id": 20614, + "x_pos": 339, + "y_pos": -58.5 + }, + { + "id": 20613, + "x_pos": 338.5, + "y_pos": -55 + }, + { + "id": 20612, + "x_pos": 331, + "y_pos": -54 + }, + { + "id": 20611, + "x_pos": 354.5, + "y_pos": 25.5 + }, + { + "id": 20610, + "x_pos": 350.5, + "y_pos": 27.5 + }, + { + "id": 20609, + "x_pos": 473, + "y_pos": -382.5 + }, + { + "id": 20608, + "x_pos": 481.5, + "y_pos": -383 + }, + { + "id": 20607, + "x_pos": 476, + "y_pos": -380.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/e51d47edab34d3f7a401c9340f8c241d_1648213300967764870.png" + }, + "306": { + "name": "Squirrel", + "clear_name": "Squirrel", + "points": [ + { + "id": 24582, + "x_pos": -1712, + "y_pos": 1683 + }, + { + "id": 24581, + "x_pos": -1676, + "y_pos": 1731.5 + }, + { + "id": 23264, + "x_pos": 1764.2552236689917, + "y_pos": 8656.92569486795 + }, + { + "id": 21361, + "x_pos": 2436.5, + "y_pos": 8606 + }, + { + "id": 21360, + "x_pos": 2510.5, + "y_pos": 8504.5 + }, + { + "id": 21002, + "x_pos": -1921.25, + "y_pos": 2129 + }, + { + "id": 21001, + "x_pos": -1897.75, + "y_pos": 2123.500015258789 + }, + { + "id": 21000, + "x_pos": -1602, + "y_pos": 1329 + }, + { + "id": 20999, + "x_pos": -1595, + "y_pos": 1202.5 + }, + { + "id": 20998, + "x_pos": -1705.5, + "y_pos": 1149.5 + }, + { + "id": 20853, + "x_pos": -1198.806396484375, + "y_pos": 1779.3850860595703 + }, + { + "id": 20852, + "x_pos": -1188.8499145507812, + "y_pos": 2040.6196899414062 + }, + { + "id": 20851, + "x_pos": -1045.2730102539062, + "y_pos": 2160.5824584960938 + }, + { + "id": 20850, + "x_pos": -1048.9619140625, + "y_pos": 2410.1778259277344 + }, + { + "id": 20849, + "x_pos": -954.7956237792969, + "y_pos": 2189.7215576171875 + }, + { + "id": 20848, + "x_pos": -988.1064758300781, + "y_pos": 1824.603271484375 + }, + { + "id": 20847, + "x_pos": -1016.6644287109375, + "y_pos": 1715.670394897461 + }, + { + "id": 20846, + "x_pos": -996.3893127441406, + "y_pos": 1642.2704162597656 + }, + { + "id": 20845, + "x_pos": -984.1509399414062, + "y_pos": 1638.8048400878906 + }, + { + "id": 20844, + "x_pos": -983.0123901367188, + "y_pos": 1573.2714538574219 + }, + { + "id": 20808, + "x_pos": -668.5, + "y_pos": 793 + }, + { + "id": 20671, + "x_pos": 577.5, + "y_pos": 67.5 + }, + { + "id": 20670, + "x_pos": 532.5, + "y_pos": -248.5 + }, + { + "id": 20669, + "x_pos": 532, + "y_pos": -520.5 + }, + { + "id": 20668, + "x_pos": 819, + "y_pos": 23.5 + }, + { + "id": 20667, + "x_pos": 366, + "y_pos": 110 + }, + { + "id": 20666, + "x_pos": 485, + "y_pos": -408 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/eb784ff2c029a2a8e00042439182e987_116002372062631549.png" + }, + "293": { + "name": "Golden Finch", + "clear_name": "GoldenFinch", + "points": [ + { + "id": 24580, + "x_pos": -1688, + "y_pos": 1753 + }, + { + "id": 24579, + "x_pos": -1694.5, + "y_pos": 1750 + }, + { + "id": 21349, + "x_pos": 2634.5, + "y_pos": 5868 + }, + { + "id": 21348, + "x_pos": 2635.5, + "y_pos": 5870.5 + }, + { + "id": 21347, + "x_pos": 2634, + "y_pos": 5870 + }, + { + "id": 21287, + "x_pos": 3493.699981689453, + "y_pos": 6624.699080127784 + }, + { + "id": 21286, + "x_pos": 3495, + "y_pos": 6621.044698863627 + }, + { + "id": 20971, + "x_pos": -1338.2000122070312, + "y_pos": 1496.0044506965996 + }, + { + "id": 20970, + "x_pos": -1838, + "y_pos": 1091 + }, + { + "id": 20969, + "x_pos": -1845, + "y_pos": 1094 + }, + { + "id": 20968, + "x_pos": -1720.5, + "y_pos": 1529 + }, + { + "id": 20967, + "x_pos": -1723.5, + "y_pos": 1529 + }, + { + "id": 20966, + "x_pos": -1615, + "y_pos": 1424 + }, + { + "id": 20881, + "x_pos": -1140.5562744140625, + "y_pos": 1718.5760803222656 + }, + { + "id": 20880, + "x_pos": -802.1530151367188, + "y_pos": 2537.9784927368164 + }, + { + "id": 20879, + "x_pos": -869.4124450683594, + "y_pos": 2264.2200469970703 + }, + { + "id": 20878, + "x_pos": -993.1854248046875, + "y_pos": 1551.5403442382812 + }, + { + "id": 20877, + "x_pos": -724, + "y_pos": 1672.5 + }, + { + "id": 20876, + "x_pos": -729, + "y_pos": 1673 + }, + { + "id": 20810, + "x_pos": -1093, + "y_pos": 1327.5 + }, + { + "id": 20809, + "x_pos": -551, + "y_pos": 806 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/b2c34295698bf86f7d54bc4e673b9b11_530129903251079427.png" + }, + "174": { + "name": "Fir Wood", + "clear_name": "FirWood", + "points": [ + { + "id": 24549, + "x_pos": -349, + "y_pos": 173 + }, + { + "id": 24548, + "x_pos": -345.5, + "y_pos": 165.5 + }, + { + "id": 24547, + "x_pos": -358, + "y_pos": 176.5 + }, + { + "id": 24546, + "x_pos": -366.5, + "y_pos": 157.5 + }, + { + "id": 24545, + "x_pos": -356.5, + "y_pos": 153 + }, + { + "id": 24544, + "x_pos": -370.5, + "y_pos": 125.5 + }, + { + "id": 24543, + "x_pos": -333.25, + "y_pos": 138.5 + }, + { + "id": 24542, + "x_pos": -339, + "y_pos": 142.5 + }, + { + "id": 24541, + "x_pos": -339, + "y_pos": 131.5 + }, + { + "id": 24540, + "x_pos": -351.5, + "y_pos": 121 + }, + { + "id": 24539, + "x_pos": -355.5, + "y_pos": 112 + }, + { + "id": 24538, + "x_pos": -375.5, + "y_pos": 92 + }, + { + "id": 24537, + "x_pos": -389.5, + "y_pos": 91.5 + }, + { + "id": 24536, + "x_pos": -381, + "y_pos": 82.5 + }, + { + "id": 24529, + "x_pos": -402.25, + "y_pos": 126 + }, + { + "id": 24528, + "x_pos": -406.5, + "y_pos": 113 + }, + { + "id": 24527, + "x_pos": -414.75, + "y_pos": 108.5 + }, + { + "id": 24526, + "x_pos": -425.5, + "y_pos": 90.5 + }, + { + "id": 24525, + "x_pos": -441.75, + "y_pos": 98.75 + }, + { + "id": 24524, + "x_pos": -457, + "y_pos": 102.5 + }, + { + "id": 24523, + "x_pos": -464.75, + "y_pos": 108.75 + }, + { + "id": 24522, + "x_pos": -461.5, + "y_pos": 130.25 + }, + { + "id": 24521, + "x_pos": -468, + "y_pos": 146.75 + }, + { + "id": 24520, + "x_pos": -470.5, + "y_pos": 143.75 + }, + { + "id": 24519, + "x_pos": -473.75, + "y_pos": 135.5 + }, + { + "id": 24518, + "x_pos": -488.25, + "y_pos": 131.25 + }, + { + "id": 24517, + "x_pos": -486.75, + "y_pos": 142 + }, + { + "id": 24516, + "x_pos": -497.5, + "y_pos": 145.5 + }, + { + "id": 24515, + "x_pos": -502.5, + "y_pos": 141 + }, + { + "id": 24514, + "x_pos": -514.5, + "y_pos": 150 + }, + { + "id": 24513, + "x_pos": -426.75, + "y_pos": 164.75 + }, + { + "id": 24512, + "x_pos": -416.25, + "y_pos": 160.25 + }, + { + "id": 24511, + "x_pos": -416.25, + "y_pos": 170.75 + }, + { + "id": 24510, + "x_pos": -426, + "y_pos": 177 + }, + { + "id": 24509, + "x_pos": -442.25, + "y_pos": 189.75 + }, + { + "id": 24508, + "x_pos": -451.25, + "y_pos": 185.5 + }, + { + "id": 24507, + "x_pos": -450.75, + "y_pos": 196.5 + }, + { + "id": 24506, + "x_pos": -437.5, + "y_pos": 226.5 + }, + { + "id": 24505, + "x_pos": -428.25, + "y_pos": 214.75 + }, + { + "id": 24504, + "x_pos": -453.75, + "y_pos": 212.25 + }, + { + "id": 24503, + "x_pos": -519.75, + "y_pos": 208.5 + }, + { + "id": 24502, + "x_pos": -512.5, + "y_pos": 214 + }, + { + "id": 24501, + "x_pos": -511.5, + "y_pos": 222.75 + }, + { + "id": 24500, + "x_pos": -502.25, + "y_pos": 226.5 + }, + { + "id": 24499, + "x_pos": -494.5, + "y_pos": 218 + }, + { + "id": 24498, + "x_pos": -486.5, + "y_pos": 227 + }, + { + "id": 24497, + "x_pos": -491.75, + "y_pos": 239 + }, + { + "id": 24496, + "x_pos": -473.25, + "y_pos": 237 + }, + { + "id": 24495, + "x_pos": -464.75, + "y_pos": 239.5 + }, + { + "id": 24494, + "x_pos": -447.5, + "y_pos": 237.25 + }, + { + "id": 24493, + "x_pos": -440, + "y_pos": 247.25 + }, + { + "id": 24492, + "x_pos": -447, + "y_pos": 253.25 + }, + { + "id": 24491, + "x_pos": -453.5, + "y_pos": 257.75 + }, + { + "id": 24490, + "x_pos": -462, + "y_pos": 252.75 + }, + { + "id": 24489, + "x_pos": -471.75, + "y_pos": 260.5 + }, + { + "id": 24488, + "x_pos": -478.5, + "y_pos": 259.5 + }, + { + "id": 24487, + "x_pos": -484.5, + "y_pos": 257 + }, + { + "id": 24486, + "x_pos": -499.25, + "y_pos": 241.25 + }, + { + "id": 24485, + "x_pos": -504.25, + "y_pos": 234.5 + }, + { + "id": 24484, + "x_pos": -511.75, + "y_pos": 234 + }, + { + "id": 24483, + "x_pos": -494.5, + "y_pos": 253.5 + }, + { + "id": 24482, + "x_pos": -502.5, + "y_pos": 257 + }, + { + "id": 24481, + "x_pos": -511, + "y_pos": 262.5 + }, + { + "id": 24480, + "x_pos": -519.5, + "y_pos": 266 + }, + { + "id": 24479, + "x_pos": -529.5, + "y_pos": 272 + }, + { + "id": 24478, + "x_pos": -535.5, + "y_pos": 230 + }, + { + "id": 24477, + "x_pos": -520.5, + "y_pos": 217.5 + }, + { + "id": 24476, + "x_pos": -559, + "y_pos": 268.5 + }, + { + "id": 24475, + "x_pos": -575.5, + "y_pos": 269.5 + }, + { + "id": 24474, + "x_pos": -595.5, + "y_pos": 274 + }, + { + "id": 24473, + "x_pos": -611, + "y_pos": 266 + }, + { + "id": 24472, + "x_pos": -621.5, + "y_pos": 251 + }, + { + "id": 24471, + "x_pos": -597, + "y_pos": 257.5 + }, + { + "id": 24470, + "x_pos": -603, + "y_pos": 250 + }, + { + "id": 24469, + "x_pos": -603, + "y_pos": 241.5 + }, + { + "id": 24468, + "x_pos": -592.5, + "y_pos": 235.5 + }, + { + "id": 24467, + "x_pos": -583.5, + "y_pos": 234 + }, + { + "id": 24466, + "x_pos": -588, + "y_pos": 225 + }, + { + "id": 24465, + "x_pos": -595.5, + "y_pos": 220.25 + }, + { + "id": 24464, + "x_pos": -600.25, + "y_pos": 212.25 + }, + { + "id": 24463, + "x_pos": -598.5, + "y_pos": 202.25 + }, + { + "id": 24462, + "x_pos": -606.75, + "y_pos": 196.25 + }, + { + "id": 24461, + "x_pos": -597.75, + "y_pos": 190.25 + }, + { + "id": 24460, + "x_pos": -610.5, + "y_pos": 185 + }, + { + "id": 24459, + "x_pos": -606, + "y_pos": 162.25 + }, + { + "id": 24458, + "x_pos": -596, + "y_pos": 161.25 + }, + { + "id": 24457, + "x_pos": -583.25, + "y_pos": 150.5 + }, + { + "id": 24456, + "x_pos": -588.25, + "y_pos": 142.5 + }, + { + "id": 24455, + "x_pos": -580, + "y_pos": 134.25 + }, + { + "id": 24454, + "x_pos": -556.5, + "y_pos": 129.25 + }, + { + "id": 24453, + "x_pos": -569.5, + "y_pos": 137.25 + }, + { + "id": 24452, + "x_pos": -568.75, + "y_pos": 129.75 + }, + { + "id": 24451, + "x_pos": -568.25, + "y_pos": 123.5 + }, + { + "id": 24450, + "x_pos": -551.25, + "y_pos": 113.25 + }, + { + "id": 23248, + "x_pos": 1102.5, + "y_pos": 1120.1159166561501 + }, + { + "id": 23247, + "x_pos": 1085.6666009022592, + "y_pos": 1117.7239752461564 + }, + { + "id": 23246, + "x_pos": 1042.555254964862, + "y_pos": 1115.9037285092109 + }, + { + "id": 23245, + "x_pos": 1034.055254964862, + "y_pos": 1124.4479504923129 + }, + { + "id": 23244, + "x_pos": 1044.2781441328789, + "y_pos": 1132.8880123769222 + }, + { + "id": 23243, + "x_pos": 1093.4441673526871, + "y_pos": 1092.6719257384693 + }, + { + "id": 23242, + "x_pos": 1089.1666009022592, + "y_pos": 1083.1198151476638 + }, + { + "id": 23241, + "x_pos": 1108.666539870257, + "y_pos": 1080 + }, + { + "id": 23240, + "x_pos": 1104.1667981954806, + "y_pos": 1073.0599075738319 + }, + { + "id": 23239, + "x_pos": 1096.166539870257, + "y_pos": 1067.7279042792288 + }, + { + "id": 23238, + "x_pos": 1054.143127038581, + "y_pos": 1075.7292463541144 + }, + { + "id": 23237, + "x_pos": 1045.0555132900854, + "y_pos": 1068.6797532630544 + }, + { + "id": 23236, + "x_pos": 1056.7773691572065, + "y_pos": 1060.5039290330724 + }, + { + "id": 23235, + "x_pos": 1067.9444867099146, + "y_pos": 1060.1159166561501 + }, + { + "id": 23234, + "x_pos": 1066.5555132900854, + "y_pos": 1050.5638366069043 + }, + { + "id": 23233, + "x_pos": 1047.2221141923455, + "y_pos": 1047.175824229982 + }, + { + "id": 23232, + "x_pos": 1056.5, + "y_pos": 1045.1719257384693 + }, + { + "id": 23231, + "x_pos": 1053.277627482431, + "y_pos": 1020.1198456892225 + }, + { + "id": 23230, + "x_pos": 1063.555254964862, + "y_pos": 1017.955778016898 + }, + { + "id": 23229, + "x_pos": 1070.555254964861, + "y_pos": 1010.175824229982 + }, + { + "id": 23228, + "x_pos": 1069.4442283846902, + "y_pos": 1037.3398919023066 + }, + { + "id": 23227, + "x_pos": 1077.777627482431, + "y_pos": 1032.7278737376691 + }, + { + "id": 23226, + "x_pos": 1094.6110265801708, + "y_pos": 1024.2279042792288 + }, + { + "id": 23225, + "x_pos": 1011.6112849053952, + "y_pos": 1037.0235741984334 + }, + { + "id": 23224, + "x_pos": 1015.3896873634985, + "y_pos": 1045.5560090823183 + }, + { + "id": 23223, + "x_pos": 1003.6110265801708, + "y_pos": 1042.783913361547 + }, + { + "id": 23222, + "x_pos": 997.6107682549464, + "y_pos": 1077.2279042792288 + }, + { + "id": 23221, + "x_pos": 1119.277627482431, + "y_pos": 1099.455778016898 + }, + { + "id": 23220, + "x_pos": 1133.2236641436903, + "y_pos": 1086.5962714907891 + }, + { + "id": 23219, + "x_pos": 1038.6695622753796, + "y_pos": 1191.083088868958 + }, + { + "id": 23218, + "x_pos": 1055.8894900702771, + "y_pos": 1166.9882129007838 + }, + { + "id": 23217, + "x_pos": 1164.8891707130497, + "y_pos": 1132.299598952277 + }, + { + "id": 23216, + "x_pos": 1155.1673148459295, + "y_pos": 1128.5599075738319 + }, + { + "id": 23215, + "x_pos": 1145.5557716153098, + "y_pos": 1132.1119876230787 + }, + { + "id": 23214, + "x_pos": 1132.7786607833277, + "y_pos": 1139.7279042792288 + }, + { + "id": 23213, + "x_pos": 1118.8894900702771, + "y_pos": 1146.9960709669276 + }, + { + "id": 23212, + "x_pos": 1104.6668592274837, + "y_pos": 1153.5520495076871 + }, + { + "id": 23211, + "x_pos": 1140.1379863666189, + "y_pos": 1103.7426050665608 + }, + { + "id": 23210, + "x_pos": 1153.137314721036, + "y_pos": 1084.2272818375786 + }, + { + "id": 23209, + "x_pos": 1162.1368497356325, + "y_pos": 1089.7316037739583 + }, + { + "id": 23208, + "x_pos": 1156.333460129743, + "y_pos": 1078.5599075738319 + }, + { + "id": 23207, + "x_pos": 1175.6090210103803, + "y_pos": 1058.1080585900063 + }, + { + "id": 23206, + "x_pos": 1185.777627482431, + "y_pos": 1067.2838828199883 + }, + { + "id": 23205, + "x_pos": 1192.9439700594658, + "y_pos": 1058.895870443066 + }, + { + "id": 23204, + "x_pos": 1207.4439700594658, + "y_pos": 1065.623774722295 + }, + { + "id": 23203, + "x_pos": 1207.3567423310496, + "y_pos": 1045.4190390125432 + }, + { + "id": 23202, + "x_pos": 1223.5, + "y_pos": 1058.5 + }, + { + "id": 23201, + "x_pos": 1135.6666009022592, + "y_pos": 1041.6198456892225 + }, + { + "id": 23200, + "x_pos": 1126.332365796844, + "y_pos": 1020.8801543107775 + }, + { + "id": 23199, + "x_pos": 1135.666539870257, + "y_pos": 1029.9400924261681 + }, + { + "id": 23198, + "x_pos": 1148.6102516044984, + "y_pos": 1029.8919414099937 + }, + { + "id": 23197, + "x_pos": 1150.9442283846902, + "y_pos": 1021.4558085584567 + }, + { + "id": 23196, + "x_pos": 1174.5002583252244, + "y_pos": 980.3398919023066 + }, + { + "id": 23195, + "x_pos": 1165.7221141923455, + "y_pos": 985.8958704430661 + }, + { + "id": 23194, + "x_pos": 1188.0555132900854, + "y_pos": 962.2917408861322 + }, + { + "id": 23193, + "x_pos": 1197.6105099297229, + "y_pos": 946.6159166561501 + }, + { + "id": 23192, + "x_pos": 1214.6113459373983, + "y_pos": 943.063867148463 + }, + { + "id": 23191, + "x_pos": 1206.3331407725163, + "y_pos": 953.6159166561501 + }, + { + "id": 23190, + "x_pos": 1198.2215975418967, + "y_pos": 976.1601080976934 + }, + { + "id": 23189, + "x_pos": 1215.667056520705, + "y_pos": 971.7917714276919 + }, + { + "id": 23188, + "x_pos": 1207.3887150946048, + "y_pos": 981.3359323276754 + }, + { + "id": 23187, + "x_pos": 1224.3894900702771, + "y_pos": 996.2720957207712 + }, + { + "id": 23186, + "x_pos": 1226.3032439777135, + "y_pos": 1003.6207948608017 + }, + { + "id": 21446, + "x_pos": 1230.6666346001166, + "y_pos": 934.6316327884397 + }, + { + "id": 21445, + "x_pos": 1236.5000224620762, + "y_pos": 947.1119876230778 + }, + { + "id": 21444, + "x_pos": 1245.8888680275586, + "y_pos": 926.0078580661448 + }, + { + "id": 21443, + "x_pos": 1254.8912697656588, + "y_pos": 926.403715783561 + }, + { + "id": 21442, + "x_pos": 1260.891242811167, + "y_pos": 921.3565673866942 + }, + { + "id": 21441, + "x_pos": 1304, + "y_pos": 976.4037285092109 + }, + { + "id": 21440, + "x_pos": 1299.666679524269, + "y_pos": 988.3997994761385 + }, + { + "id": 21439, + "x_pos": 1282.7778259034212, + "y_pos": 983.0117870992162 + }, + { + "id": 21438, + "x_pos": 1291.05560688269, + "y_pos": 997.3359628692342 + }, + { + "id": 21437, + "x_pos": 1283.6112074140337, + "y_pos": 993.5560090823183 + }, + { + "id": 21436, + "x_pos": 1270.6132843814994, + "y_pos": 982.0939064355562 + }, + { + "id": 21435, + "x_pos": 1229.5001203657448, + "y_pos": 876.5117870992162 + }, + { + "id": 21434, + "x_pos": 1235.1666490068274, + "y_pos": 881.667996705397 + }, + { + "id": 21433, + "x_pos": 1234.0555619585384, + "y_pos": 819.8958704430661 + }, + { + "id": 21432, + "x_pos": 1231.3333509931726, + "y_pos": 833.0599381153907 + }, + { + "id": 21431, + "x_pos": 1242.5555394964622, + "y_pos": 855.0599075738319 + }, + { + "id": 21430, + "x_pos": 1257.1132767134113, + "y_pos": 834.6129520654367 + }, + { + "id": 21429, + "x_pos": 1266.2222800556128, + "y_pos": 800.0599381153907 + }, + { + "id": 21428, + "x_pos": 1267.2222190207312, + "y_pos": 786.2838828199883 + }, + { + "id": 21427, + "x_pos": 1275.6666184893866, + "y_pos": 782.4518795253853 + }, + { + "id": 21426, + "x_pos": 1282.8888985449994, + "y_pos": 778.3997994761385 + }, + { + "id": 21425, + "x_pos": 1290.2777360551172, + "y_pos": 775.5 + }, + { + "id": 21424, + "x_pos": 1321.6110565308481, + "y_pos": 824.3477499684514 + }, + { + "id": 21423, + "x_pos": 1331.2221355237734, + "y_pos": 833.4558085584567 + }, + { + "id": 21422, + "x_pos": 1312.4999775379238, + "y_pos": 829.7799537869159 + }, + { + "id": 21421, + "x_pos": 1322.2222190207312, + "y_pos": 846.9440214592405 + }, + { + "id": 21420, + "x_pos": 1351.2798983784705, + "y_pos": 902.7422121632535 + }, + { + "id": 21419, + "x_pos": 1359.555517034386, + "y_pos": 884.6198456892225 + }, + { + "id": 21418, + "x_pos": 1363.166679524269, + "y_pos": 873.2760247538436 + }, + { + "id": 21417, + "x_pos": 1373.0000224620762, + "y_pos": 866.5039290330724 + }, + { + "id": 21416, + "x_pos": 1362.6666184893866, + "y_pos": 858.4479504923129 + }, + { + "id": 21415, + "x_pos": 1378.555517034386, + "y_pos": 820.2839133615471 + }, + { + "id": 21414, + "x_pos": 1367.9999775379238, + "y_pos": 796.5078886077035 + }, + { + "id": 21413, + "x_pos": 1374.4999775379238, + "y_pos": 811.6277037553673 + }, + { + "id": 21412, + "x_pos": 1385.9444605035378, + "y_pos": 802.1237747222949 + }, + { + "id": 21411, + "x_pos": 1378.1110789929244, + "y_pos": 786.8398613607478 + }, + { + "id": 21410, + "x_pos": 1403.1110565308481, + "y_pos": 789.5117870992162 + }, + { + "id": 21409, + "x_pos": 1395.7222414828066, + "y_pos": 773.4518489838256 + }, + { + "id": 21408, + "x_pos": 1384.8332980136556, + "y_pos": 777.3919414099937 + }, + { + "id": 21407, + "x_pos": 1378.1667019863444, + "y_pos": 772.7799843284747 + }, + { + "id": 21406, + "x_pos": 1377.722286406959, + "y_pos": 764.8280742615307 + }, + { + "id": 21405, + "x_pos": 1312.335644913308, + "y_pos": 756.3882062834455 + }, + { + "id": 21404, + "x_pos": 1378.3333429378072, + "y_pos": 706.5 + }, + { + "id": 21403, + "x_pos": 1369.4444605035378, + "y_pos": 703.7799537869159 + }, + { + "id": 21402, + "x_pos": 1361.333320475731, + "y_pos": 700.6080585900063 + }, + { + "id": 21401, + "x_pos": 1846.5, + "y_pos": 701.667996705397 + }, + { + "id": 21400, + "x_pos": 1865, + "y_pos": 707.3919414099937 + }, + { + "id": 21399, + "x_pos": 1886.8888599721931, + "y_pos": 730.4479504923129 + }, + { + "id": 21398, + "x_pos": 1932, + "y_pos": 714.5599381153907 + }, + { + "id": 21397, + "x_pos": 1830.3888375101178, + "y_pos": 601.3398919023066 + }, + { + "id": 21396, + "x_pos": 1863.05562299342, + "y_pos": 633.7839133615471 + }, + { + "id": 21395, + "x_pos": 1860.9443994686553, + "y_pos": 650.843820935379 + }, + { + "id": 21394, + "x_pos": 1883.6666184893866, + "y_pos": 657.1159166561501 + }, + { + "id": 21393, + "x_pos": 1922.7222190207312, + "y_pos": 637.6718951969096 + }, + { + "id": 21392, + "x_pos": 1945.9444605035378, + "y_pos": 651.0599075738319 + }, + { + "id": 20556, + "x_pos": 824, + "y_pos": -342 + }, + { + "id": 20555, + "x_pos": 841, + "y_pos": -316 + }, + { + "id": 20554, + "x_pos": 831, + "y_pos": -316.5 + }, + { + "id": 20553, + "x_pos": 820.5, + "y_pos": -314.5 + }, + { + "id": 20552, + "x_pos": 811.5, + "y_pos": -321.5 + }, + { + "id": 20551, + "x_pos": 827.5, + "y_pos": -351.5 + }, + { + "id": 20550, + "x_pos": 811.5, + "y_pos": -393.5 + }, + { + "id": 20549, + "x_pos": 832.5, + "y_pos": -389.5 + }, + { + "id": 20548, + "x_pos": 823.5, + "y_pos": -397 + }, + { + "id": 20547, + "x_pos": 852.5, + "y_pos": -407 + }, + { + "id": 20546, + "x_pos": 843, + "y_pos": -415 + }, + { + "id": 20545, + "x_pos": 859.5, + "y_pos": -421.5 + }, + { + "id": 20544, + "x_pos": 848.5, + "y_pos": -422.5 + }, + { + "id": 20543, + "x_pos": 837.5, + "y_pos": -420.5 + }, + { + "id": 20542, + "x_pos": 820.5, + "y_pos": -413.5 + }, + { + "id": 20541, + "x_pos": 828.5, + "y_pos": -421 + }, + { + "id": 20540, + "x_pos": 832, + "y_pos": -425 + }, + { + "id": 20539, + "x_pos": 824, + "y_pos": -423.5 + }, + { + "id": 20538, + "x_pos": 870.5, + "y_pos": -472.5 + }, + { + "id": 20537, + "x_pos": 861, + "y_pos": -476.5 + }, + { + "id": 20536, + "x_pos": 869, + "y_pos": -476.5 + }, + { + "id": 20535, + "x_pos": 867.5, + "y_pos": -485 + }, + { + "id": 20534, + "x_pos": 827, + "y_pos": -502.5 + }, + { + "id": 20533, + "x_pos": 819, + "y_pos": -498 + }, + { + "id": 20532, + "x_pos": 814.5, + "y_pos": -499.5 + }, + { + "id": 20531, + "x_pos": 810, + "y_pos": -500 + }, + { + "id": 20530, + "x_pos": 808.5, + "y_pos": -469.5 + }, + { + "id": 20529, + "x_pos": 784.5, + "y_pos": -462 + }, + { + "id": 20528, + "x_pos": 785.5, + "y_pos": -465.5 + }, + { + "id": 20527, + "x_pos": 799, + "y_pos": -461.5 + }, + { + "id": 20526, + "x_pos": 808, + "y_pos": -445 + }, + { + "id": 20525, + "x_pos": 783, + "y_pos": -437 + }, + { + "id": 20524, + "x_pos": 762, + "y_pos": -425.5 + }, + { + "id": 20523, + "x_pos": 773, + "y_pos": -421 + }, + { + "id": 20522, + "x_pos": 763.5, + "y_pos": -401 + }, + { + "id": 20521, + "x_pos": 757, + "y_pos": -402.5 + }, + { + "id": 20456, + "x_pos": -334, + "y_pos": -170.5 + }, + { + "id": 20407, + "x_pos": -324.5, + "y_pos": -83.5 + }, + { + "id": 20406, + "x_pos": -334.5, + "y_pos": -86.5 + }, + { + "id": 20405, + "x_pos": -330, + "y_pos": -95.5 + }, + { + "id": 20404, + "x_pos": -320, + "y_pos": -105.5 + }, + { + "id": 20403, + "x_pos": -345.5, + "y_pos": -164 + }, + { + "id": 20402, + "x_pos": -356, + "y_pos": -198 + }, + { + "id": 20401, + "x_pos": -350.5, + "y_pos": -193.5 + }, + { + "id": 20400, + "x_pos": -338, + "y_pos": -200 + }, + { + "id": 20399, + "x_pos": -348, + "y_pos": -241 + }, + { + "id": 20398, + "x_pos": -339.5, + "y_pos": -242.5 + }, + { + "id": 20397, + "x_pos": -339, + "y_pos": -254 + }, + { + "id": 20396, + "x_pos": -337.5, + "y_pos": -261 + }, + { + "id": 20395, + "x_pos": -332.5, + "y_pos": -269 + }, + { + "id": 20394, + "x_pos": -321.5, + "y_pos": -270 + }, + { + "id": 20393, + "x_pos": -325, + "y_pos": -275.5 + }, + { + "id": 20392, + "x_pos": -282, + "y_pos": -251.5 + }, + { + "id": 20391, + "x_pos": -278, + "y_pos": -262 + }, + { + "id": 20390, + "x_pos": -284, + "y_pos": -271 + }, + { + "id": 20389, + "x_pos": -276, + "y_pos": -273.5 + }, + { + "id": 20388, + "x_pos": -279.5, + "y_pos": -286 + }, + { + "id": 20387, + "x_pos": -307.5, + "y_pos": -293.5 + }, + { + "id": 20386, + "x_pos": -298.5, + "y_pos": -319 + }, + { + "id": 20385, + "x_pos": -312, + "y_pos": -308 + }, + { + "id": 20384, + "x_pos": -319, + "y_pos": -304 + }, + { + "id": 20383, + "x_pos": -326.5, + "y_pos": -311 + }, + { + "id": 20382, + "x_pos": -333.5, + "y_pos": -311 + }, + { + "id": 20381, + "x_pos": -345.5, + "y_pos": -317.5 + }, + { + "id": 20380, + "x_pos": -340, + "y_pos": -320.5 + }, + { + "id": 20379, + "x_pos": -340, + "y_pos": -327 + }, + { + "id": 20378, + "x_pos": -352, + "y_pos": -331.5 + }, + { + "id": 20377, + "x_pos": -357, + "y_pos": -330.5 + }, + { + "id": 20376, + "x_pos": -357.5, + "y_pos": -346.5 + }, + { + "id": 20375, + "x_pos": -329.5, + "y_pos": -349.5 + }, + { + "id": 20374, + "x_pos": -327.5, + "y_pos": -350 + }, + { + "id": 20373, + "x_pos": -331, + "y_pos": -362.5 + }, + { + "id": 20372, + "x_pos": -346, + "y_pos": -367 + }, + { + "id": 20371, + "x_pos": -336.5, + "y_pos": -376.5 + }, + { + "id": 14480, + "x_pos": -184.29998779296875, + "y_pos": 563.1000061035156 + }, + { + "id": 9883, + "x_pos": -145.5, + "y_pos": 571 + }, + { + "id": 9882, + "x_pos": -130, + "y_pos": 574 + }, + { + "id": 9881, + "x_pos": -88, + "y_pos": 589 + }, + { + "id": 9880, + "x_pos": -152.5, + "y_pos": 582.5 + }, + { + "id": 9878, + "x_pos": -186.5, + "y_pos": 607 + }, + { + "id": 9871, + "x_pos": -395.5, + "y_pos": 462.5 + }, + { + "id": 9870, + "x_pos": -425.5, + "y_pos": 470.5 + }, + { + "id": 9869, + "x_pos": -460.5, + "y_pos": 460 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/5e6022484fdc762269ed9149b572105b_2323274118560600903.png" + }, + "305": { + "name": "Marrow Lizard", + "clear_name": "MarrowLizard", + "points": [ + { + "id": 24531, + "x_pos": 3478.6257732978793, + "y_pos": 4648.464242117747 + }, + { + "id": 21513, + "x_pos": 2396.5, + "y_pos": 6159 + }, + { + "id": 21512, + "x_pos": 2371.5, + "y_pos": 6136.5 + }, + { + "id": 21345, + "x_pos": 2508.5, + "y_pos": 5907 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/4e89c1d80910910168943c8f52ea3192_1467509659906622760.png" + }, + "180": { + "name": "Fragrant Cedar Wood", + "clear_name": "FragrantCedarWood", + "points": [ + { + "id": 24449, + "x_pos": -505.5, + "y_pos": 98.75 + }, + { + "id": 24448, + "x_pos": -516, + "y_pos": 95 + }, + { + "id": 24447, + "x_pos": -494, + "y_pos": 100.25 + }, + { + "id": 24446, + "x_pos": -501.5, + "y_pos": 53 + }, + { + "id": 24445, + "x_pos": -509.75, + "y_pos": 39.25 + }, + { + "id": 24444, + "x_pos": -517, + "y_pos": 47.5 + }, + { + "id": 24443, + "x_pos": -520.25, + "y_pos": 61.75 + }, + { + "id": 24442, + "x_pos": -530.5, + "y_pos": 71.25 + }, + { + "id": 24441, + "x_pos": -519.75, + "y_pos": 75 + }, + { + "id": 24440, + "x_pos": -512, + "y_pos": 78.25 + }, + { + "id": 24439, + "x_pos": -502, + "y_pos": 79 + }, + { + "id": 20454, + "x_pos": -440.5, + "y_pos": -173 + }, + { + "id": 20453, + "x_pos": -430.5, + "y_pos": -184 + }, + { + "id": 20452, + "x_pos": -424.5, + "y_pos": -189 + }, + { + "id": 20451, + "x_pos": -420, + "y_pos": -175.5 + }, + { + "id": 20450, + "x_pos": -445.5, + "y_pos": -240.5 + }, + { + "id": 20449, + "x_pos": -413.5, + "y_pos": -215 + }, + { + "id": 20448, + "x_pos": -428, + "y_pos": -209 + }, + { + "id": 20447, + "x_pos": -423.5, + "y_pos": -220 + }, + { + "id": 20446, + "x_pos": -430, + "y_pos": -223.5 + }, + { + "id": 20445, + "x_pos": -440, + "y_pos": -224.5 + }, + { + "id": 20444, + "x_pos": -437.5, + "y_pos": -232 + }, + { + "id": 20443, + "x_pos": -432, + "y_pos": -240.5 + }, + { + "id": 20442, + "x_pos": -426.5, + "y_pos": -245.5 + }, + { + "id": 20441, + "x_pos": -431, + "y_pos": -256.5 + }, + { + "id": 20440, + "x_pos": -436.5, + "y_pos": -262 + }, + { + "id": 20439, + "x_pos": -444.5, + "y_pos": -259.5 + }, + { + "id": 20438, + "x_pos": -444.5, + "y_pos": -267.5 + }, + { + "id": 20437, + "x_pos": -456, + "y_pos": -255.5 + }, + { + "id": 20436, + "x_pos": -463, + "y_pos": -251 + }, + { + "id": 20435, + "x_pos": -465, + "y_pos": -242.5 + }, + { + "id": 20434, + "x_pos": -500.5, + "y_pos": -241.5 + }, + { + "id": 20433, + "x_pos": -499.5, + "y_pos": -250 + }, + { + "id": 20432, + "x_pos": -493.5, + "y_pos": -256.5 + }, + { + "id": 20431, + "x_pos": -485.5, + "y_pos": -260 + }, + { + "id": 20430, + "x_pos": -488, + "y_pos": -245 + }, + { + "id": 20429, + "x_pos": -493, + "y_pos": -237 + }, + { + "id": 20428, + "x_pos": -488, + "y_pos": -224 + }, + { + "id": 20427, + "x_pos": -488.5, + "y_pos": -220 + }, + { + "id": 20426, + "x_pos": -482.5, + "y_pos": -222 + }, + { + "id": 20425, + "x_pos": -480, + "y_pos": -216.5 + }, + { + "id": 20424, + "x_pos": -492.5, + "y_pos": -209 + }, + { + "id": 20423, + "x_pos": -496.5, + "y_pos": -203 + }, + { + "id": 20422, + "x_pos": -481.5, + "y_pos": -200.5 + }, + { + "id": 20421, + "x_pos": -472.5, + "y_pos": -200 + }, + { + "id": 20420, + "x_pos": -468, + "y_pos": -192 + }, + { + "id": 20419, + "x_pos": -482.5, + "y_pos": -188 + }, + { + "id": 20418, + "x_pos": -480, + "y_pos": -181 + }, + { + "id": 20417, + "x_pos": -470, + "y_pos": -170.5 + }, + { + "id": 20416, + "x_pos": -407.5, + "y_pos": -180 + }, + { + "id": 20415, + "x_pos": -408.5, + "y_pos": -190.5 + }, + { + "id": 20414, + "x_pos": -404.5, + "y_pos": -188.5 + }, + { + "id": 20413, + "x_pos": -389, + "y_pos": -183.5 + }, + { + "id": 20412, + "x_pos": -408.5, + "y_pos": -205 + }, + { + "id": 20411, + "x_pos": -402, + "y_pos": -207.5 + }, + { + "id": 20410, + "x_pos": -382, + "y_pos": -211 + }, + { + "id": 20409, + "x_pos": -383.5, + "y_pos": -203 + }, + { + "id": 20408, + "x_pos": -372.5, + "y_pos": -191 + }, + { + "id": 14493, + "x_pos": -340.70001220703125, + "y_pos": 452.3999938964844 + }, + { + "id": 14492, + "x_pos": -341, + "y_pos": 465.6999816894531 + }, + { + "id": 14491, + "x_pos": -319.8000183105469, + "y_pos": 465.8999938964844 + }, + { + "id": 14490, + "x_pos": -327.8000183105469, + "y_pos": 471 + }, + { + "id": 14489, + "x_pos": -305.3999938964844, + "y_pos": 478.59999084472656 + }, + { + "id": 14488, + "x_pos": -300.8000183105469, + "y_pos": 486.8999938964844 + }, + { + "id": 14487, + "x_pos": -271.20001220703125, + "y_pos": 500.6000061035156 + }, + { + "id": 14486, + "x_pos": -278.3999938964844, + "y_pos": 508.79998779296875 + }, + { + "id": 14485, + "x_pos": -265.79998779296875, + "y_pos": 510.5999755859375 + }, + { + "id": 14484, + "x_pos": -252.19998168945312, + "y_pos": 520.5 + }, + { + "id": 14483, + "x_pos": -235.70001220703125, + "y_pos": 545.2999877929688 + }, + { + "id": 14482, + "x_pos": -218.19998168945312, + "y_pos": 553.2999877929688 + }, + { + "id": 14481, + "x_pos": -195.89999389648438, + "y_pos": 561 + }, + { + "id": 14479, + "x_pos": -290.5, + "y_pos": 548.3000183105469 + }, + { + "id": 14478, + "x_pos": -318.800048828125, + "y_pos": 544.2000122070312 + }, + { + "id": 14477, + "x_pos": -202.79998779296875, + "y_pos": 603.7000122070312 + }, + { + "id": 14476, + "x_pos": -295.1000061035156, + "y_pos": 584.7000122070312 + }, + { + "id": 14475, + "x_pos": -389.4000244140625, + "y_pos": 451.79998779296875 + }, + { + "id": 10402, + "x_pos": 963.8325678791407, + "y_pos": 260.7502843331081 + }, + { + "id": 10401, + "x_pos": 954.4616001149616, + "y_pos": 274.01713118458974 + }, + { + "id": 10400, + "x_pos": 948.457978305898, + "y_pos": 262.5194830190203 + }, + { + "id": 10399, + "x_pos": 929.9424803322345, + "y_pos": 270.0157200839312 + }, + { + "id": 10398, + "x_pos": 594, + "y_pos": -297 + }, + { + "id": 10397, + "x_pos": 597.5, + "y_pos": -280.5 + }, + { + "id": 10396, + "x_pos": 595, + "y_pos": -292.5 + }, + { + "id": 10395, + "x_pos": 581.5, + "y_pos": -283.5 + }, + { + "id": 9930, + "x_pos": -154, + "y_pos": 526.5 + }, + { + "id": 9929, + "x_pos": -76.5, + "y_pos": 586 + }, + { + "id": 9926, + "x_pos": -155, + "y_pos": 570.5 + }, + { + "id": 9923, + "x_pos": -261, + "y_pos": 541 + }, + { + "id": 9922, + "x_pos": -251, + "y_pos": 629.5 + }, + { + "id": 9921, + "x_pos": -270, + "y_pos": 658 + }, + { + "id": 9920, + "x_pos": -294.5, + "y_pos": 675 + }, + { + "id": 9919, + "x_pos": -363, + "y_pos": 460.5 + }, + { + "id": 9918, + "x_pos": -416, + "y_pos": 495 + }, + { + "id": 9914, + "x_pos": -458.5, + "y_pos": 558 + }, + { + "id": 9912, + "x_pos": -472, + "y_pos": 571.5 + }, + { + "id": 9910, + "x_pos": -436.5, + "y_pos": 584 + }, + { + "id": 9909, + "x_pos": -460.5, + "y_pos": 586.5 + }, + { + "id": 9908, + "x_pos": -438.5, + "y_pos": 600.5 + }, + { + "id": 9906, + "x_pos": -416.5, + "y_pos": 624 + }, + { + "id": 9905, + "x_pos": -379, + "y_pos": 678.5 + }, + { + "id": 9904, + "x_pos": -355.5, + "y_pos": 686 + }, + { + "id": 9903, + "x_pos": -306.5, + "y_pos": 702 + }, + { + "id": 9896, + "x_pos": -2298, + "y_pos": 1568.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/e1494256e552bd095381f4c5cd2dd0a6_4590928026130835416.png" + }, + "208": { + "name": "Electrogranum", + "clear_name": "Electrogranum", + "points": [ + { + "id": 24393, + "x_pos": 3684.5, + "y_pos": 4767.5 + }, + { + "id": 23065, + "x_pos": 3581, + "y_pos": 6792 + }, + { + "id": 23064, + "x_pos": 3486, + "y_pos": 6682 + }, + { + "id": 23063, + "x_pos": 3464, + "y_pos": 6633 + }, + { + "id": 23062, + "x_pos": 3506, + "y_pos": 6603 + }, + { + "id": 23061, + "x_pos": 3542, + "y_pos": 6493.5 + }, + { + "id": 23060, + "x_pos": 3405, + "y_pos": 6600.5 + }, + { + "id": 23059, + "x_pos": 3126, + "y_pos": 6721 + }, + { + "id": 23058, + "x_pos": 3163.5, + "y_pos": 6645.5 + }, + { + "id": 23057, + "x_pos": 3093, + "y_pos": 6622 + }, + { + "id": 23056, + "x_pos": 3125.5, + "y_pos": 6651.5 + }, + { + "id": 23055, + "x_pos": 3271, + "y_pos": 6681 + }, + { + "id": 23054, + "x_pos": 3184.5, + "y_pos": 6792 + }, + { + "id": 23052, + "x_pos": 3029, + "y_pos": 6771 + }, + { + "id": 23051, + "x_pos": 2910, + "y_pos": 6714 + }, + { + "id": 19542, + "x_pos": 1844.5, + "y_pos": 8727 + }, + { + "id": 18801, + "x_pos": 1926.5, + "y_pos": 9041.5 + }, + { + "id": 18800, + "x_pos": 1962.5, + "y_pos": 8620 + }, + { + "id": 18799, + "x_pos": 1987, + "y_pos": 8636.5 + }, + { + "id": 18798, + "x_pos": 1979, + "y_pos": 8651.5 + }, + { + "id": 18797, + "x_pos": 1945, + "y_pos": 8669.5 + }, + { + "id": 18794, + "x_pos": 1908, + "y_pos": 8666 + }, + { + "id": 18793, + "x_pos": 1944, + "y_pos": 8707 + }, + { + "id": 18791, + "x_pos": 2065.5, + "y_pos": 8697.5 + }, + { + "id": 18790, + "x_pos": 2513.5, + "y_pos": 8357 + }, + { + "id": 18788, + "x_pos": 2565, + "y_pos": 8451 + }, + { + "id": 18787, + "x_pos": 2212.5, + "y_pos": 8464.5 + }, + { + "id": 18785, + "x_pos": 1741, + "y_pos": 8708.5 + }, + { + "id": 18784, + "x_pos": 1701, + "y_pos": 8710 + }, + { + "id": 18783, + "x_pos": 1624, + "y_pos": 8676 + }, + { + "id": 18727, + "x_pos": 1766, + "y_pos": 8433 + }, + { + "id": 18725, + "x_pos": 1844, + "y_pos": 8302 + }, + { + "id": 18724, + "x_pos": 1833.5, + "y_pos": 8322.5 + }, + { + "id": 18723, + "x_pos": 1800.5, + "y_pos": 8283 + }, + { + "id": 18722, + "x_pos": 1805.5, + "y_pos": 8309.5 + }, + { + "id": 18721, + "x_pos": 1823, + "y_pos": 8327 + }, + { + "id": 18720, + "x_pos": 1790.5, + "y_pos": 8322.5 + }, + { + "id": 18707, + "x_pos": 1927, + "y_pos": 8129 + }, + { + "id": 18699, + "x_pos": 1731.5, + "y_pos": 8183 + }, + { + "id": 18209, + "x_pos": 3178.5, + "y_pos": 7210 + }, + { + "id": 17730, + "x_pos": 3289.5, + "y_pos": 7208.5 + }, + { + "id": 17375, + "x_pos": 3358.6000061035156, + "y_pos": 7165.799987792969 + }, + { + "id": 16798, + "x_pos": 3809, + "y_pos": 6733 + }, + { + "id": 16797, + "x_pos": 3747, + "y_pos": 6792.5 + }, + { + "id": 16796, + "x_pos": 3692.5, + "y_pos": 6904.5 + }, + { + "id": 16795, + "x_pos": 3555, + "y_pos": 6894.5 + }, + { + "id": 16449, + "x_pos": 316, + "y_pos": 6320 + }, + { + "id": 16441, + "x_pos": 299, + "y_pos": 6165 + }, + { + "id": 16394, + "x_pos": -54, + "y_pos": 6323 + }, + { + "id": 16389, + "x_pos": -86, + "y_pos": 6272 + }, + { + "id": 16331, + "x_pos": 68.5, + "y_pos": 5892.5 + }, + { + "id": 16328, + "x_pos": -170.5, + "y_pos": 6027.5 + }, + { + "id": 15340, + "x_pos": 1815.3000183105469, + "y_pos": 6098.304421593446 + }, + { + "id": 15339, + "x_pos": 1874.6999816894531, + "y_pos": 6153.208246463144 + }, + { + "id": 15338, + "x_pos": 2006.7996808718635, + "y_pos": 6123.300903073523 + }, + { + "id": 15337, + "x_pos": 1696.7999877929688, + "y_pos": 6010.205961635378 + }, + { + "id": 15046, + "x_pos": 1841.108509624909, + "y_pos": 6555.540410804246 + }, + { + "id": 15045, + "x_pos": 1781.1991985214736, + "y_pos": 6353.400603169575 + }, + { + "id": 15044, + "x_pos": 1047.9004764030833, + "y_pos": 6139.801206339149 + }, + { + "id": 14602, + "x_pos": 1580.1990067659654, + "y_pos": 6009.7059310828845 + }, + { + "id": 14316, + "x_pos": 1796.0999755859375, + "y_pos": 6622.5 + }, + { + "id": 13972, + "x_pos": 3644.5, + "y_pos": 4883 + }, + { + "id": 13971, + "x_pos": 3654, + "y_pos": 4871.5 + }, + { + "id": 13970, + "x_pos": 3667, + "y_pos": 4855 + }, + { + "id": 13969, + "x_pos": 3883, + "y_pos": 4423 + }, + { + "id": 13968, + "x_pos": 3737.5, + "y_pos": 4468.5 + }, + { + "id": 13952, + "x_pos": 3510, + "y_pos": 4644 + }, + { + "id": 13951, + "x_pos": 3514, + "y_pos": 4653.5 + }, + { + "id": 13950, + "x_pos": 3519.5, + "y_pos": 4665.5 + }, + { + "id": 13949, + "x_pos": 3487.5, + "y_pos": 4687.5 + }, + { + "id": 13948, + "x_pos": 3438, + "y_pos": 4654.5 + }, + { + "id": 13947, + "x_pos": 3336.5, + "y_pos": 5115 + }, + { + "id": 13946, + "x_pos": 3348, + "y_pos": 5175 + }, + { + "id": 13868, + "x_pos": 3578, + "y_pos": 5147.5 + }, + { + "id": 13867, + "x_pos": 3782.5, + "y_pos": 4889 + }, + { + "id": 13866, + "x_pos": 3539, + "y_pos": 4758.5 + }, + { + "id": 13747, + "x_pos": 2654.5, + "y_pos": 5873 + }, + { + "id": 13736, + "x_pos": 3646, + "y_pos": 4667.5 + }, + { + "id": 13543, + "x_pos": 1404, + "y_pos": 6195.5 + }, + { + "id": 13542, + "x_pos": 1433, + "y_pos": 6213 + }, + { + "id": 13541, + "x_pos": 1387, + "y_pos": 6125.5 + }, + { + "id": 13540, + "x_pos": 1455, + "y_pos": 6189 + }, + { + "id": 13539, + "x_pos": 1441.5, + "y_pos": 6116 + }, + { + "id": 13538, + "x_pos": 1627, + "y_pos": 6138.5 + }, + { + "id": 13537, + "x_pos": 1625.5, + "y_pos": 5987 + }, + { + "id": 13536, + "x_pos": 1618, + "y_pos": 5924 + }, + { + "id": 13535, + "x_pos": 1573.5, + "y_pos": 5906 + }, + { + "id": 13534, + "x_pos": 1750.5, + "y_pos": 5868 + }, + { + "id": 13533, + "x_pos": 1527, + "y_pos": 5924.5 + }, + { + "id": 13532, + "x_pos": 1498, + "y_pos": 6011.5 + }, + { + "id": 13531, + "x_pos": 1371.5, + "y_pos": 5799 + }, + { + "id": 13112, + "x_pos": 1723, + "y_pos": 6623.5 + }, + { + "id": 13108, + "x_pos": 1689, + "y_pos": 6544 + }, + { + "id": 13107, + "x_pos": 1540.5, + "y_pos": 6319.5 + }, + { + "id": 13106, + "x_pos": 1544, + "y_pos": 6348 + }, + { + "id": 13105, + "x_pos": 1612, + "y_pos": 6344 + }, + { + "id": 13104, + "x_pos": 1641, + "y_pos": 6344 + }, + { + "id": 13103, + "x_pos": 1355.3022116040675, + "y_pos": 6351.703658122831 + }, + { + "id": 13102, + "x_pos": 1408, + "y_pos": 6263 + }, + { + "id": 13101, + "x_pos": 1627, + "y_pos": 6376.5 + }, + { + "id": 13100, + "x_pos": 1697, + "y_pos": 6280 + }, + { + "id": 13099, + "x_pos": 1602, + "y_pos": 6188.5 + }, + { + "id": 13098, + "x_pos": 1750.5, + "y_pos": 6286 + }, + { + "id": 13097, + "x_pos": 1756, + "y_pos": 6190.5 + }, + { + "id": 13096, + "x_pos": 1597.5, + "y_pos": 6122 + }, + { + "id": 13094, + "x_pos": 1726.5, + "y_pos": 6085.5 + }, + { + "id": 13093, + "x_pos": 1795.5, + "y_pos": 6064 + }, + { + "id": 13092, + "x_pos": 1630.5, + "y_pos": 6039 + }, + { + "id": 13091, + "x_pos": 1344.5, + "y_pos": 6018.5 + }, + { + "id": 13090, + "x_pos": 1382, + "y_pos": 6002 + }, + { + "id": 13089, + "x_pos": 1399, + "y_pos": 6029 + }, + { + "id": 13088, + "x_pos": 1474.5, + "y_pos": 5992 + }, + { + "id": 13087, + "x_pos": 1511, + "y_pos": 5978.5 + }, + { + "id": 13086, + "x_pos": 1392, + "y_pos": 5862.5 + }, + { + "id": 13085, + "x_pos": 1926, + "y_pos": 5816.5 + }, + { + "id": 13084, + "x_pos": 2166.5, + "y_pos": 6310.5 + }, + { + "id": 13083, + "x_pos": 2187.5, + "y_pos": 6108 + }, + { + "id": 13082, + "x_pos": 2213.5, + "y_pos": 6460 + }, + { + "id": 13081, + "x_pos": 2384.5, + "y_pos": 6336 + }, + { + "id": 13080, + "x_pos": 2335.5, + "y_pos": 5988.5 + }, + { + "id": 13079, + "x_pos": 2410.5, + "y_pos": 6016 + }, + { + "id": 13078, + "x_pos": 2378, + "y_pos": 6028 + }, + { + "id": 13077, + "x_pos": 2397, + "y_pos": 6031 + }, + { + "id": 13075, + "x_pos": 2374.5, + "y_pos": 6033.5 + }, + { + "id": 13074, + "x_pos": 2430, + "y_pos": 6098.5 + }, + { + "id": 13073, + "x_pos": 2412, + "y_pos": 6040 + }, + { + "id": 13071, + "x_pos": 2404.5, + "y_pos": 6049 + }, + { + "id": 13070, + "x_pos": 2385.5, + "y_pos": 6115 + }, + { + "id": 13068, + "x_pos": 2396, + "y_pos": 6053 + }, + { + "id": 13067, + "x_pos": 2336.5, + "y_pos": 6020 + }, + { + "id": 13066, + "x_pos": 2325.5, + "y_pos": 5955.5 + }, + { + "id": 13065, + "x_pos": 2222.5, + "y_pos": 5751 + }, + { + "id": 13064, + "x_pos": 2403, + "y_pos": 5904 + }, + { + "id": 13063, + "x_pos": 2475.5, + "y_pos": 6117 + }, + { + "id": 13061, + "x_pos": 2603, + "y_pos": 6050 + }, + { + "id": 13060, + "x_pos": 2502, + "y_pos": 5922.5 + }, + { + "id": 13058, + "x_pos": 2476.5, + "y_pos": 5943 + }, + { + "id": 13057, + "x_pos": 2486.5, + "y_pos": 5867 + }, + { + "id": 13056, + "x_pos": 2713.5, + "y_pos": 6051 + }, + { + "id": 13050, + "x_pos": 2674, + "y_pos": 5847 + }, + { + "id": 13049, + "x_pos": 2512.5, + "y_pos": 5651.5 + }, + { + "id": 13047, + "x_pos": 2530.5, + "y_pos": 5607.5 + }, + { + "id": 13046, + "x_pos": 2718.5, + "y_pos": 5664 + }, + { + "id": 13045, + "x_pos": 2960, + "y_pos": 5693 + }, + { + "id": 13044, + "x_pos": 2691, + "y_pos": 5504 + }, + { + "id": 13042, + "x_pos": 2569, + "y_pos": 5268.5 + }, + { + "id": 13041, + "x_pos": 3511.5, + "y_pos": 5692 + }, + { + "id": 13040, + "x_pos": 3950.5, + "y_pos": 5593 + }, + { + "id": 13039, + "x_pos": 3960.5, + "y_pos": 5558.5 + }, + { + "id": 13038, + "x_pos": 3673.5, + "y_pos": 5234 + }, + { + "id": 13036, + "x_pos": 3324, + "y_pos": 5187.5 + }, + { + "id": 13035, + "x_pos": 3425.5, + "y_pos": 5157.5 + }, + { + "id": 13034, + "x_pos": 3312, + "y_pos": 5113 + }, + { + "id": 13032, + "x_pos": 3271, + "y_pos": 5033.5 + }, + { + "id": 13031, + "x_pos": 3398.5, + "y_pos": 4960.5 + }, + { + "id": 13030, + "x_pos": 3230.5, + "y_pos": 4952.5 + }, + { + "id": 13028, + "x_pos": 3258, + "y_pos": 4923.5 + }, + { + "id": 13027, + "x_pos": 3535.5, + "y_pos": 4927.5 + }, + { + "id": 13026, + "x_pos": 3686, + "y_pos": 5015.5 + }, + { + "id": 13024, + "x_pos": 3663, + "y_pos": 4882 + }, + { + "id": 13023, + "x_pos": 3694.5, + "y_pos": 4889.5 + }, + { + "id": 13022, + "x_pos": 3652.5, + "y_pos": 4792 + }, + { + "id": 13020, + "x_pos": 3765.5, + "y_pos": 4837 + }, + { + "id": 13016, + "x_pos": 4052, + "y_pos": 4658 + }, + { + "id": 13013, + "x_pos": 4102.5, + "y_pos": 4587.5 + }, + { + "id": 13012, + "x_pos": 4083.5, + "y_pos": 4588 + }, + { + "id": 13010, + "x_pos": 4125.5, + "y_pos": 4581 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/75bb96260b0b67faa0e4b80c604f7171_9105289406361821567.png" + }, + "275": { + "name": "Pale Red Crab", + "clear_name": "PaleRedCrab", + "points": [ + { + "id": 23677, + "x_pos": 2915.6500091552734, + "y_pos": 6627.100214485792 + }, + { + "id": 21456, + "x_pos": 1505, + "y_pos": 5802 + }, + { + "id": 21283, + "x_pos": 3233.5, + "y_pos": 6655 + }, + { + "id": 21282, + "x_pos": 3233, + "y_pos": 6664 + }, + { + "id": 21281, + "x_pos": 3227.5, + "y_pos": 6668.5 + }, + { + "id": 21280, + "x_pos": 3031, + "y_pos": 6896.5 + }, + { + "id": 21279, + "x_pos": 3379, + "y_pos": 6937.502253852586 + }, + { + "id": 21278, + "x_pos": 3361.800018310547, + "y_pos": 6940.502253852586 + }, + { + "id": 21277, + "x_pos": 3297.7999877929688, + "y_pos": 7033.510891074835 + }, + { + "id": 21276, + "x_pos": 3327, + "y_pos": 7116.5492065687995 + }, + { + "id": 21275, + "x_pos": 3286, + "y_pos": 6916.785112352143 + }, + { + "id": 21274, + "x_pos": 3288, + "y_pos": 6924.652320324614 + }, + { + "id": 21273, + "x_pos": 3233, + "y_pos": 6985.900444660123 + }, + { + "id": 21272, + "x_pos": 3380, + "y_pos": 7335.300889320246 + }, + { + "id": 21271, + "x_pos": 3382.5, + "y_pos": 7376.643304914271 + }, + { + "id": 21270, + "x_pos": 3458.5, + "y_pos": 7425.114568293797 + }, + { + "id": 21269, + "x_pos": 3355, + "y_pos": 7166.900444660123 + }, + { + "id": 21268, + "x_pos": 3381, + "y_pos": 7200.064983536902 + }, + { + "id": 21267, + "x_pos": 3418.2999877929688, + "y_pos": 7240.701364532339 + }, + { + "id": 21266, + "x_pos": 3427.3999938964844, + "y_pos": 7243.879426524634 + }, + { + "id": 21265, + "x_pos": 3465.5, + "y_pos": 7233.5492065687995 + }, + { + "id": 21264, + "x_pos": 3494.300018310547, + "y_pos": 7225.895188216753 + }, + { + "id": 21263, + "x_pos": 3513.5, + "y_pos": 7222.093720157376 + }, + { + "id": 21262, + "x_pos": 3689.2999877929688, + "y_pos": 7138.904982917265 + }, + { + "id": 21261, + "x_pos": 3772.6000061035156, + "y_pos": 7078.245307019777 + }, + { + "id": 21260, + "x_pos": 3772, + "y_pos": 7066.900444660123 + }, + { + "id": 21259, + "x_pos": 3782.2000122070312, + "y_pos": 7030.606286345666 + }, + { + "id": 21258, + "x_pos": 3846.5, + "y_pos": 6867.5 + }, + { + "id": 21257, + "x_pos": 3797.2000122070312, + "y_pos": 6816.798635467661 + }, + { + "id": 21256, + "x_pos": 3834, + "y_pos": 6826.902698512709 + }, + { + "id": 21255, + "x_pos": 3942.800018310547, + "y_pos": 6837.898190807537 + }, + { + "id": 21254, + "x_pos": 3954.8999938964844, + "y_pos": 6870.8518015544705 + }, + { + "id": 21253, + "x_pos": 3969.8999938964844, + "y_pos": 6888.386921544607 + }, + { + "id": 21252, + "x_pos": 3973.6000366210938, + "y_pos": 6897.502253852586 + }, + { + "id": 21251, + "x_pos": 3986.5, + "y_pos": 6847.900444660123 + }, + { + "id": 21250, + "x_pos": 3983, + "y_pos": 6823.03117574811 + }, + { + "id": 21249, + "x_pos": 3688.000030517578, + "y_pos": 6633.77383545122 + }, + { + "id": 21248, + "x_pos": 3485.8999938964844, + "y_pos": 6517.902698512709 + }, + { + "id": 21247, + "x_pos": 3314.7999877929688, + "y_pos": 6635.203587832957 + }, + { + "id": 21246, + "x_pos": 3324.8999938964844, + "y_pos": 6652.002253852586 + }, + { + "id": 21245, + "x_pos": 3321.5, + "y_pos": 6641.900475212093 + }, + { + "id": 21244, + "x_pos": 3340, + "y_pos": 6651.002253852586 + }, + { + "id": 21243, + "x_pos": 3390.8999938964844, + "y_pos": 6740 + }, + { + "id": 21242, + "x_pos": 3384.5, + "y_pos": 6738.805427577388 + }, + { + "id": 21241, + "x_pos": 3042.2000122070312, + "y_pos": 7043.359867675581 + }, + { + "id": 21240, + "x_pos": 2931.2999877929688, + "y_pos": 7105.71130631794 + }, + { + "id": 21239, + "x_pos": 2808.0999755859375, + "y_pos": 7029.883918953823 + }, + { + "id": 21238, + "x_pos": 2797.300018310547, + "y_pos": 7026.203618384925 + }, + { + "id": 21237, + "x_pos": 2962.5, + "y_pos": 6973.073998947246 + }, + { + "id": 21236, + "x_pos": 3277.6000061035156, + "y_pos": 6722.794127762489 + }, + { + "id": 21235, + "x_pos": 3114.199981689453, + "y_pos": 6883.997746147414 + }, + { + "id": 21234, + "x_pos": 3027.5, + "y_pos": 6904.143304914271 + }, + { + "id": 21233, + "x_pos": 3017.9000244140625, + "y_pos": 6904.591643941849 + }, + { + "id": 21232, + "x_pos": 3036.2000122070312, + "y_pos": 6894.886913906614 + }, + { + "id": 21123, + "x_pos": -270.3000183105469, + "y_pos": 6245.524028364265 + }, + { + "id": 21122, + "x_pos": 350.5, + "y_pos": 5859.5 + }, + { + "id": 21121, + "x_pos": 382.5, + "y_pos": 6253 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/6e17260992a233799a23381eb0feedd9_4513070379884671128.png" + }, + "185": { + "name": "Sea Ganoderma", + "clear_name": "SeaGanoderma", + "points": [ + { + "id": 23617, + "x_pos": -380.6999816894531, + "y_pos": 6199.103856711341 + }, + { + "id": 23616, + "x_pos": 50.70001220703125, + "y_pos": 6423.8981202437535 + }, + { + "id": 23542, + "x_pos": 406.25, + "y_pos": 5975 + }, + { + "id": 23269, + "x_pos": 4167.549987792969, + "y_pos": 4567.101195331392 + }, + { + "id": 23268, + "x_pos": 4170.050018310547, + "y_pos": 4563.801624302978 + }, + { + "id": 23267, + "x_pos": 4173.5, + "y_pos": 4552.201402185239 + }, + { + "id": 23127, + "x_pos": 195.25, + "y_pos": 6279.5 + }, + { + "id": 23126, + "x_pos": 230.75, + "y_pos": 6284.75 + }, + { + "id": 23125, + "x_pos": 237, + "y_pos": 6286.25 + }, + { + "id": 23124, + "x_pos": 3262.25, + "y_pos": 6648.5 + }, + { + "id": 18669, + "x_pos": 2011, + "y_pos": 9085.5 + }, + { + "id": 18668, + "x_pos": 2009, + "y_pos": 9086.5 + }, + { + "id": 18666, + "x_pos": 2004, + "y_pos": 9092 + }, + { + "id": 18665, + "x_pos": 1993, + "y_pos": 9020 + }, + { + "id": 18664, + "x_pos": 1990, + "y_pos": 9021 + }, + { + "id": 18663, + "x_pos": 2403, + "y_pos": 8651 + }, + { + "id": 18662, + "x_pos": 2411, + "y_pos": 8647.5 + }, + { + "id": 18661, + "x_pos": 2303.5, + "y_pos": 8494 + }, + { + "id": 18659, + "x_pos": 2308.5, + "y_pos": 8487.5 + }, + { + "id": 18658, + "x_pos": 2432, + "y_pos": 8372 + }, + { + "id": 18657, + "x_pos": 2438, + "y_pos": 8372 + }, + { + "id": 18656, + "x_pos": 2531.5, + "y_pos": 8334 + }, + { + "id": 18655, + "x_pos": 2517.5, + "y_pos": 8325 + }, + { + "id": 18654, + "x_pos": 1899, + "y_pos": 8125.5 + }, + { + "id": 18653, + "x_pos": 1902, + "y_pos": 8122.5 + }, + { + "id": 18543, + "x_pos": 3963.500030517578, + "y_pos": 6805.917156476298 + }, + { + "id": 18542, + "x_pos": 3992.300018310547, + "y_pos": 6840.804665490998 + }, + { + "id": 18541, + "x_pos": 3983.800018310547, + "y_pos": 6888.105941719477 + }, + { + "id": 18540, + "x_pos": 3989.6000366210938, + "y_pos": 6825.93040784742 + }, + { + "id": 16235, + "x_pos": 4097, + "y_pos": 7184.5 + }, + { + "id": 16234, + "x_pos": 4095.5, + "y_pos": 7202 + }, + { + "id": 16232, + "x_pos": 4044, + "y_pos": 7192 + }, + { + "id": 16230, + "x_pos": 4041, + "y_pos": 7200 + }, + { + "id": 16227, + "x_pos": 3848.5, + "y_pos": 7185 + }, + { + "id": 16226, + "x_pos": 3849.5, + "y_pos": 7191.5 + }, + { + "id": 16225, + "x_pos": 3785, + "y_pos": 7077.5 + }, + { + "id": 16224, + "x_pos": 3792, + "y_pos": 7084.5 + }, + { + "id": 16223, + "x_pos": 3782.5, + "y_pos": 7086 + }, + { + "id": 16221, + "x_pos": 3486, + "y_pos": 6816 + }, + { + "id": 16219, + "x_pos": 3487.5, + "y_pos": 6829.5 + }, + { + "id": 16218, + "x_pos": 3495.5, + "y_pos": 6824.5 + }, + { + "id": 16216, + "x_pos": 3795, + "y_pos": 6722.5 + }, + { + "id": 16214, + "x_pos": 3832, + "y_pos": 6745 + }, + { + "id": 16213, + "x_pos": 3811, + "y_pos": 6724.5 + }, + { + "id": 16211, + "x_pos": 3620.5, + "y_pos": 6687.5 + }, + { + "id": 16209, + "x_pos": 3628.5, + "y_pos": 6671.5 + }, + { + "id": 16207, + "x_pos": 3285.5, + "y_pos": 6645 + }, + { + "id": 16205, + "x_pos": 3274.5, + "y_pos": 6649.5 + }, + { + "id": 16203, + "x_pos": 3309.5, + "y_pos": 6643.5 + }, + { + "id": 16201, + "x_pos": 3317, + "y_pos": 6644.5 + }, + { + "id": 16200, + "x_pos": 3184, + "y_pos": 6572.5 + }, + { + "id": 16198, + "x_pos": 3188, + "y_pos": 6579.5 + }, + { + "id": 16197, + "x_pos": 3180, + "y_pos": 6562.5 + }, + { + "id": 16195, + "x_pos": 2902.5, + "y_pos": 6579.5 + }, + { + "id": 16193, + "x_pos": 2882, + "y_pos": 6601.5 + }, + { + "id": 16192, + "x_pos": 2928, + "y_pos": 6649 + }, + { + "id": 16190, + "x_pos": 2923.5, + "y_pos": 6653.5 + }, + { + "id": 16187, + "x_pos": 2957, + "y_pos": 6841 + }, + { + "id": 16184, + "x_pos": 2957, + "y_pos": 6849.5 + }, + { + "id": 16183, + "x_pos": 3025, + "y_pos": 6936.5 + }, + { + "id": 16181, + "x_pos": 3010, + "y_pos": 6948.5 + }, + { + "id": 16117, + "x_pos": 586.1000061035156, + "y_pos": 6146.5 + }, + { + "id": 16115, + "x_pos": 609.5, + "y_pos": 6112 + }, + { + "id": 16114, + "x_pos": 492.5, + "y_pos": 5896.568364315781 + }, + { + "id": 16112, + "x_pos": 354, + "y_pos": 5809.583014357591 + }, + { + "id": 16108, + "x_pos": 322.3999938964844, + "y_pos": 5918.10403249308 + }, + { + "id": 16106, + "x_pos": 64.4000244140625, + "y_pos": 6441.16057935877 + }, + { + "id": 16104, + "x_pos": -42, + "y_pos": 6415.701364532339 + }, + { + "id": 16101, + "x_pos": -38.100006103515625, + "y_pos": 6416.433681347777 + }, + { + "id": 16099, + "x_pos": -351.5, + "y_pos": 6208.701364532339 + }, + { + "id": 16097, + "x_pos": -303.70001220703125, + "y_pos": 6137.088286076945 + }, + { + "id": 16096, + "x_pos": -301.8999938964844, + "y_pos": 6141.701364532339 + }, + { + "id": 16094, + "x_pos": -284.8999938964844, + "y_pos": 6111.604063045048 + }, + { + "id": 16093, + "x_pos": -278.70001220703125, + "y_pos": 6108.898190807537 + }, + { + "id": 16091, + "x_pos": -75.39999389648438, + "y_pos": 5845.604063045048 + }, + { + "id": 16090, + "x_pos": -83.89999389648438, + "y_pos": 5838.999768896994 + }, + { + "id": 16089, + "x_pos": -268.6000061035156, + "y_pos": 5924.597270935321 + }, + { + "id": 16088, + "x_pos": -275, + "y_pos": 5925.199080127784 + }, + { + "id": 16086, + "x_pos": -280, + "y_pos": 5922.051460421386 + }, + { + "id": 12703, + "x_pos": 1088, + "y_pos": 5967.5 + }, + { + "id": 12702, + "x_pos": 1083, + "y_pos": 5973 + }, + { + "id": 12700, + "x_pos": 1129.5, + "y_pos": 5982 + }, + { + "id": 12698, + "x_pos": 1089, + "y_pos": 5989.5 + }, + { + "id": 12697, + "x_pos": 1084.5, + "y_pos": 5997.5 + }, + { + "id": 12695, + "x_pos": 1093, + "y_pos": 5995.5 + }, + { + "id": 12520, + "x_pos": 1920, + "y_pos": 6137 + }, + { + "id": 12517, + "x_pos": 1922, + "y_pos": 6150.5 + }, + { + "id": 12514, + "x_pos": 1919, + "y_pos": 6143 + }, + { + "id": 12512, + "x_pos": 1925, + "y_pos": 6127.5 + }, + { + "id": 12510, + "x_pos": 1914, + "y_pos": 6165 + }, + { + "id": 12457, + "x_pos": 2162.5, + "y_pos": 5864.5 + }, + { + "id": 12451, + "x_pos": 2186.5, + "y_pos": 5901 + }, + { + "id": 12446, + "x_pos": 2245, + "y_pos": 5868.5 + }, + { + "id": 12405, + "x_pos": 2180.5, + "y_pos": 6153.5 + }, + { + "id": 12398, + "x_pos": 2179.5, + "y_pos": 6162 + }, + { + "id": 12383, + "x_pos": 2520.5, + "y_pos": 6122 + }, + { + "id": 12380, + "x_pos": 2526, + "y_pos": 6132 + }, + { + "id": 12375, + "x_pos": 2536.5, + "y_pos": 6146 + }, + { + "id": 12373, + "x_pos": 2520, + "y_pos": 6138 + }, + { + "id": 12370, + "x_pos": 2545.5, + "y_pos": 6154.5 + }, + { + "id": 12334, + "x_pos": 2530, + "y_pos": 6098 + }, + { + "id": 12323, + "x_pos": 2203.5, + "y_pos": 5761 + }, + { + "id": 12320, + "x_pos": 2249.5, + "y_pos": 5794 + }, + { + "id": 12318, + "x_pos": 2205, + "y_pos": 5818 + }, + { + "id": 12310, + "x_pos": 2295.5, + "y_pos": 5828.5 + }, + { + "id": 12308, + "x_pos": 2254, + "y_pos": 5803.5 + }, + { + "id": 12306, + "x_pos": 2260, + "y_pos": 5817.5 + }, + { + "id": 12304, + "x_pos": 2272.5, + "y_pos": 5833.5 + }, + { + "id": 12302, + "x_pos": 2292, + "y_pos": 5808.5 + }, + { + "id": 12300, + "x_pos": 2203, + "y_pos": 5777 + }, + { + "id": 12298, + "x_pos": 2365.5, + "y_pos": 5790.5 + }, + { + "id": 12293, + "x_pos": 2205, + "y_pos": 5696 + }, + { + "id": 12291, + "x_pos": 2258.5, + "y_pos": 5752 + }, + { + "id": 12288, + "x_pos": 2377.5, + "y_pos": 5792 + }, + { + "id": 12285, + "x_pos": 2276, + "y_pos": 5697.5 + }, + { + "id": 12282, + "x_pos": 2583, + "y_pos": 5758.5 + }, + { + "id": 12280, + "x_pos": 2590, + "y_pos": 5761.5 + }, + { + "id": 12278, + "x_pos": 2539.5, + "y_pos": 5676.5 + }, + { + "id": 12276, + "x_pos": 2539.5, + "y_pos": 5683.5 + }, + { + "id": 12273, + "x_pos": 2646, + "y_pos": 5745.5 + }, + { + "id": 12271, + "x_pos": 2661, + "y_pos": 5757 + }, + { + "id": 12268, + "x_pos": 2620, + "y_pos": 5764 + }, + { + "id": 12266, + "x_pos": 2669.5, + "y_pos": 5764.5 + }, + { + "id": 12264, + "x_pos": 2714.5, + "y_pos": 5800 + }, + { + "id": 12257, + "x_pos": 2624.5, + "y_pos": 5672 + }, + { + "id": 12255, + "x_pos": 2623, + "y_pos": 5681 + }, + { + "id": 12250, + "x_pos": 2867, + "y_pos": 5652 + }, + { + "id": 12248, + "x_pos": 2856.5, + "y_pos": 5652.5 + }, + { + "id": 12246, + "x_pos": 2846, + "y_pos": 5687 + }, + { + "id": 12243, + "x_pos": 2904.5, + "y_pos": 5655 + }, + { + "id": 12241, + "x_pos": 2905, + "y_pos": 5661 + }, + { + "id": 12239, + "x_pos": 2861, + "y_pos": 5662.5 + }, + { + "id": 12237, + "x_pos": 2846, + "y_pos": 5665 + }, + { + "id": 12208, + "x_pos": 3800, + "y_pos": 5788 + }, + { + "id": 12206, + "x_pos": 3812.5, + "y_pos": 5807 + }, + { + "id": 12204, + "x_pos": 3806.5, + "y_pos": 5792 + }, + { + "id": 12190, + "x_pos": 3277, + "y_pos": 4918.5 + }, + { + "id": 12188, + "x_pos": 3292, + "y_pos": 4870 + }, + { + "id": 12186, + "x_pos": 3282.5, + "y_pos": 4896.5 + }, + { + "id": 12098, + "x_pos": 3297, + "y_pos": 4911 + }, + { + "id": 12095, + "x_pos": 3285.5, + "y_pos": 4920 + }, + { + "id": 12093, + "x_pos": 3886, + "y_pos": 4995 + }, + { + "id": 12091, + "x_pos": 3894.5, + "y_pos": 5000.5 + }, + { + "id": 12090, + "x_pos": 3863.5, + "y_pos": 5040.5 + }, + { + "id": 12088, + "x_pos": 3875, + "y_pos": 5010 + }, + { + "id": 12087, + "x_pos": 3881, + "y_pos": 5009 + }, + { + "id": 12085, + "x_pos": 3628.5, + "y_pos": 4633 + }, + { + "id": 12083, + "x_pos": 3630, + "y_pos": 4662 + }, + { + "id": 12082, + "x_pos": 3663, + "y_pos": 4637 + }, + { + "id": 12081, + "x_pos": 3673.5, + "y_pos": 4639.5 + }, + { + "id": 12080, + "x_pos": 3883.5, + "y_pos": 4437 + }, + { + "id": 12079, + "x_pos": 3875.5, + "y_pos": 4416 + }, + { + "id": 12078, + "x_pos": 3909.5, + "y_pos": 4403 + }, + { + "id": 12077, + "x_pos": 3902, + "y_pos": 4400.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/93263cf3ea17f1cf6921f7c16194d0cd_1121745296339257675.png" + }, + "265": { + "name": "Wolves of the Rift", + "clear_name": "WolvesoftheRift", + "points": [ + { + "id": 23614, + "x_pos": 1765.6000061035156, + "y_pos": 8544.194520619443 + }, + { + "id": 23613, + "x_pos": 1758.6999816894531, + "y_pos": 8549.698963476983 + }, + { + "id": 22843, + "x_pos": -534.4000244140625, + "y_pos": 221.17938143637912 + }, + { + "id": 22842, + "x_pos": -549.4000244140625, + "y_pos": 227.7963470796285 + }, + { + "id": 22841, + "x_pos": -543.2000122070312, + "y_pos": 218.39210566881593 + }, + { + "id": 19338, + "x_pos": 2038.5, + "y_pos": 8615.5 + }, + { + "id": 19337, + "x_pos": 2039.2999877929688, + "y_pos": 8618.800018310547 + }, + { + "id": 19269, + "x_pos": 2032.6999816894531, + "y_pos": 8791.300010681152 + }, + { + "id": 19268, + "x_pos": 2041.5, + "y_pos": 8786.099998474121 + }, + { + "id": 19263, + "x_pos": 2046.0999755859375, + "y_pos": 8793.000007629395 + }, + { + "id": 19262, + "x_pos": 2037.3000183105469, + "y_pos": 8797.60001373291 + }, + { + "id": 19231, + "x_pos": 1943.8157651000438, + "y_pos": 9065.858556990932 + }, + { + "id": 19230, + "x_pos": 1940.1329086408268, + "y_pos": 9069.49162202932 + }, + { + "id": 18824, + "x_pos": 2007.5529513268593, + "y_pos": 9051.106969872351 + }, + { + "id": 18823, + "x_pos": 2006.8958240802858, + "y_pos": 9056.731082256802 + }, + { + "id": 18818, + "x_pos": 1820.4387019515361, + "y_pos": 8942.59853092178 + }, + { + "id": 18817, + "x_pos": 1824.8036087333821, + "y_pos": 8934.575902370596 + }, + { + "id": 18811, + "x_pos": 1663.40113679354, + "y_pos": 8634.259959916415 + }, + { + "id": 18774, + "x_pos": 1666.1000366210938, + "y_pos": 8575.200012207031 + }, + { + "id": 18773, + "x_pos": 1669.8816408915663, + "y_pos": 8501.629946881838 + }, + { + "id": 18772, + "x_pos": 1674.801558950141, + "y_pos": 8503.013128980729 + }, + { + "id": 18770, + "x_pos": 1730.2507210342155, + "y_pos": 8310.260361732124 + }, + { + "id": 18769, + "x_pos": 1732.8148648358801, + "y_pos": 8313.714041560233 + }, + { + "id": 18767, + "x_pos": 1858.2703822301573, + "y_pos": 8235.139037014098 + }, + { + "id": 18761, + "x_pos": 1862.2297830638108, + "y_pos": 8235.994292635241 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/77c551e9d59042686c274c95ccbf61fa_6488691826595353793.png" + }, + "276": { + "name": "Emerald Finch", + "clear_name": "EmeraldFinch", + "points": [ + { + "id": 23606, + "x_pos": -1084.500015258789, + "y_pos": 1319.25 + }, + { + "id": 21369, + "x_pos": 2485.5, + "y_pos": 8526 + }, + { + "id": 21368, + "x_pos": 2481.5, + "y_pos": 8523.5 + }, + { + "id": 21126, + "x_pos": 251.29998779296875, + "y_pos": 6289.41677745338 + }, + { + "id": 21125, + "x_pos": 254.70001220703125, + "y_pos": 6288.083740181812 + }, + { + "id": 21124, + "x_pos": 257.50006103515625, + "y_pos": 6286.862136804151 + }, + { + "id": 21060, + "x_pos": -29.60003662109375, + "y_pos": 2416.514404296875 + }, + { + "id": 20915, + "x_pos": -665.0245971679688, + "y_pos": 2503.1216888427734 + }, + { + "id": 20914, + "x_pos": -1220, + "y_pos": 2822.5 + }, + { + "id": 20913, + "x_pos": -1226.5, + "y_pos": 2824.5 + }, + { + "id": 20912, + "x_pos": -1182.5, + "y_pos": 2853 + }, + { + "id": 20911, + "x_pos": -1109.5, + "y_pos": 2940.5 + }, + { + "id": 20910, + "x_pos": -1163.5, + "y_pos": 2958.5 + }, + { + "id": 20909, + "x_pos": -1154.5, + "y_pos": 2966 + }, + { + "id": 20820, + "x_pos": -960.5, + "y_pos": 748 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/958a81fca1a54eaca4ad4f33b5cbb6b9_3463133613302020870.png" + }, + "284": { + "name": "Crimson Fox", + "clear_name": "CrimsonFox", + "points": [ + { + "id": 23605, + "x_pos": -1928.25, + "y_pos": 2134.25 + }, + { + "id": 21346, + "x_pos": 2449.5, + "y_pos": 5880 + }, + { + "id": 21020, + "x_pos": -1899.5, + "y_pos": 2146.25 + }, + { + "id": 21019, + "x_pos": 48.431396484375, + "y_pos": 2626.0587158203125 + }, + { + "id": 21018, + "x_pos": -160.23223876953125, + "y_pos": 2697.7320251464844 + }, + { + "id": 20964, + "x_pos": -1347.7001037597656, + "y_pos": 1522.0973696582514 + }, + { + "id": 20963, + "x_pos": -1819.5, + "y_pos": 1077 + }, + { + "id": 20962, + "x_pos": -1729.5, + "y_pos": 1631.5 + }, + { + "id": 20961, + "x_pos": -1574.5, + "y_pos": 1269 + }, + { + "id": 20960, + "x_pos": -1564.5, + "y_pos": 1255 + }, + { + "id": 20959, + "x_pos": -1577.5, + "y_pos": 1218 + }, + { + "id": 20958, + "x_pos": -1585, + "y_pos": 1208 + }, + { + "id": 20873, + "x_pos": -1099.6680297851562, + "y_pos": 1618.4228515625 + }, + { + "id": 20872, + "x_pos": -1074.0552368164062, + "y_pos": 2004.3716583251953 + }, + { + "id": 20871, + "x_pos": -1045.0042114257812, + "y_pos": 2119.8718872070312 + }, + { + "id": 20870, + "x_pos": -1040.2338256835938, + "y_pos": 2441.8584594726562 + }, + { + "id": 20869, + "x_pos": -935.8469848632812, + "y_pos": 2546.0558013916016 + }, + { + "id": 20868, + "x_pos": -898.4917297363281, + "y_pos": 2489.566452026367 + }, + { + "id": 20867, + "x_pos": -736.1279907226562, + "y_pos": 2458.705520629883 + }, + { + "id": 20866, + "x_pos": -743.3460388183594, + "y_pos": 2510.5371704101562 + }, + { + "id": 20865, + "x_pos": -610.5182495117188, + "y_pos": 2448.405532836914 + }, + { + "id": 20864, + "x_pos": -669.2207336425781, + "y_pos": 2441.7264709472656 + }, + { + "id": 20863, + "x_pos": -875.9827270507812, + "y_pos": 2210.860626220703 + }, + { + "id": 20862, + "x_pos": -968.6953735351562, + "y_pos": 2117.2223358154297 + }, + { + "id": 20861, + "x_pos": -1002.7145080566406, + "y_pos": 2160.0801849365234 + }, + { + "id": 20860, + "x_pos": -927.735595703125, + "y_pos": 1975.6954956054688 + }, + { + "id": 20859, + "x_pos": -1092.11962890625, + "y_pos": 1827.4770202636719 + }, + { + "id": 20858, + "x_pos": -1138.2667846679688, + "y_pos": 1754.3410034179688 + }, + { + "id": 20857, + "x_pos": -727, + "y_pos": 1657 + }, + { + "id": 20833, + "x_pos": -1045, + "y_pos": 1153 + }, + { + "id": 20832, + "x_pos": -1155.5, + "y_pos": 933.5 + }, + { + "id": 20831, + "x_pos": -1152.5, + "y_pos": 933 + }, + { + "id": 20830, + "x_pos": -709.5, + "y_pos": 802.5 + }, + { + "id": 20829, + "x_pos": -701.5, + "y_pos": 805 + }, + { + "id": 20828, + "x_pos": -656.5, + "y_pos": 803.5 + }, + { + "id": 20827, + "x_pos": -612.5, + "y_pos": 810.5 + }, + { + "id": 20826, + "x_pos": -1132, + "y_pos": 1241.5 + }, + { + "id": 20825, + "x_pos": -1552.5, + "y_pos": 464 + }, + { + "id": 20824, + "x_pos": -1557.5, + "y_pos": 466 + }, + { + "id": 20823, + "x_pos": -1200.5, + "y_pos": 921 + }, + { + "id": 20822, + "x_pos": -969.5, + "y_pos": 1065.5 + }, + { + "id": 20821, + "x_pos": -1009, + "y_pos": 1011.5 + }, + { + "id": 20713, + "x_pos": -1090.9000244140625, + "y_pos": -277.82725257168795 + }, + { + "id": 20712, + "x_pos": -816, + "y_pos": -656.5106381353066 + }, + { + "id": 20661, + "x_pos": 413, + "y_pos": -189 + }, + { + "id": 20660, + "x_pos": 408, + "y_pos": -191.5 + }, + { + "id": 20659, + "x_pos": 665.5, + "y_pos": -55.5 + }, + { + "id": 20658, + "x_pos": 327, + "y_pos": 205.5 + }, + { + "id": 20657, + "x_pos": 343.5, + "y_pos": 233.5 + }, + { + "id": 20656, + "x_pos": 432.5, + "y_pos": 157.5 + }, + { + "id": 20655, + "x_pos": 510.5, + "y_pos": -499 + }, + { + "id": 20654, + "x_pos": 515, + "y_pos": -504 + }, + { + "id": 20653, + "x_pos": 440.5, + "y_pos": -315.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/2345660b8797fa0b27fcecd14225ba6f_1476245570404217483.png" + }, + "220": { + "name": "Yumemiru Wood", + "clear_name": "YumemiruWood", + "points": [ + { + "id": 23597, + "x_pos": 3680.5, + "y_pos": 4820.5 + }, + { + "id": 23596, + "x_pos": 3664.5, + "y_pos": 4830.5 + }, + { + "id": 23595, + "x_pos": 3647, + "y_pos": 4833.5 + }, + { + "id": 23594, + "x_pos": 3641.25, + "y_pos": 4787.5 + }, + { + "id": 23593, + "x_pos": 3629.5, + "y_pos": 4801 + }, + { + "id": 23592, + "x_pos": 3642, + "y_pos": 4821.5 + }, + { + "id": 23591, + "x_pos": 3660.25, + "y_pos": 4820.5 + }, + { + "id": 23590, + "x_pos": 3681.5, + "y_pos": 4799.75 + }, + { + "id": 14724, + "x_pos": 3527, + "y_pos": 5405.5 + }, + { + "id": 14723, + "x_pos": 3543, + "y_pos": 5429 + }, + { + "id": 14722, + "x_pos": 3539.5, + "y_pos": 5395 + }, + { + "id": 14721, + "x_pos": 3577.5, + "y_pos": 5407 + }, + { + "id": 14720, + "x_pos": 3630.5, + "y_pos": 5418 + }, + { + "id": 14719, + "x_pos": 3659.5, + "y_pos": 5435 + }, + { + "id": 14718, + "x_pos": 3685.5, + "y_pos": 5430 + }, + { + "id": 14717, + "x_pos": 3694.5, + "y_pos": 5442.5 + }, + { + "id": 14716, + "x_pos": 3703.5, + "y_pos": 5429.5 + }, + { + "id": 14715, + "x_pos": 3727, + "y_pos": 5411 + }, + { + "id": 14714, + "x_pos": 3751, + "y_pos": 5407 + }, + { + "id": 14713, + "x_pos": 3734, + "y_pos": 5365 + }, + { + "id": 14712, + "x_pos": 3754.5, + "y_pos": 5358.5 + }, + { + "id": 14711, + "x_pos": 3766, + "y_pos": 5369.5 + }, + { + "id": 14710, + "x_pos": 3777, + "y_pos": 5387 + }, + { + "id": 14709, + "x_pos": 3706, + "y_pos": 5349.5 + }, + { + "id": 14708, + "x_pos": 3649, + "y_pos": 5345 + }, + { + "id": 14707, + "x_pos": 3652.5, + "y_pos": 5310 + }, + { + "id": 14706, + "x_pos": 3671.5, + "y_pos": 5313.5 + }, + { + "id": 14705, + "x_pos": 3624.5, + "y_pos": 5325 + }, + { + "id": 14704, + "x_pos": 3618, + "y_pos": 5300 + }, + { + "id": 14703, + "x_pos": 3708.5, + "y_pos": 5476.5 + }, + { + "id": 14702, + "x_pos": 3733.5, + "y_pos": 5472.5 + }, + { + "id": 14701, + "x_pos": 3720, + "y_pos": 5510 + }, + { + "id": 14700, + "x_pos": 3691, + "y_pos": 5534 + }, + { + "id": 14699, + "x_pos": 3680, + "y_pos": 5579 + }, + { + "id": 14698, + "x_pos": 3677.5, + "y_pos": 5586.5 + }, + { + "id": 14697, + "x_pos": 3682, + "y_pos": 5634 + }, + { + "id": 14696, + "x_pos": 3699, + "y_pos": 5617 + }, + { + "id": 14695, + "x_pos": 3704.5, + "y_pos": 5653 + }, + { + "id": 14694, + "x_pos": 3759.5, + "y_pos": 5663 + }, + { + "id": 14693, + "x_pos": 3770.5, + "y_pos": 5701 + }, + { + "id": 14692, + "x_pos": 3763, + "y_pos": 5711 + }, + { + "id": 14691, + "x_pos": 3766, + "y_pos": 5639 + }, + { + "id": 14690, + "x_pos": 3786.5, + "y_pos": 5663.5 + }, + { + "id": 14689, + "x_pos": 3785, + "y_pos": 5626 + }, + { + "id": 14688, + "x_pos": 3813, + "y_pos": 5646 + }, + { + "id": 14687, + "x_pos": 3718, + "y_pos": 5565 + }, + { + "id": 14686, + "x_pos": 3765, + "y_pos": 5538.5 + }, + { + "id": 14685, + "x_pos": 3812.5, + "y_pos": 5542 + }, + { + "id": 14684, + "x_pos": 3839.5, + "y_pos": 5546.5 + }, + { + "id": 14683, + "x_pos": 3887.5, + "y_pos": 5690.5 + }, + { + "id": 14682, + "x_pos": 3884, + "y_pos": 5732 + }, + { + "id": 14681, + "x_pos": 3254.5, + "y_pos": 5292.5 + }, + { + "id": 14680, + "x_pos": 3248, + "y_pos": 5296 + }, + { + "id": 14679, + "x_pos": 3254.5, + "y_pos": 5300 + }, + { + "id": 14678, + "x_pos": 3262.5, + "y_pos": 5304 + }, + { + "id": 14677, + "x_pos": 3248.5, + "y_pos": 5306 + }, + { + "id": 14676, + "x_pos": 3230.5, + "y_pos": 5290 + }, + { + "id": 14675, + "x_pos": 3229, + "y_pos": 5303 + }, + { + "id": 14674, + "x_pos": 3228.5, + "y_pos": 5306 + }, + { + "id": 14673, + "x_pos": 3239, + "y_pos": 5316.5 + }, + { + "id": 14672, + "x_pos": 3239, + "y_pos": 5330 + }, + { + "id": 14671, + "x_pos": 3255.5, + "y_pos": 5325.5 + }, + { + "id": 14670, + "x_pos": 3258.5, + "y_pos": 5327 + }, + { + "id": 14669, + "x_pos": 3259, + "y_pos": 5327.5 + }, + { + "id": 14668, + "x_pos": 3278.5, + "y_pos": 5317.5 + }, + { + "id": 14667, + "x_pos": 3284.5, + "y_pos": 5327 + }, + { + "id": 14666, + "x_pos": 3270, + "y_pos": 5331.5 + }, + { + "id": 14665, + "x_pos": 3253, + "y_pos": 5341.5 + }, + { + "id": 14664, + "x_pos": 3280, + "y_pos": 5337 + }, + { + "id": 14663, + "x_pos": 3294, + "y_pos": 5344.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210723/50dd92c679dd3ba324f47db70824dab6_3425783467333168525.png" + }, + "175": { + "name": "Pine Wood", + "clear_name": "PineWood", + "points": [ + { + "id": 23589, + "x_pos": 273, + "y_pos": 1282 + }, + { + "id": 23588, + "x_pos": -61, + "y_pos": 1348 + }, + { + "id": 23587, + "x_pos": -62.25, + "y_pos": 1347 + }, + { + "id": 23586, + "x_pos": -54, + "y_pos": 1294.75 + }, + { + "id": 23585, + "x_pos": -55.75, + "y_pos": 1289.25 + }, + { + "id": 23584, + "x_pos": -48, + "y_pos": 1294.25 + }, + { + "id": 23583, + "x_pos": -48.75, + "y_pos": 1292.25 + }, + { + "id": 23582, + "x_pos": -50.5, + "y_pos": 1283.5 + }, + { + "id": 23581, + "x_pos": -93, + "y_pos": 1270.75 + }, + { + "id": 23580, + "x_pos": -86, + "y_pos": 1277.5 + }, + { + "id": 23579, + "x_pos": -81, + "y_pos": 1279 + }, + { + "id": 23578, + "x_pos": -69.5, + "y_pos": 1270 + }, + { + "id": 23577, + "x_pos": -66.75, + "y_pos": 1256 + }, + { + "id": 23576, + "x_pos": -61.5, + "y_pos": 1256.5 + }, + { + "id": 23575, + "x_pos": -64.25, + "y_pos": 1250.25 + }, + { + "id": 23574, + "x_pos": -36, + "y_pos": 1261.75 + }, + { + "id": 23573, + "x_pos": -34.5, + "y_pos": 1260.25 + }, + { + "id": 23572, + "x_pos": -32.5, + "y_pos": 1256.5 + }, + { + "id": 23571, + "x_pos": -29.5, + "y_pos": 1226 + }, + { + "id": 23570, + "x_pos": -31.75, + "y_pos": 1225 + }, + { + "id": 23569, + "x_pos": -128.75, + "y_pos": 1222.5 + }, + { + "id": 23568, + "x_pos": -118.5, + "y_pos": 1248.5 + }, + { + "id": 23567, + "x_pos": -117.25, + "y_pos": 1254.25 + }, + { + "id": 23566, + "x_pos": -131.75, + "y_pos": 1264.5 + }, + { + "id": 23565, + "x_pos": -123, + "y_pos": 1271.25 + }, + { + "id": 23564, + "x_pos": -114, + "y_pos": 1275.25 + }, + { + "id": 23563, + "x_pos": -118.5, + "y_pos": 1276.75 + }, + { + "id": 23562, + "x_pos": -125.25, + "y_pos": 1279.25 + }, + { + "id": 23561, + "x_pos": -123, + "y_pos": 1285.25 + }, + { + "id": 23560, + "x_pos": -122.5, + "y_pos": 1294.25 + }, + { + "id": 23559, + "x_pos": -186.25, + "y_pos": 1310 + }, + { + "id": 23558, + "x_pos": -181.5, + "y_pos": 1311.25 + }, + { + "id": 23557, + "x_pos": -176.75, + "y_pos": 1312.75 + }, + { + "id": 23556, + "x_pos": -172.25, + "y_pos": 1312 + }, + { + "id": 23555, + "x_pos": -171.75, + "y_pos": 1310.25 + }, + { + "id": 23554, + "x_pos": -106.25, + "y_pos": 1348 + }, + { + "id": 23553, + "x_pos": -105.5, + "y_pos": 1352.25 + }, + { + "id": 23552, + "x_pos": -71.75, + "y_pos": 1387.5 + }, + { + "id": 23551, + "x_pos": -77.25, + "y_pos": 1394.25 + }, + { + "id": 23550, + "x_pos": -74, + "y_pos": 1392.75 + }, + { + "id": 23549, + "x_pos": -75, + "y_pos": 1387.75 + }, + { + "id": 23548, + "x_pos": -68.75, + "y_pos": 1393 + }, + { + "id": 23547, + "x_pos": -61.75, + "y_pos": 1365 + }, + { + "id": 23546, + "x_pos": -52.5, + "y_pos": 1368.25 + }, + { + "id": 23545, + "x_pos": -39.75, + "y_pos": 1389.75 + }, + { + "id": 23544, + "x_pos": -43.75, + "y_pos": 1390.75 + }, + { + "id": 23476, + "x_pos": 298.5, + "y_pos": 1108.5 + }, + { + "id": 23466, + "x_pos": 371.25, + "y_pos": 1265 + }, + { + "id": 23465, + "x_pos": 371.5, + "y_pos": 1263.75 + }, + { + "id": 23464, + "x_pos": 398.75, + "y_pos": 1251 + }, + { + "id": 23463, + "x_pos": 402.75, + "y_pos": 1254.75 + }, + { + "id": 23462, + "x_pos": 397.75, + "y_pos": 1257.5 + }, + { + "id": 23461, + "x_pos": 405.5, + "y_pos": 1259.75 + }, + { + "id": 23460, + "x_pos": 400.25, + "y_pos": 1263.5 + }, + { + "id": 23459, + "x_pos": 371.75, + "y_pos": 1219.25 + }, + { + "id": 23458, + "x_pos": 371.5, + "y_pos": 1209.75 + }, + { + "id": 23457, + "x_pos": 373.25, + "y_pos": 1209 + }, + { + "id": 23456, + "x_pos": 370, + "y_pos": 1209 + }, + { + "id": 23455, + "x_pos": 375.5, + "y_pos": 1135 + }, + { + "id": 23454, + "x_pos": 371.75, + "y_pos": 1150.75 + }, + { + "id": 23453, + "x_pos": 371.25, + "y_pos": 1143 + }, + { + "id": 23452, + "x_pos": 373.25, + "y_pos": 1133.5 + }, + { + "id": 23451, + "x_pos": 358.25, + "y_pos": 1152.75 + }, + { + "id": 23450, + "x_pos": 352.5, + "y_pos": 1153.25 + }, + { + "id": 23449, + "x_pos": 357.75, + "y_pos": 1140.75 + }, + { + "id": 23448, + "x_pos": 348.75, + "y_pos": 1131 + }, + { + "id": 23447, + "x_pos": 334, + "y_pos": 1125.5 + }, + { + "id": 23446, + "x_pos": 336.25, + "y_pos": 1123 + }, + { + "id": 23445, + "x_pos": 332.25, + "y_pos": 1122.75 + }, + { + "id": 23444, + "x_pos": 314, + "y_pos": 1103.75 + }, + { + "id": 23443, + "x_pos": 311, + "y_pos": 1100.75 + }, + { + "id": 23442, + "x_pos": 307.25, + "y_pos": 1097.75 + }, + { + "id": 23441, + "x_pos": 312, + "y_pos": 1126.5 + }, + { + "id": 23440, + "x_pos": 309, + "y_pos": 1123.25 + }, + { + "id": 23439, + "x_pos": 285.75, + "y_pos": 1122.75 + }, + { + "id": 23438, + "x_pos": 295, + "y_pos": 1126.25 + }, + { + "id": 23311, + "x_pos": -2160.3464436272825, + "y_pos": 1465.2000007629395 + }, + { + "id": 23310, + "x_pos": -2143.0874033947384, + "y_pos": 1461.9500007629395 + }, + { + "id": 23309, + "x_pos": -2181.1026661250075, + "y_pos": 1499.7000007629395 + }, + { + "id": 23308, + "x_pos": -2202.097382872222, + "y_pos": 1455.7000007629395 + }, + { + "id": 23307, + "x_pos": -2188.09239313348, + "y_pos": 1461.4500007629395 + }, + { + "id": 23306, + "x_pos": -2194.181498909672, + "y_pos": 1463.400001525879 + }, + { + "id": 14253, + "x_pos": 3167.5, + "y_pos": 4747 + }, + { + "id": 14232, + "x_pos": 3115.5, + "y_pos": 4884 + }, + { + "id": 14231, + "x_pos": 3127, + "y_pos": 4887 + }, + { + "id": 14230, + "x_pos": 3133.5, + "y_pos": 4902.5 + }, + { + "id": 14228, + "x_pos": 3138, + "y_pos": 4907 + }, + { + "id": 11611, + "x_pos": -1579.5, + "y_pos": 338 + }, + { + "id": 11610, + "x_pos": -1567.5, + "y_pos": 338 + }, + { + "id": 11609, + "x_pos": -1578, + "y_pos": 343 + }, + { + "id": 11608, + "x_pos": -1595, + "y_pos": 356.5 + }, + { + "id": 10570, + "x_pos": 35.5, + "y_pos": 64.5 + }, + { + "id": 10569, + "x_pos": 30.5, + "y_pos": 63.5 + }, + { + "id": 10568, + "x_pos": 32, + "y_pos": 66 + }, + { + "id": 10567, + "x_pos": 34, + "y_pos": 68.5 + }, + { + "id": 10566, + "x_pos": 33, + "y_pos": 71.5 + }, + { + "id": 10565, + "x_pos": 44, + "y_pos": 86 + }, + { + "id": 10564, + "x_pos": 38.5, + "y_pos": 89 + }, + { + "id": 10563, + "x_pos": 44, + "y_pos": 90 + }, + { + "id": 10562, + "x_pos": 42, + "y_pos": 90.5 + }, + { + "id": 9944, + "x_pos": 290.5, + "y_pos": 1125 + }, + { + "id": 9943, + "x_pos": 301, + "y_pos": 1089.5 + }, + { + "id": 9942, + "x_pos": 377, + "y_pos": 1155 + }, + { + "id": 9941, + "x_pos": 415, + "y_pos": 1075 + }, + { + "id": 9940, + "x_pos": 393, + "y_pos": 1018.5 + }, + { + "id": 9939, + "x_pos": 363.5, + "y_pos": 984.5 + }, + { + "id": 9938, + "x_pos": 357.5, + "y_pos": 959 + }, + { + "id": 9937, + "x_pos": 243.5, + "y_pos": 1105.5 + }, + { + "id": 9936, + "x_pos": 223.5, + "y_pos": 1087 + }, + { + "id": 9935, + "x_pos": 269, + "y_pos": 1140 + }, + { + "id": 9934, + "x_pos": 193, + "y_pos": 1121 + }, + { + "id": 9933, + "x_pos": 134.5, + "y_pos": 1054.5 + }, + { + "id": 9932, + "x_pos": 160, + "y_pos": 1064.5 + }, + { + "id": 9931, + "x_pos": 103, + "y_pos": 1072 + }, + { + "id": 9928, + "x_pos": -334, + "y_pos": 546.5 + }, + { + "id": 9927, + "x_pos": -349, + "y_pos": 571 + }, + { + "id": 9894, + "x_pos": 123, + "y_pos": 58 + }, + { + "id": 9893, + "x_pos": 118, + "y_pos": 65 + }, + { + "id": 9892, + "x_pos": 121.5, + "y_pos": 71 + }, + { + "id": 9891, + "x_pos": 105, + "y_pos": 93.5 + }, + { + "id": 9890, + "x_pos": 358, + "y_pos": 1159 + }, + { + "id": 9866, + "x_pos": 129.5, + "y_pos": 54.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/b74739cf70a2327f3da492a463536c6c_896192106893421562.png" + }, + "146": { + "name": "Ruin Brazier", + "clear_name": "RuinBrazier", + "points": [ + { + "id": 23543, + "x_pos": 275.5, + "y_pos": 1284.5 + }, + { + "id": 7267, + "x_pos": 345.5, + "y_pos": 906 + }, + { + "id": 7266, + "x_pos": 379, + "y_pos": 1129.5 + }, + { + "id": 7265, + "x_pos": 248.5, + "y_pos": 1184.5 + }, + { + "id": 7264, + "x_pos": 325, + "y_pos": 1242 + }, + { + "id": 7263, + "x_pos": -199.5, + "y_pos": 1431.5 + }, + { + "id": 7261, + "x_pos": -342.5, + "y_pos": 1344 + }, + { + "id": 7260, + "x_pos": -375.5, + "y_pos": 1290.5 + }, + { + "id": 7254, + "x_pos": -349.5, + "y_pos": 1133 + }, + { + "id": 7251, + "x_pos": 117.5, + "y_pos": 792 + }, + { + "id": 7250, + "x_pos": -176, + "y_pos": 933.5 + }, + { + "id": 7071, + "x_pos": -93, + "y_pos": 1475.5 + }, + { + "id": 7064, + "x_pos": -93.5, + "y_pos": 1485 + }, + { + "id": 7061, + "x_pos": -119, + "y_pos": 1452.5 + }, + { + "id": 7056, + "x_pos": -89.5, + "y_pos": 1491 + }, + { + "id": 7050, + "x_pos": -27.5, + "y_pos": 1374.5 + }, + { + "id": 7035, + "x_pos": -89.5, + "y_pos": 1496.5 + }, + { + "id": 7022, + "x_pos": 126, + "y_pos": 1060.5 + }, + { + "id": 7018, + "x_pos": -101.5, + "y_pos": 1487.5 + }, + { + "id": 7007, + "x_pos": -31, + "y_pos": 1209.5 + }, + { + "id": 6993, + "x_pos": 205, + "y_pos": 1123 + }, + { + "id": 6985, + "x_pos": -206.5, + "y_pos": 1132 + }, + { + "id": 6977, + "x_pos": -104, + "y_pos": 1496.5 + }, + { + "id": 6976, + "x_pos": -180.5, + "y_pos": 1137.5 + }, + { + "id": 6971, + "x_pos": -114, + "y_pos": 1496 + }, + { + "id": 6970, + "x_pos": -187.5, + "y_pos": 1165.5 + }, + { + "id": 6966, + "x_pos": -77.5, + "y_pos": 1501.5 + }, + { + "id": 6965, + "x_pos": -214.5, + "y_pos": 1160 + }, + { + "id": 6960, + "x_pos": -96.5, + "y_pos": 1502.5 + }, + { + "id": 6954, + "x_pos": -102, + "y_pos": 1513 + }, + { + "id": 6936, + "x_pos": 504.5, + "y_pos": 1425.5 + }, + { + "id": 6929, + "x_pos": 210.5, + "y_pos": 1674.5 + }, + { + "id": 6927, + "x_pos": -273.5, + "y_pos": 1447 + }, + { + "id": 6924, + "x_pos": 457, + "y_pos": 1223 + }, + { + "id": 6882, + "x_pos": 436, + "y_pos": 1558.5 + }, + { + "id": 6879, + "x_pos": 435, + "y_pos": 960 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/9301c03cc5c170e9c6c8aa273759cde4_2995457238950097945.png" + }, + "160": { + "name": "Sweet\u00a0Flower", + "clear_name": "SweetFlower", + "points": [ + { + "id": 23527, + "x_pos": -173.6377886473574, + "y_pos": 6208.595210240781 + }, + { + "id": 23524, + "x_pos": 182.02911952535305, + "y_pos": 5933.742667970477 + }, + { + "id": 23523, + "x_pos": 192.39020816147877, + "y_pos": 5945.358458448471 + }, + { + "id": 23519, + "x_pos": 234.9464208618465, + "y_pos": 5996.273906039845 + }, + { + "id": 23518, + "x_pos": 301.6128083791291, + "y_pos": 6035.337100027911 + }, + { + "id": 23517, + "x_pos": 327.39046357077314, + "y_pos": 5988.238851894981 + }, + { + "id": 23516, + "x_pos": 383.5847167648417, + "y_pos": 5959.373768577252 + }, + { + "id": 23513, + "x_pos": 600.1116342709311, + "y_pos": 6091.695202604464 + }, + { + "id": 23512, + "x_pos": 559.1673602026231, + "y_pos": 6068.868970416306 + }, + { + "id": 23509, + "x_pos": 451.6954426384418, + "y_pos": 6182.95547095779 + }, + { + "id": 23506, + "x_pos": 411.19576740907723, + "y_pos": 6235.59483451266 + }, + { + "id": 23505, + "x_pos": 457.41778876354056, + "y_pos": 6350.838186734454 + }, + { + "id": 23503, + "x_pos": 509.333975245243, + "y_pos": 6334.481077697827 + }, + { + "id": 23500, + "x_pos": 445.1675764969232, + "y_pos": 6350.718039497733 + }, + { + "id": 23499, + "x_pos": 417.5560456289959, + "y_pos": 6358.797962329554 + }, + { + "id": 23497, + "x_pos": 1736.8354827990843, + "y_pos": 7141.82176622477 + }, + { + "id": 23494, + "x_pos": 1637.002883355989, + "y_pos": 7284.241304051413 + }, + { + "id": 23492, + "x_pos": 1688.3916156816267, + "y_pos": 7342.961216075353 + }, + { + "id": 23486, + "x_pos": 1820.0021973332096, + "y_pos": 7278.613304723551 + }, + { + "id": 23253, + "x_pos": -2031.2000122070312, + "y_pos": 2494.900796887595 + }, + { + "id": 20205, + "x_pos": 2212, + "y_pos": 8402.832041259668 + }, + { + "id": 20204, + "x_pos": 2221.7777809792688, + "y_pos": 8468.330087896344 + }, + { + "id": 20203, + "x_pos": 2258.7222190207312, + "y_pos": 8574.38541285346 + }, + { + "id": 20202, + "x_pos": 2176.1111319724414, + "y_pos": 8520.719407476454 + }, + { + "id": 20201, + "x_pos": 2232.4999775379238, + "y_pos": 8576.88541285346 + }, + { + "id": 20200, + "x_pos": 2309.2777585171934, + "y_pos": 8580.496093273348 + }, + { + "id": 20199, + "x_pos": 2328.055517034386, + "y_pos": 8544.719407476454 + }, + { + "id": 20198, + "x_pos": 2090.3333285310964, + "y_pos": 8436.276685796896 + }, + { + "id": 20197, + "x_pos": 2069.3888680275586, + "y_pos": 8484.887366216784 + }, + { + "id": 20196, + "x_pos": 2066.2222190207312, + "y_pos": 8395.38541285346 + }, + { + "id": 20195, + "x_pos": 2336.5555780692684, + "y_pos": 8597.38541285346 + }, + { + "id": 20194, + "x_pos": 2406.055517034386, + "y_pos": 8569.664082519337 + }, + { + "id": 20193, + "x_pos": 2131.3888985449994, + "y_pos": 8499.998046636674 + }, + { + "id": 20192, + "x_pos": 2033.666679524269, + "y_pos": 8652.66405201368 + }, + { + "id": 20191, + "x_pos": 1866.1666490068274, + "y_pos": 8630.778669665877 + }, + { + "id": 20190, + "x_pos": 1848.3333285310964, + "y_pos": 8693.164082519337 + }, + { + "id": 20189, + "x_pos": 1965.2222190207312, + "y_pos": 8717.442721679558 + }, + { + "id": 20188, + "x_pos": 1966.166679524269, + "y_pos": 8767.053402099447 + }, + { + "id": 20187, + "x_pos": 1903.7222414828066, + "y_pos": 8722.162098650355 + }, + { + "id": 20186, + "x_pos": 1822.2222190207312, + "y_pos": 8746.438814952908 + }, + { + "id": 20185, + "x_pos": 1847.6666939309798, + "y_pos": 8723.832010754013 + }, + { + "id": 20184, + "x_pos": 1846.666679524269, + "y_pos": 8749.832041259668 + }, + { + "id": 20183, + "x_pos": 1924.888876082924, + "y_pos": 8753.108696550908 + }, + { + "id": 20182, + "x_pos": 1679.5, + "y_pos": 8634.330057390687 + }, + { + "id": 20181, + "x_pos": 1666.1111095103652, + "y_pos": 8665.776685796896 + }, + { + "id": 20180, + "x_pos": 1640.4999775379238, + "y_pos": 8684.55337159379 + }, + { + "id": 20179, + "x_pos": 1636.8888680275586, + "y_pos": 8731.996093273348 + }, + { + "id": 20178, + "x_pos": 1711, + "y_pos": 8748.887366216784 + }, + { + "id": 20177, + "x_pos": 1745.2777809792688, + "y_pos": 8783.332041259668 + }, + { + "id": 20176, + "x_pos": 1888.9444075240208, + "y_pos": 8763.440768316232 + }, + { + "id": 20175, + "x_pos": 1868.1111095103652, + "y_pos": 8775.88541285346 + }, + { + "id": 20174, + "x_pos": 1822.3888985449994, + "y_pos": 8790.162098650355 + }, + { + "id": 20173, + "x_pos": 2181.666679524269, + "y_pos": 8576.442691173903 + }, + { + "id": 20172, + "x_pos": 2091.6110789929244, + "y_pos": 8669.108727056564 + }, + { + "id": 20171, + "x_pos": 2118.3332980136556, + "y_pos": 8655.88541285346 + }, + { + "id": 20170, + "x_pos": 2045.5555394964622, + "y_pos": 8797.830087896344 + }, + { + "id": 20169, + "x_pos": 2090.5556005313447, + "y_pos": 8754.608727056564 + }, + { + "id": 20168, + "x_pos": 1994, + "y_pos": 8750.498046636674 + }, + { + "id": 20167, + "x_pos": 1858.777803441345, + "y_pos": 8793.551448736122 + }, + { + "id": 20166, + "x_pos": 1992.7222190207312, + "y_pos": 8799.942721679558 + }, + { + "id": 20165, + "x_pos": 2157, + "y_pos": 8715.719407476454 + }, + { + "id": 20164, + "x_pos": 2139.7222190207312, + "y_pos": 8562.22136083978 + }, + { + "id": 20163, + "x_pos": 1795.3915438029844, + "y_pos": 8800.047248513234 + }, + { + "id": 20162, + "x_pos": 1685.9444524481723, + "y_pos": 8818.776685796896 + }, + { + "id": 20161, + "x_pos": 1796.2777809792688, + "y_pos": 8813.38541285346 + }, + { + "id": 20160, + "x_pos": 1839.9444605035378, + "y_pos": 8816.608727056564 + }, + { + "id": 20159, + "x_pos": 2004.4444380414616, + "y_pos": 8727.721330334123 + }, + { + "id": 20158, + "x_pos": 2021.5556005313447, + "y_pos": 8811.938814952908 + }, + { + "id": 20157, + "x_pos": 1792.0000224620762, + "y_pos": 8819.88931958011 + }, + { + "id": 20156, + "x_pos": 1869.8333509931726, + "y_pos": 8826.887366216784 + }, + { + "id": 20155, + "x_pos": 1911.8332980136556, + "y_pos": 8922.66405201368 + }, + { + "id": 20154, + "x_pos": 1932.1110789929244, + "y_pos": 8946.498046636674 + }, + { + "id": 20153, + "x_pos": 1946.8888599721931, + "y_pos": 8974.776685796896 + }, + { + "id": 20152, + "x_pos": 1860.3910968076743, + "y_pos": 8330.470676670877 + }, + { + "id": 20151, + "x_pos": 1760.8333060690202, + "y_pos": 8319.938814952908 + }, + { + "id": 20150, + "x_pos": 1755.0000673862278, + "y_pos": 8263.047511503815 + }, + { + "id": 20149, + "x_pos": 2554.3332980136556, + "y_pos": 8373.055355462773 + }, + { + "id": 20148, + "x_pos": 1764.4999775379238, + "y_pos": 8096.88541285346 + }, + { + "id": 20060, + "x_pos": 356.371337890625, + "y_pos": 238.23756408691406 + }, + { + "id": 20058, + "x_pos": 325.9481201171875, + "y_pos": 256.8335266113281 + }, + { + "id": 20057, + "x_pos": 301.8009948730469, + "y_pos": 272.57806396484375 + }, + { + "id": 19160, + "x_pos": 2488, + "y_pos": 8380.5 + }, + { + "id": 19159, + "x_pos": 2446, + "y_pos": 8436.5 + }, + { + "id": 19158, + "x_pos": 2498, + "y_pos": 8485.5 + }, + { + "id": 19157, + "x_pos": 2414.5, + "y_pos": 8627 + }, + { + "id": 19156, + "x_pos": 2452.5, + "y_pos": 8570 + }, + { + "id": 19155, + "x_pos": 2231.5, + "y_pos": 8636 + }, + { + "id": 19154, + "x_pos": 1916.5, + "y_pos": 8588 + }, + { + "id": 18490, + "x_pos": 3731.5, + "y_pos": 6533.5 + }, + { + "id": 18489, + "x_pos": 3732.5, + "y_pos": 6537.5 + }, + { + "id": 18486, + "x_pos": 3550, + "y_pos": 6581.5 + }, + { + "id": 18466, + "x_pos": 3064.5, + "y_pos": 6823.5 + }, + { + "id": 18465, + "x_pos": 3050, + "y_pos": 6852.5 + }, + { + "id": 18463, + "x_pos": 3050, + "y_pos": 6859.5 + }, + { + "id": 18449, + "x_pos": 3364.5, + "y_pos": 6861 + }, + { + "id": 18448, + "x_pos": 3368, + "y_pos": 6866 + }, + { + "id": 18042, + "x_pos": 3899.166679524269, + "y_pos": 7043.053371593791 + }, + { + "id": 18041, + "x_pos": 3901.6111175657315, + "y_pos": 7073.719407476454 + }, + { + "id": 18040, + "x_pos": 3900.7777585171934, + "y_pos": 7096.664052013681 + }, + { + "id": 18039, + "x_pos": 3871.4444605035387, + "y_pos": 7131.272779070245 + }, + { + "id": 18038, + "x_pos": 3587.166657062193, + "y_pos": 7342.719407476454 + }, + { + "id": 18037, + "x_pos": 3541.0000224620762, + "y_pos": 7390.330087896344 + }, + { + "id": 18036, + "x_pos": 3516.5555394964613, + "y_pos": 7405.88541285346 + }, + { + "id": 18035, + "x_pos": 3400.555517034387, + "y_pos": 7339.383459490135 + }, + { + "id": 18033, + "x_pos": 3450.7222414828066, + "y_pos": 7330.606773693238 + }, + { + "id": 18031, + "x_pos": 3220.388876082923, + "y_pos": 7192.707687296501 + }, + { + "id": 18030, + "x_pos": 3495.0555394964613, + "y_pos": 6564.830087896344 + }, + { + "id": 18029, + "x_pos": 3500.7777809792697, + "y_pos": 6613.440737810577 + }, + { + "id": 18028, + "x_pos": 3152.388859972194, + "y_pos": 6575.9427216795575 + }, + { + "id": 18027, + "x_pos": 2727.2222190207303, + "y_pos": 6401.887366216784 + }, + { + "id": 18026, + "x_pos": 103.11114002780687, + "y_pos": 6330.664052013681 + }, + { + "id": 18025, + "x_pos": 138.11114002780687, + "y_pos": 6336.7747324335705 + }, + { + "id": 18024, + "x_pos": 321.88887608292407, + "y_pos": 6243.940768316232 + }, + { + "id": 18022, + "x_pos": 303.8333590485372, + "y_pos": 6129.664052013681 + }, + { + "id": 18021, + "x_pos": 291.77775851719343, + "y_pos": 6059.772779070245 + }, + { + "id": 18020, + "x_pos": 211.66661848938656, + "y_pos": 5941.387366216784 + }, + { + "id": 18018, + "x_pos": 110.88889854499939, + "y_pos": 5814.164052013681 + }, + { + "id": 18017, + "x_pos": 50.611056530848145, + "y_pos": 5875.053402099447 + }, + { + "id": 18016, + "x_pos": -44.66670198634438, + "y_pos": 5862.932924357276 + }, + { + "id": 18015, + "x_pos": -165.33337345524797, + "y_pos": 5859.998046636674 + }, + { + "id": 18014, + "x_pos": -138.88894346915185, + "y_pos": 5884.664052013681 + }, + { + "id": 18013, + "x_pos": -146.55556195853842, + "y_pos": 5890.666035882663 + }, + { + "id": 18012, + "x_pos": -132.11111756573064, + "y_pos": 5891.158191923705 + }, + { + "id": 18011, + "x_pos": -151.11114637915216, + "y_pos": 5943.328104027361 + }, + { + "id": 18010, + "x_pos": -112.83332047573094, + "y_pos": 5933.998046636674 + }, + { + "id": 17734, + "x_pos": 3256.5, + "y_pos": 7062 + }, + { + "id": 17500, + "x_pos": 3191, + "y_pos": 7098 + }, + { + "id": 17499, + "x_pos": 3180, + "y_pos": 7104.5 + }, + { + "id": 17498, + "x_pos": 2903, + "y_pos": 5701 + }, + { + "id": 17221, + "x_pos": -1319.5, + "y_pos": 2682.5 + }, + { + "id": 17220, + "x_pos": -1315.5, + "y_pos": 2697.5 + }, + { + "id": 17219, + "x_pos": -1297, + "y_pos": 2679 + }, + { + "id": 17143, + "x_pos": 2764.5, + "y_pos": 5499.5 + }, + { + "id": 17142, + "x_pos": 2719.5, + "y_pos": 5446.5 + }, + { + "id": 17141, + "x_pos": 2639.5, + "y_pos": 5480 + }, + { + "id": 17131, + "x_pos": 2717, + "y_pos": 5882.5 + }, + { + "id": 17125, + "x_pos": 2522, + "y_pos": 5924 + }, + { + "id": 17123, + "x_pos": 2627.5, + "y_pos": 6070.5 + }, + { + "id": 17122, + "x_pos": 2515, + "y_pos": 6002 + }, + { + "id": 17121, + "x_pos": 2459.5, + "y_pos": 5980.5 + }, + { + "id": 17119, + "x_pos": 2368.5, + "y_pos": 5947.5 + }, + { + "id": 17118, + "x_pos": 2360.5, + "y_pos": 5951 + }, + { + "id": 17117, + "x_pos": 2301.5, + "y_pos": 5963.5 + }, + { + "id": 17114, + "x_pos": 2315, + "y_pos": 6070 + }, + { + "id": 17112, + "x_pos": 2471, + "y_pos": 6117 + }, + { + "id": 17110, + "x_pos": 2422.5, + "y_pos": 6157.5 + }, + { + "id": 17105, + "x_pos": 2447, + "y_pos": 6189.5 + }, + { + "id": 17103, + "x_pos": 2449.5, + "y_pos": 6225 + }, + { + "id": 17098, + "x_pos": 3347, + "y_pos": 5122 + }, + { + "id": 17094, + "x_pos": 3504, + "y_pos": 5114 + }, + { + "id": 17093, + "x_pos": 3533, + "y_pos": 5050 + }, + { + "id": 17092, + "x_pos": 3731.5, + "y_pos": 5101.5 + }, + { + "id": 17089, + "x_pos": 3644.5, + "y_pos": 5123 + }, + { + "id": 17087, + "x_pos": 3573.5, + "y_pos": 5123 + }, + { + "id": 17084, + "x_pos": 3171, + "y_pos": 5588 + }, + { + "id": 17083, + "x_pos": 3924.5, + "y_pos": 5477 + }, + { + "id": 17082, + "x_pos": 3876.5, + "y_pos": 5775 + }, + { + "id": 17081, + "x_pos": 3384, + "y_pos": 5193 + }, + { + "id": 17080, + "x_pos": 3470.5, + "y_pos": 5248 + }, + { + "id": 17079, + "x_pos": 3495.5, + "y_pos": 5213 + }, + { + "id": 17077, + "x_pos": 3710, + "y_pos": 4991.5 + }, + { + "id": 17076, + "x_pos": 3848.5, + "y_pos": 4984 + }, + { + "id": 17075, + "x_pos": 3873, + "y_pos": 4940 + }, + { + "id": 17074, + "x_pos": 3779.5, + "y_pos": 4922.5 + }, + { + "id": 17073, + "x_pos": 3603.5, + "y_pos": 4952 + }, + { + "id": 17070, + "x_pos": 3508, + "y_pos": 4993 + }, + { + "id": 17069, + "x_pos": 2406, + "y_pos": 6421 + }, + { + "id": 17067, + "x_pos": 2409.5, + "y_pos": 6423.5 + }, + { + "id": 17066, + "x_pos": 3433.5, + "y_pos": 4950 + }, + { + "id": 17064, + "x_pos": 3551.5, + "y_pos": 4894.5 + }, + { + "id": 17061, + "x_pos": 3512, + "y_pos": 4833.5 + }, + { + "id": 17059, + "x_pos": 2389, + "y_pos": 6309.5 + }, + { + "id": 17057, + "x_pos": 3715.5, + "y_pos": 4739 + }, + { + "id": 17056, + "x_pos": 2374.5, + "y_pos": 6323 + }, + { + "id": 17055, + "x_pos": 3551, + "y_pos": 4668.5 + }, + { + "id": 17054, + "x_pos": 2342.5, + "y_pos": 6276 + }, + { + "id": 17053, + "x_pos": 3586.5, + "y_pos": 4629.5 + }, + { + "id": 17052, + "x_pos": 2317.5, + "y_pos": 6248.5 + }, + { + "id": 17051, + "x_pos": 3529.5, + "y_pos": 4640 + }, + { + "id": 17049, + "x_pos": 2251, + "y_pos": 6293.5 + }, + { + "id": 17048, + "x_pos": 3889, + "y_pos": 5692.5 + }, + { + "id": 17047, + "x_pos": 2261.5, + "y_pos": 6223.5 + }, + { + "id": 17046, + "x_pos": 2208.5, + "y_pos": 6172.5 + }, + { + "id": 17043, + "x_pos": 2241.5, + "y_pos": 6016.5 + }, + { + "id": 17042, + "x_pos": 1999, + "y_pos": 5757.5 + }, + { + "id": 17041, + "x_pos": 1509, + "y_pos": 5838 + }, + { + "id": 17040, + "x_pos": 1382.5, + "y_pos": 5987 + }, + { + "id": 17039, + "x_pos": 1400, + "y_pos": 5937 + }, + { + "id": 17038, + "x_pos": 1224.5, + "y_pos": 5888 + }, + { + "id": 15765, + "x_pos": 2675, + "y_pos": 5686 + }, + { + "id": 15764, + "x_pos": 2673.5, + "y_pos": 5703 + }, + { + "id": 15760, + "x_pos": -1596.4999694824219, + "y_pos": 612.5963688868878 + }, + { + "id": 15756, + "x_pos": -1483.2000122070312, + "y_pos": 667.8963466908112 + }, + { + "id": 15755, + "x_pos": -1500.2999572753906, + "y_pos": 725.0226907564834 + }, + { + "id": 15754, + "x_pos": -1450.9000244140625, + "y_pos": 729.8717248622006 + }, + { + "id": 15753, + "x_pos": -1411.5, + "y_pos": 734.1710067069462 + }, + { + "id": 15750, + "x_pos": -1091.5999755859375, + "y_pos": 821.4027096109826 + }, + { + "id": 15748, + "x_pos": -1216.6000213623047, + "y_pos": 866.2532043726005 + }, + { + "id": 15744, + "x_pos": -1950.0999755859375, + "y_pos": 1003.9101813887119 + }, + { + "id": 15732, + "x_pos": -2168.8999633789062, + "y_pos": 1697.7189770636942 + }, + { + "id": 15730, + "x_pos": -2114.4999389648438, + "y_pos": 1975.3729752501586 + }, + { + "id": 15517, + "x_pos": 3376.5, + "y_pos": 5042 + }, + { + "id": 15515, + "x_pos": 3428.5, + "y_pos": 5301.5 + }, + { + "id": 15514, + "x_pos": 3891.199981689453, + "y_pos": 5631.326381536757 + }, + { + "id": 15510, + "x_pos": 3186.5, + "y_pos": 5507.5 + }, + { + "id": 15503, + "x_pos": 2460.2000122070312, + "y_pos": 5412.577406381764 + }, + { + "id": 15497, + "x_pos": 2678.3999938964844, + "y_pos": 5622.539630539421 + }, + { + "id": 15495, + "x_pos": 2683, + "y_pos": 5670.5 + }, + { + "id": 15484, + "x_pos": 2455.7000122070312, + "y_pos": 5868.620451561728 + }, + { + "id": 15483, + "x_pos": 2566.7999877929688, + "y_pos": 5907.031011480049 + }, + { + "id": 15474, + "x_pos": 2306.4000244140625, + "y_pos": 5934.283814410524 + }, + { + "id": 15472, + "x_pos": 2575.2999877929688, + "y_pos": 5976.51240459202 + }, + { + "id": 15467, + "x_pos": 2725.499969482422, + "y_pos": 6085.290727940723 + }, + { + "id": 15420, + "x_pos": -1042.60009765625, + "y_pos": 2348.28210928293 + }, + { + "id": 15419, + "x_pos": -1006.9000244140625, + "y_pos": 2245.016148259675 + }, + { + "id": 15418, + "x_pos": -1009.4999389648438, + "y_pos": 2349.721215129106 + }, + { + "id": 15417, + "x_pos": -1132.2998657226562, + "y_pos": 3035.4618418052078 + }, + { + "id": 15403, + "x_pos": 2151.2003496328434, + "y_pos": 6087.5995484632385 + }, + { + "id": 15400, + "x_pos": 2028.1010183938233, + "y_pos": 6133.307798334918 + }, + { + "id": 15394, + "x_pos": 1719.1000061035156, + "y_pos": 6016.110959092248 + }, + { + "id": 15391, + "x_pos": 1660.6999816894531, + "y_pos": 6002.798632659511 + }, + { + "id": 15388, + "x_pos": 1722.9000244140625, + "y_pos": 6079.929107957383 + }, + { + "id": 15387, + "x_pos": 1761, + "y_pos": 6086.303237138563 + }, + { + "id": 15383, + "x_pos": 1818.4000244140625, + "y_pos": 6124.4006272896495 + }, + { + "id": 15380, + "x_pos": 1812.7000122070312, + "y_pos": 6157.105676172743 + }, + { + "id": 15374, + "x_pos": 1769.5, + "y_pos": 6221.807588607593 + }, + { + "id": 15372, + "x_pos": 1729.9000244140625, + "y_pos": 6216.422415794865 + }, + { + "id": 15368, + "x_pos": 1603.1999816894531, + "y_pos": 6207.602412678298 + }, + { + "id": 15366, + "x_pos": 1690.2000122070312, + "y_pos": 6268.006092823873 + }, + { + "id": 15360, + "x_pos": 1510, + "y_pos": 6331.400603169575 + }, + { + "id": 15359, + "x_pos": 1606.6000366210938, + "y_pos": 6445.798221055338 + }, + { + "id": 15358, + "x_pos": 1578.8999938964844, + "y_pos": 6467.201809508724 + }, + { + "id": 15356, + "x_pos": 1523, + "y_pos": 6429.400603169575 + }, + { + "id": 15353, + "x_pos": 1382.8998251835783, + "y_pos": 6372.402770325556 + }, + { + "id": 15352, + "x_pos": 1363.9015123383815, + "y_pos": 6323.004576472602 + }, + { + "id": 15137, + "x_pos": 1574.8007709310732, + "y_pos": 6318.20485592066 + }, + { + "id": 15135, + "x_pos": 1489.2014597636407, + "y_pos": 6385.108536066233 + }, + { + "id": 15131, + "x_pos": 1599.3027288062112, + "y_pos": 6413.695701402821 + }, + { + "id": 15129, + "x_pos": 1571.5019578751371, + "y_pos": 6439.605489654297 + }, + { + "id": 15127, + "x_pos": 1695.8980943876677, + "y_pos": 6415.105459090235 + }, + { + "id": 15124, + "x_pos": 1785.4003854655366, + "y_pos": 6277.201809508724 + }, + { + "id": 15120, + "x_pos": 1808.8007709310732, + "y_pos": 6331.608536066233 + }, + { + "id": 15119, + "x_pos": 1653.298813055937, + "y_pos": 6233.903649581511 + }, + { + "id": 15113, + "x_pos": 1422, + "y_pos": 6256.403649581511 + }, + { + "id": 15112, + "x_pos": 1444.9004764030833, + "y_pos": 6291.903649581511 + }, + { + "id": 15108, + "x_pos": 1423.201429209249, + "y_pos": 6394.8072991630215 + }, + { + "id": 15104, + "x_pos": 1365, + "y_pos": 6200.105489654297 + }, + { + "id": 15102, + "x_pos": 1304.9004764030833, + "y_pos": 6208.704886484722 + }, + { + "id": 15101, + "x_pos": 1329.4005069574741, + "y_pos": 6272.707902332595 + }, + { + "id": 15100, + "x_pos": 1376.8009528061666, + "y_pos": 6142.608536066233 + }, + { + "id": 15092, + "x_pos": 1040.201429209249, + "y_pos": 6118.006092823873 + }, + { + "id": 15019, + "x_pos": 1628.6990151202754, + "y_pos": 6092.708818586674 + }, + { + "id": 15016, + "x_pos": 1543.8979996849348, + "y_pos": 6112.69865975468 + }, + { + "id": 15015, + "x_pos": 1491.3010154353397, + "y_pos": 6140.006777649525 + }, + { + "id": 15010, + "x_pos": 1474.9005229954773, + "y_pos": 6198.708818586674 + }, + { + "id": 15008, + "x_pos": 1539.1000061035156, + "y_pos": 6232.908573037093 + }, + { + "id": 15004, + "x_pos": 1413.7000122070312, + "y_pos": 6303.905028009362 + }, + { + "id": 15003, + "x_pos": 1452.5999755859375, + "y_pos": 6344.911892718264 + }, + { + "id": 14894, + "x_pos": 1475.8897197302485, + "y_pos": 5802.701354610284 + }, + { + "id": 14892, + "x_pos": 1462.198976210033, + "y_pos": 5849.807767782424 + }, + { + "id": 14880, + "x_pos": 1565.4974863589814, + "y_pos": 5897.601806147046 + }, + { + "id": 14879, + "x_pos": 1608.4929143718418, + "y_pos": 5853.914180954565 + }, + { + "id": 14878, + "x_pos": 1634.2959659519965, + "y_pos": 5926.500030552494 + }, + { + "id": 14877, + "x_pos": 1668.405523899055, + "y_pos": 5906.9004515367615 + }, + { + "id": 14874, + "x_pos": 1671.398607310054, + "y_pos": 5840.411892718264 + }, + { + "id": 14870, + "x_pos": 1818.3979829759983, + "y_pos": 5857.0995484632385 + }, + { + "id": 14865, + "x_pos": 1909.4030102580355, + "y_pos": 5750.303191309824 + }, + { + "id": 14863, + "x_pos": 1911.9004966170169, + "y_pos": 5814.900482089255 + }, + { + "id": 14857, + "x_pos": 1888.9004966170169, + "y_pos": 5876.905028009362 + }, + { + "id": 14851, + "x_pos": 1984.8009932340337, + "y_pos": 5961.807798334918 + }, + { + "id": 14850, + "x_pos": 2045.3009932340346, + "y_pos": 5881.10412493584 + }, + { + "id": 14844, + "x_pos": 1526.2015204069849, + "y_pos": 6007.201385162778 + }, + { + "id": 14842, + "x_pos": 1493.7984795930151, + "y_pos": 6033.800903073523 + }, + { + "id": 14840, + "x_pos": 1378.2090613300406, + "y_pos": 6058.3055100986185 + }, + { + "id": 14836, + "x_pos": 1419.801023789967, + "y_pos": 6113.703642846585 + }, + { + "id": 14830, + "x_pos": 2208, + "y_pos": 5968.5 + }, + { + "id": 14829, + "x_pos": 2195.8035374309866, + "y_pos": 6032.203673399079 + }, + { + "id": 14662, + "x_pos": 1372.4974863589814, + "y_pos": 6085.504576472602 + }, + { + "id": 14657, + "x_pos": 1347.5050272820372, + "y_pos": 6103.009183497696 + }, + { + "id": 14650, + "x_pos": 1367.5999755859375, + "y_pos": 5838.299987792969 + }, + { + "id": 14649, + "x_pos": 1360.2040034920701, + "y_pos": 5896.509152945202 + }, + { + "id": 14648, + "x_pos": 1368.688952201891, + "y_pos": 5699.441655066417 + }, + { + "id": 14644, + "x_pos": 1332.0025136410186, + "y_pos": 6003.108670855947 + }, + { + "id": 14643, + "x_pos": 1336.3035068750532, + "y_pos": 5949.4096044819635 + }, + { + "id": 14634, + "x_pos": 1268.107044306039, + "y_pos": 5985.509152945202 + }, + { + "id": 14632, + "x_pos": 1251.107044306039, + "y_pos": 5948.402739773062 + }, + { + "id": 14621, + "x_pos": 3427, + "y_pos": 4824.5 + }, + { + "id": 14620, + "x_pos": 3410.5, + "y_pos": 4868.5 + }, + { + "id": 14619, + "x_pos": 3413, + "y_pos": 4866 + }, + { + "id": 14618, + "x_pos": 3372.5, + "y_pos": 4872 + }, + { + "id": 14531, + "x_pos": 3782.5, + "y_pos": 5408.5 + }, + { + "id": 14220, + "x_pos": 3705.5, + "y_pos": 5399 + }, + { + "id": 14059, + "x_pos": 3718.5, + "y_pos": 5486 + }, + { + "id": 14056, + "x_pos": 3599, + "y_pos": 5449 + }, + { + "id": 14053, + "x_pos": 3510, + "y_pos": 5389.5 + }, + { + "id": 14052, + "x_pos": 3618.5, + "y_pos": 5390.5 + }, + { + "id": 14050, + "x_pos": 3649.5, + "y_pos": 5368.5 + }, + { + "id": 14048, + "x_pos": 3509.5, + "y_pos": 5319.5 + }, + { + "id": 14047, + "x_pos": 3606.5, + "y_pos": 5301.5 + }, + { + "id": 14046, + "x_pos": 3640, + "y_pos": 5297.5 + }, + { + "id": 14036, + "x_pos": 3796.5, + "y_pos": 5073 + }, + { + "id": 14033, + "x_pos": 3831.5, + "y_pos": 4957 + }, + { + "id": 14005, + "x_pos": 376, + "y_pos": -136.5 + }, + { + "id": 14004, + "x_pos": 329.5, + "y_pos": 16 + }, + { + "id": 14002, + "x_pos": -30.5, + "y_pos": 524 + }, + { + "id": 14001, + "x_pos": -53, + "y_pos": 555 + }, + { + "id": 14000, + "x_pos": -55, + "y_pos": 562 + }, + { + "id": 13996, + "x_pos": -119.5, + "y_pos": 543.5 + }, + { + "id": 13994, + "x_pos": -132, + "y_pos": 524 + }, + { + "id": 13910, + "x_pos": 1448, + "y_pos": 5975.5 + }, + { + "id": 13909, + "x_pos": 1449.5, + "y_pos": 5974.5 + }, + { + "id": 13813, + "x_pos": 3293.5, + "y_pos": 4948.5 + }, + { + "id": 13810, + "x_pos": 3137, + "y_pos": 4783 + }, + { + "id": 13643, + "x_pos": 262, + "y_pos": 2623 + }, + { + "id": 13487, + "x_pos": -320, + "y_pos": 421 + }, + { + "id": 13485, + "x_pos": -268.5, + "y_pos": 431.5 + }, + { + "id": 13483, + "x_pos": -156, + "y_pos": 448.5 + }, + { + "id": 13482, + "x_pos": -347.5, + "y_pos": 401 + }, + { + "id": 13480, + "x_pos": -373, + "y_pos": 408.5 + }, + { + "id": 13477, + "x_pos": -105.5, + "y_pos": 2670.5 + }, + { + "id": 13181, + "x_pos": 2313.5, + "y_pos": 6115 + }, + { + "id": 12034, + "x_pos": -1731.442387641211, + "y_pos": 2191.462746675188 + }, + { + "id": 12023, + "x_pos": -1692.9426216340776, + "y_pos": 2288.523961562538 + }, + { + "id": 12018, + "x_pos": -1620.6096335970692, + "y_pos": 2299.2962216210653 + }, + { + "id": 12015, + "x_pos": -1620.109635843277, + "y_pos": 2322.2843960675727 + }, + { + "id": 12014, + "x_pos": -1609.6096830136362, + "y_pos": 2345.2725705140792 + }, + { + "id": 12012, + "x_pos": -1660.1642090831988, + "y_pos": 2156.3689134789956 + }, + { + "id": 12010, + "x_pos": -1658.6642158218215, + "y_pos": 2133.880481955239 + }, + { + "id": 12001, + "x_pos": -1560.5534104789458, + "y_pos": 1771.0421377925586 + }, + { + "id": 12000, + "x_pos": -1499.6092262589414, + "y_pos": 1722.122890550897 + }, + { + "id": 11998, + "x_pos": -1490.8314946962391, + "y_pos": 1681.6437138081337 + }, + { + "id": 11997, + "x_pos": -1540.9979563383718, + "y_pos": 1685.4195576972152 + }, + { + "id": 11992, + "x_pos": -1663.4411159004385, + "y_pos": 1580.386901261013 + }, + { + "id": 11991, + "x_pos": -1734.051882670508, + "y_pos": 1730.8650496947766 + }, + { + "id": 11987, + "x_pos": -1808.552748002618, + "y_pos": 1576.4800166037594 + }, + { + "id": 11983, + "x_pos": -1777.8306570157197, + "y_pos": 1512.235263810965 + }, + { + "id": 11978, + "x_pos": -1850.2752008613047, + "y_pos": 1492.6742754989773 + }, + { + "id": 11977, + "x_pos": -1816.9971680744193, + "y_pos": 1434.3864557357601 + }, + { + "id": 11971, + "x_pos": -2138.108155205199, + "y_pos": 1277.5395822710043 + }, + { + "id": 11970, + "x_pos": -2076.608366348712, + "y_pos": 1281.5395822710043 + }, + { + "id": 11968, + "x_pos": -2062.1084067804486, + "y_pos": 1317.5210727090152 + }, + { + "id": 11967, + "x_pos": -2056.33056066116, + "y_pos": 1318.3071844371461 + }, + { + "id": 11964, + "x_pos": -2006.608465181846, + "y_pos": 1356.0100183872719 + }, + { + "id": 11963, + "x_pos": -2011.1084449659775, + "y_pos": 1355.5102754645222 + }, + { + "id": 11958, + "x_pos": -1631.7758322005475, + "y_pos": 1324.1653235480644 + }, + { + "id": 11956, + "x_pos": -1767.8863657523052, + "y_pos": 1209.4465660593924 + }, + { + "id": 11950, + "x_pos": -1738.2199035679846, + "y_pos": 1147.2562678907343 + }, + { + "id": 11948, + "x_pos": -1637.1646629720426, + "y_pos": 1131.8753099083551 + }, + { + "id": 11945, + "x_pos": -1736.1645213060533, + "y_pos": 1101.3265262346595 + }, + { + "id": 11943, + "x_pos": -1775.942113603885, + "y_pos": 1100.0493817083852 + }, + { + "id": 11904, + "x_pos": 899.5402221679688, + "y_pos": 236.05499267578125 + }, + { + "id": 11903, + "x_pos": 856.10400390625, + "y_pos": 237.20086669921875 + }, + { + "id": 11901, + "x_pos": 1003.5249938964844, + "y_pos": 188.759765625 + }, + { + "id": 11841, + "x_pos": 932.6975402832031, + "y_pos": 209.7877197265625 + }, + { + "id": 11832, + "x_pos": -730.5, + "y_pos": -31.5 + }, + { + "id": 11831, + "x_pos": -741.5, + "y_pos": -21.5 + }, + { + "id": 11826, + "x_pos": -799, + "y_pos": 532.5 + }, + { + "id": 11809, + "x_pos": -2020, + "y_pos": 817.5 + }, + { + "id": 11808, + "x_pos": -2020.5, + "y_pos": 818 + }, + { + "id": 11806, + "x_pos": -2143, + "y_pos": 984.5 + }, + { + "id": 11804, + "x_pos": -1610.5, + "y_pos": 1239 + }, + { + "id": 11779, + "x_pos": -1914.899745541114, + "y_pos": 959.9809596548989 + }, + { + "id": 11773, + "x_pos": -1818.4669957643277, + "y_pos": 1213.6023168183024 + }, + { + "id": 11771, + "x_pos": -1818.3604196510464, + "y_pos": 1215.3825372981228 + }, + { + "id": 11770, + "x_pos": -1897.9605076248658, + "y_pos": 1202.8472758283724 + }, + { + "id": 11754, + "x_pos": -2168.5, + "y_pos": 1116.5 + }, + { + "id": 11745, + "x_pos": -1969.979336645546, + "y_pos": 953.4848693922813 + }, + { + "id": 11743, + "x_pos": -1936.9295958357184, + "y_pos": 971.2331839703529 + }, + { + "id": 11741, + "x_pos": -1946.625072163828, + "y_pos": 1039.5402744539433 + }, + { + "id": 11740, + "x_pos": -1954.166792927992, + "y_pos": 1075.7209209566317 + }, + { + "id": 11737, + "x_pos": -1929.113823319714, + "y_pos": 1090.7482967562387 + }, + { + "id": 11736, + "x_pos": -1849.5812436818587, + "y_pos": 1014.2488891152611 + }, + { + "id": 11735, + "x_pos": -2490.5, + "y_pos": 1755.62503244062 + }, + { + "id": 11734, + "x_pos": -2386.699981689453, + "y_pos": 1594.0177571023278 + }, + { + "id": 11707, + "x_pos": 360, + "y_pos": 686 + }, + { + "id": 11706, + "x_pos": 366, + "y_pos": 696 + }, + { + "id": 11693, + "x_pos": 379, + "y_pos": 332 + }, + { + "id": 11633, + "x_pos": -1640, + "y_pos": 2073.5 + }, + { + "id": 11026, + "x_pos": 115, + "y_pos": -61 + }, + { + "id": 11024, + "x_pos": 206, + "y_pos": 2 + }, + { + "id": 10921, + "x_pos": -809.5, + "y_pos": 2248.5 + }, + { + "id": 10920, + "x_pos": -755.5, + "y_pos": 2243 + }, + { + "id": 10919, + "x_pos": -804.5, + "y_pos": 2267.5 + }, + { + "id": 10918, + "x_pos": -805.5, + "y_pos": 2284 + }, + { + "id": 10917, + "x_pos": -789, + "y_pos": 2291.5 + }, + { + "id": 10912, + "x_pos": -1461.5, + "y_pos": 1330.5 + }, + { + "id": 10911, + "x_pos": -1452, + "y_pos": 1296.5 + }, + { + "id": 10910, + "x_pos": -1463, + "y_pos": 1334 + }, + { + "id": 10908, + "x_pos": -1455, + "y_pos": 1390.5 + }, + { + "id": 10881, + "x_pos": -279.5, + "y_pos": 781.5 + }, + { + "id": 10872, + "x_pos": 551.6302130704289, + "y_pos": 175.47492573701538 + }, + { + "id": 10871, + "x_pos": 609.3502995491936, + "y_pos": 132.68713438452733 + }, + { + "id": 10865, + "x_pos": 682.8756311046745, + "y_pos": 3.7790194734047873 + }, + { + "id": 10864, + "x_pos": 684.1012970578931, + "y_pos": -24.927195394163846 + }, + { + "id": 10852, + "x_pos": 814.3933310087596, + "y_pos": -88.55626349431805 + }, + { + "id": 10851, + "x_pos": 840.9618029684889, + "y_pos": -82.93065376420464 + }, + { + "id": 10848, + "x_pos": 761.8848062293291, + "y_pos": 8.161125355113654 + }, + { + "id": 10847, + "x_pos": 715.0685128480045, + "y_pos": -105.0354747869319 + }, + { + "id": 10841, + "x_pos": -511.5, + "y_pos": 863.5 + }, + { + "id": 10819, + "x_pos": -1759, + "y_pos": 1774.5 + }, + { + "id": 10817, + "x_pos": 909, + "y_pos": 152.5 + }, + { + "id": 10810, + "x_pos": 889.8319174939834, + "y_pos": 5.536411811470316 + }, + { + "id": 10806, + "x_pos": 1030.5, + "y_pos": 29 + }, + { + "id": 10805, + "x_pos": 1019.5, + "y_pos": 2 + }, + { + "id": 10798, + "x_pos": 888.6594586223, + "y_pos": -285.7395856395956 + }, + { + "id": 10787, + "x_pos": -1132.5, + "y_pos": 2012.5 + }, + { + "id": 10786, + "x_pos": -1160.5, + "y_pos": 2023 + }, + { + "id": 10784, + "x_pos": -1179.5, + "y_pos": 2066.5 + }, + { + "id": 10778, + "x_pos": -1256, + "y_pos": 2029 + }, + { + "id": 10775, + "x_pos": -1231.5, + "y_pos": 1972 + }, + { + "id": 10774, + "x_pos": -1238.5, + "y_pos": 1942 + }, + { + "id": 10749, + "x_pos": -1372, + "y_pos": 1690.5 + }, + { + "id": 10746, + "x_pos": -1394.5, + "y_pos": 1625 + }, + { + "id": 10745, + "x_pos": -1407.5, + "y_pos": 1616.5 + }, + { + "id": 10743, + "x_pos": -1378, + "y_pos": 1576 + }, + { + "id": 10740, + "x_pos": -1370, + "y_pos": 1557 + }, + { + "id": 10736, + "x_pos": -1387, + "y_pos": 1488.5 + }, + { + "id": 10735, + "x_pos": -1375, + "y_pos": 1464 + }, + { + "id": 10728, + "x_pos": -1510.5, + "y_pos": 1586 + }, + { + "id": 10725, + "x_pos": -1550, + "y_pos": 1512 + }, + { + "id": 10715, + "x_pos": -1480, + "y_pos": 1867.5 + }, + { + "id": 10713, + "x_pos": -1537.5, + "y_pos": 1878 + }, + { + "id": 10707, + "x_pos": -1273.5, + "y_pos": 554 + }, + { + "id": 10704, + "x_pos": -1916, + "y_pos": 886 + }, + { + "id": 10703, + "x_pos": -1910.5, + "y_pos": 888 + }, + { + "id": 10702, + "x_pos": -1913.5, + "y_pos": 889 + }, + { + "id": 10701, + "x_pos": -1900.5, + "y_pos": 888.5 + }, + { + "id": 10700, + "x_pos": -1904, + "y_pos": 896.5 + }, + { + "id": 10699, + "x_pos": -1912.5, + "y_pos": 880.5 + }, + { + "id": 10698, + "x_pos": -1919, + "y_pos": 867.5 + }, + { + "id": 10697, + "x_pos": -1908, + "y_pos": 867.5 + }, + { + "id": 10696, + "x_pos": -1891, + "y_pos": 885.5 + }, + { + "id": 10695, + "x_pos": -1892.5, + "y_pos": 870.5 + }, + { + "id": 10693, + "x_pos": -1976, + "y_pos": 891.5 + }, + { + "id": 10692, + "x_pos": -1983, + "y_pos": 897 + }, + { + "id": 10691, + "x_pos": -1976, + "y_pos": 900 + }, + { + "id": 10667, + "x_pos": -2299.5, + "y_pos": 986.5 + }, + { + "id": 10666, + "x_pos": -2311, + "y_pos": 988 + }, + { + "id": 10665, + "x_pos": -2306, + "y_pos": 999.5 + }, + { + "id": 10639, + "x_pos": -157.5, + "y_pos": 405.5 + }, + { + "id": 10638, + "x_pos": -164, + "y_pos": 409 + }, + { + "id": 10637, + "x_pos": -161.5, + "y_pos": 412 + }, + { + "id": 10636, + "x_pos": -40, + "y_pos": 299 + }, + { + "id": 10635, + "x_pos": -531.5, + "y_pos": 811 + }, + { + "id": 10634, + "x_pos": -510, + "y_pos": 802.5 + }, + { + "id": 10632, + "x_pos": -495, + "y_pos": 819.5 + }, + { + "id": 10631, + "x_pos": -484, + "y_pos": 803.5 + }, + { + "id": 10596, + "x_pos": 227, + "y_pos": 2621.5 + }, + { + "id": 10582, + "x_pos": -409.0335146542102, + "y_pos": 773.5176015514758 + }, + { + "id": 10581, + "x_pos": -439.0379787444499, + "y_pos": 843.5157200839312 + }, + { + "id": 10580, + "x_pos": -465.52980861702963, + "y_pos": 838.4771499992648 + }, + { + "id": 10579, + "x_pos": -347, + "y_pos": 820 + }, + { + "id": 10573, + "x_pos": -1232, + "y_pos": 1237.5 + }, + { + "id": 10339, + "x_pos": -455, + "y_pos": 747 + }, + { + "id": 10338, + "x_pos": -434, + "y_pos": 806 + }, + { + "id": 10337, + "x_pos": -673, + "y_pos": -472.5 + }, + { + "id": 10336, + "x_pos": 954.9040382469439, + "y_pos": 276.43696750701884 + }, + { + "id": 10335, + "x_pos": -1615.5, + "y_pos": 1130.5 + }, + { + "id": 10334, + "x_pos": -1585, + "y_pos": 1177.5 + }, + { + "id": 10333, + "x_pos": -1574.5, + "y_pos": 1250.5 + }, + { + "id": 10332, + "x_pos": -1287, + "y_pos": 1462 + }, + { + "id": 10331, + "x_pos": -1318.5, + "y_pos": 1503 + }, + { + "id": 10330, + "x_pos": -1337.5, + "y_pos": 1485.5 + }, + { + "id": 10138, + "x_pos": -1357.7000122070312, + "y_pos": 2343.367644812499 + }, + { + "id": 10134, + "x_pos": -1394.8000183105469, + "y_pos": 2365.0894591754413 + }, + { + "id": 10129, + "x_pos": -1481.7000122070312, + "y_pos": 2330.670414090642 + }, + { + "id": 10125, + "x_pos": -1444.3000183105469, + "y_pos": 2438.3958151745464 + }, + { + "id": 10122, + "x_pos": -1407.5999755859375, + "y_pos": 2478.864994868678 + }, + { + "id": 10115, + "x_pos": -1230.3999938964844, + "y_pos": 2277.973948065508 + }, + { + "id": 10114, + "x_pos": -1219.3000183105469, + "y_pos": 2274.5628986371985 + }, + { + "id": 10105, + "x_pos": -1313.3999938964844, + "y_pos": 2596.9792364968916 + }, + { + "id": 10102, + "x_pos": -997.1000061035156, + "y_pos": 2148.4608322393005 + }, + { + "id": 10100, + "x_pos": -1029.2000427246094, + "y_pos": 2130.683185756013 + }, + { + "id": 10090, + "x_pos": -1746.0000305175781, + "y_pos": 1345.0974777444462 + }, + { + "id": 10088, + "x_pos": -1822.2000122070312, + "y_pos": 1347.3384419679405 + }, + { + "id": 10087, + "x_pos": -1826.7000427246094, + "y_pos": 1332.0001949929328 + }, + { + "id": 10086, + "x_pos": -1911.3999633789062, + "y_pos": 1375.034781737685 + }, + { + "id": 10081, + "x_pos": -2138.0999755859375, + "y_pos": 1866.6396014222792 + }, + { + "id": 10060, + "x_pos": 612.5, + "y_pos": 1106 + }, + { + "id": 10056, + "x_pos": 656, + "y_pos": 1173 + }, + { + "id": 10052, + "x_pos": 698.5, + "y_pos": 1200 + }, + { + "id": 10040, + "x_pos": 856, + "y_pos": 1125 + }, + { + "id": 10032, + "x_pos": 901.5, + "y_pos": 1132.5 + }, + { + "id": 10028, + "x_pos": 951, + "y_pos": 1146 + }, + { + "id": 10027, + "x_pos": 980, + "y_pos": 1151 + }, + { + "id": 10022, + "x_pos": 1074, + "y_pos": 1134 + }, + { + "id": 10021, + "x_pos": 1071.5, + "y_pos": 1109 + }, + { + "id": 10016, + "x_pos": 1148.5, + "y_pos": 1106 + }, + { + "id": 10015, + "x_pos": 1071, + "y_pos": 1015.5 + }, + { + "id": 10014, + "x_pos": 1145, + "y_pos": 1016.5 + }, + { + "id": 9699, + "x_pos": 1176, + "y_pos": 1049 + }, + { + "id": 9694, + "x_pos": 1282, + "y_pos": 956.5 + }, + { + "id": 9693, + "x_pos": 1274.5, + "y_pos": 898 + }, + { + "id": 9690, + "x_pos": 1266.5, + "y_pos": 844.5 + }, + { + "id": 9688, + "x_pos": 1327.5, + "y_pos": 884.5 + }, + { + "id": 9687, + "x_pos": 1351.5, + "y_pos": 871 + }, + { + "id": 9686, + "x_pos": 1294, + "y_pos": 896.5 + }, + { + "id": 9545, + "x_pos": -1590.8543118285697, + "y_pos": 2016.1510691715166 + }, + { + "id": 9544, + "x_pos": -1543.4139316308565, + "y_pos": 2009.0756620305165 + }, + { + "id": 9543, + "x_pos": -1489.013270056655, + "y_pos": 2002.0829988330033 + }, + { + "id": 9542, + "x_pos": -1429.740148524756, + "y_pos": 2005.7605267346698 + }, + { + "id": 9541, + "x_pos": -1433.077691765066, + "y_pos": 1890.0787512105107 + }, + { + "id": 9540, + "x_pos": -1344.0230529332403, + "y_pos": 1907.628796248091 + }, + { + "id": 9539, + "x_pos": -1437.5735072468724, + "y_pos": 1690.0662014167838 + }, + { + "id": 9538, + "x_pos": -1353.4065229756939, + "y_pos": 1591.3528701763198 + }, + { + "id": 9537, + "x_pos": -1405.0242115427523, + "y_pos": 1332.1809414133932 + }, + { + "id": 9536, + "x_pos": -1426.5, + "y_pos": 1288.5 + }, + { + "id": 9535, + "x_pos": -1393.5, + "y_pos": 1373.5 + }, + { + "id": 9534, + "x_pos": -1337.2455678188103, + "y_pos": 1416.1697431359134 + }, + { + "id": 9533, + "x_pos": -1704.4642563148604, + "y_pos": 1049.4605663922016 + }, + { + "id": 9532, + "x_pos": -1784.5764912885352, + "y_pos": 1012.5727659242721 + }, + { + "id": 9531, + "x_pos": -1781.8556152030892, + "y_pos": 1012.345602816049 + }, + { + "id": 9530, + "x_pos": -1656.0809502013644, + "y_pos": 1079.8427067098041 + }, + { + "id": 9529, + "x_pos": -1661.3026837700468, + "y_pos": 1080.2135014348682 + }, + { + "id": 9410, + "x_pos": -2104.6436569433026, + "y_pos": 1308.5743105142692 + }, + { + "id": 9409, + "x_pos": -2094.5803328134343, + "y_pos": 1351.5582853930482 + }, + { + "id": 9408, + "x_pos": -2428.0750850160275, + "y_pos": 1878.1017269867189 + }, + { + "id": 9407, + "x_pos": -1980.6992904556828, + "y_pos": 1400.8725789516811 + }, + { + "id": 9406, + "x_pos": -714.5, + "y_pos": 1271.5 + }, + { + "id": 9405, + "x_pos": -717, + "y_pos": 1290.5 + }, + { + "id": 9404, + "x_pos": -786, + "y_pos": 1279 + }, + { + "id": 9403, + "x_pos": -844.5, + "y_pos": 1295 + }, + { + "id": 9402, + "x_pos": -768.5, + "y_pos": 1307 + }, + { + "id": 9401, + "x_pos": -500, + "y_pos": 1361.5 + }, + { + "id": 9400, + "x_pos": -706.5, + "y_pos": 1316 + }, + { + "id": 9398, + "x_pos": -567.5, + "y_pos": 1305.5 + }, + { + "id": 9395, + "x_pos": -699, + "y_pos": 1363.5 + }, + { + "id": 9392, + "x_pos": -812, + "y_pos": 1376 + }, + { + "id": 9389, + "x_pos": -408.5, + "y_pos": 1338 + }, + { + "id": 9382, + "x_pos": -852, + "y_pos": 1314 + }, + { + "id": 9381, + "x_pos": -720.5, + "y_pos": 1626 + }, + { + "id": 9374, + "x_pos": -722.5, + "y_pos": 1527.5 + }, + { + "id": 9371, + "x_pos": -716.5, + "y_pos": 1582.5 + }, + { + "id": 9365, + "x_pos": -635.5, + "y_pos": 1398.5 + }, + { + "id": 9363, + "x_pos": -413, + "y_pos": 1365 + }, + { + "id": 9358, + "x_pos": -442.5, + "y_pos": 1403 + }, + { + "id": 9340, + "x_pos": 325.3042272398725, + "y_pos": 118.98138785136962 + }, + { + "id": 9329, + "x_pos": -452.5, + "y_pos": 1201 + }, + { + "id": 9328, + "x_pos": -413, + "y_pos": 1167 + }, + { + "id": 9327, + "x_pos": -407.5, + "y_pos": 1138.5 + }, + { + "id": 9326, + "x_pos": -683, + "y_pos": 1085 + }, + { + "id": 9324, + "x_pos": -674, + "y_pos": 1067 + }, + { + "id": 9322, + "x_pos": -689.5, + "y_pos": 1083 + }, + { + "id": 9321, + "x_pos": -687.5, + "y_pos": 1089 + }, + { + "id": 9294, + "x_pos": 486, + "y_pos": -47.5 + }, + { + "id": 9290, + "x_pos": 634.5, + "y_pos": 45 + }, + { + "id": 9273, + "x_pos": 742.5, + "y_pos": -157.5 + }, + { + "id": 9263, + "x_pos": 637.5, + "y_pos": 69 + }, + { + "id": 9258, + "x_pos": 829.5, + "y_pos": -32 + }, + { + "id": 9254, + "x_pos": 716, + "y_pos": -1 + }, + { + "id": 9251, + "x_pos": 882, + "y_pos": -88 + }, + { + "id": 9196, + "x_pos": 380.5, + "y_pos": -360 + }, + { + "id": 9195, + "x_pos": 329, + "y_pos": -423.5 + }, + { + "id": 9194, + "x_pos": 344, + "y_pos": -364 + }, + { + "id": 9193, + "x_pos": 426.5, + "y_pos": -356.5 + }, + { + "id": 9192, + "x_pos": 353.5, + "y_pos": -305 + }, + { + "id": 9191, + "x_pos": 476, + "y_pos": -212.5 + }, + { + "id": 9190, + "x_pos": 526.5, + "y_pos": -213 + }, + { + "id": 9189, + "x_pos": 550, + "y_pos": -166 + }, + { + "id": 9188, + "x_pos": 596.5, + "y_pos": -152 + }, + { + "id": 9187, + "x_pos": 510.5, + "y_pos": -171.5 + }, + { + "id": 9186, + "x_pos": 412, + "y_pos": 7 + }, + { + "id": 9185, + "x_pos": 473, + "y_pos": -135 + }, + { + "id": 9184, + "x_pos": 361.5, + "y_pos": 40 + }, + { + "id": 9183, + "x_pos": 883, + "y_pos": -328 + }, + { + "id": 9156, + "x_pos": 645, + "y_pos": -252.5 + }, + { + "id": 9155, + "x_pos": 748, + "y_pos": -281.5 + }, + { + "id": 8881, + "x_pos": -639.0555649137214, + "y_pos": 1423.9427216795575 + }, + { + "id": 8880, + "x_pos": -481.1113507587979, + "y_pos": 1540.8320412596686 + }, + { + "id": 8879, + "x_pos": -611.8889312035271, + "y_pos": 1437.5 + }, + { + "id": 8878, + "x_pos": -663.9444350862786, + "y_pos": 1458.3873662167853 + }, + { + "id": 8877, + "x_pos": -599.574604825415, + "y_pos": 1487.588269143068 + }, + { + "id": 8876, + "x_pos": -648, + "y_pos": 1466.3339946229935 + }, + { + "id": 8875, + "x_pos": -452.66651164825544, + "y_pos": 1653.1660053770065 + }, + { + "id": 8874, + "x_pos": -674.0773830711014, + "y_pos": 1551.5771349721126 + }, + { + "id": 8873, + "x_pos": -669.7779234380232, + "y_pos": 1601.7213303341232 + }, + { + "id": 8872, + "x_pos": -653.5, + "y_pos": 1633.166035882662 + }, + { + "id": 8871, + "x_pos": -523.1110687964729, + "y_pos": 1467.2213608397788 + }, + { + "id": 8870, + "x_pos": -486.11106879647286, + "y_pos": 1662.8873662167853 + }, + { + "id": 8869, + "x_pos": -450.88893120352714, + "y_pos": 1712.5 + }, + { + "id": 8868, + "x_pos": -455.44443508627865, + "y_pos": 1712.1087575622196 + }, + { + "id": 8867, + "x_pos": -552.084963222911, + "y_pos": 1417.0945199057096 + }, + { + "id": 8866, + "x_pos": -427.83348835174456, + "y_pos": 1558.2766857968954 + }, + { + "id": 8865, + "x_pos": -353.33348835174456, + "y_pos": 1625.7767010497237 + }, + { + "id": 8817, + "x_pos": -487, + "y_pos": 1453.5553249571167 + }, + { + "id": 8815, + "x_pos": -127.5, + "y_pos": 2618.5 + }, + { + "id": 8814, + "x_pos": -84.5, + "y_pos": 2627 + }, + { + "id": 8808, + "x_pos": -676, + "y_pos": 1683.1660053770065 + }, + { + "id": 8807, + "x_pos": -387.3334273207747, + "y_pos": 1763.2213608397788 + }, + { + "id": 8806, + "x_pos": -302.8330843274807, + "y_pos": 1608.4446445372278 + }, + { + "id": 8804, + "x_pos": -663.4444961172485, + "y_pos": 1736.7766857968954 + }, + { + "id": 8787, + "x_pos": -588.1113507587979, + "y_pos": 1681.6106804198898 + }, + { + "id": 8782, + "x_pos": -637.7224195552717, + "y_pos": 1913.2213608397788 + }, + { + "id": 8780, + "x_pos": -60, + "y_pos": 2701.5553554627722 + }, + { + "id": 8771, + "x_pos": -23.888992234496072, + "y_pos": 2671.2766857968954 + }, + { + "id": 8767, + "x_pos": -311.9444961172485, + "y_pos": 2480.5553249571167 + }, + { + "id": 8764, + "x_pos": -137.88899223449607, + "y_pos": 2448.0553249571167 + }, + { + "id": 8743, + "x_pos": -1062.8202319578531, + "y_pos": 671.274683825779 + }, + { + "id": 8737, + "x_pos": -999.5187034679684, + "y_pos": 607.9451443489529 + }, + { + "id": 8736, + "x_pos": -969.3911305013203, + "y_pos": 579.7093199062465 + }, + { + "id": 8732, + "x_pos": -967.4662611451008, + "y_pos": 626.9721995458212 + }, + { + "id": 8731, + "x_pos": -916.1650883214543, + "y_pos": 552.9334930462746 + }, + { + "id": 8726, + "x_pos": -854.5, + "y_pos": 665 + }, + { + "id": 8725, + "x_pos": -847.5000152587891, + "y_pos": 579.7981540925507 + }, + { + "id": 8722, + "x_pos": -855, + "y_pos": 667.5 + }, + { + "id": 8580, + "x_pos": -2023.6665116482554, + "y_pos": 3306.053371593792 + }, + { + "id": 8579, + "x_pos": -1973, + "y_pos": 3342.5553249571167 + }, + { + "id": 8578, + "x_pos": -1789.111007765504, + "y_pos": 3270.3873662167853 + }, + { + "id": 8577, + "x_pos": -1620.055503882752, + "y_pos": 3192.666035882662 + }, + { + "id": 8576, + "x_pos": -1505.555503882752, + "y_pos": 3201.1640520136807 + }, + { + "id": 8575, + "x_pos": -1659.944496117248, + "y_pos": 3038.053371593792 + }, + { + "id": 8574, + "x_pos": -1653.4444350862786, + "y_pos": 3097.3873814696126 + }, + { + "id": 8573, + "x_pos": -1563.444496117248, + "y_pos": 3250.108727056564 + }, + { + "id": 8572, + "x_pos": -1531.7779234380232, + "y_pos": 3292.8873662167853 + }, + { + "id": 8571, + "x_pos": -1420.7779234380232, + "y_pos": 3186.2766857968954 + }, + { + "id": 8570, + "x_pos": -1769.944496117248, + "y_pos": 3341.9426606682464 + }, + { + "id": 8569, + "x_pos": -2037, + "y_pos": 2830.0553554627722 + }, + { + "id": 8568, + "x_pos": -1793.8334273207752, + "y_pos": 2904.553371593792 + }, + { + "id": 8567, + "x_pos": -1648.2768944581394, + "y_pos": 2912.3873662167853 + }, + { + "id": 8566, + "x_pos": -1749.111007765504, + "y_pos": 2929.5534020994473 + }, + { + "id": 8565, + "x_pos": -1642.110664772209, + "y_pos": 2917.051418230466 + }, + { + "id": 8564, + "x_pos": -1808.7779539535077, + "y_pos": 2956.8873662167853 + }, + { + "id": 8563, + "x_pos": -1657.888992234496, + "y_pos": 2739.11068041989 + }, + { + "id": 8562, + "x_pos": -2071.833427320775, + "y_pos": 3297.3873662167853 + }, + { + "id": 8561, + "x_pos": -1649.5, + "y_pos": 2921.5534020994473 + }, + { + "id": 8560, + "x_pos": -1405.1672586658142, + "y_pos": 3046 + }, + { + "id": 8559, + "x_pos": -1609.5003429932945, + "y_pos": 2950.553371593792 + }, + { + "id": 8558, + "x_pos": -1684.5, + "y_pos": 2783.1660053770065 + }, + { + "id": 8557, + "x_pos": -1416.1110077655035, + "y_pos": 3057.4427216795575 + }, + { + "id": 8556, + "x_pos": -1503.7224195552712, + "y_pos": 2964.7213608397788 + }, + { + "id": 8555, + "x_pos": -1569, + "y_pos": 2742.61068041989 + }, + { + "id": 8554, + "x_pos": -1482.8334273207752, + "y_pos": 3025.998046636674 + }, + { + "id": 8553, + "x_pos": -1436.1665726792248, + "y_pos": 2729.61068041989 + }, + { + "id": 8552, + "x_pos": -1317.2224195552712, + "y_pos": 2751.7213608397788 + }, + { + "id": 8551, + "x_pos": -1323, + "y_pos": 2720.5553249571167 + }, + { + "id": 8263, + "x_pos": -2096, + "y_pos": 3089 + }, + { + "id": 8262, + "x_pos": -2008, + "y_pos": 2857 + }, + { + "id": 8261, + "x_pos": -1963.5, + "y_pos": 2911.5 + }, + { + "id": 8260, + "x_pos": -2089, + "y_pos": 3160 + }, + { + "id": 8259, + "x_pos": -1804.9999389648438, + "y_pos": 3132.5 + }, + { + "id": 8258, + "x_pos": -1928.5, + "y_pos": 3154 + }, + { + "id": 8257, + "x_pos": -1747, + "y_pos": 3151.5 + }, + { + "id": 8256, + "x_pos": -1972, + "y_pos": 2970.5 + }, + { + "id": 8255, + "x_pos": -1863, + "y_pos": 2747.5 + }, + { + "id": 8254, + "x_pos": -1721, + "y_pos": 3049 + }, + { + "id": 8253, + "x_pos": -1614, + "y_pos": 3166 + }, + { + "id": 8252, + "x_pos": -1769.6107258031784, + "y_pos": 3211.6640520136807 + }, + { + "id": 8251, + "x_pos": -1686, + "y_pos": 3235 + }, + { + "id": 8250, + "x_pos": -1751.5, + "y_pos": 3084 + }, + { + "id": 8249, + "x_pos": -1531, + "y_pos": 3256 + }, + { + "id": 8248, + "x_pos": -1789.5, + "y_pos": 3043 + }, + { + "id": 8247, + "x_pos": -1791.5, + "y_pos": 2806.5 + }, + { + "id": 8246, + "x_pos": -1548.5, + "y_pos": 2748.5 + }, + { + "id": 8245, + "x_pos": -2030, + "y_pos": 3048 + }, + { + "id": 8244, + "x_pos": -1393, + "y_pos": 2807 + }, + { + "id": 8243, + "x_pos": -1896, + "y_pos": 2929 + }, + { + "id": 8242, + "x_pos": -1603.5, + "y_pos": 2754 + }, + { + "id": 8241, + "x_pos": -1346, + "y_pos": 2822 + }, + { + "id": 8240, + "x_pos": -2449, + "y_pos": 1851.5 + }, + { + "id": 8239, + "x_pos": -2483, + "y_pos": 1857.5 + }, + { + "id": 8238, + "x_pos": -2426, + "y_pos": 1358.5 + }, + { + "id": 8237, + "x_pos": -2350, + "y_pos": 1452 + }, + { + "id": 8236, + "x_pos": -2353.5, + "y_pos": 1449.5 + }, + { + "id": 8235, + "x_pos": -2435.5, + "y_pos": 1472 + }, + { + "id": 8234, + "x_pos": -2250.5, + "y_pos": 1543 + }, + { + "id": 8233, + "x_pos": -2246.5, + "y_pos": 1319.999984741211 + }, + { + "id": 8232, + "x_pos": -2275, + "y_pos": 1580.5 + }, + { + "id": 8231, + "x_pos": -2470.5, + "y_pos": 1404.5 + }, + { + "id": 8230, + "x_pos": -2516.5, + "y_pos": 1491 + }, + { + "id": 8229, + "x_pos": -2374, + "y_pos": 1519 + }, + { + "id": 8228, + "x_pos": -2283, + "y_pos": 1579 + }, + { + "id": 8227, + "x_pos": -1381.776551464845, + "y_pos": 2861.9960932733493 + }, + { + "id": 8226, + "x_pos": -2425.5, + "y_pos": 1830 + }, + { + "id": 8225, + "x_pos": -1947.5, + "y_pos": 3097.5 + }, + { + "id": 8224, + "x_pos": -2013.5, + "y_pos": 2151.5 + }, + { + "id": 8223, + "x_pos": -2119, + "y_pos": 3248.5 + }, + { + "id": 8222, + "x_pos": -2012, + "y_pos": 2180.5 + }, + { + "id": 8221, + "x_pos": -1720, + "y_pos": 2644.5 + }, + { + "id": 8220, + "x_pos": -2221.5, + "y_pos": 1594 + }, + { + "id": 8219, + "x_pos": -1597, + "y_pos": 3285 + }, + { + "id": 8218, + "x_pos": -1446.5, + "y_pos": 2874.5 + }, + { + "id": 8217, + "x_pos": -2405.5, + "y_pos": 1879.5 + }, + { + "id": 8216, + "x_pos": -1486, + "y_pos": 2814.5 + }, + { + "id": 8215, + "x_pos": -1364.5, + "y_pos": 2883 + }, + { + "id": 8214, + "x_pos": -2281, + "y_pos": 1576 + }, + { + "id": 8213, + "x_pos": -2283, + "y_pos": 1603.5 + }, + { + "id": 8212, + "x_pos": -2549.5, + "y_pos": 1586.5 + }, + { + "id": 8211, + "x_pos": -2365, + "y_pos": 1724.5 + }, + { + "id": 8210, + "x_pos": -2126, + "y_pos": 1625.5 + }, + { + "id": 8209, + "x_pos": -1369.5, + "y_pos": 2889.5 + }, + { + "id": 8208, + "x_pos": -1848, + "y_pos": 2861.5 + }, + { + "id": 8207, + "x_pos": -1367.5, + "y_pos": 2904.5 + }, + { + "id": 8206, + "x_pos": -2002, + "y_pos": 2219.5 + }, + { + "id": 8205, + "x_pos": -1881, + "y_pos": 2070.5 + }, + { + "id": 8204, + "x_pos": -1904, + "y_pos": 2214.499984741211 + }, + { + "id": 8203, + "x_pos": -1926, + "y_pos": 2229 + }, + { + "id": 8202, + "x_pos": -1977.5, + "y_pos": 2232.5 + }, + { + "id": 8201, + "x_pos": -2013.5, + "y_pos": 2224.5 + }, + { + "id": 8200, + "x_pos": -1956, + "y_pos": 2246.5 + }, + { + "id": 8199, + "x_pos": -2064.5, + "y_pos": 2266 + }, + { + "id": 8198, + "x_pos": -1891, + "y_pos": 2092.5 + }, + { + "id": 8197, + "x_pos": -2020.1665116482554, + "y_pos": 2885.828134533018 + }, + { + "id": 8196, + "x_pos": -1820, + "y_pos": 2119 + }, + { + "id": 8195, + "x_pos": -1372, + "y_pos": 2910.5 + }, + { + "id": 8194, + "x_pos": -1935, + "y_pos": 2259.999984741211 + }, + { + "id": 8193, + "x_pos": -1852.5, + "y_pos": 2051.5 + }, + { + "id": 8192, + "x_pos": -1823, + "y_pos": 2194 + }, + { + "id": 8191, + "x_pos": -1389.5, + "y_pos": 2956.5 + }, + { + "id": 8190, + "x_pos": -1785.5, + "y_pos": 2028 + }, + { + "id": 8189, + "x_pos": -1906.5, + "y_pos": 1784 + }, + { + "id": 8188, + "x_pos": -1899.5, + "y_pos": 1777 + }, + { + "id": 8187, + "x_pos": -2329, + "y_pos": 1648.5 + }, + { + "id": 8186, + "x_pos": -1643.055503882752, + "y_pos": 2805.54946486714 + }, + { + "id": 8185, + "x_pos": -2179.5, + "y_pos": 1639 + }, + { + "id": 8184, + "x_pos": -1799.5, + "y_pos": 1838.5 + }, + { + "id": 8183, + "x_pos": -1902.5, + "y_pos": 1777 + }, + { + "id": 8182, + "x_pos": -1788, + "y_pos": 2078.5 + }, + { + "id": 8181, + "x_pos": -1908.5, + "y_pos": 2278.5 + }, + { + "id": 8180, + "x_pos": -2119, + "y_pos": 2264 + }, + { + "id": 8179, + "x_pos": -2334.5, + "y_pos": 1643.5 + }, + { + "id": 8178, + "x_pos": -1983.5, + "y_pos": 2161 + }, + { + "id": 8177, + "x_pos": -1340, + "y_pos": 2913 + }, + { + "id": 8176, + "x_pos": -1840.5, + "y_pos": 2232 + }, + { + "id": 8175, + "x_pos": -1736.5, + "y_pos": 2040 + }, + { + "id": 8174, + "x_pos": -1788, + "y_pos": 2233.5 + }, + { + "id": 8173, + "x_pos": -2004, + "y_pos": 2288 + }, + { + "id": 8172, + "x_pos": -1925.5, + "y_pos": 2214 + }, + { + "id": 8171, + "x_pos": -2479, + "y_pos": 1646 + }, + { + "id": 8170, + "x_pos": -1470, + "y_pos": 2717.5 + }, + { + "id": 8169, + "x_pos": -1819, + "y_pos": 1829 + }, + { + "id": 8168, + "x_pos": -2390.5, + "y_pos": 1772 + }, + { + "id": 8167, + "x_pos": -2008, + "y_pos": 1674 + }, + { + "id": 8166, + "x_pos": -1789, + "y_pos": 2246.5 + }, + { + "id": 8165, + "x_pos": -1951.5, + "y_pos": 2298.5 + }, + { + "id": 8164, + "x_pos": -2188.5, + "y_pos": 2032.5 + }, + { + "id": 8163, + "x_pos": -1749.5, + "y_pos": 1838.5 + }, + { + "id": 8162, + "x_pos": -1898.5, + "y_pos": 1882 + }, + { + "id": 8161, + "x_pos": -1968.5, + "y_pos": 2095.5 + }, + { + "id": 8160, + "x_pos": -1920.5, + "y_pos": 1784 + }, + { + "id": 8159, + "x_pos": -2013, + "y_pos": 2462 + }, + { + "id": 8158, + "x_pos": -1812.5, + "y_pos": 1842 + }, + { + "id": 8157, + "x_pos": -1717, + "y_pos": 2054 + }, + { + "id": 8156, + "x_pos": -1873.5, + "y_pos": 1933.5 + }, + { + "id": 8155, + "x_pos": -2588, + "y_pos": 1503 + }, + { + "id": 8154, + "x_pos": -1866, + "y_pos": 2117.5 + }, + { + "id": 8153, + "x_pos": -1926, + "y_pos": 2127 + }, + { + "id": 8152, + "x_pos": -2090, + "y_pos": 2020.5 + }, + { + "id": 8151, + "x_pos": -2459, + "y_pos": 1888 + }, + { + "id": 8150, + "x_pos": -2104, + "y_pos": 1526 + }, + { + "id": 8149, + "x_pos": -2250.5, + "y_pos": 1326.5 + }, + { + "id": 8148, + "x_pos": -1914.5, + "y_pos": 2159 + }, + { + "id": 8147, + "x_pos": -1924.5, + "y_pos": 2316 + }, + { + "id": 8146, + "x_pos": -2061, + "y_pos": 2467 + }, + { + "id": 8145, + "x_pos": -1262.5, + "y_pos": 2911.5 + }, + { + "id": 8144, + "x_pos": -2034, + "y_pos": 1550.5 + }, + { + "id": 8143, + "x_pos": -2637, + "y_pos": 1540.5 + }, + { + "id": 8142, + "x_pos": -2465, + "y_pos": 1887.5 + }, + { + "id": 8141, + "x_pos": -2161.5, + "y_pos": 2105 + }, + { + "id": 8140, + "x_pos": -1887.5, + "y_pos": 2323.5 + }, + { + "id": 8139, + "x_pos": -2184.5, + "y_pos": 2028.5 + }, + { + "id": 8138, + "x_pos": -1741, + "y_pos": 2503 + }, + { + "id": 8137, + "x_pos": -1501, + "y_pos": 2680 + }, + { + "id": 8136, + "x_pos": -2502.5, + "y_pos": 2008.5 + }, + { + "id": 8135, + "x_pos": -2000, + "y_pos": 2123.5 + }, + { + "id": 8134, + "x_pos": -2362.5, + "y_pos": 2047 + }, + { + "id": 8133, + "x_pos": -1941.0000610351562, + "y_pos": 3273.000030517578 + }, + { + "id": 8132, + "x_pos": -1412, + "y_pos": 2977 + }, + { + "id": 8131, + "x_pos": -2232.5, + "y_pos": 2069.5 + }, + { + "id": 8130, + "x_pos": -1775, + "y_pos": 2656.5 + }, + { + "id": 8129, + "x_pos": -1590, + "y_pos": 2589 + }, + { + "id": 8128, + "x_pos": -1571.2220765619768, + "y_pos": 2827.658191923704 + }, + { + "id": 8127, + "x_pos": -1993.5, + "y_pos": 1659.5 + }, + { + "id": 8126, + "x_pos": -2400.5, + "y_pos": 2062.5 + }, + { + "id": 8125, + "x_pos": -1820, + "y_pos": 2313 + }, + { + "id": 8124, + "x_pos": -1359.5, + "y_pos": 2964.5 + }, + { + "id": 8123, + "x_pos": -1781, + "y_pos": 1843 + }, + { + "id": 8122, + "x_pos": -1913.5, + "y_pos": 2683 + }, + { + "id": 8121, + "x_pos": -1757.5, + "y_pos": 2746 + }, + { + "id": 8120, + "x_pos": -2050.5, + "y_pos": 1536 + }, + { + "id": 8119, + "x_pos": -2183, + "y_pos": 1689 + }, + { + "id": 8118, + "x_pos": -1981, + "y_pos": 2335 + }, + { + "id": 8117, + "x_pos": -1754, + "y_pos": 2558 + }, + { + "id": 8116, + "x_pos": -1290, + "y_pos": 2924.5 + }, + { + "id": 8115, + "x_pos": -1741.5, + "y_pos": 2088.5 + }, + { + "id": 8114, + "x_pos": -1832.5, + "y_pos": 2481.5 + }, + { + "id": 8113, + "x_pos": -2691, + "y_pos": 1704.5 + }, + { + "id": 8112, + "x_pos": -2048.5, + "y_pos": 2325 + }, + { + "id": 8111, + "x_pos": -2021, + "y_pos": 1703.5 + }, + { + "id": 8110, + "x_pos": -2557, + "y_pos": 1595 + }, + { + "id": 8109, + "x_pos": -2563, + "y_pos": 1741.5 + }, + { + "id": 8108, + "x_pos": -1729, + "y_pos": 2137.5 + }, + { + "id": 8107, + "x_pos": -1895.5, + "y_pos": 2251 + }, + { + "id": 8106, + "x_pos": -1957, + "y_pos": 2474 + }, + { + "id": 8105, + "x_pos": -1449.5, + "y_pos": 2695 + }, + { + "id": 8104, + "x_pos": -1307.5, + "y_pos": 2938.5 + }, + { + "id": 8103, + "x_pos": -996.5, + "y_pos": -633.5 + }, + { + "id": 8102, + "x_pos": -931, + "y_pos": -659.5 + }, + { + "id": 8101, + "x_pos": -972, + "y_pos": -515.5 + }, + { + "id": 8100, + "x_pos": -928.5, + "y_pos": -485.5 + }, + { + "id": 8099, + "x_pos": -780.5, + "y_pos": -512 + }, + { + "id": 8098, + "x_pos": -685, + "y_pos": -629.5 + }, + { + "id": 8097, + "x_pos": 91.5, + "y_pos": 376 + }, + { + "id": 8096, + "x_pos": 131, + "y_pos": 294 + }, + { + "id": 8095, + "x_pos": -631.5, + "y_pos": -442.5 + }, + { + "id": 8094, + "x_pos": -1173.5, + "y_pos": -641 + }, + { + "id": 8093, + "x_pos": 114, + "y_pos": 368 + }, + { + "id": 8092, + "x_pos": -732, + "y_pos": -428 + }, + { + "id": 8091, + "x_pos": -566, + "y_pos": -554 + }, + { + "id": 8090, + "x_pos": 161.5, + "y_pos": 375 + }, + { + "id": 8089, + "x_pos": -966, + "y_pos": -466 + }, + { + "id": 8088, + "x_pos": -627.5, + "y_pos": -408.5 + }, + { + "id": 8087, + "x_pos": -427, + "y_pos": -383.5 + }, + { + "id": 8086, + "x_pos": -590, + "y_pos": 336 + }, + { + "id": 8085, + "x_pos": -760, + "y_pos": -387 + }, + { + "id": 8084, + "x_pos": -804, + "y_pos": -514 + }, + { + "id": 8083, + "x_pos": -760.5, + "y_pos": -420 + }, + { + "id": 8082, + "x_pos": 4, + "y_pos": 551 + }, + { + "id": 8081, + "x_pos": -377, + "y_pos": -407 + }, + { + "id": 8080, + "x_pos": -393, + "y_pos": 515 + }, + { + "id": 8079, + "x_pos": 107.5, + "y_pos": 326.5 + }, + { + "id": 8078, + "x_pos": -732, + "y_pos": -375.5 + }, + { + "id": 8077, + "x_pos": -1028, + "y_pos": -313 + }, + { + "id": 8076, + "x_pos": -457.5, + "y_pos": 553 + }, + { + "id": 8075, + "x_pos": -605, + "y_pos": 366 + }, + { + "id": 8074, + "x_pos": -961.5, + "y_pos": -586 + }, + { + "id": 8073, + "x_pos": -1196, + "y_pos": -410 + }, + { + "id": 8072, + "x_pos": 37.5, + "y_pos": 409 + }, + { + "id": 8071, + "x_pos": -300, + "y_pos": 604 + }, + { + "id": 8070, + "x_pos": -452.5, + "y_pos": 569.5 + }, + { + "id": 8069, + "x_pos": -717, + "y_pos": -318.5 + }, + { + "id": 8068, + "x_pos": 94, + "y_pos": 611 + }, + { + "id": 8067, + "x_pos": -514.5, + "y_pos": -361 + }, + { + "id": 8066, + "x_pos": -506, + "y_pos": -251.5 + }, + { + "id": 8065, + "x_pos": 94.5, + "y_pos": 629 + }, + { + "id": 8064, + "x_pos": -835, + "y_pos": -295.5 + }, + { + "id": 8063, + "x_pos": -1098, + "y_pos": -252 + }, + { + "id": 8062, + "x_pos": 124.5, + "y_pos": 370 + }, + { + "id": 8061, + "x_pos": -974, + "y_pos": -187 + }, + { + "id": 8060, + "x_pos": -531, + "y_pos": -232 + }, + { + "id": 8059, + "x_pos": -1218.5, + "y_pos": -217.5 + }, + { + "id": 8058, + "x_pos": -1322.5, + "y_pos": -189.5 + }, + { + "id": 8057, + "x_pos": -1186.5, + "y_pos": -217 + }, + { + "id": 8056, + "x_pos": -593.5, + "y_pos": 336 + }, + { + "id": 8055, + "x_pos": -335.5, + "y_pos": -370 + }, + { + "id": 8054, + "x_pos": -599, + "y_pos": -212 + }, + { + "id": 8053, + "x_pos": 203, + "y_pos": 469.5 + }, + { + "id": 8052, + "x_pos": 168.5, + "y_pos": 351 + }, + { + "id": 8051, + "x_pos": 159.5, + "y_pos": 318 + }, + { + "id": 8050, + "x_pos": -1112.5, + "y_pos": -156 + }, + { + "id": 8049, + "x_pos": -431.5, + "y_pos": 490.5 + }, + { + "id": 8048, + "x_pos": -1161, + "y_pos": -139 + }, + { + "id": 8047, + "x_pos": -182.5, + "y_pos": 648 + }, + { + "id": 8046, + "x_pos": -376.5, + "y_pos": -204 + }, + { + "id": 8045, + "x_pos": -184.5, + "y_pos": 656.5 + }, + { + "id": 8044, + "x_pos": -417.5, + "y_pos": -183 + }, + { + "id": 8043, + "x_pos": -1090.5, + "y_pos": -391.5 + }, + { + "id": 8042, + "x_pos": -543, + "y_pos": -171 + }, + { + "id": 8041, + "x_pos": -680, + "y_pos": -154.5 + }, + { + "id": 8040, + "x_pos": 63, + "y_pos": 579 + }, + { + "id": 8039, + "x_pos": -325, + "y_pos": -142 + }, + { + "id": 8038, + "x_pos": -611.5, + "y_pos": 365.5 + }, + { + "id": 8037, + "x_pos": -862, + "y_pos": -281 + }, + { + "id": 8036, + "x_pos": -480.5, + "y_pos": -118.5 + }, + { + "id": 8035, + "x_pos": -77.5, + "y_pos": 21 + }, + { + "id": 8034, + "x_pos": -1097, + "y_pos": -113.5 + }, + { + "id": 8033, + "x_pos": -345, + "y_pos": 660 + }, + { + "id": 8032, + "x_pos": -252, + "y_pos": 29 + }, + { + "id": 8031, + "x_pos": -738, + "y_pos": 196.5 + }, + { + "id": 8030, + "x_pos": -19.5, + "y_pos": 109.5 + }, + { + "id": 8029, + "x_pos": -718.5, + "y_pos": 286 + }, + { + "id": 8028, + "x_pos": -417.5, + "y_pos": -119.5 + }, + { + "id": 8027, + "x_pos": -369.5, + "y_pos": -338 + }, + { + "id": 8026, + "x_pos": 23, + "y_pos": 651.5 + }, + { + "id": 8025, + "x_pos": -379, + "y_pos": 682.5 + }, + { + "id": 8024, + "x_pos": -285.5, + "y_pos": 731.5 + }, + { + "id": 8023, + "x_pos": 88, + "y_pos": 642.5 + }, + { + "id": 8022, + "x_pos": 198.5, + "y_pos": 565 + }, + { + "id": 8021, + "x_pos": -674.5, + "y_pos": 90.5 + }, + { + "id": 8020, + "x_pos": 593, + "y_pos": -640.5 + }, + { + "id": 8019, + "x_pos": 13, + "y_pos": -62.5 + }, + { + "id": 8018, + "x_pos": 623.5, + "y_pos": -651 + }, + { + "id": 8017, + "x_pos": 393, + "y_pos": -618.5 + }, + { + "id": 8016, + "x_pos": 908.5, + "y_pos": -635.5 + }, + { + "id": 8015, + "x_pos": 971, + "y_pos": -649 + }, + { + "id": 8014, + "x_pos": 852.5, + "y_pos": -619.5 + }, + { + "id": 8013, + "x_pos": 1049.5, + "y_pos": -608 + }, + { + "id": 8012, + "x_pos": 850, + "y_pos": -609 + }, + { + "id": 8011, + "x_pos": 745, + "y_pos": -591.5 + }, + { + "id": 8010, + "x_pos": 610, + "y_pos": -575 + }, + { + "id": 8009, + "x_pos": 740.5, + "y_pos": -559 + }, + { + "id": 8008, + "x_pos": 478, + "y_pos": -534 + }, + { + "id": 8007, + "x_pos": 447, + "y_pos": -485.5 + }, + { + "id": 8006, + "x_pos": -255, + "y_pos": 764.5 + }, + { + "id": 8005, + "x_pos": 1051, + "y_pos": -588 + }, + { + "id": 8004, + "x_pos": 156.5, + "y_pos": 451.5 + }, + { + "id": 8003, + "x_pos": 59.5, + "y_pos": 174.5 + }, + { + "id": 8002, + "x_pos": 919.5, + "y_pos": -585.5 + }, + { + "id": 8001, + "x_pos": 1106, + "y_pos": -588.5 + }, + { + "id": 8000, + "x_pos": 536.5, + "y_pos": -499.5 + }, + { + "id": 7999, + "x_pos": 506.5, + "y_pos": -489 + }, + { + "id": 7998, + "x_pos": 864.5, + "y_pos": -576 + }, + { + "id": 7997, + "x_pos": 694, + "y_pos": -538.5 + }, + { + "id": 7996, + "x_pos": 759, + "y_pos": -507 + }, + { + "id": 7995, + "x_pos": 700.5, + "y_pos": -493.5 + }, + { + "id": 7994, + "x_pos": 937, + "y_pos": -478 + }, + { + "id": 7993, + "x_pos": 544, + "y_pos": -476.5 + }, + { + "id": 7992, + "x_pos": 445, + "y_pos": -482.5 + }, + { + "id": 7991, + "x_pos": 454, + "y_pos": -422.5 + }, + { + "id": 7990, + "x_pos": 808.5, + "y_pos": -462 + }, + { + "id": 7989, + "x_pos": 775.5, + "y_pos": -432.5 + }, + { + "id": 7988, + "x_pos": 911.5, + "y_pos": -421 + }, + { + "id": 7987, + "x_pos": 1110, + "y_pos": -591 + }, + { + "id": 7986, + "x_pos": 353.5, + "y_pos": 467 + }, + { + "id": 7985, + "x_pos": 577, + "y_pos": -404 + }, + { + "id": 7984, + "x_pos": 906.5, + "y_pos": -421.5 + }, + { + "id": 7983, + "x_pos": 811.5, + "y_pos": -420 + }, + { + "id": 7982, + "x_pos": 662.5, + "y_pos": -377.5 + }, + { + "id": 7981, + "x_pos": 797, + "y_pos": -552.5 + }, + { + "id": 7980, + "x_pos": 1075, + "y_pos": -546.5 + }, + { + "id": 7979, + "x_pos": 1119.5, + "y_pos": -530.5 + }, + { + "id": 7978, + "x_pos": 927, + "y_pos": -417 + }, + { + "id": 7977, + "x_pos": 673, + "y_pos": -365.5 + }, + { + "id": 7976, + "x_pos": 590, + "y_pos": -389.5 + }, + { + "id": 7975, + "x_pos": 69, + "y_pos": 686 + }, + { + "id": 7974, + "x_pos": 836.5, + "y_pos": -336 + }, + { + "id": 7973, + "x_pos": 926.5, + "y_pos": -566.5 + }, + { + "id": 7972, + "x_pos": 875, + "y_pos": -559 + }, + { + "id": 7971, + "x_pos": 935.5, + "y_pos": -519.5 + }, + { + "id": 7970, + "x_pos": 979, + "y_pos": -509.5 + }, + { + "id": 7969, + "x_pos": 782, + "y_pos": -379.5 + }, + { + "id": 7968, + "x_pos": -406, + "y_pos": -316 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/fe24f3f4a006b643db66d94ab6699292_7138432858176083519.png" + }, + "201": { + "name": "Seagrass", + "clear_name": "Seagrass", + "points": [ + { + "id": 23496, + "x_pos": 1623.3359926882067, + "y_pos": 7279.9469659260085 + }, + { + "id": 23495, + "x_pos": 1626.6693212193031, + "y_pos": 7276.276982878988 + }, + { + "id": 23491, + "x_pos": 1698.8915774960979, + "y_pos": 7352.970288517472 + }, + { + "id": 23490, + "x_pos": 1700.8360456677237, + "y_pos": 7349.177280713122 + }, + { + "id": 23489, + "x_pos": 1930.5017009213325, + "y_pos": 7325.822768166423 + }, + { + "id": 23488, + "x_pos": 1925.5017233834078, + "y_pos": 7322.820046433786 + }, + { + "id": 23482, + "x_pos": 1815.7799702571137, + "y_pos": 7317.398600952101 + }, + { + "id": 23481, + "x_pos": 1816.558892697114, + "y_pos": 7313.681377053885 + }, + { + "id": 21519, + "x_pos": 2309, + "y_pos": 8631.72307928569 + }, + { + "id": 21518, + "x_pos": 2302.7000122070312, + "y_pos": 8636.208389333142 + }, + { + "id": 21517, + "x_pos": 2041.6000061035156, + "y_pos": 8828.01931520118 + }, + { + "id": 21516, + "x_pos": 2035.8999938964844, + "y_pos": 8826.821568436511 + }, + { + "id": 21515, + "x_pos": 2024.9000244140625, + "y_pos": 8829.107404972172 + }, + { + "id": 19447, + "x_pos": 1624.7999877929688, + "y_pos": 7400.899993896484 + }, + { + "id": 19446, + "x_pos": 1627.8000183105469, + "y_pos": 7401.200012207031 + }, + { + "id": 19147, + "x_pos": 2544, + "y_pos": 8397.5 + }, + { + "id": 19146, + "x_pos": 2546, + "y_pos": 8408.5 + }, + { + "id": 19145, + "x_pos": 2464.5, + "y_pos": 8599 + }, + { + "id": 19144, + "x_pos": 2467.5, + "y_pos": 8598 + }, + { + "id": 19143, + "x_pos": 2468, + "y_pos": 8601 + }, + { + "id": 19142, + "x_pos": 1844.5, + "y_pos": 9111 + }, + { + "id": 19141, + "x_pos": 1856, + "y_pos": 9115 + }, + { + "id": 19140, + "x_pos": 1860, + "y_pos": 9112.5 + }, + { + "id": 19139, + "x_pos": 1845.5, + "y_pos": 9110.5 + }, + { + "id": 19138, + "x_pos": 1820, + "y_pos": 9090 + }, + { + "id": 19137, + "x_pos": 1822, + "y_pos": 9091.5 + }, + { + "id": 19136, + "x_pos": 1823, + "y_pos": 9089 + }, + { + "id": 19135, + "x_pos": 1777.5, + "y_pos": 9044 + }, + { + "id": 19134, + "x_pos": 1782.5, + "y_pos": 9046 + }, + { + "id": 19133, + "x_pos": 1780.5, + "y_pos": 9034 + }, + { + "id": 19132, + "x_pos": 1794.5, + "y_pos": 9004 + }, + { + "id": 19131, + "x_pos": 1793, + "y_pos": 9005 + }, + { + "id": 19130, + "x_pos": 1838.5, + "y_pos": 8924 + }, + { + "id": 19129, + "x_pos": 1836.5, + "y_pos": 8924 + }, + { + "id": 19128, + "x_pos": 1827, + "y_pos": 8928 + }, + { + "id": 19127, + "x_pos": 1876.5, + "y_pos": 8921.5 + }, + { + "id": 19126, + "x_pos": 1880, + "y_pos": 8921.5 + }, + { + "id": 19125, + "x_pos": 1948, + "y_pos": 8946.5 + }, + { + "id": 19124, + "x_pos": 1948, + "y_pos": 8947.5 + }, + { + "id": 19122, + "x_pos": 1933, + "y_pos": 8913.5 + }, + { + "id": 19121, + "x_pos": 1932.5, + "y_pos": 8915.5 + }, + { + "id": 19119, + "x_pos": 1963.5, + "y_pos": 8890.5 + }, + { + "id": 19118, + "x_pos": 1963, + "y_pos": 8891.5 + }, + { + "id": 19117, + "x_pos": 1959, + "y_pos": 8895.5 + }, + { + "id": 19116, + "x_pos": 1917, + "y_pos": 8857 + }, + { + "id": 19113, + "x_pos": 1916, + "y_pos": 8857 + }, + { + "id": 19111, + "x_pos": 1918, + "y_pos": 8858.5 + }, + { + "id": 19110, + "x_pos": 1963.5, + "y_pos": 8812 + }, + { + "id": 19108, + "x_pos": 1964, + "y_pos": 8814.5 + }, + { + "id": 19107, + "x_pos": 1732, + "y_pos": 8819.5 + }, + { + "id": 19106, + "x_pos": 1721.5, + "y_pos": 8816.5 + }, + { + "id": 19104, + "x_pos": 2018.5, + "y_pos": 8374 + }, + { + "id": 19102, + "x_pos": 2019.5, + "y_pos": 8375.5 + }, + { + "id": 19101, + "x_pos": 1624, + "y_pos": 8670 + }, + { + "id": 19100, + "x_pos": 1627, + "y_pos": 8668 + }, + { + "id": 19098, + "x_pos": 1674, + "y_pos": 8609.5 + }, + { + "id": 19096, + "x_pos": 1673, + "y_pos": 8612.5 + }, + { + "id": 19094, + "x_pos": 1596, + "y_pos": 8543.5 + }, + { + "id": 19093, + "x_pos": 1601, + "y_pos": 8546 + }, + { + "id": 19092, + "x_pos": 1635.5, + "y_pos": 8543 + }, + { + "id": 19090, + "x_pos": 1671, + "y_pos": 8474 + }, + { + "id": 19088, + "x_pos": 1673.5, + "y_pos": 8471.5 + }, + { + "id": 19086, + "x_pos": 1704.5, + "y_pos": 8373.5 + }, + { + "id": 19084, + "x_pos": 1708, + "y_pos": 8374 + }, + { + "id": 18510, + "x_pos": 3864.5, + "y_pos": 5092.5 + }, + { + "id": 18509, + "x_pos": 3866, + "y_pos": 5098 + }, + { + "id": 18508, + "x_pos": 3688, + "y_pos": 5187.5 + }, + { + "id": 18507, + "x_pos": 3905.5, + "y_pos": 4740 + }, + { + "id": 18506, + "x_pos": 3918.5, + "y_pos": 4779.5 + }, + { + "id": 18505, + "x_pos": 3949.5, + "y_pos": 4798.5 + }, + { + "id": 18504, + "x_pos": 3940, + "y_pos": 4821 + }, + { + "id": 18503, + "x_pos": 3409, + "y_pos": 4593 + }, + { + "id": 18502, + "x_pos": 3389.5, + "y_pos": 4597 + }, + { + "id": 18501, + "x_pos": 3402.5, + "y_pos": 4595 + }, + { + "id": 18500, + "x_pos": 3478, + "y_pos": 4262.5 + }, + { + "id": 18499, + "x_pos": 3472.5, + "y_pos": 4264.5 + }, + { + "id": 18498, + "x_pos": 3494, + "y_pos": 4264 + }, + { + "id": 18497, + "x_pos": 3140, + "y_pos": 4684.5 + }, + { + "id": 18496, + "x_pos": 3138.5, + "y_pos": 4700 + }, + { + "id": 18495, + "x_pos": 3251.5, + "y_pos": 5174.5 + }, + { + "id": 18494, + "x_pos": 3203, + "y_pos": 5594.5 + }, + { + "id": 18493, + "x_pos": 3254, + "y_pos": 5178 + }, + { + "id": 18492, + "x_pos": 3204, + "y_pos": 5591 + }, + { + "id": 18491, + "x_pos": 3138.5, + "y_pos": 5585 + }, + { + "id": 18468, + "x_pos": 2988.5, + "y_pos": 6788.5 + }, + { + "id": 18467, + "x_pos": 3003.5, + "y_pos": 6805.5 + }, + { + "id": 18464, + "x_pos": 3001.5, + "y_pos": 6858.5 + }, + { + "id": 18462, + "x_pos": 3072, + "y_pos": 6890.5 + }, + { + "id": 18461, + "x_pos": 3064.5, + "y_pos": 6890.5 + }, + { + "id": 18460, + "x_pos": 3932.5, + "y_pos": 6833.5 + }, + { + "id": 18459, + "x_pos": 3941, + "y_pos": 6871 + }, + { + "id": 18458, + "x_pos": 3954.5, + "y_pos": 6880.5 + }, + { + "id": 18457, + "x_pos": 3796.5, + "y_pos": 6894.5 + }, + { + "id": 18456, + "x_pos": 3768, + "y_pos": 6936 + }, + { + "id": 18455, + "x_pos": 3794.5, + "y_pos": 6995.5 + }, + { + "id": 18454, + "x_pos": 3801, + "y_pos": 7002.5 + }, + { + "id": 18453, + "x_pos": 3704.5, + "y_pos": 6794.5 + }, + { + "id": 18452, + "x_pos": 3690.5, + "y_pos": 6795.5 + }, + { + "id": 18451, + "x_pos": 3622, + "y_pos": 6824.5 + }, + { + "id": 18450, + "x_pos": 3630, + "y_pos": 6834.5 + }, + { + "id": 18447, + "x_pos": 3380.5, + "y_pos": 6898 + }, + { + "id": 18446, + "x_pos": 3376.5, + "y_pos": 6931 + }, + { + "id": 18445, + "x_pos": 3373, + "y_pos": 6896 + }, + { + "id": 18444, + "x_pos": 3273.5, + "y_pos": 6919.5 + }, + { + "id": 18443, + "x_pos": 3386.5, + "y_pos": 6927.5 + }, + { + "id": 18442, + "x_pos": 3186, + "y_pos": 7042.5 + }, + { + "id": 18441, + "x_pos": 3175.5, + "y_pos": 7048 + }, + { + "id": 18440, + "x_pos": 3155.5, + "y_pos": 7114.5 + }, + { + "id": 18439, + "x_pos": 3130, + "y_pos": 7200 + }, + { + "id": 18438, + "x_pos": 3044.5, + "y_pos": 7218.5 + }, + { + "id": 18437, + "x_pos": 3056.5, + "y_pos": 7212 + }, + { + "id": 18436, + "x_pos": 3249, + "y_pos": 7250.5 + }, + { + "id": 18435, + "x_pos": 3262.5, + "y_pos": 7255.5 + }, + { + "id": 18434, + "x_pos": 3512, + "y_pos": 7231 + }, + { + "id": 18433, + "x_pos": 3461.5, + "y_pos": 7242 + }, + { + "id": 18432, + "x_pos": 3490, + "y_pos": 7239 + }, + { + "id": 18431, + "x_pos": 3580, + "y_pos": 7209.5 + }, + { + "id": 18429, + "x_pos": 3636, + "y_pos": 7173 + }, + { + "id": 18428, + "x_pos": 3587.5, + "y_pos": 7190.5 + }, + { + "id": 18427, + "x_pos": 3652.5, + "y_pos": 7165.5 + }, + { + "id": 18426, + "x_pos": 4058.5, + "y_pos": 7186.5 + }, + { + "id": 16952, + "x_pos": 4000.5, + "y_pos": 7074 + }, + { + "id": 16951, + "x_pos": 4031, + "y_pos": 7106 + }, + { + "id": 16950, + "x_pos": 4094.5, + "y_pos": 7103.5 + }, + { + "id": 16949, + "x_pos": 4085.5, + "y_pos": 7107 + }, + { + "id": 16948, + "x_pos": 4067.5, + "y_pos": 7218.5 + }, + { + "id": 16947, + "x_pos": 4064.5, + "y_pos": 7223 + }, + { + "id": 16946, + "x_pos": 4056.5, + "y_pos": 7208.5 + }, + { + "id": 16945, + "x_pos": 4010, + "y_pos": 7196 + }, + { + "id": 16944, + "x_pos": 4008, + "y_pos": 7202.5 + }, + { + "id": 16943, + "x_pos": 3866, + "y_pos": 7220.5 + }, + { + "id": 16942, + "x_pos": 3865, + "y_pos": 7227.5 + }, + { + "id": 16941, + "x_pos": 3869, + "y_pos": 7065 + }, + { + "id": 16940, + "x_pos": 3869, + "y_pos": 7071 + }, + { + "id": 16939, + "x_pos": 3793, + "y_pos": 7063.805397025419 + }, + { + "id": 16938, + "x_pos": 3744.9000244140625, + "y_pos": 7131.699080127784 + }, + { + "id": 16937, + "x_pos": 3887.1000061035156, + "y_pos": 6928.5 + }, + { + "id": 16936, + "x_pos": 3891, + "y_pos": 6937.701364532339 + }, + { + "id": 16935, + "x_pos": 3849.7000122070312, + "y_pos": 6834.4333260736585 + }, + { + "id": 16934, + "x_pos": 3797, + "y_pos": 6771.5 + }, + { + "id": 16933, + "x_pos": 3808.5, + "y_pos": 6773.5 + }, + { + "id": 16932, + "x_pos": 3802, + "y_pos": 6776.5 + }, + { + "id": 16931, + "x_pos": 3744.5, + "y_pos": 6777.5 + }, + { + "id": 16930, + "x_pos": 3731.5, + "y_pos": 6781.5 + }, + { + "id": 16929, + "x_pos": 3513.5, + "y_pos": 6723.5 + }, + { + "id": 16928, + "x_pos": 3449, + "y_pos": 6791 + }, + { + "id": 16927, + "x_pos": 3514.5, + "y_pos": 6693 + }, + { + "id": 16926, + "x_pos": 3244.5, + "y_pos": 6633.5 + }, + { + "id": 16925, + "x_pos": 3247, + "y_pos": 6638 + }, + { + "id": 16924, + "x_pos": 3238.5, + "y_pos": 6639 + }, + { + "id": 16923, + "x_pos": 3242.5, + "y_pos": 6650.5 + }, + { + "id": 16922, + "x_pos": 3083.5, + "y_pos": 6485.5 + }, + { + "id": 16921, + "x_pos": 3090, + "y_pos": 6493 + }, + { + "id": 16920, + "x_pos": 3088.5, + "y_pos": 6510 + }, + { + "id": 16919, + "x_pos": 3054.5, + "y_pos": 6955 + }, + { + "id": 16918, + "x_pos": 3053, + "y_pos": 6958 + }, + { + "id": 16917, + "x_pos": 3045, + "y_pos": 6963.5 + }, + { + "id": 16916, + "x_pos": 3014, + "y_pos": 7005 + }, + { + "id": 16915, + "x_pos": 2907, + "y_pos": 7092 + }, + { + "id": 16914, + "x_pos": 2898, + "y_pos": 6998 + }, + { + "id": 16913, + "x_pos": 2889, + "y_pos": 7000.5 + }, + { + "id": 16912, + "x_pos": 2871.5, + "y_pos": 7051.5 + }, + { + "id": 16911, + "x_pos": 2801.5, + "y_pos": 7000 + }, + { + "id": 16910, + "x_pos": 2808.5, + "y_pos": 6999.5 + }, + { + "id": 16909, + "x_pos": 2832, + "y_pos": 7002 + }, + { + "id": 16908, + "x_pos": 2994, + "y_pos": 7097 + }, + { + "id": 16907, + "x_pos": 2927.5, + "y_pos": 7113 + }, + { + "id": 16906, + "x_pos": 2944, + "y_pos": 7116.5 + }, + { + "id": 16849, + "x_pos": 3286.5, + "y_pos": 7110.5 + }, + { + "id": 16848, + "x_pos": 3288.5, + "y_pos": 7116.5 + }, + { + "id": 16847, + "x_pos": 3305, + "y_pos": 7177.5 + }, + { + "id": 16846, + "x_pos": 3306, + "y_pos": 7182 + }, + { + "id": 16845, + "x_pos": 3169, + "y_pos": 7291 + }, + { + "id": 16844, + "x_pos": 3161, + "y_pos": 7290.5 + }, + { + "id": 16843, + "x_pos": 3153.5, + "y_pos": 7290 + }, + { + "id": 16842, + "x_pos": 580, + "y_pos": 6056.303143172832 + }, + { + "id": 16841, + "x_pos": 633.7000122070312, + "y_pos": 6100.900475212093 + }, + { + "id": 16840, + "x_pos": 629.5, + "y_pos": 6103.633162577633 + }, + { + "id": 16839, + "x_pos": 557.2000122070312, + "y_pos": 6061.305427577388 + }, + { + "id": 16838, + "x_pos": 484.4999694824219, + "y_pos": 6076.002253852586 + }, + { + "id": 16837, + "x_pos": 478.70001220703125, + "y_pos": 6079 + }, + { + "id": 16836, + "x_pos": 415.0999755859375, + "y_pos": 6188.597270935321 + }, + { + "id": 16835, + "x_pos": 423.20001220703125, + "y_pos": 6178.402698512709 + }, + { + "id": 16834, + "x_pos": 241.79998779296875, + "y_pos": 5959.599555339877 + }, + { + "id": 16833, + "x_pos": 239.60000610351562, + "y_pos": 5963.800889320246 + }, + { + "id": 16832, + "x_pos": 267.6000061035156, + "y_pos": 5973.104063045048 + }, + { + "id": 16831, + "x_pos": 274.1000061035156, + "y_pos": 5976.300919872216 + }, + { + "id": 16830, + "x_pos": 125.30001831054688, + "y_pos": 5816.832065068358 + }, + { + "id": 16829, + "x_pos": 237.20001220703125, + "y_pos": 5972.604063045048 + }, + { + "id": 16828, + "x_pos": 130.70001220703125, + "y_pos": 5819.735728146285 + }, + { + "id": 16827, + "x_pos": -221.39999389648438, + "y_pos": 5863.203587832957 + }, + { + "id": 16826, + "x_pos": -229.79998779296875, + "y_pos": 5870.541318084748 + }, + { + "id": 16825, + "x_pos": -297.4000244140625, + "y_pos": 5924.909460070468 + }, + { + "id": 16824, + "x_pos": -294.70001220703125, + "y_pos": 5928.900444660123 + }, + { + "id": 16823, + "x_pos": -286.5, + "y_pos": 5926.891429249779 + }, + { + "id": 16822, + "x_pos": 84.5, + "y_pos": 6442.798666019629 + }, + { + "id": 16821, + "x_pos": 77.89999389648438, + "y_pos": 6442.803143172832 + }, + { + "id": 16820, + "x_pos": -35.5, + "y_pos": 6421.400444660123 + }, + { + "id": 15098, + "x_pos": 1240.9004764030833, + "y_pos": 6018.70485592066 + }, + { + "id": 15097, + "x_pos": 1238.6019361667231, + "y_pos": 6020.003046411935 + }, + { + "id": 15095, + "x_pos": 1078.9686365925154, + "y_pos": 6126.987799070224 + }, + { + "id": 15094, + "x_pos": 1077.1019361667231, + "y_pos": 6126.207902332595 + }, + { + "id": 15093, + "x_pos": 1077, + "y_pos": 6129.695747248914 + }, + { + "id": 15091, + "x_pos": 1066.803365375973, + "y_pos": 5973.409711841319 + }, + { + "id": 15090, + "x_pos": 1060.3033959303639, + "y_pos": 5972.81643839883 + }, + { + "id": 14883, + "x_pos": 1582.1049660486324, + "y_pos": 5804.70596163538 + }, + { + "id": 14881, + "x_pos": 1581.4021195795258, + "y_pos": 5806.3032218623175 + }, + { + "id": 14646, + "x_pos": 1324.7985101489485, + "y_pos": 5826.4187574271655 + }, + { + "id": 14645, + "x_pos": 1329.3979829759983, + "y_pos": 5827.640721440403 + }, + { + "id": 14636, + "x_pos": 1315.8954693349797, + "y_pos": 5841.506864708901 + }, + { + "id": 14628, + "x_pos": 1187.7984795930151, + "y_pos": 5950.405028009362 + }, + { + "id": 14627, + "x_pos": 906.3999633789062, + "y_pos": 5965.399978637695 + }, + { + "id": 14150, + "x_pos": 2718.5, + "y_pos": 4440 + }, + { + "id": 14149, + "x_pos": 2696.5, + "y_pos": 4452.5 + }, + { + "id": 14148, + "x_pos": 2695.5, + "y_pos": 4459.5 + }, + { + "id": 14147, + "x_pos": 2726, + "y_pos": 4549.5 + }, + { + "id": 14045, + "x_pos": 3559, + "y_pos": 5251 + }, + { + "id": 14044, + "x_pos": 3602, + "y_pos": 5193.5 + }, + { + "id": 14043, + "x_pos": 3617, + "y_pos": 5195.5 + }, + { + "id": 14040, + "x_pos": 3778.5, + "y_pos": 5189 + }, + { + "id": 14039, + "x_pos": 3795, + "y_pos": 5200 + }, + { + "id": 14038, + "x_pos": 3792.5, + "y_pos": 5200.5 + }, + { + "id": 13812, + "x_pos": 3179.5, + "y_pos": 4745.5 + }, + { + "id": 13811, + "x_pos": 3182, + "y_pos": 4747 + }, + { + "id": 13136, + "x_pos": 4221, + "y_pos": 4565.5 + }, + { + "id": 13135, + "x_pos": 4209.5, + "y_pos": 4566.5 + }, + { + "id": 13134, + "x_pos": 4203, + "y_pos": 4569.5 + }, + { + "id": 13133, + "x_pos": 4211.5, + "y_pos": 4497.5 + }, + { + "id": 13132, + "x_pos": 4153, + "y_pos": 4518.5 + }, + { + "id": 13131, + "x_pos": 4161, + "y_pos": 4513 + }, + { + "id": 13130, + "x_pos": 4052.5, + "y_pos": 4801 + }, + { + "id": 13129, + "x_pos": 4050, + "y_pos": 4776.5 + }, + { + "id": 13128, + "x_pos": 4015, + "y_pos": 4759 + }, + { + "id": 13127, + "x_pos": 3985.5, + "y_pos": 4745 + }, + { + "id": 13126, + "x_pos": 4021.5, + "y_pos": 4700 + }, + { + "id": 13125, + "x_pos": 4018, + "y_pos": 4654 + }, + { + "id": 13124, + "x_pos": 3992.5, + "y_pos": 4679.5 + }, + { + "id": 13123, + "x_pos": 3935, + "y_pos": 4774 + }, + { + "id": 13122, + "x_pos": 3869.5, + "y_pos": 4757 + }, + { + "id": 13121, + "x_pos": 3851, + "y_pos": 4759.5 + }, + { + "id": 13120, + "x_pos": 3849.5, + "y_pos": 4756.5 + }, + { + "id": 13119, + "x_pos": 3789.5, + "y_pos": 4696.5 + }, + { + "id": 13118, + "x_pos": 3789, + "y_pos": 4701 + }, + { + "id": 13117, + "x_pos": 3785, + "y_pos": 4710.5 + }, + { + "id": 13116, + "x_pos": 3735.5, + "y_pos": 4681 + }, + { + "id": 13115, + "x_pos": 3623, + "y_pos": 4605.5 + }, + { + "id": 13114, + "x_pos": 3360.5, + "y_pos": 4736.5 + }, + { + "id": 13113, + "x_pos": 3361, + "y_pos": 4743.5 + }, + { + "id": 13076, + "x_pos": 3360.5, + "y_pos": 4759.5 + }, + { + "id": 13072, + "x_pos": 3360.5, + "y_pos": 4768 + }, + { + "id": 13069, + "x_pos": 3356.5, + "y_pos": 4773 + }, + { + "id": 13062, + "x_pos": 3259, + "y_pos": 4956 + }, + { + "id": 13059, + "x_pos": 3262, + "y_pos": 4956.5 + }, + { + "id": 13055, + "x_pos": 3236, + "y_pos": 4941 + }, + { + "id": 13052, + "x_pos": 3192, + "y_pos": 4920 + }, + { + "id": 13051, + "x_pos": 3153.5, + "y_pos": 4946.5 + }, + { + "id": 13048, + "x_pos": 3150.5, + "y_pos": 4937 + }, + { + "id": 13043, + "x_pos": 3527, + "y_pos": 5279.5 + }, + { + "id": 13037, + "x_pos": 3527, + "y_pos": 5285.5 + }, + { + "id": 13033, + "x_pos": 3529, + "y_pos": 5285 + }, + { + "id": 13029, + "x_pos": 4024, + "y_pos": 5461 + }, + { + "id": 13025, + "x_pos": 4018, + "y_pos": 5470 + }, + { + "id": 13021, + "x_pos": 3887, + "y_pos": 5465 + }, + { + "id": 13018, + "x_pos": 3869, + "y_pos": 5479.5 + }, + { + "id": 13014, + "x_pos": 4023.5, + "y_pos": 5565 + }, + { + "id": 13011, + "x_pos": 4023.5, + "y_pos": 5569.5 + }, + { + "id": 13009, + "x_pos": 3932.5, + "y_pos": 5675.5 + }, + { + "id": 13008, + "x_pos": 3919.5, + "y_pos": 5678.5 + }, + { + "id": 13007, + "x_pos": 3912, + "y_pos": 5676.5 + }, + { + "id": 13006, + "x_pos": 3596, + "y_pos": 5507 + }, + { + "id": 13005, + "x_pos": 3590.5, + "y_pos": 5504 + }, + { + "id": 13004, + "x_pos": 3492.5, + "y_pos": 5429.5 + }, + { + "id": 13003, + "x_pos": 3466, + "y_pos": 5381 + }, + { + "id": 13002, + "x_pos": 3456, + "y_pos": 5365.5 + }, + { + "id": 13001, + "x_pos": 3428, + "y_pos": 5338.5 + }, + { + "id": 13000, + "x_pos": 3414, + "y_pos": 5330 + }, + { + "id": 12999, + "x_pos": 3366.5, + "y_pos": 5321.5 + }, + { + "id": 12998, + "x_pos": 3210, + "y_pos": 5249 + }, + { + "id": 12997, + "x_pos": 3179, + "y_pos": 5485.5 + }, + { + "id": 12996, + "x_pos": 3170, + "y_pos": 5492 + }, + { + "id": 12995, + "x_pos": 2842, + "y_pos": 5500 + }, + { + "id": 12994, + "x_pos": 2671, + "y_pos": 5477.5 + }, + { + "id": 12993, + "x_pos": 2690.5, + "y_pos": 5472 + }, + { + "id": 12992, + "x_pos": 2673, + "y_pos": 5482.5 + }, + { + "id": 12991, + "x_pos": 2689.5, + "y_pos": 5485 + }, + { + "id": 12990, + "x_pos": 2656, + "y_pos": 5738.5 + }, + { + "id": 12989, + "x_pos": 2744, + "y_pos": 6045.5 + }, + { + "id": 12988, + "x_pos": 2737.5, + "y_pos": 6043.5 + }, + { + "id": 12987, + "x_pos": 2727.5, + "y_pos": 6039 + }, + { + "id": 12970, + "x_pos": 2720, + "y_pos": 6034.5 + }, + { + "id": 12965, + "x_pos": 2701, + "y_pos": 6097.5 + }, + { + "id": 12960, + "x_pos": 2708, + "y_pos": 6099.5 + }, + { + "id": 12950, + "x_pos": 2693.5, + "y_pos": 6098.5 + }, + { + "id": 12945, + "x_pos": 2683.5, + "y_pos": 6096 + }, + { + "id": 12929, + "x_pos": 2652, + "y_pos": 6076 + }, + { + "id": 12926, + "x_pos": 2662, + "y_pos": 6080.5 + }, + { + "id": 12914, + "x_pos": 2650.5, + "y_pos": 6087.5 + }, + { + "id": 12903, + "x_pos": 2643.5, + "y_pos": 6080.5 + }, + { + "id": 12891, + "x_pos": 2356, + "y_pos": 6351 + }, + { + "id": 12869, + "x_pos": 2348, + "y_pos": 6343 + }, + { + "id": 12842, + "x_pos": 2337.5, + "y_pos": 6334 + }, + { + "id": 12787, + "x_pos": 2540.5, + "y_pos": 5833 + }, + { + "id": 12771, + "x_pos": 2542.5, + "y_pos": 5821 + }, + { + "id": 12761, + "x_pos": 2530.5, + "y_pos": 5818.5 + }, + { + "id": 12752, + "x_pos": 2519.5, + "y_pos": 5815.5 + }, + { + "id": 12739, + "x_pos": 2500.5, + "y_pos": 5718 + }, + { + "id": 12732, + "x_pos": 2492.5, + "y_pos": 5703.5 + }, + { + "id": 12727, + "x_pos": 2464.5, + "y_pos": 5617.5 + }, + { + "id": 12723, + "x_pos": 2396, + "y_pos": 5808.5 + }, + { + "id": 12721, + "x_pos": 2244.5, + "y_pos": 5889.5 + }, + { + "id": 12712, + "x_pos": 2231.5, + "y_pos": 5890 + }, + { + "id": 12701, + "x_pos": 2035.5, + "y_pos": 6116.5 + }, + { + "id": 12699, + "x_pos": 2025.5, + "y_pos": 6106 + }, + { + "id": 12692, + "x_pos": 1835.5, + "y_pos": 6071 + }, + { + "id": 12688, + "x_pos": 1844.5, + "y_pos": 6076.5 + }, + { + "id": 12682, + "x_pos": 1853.5, + "y_pos": 6079 + }, + { + "id": 12676, + "x_pos": 1915.5, + "y_pos": 6168.5 + }, + { + "id": 12662, + "x_pos": 1822.5, + "y_pos": 6263 + }, + { + "id": 12652, + "x_pos": 1829, + "y_pos": 6272.5 + }, + { + "id": 12644, + "x_pos": 1823, + "y_pos": 6267.5 + }, + { + "id": 12616, + "x_pos": 1561, + "y_pos": 5818.5 + }, + { + "id": 12605, + "x_pos": 1554.5, + "y_pos": 5819 + }, + { + "id": 12587, + "x_pos": 1541.5, + "y_pos": 5817.5 + }, + { + "id": 12565, + "x_pos": 1245, + "y_pos": 5860.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/f3b15facf0ff4c766216f772c564be91_9076563853093542978.png" + }, + "123": { + "name": "Fowl", + "clear_name": "Fowl", + "points": [ + { + "id": 23475, + "x_pos": -559.5, + "y_pos": 778 + }, + { + "id": 23474, + "x_pos": -562.5, + "y_pos": 778.5 + }, + { + "id": 23473, + "x_pos": -557, + "y_pos": 779 + }, + { + "id": 23472, + "x_pos": -613, + "y_pos": 766.5 + }, + { + "id": 23471, + "x_pos": -604, + "y_pos": 760 + }, + { + "id": 23254, + "x_pos": -2021.8000030517578, + "y_pos": 2574.8019436195646 + }, + { + "id": 21559, + "x_pos": 2595, + "y_pos": 5869.5 + }, + { + "id": 21558, + "x_pos": 2601.5, + "y_pos": 5876.5 + }, + { + "id": 21557, + "x_pos": 2537.5, + "y_pos": 6288.5 + }, + { + "id": 21556, + "x_pos": 2235.5, + "y_pos": 6320.5 + }, + { + "id": 21555, + "x_pos": 2152, + "y_pos": 6185.5 + }, + { + "id": 21554, + "x_pos": 2149, + "y_pos": 6105 + }, + { + "id": 21553, + "x_pos": 2145.5, + "y_pos": 5942.5 + }, + { + "id": 21552, + "x_pos": 2141.5, + "y_pos": 5938.5 + }, + { + "id": 21551, + "x_pos": 2118.5, + "y_pos": 5943 + }, + { + "id": 21497, + "x_pos": 3164, + "y_pos": 4742 + }, + { + "id": 21496, + "x_pos": 3483.5, + "y_pos": 4556 + }, + { + "id": 21495, + "x_pos": 3372, + "y_pos": 4736.5 + }, + { + "id": 21494, + "x_pos": 3206.5, + "y_pos": 4924 + }, + { + "id": 20792, + "x_pos": -1336.8999938964844, + "y_pos": 1498.5471999924976 + }, + { + "id": 20286, + "x_pos": 2635, + "y_pos": 5872.183310797673 + }, + { + "id": 20285, + "x_pos": 2630.000030517578, + "y_pos": 5867.259363046471 + }, + { + "id": 20284, + "x_pos": 2631.300048828125, + "y_pos": 5870.385817532291 + }, + { + "id": 20275, + "x_pos": 483.8000183105469, + "y_pos": 6198.1034149387015 + }, + { + "id": 20272, + "x_pos": 489, + "y_pos": 6110.67761696349 + }, + { + "id": 20271, + "x_pos": 539.6999816894531, + "y_pos": 6079.042060398904 + }, + { + "id": 20270, + "x_pos": 398.2999572753906, + "y_pos": 5979.774238251797 + }, + { + "id": 20269, + "x_pos": 345.70001220703125, + "y_pos": 5833.510635675406 + }, + { + "id": 20263, + "x_pos": 208.99996948242188, + "y_pos": 6257.654692458616 + }, + { + "id": 20260, + "x_pos": 415.0999450683594, + "y_pos": 6446.16659610458 + }, + { + "id": 20258, + "x_pos": 197.69998168945312, + "y_pos": 6444.375094386425 + }, + { + "id": 20147, + "x_pos": -438.5, + "y_pos": 61.5 + }, + { + "id": 20146, + "x_pos": -436.5, + "y_pos": 65.5 + }, + { + "id": 20145, + "x_pos": -441, + "y_pos": 65 + }, + { + "id": 20143, + "x_pos": 313, + "y_pos": -15.5 + }, + { + "id": 20142, + "x_pos": 320.5, + "y_pos": 147.5 + }, + { + "id": 20141, + "x_pos": 320.5, + "y_pos": 149.5 + }, + { + "id": 20140, + "x_pos": 315, + "y_pos": -13.5 + }, + { + "id": 20139, + "x_pos": 317, + "y_pos": -14.5 + }, + { + "id": 20138, + "x_pos": 318, + "y_pos": 149 + }, + { + "id": 20137, + "x_pos": -50.5, + "y_pos": 426.5 + }, + { + "id": 20136, + "x_pos": -44.5, + "y_pos": 427 + }, + { + "id": 20135, + "x_pos": -49, + "y_pos": 424 + }, + { + "id": 20134, + "x_pos": -284, + "y_pos": 421 + }, + { + "id": 20133, + "x_pos": -289.5, + "y_pos": 422.5 + }, + { + "id": 20132, + "x_pos": -289.5, + "y_pos": 424 + }, + { + "id": 20131, + "x_pos": -285, + "y_pos": 425 + }, + { + "id": 20130, + "x_pos": -393, + "y_pos": 429.5 + }, + { + "id": 20129, + "x_pos": -393.5, + "y_pos": 431 + }, + { + "id": 20128, + "x_pos": -130, + "y_pos": 462.5 + }, + { + "id": 20127, + "x_pos": -128.5, + "y_pos": 465 + }, + { + "id": 20126, + "x_pos": -132, + "y_pos": 464.5 + }, + { + "id": 20125, + "x_pos": -48.5, + "y_pos": 613.5 + }, + { + "id": 20124, + "x_pos": -37, + "y_pos": 615 + }, + { + "id": 20123, + "x_pos": -32.5, + "y_pos": 617 + }, + { + "id": 20119, + "x_pos": 945.5, + "y_pos": 940.5 + }, + { + "id": 20118, + "x_pos": 770, + "y_pos": 933 + }, + { + "id": 20117, + "x_pos": 765, + "y_pos": 937 + }, + { + "id": 20116, + "x_pos": 772.5, + "y_pos": 938 + }, + { + "id": 20114, + "x_pos": 766, + "y_pos": 954 + }, + { + "id": 20113, + "x_pos": 3380.5, + "y_pos": 4078 + }, + { + "id": 20112, + "x_pos": 3376.5, + "y_pos": 4079.5 + }, + { + "id": 20111, + "x_pos": 3625.5, + "y_pos": 4754.5 + }, + { + "id": 20110, + "x_pos": 3616, + "y_pos": 4760 + }, + { + "id": 20109, + "x_pos": 3669, + "y_pos": 4757 + }, + { + "id": 20108, + "x_pos": 3655, + "y_pos": 4832 + }, + { + "id": 20107, + "x_pos": 3640.5, + "y_pos": 4831 + }, + { + "id": 20106, + "x_pos": 3367, + "y_pos": 4094.5 + }, + { + "id": 20105, + "x_pos": -2463.5, + "y_pos": 1647 + }, + { + "id": 19940, + "x_pos": 577, + "y_pos": 615.5 + }, + { + "id": 19939, + "x_pos": 574.5, + "y_pos": 615.5 + }, + { + "id": 19938, + "x_pos": 587.5, + "y_pos": 527 + }, + { + "id": 19937, + "x_pos": 584.5, + "y_pos": 526.5 + }, + { + "id": 19936, + "x_pos": 852, + "y_pos": 599 + }, + { + "id": 19935, + "x_pos": 849.5, + "y_pos": 598 + }, + { + "id": 19934, + "x_pos": 841.5, + "y_pos": 598 + }, + { + "id": 19933, + "x_pos": 754.5, + "y_pos": 355.5 + }, + { + "id": 19932, + "x_pos": 751.5, + "y_pos": 356.5 + }, + { + "id": 19930, + "x_pos": 827.5, + "y_pos": 418.5 + }, + { + "id": 19929, + "x_pos": 937, + "y_pos": -50.5 + }, + { + "id": 19928, + "x_pos": 938.5, + "y_pos": -50 + }, + { + "id": 19927, + "x_pos": 967, + "y_pos": -82 + }, + { + "id": 19926, + "x_pos": 1010.5, + "y_pos": -84 + }, + { + "id": 19925, + "x_pos": 1007.5, + "y_pos": -84 + }, + { + "id": 19924, + "x_pos": 963, + "y_pos": -82 + }, + { + "id": 19923, + "x_pos": 935, + "y_pos": -49.5 + }, + { + "id": 19922, + "x_pos": 940, + "y_pos": -50 + }, + { + "id": 19921, + "x_pos": 930.5, + "y_pos": -11 + }, + { + "id": 19920, + "x_pos": 956, + "y_pos": -3 + }, + { + "id": 19919, + "x_pos": 931, + "y_pos": 15 + }, + { + "id": 19917, + "x_pos": 863, + "y_pos": 29 + }, + { + "id": 19916, + "x_pos": 859, + "y_pos": 29 + }, + { + "id": 19915, + "x_pos": 893.5, + "y_pos": 63.5 + }, + { + "id": 19913, + "x_pos": 876, + "y_pos": 181.5 + }, + { + "id": 19912, + "x_pos": 874.5, + "y_pos": 183.5 + }, + { + "id": 19911, + "x_pos": 634.5, + "y_pos": -260.5 + }, + { + "id": 19910, + "x_pos": 636.5, + "y_pos": -209 + }, + { + "id": 19908, + "x_pos": 634, + "y_pos": -207 + }, + { + "id": 19907, + "x_pos": 628.5, + "y_pos": -204.5 + }, + { + "id": 19906, + "x_pos": 512, + "y_pos": -286.5 + }, + { + "id": 19905, + "x_pos": 506.5, + "y_pos": -285 + }, + { + "id": 19904, + "x_pos": 576.5, + "y_pos": -477 + }, + { + "id": 19903, + "x_pos": 572.5, + "y_pos": -474.5 + }, + { + "id": 19902, + "x_pos": 1019.5, + "y_pos": -620.5 + }, + { + "id": 19901, + "x_pos": 1018, + "y_pos": -619.5 + }, + { + "id": 19900, + "x_pos": 1021, + "y_pos": -618.5 + }, + { + "id": 19899, + "x_pos": 936, + "y_pos": -643.5 + }, + { + "id": 19898, + "x_pos": 940, + "y_pos": -644 + }, + { + "id": 19897, + "x_pos": 940, + "y_pos": -641.5 + }, + { + "id": 19863, + "x_pos": 821, + "y_pos": 317.5 + }, + { + "id": 19862, + "x_pos": 820.5, + "y_pos": 324 + }, + { + "id": 19861, + "x_pos": 797.5, + "y_pos": 311 + }, + { + "id": 19860, + "x_pos": 798, + "y_pos": 315 + }, + { + "id": 19859, + "x_pos": 780.5, + "y_pos": 314.5 + }, + { + "id": 19858, + "x_pos": 823, + "y_pos": 346 + }, + { + "id": 19857, + "x_pos": 839, + "y_pos": 358 + }, + { + "id": 19855, + "x_pos": 678, + "y_pos": 289 + }, + { + "id": 19854, + "x_pos": 682, + "y_pos": 292 + }, + { + "id": 19853, + "x_pos": 690.5, + "y_pos": 303.5 + }, + { + "id": 19852, + "x_pos": 622, + "y_pos": 366.5 + }, + { + "id": 19851, + "x_pos": 625.5, + "y_pos": 366 + }, + { + "id": 19850, + "x_pos": 690.5, + "y_pos": 495 + }, + { + "id": 19849, + "x_pos": 680.5, + "y_pos": 507 + }, + { + "id": 19848, + "x_pos": 678, + "y_pos": 514.5 + }, + { + "id": 19847, + "x_pos": 659, + "y_pos": 511 + }, + { + "id": 19846, + "x_pos": 659.5, + "y_pos": 514.5 + }, + { + "id": 19844, + "x_pos": 658, + "y_pos": 578.5 + }, + { + "id": 19843, + "x_pos": 659.5, + "y_pos": 580 + }, + { + "id": 19841, + "x_pos": 618.5, + "y_pos": 622.5 + }, + { + "id": 19840, + "x_pos": 622.5, + "y_pos": 623.5 + }, + { + "id": 19839, + "x_pos": 636, + "y_pos": 635 + }, + { + "id": 19838, + "x_pos": 615, + "y_pos": 646 + }, + { + "id": 19837, + "x_pos": 612, + "y_pos": 646.5 + }, + { + "id": 19836, + "x_pos": 612, + "y_pos": 660.5 + }, + { + "id": 19835, + "x_pos": 592.5, + "y_pos": 590 + }, + { + "id": 19834, + "x_pos": 591.5, + "y_pos": 593.5 + }, + { + "id": 19831, + "x_pos": 526.5, + "y_pos": 361 + }, + { + "id": 19830, + "x_pos": 522, + "y_pos": 362 + }, + { + "id": 19829, + "x_pos": 525, + "y_pos": 363 + }, + { + "id": 19827, + "x_pos": 458, + "y_pos": 406.5 + }, + { + "id": 19826, + "x_pos": 453.5, + "y_pos": 407.5 + }, + { + "id": 19825, + "x_pos": 483.5, + "y_pos": 428.5 + }, + { + "id": 19824, + "x_pos": 468.5, + "y_pos": 433.5 + }, + { + "id": 19823, + "x_pos": 470, + "y_pos": 434.5 + }, + { + "id": 19822, + "x_pos": 464, + "y_pos": 434.5 + }, + { + "id": 19821, + "x_pos": 413, + "y_pos": 474 + }, + { + "id": 19820, + "x_pos": 469.5, + "y_pos": 494 + }, + { + "id": 19819, + "x_pos": 358, + "y_pos": 417 + }, + { + "id": 19818, + "x_pos": 345.5, + "y_pos": 437 + }, + { + "id": 19817, + "x_pos": 340, + "y_pos": 467 + }, + { + "id": 19816, + "x_pos": 352, + "y_pos": 438.5 + }, + { + "id": 19814, + "x_pos": 425.5, + "y_pos": 339.5 + }, + { + "id": 19813, + "x_pos": 356.5, + "y_pos": 329.5 + }, + { + "id": 19811, + "x_pos": 296.5, + "y_pos": 324.5 + }, + { + "id": 19810, + "x_pos": 334, + "y_pos": 468.5 + }, + { + "id": 19809, + "x_pos": 351.5, + "y_pos": 529.5 + }, + { + "id": 19808, + "x_pos": 429, + "y_pos": 453.5 + }, + { + "id": 19807, + "x_pos": 409.5, + "y_pos": 478.5 + }, + { + "id": 19806, + "x_pos": 331.5, + "y_pos": 349.5 + }, + { + "id": 19805, + "x_pos": 336.5, + "y_pos": 350.5 + }, + { + "id": 19804, + "x_pos": 330, + "y_pos": 351 + }, + { + "id": 19803, + "x_pos": 295, + "y_pos": 328.5 + }, + { + "id": 19801, + "x_pos": 299, + "y_pos": 327 + }, + { + "id": 19799, + "x_pos": 356.5, + "y_pos": 529 + }, + { + "id": 19798, + "x_pos": 336.5, + "y_pos": 469.5 + }, + { + "id": 19797, + "x_pos": 353, + "y_pos": 529 + }, + { + "id": 19795, + "x_pos": 469, + "y_pos": 497.5 + }, + { + "id": 19794, + "x_pos": 442.5, + "y_pos": 468.5 + }, + { + "id": 19792, + "x_pos": 403, + "y_pos": 618 + }, + { + "id": 19791, + "x_pos": 440, + "y_pos": 626 + }, + { + "id": 19790, + "x_pos": 326.5, + "y_pos": 609.5 + }, + { + "id": 19789, + "x_pos": 328.5, + "y_pos": 607.5 + }, + { + "id": 19788, + "x_pos": 330.5, + "y_pos": 610 + }, + { + "id": 19787, + "x_pos": 442, + "y_pos": 629 + }, + { + "id": 19786, + "x_pos": 425, + "y_pos": 677 + }, + { + "id": 19784, + "x_pos": 682.5, + "y_pos": 634 + }, + { + "id": 19783, + "x_pos": 582, + "y_pos": 642.5 + }, + { + "id": 19782, + "x_pos": 398.5, + "y_pos": 615.5 + }, + { + "id": 19781, + "x_pos": 437.5, + "y_pos": 629.5 + }, + { + "id": 19780, + "x_pos": 427.5, + "y_pos": 679 + }, + { + "id": 19779, + "x_pos": 518.5, + "y_pos": 691.5 + }, + { + "id": 19778, + "x_pos": 515.5, + "y_pos": 692 + }, + { + "id": 19777, + "x_pos": 474, + "y_pos": 695 + }, + { + "id": 19776, + "x_pos": 469, + "y_pos": 694.5 + }, + { + "id": 19775, + "x_pos": 578.5, + "y_pos": 643.5 + }, + { + "id": 19774, + "x_pos": 686.5, + "y_pos": 634.5 + }, + { + "id": 19773, + "x_pos": 654, + "y_pos": 657 + }, + { + "id": 19772, + "x_pos": 463, + "y_pos": 769 + }, + { + "id": 19769, + "x_pos": -925.5, + "y_pos": 706 + }, + { + "id": 19767, + "x_pos": -957.5, + "y_pos": 751 + }, + { + "id": 19679, + "x_pos": 687.5, + "y_pos": -192.5 + }, + { + "id": 19678, + "x_pos": 621.5, + "y_pos": -168.5 + }, + { + "id": 19677, + "x_pos": 618.5, + "y_pos": -165.5 + }, + { + "id": 19676, + "x_pos": 615.5, + "y_pos": -165.5 + }, + { + "id": 19675, + "x_pos": 574.5, + "y_pos": -130 + }, + { + "id": 19674, + "x_pos": 579.5, + "y_pos": -127 + }, + { + "id": 19673, + "x_pos": 577.5, + "y_pos": -126 + }, + { + "id": 19672, + "x_pos": 574, + "y_pos": -124.5 + }, + { + "id": 19671, + "x_pos": 528.5, + "y_pos": -141.5 + }, + { + "id": 19668, + "x_pos": -1005, + "y_pos": 2981.5 + }, + { + "id": 19667, + "x_pos": -1011, + "y_pos": 2982 + }, + { + "id": 19666, + "x_pos": -1005.5, + "y_pos": 2985 + }, + { + "id": 19665, + "x_pos": -1009.5, + "y_pos": 2988 + }, + { + "id": 19664, + "x_pos": -1005, + "y_pos": 2988.5 + }, + { + "id": 19632, + "x_pos": -984, + "y_pos": 2666.5 + }, + { + "id": 19631, + "x_pos": -996, + "y_pos": 2645 + }, + { + "id": 19630, + "x_pos": -1131.5, + "y_pos": 2626.5 + }, + { + "id": 19629, + "x_pos": -1127.5, + "y_pos": 2626.5 + }, + { + "id": 19628, + "x_pos": -1124, + "y_pos": 2627 + }, + { + "id": 19627, + "x_pos": -1027.5, + "y_pos": 2927 + }, + { + "id": 19626, + "x_pos": -1029.5, + "y_pos": 2924.5 + }, + { + "id": 19625, + "x_pos": -1026.5, + "y_pos": 2929 + }, + { + "id": 19624, + "x_pos": -1021.5, + "y_pos": 2927 + }, + { + "id": 19623, + "x_pos": -1024, + "y_pos": 2930 + }, + { + "id": 19622, + "x_pos": -1224.5, + "y_pos": 2821.5 + }, + { + "id": 19621, + "x_pos": -1227.5, + "y_pos": 2823 + }, + { + "id": 19620, + "x_pos": -1181.5, + "y_pos": 2853 + }, + { + "id": 19619, + "x_pos": -1220.5, + "y_pos": 2823 + }, + { + "id": 19618, + "x_pos": 301.5, + "y_pos": 137 + }, + { + "id": 19617, + "x_pos": 311.5, + "y_pos": 135 + }, + { + "id": 19616, + "x_pos": 308, + "y_pos": 137 + }, + { + "id": 19615, + "x_pos": 300, + "y_pos": 103 + }, + { + "id": 19614, + "x_pos": 300, + "y_pos": 81 + }, + { + "id": 19613, + "x_pos": 302, + "y_pos": 59.5 + }, + { + "id": 19612, + "x_pos": 319, + "y_pos": 79 + }, + { + "id": 19611, + "x_pos": 470, + "y_pos": -132.5 + }, + { + "id": 19610, + "x_pos": 478, + "y_pos": -134 + }, + { + "id": 19609, + "x_pos": 474, + "y_pos": -133.5 + }, + { + "id": 19608, + "x_pos": 331, + "y_pos": -193.5 + }, + { + "id": 19607, + "x_pos": 335.5, + "y_pos": -192 + }, + { + "id": 19606, + "x_pos": 349, + "y_pos": -188.5 + }, + { + "id": 19604, + "x_pos": 615.5, + "y_pos": -223.5 + }, + { + "id": 19603, + "x_pos": 612.5, + "y_pos": -218.5 + }, + { + "id": 19602, + "x_pos": 611, + "y_pos": -216 + }, + { + "id": 19601, + "x_pos": 581.5, + "y_pos": -205 + }, + { + "id": 19600, + "x_pos": 569.5, + "y_pos": -206 + }, + { + "id": 19599, + "x_pos": 522.5, + "y_pos": -177.5 + }, + { + "id": 19598, + "x_pos": 501.5, + "y_pos": -189 + }, + { + "id": 19597, + "x_pos": 505, + "y_pos": -188.5 + }, + { + "id": 19596, + "x_pos": 502.5, + "y_pos": -187 + }, + { + "id": 19595, + "x_pos": 499, + "y_pos": -188 + }, + { + "id": 19594, + "x_pos": 496.5, + "y_pos": -215.5 + }, + { + "id": 19593, + "x_pos": 500, + "y_pos": -215.5 + }, + { + "id": 19592, + "x_pos": 582, + "y_pos": -310.5 + }, + { + "id": 19591, + "x_pos": 579, + "y_pos": -315 + }, + { + "id": 19590, + "x_pos": 576.5, + "y_pos": -312 + }, + { + "id": 19589, + "x_pos": 585, + "y_pos": -332 + }, + { + "id": 19588, + "x_pos": 450, + "y_pos": -367 + }, + { + "id": 19587, + "x_pos": 444.5, + "y_pos": -365.5 + }, + { + "id": 19586, + "x_pos": 447, + "y_pos": -367 + }, + { + "id": 19585, + "x_pos": 473.5, + "y_pos": -378 + }, + { + "id": 19584, + "x_pos": 467, + "y_pos": -365.5 + }, + { + "id": 19583, + "x_pos": 471.5, + "y_pos": -365 + }, + { + "id": 19582, + "x_pos": 478, + "y_pos": -380 + }, + { + "id": 19581, + "x_pos": 617.5, + "y_pos": -388 + }, + { + "id": 19580, + "x_pos": 649, + "y_pos": -291.5 + }, + { + "id": 19579, + "x_pos": 652, + "y_pos": -289.5 + }, + { + "id": 19578, + "x_pos": 656, + "y_pos": -288 + }, + { + "id": 19577, + "x_pos": 659.5, + "y_pos": -287 + }, + { + "id": 19576, + "x_pos": 843.5, + "y_pos": -302.5 + }, + { + "id": 19575, + "x_pos": 965.5, + "y_pos": -671.5 + }, + { + "id": 19574, + "x_pos": 961.5, + "y_pos": -666.5 + }, + { + "id": 19573, + "x_pos": 978.5, + "y_pos": -652 + }, + { + "id": 19572, + "x_pos": 1014.5, + "y_pos": -627.5 + }, + { + "id": 19571, + "x_pos": 1007, + "y_pos": -624.5 + }, + { + "id": 19570, + "x_pos": 1010, + "y_pos": -627 + }, + { + "id": 19569, + "x_pos": 1129.5, + "y_pos": -509.5 + }, + { + "id": 19568, + "x_pos": 1135, + "y_pos": -511 + }, + { + "id": 19567, + "x_pos": 1047.5, + "y_pos": -634 + }, + { + "id": 19566, + "x_pos": 1047.5, + "y_pos": -631 + }, + { + "id": 19565, + "x_pos": 1052.5, + "y_pos": -630.5 + }, + { + "id": 19564, + "x_pos": 1043.5, + "y_pos": -631.5 + }, + { + "id": 19563, + "x_pos": 978.5, + "y_pos": -672 + }, + { + "id": 19541, + "x_pos": 247, + "y_pos": 6290.5 + }, + { + "id": 19539, + "x_pos": 450.5, + "y_pos": 6340.5 + }, + { + "id": 19537, + "x_pos": 249.5, + "y_pos": 6290.5 + }, + { + "id": 19536, + "x_pos": 246.5, + "y_pos": 6291.5 + }, + { + "id": 19535, + "x_pos": 207, + "y_pos": 6301.5 + }, + { + "id": 19534, + "x_pos": 208, + "y_pos": 6305 + }, + { + "id": 19533, + "x_pos": 209.5, + "y_pos": 6459 + }, + { + "id": 19531, + "x_pos": 51.5, + "y_pos": 6409 + }, + { + "id": 19530, + "x_pos": 42.5, + "y_pos": 6243.5 + }, + { + "id": 19529, + "x_pos": 60, + "y_pos": 6236 + }, + { + "id": 19527, + "x_pos": 134, + "y_pos": 5982 + }, + { + "id": 19525, + "x_pos": -12.5, + "y_pos": 6388.5 + }, + { + "id": 19522, + "x_pos": -174.5, + "y_pos": 6284 + }, + { + "id": 19521, + "x_pos": 91.5, + "y_pos": 5867.5 + }, + { + "id": 19520, + "x_pos": -8, + "y_pos": 5859.5 + }, + { + "id": 19519, + "x_pos": -70.5, + "y_pos": 5846.5 + }, + { + "id": 19518, + "x_pos": -230.5, + "y_pos": 5875 + }, + { + "id": 19516, + "x_pos": -197.5, + "y_pos": 5933.5 + }, + { + "id": 19515, + "x_pos": -273.5, + "y_pos": 6083.5 + }, + { + "id": 19514, + "x_pos": -319, + "y_pos": 6274 + }, + { + "id": 19512, + "x_pos": 269, + "y_pos": 129.5 + }, + { + "id": 19511, + "x_pos": 275.5, + "y_pos": 131 + }, + { + "id": 19510, + "x_pos": 265, + "y_pos": 130 + }, + { + "id": 19509, + "x_pos": 267, + "y_pos": 132.5 + }, + { + "id": 19508, + "x_pos": 271.5, + "y_pos": 133.5 + }, + { + "id": 19507, + "x_pos": 262, + "y_pos": 134 + }, + { + "id": 19506, + "x_pos": 271.5, + "y_pos": 136.5 + }, + { + "id": 19505, + "x_pos": 238.5, + "y_pos": 114 + }, + { + "id": 19504, + "x_pos": 242, + "y_pos": 120.5 + }, + { + "id": 19503, + "x_pos": 218, + "y_pos": -93.5 + }, + { + "id": 19502, + "x_pos": 224, + "y_pos": -93.5 + }, + { + "id": 19501, + "x_pos": 227.5, + "y_pos": -88 + }, + { + "id": 19500, + "x_pos": 182.5, + "y_pos": -48.5 + }, + { + "id": 19499, + "x_pos": 188.5, + "y_pos": -48 + }, + { + "id": 19498, + "x_pos": 185.5, + "y_pos": -46.5 + }, + { + "id": 19497, + "x_pos": 182, + "y_pos": -67 + }, + { + "id": 19496, + "x_pos": 168.5, + "y_pos": -118.5 + }, + { + "id": 19495, + "x_pos": 166.5, + "y_pos": -108.5 + }, + { + "id": 19494, + "x_pos": 176.5, + "y_pos": -115 + }, + { + "id": 19493, + "x_pos": 173, + "y_pos": -107 + }, + { + "id": 18555, + "x_pos": -1109, + "y_pos": 2940 + }, + { + "id": 18554, + "x_pos": -1110.5, + "y_pos": 2943.5 + }, + { + "id": 18553, + "x_pos": -1148.5, + "y_pos": 2966 + }, + { + "id": 18552, + "x_pos": -1154.5, + "y_pos": 2966.5 + }, + { + "id": 18551, + "x_pos": -1151, + "y_pos": 2963.5 + }, + { + "id": 18538, + "x_pos": 337, + "y_pos": -58 + }, + { + "id": 18537, + "x_pos": 335, + "y_pos": -60 + }, + { + "id": 18536, + "x_pos": 338, + "y_pos": -55.5 + }, + { + "id": 18535, + "x_pos": 353.5, + "y_pos": 24.5 + }, + { + "id": 18534, + "x_pos": 330.5, + "y_pos": -55 + }, + { + "id": 18533, + "x_pos": 350.5, + "y_pos": 29.5 + }, + { + "id": 15728, + "x_pos": -2120.7999877929688, + "y_pos": 2063.2849156305792 + }, + { + "id": 15726, + "x_pos": -2104.5999755859375, + "y_pos": 2045.870332943843 + }, + { + "id": 15402, + "x_pos": 2186.5, + "y_pos": 6111 + }, + { + "id": 15398, + "x_pos": 1770.2979327076482, + "y_pos": 5947.497711763699 + }, + { + "id": 15397, + "x_pos": 1768.5999755859375, + "y_pos": 5993.595002543132 + }, + { + "id": 15389, + "x_pos": 1666.1999816894531, + "y_pos": 6061.208246463144 + }, + { + "id": 15014, + "x_pos": 1535.4004924398623, + "y_pos": 6150.602741628982 + }, + { + "id": 14891, + "x_pos": 1462.5025136410186, + "y_pos": 5870.902739773062 + }, + { + "id": 14890, + "x_pos": 1462.1120410321437, + "y_pos": 5875.6087014084405 + }, + { + "id": 14869, + "x_pos": 1833.3954693349797, + "y_pos": 5866.398193852954 + }, + { + "id": 14868, + "x_pos": 1842, + "y_pos": 5796.5 + }, + { + "id": 14867, + "x_pos": 1858.5, + "y_pos": 5796.5 + }, + { + "id": 14861, + "x_pos": 1979, + "y_pos": 5717.5 + }, + { + "id": 14860, + "x_pos": 1971, + "y_pos": 5725.5 + }, + { + "id": 14859, + "x_pos": 1944.5, + "y_pos": 5882 + }, + { + "id": 14858, + "x_pos": 1930.5, + "y_pos": 5898 + }, + { + "id": 14846, + "x_pos": 1783.7015204069849, + "y_pos": 5940.509152945202 + }, + { + "id": 14845, + "x_pos": 1775.5995033829831, + "y_pos": 5952.902770325556 + }, + { + "id": 12006, + "x_pos": -1792.8306765344892, + "y_pos": 2140.14962658488 + }, + { + "id": 11996, + "x_pos": -1558.9978754748986, + "y_pos": 1662.9311261734583 + }, + { + "id": 11988, + "x_pos": -1811.5527345253722, + "y_pos": 1574.9807878355086 + }, + { + "id": 11986, + "x_pos": -1790.5528288660912, + "y_pos": 1558.9890143075036 + }, + { + "id": 11985, + "x_pos": -1720.9408881040067, + "y_pos": 1540.9627390497162 + }, + { + "id": 11984, + "x_pos": -1713.940889033472, + "y_pos": 1519.4182646854933 + }, + { + "id": 11980, + "x_pos": -1764.7751736744472, + "y_pos": 1463.0383426375856 + }, + { + "id": 11974, + "x_pos": -1669.8312032314407, + "y_pos": 1402.8470466618155 + }, + { + "id": 11951, + "x_pos": -1740.7756150929654, + "y_pos": 1140.528596578507 + }, + { + "id": 11949, + "x_pos": -1651.2201723383405, + "y_pos": 1147.5339265715074 + }, + { + "id": 11941, + "x_pos": -1503.6642908761373, + "y_pos": 677.8473189900092 + }, + { + "id": 11940, + "x_pos": -1497.997629321529, + "y_pos": 683.0113190244651 + }, + { + "id": 11938, + "x_pos": -1609.6082119025768, + "y_pos": 572.845730773679 + }, + { + "id": 11755, + "x_pos": -2109.014341700059, + "y_pos": 1168.7421576114502 + }, + { + "id": 10752, + "x_pos": -1391, + "y_pos": 1317 + }, + { + "id": 10751, + "x_pos": -1445, + "y_pos": 1280 + }, + { + "id": 10750, + "x_pos": -1451.5, + "y_pos": 1280 + }, + { + "id": 10747, + "x_pos": -1389.5, + "y_pos": 1638.5 + }, + { + "id": 10739, + "x_pos": -1335.5, + "y_pos": 1494.5 + }, + { + "id": 10734, + "x_pos": -1398.5, + "y_pos": 1466 + }, + { + "id": 10592, + "x_pos": 182.5, + "y_pos": 2502 + }, + { + "id": 9391, + "x_pos": -703.5, + "y_pos": 1368 + }, + { + "id": 9337, + "x_pos": -694, + "y_pos": 1366.5 + }, + { + "id": 9336, + "x_pos": -575, + "y_pos": 1312.5 + }, + { + "id": 9335, + "x_pos": -574, + "y_pos": 1317 + }, + { + "id": 8855, + "x_pos": -609.9444656017631, + "y_pos": 1515.108727056564 + }, + { + "id": 8854, + "x_pos": -620.2779539535077, + "y_pos": 1519.2766857968954 + }, + { + "id": 8853, + "x_pos": -651.1669156725193, + "y_pos": 1608.2213608397788 + }, + { + "id": 8852, + "x_pos": -655, + "y_pos": 1620.5553249571167 + }, + { + "id": 8851, + "x_pos": -323.9444961172485, + "y_pos": 1734.5553554627722 + }, + { + "id": 8809, + "x_pos": -327.5555038827515, + "y_pos": 1730 + }, + { + "id": 8803, + "x_pos": -321, + "y_pos": 1727.333964117338 + }, + { + "id": 8800, + "x_pos": -674.3334578362601, + "y_pos": 1737.1679587403314 + }, + { + "id": 8799, + "x_pos": -655.8889922344961, + "y_pos": 1763.2213303341232 + }, + { + "id": 8798, + "x_pos": -661.9444961172485, + "y_pos": 1759.8300878963428 + }, + { + "id": 8796, + "x_pos": -672.1665726792253, + "y_pos": 1760.2213608397788 + }, + { + "id": 8791, + "x_pos": -668.6665116482554, + "y_pos": 1755 + }, + { + "id": 8789, + "x_pos": -650.3889312035271, + "y_pos": 1908.8320412596686 + }, + { + "id": 8788, + "x_pos": -678.3889617190116, + "y_pos": 1724.9427216795575 + }, + { + "id": 8779, + "x_pos": 75.66651164825544, + "y_pos": 2609.7213608397788 + }, + { + "id": 8778, + "x_pos": 79.61100776550393, + "y_pos": 2598.3873662167853 + }, + { + "id": 8777, + "x_pos": 74.05550388275151, + "y_pos": 2617.61068041989 + }, + { + "id": 8774, + "x_pos": 96.16657267922528, + "y_pos": 2580.61068041989 + }, + { + "id": 8773, + "x_pos": 109.83308432748072, + "y_pos": 2621.4427216795575 + }, + { + "id": 8772, + "x_pos": 95, + "y_pos": 2622.498046636674 + }, + { + "id": 8770, + "x_pos": 76, + "y_pos": 2635.6660053770065 + }, + { + "id": 8768, + "x_pos": 116.61100776550393, + "y_pos": 2622.553371593792 + }, + { + "id": 8762, + "x_pos": -24.632399195550533, + "y_pos": 2425.241307041463 + }, + { + "id": 8761, + "x_pos": -33.94449611724849, + "y_pos": 2422.5553249571167 + }, + { + "id": 8760, + "x_pos": 170.0555038827515, + "y_pos": 2554 + }, + { + "id": 8759, + "x_pos": 132.33308432748072, + "y_pos": 2357.2213608397788 + }, + { + "id": 8758, + "x_pos": 226.11100776550393, + "y_pos": 2495.38931958011 + }, + { + "id": 8757, + "x_pos": 213.7775804447283, + "y_pos": 2504.442691173902 + }, + { + "id": 8756, + "x_pos": 136.16651164825544, + "y_pos": 2363.7213608397788 + }, + { + "id": 8550, + "x_pos": -1852.9444656017636, + "y_pos": 3324.666035882662 + }, + { + "id": 8549, + "x_pos": -1847.6110382809884, + "y_pos": 3331.61068041989 + }, + { + "id": 8548, + "x_pos": -1410.2779234380232, + "y_pos": 3017.666035882662 + }, + { + "id": 8547, + "x_pos": -1474.055503882752, + "y_pos": 3124.2213608397788 + }, + { + "id": 8546, + "x_pos": -1422.611007765504, + "y_pos": 3016.219407476454 + }, + { + "id": 8545, + "x_pos": -1482.5559079070158, + "y_pos": 3131.8320412596686 + }, + { + "id": 8544, + "x_pos": -1603.888992234496, + "y_pos": 3216.830087896343 + }, + { + "id": 8543, + "x_pos": -1402.7224805862406, + "y_pos": 3181.9465979005527 + }, + { + "id": 8542, + "x_pos": -1593.388992234496, + "y_pos": 2986.776716302551 + }, + { + "id": 8541, + "x_pos": -1449.1668546415503, + "y_pos": 3036.778669665877 + }, + { + "id": 8540, + "x_pos": -1916.8334273207752, + "y_pos": 3063.2766857968954 + }, + { + "id": 8539, + "x_pos": -1404.444496117248, + "y_pos": 3190.942691173902 + }, + { + "id": 8538, + "x_pos": -1587.944496117248, + "y_pos": 2991.1660053770065 + }, + { + "id": 8537, + "x_pos": -1663.889335227791, + "y_pos": 3097.8854128534595 + }, + { + "id": 8536, + "x_pos": -1447.388992234496, + "y_pos": 3055.830057390687 + }, + { + "id": 8535, + "x_pos": -1852.4167784752017, + "y_pos": 2834.7074243059196 + }, + { + "id": 8534, + "x_pos": -1769.555503882752, + "y_pos": 2770.3873662167853 + }, + { + "id": 8533, + "x_pos": -1864.388992234496, + "y_pos": 2840.11068041989 + }, + { + "id": 8532, + "x_pos": -1995.3334273207752, + "y_pos": 2979.7213608397788 + }, + { + "id": 8531, + "x_pos": -1791.4444350862786, + "y_pos": 2888.553371593792 + }, + { + "id": 8530, + "x_pos": -1786.8889617190116, + "y_pos": 2893.332010754013 + }, + { + "id": 8529, + "x_pos": -1853.0558468760464, + "y_pos": 2846.8873662167853 + }, + { + "id": 8528, + "x_pos": -1725, + "y_pos": 2543.5 + }, + { + "id": 8527, + "x_pos": -1735.6110687964729, + "y_pos": 2540.998046636674 + }, + { + "id": 7839, + "x_pos": 898, + "y_pos": -544 + }, + { + "id": 7838, + "x_pos": -379.5, + "y_pos": -304.5 + }, + { + "id": 7837, + "x_pos": 892.5, + "y_pos": -546.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/61e2b712ded55ed5dd1d438a87e52efb_381487749068331365.png" + }, + "178": { + "name": "Birch Wood", + "clear_name": "BirchWood", + "points": [ + { + "id": 23470, + "x_pos": -222, + "y_pos": 528 + }, + { + "id": 23469, + "x_pos": -218, + "y_pos": 534 + }, + { + "id": 23468, + "x_pos": -238.5, + "y_pos": 511.75 + }, + { + "id": 23467, + "x_pos": -240.25, + "y_pos": 518.25 + }, + { + "id": 23411, + "x_pos": -158.5, + "y_pos": 1654.5 + }, + { + "id": 23410, + "x_pos": -155, + "y_pos": 1643.5 + }, + { + "id": 23409, + "x_pos": -174.5, + "y_pos": 1641 + }, + { + "id": 23408, + "x_pos": -190.5, + "y_pos": 1638.5 + }, + { + "id": 23407, + "x_pos": -238.5, + "y_pos": 1617 + }, + { + "id": 23406, + "x_pos": -275, + "y_pos": 1593.5 + }, + { + "id": 23405, + "x_pos": -274.5, + "y_pos": 1577 + }, + { + "id": 23404, + "x_pos": -300.5, + "y_pos": 1556 + }, + { + "id": 23403, + "x_pos": -318, + "y_pos": 1557 + }, + { + "id": 23402, + "x_pos": -349, + "y_pos": 1558 + }, + { + "id": 23401, + "x_pos": -316, + "y_pos": 1510 + }, + { + "id": 23400, + "x_pos": -332.5, + "y_pos": 1515.5 + }, + { + "id": 23399, + "x_pos": -344, + "y_pos": 1507.5 + }, + { + "id": 23398, + "x_pos": -362, + "y_pos": 1475 + }, + { + "id": 23397, + "x_pos": -469.5, + "y_pos": 1424 + }, + { + "id": 23396, + "x_pos": -446, + "y_pos": 1433.5 + }, + { + "id": 23395, + "x_pos": -437.5, + "y_pos": 1430 + }, + { + "id": 23394, + "x_pos": -406, + "y_pos": 1466 + }, + { + "id": 23393, + "x_pos": -399, + "y_pos": 1432.5 + }, + { + "id": 23392, + "x_pos": -411, + "y_pos": 1415 + }, + { + "id": 23391, + "x_pos": -386, + "y_pos": 1418.5 + }, + { + "id": 23390, + "x_pos": -404, + "y_pos": 1401.5 + }, + { + "id": 23389, + "x_pos": -401, + "y_pos": 1385 + }, + { + "id": 23388, + "x_pos": -464, + "y_pos": 1390 + }, + { + "id": 23387, + "x_pos": -459, + "y_pos": 1375 + }, + { + "id": 23386, + "x_pos": -427, + "y_pos": 1357.5 + }, + { + "id": 23385, + "x_pos": -463, + "y_pos": 1199.5 + }, + { + "id": 23384, + "x_pos": -460.5, + "y_pos": 1191.5 + }, + { + "id": 23383, + "x_pos": -462, + "y_pos": 1183.5 + }, + { + "id": 23382, + "x_pos": -413.5, + "y_pos": 1163.5 + }, + { + "id": 23381, + "x_pos": -408, + "y_pos": 1136.5 + }, + { + "id": 23380, + "x_pos": -417.5, + "y_pos": 1128.5 + }, + { + "id": 23379, + "x_pos": -396, + "y_pos": 1127 + }, + { + "id": 23378, + "x_pos": -405, + "y_pos": 1085 + }, + { + "id": 23377, + "x_pos": -402, + "y_pos": 1079.5 + }, + { + "id": 23376, + "x_pos": -387.5, + "y_pos": 1025.5 + }, + { + "id": 23375, + "x_pos": -424, + "y_pos": 989.5 + }, + { + "id": 23374, + "x_pos": -444.5, + "y_pos": 947.5 + }, + { + "id": 23373, + "x_pos": -445.5, + "y_pos": 944 + }, + { + "id": 23372, + "x_pos": -427, + "y_pos": 930 + }, + { + "id": 23371, + "x_pos": -433, + "y_pos": 926 + }, + { + "id": 23370, + "x_pos": -453.5, + "y_pos": 905.5 + }, + { + "id": 23369, + "x_pos": -465, + "y_pos": 902.5 + }, + { + "id": 23368, + "x_pos": -364.5, + "y_pos": 789.5 + }, + { + "id": 23367, + "x_pos": -371.5, + "y_pos": 786 + }, + { + "id": 23366, + "x_pos": -364.5, + "y_pos": 781 + }, + { + "id": 23365, + "x_pos": -364, + "y_pos": 842 + }, + { + "id": 23364, + "x_pos": -341.5, + "y_pos": 865.5 + }, + { + "id": 23363, + "x_pos": -334.5, + "y_pos": 889.5 + }, + { + "id": 23362, + "x_pos": -541.5, + "y_pos": 824.5 + }, + { + "id": 23361, + "x_pos": -583, + "y_pos": 828 + }, + { + "id": 23360, + "x_pos": -584, + "y_pos": 815.5 + }, + { + "id": 23359, + "x_pos": -598, + "y_pos": 820 + }, + { + "id": 23358, + "x_pos": -589, + "y_pos": 810 + }, + { + "id": 23357, + "x_pos": -643.5, + "y_pos": 809.5 + }, + { + "id": 23356, + "x_pos": -654, + "y_pos": 807 + }, + { + "id": 23355, + "x_pos": -665, + "y_pos": 810.5 + }, + { + "id": 23354, + "x_pos": -679, + "y_pos": 814.5 + }, + { + "id": 23353, + "x_pos": -697.5, + "y_pos": 805 + }, + { + "id": 23352, + "x_pos": -707, + "y_pos": 804.5 + }, + { + "id": 23351, + "x_pos": -565, + "y_pos": 784 + }, + { + "id": 23350, + "x_pos": -576.5, + "y_pos": 788 + }, + { + "id": 23349, + "x_pos": -588.5, + "y_pos": 780 + }, + { + "id": 23348, + "x_pos": -604, + "y_pos": 781 + }, + { + "id": 23347, + "x_pos": -617, + "y_pos": 777.5 + }, + { + "id": 23346, + "x_pos": -647.5, + "y_pos": 754 + }, + { + "id": 23345, + "x_pos": -650, + "y_pos": 744.5 + }, + { + "id": 23344, + "x_pos": -543, + "y_pos": 736 + }, + { + "id": 23343, + "x_pos": -531.5, + "y_pos": 767 + }, + { + "id": 23342, + "x_pos": -523.5, + "y_pos": 748 + }, + { + "id": 23341, + "x_pos": -535.5, + "y_pos": 732 + }, + { + "id": 23340, + "x_pos": -571.5, + "y_pos": 707 + }, + { + "id": 23339, + "x_pos": -587, + "y_pos": 700.5 + }, + { + "id": 23338, + "x_pos": -575, + "y_pos": 692.5 + }, + { + "id": 23337, + "x_pos": -599, + "y_pos": 674 + }, + { + "id": 23336, + "x_pos": -618, + "y_pos": 667.5 + }, + { + "id": 23335, + "x_pos": -599.5, + "y_pos": 662 + }, + { + "id": 23334, + "x_pos": -655, + "y_pos": 635 + }, + { + "id": 23333, + "x_pos": -660, + "y_pos": 610 + }, + { + "id": 23332, + "x_pos": -659, + "y_pos": 597 + }, + { + "id": 23331, + "x_pos": 550, + "y_pos": -410 + }, + { + "id": 23330, + "x_pos": 577, + "y_pos": -393 + }, + { + "id": 23329, + "x_pos": 538, + "y_pos": -469.5 + }, + { + "id": 23328, + "x_pos": 535.5, + "y_pos": -478 + }, + { + "id": 23327, + "x_pos": 548, + "y_pos": -468 + }, + { + "id": 23326, + "x_pos": 547.5, + "y_pos": -474.5 + }, + { + "id": 23325, + "x_pos": 556.5, + "y_pos": -489 + }, + { + "id": 23324, + "x_pos": 553.5, + "y_pos": -495 + }, + { + "id": 20557, + "x_pos": 694.5, + "y_pos": -438.5 + }, + { + "id": 20520, + "x_pos": 717.5, + "y_pos": -461.5 + }, + { + "id": 20519, + "x_pos": 714, + "y_pos": -462 + }, + { + "id": 20518, + "x_pos": 713.5, + "y_pos": -464 + }, + { + "id": 20517, + "x_pos": 703.5, + "y_pos": -455.5 + }, + { + "id": 20516, + "x_pos": 691, + "y_pos": -440.5 + }, + { + "id": 20515, + "x_pos": 677.5, + "y_pos": -436 + }, + { + "id": 20514, + "x_pos": 670, + "y_pos": -438.5 + }, + { + "id": 20513, + "x_pos": 667, + "y_pos": -443 + }, + { + "id": 20512, + "x_pos": 664.5, + "y_pos": -450 + }, + { + "id": 20511, + "x_pos": 667, + "y_pos": -457 + }, + { + "id": 20510, + "x_pos": 667.5, + "y_pos": -464 + }, + { + "id": 20509, + "x_pos": 671, + "y_pos": -468.5 + }, + { + "id": 20508, + "x_pos": 680.5, + "y_pos": -464.5 + }, + { + "id": 20507, + "x_pos": 688, + "y_pos": -465.5 + }, + { + "id": 20506, + "x_pos": 684, + "y_pos": -470 + }, + { + "id": 20505, + "x_pos": 680, + "y_pos": -489 + }, + { + "id": 20504, + "x_pos": 692, + "y_pos": -488.5 + }, + { + "id": 20503, + "x_pos": 694.5, + "y_pos": -497 + }, + { + "id": 20502, + "x_pos": 686, + "y_pos": -494.5 + }, + { + "id": 20501, + "x_pos": 695.5, + "y_pos": -502 + }, + { + "id": 20500, + "x_pos": 686, + "y_pos": -500 + }, + { + "id": 20499, + "x_pos": 678, + "y_pos": -498 + }, + { + "id": 20498, + "x_pos": 664, + "y_pos": -502.5 + }, + { + "id": 20497, + "x_pos": 670, + "y_pos": -509 + }, + { + "id": 20496, + "x_pos": 671, + "y_pos": -523 + }, + { + "id": 20495, + "x_pos": 667, + "y_pos": -531 + }, + { + "id": 20494, + "x_pos": 609, + "y_pos": -457 + }, + { + "id": 20493, + "x_pos": 627.5, + "y_pos": -466.5 + }, + { + "id": 20492, + "x_pos": 621, + "y_pos": -441 + }, + { + "id": 20491, + "x_pos": 612, + "y_pos": -434.5 + }, + { + "id": 20490, + "x_pos": 603.5, + "y_pos": -432 + }, + { + "id": 20489, + "x_pos": 633, + "y_pos": -409.5 + }, + { + "id": 20488, + "x_pos": 628, + "y_pos": -410.5 + }, + { + "id": 20487, + "x_pos": 644, + "y_pos": -402.5 + }, + { + "id": 20486, + "x_pos": 653.5, + "y_pos": -402.5 + }, + { + "id": 20485, + "x_pos": 659, + "y_pos": -404.5 + }, + { + "id": 20484, + "x_pos": 679, + "y_pos": -410 + }, + { + "id": 20483, + "x_pos": 691.5, + "y_pos": -401 + }, + { + "id": 20482, + "x_pos": 706, + "y_pos": -406.5 + }, + { + "id": 20481, + "x_pos": 710, + "y_pos": -433.5 + }, + { + "id": 20480, + "x_pos": 729, + "y_pos": -410 + }, + { + "id": 20479, + "x_pos": 732.5, + "y_pos": -415.5 + }, + { + "id": 20478, + "x_pos": 775.5, + "y_pos": -468 + }, + { + "id": 20477, + "x_pos": 775, + "y_pos": -484.5 + }, + { + "id": 20476, + "x_pos": 775, + "y_pos": -491 + }, + { + "id": 20475, + "x_pos": 769, + "y_pos": -495 + }, + { + "id": 20474, + "x_pos": 760, + "y_pos": -469 + }, + { + "id": 20473, + "x_pos": 757, + "y_pos": -474 + }, + { + "id": 20472, + "x_pos": 753, + "y_pos": -482 + }, + { + "id": 20471, + "x_pos": 746, + "y_pos": -498.5 + }, + { + "id": 20470, + "x_pos": 734, + "y_pos": -496.5 + }, + { + "id": 20469, + "x_pos": 772.5, + "y_pos": -506 + }, + { + "id": 20468, + "x_pos": 768, + "y_pos": -508 + }, + { + "id": 20467, + "x_pos": 761, + "y_pos": -508 + }, + { + "id": 20466, + "x_pos": 752.5, + "y_pos": -511 + }, + { + "id": 20465, + "x_pos": 741, + "y_pos": -508 + }, + { + "id": 20464, + "x_pos": 738, + "y_pos": -513 + }, + { + "id": 20463, + "x_pos": 720, + "y_pos": -496 + }, + { + "id": 20462, + "x_pos": 722.5, + "y_pos": -509 + }, + { + "id": 20461, + "x_pos": 733, + "y_pos": -519.5 + }, + { + "id": 20460, + "x_pos": 715, + "y_pos": -539 + }, + { + "id": 20459, + "x_pos": 714, + "y_pos": -515 + }, + { + "id": 20458, + "x_pos": 706.5, + "y_pos": -518 + }, + { + "id": 20457, + "x_pos": 700.5, + "y_pos": -519.5 + }, + { + "id": 10591, + "x_pos": -407.04732806551874, + "y_pos": 842.5180719183618 + }, + { + "id": 10590, + "x_pos": -426.04488545010463, + "y_pos": 821.0161904508172 + }, + { + "id": 10589, + "x_pos": -433.0474965217545, + "y_pos": 830.5171311845897 + }, + { + "id": 10588, + "x_pos": -449.0329250573859, + "y_pos": 838.5133682495002 + }, + { + "id": 10587, + "x_pos": -466.9425033630914, + "y_pos": 858.249328326192 + }, + { + "id": 10586, + "x_pos": -484.20845476536306, + "y_pos": 849.0687599218018 + }, + { + "id": 10585, + "x_pos": -499.9430087317978, + "y_pos": 878.7601467645741 + }, + { + "id": 10561, + "x_pos": 627, + "y_pos": -215.5 + }, + { + "id": 10560, + "x_pos": 636.5, + "y_pos": -216.5 + }, + { + "id": 10559, + "x_pos": 629.5, + "y_pos": -210.5 + }, + { + "id": 10558, + "x_pos": 614, + "y_pos": -208.5 + }, + { + "id": 10557, + "x_pos": 616.5, + "y_pos": -203 + }, + { + "id": 10556, + "x_pos": 592, + "y_pos": -201 + }, + { + "id": 10555, + "x_pos": 595, + "y_pos": -200 + }, + { + "id": 10554, + "x_pos": 587.5, + "y_pos": -199.5 + }, + { + "id": 10553, + "x_pos": 597.5, + "y_pos": -198 + }, + { + "id": 10552, + "x_pos": 597.5, + "y_pos": -189.5 + }, + { + "id": 10551, + "x_pos": 597, + "y_pos": -185.5 + }, + { + "id": 10550, + "x_pos": 590.5, + "y_pos": -198.5 + }, + { + "id": 10549, + "x_pos": 566.5, + "y_pos": -206.5 + }, + { + "id": 10548, + "x_pos": 561.5, + "y_pos": -206 + }, + { + "id": 10547, + "x_pos": 567.5, + "y_pos": -204.5 + }, + { + "id": 10546, + "x_pos": 564, + "y_pos": -204 + }, + { + "id": 10545, + "x_pos": 560.5, + "y_pos": -203.5 + }, + { + "id": 10544, + "x_pos": 545.5, + "y_pos": -212 + }, + { + "id": 10543, + "x_pos": 548, + "y_pos": -263.5 + }, + { + "id": 10542, + "x_pos": 547.5, + "y_pos": -255 + }, + { + "id": 10541, + "x_pos": 545, + "y_pos": -258 + }, + { + "id": 10540, + "x_pos": 548.5, + "y_pos": -259.5 + }, + { + "id": 10539, + "x_pos": 542, + "y_pos": -260 + }, + { + "id": 10538, + "x_pos": 539.5, + "y_pos": -255.5 + }, + { + "id": 10537, + "x_pos": 537.5, + "y_pos": -246.5 + }, + { + "id": 10536, + "x_pos": 627, + "y_pos": -244.5 + }, + { + "id": 10535, + "x_pos": 626.5, + "y_pos": -241 + }, + { + "id": 10534, + "x_pos": 629, + "y_pos": -238.5 + }, + { + "id": 10533, + "x_pos": 624.5, + "y_pos": -237 + }, + { + "id": 10532, + "x_pos": 628.5, + "y_pos": -234.5 + }, + { + "id": 10531, + "x_pos": 633.5, + "y_pos": -272.5 + }, + { + "id": 10530, + "x_pos": 631, + "y_pos": -270 + }, + { + "id": 10529, + "x_pos": 616.5, + "y_pos": -264.5 + }, + { + "id": 10528, + "x_pos": 613, + "y_pos": -262.5 + }, + { + "id": 10527, + "x_pos": 617, + "y_pos": -261 + }, + { + "id": 10526, + "x_pos": 635, + "y_pos": -269 + }, + { + "id": 10000, + "x_pos": -238.5, + "y_pos": 527.5 + }, + { + "id": 9999, + "x_pos": -225, + "y_pos": 533 + }, + { + "id": 9998, + "x_pos": -165.5, + "y_pos": 519.5 + }, + { + "id": 9997, + "x_pos": -164.5, + "y_pos": 537 + }, + { + "id": 9996, + "x_pos": -145, + "y_pos": 519.5 + }, + { + "id": 9995, + "x_pos": -105, + "y_pos": 552 + }, + { + "id": 9994, + "x_pos": -88.5, + "y_pos": 550.5 + }, + { + "id": 9993, + "x_pos": -120, + "y_pos": 543 + }, + { + "id": 9992, + "x_pos": -69, + "y_pos": 563 + }, + { + "id": 9991, + "x_pos": -49.5, + "y_pos": 570 + }, + { + "id": 9990, + "x_pos": -38, + "y_pos": 582 + }, + { + "id": 9925, + "x_pos": -243.5, + "y_pos": 477 + }, + { + "id": 9913, + "x_pos": -346, + "y_pos": 415.5 + }, + { + "id": 9911, + "x_pos": -322.5, + "y_pos": 425.5 + }, + { + "id": 9907, + "x_pos": -238, + "y_pos": 425 + }, + { + "id": 9901, + "x_pos": -101, + "y_pos": 491.5 + }, + { + "id": 9900, + "x_pos": -102, + "y_pos": 468 + }, + { + "id": 9897, + "x_pos": -202, + "y_pos": 411 + }, + { + "id": 9895, + "x_pos": -75.5, + "y_pos": 475 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/079b97ad03d30e71ff1d40b11771ede7_6134944562226396604.png" + }, + "111": { + "name": "Book", + "clear_name": "Book", + "points": [ + { + "id": 23424, + "x_pos": -1371, + "y_pos": 620.5 + }, + { + "id": 23423, + "x_pos": -341.5, + "y_pos": 1369.5 + }, + { + "id": 23039, + "x_pos": 3456.5, + "y_pos": 4170 + }, + { + "id": 23038, + "x_pos": -1059.75, + "y_pos": 2836.25 + }, + { + "id": 22846, + "x_pos": 2507.5, + "y_pos": 5611.5 + }, + { + "id": 21570, + "x_pos": 3467, + "y_pos": 4156.5 + }, + { + "id": 21569, + "x_pos": 3534.5, + "y_pos": 4601.5 + }, + { + "id": 20096, + "x_pos": 3757.334859247687, + "y_pos": 6543.552383617438 + }, + { + "id": 20095, + "x_pos": 3485.055860707753, + "y_pos": 6672.72021689344 + }, + { + "id": 20094, + "x_pos": 3435.6093105444434, + "y_pos": 6682.380837083812 + }, + { + "id": 20093, + "x_pos": 3230.276862167818, + "y_pos": 6747.444055574666 + }, + { + "id": 20092, + "x_pos": 3667.776740168287, + "y_pos": 6913.832136234052 + }, + { + "id": 20091, + "x_pos": 3519.834920247453, + "y_pos": 6970.052322637546 + }, + { + "id": 20090, + "x_pos": 3657.606960673149, + "y_pos": 7164.9403728069865 + }, + { + "id": 20089, + "x_pos": 4043, + "y_pos": 7131.832166724 + }, + { + "id": 20088, + "x_pos": 2983.555799707987, + "y_pos": 7075.272570020932 + }, + { + "id": 20087, + "x_pos": 400.9441697921302, + "y_pos": 5850.048670359813 + }, + { + "id": 20086, + "x_pos": 174.83257037615658, + "y_pos": 5960.716625595598 + }, + { + "id": 20085, + "x_pos": 245.33257037615658, + "y_pos": 6021.500060979892 + }, + { + "id": 20084, + "x_pos": -59.613918787385956, + "y_pos": 6132.664272468106 + }, + { + "id": 20083, + "x_pos": 102.00692761435494, + "y_pos": 6291.40059412122 + }, + { + "id": 20082, + "x_pos": -254.72325983171322, + "y_pos": 6170.44043378688 + }, + { + "id": 20081, + "x_pos": -59.888400584026385, + "y_pos": 6363.716625595598 + }, + { + "id": 20080, + "x_pos": 208.2766791685217, + "y_pos": 6417.8248621685325 + }, + { + "id": 19421, + "x_pos": 2522.6179886768223, + "y_pos": 8517.006980802793 + }, + { + "id": 19420, + "x_pos": 146, + "y_pos": 6318 + }, + { + "id": 19419, + "x_pos": 132, + "y_pos": 6296 + }, + { + "id": 19418, + "x_pos": 95.5, + "y_pos": 6290 + }, + { + "id": 17796, + "x_pos": 3654.5, + "y_pos": 5332 + }, + { + "id": 17795, + "x_pos": 3662, + "y_pos": 5332 + }, + { + "id": 17721, + "x_pos": 2989.5, + "y_pos": 6753.5 + }, + { + "id": 17720, + "x_pos": 585, + "y_pos": 6110.5 + }, + { + "id": 16816, + "x_pos": 311.5, + "y_pos": 6240.5 + }, + { + "id": 15836, + "x_pos": 3336, + "y_pos": 5141 + }, + { + "id": 15811, + "x_pos": 2062, + "y_pos": 5878 + }, + { + "id": 15531, + "x_pos": 3359, + "y_pos": 5091.5 + }, + { + "id": 15336, + "x_pos": 1887, + "y_pos": 5742 + }, + { + "id": 15335, + "x_pos": 1655, + "y_pos": 5928.5 + }, + { + "id": 15334, + "x_pos": 1400.5, + "y_pos": 5934.5 + }, + { + "id": 15333, + "x_pos": 1495.5, + "y_pos": 6002.5 + }, + { + "id": 15332, + "x_pos": 1431, + "y_pos": 6066 + }, + { + "id": 15331, + "x_pos": 857, + "y_pos": 5975.5 + }, + { + "id": 15330, + "x_pos": 927, + "y_pos": 6079.5 + }, + { + "id": 15329, + "x_pos": 1497.5, + "y_pos": 6240 + }, + { + "id": 15328, + "x_pos": 1553, + "y_pos": 6305 + }, + { + "id": 15327, + "x_pos": 2337.5, + "y_pos": 6296 + }, + { + "id": 15326, + "x_pos": 2462, + "y_pos": 6293 + }, + { + "id": 15325, + "x_pos": 2400.5, + "y_pos": 6006.5 + }, + { + "id": 15324, + "x_pos": 2419.5, + "y_pos": 6041 + }, + { + "id": 15323, + "x_pos": 2617, + "y_pos": 6069.5 + }, + { + "id": 15322, + "x_pos": 2562, + "y_pos": 5531 + }, + { + "id": 15321, + "x_pos": 2705, + "y_pos": 5647.5 + }, + { + "id": 15320, + "x_pos": 4173.5, + "y_pos": 4535.5 + }, + { + "id": 14604, + "x_pos": 3867, + "y_pos": 4854 + }, + { + "id": 14603, + "x_pos": 2563, + "y_pos": 6244.5 + }, + { + "id": 14537, + "x_pos": 3629, + "y_pos": 5442 + }, + { + "id": 14472, + "x_pos": 3528.25, + "y_pos": 4755.5 + }, + { + "id": 14260, + "x_pos": 3588.75, + "y_pos": 4587.25 + }, + { + "id": 14259, + "x_pos": 2525.25, + "y_pos": 5599.25 + }, + { + "id": 14258, + "x_pos": 1542.5, + "y_pos": 6371 + }, + { + "id": 14143, + "x_pos": 1544.25, + "y_pos": 6215.75 + }, + { + "id": 14141, + "x_pos": 1218.75, + "y_pos": 5802.5 + }, + { + "id": 14140, + "x_pos": 3634, + "y_pos": 4805.5 + }, + { + "id": 14139, + "x_pos": 3420, + "y_pos": 4816 + }, + { + "id": 13953, + "x_pos": 2339.25, + "y_pos": 6118 + }, + { + "id": 13875, + "x_pos": 3127, + "y_pos": 4892 + }, + { + "id": 13651, + "x_pos": 2994.5, + "y_pos": 4913.5 + }, + { + "id": 10006, + "x_pos": -963, + "y_pos": 2986 + }, + { + "id": 10005, + "x_pos": -1141, + "y_pos": 2879 + }, + { + "id": 9144, + "x_pos": -1081.5, + "y_pos": 1389.5 + }, + { + "id": 6097, + "x_pos": -1174.9659641763437, + "y_pos": 3134.7605212816843 + }, + { + "id": 6096, + "x_pos": -1077.4884839278375, + "y_pos": 2823.380451186613 + }, + { + "id": 6095, + "x_pos": -1975.413562446905, + "y_pos": 3283.62558682088 + }, + { + "id": 6094, + "x_pos": -1068.3581292124577, + "y_pos": 2889.80719226143 + }, + { + "id": 6093, + "x_pos": -925.8925584479152, + "y_pos": 2939.3655578886364 + }, + { + "id": 6092, + "x_pos": -1134.4776571242346, + "y_pos": 2866.027479256085 + }, + { + "id": 6091, + "x_pos": -1172.7862392365341, + "y_pos": 2088.511270695869 + }, + { + "id": 6090, + "x_pos": -1140.0047637935854, + "y_pos": 2866.998118532455 + }, + { + "id": 6089, + "x_pos": -708.9027356433025, + "y_pos": 2356.481484099915 + }, + { + "id": 6088, + "x_pos": -2153.000433072144, + "y_pos": 1661.0020126078343 + }, + { + "id": 6087, + "x_pos": -631.869605624277, + "y_pos": 1746.45451515493 + }, + { + "id": 6086, + "x_pos": -1604.4204916012109, + "y_pos": 1158.865557888636 + }, + { + "id": 6085, + "x_pos": -1366.7219280231325, + "y_pos": 598.7117946500648 + }, + { + "id": 6084, + "x_pos": -657.9207081372833, + "y_pos": 1087.0443456782173 + }, + { + "id": 6083, + "x_pos": -1513.8821647164564, + "y_pos": 759.6598693679293 + }, + { + "id": 6082, + "x_pos": -1004.90879865332, + "y_pos": 755.8445065373649 + }, + { + "id": 6081, + "x_pos": 23.23887894782456, + "y_pos": 85.5312421911749 + }, + { + "id": 6080, + "x_pos": 193.999566927856, + "y_pos": 390.99597478433043 + }, + { + "id": 6079, + "x_pos": 23.759882946814287, + "y_pos": 88.37723101407755 + }, + { + "id": 6078, + "x_pos": 126.04313033868311, + "y_pos": 78.95974793530013 + }, + { + "id": 6077, + "x_pos": 125.61718567532716, + "y_pos": 83.53220181734969 + }, + { + "id": 6076, + "x_pos": 156.1184848917601, + "y_pos": 82.56078084860246 + }, + { + "id": 5313, + "x_pos": -321.5, + "y_pos": 554 + }, + { + "id": 5312, + "x_pos": -350.5, + "y_pos": 557 + }, + { + "id": 5311, + "x_pos": -339, + "y_pos": 558 + }, + { + "id": 5310, + "x_pos": -330.5, + "y_pos": 566.5 + }, + { + "id": 5309, + "x_pos": 23, + "y_pos": 79 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/9ad8f14184a36fc8b80fc1b63cd28c4f_4288835930251273654.png" + }, + "299": { + "name": "Brightcrown Pigeon", + "clear_name": "BrightcrownPigeon", + "points": [ + { + "id": 23304, + "x_pos": -764.3414562243461, + "y_pos": 3041.1454323551434 + }, + { + "id": 21455, + "x_pos": -1009.5, + "y_pos": 2982 + }, + { + "id": 21454, + "x_pos": -1013.5, + "y_pos": 2980.5 + }, + { + "id": 20886, + "x_pos": -1023, + "y_pos": 2931.5 + }, + { + "id": 20885, + "x_pos": -1026.5, + "y_pos": 2929.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/273f77cfd49e0ff2efa09ed5013fdc07_4051982333235704208.png" + }, + "274": { + "name": "White Pigeon", + "clear_name": "WhitePigeon", + "points": [ + { + "id": 23303, + "x_pos": -766.5233630509006, + "y_pos": 3038.8761037701415 + }, + { + "id": 23302, + "x_pos": -762.6319854445228, + "y_pos": 3039.7142421177477 + }, + { + "id": 21453, + "x_pos": -1005, + "y_pos": 784.5 + }, + { + "id": 21452, + "x_pos": -1009.5, + "y_pos": 784.5 + }, + { + "id": 20908, + "x_pos": -1024.1366577148438, + "y_pos": 2191.940444946289 + }, + { + "id": 20907, + "x_pos": -1021.8753051757812, + "y_pos": 2304.5215454101562 + }, + { + "id": 20906, + "x_pos": -1022.198974609375, + "y_pos": 2398.8270721435547 + }, + { + "id": 20905, + "x_pos": -1028.1571044921875, + "y_pos": 2538.808822631836 + }, + { + "id": 20904, + "x_pos": -988.771484375, + "y_pos": 2505.131881713867 + }, + { + "id": 20903, + "x_pos": -798.645751953125, + "y_pos": 2331.3392028808594 + }, + { + "id": 20902, + "x_pos": -986.0923156738281, + "y_pos": 1901.7798767089844 + }, + { + "id": 20901, + "x_pos": -965.3329162597656, + "y_pos": 1869.5828857421875 + }, + { + "id": 20900, + "x_pos": -1085.142578125, + "y_pos": 1742.1806030273438 + }, + { + "id": 20899, + "x_pos": -1124, + "y_pos": 2628.5 + }, + { + "id": 20898, + "x_pos": -1131.5, + "y_pos": 2631.5 + }, + { + "id": 20897, + "x_pos": -1130, + "y_pos": 2627.5 + }, + { + "id": 20896, + "x_pos": -1022, + "y_pos": 2928.5 + }, + { + "id": 20895, + "x_pos": -1020, + "y_pos": 2931.5 + }, + { + "id": 20894, + "x_pos": -1028, + "y_pos": 2927 + }, + { + "id": 20893, + "x_pos": -1003.5, + "y_pos": 2982 + }, + { + "id": 20892, + "x_pos": -1008, + "y_pos": 2980 + }, + { + "id": 20891, + "x_pos": -1010.5, + "y_pos": 2978 + }, + { + "id": 20843, + "x_pos": -1127, + "y_pos": 1273.5 + }, + { + "id": 20842, + "x_pos": -1130, + "y_pos": 1272 + }, + { + "id": 20583, + "x_pos": 310.5, + "y_pos": 132 + }, + { + "id": 20582, + "x_pos": 306, + "y_pos": 136.5 + }, + { + "id": 20581, + "x_pos": 857.5, + "y_pos": 187.5 + }, + { + "id": 20580, + "x_pos": 863, + "y_pos": 180.5 + }, + { + "id": 20579, + "x_pos": 1005.5, + "y_pos": -73.5 + }, + { + "id": 20578, + "x_pos": 1008.5, + "y_pos": -80 + }, + { + "id": 20577, + "x_pos": 968, + "y_pos": -76 + }, + { + "id": 20576, + "x_pos": 965, + "y_pos": -84 + }, + { + "id": 20575, + "x_pos": 947.5, + "y_pos": -47 + }, + { + "id": 20574, + "x_pos": 942, + "y_pos": -52 + }, + { + "id": 20573, + "x_pos": 938.5, + "y_pos": -47.5 + }, + { + "id": 20572, + "x_pos": 933, + "y_pos": -53 + }, + { + "id": 20571, + "x_pos": 928.5, + "y_pos": 14 + }, + { + "id": 20570, + "x_pos": 943, + "y_pos": 7.5 + }, + { + "id": 20569, + "x_pos": 935.5, + "y_pos": 52 + }, + { + "id": 20568, + "x_pos": 893.5, + "y_pos": 56 + }, + { + "id": 20567, + "x_pos": 279, + "y_pos": 133 + }, + { + "id": 20566, + "x_pos": 256.5, + "y_pos": 123 + }, + { + "id": 20565, + "x_pos": 252.5, + "y_pos": 128 + }, + { + "id": 20564, + "x_pos": 209.5, + "y_pos": -63.5 + }, + { + "id": 20563, + "x_pos": 207, + "y_pos": -66.5 + }, + { + "id": 20562, + "x_pos": 212.5, + "y_pos": -65.5 + }, + { + "id": 20561, + "x_pos": 181.5, + "y_pos": -55.5 + }, + { + "id": 20560, + "x_pos": 189, + "y_pos": -36 + }, + { + "id": 20559, + "x_pos": 186.5, + "y_pos": -32 + }, + { + "id": 20558, + "x_pos": 192, + "y_pos": -32.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/dd3321f323556f09db3266a9d447d457_6000274831934008211.png" + }, + "288": { + "name": "Golden Crab", + "clear_name": "GoldenCrab", + "points": [ + { + "id": 23292, + "x_pos": -1410.3489087006005, + "y_pos": 2149.9302238081455 + }, + { + "id": 23291, + "x_pos": -1418.3598321931922, + "y_pos": 2148.6291963437416 + }, + { + "id": 23290, + "x_pos": -1414.0640964485092, + "y_pos": 2144.091119031289 + }, + { + "id": 21285, + "x_pos": 2924, + "y_pos": 6627 + }, + { + "id": 21284, + "x_pos": 2933.3999938964844, + "y_pos": 6651.073998947246 + }, + { + "id": 21066, + "x_pos": -23.76531982421875, + "y_pos": 2414.6156616210938 + }, + { + "id": 20965, + "x_pos": -1608.5, + "y_pos": 1057.5 + }, + { + "id": 20815, + "x_pos": -1455.5, + "y_pos": 945.5 + }, + { + "id": 20722, + "x_pos": -13, + "y_pos": 253.00003051757812 + }, + { + "id": 20662, + "x_pos": 922.5, + "y_pos": -387.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/13f856fdf3ff98766323042faa264a11_5377005728875672077.png" + }, + "311": { + "name": "Snow Finch", + "clear_name": "SnowFinch", + "points": [ + { + "id": 23286, + "x_pos": -280.3446097786018, + "y_pos": 421.4799995422363 + }, + { + "id": 20731, + "x_pos": -246, + "y_pos": 264 + }, + { + "id": 20730, + "x_pos": -239, + "y_pos": 262 + }, + { + "id": 20729, + "x_pos": -246, + "y_pos": 260 + }, + { + "id": 20728, + "x_pos": -240.5, + "y_pos": 259 + }, + { + "id": 20727, + "x_pos": -285, + "y_pos": 424.5 + }, + { + "id": 20726, + "x_pos": -290, + "y_pos": 422 + }, + { + "id": 20725, + "x_pos": -284, + "y_pos": 421 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/301a02585666b96e8c182aff0e191e72_6828394741462633672.png" + }, + "270": { + "name": "Illusion\n", + "clear_name": "Illusion", + "points": [ + { + "id": 23044, + "x_pos": 2016.75, + "y_pos": 8351.25 + }, + { + "id": 19415, + "x_pos": 2144.5, + "y_pos": 8380 + }, + { + "id": 19414, + "x_pos": 2533, + "y_pos": 8441 + }, + { + "id": 19413, + "x_pos": 2040, + "y_pos": 8371.5 + }, + { + "id": 19412, + "x_pos": 2036.5, + "y_pos": 8492.5 + }, + { + "id": 19411, + "x_pos": 2028.5, + "y_pos": 8467.5 + }, + { + "id": 19410, + "x_pos": 2088, + "y_pos": 8571 + }, + { + "id": 19409, + "x_pos": 1977, + "y_pos": 8513.5 + }, + { + "id": 19408, + "x_pos": 1834.5, + "y_pos": 8583 + }, + { + "id": 19407, + "x_pos": 1741.5, + "y_pos": 8568 + }, + { + "id": 19406, + "x_pos": 1731.5, + "y_pos": 8716.5 + }, + { + "id": 19405, + "x_pos": 1614, + "y_pos": 8519 + }, + { + "id": 19404, + "x_pos": 1868.5, + "y_pos": 8330 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a7d055d592297e7e01e8c6ee80058c60_7353650371857455973.png" + }, + "264": { + "name": "Bake-Danuki", + "clear_name": "BakeDanuki", + "points": [ + { + "id": 23028, + "x_pos": 296.5, + "y_pos": 6034.197554554943 + }, + { + "id": 18315, + "x_pos": 3872.699951171875, + "y_pos": 7278.899963378906 + }, + { + "id": 18208, + "x_pos": 3400.1000061035156, + "y_pos": 4779.205273037343 + }, + { + "id": 18207, + "x_pos": 3394.7000122070312, + "y_pos": 4776.801322080322 + }, + { + "id": 18206, + "x_pos": 3655, + "y_pos": 4734.443552230909 + }, + { + "id": 18205, + "x_pos": 3789.8999938964844, + "y_pos": 4961.291414119876 + }, + { + "id": 18204, + "x_pos": 3752.2000122070312, + "y_pos": 5056.443582798804 + }, + { + "id": 18203, + "x_pos": 3894.999969482422, + "y_pos": 4878.899993896484 + }, + { + "id": 18202, + "x_pos": 2721.199920654297, + "y_pos": 5872.208585880124 + }, + { + "id": 18201, + "x_pos": 2524.6000061035156, + "y_pos": 5930 + }, + { + "id": 18200, + "x_pos": 2370.4000244140625, + "y_pos": 5905.188815811074 + }, + { + "id": 18199, + "x_pos": 2223.300018310547, + "y_pos": 6006.903950957021 + }, + { + "id": 18198, + "x_pos": 3008.499969482422, + "y_pos": 6727.100006103516 + }, + { + "id": 18197, + "x_pos": 3396.300048828125, + "y_pos": 6550.600006103516 + }, + { + "id": 18196, + "x_pos": 2497.6000061035156, + "y_pos": 5328.602644160645 + }, + { + "id": 18195, + "x_pos": 1363.7999877929688, + "y_pos": 5897.231668791954 + }, + { + "id": 18194, + "x_pos": 1377, + "y_pos": 6093.211883438957 + }, + { + "id": 18193, + "x_pos": 58.500030517578125, + "y_pos": 6089.100036621094 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210909/fefec44c899e3f9f3c9d5091a4733973_5640493047038887541.png" + }, + "338": { + "name": "Jade Chamber", + "clear_name": "JadeChamber", + "points": [ + { + "id": 22927, + "x_pos": -1201.25, + "y_pos": 3164.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220401/b050a19458ab549fa007766712a5a0cd_995299385499325456.png" + }, + "332": { + "name": "Seal Location III", + "clear_name": "SealLocationIII", + "points": [ + { + "id": 22096, + "x_pos": 80.25, + "y_pos": 5980.75 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211202/84b9f74ebba59cc0df0c294378fb60b3_7222261942729453870.png" + }, + "330": { + "name": "Seal Location IV", + "clear_name": "SealLocationIV", + "points": [ + { + "id": 22095, + "x_pos": 172.5, + "y_pos": 6138.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211201/3aee1116cc872126126027f019954bf2_7812133343549270588.png" + }, + "321": { + "name": "Seal Location II", + "clear_name": "SealLocationII", + "points": [ + { + "id": 22094, + "x_pos": 89.35701697812874, + "y_pos": 6231.428558391181 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211201/d5f77cf10162434a4aa7f8d96420ff54_1887457382905447122.png" + }, + "327": { + "name": "Key Sigil IV", + "clear_name": "KeySigilIV", + "points": [ + { + "id": 21656, + "x_pos": 364.25, + "y_pos": 6105.25 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/3d7cef1f80607527693e4dc8fa38f1b9_5841782470736252325.png" + }, + "326": { + "name": "Key Sigil III", + "clear_name": "KeySigilIII", + "points": [ + { + "id": 21655, + "x_pos": 89.5, + "y_pos": 5808.75 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/9f2f244ef9eb24e6d89236411b8e6df5_4587229791652196245.png" + }, + "325": { + "name": "Key Sigil II", + "clear_name": "KeySigilII", + "points": [ + { + "id": 21654, + "x_pos": 89.4257468826845, + "y_pos": 6225.785735917703 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/91fa09da2a38b968ff86d9d9d589edcb_657893017913539284.png" + }, + "303": { + "name": "Frog", + "clear_name": "Frog", + "points": [ + { + "id": 21566, + "x_pos": -1663.5, + "y_pos": 1725.5 + }, + { + "id": 21466, + "x_pos": -1762.5, + "y_pos": 987 + }, + { + "id": 21053, + "x_pos": -1581, + "y_pos": 3096 + }, + { + "id": 21052, + "x_pos": -1639.5, + "y_pos": 3058.5 + }, + { + "id": 21051, + "x_pos": -1671, + "y_pos": 3090.5 + }, + { + "id": 21050, + "x_pos": -1790.5, + "y_pos": 3078.5 + }, + { + "id": 21049, + "x_pos": -1810, + "y_pos": 3096.5 + }, + { + "id": 21048, + "x_pos": -2102.5, + "y_pos": 3221.5 + }, + { + "id": 21047, + "x_pos": -2087.93824755912, + "y_pos": 3226.881256229747 + }, + { + "id": 21046, + "x_pos": -1961.5, + "y_pos": 3241 + }, + { + "id": 21045, + "x_pos": -1953.5, + "y_pos": 3149.5 + }, + { + "id": 21044, + "x_pos": -1986, + "y_pos": 3182 + }, + { + "id": 21043, + "x_pos": -1939, + "y_pos": 3138.5 + }, + { + "id": 21042, + "x_pos": -1868, + "y_pos": 3132.5 + }, + { + "id": 21041, + "x_pos": -1740, + "y_pos": 3059.5 + }, + { + "id": 21040, + "x_pos": -1830.5, + "y_pos": 3078 + }, + { + "id": 21039, + "x_pos": -1817, + "y_pos": 3054 + }, + { + "id": 21038, + "x_pos": -1660.5, + "y_pos": 3082 + }, + { + "id": 21037, + "x_pos": -1574.5, + "y_pos": 3095 + }, + { + "id": 21036, + "x_pos": -1460.5, + "y_pos": 2978 + }, + { + "id": 21035, + "x_pos": -1400, + "y_pos": 3021 + }, + { + "id": 21034, + "x_pos": -1411.5, + "y_pos": 3054.5 + }, + { + "id": 21033, + "x_pos": -1439, + "y_pos": 3078 + }, + { + "id": 21032, + "x_pos": -1924, + "y_pos": 2877.5 + }, + { + "id": 21031, + "x_pos": -1880.5, + "y_pos": 2939.5 + }, + { + "id": 21030, + "x_pos": -1887.5, + "y_pos": 2943.5 + }, + { + "id": 21029, + "x_pos": -1661.5, + "y_pos": 2467.5 + }, + { + "id": 21028, + "x_pos": -1611, + "y_pos": 2594 + }, + { + "id": 21027, + "x_pos": -1618.5, + "y_pos": 2591.5 + }, + { + "id": 21026, + "x_pos": -1411, + "y_pos": 2251 + }, + { + "id": 21025, + "x_pos": -1404, + "y_pos": 2235.5 + }, + { + "id": 21024, + "x_pos": -1493.5, + "y_pos": 2171 + }, + { + "id": 21023, + "x_pos": -1486, + "y_pos": 2176 + }, + { + "id": 21022, + "x_pos": -1484, + "y_pos": 2225 + }, + { + "id": 20996, + "x_pos": -2141, + "y_pos": 755.5 + }, + { + "id": 20995, + "x_pos": -2144, + "y_pos": 769.5 + }, + { + "id": 20994, + "x_pos": -2094, + "y_pos": 925.5 + }, + { + "id": 20993, + "x_pos": -2063, + "y_pos": 1561.5 + }, + { + "id": 20992, + "x_pos": -2057, + "y_pos": 1564 + }, + { + "id": 20991, + "x_pos": -2052.5, + "y_pos": 1560.5 + }, + { + "id": 20990, + "x_pos": -1582.5, + "y_pos": 1118.5 + }, + { + "id": 20989, + "x_pos": -1585, + "y_pos": 1071 + }, + { + "id": 20988, + "x_pos": -1594.5, + "y_pos": 1059 + }, + { + "id": 20987, + "x_pos": -1588.5, + "y_pos": 1091.5 + }, + { + "id": 20986, + "x_pos": -1754.5, + "y_pos": 986 + }, + { + "id": 20985, + "x_pos": -1751, + "y_pos": 955.5 + }, + { + "id": 20984, + "x_pos": -1691.5, + "y_pos": 937.5 + }, + { + "id": 20983, + "x_pos": -1679.5, + "y_pos": 945.5 + }, + { + "id": 20982, + "x_pos": -1684, + "y_pos": 980 + }, + { + "id": 20981, + "x_pos": -1673.5, + "y_pos": 989.5 + }, + { + "id": 20980, + "x_pos": -1676.5, + "y_pos": 958.5 + }, + { + "id": 20979, + "x_pos": -1689, + "y_pos": 1000.5 + }, + { + "id": 20978, + "x_pos": -1630, + "y_pos": 1069.5 + }, + { + "id": 20887, + "x_pos": -646.5, + "y_pos": 2051 + }, + { + "id": 20802, + "x_pos": -990, + "y_pos": 1158 + }, + { + "id": 20801, + "x_pos": -1602, + "y_pos": 532.5 + }, + { + "id": 20800, + "x_pos": -1595.5, + "y_pos": 629.5 + }, + { + "id": 20799, + "x_pos": -1582.2000122070312, + "y_pos": 624.1789336258926 + }, + { + "id": 20798, + "x_pos": -1583, + "y_pos": 611.5 + }, + { + "id": 20797, + "x_pos": -1048.5, + "y_pos": 976 + }, + { + "id": 20796, + "x_pos": -615, + "y_pos": 754 + }, + { + "id": 20795, + "x_pos": -487.5, + "y_pos": 729 + }, + { + "id": 20794, + "x_pos": -841, + "y_pos": 571 + }, + { + "id": 20793, + "x_pos": -884, + "y_pos": 576.5 + }, + { + "id": 20759, + "x_pos": 739.6421120821806, + "y_pos": 941.1677551269531 + }, + { + "id": 20758, + "x_pos": 734.8471918531068, + "y_pos": 930.4388275146484 + }, + { + "id": 20711, + "x_pos": -833, + "y_pos": -593 + }, + { + "id": 20710, + "x_pos": -829.5, + "y_pos": -590.5 + }, + { + "id": 20709, + "x_pos": -845.4246057865803, + "y_pos": -578.0809067429609 + }, + { + "id": 20708, + "x_pos": -843, + "y_pos": -575 + }, + { + "id": 20707, + "x_pos": -875, + "y_pos": -162 + }, + { + "id": 20706, + "x_pos": -782.5, + "y_pos": -160 + }, + { + "id": 20705, + "x_pos": -884.300048828125, + "y_pos": -155.83711883954402 + }, + { + "id": 20606, + "x_pos": 409.5, + "y_pos": -15.5 + }, + { + "id": 20605, + "x_pos": 718.5, + "y_pos": 25 + }, + { + "id": 20604, + "x_pos": 819.985107421875, + "y_pos": 71.05372619628906 + }, + { + "id": 20603, + "x_pos": 822, + "y_pos": 71 + }, + { + "id": 20602, + "x_pos": 721.5, + "y_pos": 30.5 + }, + { + "id": 20601, + "x_pos": 406, + "y_pos": -17.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/e6d9141344fc5cd6a428a9b30863ab3c_3170222518531850850.png" + }, + "281": { + "name": "Anemo Crystalfly", + "clear_name": "AnemoCrystalfly", + "points": [ + { + "id": 21565, + "x_pos": -476.75, + "y_pos": 524.25 + }, + { + "id": 21564, + "x_pos": -481.5, + "y_pos": 524.5 + }, + { + "id": 21563, + "x_pos": -479.75, + "y_pos": 523.25 + }, + { + "id": 20701, + "x_pos": -790, + "y_pos": -402.9321360333888 + }, + { + "id": 20700, + "x_pos": -1131.699951171875, + "y_pos": -245.41086740336505 + }, + { + "id": 20699, + "x_pos": -671.2999572753906, + "y_pos": -602.4457241078899 + }, + { + "id": 20698, + "x_pos": -145.99996948242188, + "y_pos": 568 + }, + { + "id": 20697, + "x_pos": -136.99993896484375, + "y_pos": 573.0000305175781 + }, + { + "id": 20696, + "x_pos": -176.5, + "y_pos": 464.5 + }, + { + "id": 20695, + "x_pos": -176.5, + "y_pos": 472.50006103515625 + }, + { + "id": 20694, + "x_pos": -179, + "y_pos": 477.0000305175781 + }, + { + "id": 20693, + "x_pos": -160, + "y_pos": 607.5 + }, + { + "id": 20692, + "x_pos": -245.5, + "y_pos": 607 + }, + { + "id": 20691, + "x_pos": -283.5, + "y_pos": 634.0000305175781 + }, + { + "id": 20690, + "x_pos": -345.5, + "y_pos": 510 + }, + { + "id": 20689, + "x_pos": -333, + "y_pos": 554 + }, + { + "id": 20688, + "x_pos": -313, + "y_pos": 538.5000305175781 + }, + { + "id": 20687, + "x_pos": -376, + "y_pos": 523 + }, + { + "id": 20686, + "x_pos": -302, + "y_pos": 510.5000305175781 + }, + { + "id": 20685, + "x_pos": -380.5, + "y_pos": 561 + }, + { + "id": 20684, + "x_pos": -345.5, + "y_pos": 582.5 + }, + { + "id": 20683, + "x_pos": -325.6211098279382, + "y_pos": 570.1283703187546 + }, + { + "id": 20682, + "x_pos": -316.45068601945695, + "y_pos": 563.5641927919778 + }, + { + "id": 20589, + "x_pos": 337, + "y_pos": 22 + }, + { + "id": 20588, + "x_pos": 532.5, + "y_pos": 424 + }, + { + "id": 20587, + "x_pos": 528, + "y_pos": 431 + }, + { + "id": 20586, + "x_pos": 525.5, + "y_pos": 442.5 + }, + { + "id": 20585, + "x_pos": 508.5, + "y_pos": 440.5 + }, + { + "id": 20584, + "x_pos": 511.5, + "y_pos": 423 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/655a2d0725c1645930d53c870106dbee_7422764483185042721.png" + }, + "268": { + "name": "Mysterious Carvings", + "clear_name": "MysteriousCarvings", + "points": [ + { + "id": 21562, + "x_pos": 1825.5, + "y_pos": 8590.5 + }, + { + "id": 19557, + "x_pos": 2547.5, + "y_pos": 8372.5 + }, + { + "id": 19556, + "x_pos": 1841, + "y_pos": 8731.5 + }, + { + "id": 19553, + "x_pos": 2028, + "y_pos": 8511.5 + }, + { + "id": 19550, + "x_pos": 2031.5, + "y_pos": 8495 + }, + { + "id": 19548, + "x_pos": 2019, + "y_pos": 8481.5 + }, + { + "id": 19547, + "x_pos": 2020, + "y_pos": 8462.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211008/122816b9348379fd7d0abffd13e6819a_8837230147314091951.png" + }, + "73": { + "name": "Small Rock Pile", + "clear_name": "SmallRockPile", + "points": [ + { + "id": 21561, + "x_pos": -1607.25, + "y_pos": 2923.25 + }, + { + "id": 14497, + "x_pos": -1430.5, + "y_pos": 537 + }, + { + "id": 2581, + "x_pos": 118, + "y_pos": 2420.2167403983703 + }, + { + "id": 2580, + "x_pos": -1058, + "y_pos": 2351.0424450110413 + }, + { + "id": 2579, + "x_pos": -1561, + "y_pos": 2695.1186978108744 + }, + { + "id": 2578, + "x_pos": -1735, + "y_pos": 2569.185186462165 + }, + { + "id": 2577, + "x_pos": -1185, + "y_pos": 2286.5768162629793 + }, + { + "id": 2576, + "x_pos": -1330, + "y_pos": 1498.3576061850026 + }, + { + "id": 2575, + "x_pos": -2177, + "y_pos": 1536.0657322751003 + }, + { + "id": 2574, + "x_pos": -2159, + "y_pos": 1117.2167403983703 + }, + { + "id": 2573, + "x_pos": -976, + "y_pos": 1012.6466856931493 + }, + { + "id": 2572, + "x_pos": -732, + "y_pos": 757.4950911927558 + }, + { + "id": 2571, + "x_pos": -662, + "y_pos": 640.0555899384626 + }, + { + "id": 2570, + "x_pos": -324, + "y_pos": 127.15701330483807 + }, + { + "id": 2569, + "x_pos": 627, + "y_pos": 89.39592167896649 + }, + { + "id": 2568, + "x_pos": 807, + "y_pos": -534.8666521473162 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/36300d86a1b7107b847a5adcefa2cc37_4877607315399925900.png" + }, + "254": { + "name": "Unagi Meat", + "clear_name": "UnagiMeat", + "points": [ + { + "id": 21560, + "x_pos": 2333.5, + "y_pos": 6287.5 + }, + { + "id": 20274, + "x_pos": 486.3999938964844, + "y_pos": 6200.976833282883 + }, + { + "id": 20273, + "x_pos": 480.5000305175781, + "y_pos": 6200.679270092327 + }, + { + "id": 19517, + "x_pos": -207.5, + "y_pos": 5923 + }, + { + "id": 19166, + "x_pos": 2303.5, + "y_pos": 8525.5 + }, + { + "id": 19165, + "x_pos": 2290.5, + "y_pos": 8524 + }, + { + "id": 18528, + "x_pos": 3235.5, + "y_pos": 5542.5 + }, + { + "id": 18527, + "x_pos": 3228.5, + "y_pos": 5542.5 + }, + { + "id": 18526, + "x_pos": 419.5, + "y_pos": 6322 + }, + { + "id": 18525, + "x_pos": 400, + "y_pos": 6327 + }, + { + "id": 18524, + "x_pos": 234, + "y_pos": 6181 + }, + { + "id": 18523, + "x_pos": 230, + "y_pos": 6265.5 + }, + { + "id": 18522, + "x_pos": 227, + "y_pos": 6190.5 + }, + { + "id": 18521, + "x_pos": 145, + "y_pos": 6111 + }, + { + "id": 18520, + "x_pos": 132, + "y_pos": 6155 + }, + { + "id": 18519, + "x_pos": -111.5, + "y_pos": 5826 + }, + { + "id": 18518, + "x_pos": -118.5, + "y_pos": 5827.5 + }, + { + "id": 18517, + "x_pos": -114.5, + "y_pos": 5829.5 + }, + { + "id": 18516, + "x_pos": -306.5, + "y_pos": 6264.5 + }, + { + "id": 18515, + "x_pos": -314, + "y_pos": 6266.5 + }, + { + "id": 18514, + "x_pos": -307.5, + "y_pos": 6270 + }, + { + "id": 18513, + "x_pos": 351, + "y_pos": 5807.5 + }, + { + "id": 18512, + "x_pos": 390.5, + "y_pos": 5802.5 + }, + { + "id": 18511, + "x_pos": 429, + "y_pos": 5801.5 + }, + { + "id": 17773, + "x_pos": 3520, + "y_pos": 4499.5 + }, + { + "id": 17772, + "x_pos": 3515, + "y_pos": 4505 + }, + { + "id": 17771, + "x_pos": 1976, + "y_pos": 5952 + }, + { + "id": 17719, + "x_pos": 1373, + "y_pos": 5708 + }, + { + "id": 17718, + "x_pos": 1369, + "y_pos": 5718 + }, + { + "id": 17717, + "x_pos": 1375.5, + "y_pos": 5721 + }, + { + "id": 16359, + "x_pos": -268.300048828125, + "y_pos": 6269.164348489463 + }, + { + "id": 16358, + "x_pos": -281, + "y_pos": 6271.565326703205 + }, + { + "id": 16357, + "x_pos": -291.4000244140625, + "y_pos": 6276.144172715607 + }, + { + "id": 16356, + "x_pos": 0, + "y_pos": 6389.0884065727205 + }, + { + "id": 16355, + "x_pos": -7.5, + "y_pos": 6395.133160107458 + }, + { + "id": 16353, + "x_pos": -17.5999755859375, + "y_pos": 6397.271073753014 + }, + { + "id": 16350, + "x_pos": 81.59994506835938, + "y_pos": 6408.4838288185565 + }, + { + "id": 16347, + "x_pos": 169.89999389648438, + "y_pos": 6425.5928238409215 + }, + { + "id": 16343, + "x_pos": 174.20001220703125, + "y_pos": 6431.366847533131 + }, + { + "id": 16342, + "x_pos": 380.5, + "y_pos": 6327.715689723558 + }, + { + "id": 16341, + "x_pos": 372, + "y_pos": 6334.141964081506 + }, + { + "id": 16340, + "x_pos": 384.300048828125, + "y_pos": 6337.372693927395 + }, + { + "id": 16339, + "x_pos": 378.800048828125, + "y_pos": 6248.464761182044 + }, + { + "id": 16338, + "x_pos": 368.1000061035156, + "y_pos": 6250.286511269955 + }, + { + "id": 16337, + "x_pos": 423.70001220703125, + "y_pos": 6222.429575848215 + }, + { + "id": 16336, + "x_pos": 543.9000244140625, + "y_pos": 6127.346282005254 + }, + { + "id": 16335, + "x_pos": 547.5999755859375, + "y_pos": 6133.776973631402 + }, + { + "id": 16334, + "x_pos": 552.3999633789062, + "y_pos": 6141.678991217184 + }, + { + "id": 16333, + "x_pos": 560.8000183105469, + "y_pos": 6141.934711499742 + }, + { + "id": 16332, + "x_pos": 495.5, + "y_pos": 5908.077401605162 + }, + { + "id": 16329, + "x_pos": 489, + "y_pos": 5913.606748185319 + }, + { + "id": 16325, + "x_pos": -218.5, + "y_pos": 5925.106748185319 + }, + { + "id": 16323, + "x_pos": -213.699951171875, + "y_pos": 5931.877844860101 + }, + { + "id": 16320, + "x_pos": -64, + "y_pos": 5863.162506687615 + }, + { + "id": 16317, + "x_pos": -154.79998779296875, + "y_pos": 5836.877860141278 + }, + { + "id": 16314, + "x_pos": -161.4000244140625, + "y_pos": 5830.177172337104 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/069ad351743be8c58f332abd1cfce529_1026967221339384983.png" + }, + "308": { + "name": "Adorned Unagi", + "clear_name": "AdornedUnagi", + "points": [ + { + "id": 21514, + "x_pos": 2333.5, + "y_pos": 6287.5 + }, + { + "id": 21465, + "x_pos": 3520, + "y_pos": 4499.5 + }, + { + "id": 21464, + "x_pos": 3515, + "y_pos": 4505 + }, + { + "id": 21363, + "x_pos": 2287.5, + "y_pos": 8524 + }, + { + "id": 21362, + "x_pos": 2300, + "y_pos": 8529 + }, + { + "id": 21120, + "x_pos": 427.5998840332031, + "y_pos": 5799.557075911574 + }, + { + "id": 21119, + "x_pos": 230, + "y_pos": 6183.847486762343 + }, + { + "id": 21118, + "x_pos": 234, + "y_pos": 6178.5604758317295 + }, + { + "id": 21117, + "x_pos": 147.30001831054688, + "y_pos": 6105.704722397242 + }, + { + "id": 21116, + "x_pos": -216.19998168945312, + "y_pos": 5927.287922029884 + }, + { + "id": 21115, + "x_pos": -214.699951171875, + "y_pos": 5922.6895394442545 + }, + { + "id": 21114, + "x_pos": -210.5, + "y_pos": 5916.560090005643 + }, + { + "id": 21113, + "x_pos": 558.6999816894531, + "y_pos": 6140.295277602758 + }, + { + "id": 21112, + "x_pos": 543, + "y_pos": 6129.184970635144 + }, + { + "id": 21111, + "x_pos": 546.6000061035156, + "y_pos": 6127.178239629355 + }, + { + "id": 21110, + "x_pos": 550.2999877929688, + "y_pos": 6135.107266186869 + }, + { + "id": 21109, + "x_pos": 485.5999755859375, + "y_pos": 6201.883571317696 + }, + { + "id": 21108, + "x_pos": 480.39996337890625, + "y_pos": 6201.086009310384 + }, + { + "id": 21107, + "x_pos": 407.4999694824219, + "y_pos": 6325.90780787099 + }, + { + "id": 21106, + "x_pos": 377.8999938964844, + "y_pos": 6331.283429600697 + }, + { + "id": 21105, + "x_pos": 374.5000305175781, + "y_pos": 6330.328537204388 + }, + { + "id": 21104, + "x_pos": -6.89996337890625, + "y_pos": 6389.881279275149 + }, + { + "id": 21103, + "x_pos": -10.70001220703125, + "y_pos": 6389.284571802975 + }, + { + "id": 21102, + "x_pos": -7.9000244140625, + "y_pos": 6387.580405230887 + }, + { + "id": 21101, + "x_pos": -307.70001220703125, + "y_pos": 6263.622634414907 + }, + { + "id": 21100, + "x_pos": -313, + "y_pos": 6261.684391896013 + }, + { + "id": 21099, + "x_pos": -307.6999816894531, + "y_pos": 6259.983636654773 + }, + { + "id": 21098, + "x_pos": 346.5, + "y_pos": 5811.5 + }, + { + "id": 21097, + "x_pos": 391.5, + "y_pos": 5801 + }, + { + "id": 21096, + "x_pos": 482, + "y_pos": 5905 + }, + { + "id": 21095, + "x_pos": 486, + "y_pos": 5902 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/f560baf3d9f784eae6d8ac746d57d142_6694591620657962698.png" + }, + "294": { + "name": "Violet Ibis", + "clear_name": "VioletIbis", + "points": [ + { + "id": 21511, + "x_pos": 2595, + "y_pos": 5869.5 + }, + { + "id": 21510, + "x_pos": 2601.5, + "y_pos": 5876.5 + }, + { + "id": 21509, + "x_pos": 2537.5, + "y_pos": 6288.5 + }, + { + "id": 21508, + "x_pos": 2235.5, + "y_pos": 6320.5 + }, + { + "id": 21507, + "x_pos": 2152, + "y_pos": 6185.5 + }, + { + "id": 21506, + "x_pos": 2186.5, + "y_pos": 6111 + }, + { + "id": 21505, + "x_pos": 2149, + "y_pos": 6105 + }, + { + "id": 21504, + "x_pos": 1971, + "y_pos": 5725.5 + }, + { + "id": 21503, + "x_pos": 1979, + "y_pos": 5717.5 + }, + { + "id": 21502, + "x_pos": 2145.5, + "y_pos": 5942.5 + }, + { + "id": 21501, + "x_pos": 2141.5, + "y_pos": 5938.5 + }, + { + "id": 21500, + "x_pos": 2118.5, + "y_pos": 5943 + }, + { + "id": 21499, + "x_pos": 1944.5, + "y_pos": 5882 + }, + { + "id": 21498, + "x_pos": 1930.5, + "y_pos": 5898 + }, + { + "id": 21485, + "x_pos": 3380.5, + "y_pos": 4078 + }, + { + "id": 21484, + "x_pos": 3376.5, + "y_pos": 4079.5 + }, + { + "id": 21483, + "x_pos": 3367, + "y_pos": 4094.5 + }, + { + "id": 21482, + "x_pos": 3164, + "y_pos": 4742 + }, + { + "id": 21481, + "x_pos": 3483.5, + "y_pos": 4556 + }, + { + "id": 21480, + "x_pos": 3372, + "y_pos": 4736.5 + }, + { + "id": 21479, + "x_pos": 3206.5, + "y_pos": 4924 + }, + { + "id": 21478, + "x_pos": 1458, + "y_pos": 5869.5 + }, + { + "id": 21477, + "x_pos": 1460, + "y_pos": 5870 + }, + { + "id": 21476, + "x_pos": 1663.5, + "y_pos": 6056 + }, + { + "id": 21475, + "x_pos": 1661, + "y_pos": 6057 + }, + { + "id": 21359, + "x_pos": 1914.5, + "y_pos": 8355.5 + }, + { + "id": 21358, + "x_pos": 2237, + "y_pos": 8471 + }, + { + "id": 21357, + "x_pos": 2268, + "y_pos": 8487 + }, + { + "id": 21356, + "x_pos": 2284.5, + "y_pos": 8521.5 + }, + { + "id": 21355, + "x_pos": 2307.5, + "y_pos": 8540.5 + }, + { + "id": 21354, + "x_pos": 1910, + "y_pos": 8435.5 + }, + { + "id": 21353, + "x_pos": 1636.5, + "y_pos": 8746 + }, + { + "id": 21352, + "x_pos": 1631, + "y_pos": 8746.5 + }, + { + "id": 21351, + "x_pos": 2047.5, + "y_pos": 8408.5 + }, + { + "id": 21343, + "x_pos": 1858.5, + "y_pos": 5796.5 + }, + { + "id": 21342, + "x_pos": 1842, + "y_pos": 5796.5 + }, + { + "id": 21311, + "x_pos": 3321.3999938964844, + "y_pos": 6982.099524787907 + }, + { + "id": 21310, + "x_pos": 3316.1000061035156, + "y_pos": 6983.300889320246 + }, + { + "id": 21309, + "x_pos": 3217.8999938964844, + "y_pos": 6962.413967775639 + }, + { + "id": 21308, + "x_pos": 3217.3999938964844, + "y_pos": 6966.468808975906 + }, + { + "id": 21307, + "x_pos": 3073.6000061035156, + "y_pos": 7199.436661024583 + }, + { + "id": 21306, + "x_pos": 3047.699981689453, + "y_pos": 7223.78736620473 + }, + { + "id": 21305, + "x_pos": 3048.699981689453, + "y_pos": 7228.800348771078 + }, + { + "id": 21304, + "x_pos": 3118.699981689453, + "y_pos": 7257.395936954952 + }, + { + "id": 21303, + "x_pos": 3121.1000061035156, + "y_pos": 7261.900475212093 + }, + { + "id": 21302, + "x_pos": 3195.5, + "y_pos": 7285.11231444121 + }, + { + "id": 21301, + "x_pos": 3202.8999938964844, + "y_pos": 7258.690095269409 + }, + { + "id": 21300, + "x_pos": 3207.1000061035156, + "y_pos": 7261.599555339877 + }, + { + "id": 21299, + "x_pos": 3423.7000122070312, + "y_pos": 7402.495492294827 + }, + { + "id": 21298, + "x_pos": 3430.1000061035156, + "y_pos": 7404.601778640494 + }, + { + "id": 21297, + "x_pos": 3691.7000122070312, + "y_pos": 7113.291873909902 + }, + { + "id": 21296, + "x_pos": 3685.4000244140625, + "y_pos": 7116.5 + }, + { + "id": 21295, + "x_pos": 3553.699981689453, + "y_pos": 6628.004507705173 + }, + { + "id": 21294, + "x_pos": 3549.5, + "y_pos": 6627.5610392948765 + }, + { + "id": 21293, + "x_pos": 2790.300018310547, + "y_pos": 7015.097301487291 + }, + { + "id": 21292, + "x_pos": 2786.8999938964844, + "y_pos": 7014.904952365296 + }, + { + "id": 21291, + "x_pos": 3320.5, + "y_pos": 6792.502253852586 + }, + { + "id": 21290, + "x_pos": 3115, + "y_pos": 6872.886952096576 + }, + { + "id": 21289, + "x_pos": 3107, + "y_pos": 6887.079633578713 + }, + { + "id": 21288, + "x_pos": 2887.6000061035156, + "y_pos": 6589.146492780106 + }, + { + "id": 21170, + "x_pos": 133.39999389648438, + "y_pos": 5977.518586645843 + }, + { + "id": 21169, + "x_pos": 208.4000244140625, + "y_pos": 6257.484794133035 + }, + { + "id": 21168, + "x_pos": 48.300048828125, + "y_pos": 6235.485357596182 + }, + { + "id": 21167, + "x_pos": 59.200042724609375, + "y_pos": 6233.167148003484 + }, + { + "id": 21166, + "x_pos": -200.80001831054688, + "y_pos": 5936.6654576140445 + }, + { + "id": 21165, + "x_pos": -229.19998168945312, + "y_pos": 5872.433178988567 + }, + { + "id": 21164, + "x_pos": -75.89996337890625, + "y_pos": 5838.365471755076 + }, + { + "id": 21163, + "x_pos": -10.0999755859375, + "y_pos": 5854.723509594121 + }, + { + "id": 21162, + "x_pos": 94.20001220703125, + "y_pos": 5863.823095485966 + }, + { + "id": 21161, + "x_pos": 400.6999816894531, + "y_pos": 5980.071003994455 + }, + { + "id": 21160, + "x_pos": 488.70001220703125, + "y_pos": 6111.122842603936 + }, + { + "id": 21159, + "x_pos": 538.8999633789062, + "y_pos": 6078.312552047257 + }, + { + "id": 21158, + "x_pos": 482.1000061035156, + "y_pos": 6197.902112135585 + }, + { + "id": 21157, + "x_pos": 416.1999816894531, + "y_pos": 6447.108756025273 + }, + { + "id": 21156, + "x_pos": 455.5, + "y_pos": 6335.075689336687 + }, + { + "id": 21155, + "x_pos": 215.60000610351562, + "y_pos": 6462.154736538276 + }, + { + "id": 21154, + "x_pos": 197.70001220703125, + "y_pos": 6445.044505950584 + }, + { + "id": 21153, + "x_pos": 56, + "y_pos": 6413.348613688635 + }, + { + "id": 21152, + "x_pos": -12.4000244140625, + "y_pos": 6386.832049792372 + }, + { + "id": 21151, + "x_pos": -176.5, + "y_pos": 6279.9915556907945 + }, + { + "id": 21150, + "x_pos": -322, + "y_pos": 6274.185001187114 + }, + { + "id": 21149, + "x_pos": 343, + "y_pos": 5836.5 + }, + { + "id": 21148, + "x_pos": 399, + "y_pos": 5982 + }, + { + "id": 21147, + "x_pos": 356.5, + "y_pos": 6200.5 + }, + { + "id": 21146, + "x_pos": 450, + "y_pos": 6340 + }, + { + "id": 21145, + "x_pos": 85, + "y_pos": 5868 + }, + { + "id": 21144, + "x_pos": -11.5, + "y_pos": 5857 + }, + { + "id": 21143, + "x_pos": -76.5, + "y_pos": 5843 + }, + { + "id": 21142, + "x_pos": -283.5, + "y_pos": 5922 + }, + { + "id": 21141, + "x_pos": -274.5, + "y_pos": 6087 + }, + { + "id": 21140, + "x_pos": -241.5, + "y_pos": 6070 + }, + { + "id": 21139, + "x_pos": -416.5, + "y_pos": 6114 + }, + { + "id": 21138, + "x_pos": -359.5, + "y_pos": 6211.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/4fd734405c9100e83f3dc1009707eafa_1569735715519010305.png" + }, + "298": { + "name": "Electro Crystalfly", + "clear_name": "ElectroCrystalfly", + "points": [ + { + "id": 21492, + "x_pos": 3697.5, + "y_pos": 4781 + }, + { + "id": 21491, + "x_pos": 3449.8999633789062, + "y_pos": 4674.584288368974 + }, + { + "id": 21490, + "x_pos": 3449.2999877929688, + "y_pos": 4672.927676166208 + }, + { + "id": 21489, + "x_pos": 3448, + "y_pos": 4672.580389954902 + }, + { + "id": 21488, + "x_pos": 3462.5, + "y_pos": 5267 + }, + { + "id": 21487, + "x_pos": 3464.5, + "y_pos": 5266 + }, + { + "id": 21486, + "x_pos": 3473, + "y_pos": 5252 + }, + { + "id": 21341, + "x_pos": 2990.5, + "y_pos": 7084 + }, + { + "id": 21340, + "x_pos": 2991, + "y_pos": 7081.5 + }, + { + "id": 21339, + "x_pos": 3557.7000122070312, + "y_pos": 6879.506761557759 + }, + { + "id": 21338, + "x_pos": 3553.5, + "y_pos": 6890.540754621601 + }, + { + "id": 21337, + "x_pos": 3395.2000122070312, + "y_pos": 7368.685587564236 + }, + { + "id": 21336, + "x_pos": 3392.300018310547, + "y_pos": 7367.402698512709 + }, + { + "id": 21335, + "x_pos": 3389.6000061035156, + "y_pos": 7365.898190807537 + }, + { + "id": 21334, + "x_pos": 3387.3999938964844, + "y_pos": 7370.791904461872 + }, + { + "id": 21333, + "x_pos": 3385.2999877929688, + "y_pos": 7367.391429249779 + }, + { + "id": 21332, + "x_pos": 3391.3999938964844, + "y_pos": 7371.398221359506 + }, + { + "id": 21331, + "x_pos": 3608.5, + "y_pos": 7159.497746147414 + }, + { + "id": 21330, + "x_pos": 3612.7000122070312, + "y_pos": 7152.5 + }, + { + "id": 21329, + "x_pos": 3624.300018310547, + "y_pos": 7149.944950610707 + }, + { + "id": 21328, + "x_pos": 3704.6000061035156, + "y_pos": 6591.900444660123 + }, + { + "id": 21327, + "x_pos": 3713, + "y_pos": 6594.599524787907 + }, + { + "id": 21326, + "x_pos": 3705, + "y_pos": 6599.081887431299 + }, + { + "id": 21325, + "x_pos": 3546.800018310547, + "y_pos": 6567.099555339877 + }, + { + "id": 21324, + "x_pos": 3540, + "y_pos": 6566.803173724802 + }, + { + "id": 21323, + "x_pos": 3475.3999938964844, + "y_pos": 6588.803143172832 + }, + { + "id": 21322, + "x_pos": 3468.6000061035156, + "y_pos": 6589.5 + }, + { + "id": 21321, + "x_pos": 3472.3999938964844, + "y_pos": 6584.644817666651 + }, + { + "id": 21320, + "x_pos": 3269.199981689453, + "y_pos": 6670.289650609286 + }, + { + "id": 21319, + "x_pos": 3272, + "y_pos": 6675.604063045048 + }, + { + "id": 21318, + "x_pos": 2902.7000122070312, + "y_pos": 7015.400444660123 + }, + { + "id": 21317, + "x_pos": 2911.2999877929688, + "y_pos": 7014.900444660123 + }, + { + "id": 21316, + "x_pos": 3028.5, + "y_pos": 7049.497746147414 + }, + { + "id": 21315, + "x_pos": 2995, + "y_pos": 7008.5 + }, + { + "id": 21314, + "x_pos": 2974, + "y_pos": 6728.10104517828 + }, + { + "id": 21313, + "x_pos": 2972.4000244140625, + "y_pos": 6724.974042505299 + }, + { + "id": 21312, + "x_pos": 2997, + "y_pos": 6665.571745094661 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/79533c71e8ea286a803acbd343852d58_9218208595881978151.png" + }, + "291": { + "name": "General Crab", + "clear_name": "GeneralCrab", + "points": [ + { + "id": 21474, + "x_pos": 1052.5, + "y_pos": 5930 + }, + { + "id": 21473, + "x_pos": 1504, + "y_pos": 5806 + }, + { + "id": 21223, + "x_pos": 3228, + "y_pos": 6654.5 + }, + { + "id": 21222, + "x_pos": 2891, + "y_pos": 7073.5 + }, + { + "id": 21221, + "x_pos": 2884.5, + "y_pos": 7067 + }, + { + "id": 21220, + "x_pos": 3342.6000061035156, + "y_pos": 6951.701333980371 + }, + { + "id": 21219, + "x_pos": 3261.1000061035156, + "y_pos": 6926.467712601581 + }, + { + "id": 21218, + "x_pos": 3234.000030517578, + "y_pos": 6952.120989853422 + }, + { + "id": 21217, + "x_pos": 3171.5, + "y_pos": 7058.359720590492 + }, + { + "id": 21216, + "x_pos": 3169.199981689453, + "y_pos": 7099.5323026744045 + }, + { + "id": 21215, + "x_pos": 3162.5999755859375, + "y_pos": 7148 + }, + { + "id": 21214, + "x_pos": 3138.3999938964844, + "y_pos": 7202.900444660123 + }, + { + "id": 21213, + "x_pos": 3131, + "y_pos": 7273.5 + }, + { + "id": 21212, + "x_pos": 3139.1000366210938, + "y_pos": 7276.822887296938 + }, + { + "id": 21211, + "x_pos": 3242.2000122070312, + "y_pos": 7241.881619273283 + }, + { + "id": 21210, + "x_pos": 3281.0999755859375, + "y_pos": 7254.395936954952 + }, + { + "id": 21209, + "x_pos": 3289.2999877929688, + "y_pos": 7256.201364532339 + }, + { + "id": 21208, + "x_pos": 3513.199981689453, + "y_pos": 7308.101809192463 + }, + { + "id": 21207, + "x_pos": 3540.5, + "y_pos": 7410.400475212093 + }, + { + "id": 21206, + "x_pos": 3554.9000244140625, + "y_pos": 7399 + }, + { + "id": 21205, + "x_pos": 3450.1000061035156, + "y_pos": 6743.201333980371 + }, + { + "id": 21204, + "x_pos": 3502.5, + "y_pos": 6688.598227862547 + }, + { + "id": 21203, + "x_pos": 3597, + "y_pos": 6668.095410546815 + }, + { + "id": 21202, + "x_pos": 3294, + "y_pos": 6638.703648936895 + }, + { + "id": 21201, + "x_pos": 3329.8999938964844, + "y_pos": 6636.300889320246 + }, + { + "id": 21200, + "x_pos": 3381.2999877929688, + "y_pos": 6692.601809192463 + }, + { + "id": 21199, + "x_pos": 3044.1000061035156, + "y_pos": 7008.599524787907 + }, + { + "id": 21198, + "x_pos": 3046.5, + "y_pos": 7017.201333980371 + }, + { + "id": 21197, + "x_pos": 2858.199981689453, + "y_pos": 7028.300889320246 + }, + { + "id": 21196, + "x_pos": 2857.1000061035156, + "y_pos": 7015.597301487291 + }, + { + "id": 21195, + "x_pos": 2867.5, + "y_pos": 7007.569491242075 + }, + { + "id": 21194, + "x_pos": 2923.3999938964844, + "y_pos": 6985.223509594121 + }, + { + "id": 21193, + "x_pos": 3192.1000061035156, + "y_pos": 6587.303173724802 + }, + { + "id": 21192, + "x_pos": 3211.3999938964844, + "y_pos": 6605.592793782118 + }, + { + "id": 21191, + "x_pos": 3215, + "y_pos": 6618.559912368584 + }, + { + "id": 21190, + "x_pos": 3293.5999755859375, + "y_pos": 6745.898190807537 + }, + { + "id": 21189, + "x_pos": 3296.9000854492188, + "y_pos": 6750.194572422612 + }, + { + "id": 21188, + "x_pos": 3122.8999938964844, + "y_pos": 6860.181049307095 + }, + { + "id": 21137, + "x_pos": 577, + "y_pos": 6059.5 + }, + { + "id": 21136, + "x_pos": 583, + "y_pos": 6060 + }, + { + "id": 21135, + "x_pos": 228.39999389648438, + "y_pos": 6260.78624691643 + }, + { + "id": 21134, + "x_pos": -251.70001220703125, + "y_pos": 5894.096159285013 + }, + { + "id": 21133, + "x_pos": -228, + "y_pos": 5883.18387426082 + }, + { + "id": 21132, + "x_pos": -123.30001831054688, + "y_pos": 5838.184430085974 + }, + { + "id": 21131, + "x_pos": -114.39999389648438, + "y_pos": 5836.400985209293 + }, + { + "id": 21130, + "x_pos": 351, + "y_pos": 5846.5 + }, + { + "id": 21129, + "x_pos": 346, + "y_pos": 5858.5 + }, + { + "id": 21128, + "x_pos": -147.5, + "y_pos": 5833 + }, + { + "id": 21127, + "x_pos": -221, + "y_pos": 5920 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/c38b822574496babdb104d136f8db65e_3796953350578423316.png" + }, + "314": { + "name": "Crow", + "clear_name": "Crow", + "points": [ + { + "id": 21470, + "x_pos": 1683, + "y_pos": 5910.5 + }, + { + "id": 21469, + "x_pos": 1680, + "y_pos": 5912 + }, + { + "id": 21468, + "x_pos": 1693.5, + "y_pos": 5909.5 + }, + { + "id": 21467, + "x_pos": 1695, + "y_pos": 5906.5 + }, + { + "id": 21367, + "x_pos": 1735.5, + "y_pos": 8491.5 + }, + { + "id": 21366, + "x_pos": 1737, + "y_pos": 8490 + }, + { + "id": 21365, + "x_pos": 1828.5, + "y_pos": 8561 + }, + { + "id": 21364, + "x_pos": 1782.5, + "y_pos": 8633 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/248f89f1ab0c79f6f6dd43f9e1e3f137_5404098000200847302.png" + }, + "301": { + "name": "Green Horned Lizard", + "clear_name": "GreenHornedLizard", + "points": [ + { + "id": 21463, + "x_pos": 3132, + "y_pos": 4794.5 + }, + { + "id": 21462, + "x_pos": 3346.5, + "y_pos": 4864.5 + }, + { + "id": 21461, + "x_pos": 3333.5, + "y_pos": 4871.5 + }, + { + "id": 21460, + "x_pos": 1700.5, + "y_pos": 6293.5 + }, + { + "id": 21459, + "x_pos": 1608.5, + "y_pos": 6358 + }, + { + "id": 21344, + "x_pos": 1660, + "y_pos": 6426 + }, + { + "id": 20720, + "x_pos": -880, + "y_pos": -163.7483683563396 + }, + { + "id": 20600, + "x_pos": 548, + "y_pos": 6.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/abf57f467b7c9404b3e47f00fcf3813c_157108456459849289.png" + }, + "296": { + "name": "Blue Horned Lizard", + "clear_name": "BlueHornedLizard", + "points": [ + { + "id": 21458, + "x_pos": 1752.5, + "y_pos": 6208.5 + }, + { + "id": 21457, + "x_pos": 1701, + "y_pos": 6296.5 + }, + { + "id": 21230, + "x_pos": 3181.5, + "y_pos": 6608.5 + }, + { + "id": 21229, + "x_pos": 3290.2000122070312, + "y_pos": 6736.386921544607 + }, + { + "id": 21228, + "x_pos": 3301.8999938964844, + "y_pos": 6762.701333980371 + }, + { + "id": 21227, + "x_pos": 3287.2000122070312, + "y_pos": 6786.494921193689 + }, + { + "id": 21226, + "x_pos": 3263.8999938964844, + "y_pos": 6818.101809192463 + }, + { + "id": 21225, + "x_pos": 3198, + "y_pos": 6834.593156694229 + }, + { + "id": 21224, + "x_pos": 2943, + "y_pos": 6626.563293147463 + }, + { + "id": 20884, + "x_pos": -1170.6569213867188, + "y_pos": 1808.2571716308594 + }, + { + "id": 20883, + "x_pos": -1022.366943359375, + "y_pos": 2282.1470489501953 + }, + { + "id": 20882, + "x_pos": -1012.57177734375, + "y_pos": 2187.875518798828 + }, + { + "id": 20807, + "x_pos": -987.5, + "y_pos": 1089.5 + }, + { + "id": 20704, + "x_pos": -710.2999877929688, + "y_pos": -610.2575086002807 + }, + { + "id": 20703, + "x_pos": -719, + "y_pos": 254.5 + }, + { + "id": 20702, + "x_pos": -438.5, + "y_pos": 508 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/4b1a29183d0ac1a267ba4a8a64db5f6b_5091052195206844315.png" + }, + "283": { + "name": "Black King Pigeon", + "clear_name": "BlackKingPigeon", + "points": [ + { + "id": 21451, + "x_pos": -1556, + "y_pos": 532 + }, + { + "id": 21450, + "x_pos": -1564, + "y_pos": 534 + }, + { + "id": 21449, + "x_pos": -1555.5, + "y_pos": 529 + }, + { + "id": 21448, + "x_pos": -1562.5, + "y_pos": 528 + }, + { + "id": 20917, + "x_pos": -777.6725769042969, + "y_pos": 2267.77294921875 + }, + { + "id": 20916, + "x_pos": -1032.7427368164062, + "y_pos": 2052.5233154296875 + }, + { + "id": 20652, + "x_pos": 259, + "y_pos": 128.5 + }, + { + "id": 20651, + "x_pos": 270.5, + "y_pos": 133 + }, + { + "id": 20650, + "x_pos": 268.5, + "y_pos": 135 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/7ebe43d06a70e3d6240fd03d08e44661_8823606768185129608.png" + }, + "295": { + "name": "Sapphire", + "clear_name": "Sapphire", + "points": [ + { + "id": 21447, + "x_pos": 3803, + "y_pos": 5558 + }, + { + "id": 21390, + "x_pos": -1069.5, + "y_pos": 2938.5 + }, + { + "id": 21389, + "x_pos": 3701.5, + "y_pos": 4737 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/fdaef46f7d7bda53a75552cd91e84add_8889556744159090795.png" + }, + "280": { + "name": "Crimsonflank Pigeon", + "clear_name": "CrimsonflankPigeon", + "points": [ + { + "id": 21391, + "x_pos": 261, + "y_pos": 125.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/59da9abce6afd01f089a3efca6db9544_7038973255776382150.png" + }, + "287": { + "name": "Kitsune", + "clear_name": "Kitsune", + "points": [ + { + "id": 21388, + "x_pos": 3487.781928562854, + "y_pos": 5311.402240810361 + }, + { + "id": 21387, + "x_pos": 3498.781879146285, + "y_pos": 5314.402617839587 + }, + { + "id": 21386, + "x_pos": 3474, + "y_pos": 5322 + }, + { + "id": 21385, + "x_pos": 3474.78198696425, + "y_pos": 5329.404502985712 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/d6279980121d76f31054e1025940cb54_177887402954595404.png" + }, + "289": { + "name": "Gray Snow Cat", + "clear_name": "GraySnowCat", + "points": [ + { + "id": 21187, + "x_pos": 2969, + "y_pos": 7053.703618384925 + }, + { + "id": 21186, + "x_pos": 2980.8999938964844, + "y_pos": 7064.701364532339 + }, + { + "id": 21185, + "x_pos": 2938.1000061035156, + "y_pos": 7080.465042370939 + }, + { + "id": 21184, + "x_pos": 2942.7000122070312, + "y_pos": 7017.898190807537 + }, + { + "id": 21183, + "x_pos": 2943.7000122070312, + "y_pos": 7022.602365017618 + }, + { + "id": 21182, + "x_pos": 3019.5, + "y_pos": 7063.610060588624 + }, + { + "id": 21181, + "x_pos": 3150.3999938964844, + "y_pos": 6801.407391492934 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/5ac615d92c774a0befb61c5df58949b2_5106362145059134740.png" + }, + "282": { + "name": "Ocean Crab", + "clear_name": "OceanCrab", + "points": [ + { + "id": 21180, + "x_pos": 3308.5, + "y_pos": 6792.201364532339 + }, + { + "id": 21179, + "x_pos": 3316.300018310547, + "y_pos": 6782.002253852586 + }, + { + "id": 21178, + "x_pos": 3272.8999938964844, + "y_pos": 6820.203618384925 + }, + { + "id": 21177, + "x_pos": 3256.2000122070312, + "y_pos": 6840.502253852586 + }, + { + "id": 21176, + "x_pos": 3248, + "y_pos": 6842.083014357591 + }, + { + "id": 21175, + "x_pos": 3221.5, + "y_pos": 6842.069491242075 + }, + { + "id": 21174, + "x_pos": 3116.3999938964844, + "y_pos": 6846.287396756699 + }, + { + "id": 21173, + "x_pos": 3124.5999755859375, + "y_pos": 6845.889175397193 + }, + { + "id": 21172, + "x_pos": 3120.7999877929688, + "y_pos": 6880.398190807537 + }, + { + "id": 21171, + "x_pos": 3038.5, + "y_pos": 6891.079070115566 + }, + { + "id": 21065, + "x_pos": -210.14105224609375, + "y_pos": 2473.9694213867188 + }, + { + "id": 21064, + "x_pos": 128.06402587890625, + "y_pos": 2598.492156982422 + }, + { + "id": 21063, + "x_pos": 89.52862548828125, + "y_pos": 2579.528594970703 + }, + { + "id": 21062, + "x_pos": 141.41607666015625, + "y_pos": 2374.735565185547 + }, + { + "id": 21061, + "x_pos": -11.188232421875, + "y_pos": 2432.3936767578125 + }, + { + "id": 20734, + "x_pos": -27.000030517578125, + "y_pos": 244 + }, + { + "id": 20733, + "x_pos": -18.500030517578125, + "y_pos": 250.49996948242188 + }, + { + "id": 20732, + "x_pos": 5, + "y_pos": 270.5 + }, + { + "id": 20598, + "x_pos": 974.5, + "y_pos": -428.5 + }, + { + "id": 20597, + "x_pos": 878.5, + "y_pos": 322.5 + }, + { + "id": 20596, + "x_pos": 877, + "y_pos": 342.5 + }, + { + "id": 20595, + "x_pos": 868, + "y_pos": 349 + }, + { + "id": 20594, + "x_pos": 876, + "y_pos": 357 + }, + { + "id": 20593, + "x_pos": 826, + "y_pos": 444.5 + }, + { + "id": 20592, + "x_pos": 838.5, + "y_pos": 444.5 + }, + { + "id": 20591, + "x_pos": 835.5, + "y_pos": 452 + }, + { + "id": 20590, + "x_pos": 824, + "y_pos": 453 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/dc91128cbe42afd2beb80b9d875fdc0d_3704974644510104752.png" + }, + "304": { + "name": "Sunny Loach", + "clear_name": "SunnyLoach", + "points": [ + { + "id": 21094, + "x_pos": -415, + "y_pos": 6084 + }, + { + "id": 21093, + "x_pos": -439.5, + "y_pos": 6088.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/dd7a0fd142d9cfdf909a37848a543866_5593844105387921823.png" + }, + "300": { + "name": "Sunset Loach", + "clear_name": "SunsetLoach", + "points": [ + { + "id": 21092, + "x_pos": 135.79998779296875, + "y_pos": 5997.808869687169 + }, + { + "id": 21091, + "x_pos": -245, + "y_pos": 6166.683310797673 + }, + { + "id": 21090, + "x_pos": -239.5, + "y_pos": 6185 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/32add73120bf53b4afe17e5a130497ee_7731060857774575975.png" + }, + "278": { + "name": "Red-Finned Unagi", + "clear_name": "RedFinnedUnagi", + "points": [ + { + "id": 21087, + "x_pos": 425, + "y_pos": 6215.5 + }, + { + "id": 21086, + "x_pos": 232.20001220703125, + "y_pos": 6258.576445712877 + }, + { + "id": 21085, + "x_pos": 131.89999389648438, + "y_pos": 6158.041703910836 + }, + { + "id": 21084, + "x_pos": -108.79998779296875, + "y_pos": 5819.981398078173 + }, + { + "id": 21083, + "x_pos": -117.89996337890625, + "y_pos": 5820.888040832908 + }, + { + "id": 21082, + "x_pos": -113.20001220703125, + "y_pos": 5816.157437320888 + }, + { + "id": 21081, + "x_pos": -67.10000610351562, + "y_pos": 5853.332443256453 + }, + { + "id": 21080, + "x_pos": 372.79998779296875, + "y_pos": 6258.182199147364 + }, + { + "id": 21079, + "x_pos": 376.1000061035156, + "y_pos": 6254.444031873441 + }, + { + "id": 21078, + "x_pos": 424.6999816894531, + "y_pos": 6319.975778722692 + }, + { + "id": 21077, + "x_pos": 373.6999816894531, + "y_pos": 6333.783993063844 + }, + { + "id": 21076, + "x_pos": 179, + "y_pos": 6428.684437723967 + }, + { + "id": 21075, + "x_pos": 175.60000610351562, + "y_pos": 6425.179143090634 + }, + { + "id": 21074, + "x_pos": -287.7000427246094, + "y_pos": 6268.783429600697 + }, + { + "id": 21073, + "x_pos": -280.199951171875, + "y_pos": 6267.983636654773 + }, + { + "id": 21072, + "x_pos": -283.3999938964844, + "y_pos": 6267.1068421708205 + }, + { + "id": 21071, + "x_pos": 378, + "y_pos": 6261 + }, + { + "id": 21070, + "x_pos": 374, + "y_pos": 6255 + }, + { + "id": 21069, + "x_pos": -69.5, + "y_pos": 5851.5 + }, + { + "id": 21068, + "x_pos": -156, + "y_pos": 5832.5 + }, + { + "id": 21067, + "x_pos": -160.5, + "y_pos": 5832 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/8269127f7b4cc78702a3917ef5c41012_3267338587770624131.png" + }, + "307": { + "name": "Sun Crab", + "clear_name": "SunCrab", + "points": [ + { + "id": 21059, + "x_pos": -202, + "y_pos": 2468 + }, + { + "id": 21058, + "x_pos": 33.234130859375, + "y_pos": 2628.4519958496094 + }, + { + "id": 21057, + "x_pos": 93.4666748046875, + "y_pos": 2614.0337677001953 + }, + { + "id": 21056, + "x_pos": 98.98562622070312, + "y_pos": 2580.357208251953 + }, + { + "id": 21055, + "x_pos": -13.1077880859375, + "y_pos": 2417.6317138671875 + }, + { + "id": 21054, + "x_pos": -21.1744384765625, + "y_pos": 2426.17138671875 + }, + { + "id": 20997, + "x_pos": -1607.5, + "y_pos": 1084.5 + }, + { + "id": 20721, + "x_pos": -218, + "y_pos": 101 + }, + { + "id": 20645, + "x_pos": 946, + "y_pos": -410 + }, + { + "id": 20644, + "x_pos": 885, + "y_pos": 333.5 + }, + { + "id": 20643, + "x_pos": 871.5, + "y_pos": 334.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/2cd26ac121b7b3a6ed853da079eb2da3_6211420679554943149.png" + }, + "297": { + "name": "Blue Frog", + "clear_name": "BlueFrog", + "points": [ + { + "id": 20837, + "x_pos": -889.5, + "y_pos": 567.5 + }, + { + "id": 20755, + "x_pos": 774, + "y_pos": 911 + }, + { + "id": 20754, + "x_pos": 793.5718099981923, + "y_pos": 910.7143859863281 + }, + { + "id": 20719, + "x_pos": 135, + "y_pos": 529 + }, + { + "id": 20718, + "x_pos": 168, + "y_pos": 480 + }, + { + "id": 20717, + "x_pos": 179, + "y_pos": 493.5 + }, + { + "id": 20716, + "x_pos": 156, + "y_pos": 554 + }, + { + "id": 20715, + "x_pos": 171, + "y_pos": 566.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/c3674a442c4d636ac5321e0e6714544a_5422145187642381198.png" + }, + "292": { + "name": "Golden Loach", + "clear_name": "GoldenLoach", + "points": [ + { + "id": 20836, + "x_pos": -1025.5, + "y_pos": 1159.5 + }, + { + "id": 20835, + "x_pos": -1019.5, + "y_pos": 1185 + }, + { + "id": 20834, + "x_pos": -1155, + "y_pos": 946 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/9365968ae710394131f2ba33ae9103cd_6357176062164449470.png" + }, + "164": { + "name": "Sunsettia", + "clear_name": "Sunsettia", + "points": [ + { + "id": 20791, + "x_pos": 336.5, + "y_pos": 714 + }, + { + "id": 11776, + "x_pos": -1832.2623477673483, + "y_pos": 1186.3786224687879 + }, + { + "id": 10926, + "x_pos": -820, + "y_pos": 2077 + }, + { + "id": 10846, + "x_pos": 719.3784675528823, + "y_pos": -197.89979936079544 + }, + { + "id": 10769, + "x_pos": -1120.5, + "y_pos": 1646 + }, + { + "id": 10738, + "x_pos": -1344.5, + "y_pos": 1471.5 + }, + { + "id": 10288, + "x_pos": -1590.5, + "y_pos": 1208 + }, + { + "id": 10287, + "x_pos": -1349.5, + "y_pos": 1520 + }, + { + "id": 10286, + "x_pos": -548.5, + "y_pos": -98.5 + }, + { + "id": 10285, + "x_pos": 305.5, + "y_pos": 120.5 + }, + { + "id": 10284, + "x_pos": 488, + "y_pos": -93 + }, + { + "id": 10283, + "x_pos": 503, + "y_pos": -97.5 + }, + { + "id": 10282, + "x_pos": 291, + "y_pos": 184 + }, + { + "id": 10281, + "x_pos": 692, + "y_pos": 156.5 + }, + { + "id": 10269, + "x_pos": 733.5, + "y_pos": 887 + }, + { + "id": 10262, + "x_pos": 1376.9264448776812, + "y_pos": 870.6791567777809 + }, + { + "id": 10261, + "x_pos": 1375.6859206476793, + "y_pos": 873.9670021884413 + }, + { + "id": 10260, + "x_pos": 861.5, + "y_pos": 912 + }, + { + "id": 10259, + "x_pos": 832, + "y_pos": 865 + }, + { + "id": 10258, + "x_pos": 825, + "y_pos": 833.5 + }, + { + "id": 10257, + "x_pos": 829.5, + "y_pos": 809 + }, + { + "id": 10256, + "x_pos": 874.5, + "y_pos": 830.5 + }, + { + "id": 10255, + "x_pos": 1230, + "y_pos": 904.5 + }, + { + "id": 10254, + "x_pos": 1186.5, + "y_pos": 874.5 + }, + { + "id": 10253, + "x_pos": 1189.5, + "y_pos": 821 + }, + { + "id": 10252, + "x_pos": 1071, + "y_pos": 898 + }, + { + "id": 10251, + "x_pos": 992, + "y_pos": 883.5 + }, + { + "id": 10250, + "x_pos": 966, + "y_pos": 851 + }, + { + "id": 10249, + "x_pos": 916.5, + "y_pos": 735.5 + }, + { + "id": 10248, + "x_pos": 844, + "y_pos": 698 + }, + { + "id": 10247, + "x_pos": 828.5, + "y_pos": 706 + }, + { + "id": 10246, + "x_pos": 819, + "y_pos": 717.5 + }, + { + "id": 10245, + "x_pos": 628.5, + "y_pos": 675.5 + }, + { + "id": 10244, + "x_pos": 567.5, + "y_pos": 660.5 + }, + { + "id": 10243, + "x_pos": 550, + "y_pos": 687.5 + }, + { + "id": 10242, + "x_pos": 537.5, + "y_pos": 558.5 + }, + { + "id": 10241, + "x_pos": 510, + "y_pos": 573 + }, + { + "id": 10240, + "x_pos": 491.5, + "y_pos": 561 + }, + { + "id": 10239, + "x_pos": 369, + "y_pos": 536.5 + }, + { + "id": 10238, + "x_pos": 344.5, + "y_pos": 415 + }, + { + "id": 10237, + "x_pos": 108.5, + "y_pos": 298.5 + }, + { + "id": 10236, + "x_pos": 19.5, + "y_pos": 298 + }, + { + "id": 10235, + "x_pos": -117, + "y_pos": 234.5 + }, + { + "id": 10234, + "x_pos": -125, + "y_pos": 235.5 + }, + { + "id": 10233, + "x_pos": -135, + "y_pos": 194 + }, + { + "id": 10232, + "x_pos": -380.5, + "y_pos": 36.5 + }, + { + "id": 10231, + "x_pos": -229, + "y_pos": 221.5 + }, + { + "id": 10230, + "x_pos": 93, + "y_pos": 671 + }, + { + "id": 10229, + "x_pos": -14, + "y_pos": 482.5 + }, + { + "id": 10228, + "x_pos": -388, + "y_pos": 317.5 + }, + { + "id": 10227, + "x_pos": -368.5, + "y_pos": 418 + }, + { + "id": 10226, + "x_pos": -432, + "y_pos": 422.5 + }, + { + "id": 10225, + "x_pos": -444.5, + "y_pos": 543.5 + }, + { + "id": 10224, + "x_pos": -640, + "y_pos": 628 + }, + { + "id": 10223, + "x_pos": -616.5, + "y_pos": 704 + }, + { + "id": 10222, + "x_pos": -647, + "y_pos": 711 + }, + { + "id": 10221, + "x_pos": -741, + "y_pos": 633 + }, + { + "id": 10220, + "x_pos": -565.5, + "y_pos": 750.5 + }, + { + "id": 10219, + "x_pos": -619, + "y_pos": 818.5 + }, + { + "id": 10218, + "x_pos": -723.5, + "y_pos": 806.5 + }, + { + "id": 10217, + "x_pos": -796, + "y_pos": 791.5 + }, + { + "id": 10216, + "x_pos": -792.5, + "y_pos": 805.5 + }, + { + "id": 10215, + "x_pos": -865.5, + "y_pos": 847.5 + }, + { + "id": 10214, + "x_pos": -1008, + "y_pos": 764.5 + }, + { + "id": 10213, + "x_pos": -1166, + "y_pos": 562.5 + }, + { + "id": 10212, + "x_pos": -1559, + "y_pos": 574 + }, + { + "id": 10211, + "x_pos": -1557.5, + "y_pos": 618.5 + }, + { + "id": 10210, + "x_pos": -1486, + "y_pos": 810 + }, + { + "id": 10209, + "x_pos": -1198, + "y_pos": 954 + }, + { + "id": 10208, + "x_pos": -1013, + "y_pos": 1061.5 + }, + { + "id": 10207, + "x_pos": -968.5, + "y_pos": 1069 + }, + { + "id": 10206, + "x_pos": -1049, + "y_pos": 1202.5 + }, + { + "id": 10205, + "x_pos": -1102, + "y_pos": 1219.5 + }, + { + "id": 10204, + "x_pos": -1144, + "y_pos": 1286 + }, + { + "id": 10203, + "x_pos": -1091, + "y_pos": 1385.5 + }, + { + "id": 10202, + "x_pos": -1592.5, + "y_pos": 1212 + }, + { + "id": 10201, + "x_pos": -1565, + "y_pos": 1353 + }, + { + "id": 10200, + "x_pos": -919.5, + "y_pos": 1772 + }, + { + "id": 10199, + "x_pos": -1048.5, + "y_pos": 1776 + }, + { + "id": 10198, + "x_pos": -1244.5, + "y_pos": 1755 + }, + { + "id": 10197, + "x_pos": -1141, + "y_pos": 1897.5 + }, + { + "id": 10196, + "x_pos": -1044.5, + "y_pos": 1919 + }, + { + "id": 10195, + "x_pos": -1021.5, + "y_pos": 1913.5 + }, + { + "id": 10194, + "x_pos": -868, + "y_pos": 2007 + }, + { + "id": 10193, + "x_pos": -2087.5, + "y_pos": 1623 + }, + { + "id": 10192, + "x_pos": -1785, + "y_pos": 1945.5 + }, + { + "id": 10191, + "x_pos": -1790, + "y_pos": 1957.5 + }, + { + "id": 10190, + "x_pos": -1007, + "y_pos": 2215.5 + }, + { + "id": 10189, + "x_pos": -1112.5, + "y_pos": 2261 + }, + { + "id": 10188, + "x_pos": -1060.5, + "y_pos": 2300 + }, + { + "id": 10187, + "x_pos": -855, + "y_pos": 2325.5 + }, + { + "id": 10186, + "x_pos": -764.5, + "y_pos": 2400 + }, + { + "id": 10184, + "x_pos": 1148, + "y_pos": 977.5 + }, + { + "id": 10183, + "x_pos": 803, + "y_pos": 1088 + }, + { + "id": 10182, + "x_pos": 669, + "y_pos": 1087 + }, + { + "id": 10181, + "x_pos": 731.5, + "y_pos": 1121 + }, + { + "id": 10180, + "x_pos": 924, + "y_pos": 1110 + }, + { + "id": 10179, + "x_pos": 971, + "y_pos": 1097.5 + }, + { + "id": 10178, + "x_pos": 1044.5, + "y_pos": 989.5 + }, + { + "id": 10177, + "x_pos": 1032, + "y_pos": 996.5 + }, + { + "id": 10176, + "x_pos": 903, + "y_pos": 933 + }, + { + "id": 10175, + "x_pos": 774.5, + "y_pos": 877 + }, + { + "id": 10174, + "x_pos": 713.5, + "y_pos": 924.5 + }, + { + "id": 10173, + "x_pos": 764, + "y_pos": 997 + }, + { + "id": 10172, + "x_pos": 793, + "y_pos": 990.5 + }, + { + "id": 10171, + "x_pos": 768, + "y_pos": 1026 + }, + { + "id": 10170, + "x_pos": 715, + "y_pos": 1032.5 + }, + { + "id": 10137, + "x_pos": -1383.5, + "y_pos": 2309.507643858148 + }, + { + "id": 10128, + "x_pos": -1507.6000061035156, + "y_pos": 2312.7641864962425 + }, + { + "id": 9691, + "x_pos": 1254, + "y_pos": 828 + }, + { + "id": 9689, + "x_pos": 1289.5, + "y_pos": 973.5 + }, + { + "id": 9685, + "x_pos": 1375.5, + "y_pos": 881 + }, + { + "id": 9684, + "x_pos": 1306.5, + "y_pos": 757.5 + }, + { + "id": 9656, + "x_pos": 657.8625779669692, + "y_pos": -217.2897113766603 + }, + { + "id": 9446, + "x_pos": -733.5, + "y_pos": 1345.5 + }, + { + "id": 9325, + "x_pos": -795, + "y_pos": 1087.5 + }, + { + "id": 9279, + "x_pos": 618.5, + "y_pos": 50 + }, + { + "id": 9232, + "x_pos": 444.5, + "y_pos": -313 + }, + { + "id": 9231, + "x_pos": 515, + "y_pos": -266.5 + }, + { + "id": 9230, + "x_pos": 482, + "y_pos": -254.5 + }, + { + "id": 9229, + "x_pos": 407.5, + "y_pos": -198.5 + }, + { + "id": 9228, + "x_pos": 412, + "y_pos": -190.5 + }, + { + "id": 9227, + "x_pos": 810.5, + "y_pos": -275 + }, + { + "id": 9226, + "x_pos": 621, + "y_pos": -137 + }, + { + "id": 9225, + "x_pos": 414, + "y_pos": 152.5 + }, + { + "id": 9224, + "x_pos": 432.5, + "y_pos": -151.5 + }, + { + "id": 9223, + "x_pos": 400, + "y_pos": 147.5 + }, + { + "id": 9222, + "x_pos": 572.5, + "y_pos": -82.5 + }, + { + "id": 9164, + "x_pos": 806.5, + "y_pos": -274 + }, + { + "id": 9158, + "x_pos": 700.5, + "y_pos": -228 + }, + { + "id": 8837, + "x_pos": -524.4444961172485, + "y_pos": 1458.3339946229935 + }, + { + "id": 8836, + "x_pos": -587.2779234380232, + "y_pos": 1452.274762939226 + }, + { + "id": 8835, + "x_pos": -500.7775804447283, + "y_pos": 1537.7766857968954 + }, + { + "id": 8834, + "x_pos": -395.0555038827515, + "y_pos": 1567.7766857968954 + }, + { + "id": 8833, + "x_pos": -632.5, + "y_pos": 1620.666035882662 + }, + { + "id": 8781, + "x_pos": -680.8334273207747, + "y_pos": 1939.8320412596686 + }, + { + "id": 8700, + "x_pos": -2081.8334883517446, + "y_pos": 3088.1660053770065 + }, + { + "id": 8699, + "x_pos": -2020.2224195552712, + "y_pos": 2798.11068041989 + }, + { + "id": 8698, + "x_pos": -1738.8889312035271, + "y_pos": 3212.9427216795575 + }, + { + "id": 8697, + "x_pos": -1685.555503882752, + "y_pos": 2952.8320412596686 + }, + { + "id": 8696, + "x_pos": -1784.5, + "y_pos": 2813.3873662167853 + }, + { + "id": 8695, + "x_pos": -1571.444496117248, + "y_pos": 3216.8320412596686 + }, + { + "id": 8694, + "x_pos": -1511.5, + "y_pos": 2924.2766857968954 + }, + { + "id": 8693, + "x_pos": -1646.444496117248, + "y_pos": 2978.7213608397788 + }, + { + "id": 8456, + "x_pos": 547.5, + "y_pos": -461.5 + }, + { + "id": 8455, + "x_pos": 409, + "y_pos": -441 + }, + { + "id": 8454, + "x_pos": 869, + "y_pos": -461.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/b71fabe5cae6c8e8e1412121b4c28c89_1413246670718980593.png" + }, + "313": { + "name": "Snowboar", + "clear_name": "Snowboar", + "points": [ + { + "id": 20787, + "x_pos": -82, + "y_pos": 1291.5 + }, + { + "id": 20786, + "x_pos": 256.5, + "y_pos": 1631.5 + }, + { + "id": 20785, + "x_pos": 293, + "y_pos": 1571 + }, + { + "id": 20784, + "x_pos": 427.5, + "y_pos": 1640.5 + }, + { + "id": 20783, + "x_pos": 424.5, + "y_pos": 1621 + }, + { + "id": 20782, + "x_pos": 461.5, + "y_pos": 1562 + }, + { + "id": 20781, + "x_pos": 501.5, + "y_pos": 1488 + }, + { + "id": 20780, + "x_pos": 492.5, + "y_pos": 1444.5 + }, + { + "id": 20779, + "x_pos": 510, + "y_pos": 1366.5 + }, + { + "id": 20778, + "x_pos": 499, + "y_pos": 1380 + }, + { + "id": 20777, + "x_pos": 387, + "y_pos": 1322 + }, + { + "id": 20776, + "x_pos": 372.5, + "y_pos": 1311.5 + }, + { + "id": 20775, + "x_pos": 383.5, + "y_pos": 1284.5 + }, + { + "id": 20774, + "x_pos": 385, + "y_pos": 1254.5 + }, + { + "id": 20773, + "x_pos": 382, + "y_pos": 1241.5 + }, + { + "id": 20772, + "x_pos": 314.5, + "y_pos": 1228.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/21d90b3dd945a4c06f94d7dbdefbf837_4029802170462104137.png" + }, + "312": { + "name": "Snow Weasel", + "clear_name": "SnowWeasel", + "points": [ + { + "id": 20771, + "x_pos": -419.5, + "y_pos": 1204 + }, + { + "id": 20770, + "x_pos": -298, + "y_pos": 1473.5 + }, + { + "id": 20769, + "x_pos": -45, + "y_pos": 1233.5 + }, + { + "id": 20768, + "x_pos": -31.5, + "y_pos": 1239 + }, + { + "id": 20767, + "x_pos": -94.5, + "y_pos": 1307 + }, + { + "id": 20766, + "x_pos": 419, + "y_pos": 1087 + }, + { + "id": 20765, + "x_pos": 420, + "y_pos": 1076 + }, + { + "id": 20764, + "x_pos": 282, + "y_pos": 901 + }, + { + "id": 20763, + "x_pos": 342, + "y_pos": 906 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/e1398605035948ed8b39873dd5524f64_3940714216224951423.png" + }, + "310": { + "name": "Snow Fox", + "clear_name": "SnowFox", + "points": [ + { + "id": 20762, + "x_pos": -314.5, + "y_pos": 1390 + }, + { + "id": 20761, + "x_pos": -128, + "y_pos": 1414 + }, + { + "id": 20760, + "x_pos": 329.5, + "y_pos": 1238.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/ce123e8787b37d7905616190da192a97_6800133382960324945.png" + }, + "277": { + "name": "Cryo Crystalfly", + "clear_name": "CryoCrystalfly", + "points": [ + { + "id": 20753, + "x_pos": -80, + "y_pos": 1258.5 + }, + { + "id": 20752, + "x_pos": -357, + "y_pos": 1313 + }, + { + "id": 20751, + "x_pos": -368, + "y_pos": 1326.5 + }, + { + "id": 20750, + "x_pos": -374.5, + "y_pos": 1334.5 + }, + { + "id": 20749, + "x_pos": -344.5, + "y_pos": 1341.5 + }, + { + "id": 20748, + "x_pos": -276, + "y_pos": 1441 + }, + { + "id": 20747, + "x_pos": -60.5, + "y_pos": 1129 + }, + { + "id": 20746, + "x_pos": -67, + "y_pos": 1124 + }, + { + "id": 20745, + "x_pos": -56.5, + "y_pos": 1120.5 + }, + { + "id": 20744, + "x_pos": 144, + "y_pos": 1139.5 + }, + { + "id": 20743, + "x_pos": 132, + "y_pos": 1135.5 + }, + { + "id": 20742, + "x_pos": 319, + "y_pos": 1249.5 + }, + { + "id": 20741, + "x_pos": 308.5, + "y_pos": 1250.5 + }, + { + "id": 20740, + "x_pos": 397, + "y_pos": 1113 + }, + { + "id": 20739, + "x_pos": 418, + "y_pos": 993.5 + }, + { + "id": 20738, + "x_pos": 432.5, + "y_pos": 996 + }, + { + "id": 20737, + "x_pos": 428.5, + "y_pos": 981 + }, + { + "id": 20736, + "x_pos": 339.5, + "y_pos": 905.5 + }, + { + "id": 20735, + "x_pos": 325.5, + "y_pos": 898 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/ce7dea7a7d6327dba864d87bc286e02d_6899452121064095360.png" + }, + "290": { + "name": "Graywing Pigeon", + "clear_name": "GraywingPigeon", + "points": [ + { + "id": 20665, + "x_pos": 274.5, + "y_pos": 137 + }, + { + "id": 20664, + "x_pos": 233, + "y_pos": 111 + }, + { + "id": 20663, + "x_pos": 237.5, + "y_pos": 117.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/02707bf92ce494e85108a14bbc1d2793_2320595906129765252.png" + }, + "319": { + "name": "The Crux: The Alcor", + "clear_name": "TheCruxTheAlcor", + "points": [ + { + "id": 20370, + "x_pos": 399, + "y_pos": 2737 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220401/3dc0660e5fd1b2fdeb13c592b187842d_8699723443844272516.png" + }, + "318": { + "name": "Golden Wolflord", + "clear_name": "GoldenWolflord", + "points": [ + { + "id": 20368, + "x_pos": 1915, + "y_pos": 8978 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211101/80383144bc3478f132b306e946b19bfd_7588680653722338925.png" + }, + "112": { + "name": "Recipe", + "clear_name": "Recipe", + "points": [ + { + "id": 20279, + "x_pos": 3675.5, + "y_pos": 5405 + }, + { + "id": 20251, + "x_pos": 3610, + "y_pos": 5324.5 + }, + { + "id": 15669, + "x_pos": 3061, + "y_pos": 4923 + }, + { + "id": 14612, + "x_pos": -1072.5, + "y_pos": 1436 + }, + { + "id": 10008, + "x_pos": -1087, + "y_pos": 2879 + }, + { + "id": 10007, + "x_pos": -1109, + "y_pos": 2862.5 + }, + { + "id": 7491, + "x_pos": 131.5, + "y_pos": 1072 + }, + { + "id": 5325, + "x_pos": -976.5, + "y_pos": 2992.5 + }, + { + "id": 5324, + "x_pos": -925.5, + "y_pos": 2952.5 + }, + { + "id": 5323, + "x_pos": -1181, + "y_pos": 2751 + }, + { + "id": 5322, + "x_pos": -2059, + "y_pos": 1545 + }, + { + "id": 5321, + "x_pos": -2177, + "y_pos": 1484 + }, + { + "id": 5320, + "x_pos": -2392, + "y_pos": 1166.5 + }, + { + "id": 5319, + "x_pos": -1114.5, + "y_pos": 1405.5 + }, + { + "id": 5318, + "x_pos": 1126, + "y_pos": 991 + }, + { + "id": 5317, + "x_pos": 1119, + "y_pos": -543 + }, + { + "id": 5316, + "x_pos": 895.5, + "y_pos": 158.5 + }, + { + "id": 5315, + "x_pos": 135.5, + "y_pos": -2.5 + }, + { + "id": 5314, + "x_pos": 138, + "y_pos": 83 + }, + { + "id": 5308, + "x_pos": 77, + "y_pos": 348 + }, + { + "id": 5307, + "x_pos": -2279, + "y_pos": 1117 + }, + { + "id": 5306, + "x_pos": -1119.5, + "y_pos": 2276 + }, + { + "id": 5305, + "x_pos": -1091, + "y_pos": 1413.5 + }, + { + "id": 5304, + "x_pos": -1076, + "y_pos": 1433 + }, + { + "id": 5303, + "x_pos": -856.5, + "y_pos": -458.5 + }, + { + "id": 5302, + "x_pos": -889, + "y_pos": -334 + }, + { + "id": 5301, + "x_pos": -1297.5, + "y_pos": 595 + }, + { + "id": 5300, + "x_pos": -2271.5, + "y_pos": 1233.5 + }, + { + "id": 5299, + "x_pos": 109.5, + "y_pos": 461.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/32e242252b3acd74ff0146a91ac21d35_2787828669704586562.png" + }, + "116": { + "name": "Crab", + "clear_name": "Crab", + "points": [ + { + "id": 20268, + "x_pos": 409.79998779296875, + "y_pos": 5800.239711319084 + }, + { + "id": 20267, + "x_pos": -125.70001220703125, + "y_pos": 5839.976848558488 + }, + { + "id": 20266, + "x_pos": -115.80014038085938, + "y_pos": 5839.417177698737 + }, + { + "id": 20265, + "x_pos": -227.29998779296875, + "y_pos": 5883.0236872088535 + }, + { + "id": 20264, + "x_pos": -252.39996337890625, + "y_pos": 5893.487869417397 + }, + { + "id": 20262, + "x_pos": 232.09994506835938, + "y_pos": 6259.799995422363 + }, + { + "id": 20256, + "x_pos": -271.3999938964844, + "y_pos": 6246.351950582715 + }, + { + "id": 20068, + "x_pos": 861.9643249511719, + "y_pos": 371.4662780761719 + }, + { + "id": 19540, + "x_pos": 392, + "y_pos": 6321 + }, + { + "id": 19538, + "x_pos": 381.5, + "y_pos": 6322 + }, + { + "id": 19007, + "x_pos": 2489.5, + "y_pos": 8447.308287071231 + }, + { + "id": 19006, + "x_pos": 2506.800018310547, + "y_pos": 8425.564290555556 + }, + { + "id": 19004, + "x_pos": 2508.7999572753906, + "y_pos": 8408.376852669422 + }, + { + "id": 19002, + "x_pos": 1708.2999572753906, + "y_pos": 7336.851511969118 + }, + { + "id": 19000, + "x_pos": 1711.2999877929688, + "y_pos": 7341.4099787582745 + }, + { + "id": 18999, + "x_pos": 1690.5, + "y_pos": 7351.164058807975 + }, + { + "id": 18996, + "x_pos": 1868.3999938964844, + "y_pos": 8841.129330532825 + }, + { + "id": 18995, + "x_pos": 1877, + "y_pos": 8840.59708775858 + }, + { + "id": 18993, + "x_pos": 1872.8000183105469, + "y_pos": 8847.475362896379 + }, + { + "id": 18991, + "x_pos": 1849, + "y_pos": 8845.165638081762 + }, + { + "id": 18989, + "x_pos": 1841.0000610351562, + "y_pos": 8845.860563020635 + }, + { + "id": 18988, + "x_pos": 1805.1999816894531, + "y_pos": 8840.704064058255 + }, + { + "id": 15511, + "x_pos": 3172.2999877929688, + "y_pos": 5525.05858540704 + }, + { + "id": 15509, + "x_pos": 3166.1000366210938, + "y_pos": 5532.357897801805 + }, + { + "id": 14656, + "x_pos": 1430.4982928130976, + "y_pos": 5743.307767782424 + }, + { + "id": 14655, + "x_pos": 1435.7010365295928, + "y_pos": 5744.10412493584 + }, + { + "id": 14647, + "x_pos": 1343, + "y_pos": 5810.200012207031 + }, + { + "id": 14530, + "x_pos": 3296.5, + "y_pos": 5275.5 + }, + { + "id": 14529, + "x_pos": 3304, + "y_pos": 5277 + }, + { + "id": 14528, + "x_pos": 3278, + "y_pos": 5285.5 + }, + { + "id": 14527, + "x_pos": 3202.5, + "y_pos": 5304 + }, + { + "id": 14526, + "x_pos": 3201.5, + "y_pos": 5314 + }, + { + "id": 14415, + "x_pos": 4213.5, + "y_pos": 4521 + }, + { + "id": 14414, + "x_pos": 2631.5, + "y_pos": 6067.5 + }, + { + "id": 14413, + "x_pos": 2635, + "y_pos": 6065.5 + }, + { + "id": 14412, + "x_pos": 2595.5, + "y_pos": 6052 + }, + { + "id": 14411, + "x_pos": 2518, + "y_pos": 6256 + }, + { + "id": 14410, + "x_pos": 2143, + "y_pos": 5962 + }, + { + "id": 14409, + "x_pos": 2145, + "y_pos": 5950.5 + }, + { + "id": 14408, + "x_pos": 2165.5, + "y_pos": 5941.5 + }, + { + "id": 14407, + "x_pos": 2126, + "y_pos": 5924.5 + }, + { + "id": 14406, + "x_pos": 1557, + "y_pos": 5820 + }, + { + "id": 14405, + "x_pos": 1548, + "y_pos": 5825.5 + }, + { + "id": 14404, + "x_pos": 1534.5, + "y_pos": 5813.5 + }, + { + "id": 14403, + "x_pos": 2587, + "y_pos": 5774.5 + }, + { + "id": 14402, + "x_pos": 2598.5, + "y_pos": 5777 + }, + { + "id": 14401, + "x_pos": 2597, + "y_pos": 5853.5 + }, + { + "id": 14400, + "x_pos": 2601.5, + "y_pos": 5889 + }, + { + "id": 14399, + "x_pos": 2610, + "y_pos": 5893.5 + }, + { + "id": 14398, + "x_pos": 2613, + "y_pos": 5885 + }, + { + "id": 14397, + "x_pos": 2623, + "y_pos": 5908.5 + }, + { + "id": 14396, + "x_pos": 2227.5, + "y_pos": 5915.5 + }, + { + "id": 14395, + "x_pos": 2228.5, + "y_pos": 5919.5 + }, + { + "id": 14394, + "x_pos": 2480, + "y_pos": 5643 + }, + { + "id": 14393, + "x_pos": 2508, + "y_pos": 5713 + }, + { + "id": 14392, + "x_pos": 2515.5, + "y_pos": 5714.5 + }, + { + "id": 14391, + "x_pos": 2454.5, + "y_pos": 5441 + }, + { + "id": 14390, + "x_pos": 2478, + "y_pos": 5444 + }, + { + "id": 14389, + "x_pos": 2469.5, + "y_pos": 5444.5 + }, + { + "id": 14388, + "x_pos": 2466, + "y_pos": 5467 + }, + { + "id": 14387, + "x_pos": 2456.5, + "y_pos": 5467 + }, + { + "id": 14386, + "x_pos": 2454.5, + "y_pos": 5484 + }, + { + "id": 14385, + "x_pos": 2463, + "y_pos": 5470.5 + }, + { + "id": 14384, + "x_pos": 2460, + "y_pos": 5499.5 + }, + { + "id": 14383, + "x_pos": 2525.5, + "y_pos": 5430.5 + }, + { + "id": 14382, + "x_pos": 2523.5, + "y_pos": 5444 + }, + { + "id": 14381, + "x_pos": 3131.5, + "y_pos": 5551 + }, + { + "id": 14380, + "x_pos": 3144, + "y_pos": 5553.5 + }, + { + "id": 14379, + "x_pos": 3406, + "y_pos": 5335 + }, + { + "id": 14378, + "x_pos": 3421.5, + "y_pos": 5335.5 + }, + { + "id": 14377, + "x_pos": 3818.5, + "y_pos": 5455 + }, + { + "id": 14376, + "x_pos": 3845.5, + "y_pos": 5512.5 + }, + { + "id": 14375, + "x_pos": 3886.5, + "y_pos": 5522.5 + }, + { + "id": 14374, + "x_pos": 3860.5, + "y_pos": 5525 + }, + { + "id": 14373, + "x_pos": 3913.5, + "y_pos": 5538.5 + }, + { + "id": 14372, + "x_pos": 3912.5, + "y_pos": 5544.5 + }, + { + "id": 14371, + "x_pos": 3850.5, + "y_pos": 5073 + }, + { + "id": 14370, + "x_pos": 3848.5, + "y_pos": 5126 + }, + { + "id": 14369, + "x_pos": 3855.5, + "y_pos": 5125 + }, + { + "id": 14368, + "x_pos": 3520, + "y_pos": 5171.5 + }, + { + "id": 14367, + "x_pos": 3527.5, + "y_pos": 5173 + }, + { + "id": 14366, + "x_pos": 3512.5, + "y_pos": 5180 + }, + { + "id": 14365, + "x_pos": 3505.5, + "y_pos": 5164 + }, + { + "id": 14364, + "x_pos": 3308.5, + "y_pos": 4889.5 + }, + { + "id": 14363, + "x_pos": 3307.5, + "y_pos": 4896 + }, + { + "id": 14362, + "x_pos": 3314.5, + "y_pos": 4897 + }, + { + "id": 14361, + "x_pos": 3308.5, + "y_pos": 4899 + }, + { + "id": 14360, + "x_pos": 3309, + "y_pos": 4914 + }, + { + "id": 14359, + "x_pos": 3208.5, + "y_pos": 4945.5 + }, + { + "id": 14358, + "x_pos": 3215.5, + "y_pos": 4950.5 + }, + { + "id": 14357, + "x_pos": 3232.5, + "y_pos": 4955.5 + }, + { + "id": 14356, + "x_pos": 3228, + "y_pos": 4955.5 + }, + { + "id": 14355, + "x_pos": 3300.5, + "y_pos": 4933.5 + }, + { + "id": 14354, + "x_pos": 3295.5, + "y_pos": 4938.5 + }, + { + "id": 14353, + "x_pos": 3316, + "y_pos": 4927 + }, + { + "id": 14349, + "x_pos": 3346, + "y_pos": 4815 + }, + { + "id": 14348, + "x_pos": 3378, + "y_pos": 4746 + }, + { + "id": 14347, + "x_pos": 3377.5, + "y_pos": 4753.5 + }, + { + "id": 14346, + "x_pos": 3377.5, + "y_pos": 4764.5 + }, + { + "id": 14345, + "x_pos": 3412, + "y_pos": 4728.5 + }, + { + "id": 14344, + "x_pos": 3487, + "y_pos": 4559.5 + }, + { + "id": 14343, + "x_pos": 3486, + "y_pos": 4561.5 + }, + { + "id": 14342, + "x_pos": 3816, + "y_pos": 4754 + }, + { + "id": 14341, + "x_pos": 3822.5, + "y_pos": 4763.5 + }, + { + "id": 14340, + "x_pos": 3826.5, + "y_pos": 4752.5 + }, + { + "id": 14339, + "x_pos": 4045, + "y_pos": 4694.5 + }, + { + "id": 14338, + "x_pos": 4172, + "y_pos": 4525.5 + }, + { + "id": 14337, + "x_pos": 4189.5, + "y_pos": 4533.5 + }, + { + "id": 14336, + "x_pos": 4191, + "y_pos": 4515.5 + }, + { + "id": 14335, + "x_pos": 4196.5, + "y_pos": 4515.5 + }, + { + "id": 14334, + "x_pos": 4194, + "y_pos": 4517.5 + }, + { + "id": 14333, + "x_pos": 4219.5, + "y_pos": 4521.5 + }, + { + "id": 14332, + "x_pos": 4216.5, + "y_pos": 4524 + }, + { + "id": 14331, + "x_pos": 4175, + "y_pos": 4549 + }, + { + "id": 14330, + "x_pos": 4185.5, + "y_pos": 4552 + }, + { + "id": 14329, + "x_pos": 4193.5, + "y_pos": 4552 + }, + { + "id": 14328, + "x_pos": 4205, + "y_pos": 4548 + }, + { + "id": 14327, + "x_pos": 4210, + "y_pos": 4548 + }, + { + "id": 14326, + "x_pos": 4227, + "y_pos": 4546 + }, + { + "id": 14325, + "x_pos": 4171, + "y_pos": 4528 + }, + { + "id": 14324, + "x_pos": 4165.5, + "y_pos": 4526 + }, + { + "id": 14212, + "x_pos": 3888.5, + "y_pos": 4789 + }, + { + "id": 14211, + "x_pos": 3169.5, + "y_pos": 4909 + }, + { + "id": 14210, + "x_pos": 3161, + "y_pos": 4926 + }, + { + "id": 14209, + "x_pos": 3172, + "y_pos": 4939.5 + }, + { + "id": 10755, + "x_pos": -1341, + "y_pos": 1745 + }, + { + "id": 10374, + "x_pos": -1571.5, + "y_pos": 1127.5 + }, + { + "id": 7199, + "x_pos": -1387.5, + "y_pos": 1322 + }, + { + "id": 7197, + "x_pos": -1398.5, + "y_pos": 1314 + }, + { + "id": 7196, + "x_pos": -1395, + "y_pos": 1320 + }, + { + "id": 7191, + "x_pos": -1386.5, + "y_pos": 1329 + }, + { + "id": 5718, + "x_pos": -1601, + "y_pos": 1098.5 + }, + { + "id": 5715, + "x_pos": -1612.5, + "y_pos": 1089 + }, + { + "id": 5713, + "x_pos": -1595.5, + "y_pos": 1066 + }, + { + "id": 5709, + "x_pos": -1586.5, + "y_pos": 1093.5 + }, + { + "id": 5708, + "x_pos": -1595, + "y_pos": 1104.5 + }, + { + "id": 5704, + "x_pos": -1459, + "y_pos": 950 + }, + { + "id": 5696, + "x_pos": -1204, + "y_pos": 1200.5 + }, + { + "id": 5693, + "x_pos": -959, + "y_pos": 991 + }, + { + "id": 5688, + "x_pos": -866.5, + "y_pos": 543.5 + }, + { + "id": 5686, + "x_pos": -863, + "y_pos": 544.5 + }, + { + "id": 5677, + "x_pos": -1166, + "y_pos": 1001 + }, + { + "id": 5673, + "x_pos": -873.5, + "y_pos": 1125.5 + }, + { + "id": 5670, + "x_pos": 150.5, + "y_pos": 2361.5 + }, + { + "id": 5665, + "x_pos": -866, + "y_pos": 546.5 + }, + { + "id": 5664, + "x_pos": 260, + "y_pos": 2491 + }, + { + "id": 5660, + "x_pos": 145, + "y_pos": 2361.5 + }, + { + "id": 5652, + "x_pos": 263.5, + "y_pos": 2480.5 + }, + { + "id": 5651, + "x_pos": 253.5, + "y_pos": 2492.5 + }, + { + "id": 5649, + "x_pos": 812.5, + "y_pos": 645 + }, + { + "id": 5648, + "x_pos": -1414, + "y_pos": 2146 + }, + { + "id": 5647, + "x_pos": 808.5, + "y_pos": 648 + }, + { + "id": 5645, + "x_pos": -1497.5, + "y_pos": 2202 + }, + { + "id": 5642, + "x_pos": 812.5, + "y_pos": 651 + }, + { + "id": 5640, + "x_pos": 817, + "y_pos": 649.5 + }, + { + "id": 5639, + "x_pos": -1491, + "y_pos": 2203.5 + }, + { + "id": 5633, + "x_pos": -1500, + "y_pos": 2205.5 + }, + { + "id": 5631, + "x_pos": 818, + "y_pos": 653.5 + }, + { + "id": 5628, + "x_pos": 799, + "y_pos": 537 + }, + { + "id": 5623, + "x_pos": 798, + "y_pos": 545 + }, + { + "id": 5621, + "x_pos": -1417.5, + "y_pos": 2149.5 + }, + { + "id": 5619, + "x_pos": 782, + "y_pos": 542 + }, + { + "id": 5618, + "x_pos": -1493, + "y_pos": 2208 + }, + { + "id": 5616, + "x_pos": 791.5, + "y_pos": 542 + }, + { + "id": 5613, + "x_pos": 780.5, + "y_pos": 526.5 + }, + { + "id": 5604, + "x_pos": -1410, + "y_pos": 2152 + }, + { + "id": 5602, + "x_pos": 769, + "y_pos": 534 + }, + { + "id": 5599, + "x_pos": -1466.5, + "y_pos": 2192 + }, + { + "id": 5597, + "x_pos": 744, + "y_pos": 523.5 + }, + { + "id": 5594, + "x_pos": 750, + "y_pos": 522 + }, + { + "id": 5586, + "x_pos": 786.5, + "y_pos": 550.5 + }, + { + "id": 5582, + "x_pos": 761.5, + "y_pos": 570 + }, + { + "id": 5579, + "x_pos": -1463, + "y_pos": 2189 + }, + { + "id": 5575, + "x_pos": -1460.5, + "y_pos": 2193 + }, + { + "id": 5569, + "x_pos": 808, + "y_pos": 523.5 + }, + { + "id": 5568, + "x_pos": 814.5, + "y_pos": 504.5 + }, + { + "id": 5565, + "x_pos": 156, + "y_pos": 2369 + }, + { + "id": 5564, + "x_pos": 823.5, + "y_pos": 509.5 + }, + { + "id": 5562, + "x_pos": 142, + "y_pos": 2391 + }, + { + "id": 5561, + "x_pos": 809, + "y_pos": 491 + }, + { + "id": 5559, + "x_pos": 808.5, + "y_pos": 498 + }, + { + "id": 5557, + "x_pos": 106.5, + "y_pos": 2605 + }, + { + "id": 5553, + "x_pos": 90.5, + "y_pos": 2603 + }, + { + "id": 5551, + "x_pos": 83.5, + "y_pos": 2596 + }, + { + "id": 5549, + "x_pos": 25, + "y_pos": 2404.5 + }, + { + "id": 5542, + "x_pos": 794, + "y_pos": 501.5 + }, + { + "id": 5541, + "x_pos": 26.5, + "y_pos": 2414 + }, + { + "id": 5538, + "x_pos": 782.5, + "y_pos": 482 + }, + { + "id": 5534, + "x_pos": -165, + "y_pos": 2453.5 + }, + { + "id": 5532, + "x_pos": -160.5, + "y_pos": 2446 + }, + { + "id": 5531, + "x_pos": 638, + "y_pos": 495.5 + }, + { + "id": 5528, + "x_pos": 635.5, + "y_pos": 503.5 + }, + { + "id": 5525, + "x_pos": -184, + "y_pos": 2445 + }, + { + "id": 5523, + "x_pos": -181.5, + "y_pos": 2454.5 + }, + { + "id": 5521, + "x_pos": 843.5, + "y_pos": 443 + }, + { + "id": 5510, + "x_pos": -587, + "y_pos": 2336.5 + }, + { + "id": 5508, + "x_pos": -602, + "y_pos": 2327.5 + }, + { + "id": 5505, + "x_pos": 825, + "y_pos": 451.5 + }, + { + "id": 5502, + "x_pos": 840, + "y_pos": 452.5 + }, + { + "id": 5501, + "x_pos": -598.5, + "y_pos": 2348.5 + }, + { + "id": 5499, + "x_pos": 835, + "y_pos": 455.5 + }, + { + "id": 5496, + "x_pos": 831, + "y_pos": 456.5 + }, + { + "id": 5495, + "x_pos": -556.5, + "y_pos": 2380.5 + }, + { + "id": 5492, + "x_pos": 845, + "y_pos": 449.5 + }, + { + "id": 5490, + "x_pos": 140, + "y_pos": 2361.5 + }, + { + "id": 5485, + "x_pos": -55.5, + "y_pos": 2162.5 + }, + { + "id": 5481, + "x_pos": 5, + "y_pos": 2411 + }, + { + "id": 5480, + "x_pos": 886, + "y_pos": 323 + }, + { + "id": 5478, + "x_pos": 875.5, + "y_pos": 324.5 + }, + { + "id": 5477, + "x_pos": 43, + "y_pos": 2416 + }, + { + "id": 5476, + "x_pos": 44.5, + "y_pos": 2411 + }, + { + "id": 5473, + "x_pos": 886, + "y_pos": 329.5 + }, + { + "id": 5470, + "x_pos": 868.5, + "y_pos": 335 + }, + { + "id": 5469, + "x_pos": 881, + "y_pos": 337.5 + }, + { + "id": 5459, + "x_pos": -50, + "y_pos": 2167 + }, + { + "id": 5456, + "x_pos": 868, + "y_pos": 349.5 + }, + { + "id": 5453, + "x_pos": -201.5, + "y_pos": 2460.5 + }, + { + "id": 5452, + "x_pos": 877, + "y_pos": 351.5 + }, + { + "id": 5448, + "x_pos": 925.5, + "y_pos": -401.5 + }, + { + "id": 5446, + "x_pos": 925.5, + "y_pos": -389.5 + }, + { + "id": 5441, + "x_pos": 930, + "y_pos": -386.5 + }, + { + "id": 5440, + "x_pos": -573.5, + "y_pos": 2390.5 + }, + { + "id": 5437, + "x_pos": 117, + "y_pos": 2612 + }, + { + "id": 5435, + "x_pos": 121, + "y_pos": 2604 + }, + { + "id": 5434, + "x_pos": 947.5, + "y_pos": -400.5 + }, + { + "id": 5430, + "x_pos": 1018, + "y_pos": -445.5 + }, + { + "id": 5426, + "x_pos": 1040.5, + "y_pos": -444.5 + }, + { + "id": 5425, + "x_pos": 1514.5, + "y_pos": -414.5 + }, + { + "id": 5424, + "x_pos": 1523, + "y_pos": -405.5 + }, + { + "id": 5421, + "x_pos": 1514.5, + "y_pos": -403 + }, + { + "id": 5420, + "x_pos": 1518, + "y_pos": -396.5 + }, + { + "id": 5419, + "x_pos": 1513, + "y_pos": -390.5 + }, + { + "id": 5416, + "x_pos": 1514.5, + "y_pos": -381.5 + }, + { + "id": 5415, + "x_pos": 1522.5, + "y_pos": -390.5 + }, + { + "id": 5408, + "x_pos": 1522.5, + "y_pos": -377 + }, + { + "id": 5407, + "x_pos": 1519, + "y_pos": -379.5 + }, + { + "id": 5405, + "x_pos": 1529, + "y_pos": -374 + }, + { + "id": 5401, + "x_pos": 1539.5, + "y_pos": -376 + }, + { + "id": 5399, + "x_pos": 1530.5, + "y_pos": -366.5 + }, + { + "id": 5398, + "x_pos": 1537.5, + "y_pos": -350 + }, + { + "id": 5397, + "x_pos": 1533, + "y_pos": -361.5 + }, + { + "id": 5396, + "x_pos": 1532, + "y_pos": -349.5 + }, + { + "id": 5395, + "x_pos": 1540, + "y_pos": -336 + }, + { + "id": 5393, + "x_pos": 1554, + "y_pos": -339.5 + }, + { + "id": 5392, + "x_pos": 1563.5, + "y_pos": -340 + }, + { + "id": 5391, + "x_pos": 1574, + "y_pos": -341.5 + }, + { + "id": 5390, + "x_pos": 1568, + "y_pos": -350.5 + }, + { + "id": 5384, + "x_pos": 1580, + "y_pos": -349.5 + }, + { + "id": 5382, + "x_pos": 1589, + "y_pos": -347.5 + }, + { + "id": 5381, + "x_pos": 1589, + "y_pos": -362.5 + }, + { + "id": 5358, + "x_pos": -217, + "y_pos": 100.5 + }, + { + "id": 5345, + "x_pos": 1600, + "y_pos": -375.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/11307a34068f026989b56c0539fad37f_2196812100248598086.png" + }, + "122": { + "name": "Fish", + "clear_name": "Fish", + "points": [ + { + "id": 20261, + "x_pos": 207.20010375976562, + "y_pos": 6272.900009155273 + }, + { + "id": 20259, + "x_pos": 227.29998779296875, + "y_pos": 6275.900016784668 + }, + { + "id": 19605, + "x_pos": 310.5, + "y_pos": -186.5 + }, + { + "id": 19532, + "x_pos": 203.5, + "y_pos": 6315.5 + }, + { + "id": 19528, + "x_pos": 131, + "y_pos": 5966.5 + }, + { + "id": 19526, + "x_pos": 102, + "y_pos": 5939.5 + }, + { + "id": 19524, + "x_pos": 86.5, + "y_pos": 6358 + }, + { + "id": 19523, + "x_pos": 74.5, + "y_pos": 6358 + }, + { + "id": 18550, + "x_pos": -795.5, + "y_pos": -225 + }, + { + "id": 18549, + "x_pos": -796, + "y_pos": -197.5 + }, + { + "id": 18548, + "x_pos": -896, + "y_pos": -188 + }, + { + "id": 18547, + "x_pos": -1152.5, + "y_pos": -247 + }, + { + "id": 18546, + "x_pos": -1127, + "y_pos": -227 + }, + { + "id": 18545, + "x_pos": -1140.5, + "y_pos": -227 + }, + { + "id": 18544, + "x_pos": -1152, + "y_pos": -237 + }, + { + "id": 18532, + "x_pos": -1893.5, + "y_pos": 2906 + }, + { + "id": 18531, + "x_pos": -2010, + "y_pos": 3146 + }, + { + "id": 18530, + "x_pos": -1996, + "y_pos": 3149 + }, + { + "id": 18529, + "x_pos": -1998.5, + "y_pos": 3234.5 + }, + { + "id": 17804, + "x_pos": 3381.5, + "y_pos": 5106.5 + }, + { + "id": 17140, + "x_pos": 2562, + "y_pos": 5583.5 + }, + { + "id": 17139, + "x_pos": 2565, + "y_pos": 5607.5 + }, + { + "id": 17138, + "x_pos": 2549.5, + "y_pos": 5587 + }, + { + "id": 17137, + "x_pos": 2542, + "y_pos": 5701.5 + }, + { + "id": 17136, + "x_pos": 2543.5, + "y_pos": 5699 + }, + { + "id": 17133, + "x_pos": 2424.5, + "y_pos": 5597 + }, + { + "id": 17132, + "x_pos": 2416, + "y_pos": 5600 + }, + { + "id": 14352, + "x_pos": 3344, + "y_pos": 4937.5 + }, + { + "id": 11947, + "x_pos": -1647.1646180478906, + "y_pos": 1149.8660551273606 + }, + { + "id": 10372, + "x_pos": -1402, + "y_pos": 1410 + }, + { + "id": 6287, + "x_pos": -1969.5021653607205, + "y_pos": 2847.5044277372363 + }, + { + "id": 6286, + "x_pos": -1936.499350391784, + "y_pos": 2865.0004025215667 + }, + { + "id": 6285, + "x_pos": -1939.0019488246485, + "y_pos": 2868.497584870598 + }, + { + "id": 6284, + "x_pos": -1852.4976181032075, + "y_pos": 2904.002415129402 + }, + { + "id": 6283, + "x_pos": -1931.999350391784, + "y_pos": 2824.4995974784333 + }, + { + "id": 6282, + "x_pos": -1487.999783463928, + "y_pos": 3058 + }, + { + "id": 6281, + "x_pos": -1517.499783463928, + "y_pos": 3076.001207564701 + }, + { + "id": 6280, + "x_pos": -1544.503897649297, + "y_pos": 3082.5004025215667 + }, + { + "id": 6279, + "x_pos": -1554.499566927856, + "y_pos": 3088.0020126078343 + }, + { + "id": 6278, + "x_pos": -1848.500216536072, + "y_pos": 2901.9995974784333 + }, + { + "id": 6277, + "x_pos": -1477.999350391784, + "y_pos": 3076.0004025215667 + }, + { + "id": 6276, + "x_pos": -1656.000649608216, + "y_pos": 3063.5028176509686 + }, + { + "id": 6275, + "x_pos": -1610.5, + "y_pos": 3085.0016100862676 + }, + { + "id": 6274, + "x_pos": -1202.0093110510984, + "y_pos": 2808.036629462592 + }, + { + "id": 6273, + "x_pos": -1208.0147244528998, + "y_pos": 2808.0362269410243 + }, + { + "id": 6272, + "x_pos": -1157.4844094028117, + "y_pos": 2814.994364698063 + }, + { + "id": 6271, + "x_pos": -1168.500433072144, + "y_pos": 2892.493962176496 + }, + { + "id": 6270, + "x_pos": -1167.0084449068104, + "y_pos": 2901.0028176509686 + }, + { + "id": 6269, + "x_pos": -1150.9982677114235, + "y_pos": 2817.0028176509686 + }, + { + "id": 6268, + "x_pos": -1172.9980511753515, + "y_pos": 2817.0008050431343 + }, + { + "id": 6267, + "x_pos": -1221.004114185369, + "y_pos": 2756.9947672196295 + }, + { + "id": 6266, + "x_pos": -1176.499783463928, + "y_pos": 2822 + }, + { + "id": 6265, + "x_pos": -1864.499350391784, + "y_pos": 2836.5008050431343 + }, + { + "id": 6264, + "x_pos": -1212.0108268036029, + "y_pos": 2756.492754611795 + }, + { + "id": 6263, + "x_pos": -1214.000866144288, + "y_pos": 2750.994364698063 + }, + { + "id": 6262, + "x_pos": -1204.999350391784, + "y_pos": 2804.4935596549285 + }, + { + "id": 6261, + "x_pos": -1219.999783463928, + "y_pos": 2751.9983899137324 + }, + { + "id": 6260, + "x_pos": -1180.506929154306, + "y_pos": 2913.4991949568657 + }, + { + "id": 6259, + "x_pos": -1580.9989173196395, + "y_pos": 2504.0016100862676 + }, + { + "id": 6258, + "x_pos": -1577.000216536072, + "y_pos": 2509.498792435299 + }, + { + "id": 6257, + "x_pos": -1584.4989173196395, + "y_pos": 2509.0008050431343 + }, + { + "id": 6256, + "x_pos": -1184.5116929478913, + "y_pos": 2907.501207564701 + }, + { + "id": 6255, + "x_pos": -1165.499566927856, + "y_pos": 2827.9995974784333 + }, + { + "id": 6254, + "x_pos": -1619.5010826803605, + "y_pos": 2571.0040252156696 + }, + { + "id": 6253, + "x_pos": -1909.499566927856, + "y_pos": 2917.5028176509686 + }, + { + "id": 6252, + "x_pos": -1865.4989173196395, + "y_pos": 2961.0032201725353 + }, + { + "id": 6251, + "x_pos": -2077.006929154306, + "y_pos": 3140.0008050431343 + }, + { + "id": 6250, + "x_pos": -2075.4984842474955, + "y_pos": 3136.5004025215667 + }, + { + "id": 6249, + "x_pos": -1625.999566927856, + "y_pos": 2570.0020126078343 + }, + { + "id": 6248, + "x_pos": -1621.5114764118193, + "y_pos": 2575.994364698063 + }, + { + "id": 6247, + "x_pos": -1638.000216536072, + "y_pos": 2570.5004025215667 + }, + { + "id": 6246, + "x_pos": -1159.5116929478913, + "y_pos": 2809.5297865959537 + }, + { + "id": 6245, + "x_pos": -1216.0045472575134, + "y_pos": 2760.9983899137324 + }, + { + "id": 6244, + "x_pos": -1179.9980511753515, + "y_pos": 1713.5016100862676 + }, + { + "id": 6243, + "x_pos": -1162.999350391784, + "y_pos": 1722 + }, + { + "id": 6242, + "x_pos": -1271.503031505009, + "y_pos": 1417.5040252156696 + }, + { + "id": 6241, + "x_pos": -1275.499783463928, + "y_pos": 1411.002415129402 + }, + { + "id": 6240, + "x_pos": -1280.500216536072, + "y_pos": 1413.5 + }, + { + "id": 6239, + "x_pos": -1170.4989173196395, + "y_pos": 1724.5008050431343 + }, + { + "id": 6237, + "x_pos": -1188.999133855712, + "y_pos": 2911 + }, + { + "id": 6236, + "x_pos": -1276.999783463928, + "y_pos": 1425.001207564701 + }, + { + "id": 6235, + "x_pos": -1427.0114764118193, + "y_pos": 1257.5185159920793 + }, + { + "id": 6234, + "x_pos": -1427.499783463928, + "y_pos": 1267.5032201725353 + }, + { + "id": 6232, + "x_pos": -1438.000649608216, + "y_pos": 1259.5032201725353 + }, + { + "id": 6231, + "x_pos": -1436.499133855712, + "y_pos": 1266.0016100862676 + }, + { + "id": 6230, + "x_pos": -1826.8945072725637, + "y_pos": 3354.968603409773 + }, + { + "id": 6229, + "x_pos": -1818.499350391784, + "y_pos": 3360.5020126078343 + }, + { + "id": 6227, + "x_pos": 821.9939369899821, + "y_pos": -252 + }, + { + "id": 6226, + "x_pos": 573.9863582274602, + "y_pos": -230.9875218314246 + }, + { + "id": 6225, + "x_pos": 567.9880905160371, + "y_pos": -235.99557226276374 + }, + { + "id": 6224, + "x_pos": 567.498484247496, + "y_pos": -230.50563530193722 + }, + { + "id": 6223, + "x_pos": 158.49870078356798, + "y_pos": 517.5225412077489 + }, + { + "id": 6222, + "x_pos": 562.4766141042173, + "y_pos": -235.49798739216521 + }, + { + "id": 6221, + "x_pos": -8.004980329656973, + "y_pos": 222.51891851364599 + }, + { + "id": 6220, + "x_pos": 817.9835432585232, + "y_pos": -243.00241512940147 + }, + { + "id": 6219, + "x_pos": 355.00303150500895, + "y_pos": -198.49074200396035 + }, + { + "id": 6218, + "x_pos": -9.00476379358497, + "y_pos": 230.51207564700826 + }, + { + "id": 6217, + "x_pos": -1333.003031505009, + "y_pos": 2195.5144907764097 + }, + { + "id": 6216, + "x_pos": -13.51342523646781, + "y_pos": 228.50684286663818 + }, + { + "id": 6215, + "x_pos": 154.99848424749598, + "y_pos": 524.0116731254411 + }, + { + "id": 6214, + "x_pos": -14.995885814631038, + "y_pos": 237.5281765096861 + }, + { + "id": 6213, + "x_pos": 162.99133855711807, + "y_pos": 280.5068428666382 + }, + { + "id": 6212, + "x_pos": -1334.500216536072, + "y_pos": 2210.0020126078343 + }, + { + "id": 6211, + "x_pos": -1482.0129921643238, + "y_pos": 2130.0100630391735 + }, + { + "id": 6210, + "x_pos": 178, + "y_pos": 536.9971823490314 + }, + { + "id": 6209, + "x_pos": -11.008877978954843, + "y_pos": 240.0136857332759 + }, + { + "id": 6207, + "x_pos": -860.496751958919, + "y_pos": -574.9931571333618 + }, + { + "id": 6206, + "x_pos": -621.499783463928, + "y_pos": 488.5032201725353 + }, + { + "id": 6204, + "x_pos": -560.5231693597107, + "y_pos": 489.9814840079207 + }, + { + "id": 6203, + "x_pos": -1477.0093110510984, + "y_pos": 2130.5100630391735 + }, + { + "id": 6202, + "x_pos": 370.4885235881811, + "y_pos": -182.4903394823932 + }, + { + "id": 6201, + "x_pos": -2049.999133855712, + "y_pos": 2138.002415129402 + }, + { + "id": 6200, + "x_pos": -2121.499783463928, + "y_pos": 2057.5008050431343 + }, + { + "id": 6199, + "x_pos": -612.500433072144, + "y_pos": 491.50040252156714 + }, + { + "id": 6198, + "x_pos": -561.5, + "y_pos": 486.49838991373235 + }, + { + "id": 6197, + "x_pos": -727.5025984328649, + "y_pos": 1559.5096605176068 + }, + { + "id": 6196, + "x_pos": -1108.006929154306, + "y_pos": 892.9907420039603 + }, + { + "id": 6195, + "x_pos": -732.5099606593149, + "y_pos": 1568.0233462508822 + }, + { + "id": 6194, + "x_pos": -731.5099606593149, + "y_pos": 1573.5265664234184 + }, + { + "id": 6193, + "x_pos": -752.5010826803605, + "y_pos": 1589.0205285999136 + }, + { + "id": 6192, + "x_pos": -2235.9989173196395, + "y_pos": 2023.502415129402 + }, + { + "id": 6191, + "x_pos": -727.5064960821619, + "y_pos": 1570.5032201725353 + }, + { + "id": 6190, + "x_pos": -402.5080118346659, + "y_pos": 690.4963773058976 + }, + { + "id": 6189, + "x_pos": -1334.499566927856, + "y_pos": 2241.9971823490314 + }, + { + "id": 6188, + "x_pos": -749.996318886775, + "y_pos": 1599.0289815528195 + }, + { + "id": 6187, + "x_pos": 160.49090548497315, + "y_pos": 279.00362269410243 + }, + { + "id": 6186, + "x_pos": -727.4974015671351, + "y_pos": 1574.9995974784333 + }, + { + "id": 6185, + "x_pos": -748.0060630100179, + "y_pos": 1606.4923520902285 + }, + { + "id": 6184, + "x_pos": -1325.000216536072, + "y_pos": 2246.5032201725353 + }, + { + "id": 6183, + "x_pos": -1337.999783463928, + "y_pos": 2237.9983899137324 + }, + { + "id": 6182, + "x_pos": -2267.5125590921793, + "y_pos": 2020.5193210352136 + }, + { + "id": 6181, + "x_pos": -1471, + "y_pos": 2138.0004025215667 + }, + { + "id": 6180, + "x_pos": -1479.999783463928, + "y_pos": 2138.9983899137324 + }, + { + "id": 6179, + "x_pos": -741.5051968657299, + "y_pos": 1605.012880690142 + }, + { + "id": 6178, + "x_pos": -2127, + "y_pos": 2056.001207564701 + }, + { + "id": 6177, + "x_pos": -2272.5019488246485, + "y_pos": 2020.0016100862676 + }, + { + "id": 6176, + "x_pos": -2087.500649608216, + "y_pos": 2152.5028176509686 + }, + { + "id": 6175, + "x_pos": 808.500433072144, + "y_pos": -245.5 + }, + { + "id": 6174, + "x_pos": -357.49610235070304, + "y_pos": 704.9951697411966 + }, + { + "id": 6173, + "x_pos": 561.004547257513, + "y_pos": -244.00040252156714 + }, + { + "id": 6172, + "x_pos": -1337.000866144288, + "y_pos": 2253.494364698063 + }, + { + "id": 6171, + "x_pos": -15.994586598198111, + "y_pos": 240.53381181162285 + }, + { + "id": 6170, + "x_pos": 154.00108268036, + "y_pos": 275.51972355678026 + }, + { + "id": 6169, + "x_pos": 811.5086614428819, + "y_pos": -241.50644034507104 + }, + { + "id": 6168, + "x_pos": 32.4874409078202, + "y_pos": 262.5241512940165 + }, + { + "id": 6167, + "x_pos": 156.49523620641503, + "y_pos": 280.49074200396035 + }, + { + "id": 6166, + "x_pos": -636.999566927856, + "y_pos": 501.00040252156714 + }, + { + "id": 6165, + "x_pos": -566.499783463928, + "y_pos": 489.00241512940147 + }, + { + "id": 6164, + "x_pos": -852.499350391784, + "y_pos": -566.9971823490314 + }, + { + "id": 6163, + "x_pos": -1113.500216536072, + "y_pos": 891.0020126078348 + }, + { + "id": 6162, + "x_pos": -640.499133855712, + "y_pos": 486.00402521566957 + }, + { + "id": 6161, + "x_pos": 182.000216536072, + "y_pos": 514.4975848705985 + }, + { + "id": 6160, + "x_pos": -400.500649608216, + "y_pos": 687.4979873921652 + }, + { + "id": 6159, + "x_pos": -1106.5, + "y_pos": 900.5004025215671 + }, + { + "id": 6158, + "x_pos": -352.999566927856, + "y_pos": 703.9983899137324 + }, + { + "id": 6157, + "x_pos": 155.00368111322496, + "y_pos": 541.0197235567803 + }, + { + "id": 6156, + "x_pos": 182.64966608613668, + "y_pos": 531.9702134960407 + }, + { + "id": 6155, + "x_pos": -1054.997185031063, + "y_pos": 901.0052327803701 + }, + { + "id": 6154, + "x_pos": -852.499350391784, + "y_pos": -152.99798739216521 + }, + { + "id": 6153, + "x_pos": -555.998484247496, + "y_pos": 488.50040252156714 + }, + { + "id": 6152, + "x_pos": -845.9982677114235, + "y_pos": -159.99637730589757 + }, + { + "id": 6151, + "x_pos": -729.0019488246489, + "y_pos": 520.001207564701 + }, + { + "id": 6150, + "x_pos": -644.500866144288, + "y_pos": 495.00362269410243 + }, + { + "id": 6149, + "x_pos": -348.000649608216, + "y_pos": 720.4995974784329 + }, + { + "id": 6148, + "x_pos": -736.00108268036, + "y_pos": 519.0008050431338 + }, + { + "id": 6147, + "x_pos": -707.5019488246489, + "y_pos": 544.5253588587175 + }, + { + "id": 6146, + "x_pos": -318.500649608216, + "y_pos": 759.4975848705985 + }, + { + "id": 6145, + "x_pos": 159.000866144288, + "y_pos": 545.9971823490314 + }, + { + "id": 6144, + "x_pos": -817.000649608216, + "y_pos": -161.00120756470096 + }, + { + "id": 6143, + "x_pos": 156.500866144288, + "y_pos": 550.5 + }, + { + "id": 6142, + "x_pos": 354.501299216432, + "y_pos": -182.99758487059853 + }, + { + "id": 6141, + "x_pos": -701.5108268036029, + "y_pos": 546.5213336430479 + }, + { + "id": 6140, + "x_pos": -508.50454725751297, + "y_pos": 515.4943646980628 + }, + { + "id": 6139, + "x_pos": -858.499566927856, + "y_pos": -135.49879243529904 + }, + { + "id": 6137, + "x_pos": -320.999566927856, + "y_pos": 750.998792435299 + }, + { + "id": 6136, + "x_pos": 153.99891731964, + "y_pos": 565.4991949568662 + }, + { + "id": 6135, + "x_pos": -407.000216536072, + "y_pos": 687.4979873921652 + }, + { + "id": 6134, + "x_pos": -2087.499350391784, + "y_pos": 2191.0016100862676 + }, + { + "id": 6133, + "x_pos": -2271.500216536072, + "y_pos": 2016.0032201725353 + }, + { + "id": 6132, + "x_pos": -744.999350391784, + "y_pos": 1609.502415129402 + }, + { + "id": 6131, + "x_pos": -868.000216536072, + "y_pos": -550.4975848705985 + }, + { + "id": 6130, + "x_pos": -480.99610235070304, + "y_pos": 955.9891815616179 + }, + { + "id": 6129, + "x_pos": -1049.999133855712, + "y_pos": 904.501207564701 + }, + { + "id": 6128, + "x_pos": -822.4989173196395, + "y_pos": -574.4983899137324 + }, + { + "id": 6127, + "x_pos": 151.50173228857602, + "y_pos": 279.49838991373235 + }, + { + "id": 6126, + "x_pos": 366.000433072144, + "y_pos": -181.50040252156714 + }, + { + "id": 6125, + "x_pos": -515.8507669860082, + "y_pos": 509.9754462764108 + }, + { + "id": 6124, + "x_pos": 718.0051968657299, + "y_pos": 41.00161008626765 + }, + { + "id": 6123, + "x_pos": 363.49718503106305, + "y_pos": -176.49959747843286 + }, + { + "id": 6122, + "x_pos": -298.499783463928, + "y_pos": 771.4967798274647 + }, + { + "id": 6121, + "x_pos": 157.499350391784, + "y_pos": 574.9971823490314 + }, + { + "id": 6120, + "x_pos": 32.48592515531618, + "y_pos": 265.50402521566957 + }, + { + "id": 6119, + "x_pos": 150.000433072144, + "y_pos": 369.49838991373235 + }, + { + "id": 6118, + "x_pos": -702.0056299378739, + "y_pos": 550.0060378235039 + }, + { + "id": 6117, + "x_pos": -475, + "y_pos": 955.5018814675445 + }, + { + "id": 6116, + "x_pos": -706.99891731964, + "y_pos": 549.0020126078348 + }, + { + "id": 6115, + "x_pos": 154.61718567532716, + "y_pos": 368.86072762983304 + }, + { + "id": 6114, + "x_pos": 36.50064960821601, + "y_pos": 265.99838991373235 + }, + { + "id": 6113, + "x_pos": -738, + "y_pos": 523.0016100862676 + }, + { + "id": 6112, + "x_pos": -516, + "y_pos": 515.0004025215671 + }, + { + "id": 6111, + "x_pos": -12.35401502708919, + "y_pos": 243.0116732174356 + }, + { + "id": 6110, + "x_pos": -840.9984842474955, + "y_pos": -541.9971823490314 + }, + { + "id": 6109, + "x_pos": -822, + "y_pos": -538.4971823490314 + }, + { + "id": 6108, + "x_pos": 722.50108268036, + "y_pos": 41.50362269410243 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/e01bf2dd86cd24121b1f09285f7304d8_2830373650601356948.png" + }, + "82": { + "name": "Loach Pearl", + "clear_name": "LoachPearl", + "points": [ + { + "id": 20257, + "x_pos": -245.5, + "y_pos": 6166.999984741211 + }, + { + "id": 11009, + "x_pos": -930, + "y_pos": 880.5 + }, + { + "id": 11008, + "x_pos": -1040.5, + "y_pos": 863 + }, + { + "id": 11006, + "x_pos": -1148.5, + "y_pos": 939.5 + }, + { + "id": 5011, + "x_pos": -967.4240978760072, + "y_pos": 1234.7128766751812 + }, + { + "id": 5010, + "x_pos": -1067.4482358676446, + "y_pos": 1243.198842247506 + }, + { + "id": 5009, + "x_pos": -997.4324694338006, + "y_pos": 1246.2024640352934 + }, + { + "id": 5008, + "x_pos": -1069.9489334974605, + "y_pos": 1245.696578630139 + }, + { + "id": 5007, + "x_pos": -1079.9517240167252, + "y_pos": 1257.1861659902506 + }, + { + "id": 5006, + "x_pos": -1062.4462825041596, + "y_pos": 1136.2287219967502 + }, + { + "id": 5005, + "x_pos": -980.427725551051, + "y_pos": 1255.6938622892985 + }, + { + "id": 5004, + "x_pos": -1014.4334461155431, + "y_pos": 1183.7527163408404 + }, + { + "id": 5003, + "x_pos": -982.928423180867, + "y_pos": 1254.6947677362455 + }, + { + "id": 5002, + "x_pos": -984.9289812847201, + "y_pos": 1255.1943150127718 + }, + { + "id": 5001, + "x_pos": -960.4221445125222, + "y_pos": 1231.6639825400543 + }, + { + "id": 5000, + "x_pos": -943.9175401557359, + "y_pos": 1277.301157752494 + }, + { + "id": 4999, + "x_pos": -1080.4561888475482, + "y_pos": 995.2305328906441 + }, + { + "id": 4998, + "x_pos": -1001.4292603366462, + "y_pos": 1180.188882331091 + }, + { + "id": 4997, + "x_pos": -1082.4561888475482, + "y_pos": 1259.1390827490172 + }, + { + "id": 4996, + "x_pos": -1077.4500497051663, + "y_pos": 996.1694152217351 + }, + { + "id": 4995, + "x_pos": -1075.4494916013136, + "y_pos": 995.6698679452084 + }, + { + "id": 4994, + "x_pos": -948.9112614873907, + "y_pos": 1071.2359655723249 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/3a732937101a7e419b4b1c5a29de6d34_819661314868702771.png" + }, + "316": { + "name": "Sacred Sakura", + "clear_name": "SacredSakura", + "points": [ + { + "id": 20206, + "x_pos": 3666.5, + "y_pos": 4790 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220401/3ab56e6ce91d734971e5f361f51726de_1868250449228727908.png" + }, + "121": { + "name": "Raw Meat", + "clear_name": "RawMeat", + "points": [ + { + "id": 20144, + "x_pos": -363.5, + "y_pos": -14 + }, + { + "id": 20122, + "x_pos": 943, + "y_pos": 812.5 + }, + { + "id": 20121, + "x_pos": 789.5, + "y_pos": 872 + }, + { + "id": 20120, + "x_pos": 784.5, + "y_pos": 872 + }, + { + "id": 20115, + "x_pos": 828, + "y_pos": 994.5 + }, + { + "id": 19941, + "x_pos": 501, + "y_pos": 536.5 + }, + { + "id": 19931, + "x_pos": 729.5, + "y_pos": 381.5 + }, + { + "id": 19918, + "x_pos": 904.5, + "y_pos": 11.5 + }, + { + "id": 19914, + "x_pos": 820.5, + "y_pos": 20 + }, + { + "id": 19909, + "x_pos": 693.5, + "y_pos": -263.5 + }, + { + "id": 19845, + "x_pos": 649.5, + "y_pos": 461.5 + }, + { + "id": 19842, + "x_pos": 670, + "y_pos": 612 + }, + { + "id": 19833, + "x_pos": 552.5, + "y_pos": 554 + }, + { + "id": 19828, + "x_pos": 535.5, + "y_pos": 364.5 + }, + { + "id": 19815, + "x_pos": 427, + "y_pos": 336.5 + }, + { + "id": 19812, + "x_pos": 293, + "y_pos": 325.5 + }, + { + "id": 19802, + "x_pos": 351, + "y_pos": 374 + }, + { + "id": 19800, + "x_pos": 251, + "y_pos": 302.5 + }, + { + "id": 19796, + "x_pos": 344, + "y_pos": 482.5 + }, + { + "id": 19793, + "x_pos": 241.5, + "y_pos": 320 + }, + { + "id": 19785, + "x_pos": 560.5, + "y_pos": 637.5 + }, + { + "id": 19771, + "x_pos": 496.5, + "y_pos": 774.5 + }, + { + "id": 19770, + "x_pos": 498, + "y_pos": 809.5 + }, + { + "id": 19768, + "x_pos": -866.5, + "y_pos": 699 + }, + { + "id": 19670, + "x_pos": 431, + "y_pos": -310.5 + }, + { + "id": 19669, + "x_pos": 382, + "y_pos": -315.5 + }, + { + "id": 17135, + "x_pos": 2494.5, + "y_pos": 5630 + }, + { + "id": 17134, + "x_pos": 2493, + "y_pos": 5641.5 + }, + { + "id": 17130, + "x_pos": 2686, + "y_pos": 5857 + }, + { + "id": 17126, + "x_pos": 2527, + "y_pos": 5904.5 + }, + { + "id": 17124, + "x_pos": 2443.5, + "y_pos": 5902.5 + }, + { + "id": 17120, + "x_pos": 2370.5, + "y_pos": 5938.5 + }, + { + "id": 17116, + "x_pos": 2319.5, + "y_pos": 5990 + }, + { + "id": 17115, + "x_pos": 2310.5, + "y_pos": 6004.5 + }, + { + "id": 17113, + "x_pos": 2315.5, + "y_pos": 6060 + }, + { + "id": 15739, + "x_pos": -2263.6000366210938, + "y_pos": 1234.586994677673 + }, + { + "id": 15486, + "x_pos": 2508.3999938964844, + "y_pos": 5831.634293897134 + }, + { + "id": 15478, + "x_pos": 2515.800018310547, + "y_pos": 5909.524472660707 + }, + { + "id": 12027, + "x_pos": -1618.2200005421882, + "y_pos": 2238.271239374999 + }, + { + "id": 12024, + "x_pos": -1659.9427698837785, + "y_pos": 2286.5249898715374 + }, + { + "id": 12017, + "x_pos": -1621.6096291046542, + "y_pos": 2313.289023458069 + }, + { + "id": 12016, + "x_pos": -1662.7760701436414, + "y_pos": 2340.053026542714 + }, + { + "id": 11990, + "x_pos": -1723.4408463555278, + "y_pos": 1631.3606793815288 + }, + { + "id": 11961, + "x_pos": -1992.108449458393, + "y_pos": 1359.508218846523 + }, + { + "id": 11954, + "x_pos": -1742.3864803088923, + "y_pos": 1205.9483656001412 + }, + { + "id": 11757, + "x_pos": -2116.4218033602438, + "y_pos": 1106.6224680481428 + }, + { + "id": 11756, + "x_pos": -2136.1211453835294, + "y_pos": 1099.4904492757369 + }, + { + "id": 10772, + "x_pos": -1188.5, + "y_pos": 1866 + }, + { + "id": 10770, + "x_pos": -1137, + "y_pos": 1673.5 + }, + { + "id": 10768, + "x_pos": -1099, + "y_pos": 1626 + }, + { + "id": 10758, + "x_pos": -1395.5, + "y_pos": 1872 + }, + { + "id": 10723, + "x_pos": -1399, + "y_pos": 1767.5 + }, + { + "id": 10373, + "x_pos": -1350, + "y_pos": 1517.5 + }, + { + "id": 10139, + "x_pos": -1385.3999938964844, + "y_pos": 2305.3495732594874 + }, + { + "id": 10131, + "x_pos": -1463.4999694824219, + "y_pos": 2348.7705417789084 + }, + { + "id": 10127, + "x_pos": -1405.6000061035156, + "y_pos": 2415.402178094717 + }, + { + "id": 10126, + "x_pos": -1377.5, + "y_pos": 2445.097932885663 + }, + { + "id": 10098, + "x_pos": -1050.2000122070312, + "y_pos": 2115.594984606034 + }, + { + "id": 10096, + "x_pos": -1648.8000183105469, + "y_pos": 1229.2662820112837 + }, + { + "id": 9334, + "x_pos": -620, + "y_pos": 1342 + }, + { + "id": 9333, + "x_pos": -490.5, + "y_pos": 1381.5 + }, + { + "id": 8850, + "x_pos": -151.3889617190116, + "y_pos": 2698.9427216795575 + }, + { + "id": 8849, + "x_pos": -559, + "y_pos": 1500.9427216795575 + }, + { + "id": 8848, + "x_pos": -407, + "y_pos": 1510.9446445372278 + }, + { + "id": 8794, + "x_pos": -543.9444961172485, + "y_pos": 1682.8339946229935 + }, + { + "id": 8786, + "x_pos": -164.26182570097353, + "y_pos": 1677.1583196057882 + }, + { + "id": 8776, + "x_pos": 45.99965700670509, + "y_pos": 2618.221330334123 + }, + { + "id": 8526, + "x_pos": -1801.0182434594267, + "y_pos": 3001.695282947646 + }, + { + "id": 8525, + "x_pos": -1897.7224195552712, + "y_pos": 3005.8873662167853 + }, + { + "id": 8524, + "x_pos": -2102.222076561977, + "y_pos": 3065.6640825193363 + }, + { + "id": 8523, + "x_pos": -2096.610664772209, + "y_pos": 3077.328134533018 + }, + { + "id": 8522, + "x_pos": -1605.8334883517446, + "y_pos": 3232.166035882662 + }, + { + "id": 8521, + "x_pos": -1510.555503882752, + "y_pos": 2879.553371593792 + }, + { + "id": 8520, + "x_pos": -1563.2224195552712, + "y_pos": 3051.608727056564 + }, + { + "id": 8519, + "x_pos": -1511.944496117248, + "y_pos": 2942.6640520136807 + }, + { + "id": 8518, + "x_pos": -1522.5, + "y_pos": 3190.553371593792 + }, + { + "id": 8517, + "x_pos": -1502.2779234380232, + "y_pos": 2956.4921865466986 + }, + { + "id": 8516, + "x_pos": -1639.6665726792248, + "y_pos": 3247.2213608397788 + }, + { + "id": 8515, + "x_pos": -1666, + "y_pos": 3269.2213608397788 + }, + { + "id": 8514, + "x_pos": -1833.7220765619768, + "y_pos": 3340.7213608397788 + }, + { + "id": 8513, + "x_pos": -1736.6665726792248, + "y_pos": 3011.498046636674 + }, + { + "id": 8512, + "x_pos": -2027.389335227791, + "y_pos": 2866.1679587403314 + }, + { + "id": 8511, + "x_pos": -1518.3334578362596, + "y_pos": 2965.832010754012 + }, + { + "id": 8510, + "x_pos": -1802.944496117248, + "y_pos": 3174.221330334123 + }, + { + "id": 8509, + "x_pos": -1584.1669156725193, + "y_pos": 3221.666035882662 + }, + { + "id": 8508, + "x_pos": -1398.055503882752, + "y_pos": 3056.8339946229935 + }, + { + "id": 7836, + "x_pos": -1085, + "y_pos": -64 + }, + { + "id": 7835, + "x_pos": -1318, + "y_pos": -188.5 + }, + { + "id": 7834, + "x_pos": -1087, + "y_pos": -271 + }, + { + "id": 7833, + "x_pos": -993.5, + "y_pos": -60 + }, + { + "id": 7832, + "x_pos": -1119, + "y_pos": -522.5 + }, + { + "id": 7831, + "x_pos": -871.5, + "y_pos": -32 + }, + { + "id": 7654, + "x_pos": 413.5, + "y_pos": 1091.5 + }, + { + "id": 7653, + "x_pos": 328, + "y_pos": 1240.5 + }, + { + "id": 7651, + "x_pos": -39.5, + "y_pos": 1236 + }, + { + "id": 7649, + "x_pos": -379.5, + "y_pos": 1274.5 + }, + { + "id": 7647, + "x_pos": -33, + "y_pos": 1239 + }, + { + "id": 7645, + "x_pos": -128.5, + "y_pos": 1434 + }, + { + "id": 7644, + "x_pos": -423, + "y_pos": 1207 + }, + { + "id": 7640, + "x_pos": -95, + "y_pos": 1294 + }, + { + "id": 7638, + "x_pos": -295.5, + "y_pos": 1476.5 + }, + { + "id": 7636, + "x_pos": 326, + "y_pos": 904.5 + }, + { + "id": 7635, + "x_pos": 412.5, + "y_pos": 1081 + }, + { + "id": 7633, + "x_pos": -314, + "y_pos": 1393 + }, + { + "id": 7582, + "x_pos": 285, + "y_pos": 904.5 + }, + { + "id": 7490, + "x_pos": -99, + "y_pos": 740.5 + }, + { + "id": 7489, + "x_pos": -91, + "y_pos": 743 + }, + { + "id": 7488, + "x_pos": -72.5, + "y_pos": 756 + }, + { + "id": 7334, + "x_pos": 266, + "y_pos": 1646 + }, + { + "id": 6347, + "x_pos": -1451.500216536072, + "y_pos": 415.4938852304799 + }, + { + "id": 6228, + "x_pos": -1824.8936411282757, + "y_pos": 3339.3937343983216 + }, + { + "id": 6070, + "x_pos": -1151.0233858957827, + "y_pos": 933.5291627469428 + }, + { + "id": 6069, + "x_pos": -1146.503031505009, + "y_pos": 929.497648165569 + }, + { + "id": 6000, + "x_pos": 511.6908079398272, + "y_pos": -404.0124780765809 + }, + { + "id": 5895, + "x_pos": -1765, + "y_pos": 3047.0016100862676 + }, + { + "id": 5893, + "x_pos": -1524.497185031063, + "y_pos": 2547.5064403450715 + }, + { + "id": 5892, + "x_pos": -1564.000433072144, + "y_pos": 2546.501207564701 + }, + { + "id": 5890, + "x_pos": -1485.499783463928, + "y_pos": 2522.5088554744725 + }, + { + "id": 5889, + "x_pos": -1513.500649608216, + "y_pos": 2550.0064403450715 + }, + { + "id": 5888, + "x_pos": -1488.9987007835675, + "y_pos": 2539.501207564701 + }, + { + "id": 5884, + "x_pos": -1525.5, + "y_pos": 2564.0028176509686 + }, + { + "id": 5883, + "x_pos": -471.9922047014061, + "y_pos": -266.97423861971583 + }, + { + "id": 5881, + "x_pos": -486.02165360720574, + "y_pos": -275.9629680158414 + }, + { + "id": 5879, + "x_pos": -461.98917319639713, + "y_pos": -275.97504366284966 + }, + { + "id": 5877, + "x_pos": -454.9852755471002, + "y_pos": -265.973433576582 + }, + { + "id": 5874, + "x_pos": -1851.499566927856, + "y_pos": 2054.0008050431343 + }, + { + "id": 5873, + "x_pos": -438.9883070521091, + "y_pos": -269.9637730589752 + }, + { + "id": 5871, + "x_pos": -467.000433072144, + "y_pos": -247.9629680158414 + }, + { + "id": 5870, + "x_pos": 540.6100399849493, + "y_pos": -528.5865420448981 + }, + { + "id": 5868, + "x_pos": 518.4935039178381, + "y_pos": -475.5028176509686 + }, + { + "id": 5867, + "x_pos": 848.500649608216, + "y_pos": 677.5008050431338 + }, + { + "id": 5864, + "x_pos": 824.499133855712, + "y_pos": 680.5032201725357 + }, + { + "id": 5862, + "x_pos": 895.49891731964, + "y_pos": 729.4995974784329 + }, + { + "id": 5861, + "x_pos": 512.6143707063902, + "y_pos": -476.03662937059744 + }, + { + "id": 5859, + "x_pos": 725.001299216432, + "y_pos": -244.99798739216521 + }, + { + "id": 5858, + "x_pos": 970.5, + "y_pos": 826.5004025215671 + }, + { + "id": 5856, + "x_pos": -507.3867119739698, + "y_pos": 88.42955881777971 + }, + { + "id": 5850, + "x_pos": 540.5, + "y_pos": -253.99919495686618 + }, + { + "id": 5847, + "x_pos": 733.000866144288, + "y_pos": -244.49758487059808 + }, + { + "id": 5844, + "x_pos": 959.00108268036, + "y_pos": 847 + }, + { + "id": 5842, + "x_pos": 734.500433072144, + "y_pos": 678.998792435299 + }, + { + "id": 5840, + "x_pos": 1187.000433072144, + "y_pos": 896.5008050431338 + }, + { + "id": 5839, + "x_pos": 1033, + "y_pos": 879.5 + }, + { + "id": 5837, + "x_pos": 645.00108268036, + "y_pos": -199.00080504313382 + }, + { + "id": 5836, + "x_pos": 557.001299216432, + "y_pos": -183.99637730589757 + }, + { + "id": 5833, + "x_pos": -640.9978346392791, + "y_pos": 117.5 + }, + { + "id": 5831, + "x_pos": 417.9948031342701, + "y_pos": -187.4951697411966 + }, + { + "id": 5829, + "x_pos": 666.500649608216, + "y_pos": -56.498118532455464 + }, + { + "id": 5828, + "x_pos": -648.499783463928, + "y_pos": 594.4979873921652 + }, + { + "id": 5826, + "x_pos": 735.5051968657299, + "y_pos": 996.4951697411966 + }, + { + "id": 5822, + "x_pos": 728.00108268036, + "y_pos": 996.0024151294019 + }, + { + "id": 5818, + "x_pos": -1877.9982677114235, + "y_pos": 2082.50925799604 + }, + { + "id": 5816, + "x_pos": 282.000649608216, + "y_pos": 444.5048302588034 + }, + { + "id": 5814, + "x_pos": -1979.5, + "y_pos": 1523.5020126078343 + }, + { + "id": 5812, + "x_pos": 811.000866144288, + "y_pos": -525.0028176509686 + }, + { + "id": 5804, + "x_pos": -687.500433072144, + "y_pos": 55.00040252156714 + }, + { + "id": 5800, + "x_pos": -670.4098813336805, + "y_pos": 607.9669933235054 + }, + { + "id": 5794, + "x_pos": -1841.499783463928, + "y_pos": 2235.997584870598 + }, + { + "id": 5792, + "x_pos": -1973.8988379940051, + "y_pos": 1519.0599758054686 + }, + { + "id": 5791, + "x_pos": 806.999566927856, + "y_pos": 1105.9983899137324 + }, + { + "id": 5789, + "x_pos": -2002.999566927856, + "y_pos": 2230.9967798274647 + }, + { + "id": 5787, + "x_pos": -1572.4230900340758, + "y_pos": 1260.3301359907455 + }, + { + "id": 5783, + "x_pos": -1575.5, + "y_pos": 766.9998624854225 + }, + { + "id": 5781, + "x_pos": -1734.999350391784, + "y_pos": 1361.4991949568657 + }, + { + "id": 5780, + "x_pos": -1565.500649608216, + "y_pos": 1267 + }, + { + "id": 5777, + "x_pos": -1574.0017322885765, + "y_pos": 790.0008250874644 + }, + { + "id": 5772, + "x_pos": -1861.000216536072, + "y_pos": 2085.5044277372363 + }, + { + "id": 5768, + "x_pos": -1945.499133855712, + "y_pos": 2224.9983899137324 + }, + { + "id": 5766, + "x_pos": -625.999783463928, + "y_pos": 659.9939621764961 + }, + { + "id": 5763, + "x_pos": 424.500649608216, + "y_pos": 20.504830258803395 + }, + { + "id": 5758, + "x_pos": -1875.999133855712, + "y_pos": 2093.5008050431334 + }, + { + "id": 5756, + "x_pos": 731.0974808927695, + "y_pos": 1111.4637731509697 + }, + { + "id": 5754, + "x_pos": -1978.999133855712, + "y_pos": 1390.001207564701 + }, + { + "id": 5753, + "x_pos": -2091.000433072144, + "y_pos": 1521.0004025215667 + }, + { + "id": 5748, + "x_pos": -641.499783463928, + "y_pos": 111.00201260783479 + }, + { + "id": 5745, + "x_pos": -612.499783463928, + "y_pos": 676.4959747843304 + }, + { + "id": 5741, + "x_pos": -587.500649608216, + "y_pos": 695.5036226941024 + }, + { + "id": 5738, + "x_pos": -1513.499783463928, + "y_pos": 1352.5008050431343 + }, + { + "id": 5736, + "x_pos": -643.5, + "y_pos": 711.0052327803701 + }, + { + "id": 5734, + "x_pos": -1902.499350391784, + "y_pos": 1749.5004025215667 + }, + { + "id": 5732, + "x_pos": -1644.002814968937, + "y_pos": 1519.504830258803 + }, + { + "id": 5731, + "x_pos": 1185.053740606214, + "y_pos": 890.9859118371514 + }, + { + "id": 5725, + "x_pos": -1593, + "y_pos": 1326.0008050431334 + }, + { + "id": 5719, + "x_pos": -1482.5, + "y_pos": 1393.4995974784333 + }, + { + "id": 5716, + "x_pos": -2082.999133855712, + "y_pos": 1606.5 + }, + { + "id": 5714, + "x_pos": -1580.4987007835675, + "y_pos": 793.5 + }, + { + "id": 5712, + "x_pos": -1649.4982677114235, + "y_pos": 1506.5084529529058 + }, + { + "id": 5707, + "x_pos": -1487.000216536072, + "y_pos": 1391.0008050431343 + }, + { + "id": 5705, + "x_pos": -1903.999566927856, + "y_pos": 2120.5004025215667 + }, + { + "id": 5702, + "x_pos": -1682.999350391784, + "y_pos": 1744.001207564701 + }, + { + "id": 5701, + "x_pos": -1850.500433072144, + "y_pos": 2270.498792435299 + }, + { + "id": 5699, + "x_pos": -1881.499783463928, + "y_pos": 2167.0016100862676 + }, + { + "id": 5697, + "x_pos": -1744.9984842474955, + "y_pos": 3085.5008050431343 + }, + { + "id": 5694, + "x_pos": -2142.499350391784, + "y_pos": 1510.0020126078343 + }, + { + "id": 5692, + "x_pos": -2087.999566927856, + "y_pos": 1621.0016100862676 + }, + { + "id": 5691, + "x_pos": -1964.000433072144, + "y_pos": 2234.4967798274647 + }, + { + "id": 5690, + "x_pos": -1889.3938576643477, + "y_pos": 1796.4939622684906 + }, + { + "id": 5684, + "x_pos": -1716.9989173196395, + "y_pos": 1422.5008050431343 + }, + { + "id": 5680, + "x_pos": -1943.5012992164325, + "y_pos": 2244.9983899137324 + }, + { + "id": 5676, + "x_pos": -2241.999566927856, + "y_pos": 1793.9995974784333 + }, + { + "id": 5674, + "x_pos": -1760.3899600150507, + "y_pos": 1462.5374345977198 + }, + { + "id": 5672, + "x_pos": -1343.5, + "y_pos": 416.99917491253564 + }, + { + "id": 5669, + "x_pos": -2058.347302408855, + "y_pos": 1368.4661882803712 + }, + { + "id": 5667, + "x_pos": -1390.4987007835675, + "y_pos": 1397.5016100862676 + }, + { + "id": 5663, + "x_pos": 292.999783463928, + "y_pos": 452.50120756470096 + }, + { + "id": 5661, + "x_pos": -1844.000649608216, + "y_pos": 814.5008050431338 + }, + { + "id": 5658, + "x_pos": -1515, + "y_pos": 2566.5032201725353 + }, + { + "id": 5655, + "x_pos": -2245.499783463928, + "y_pos": 1822.001207564701 + }, + { + "id": 5654, + "x_pos": -2377.0125590921793, + "y_pos": 1208.4983899137324 + }, + { + "id": 5653, + "x_pos": -1984.999350391784, + "y_pos": 2220.501207564701 + }, + { + "id": 5650, + "x_pos": -1965.8849796853933, + "y_pos": 2242.462565586269 + }, + { + "id": 5644, + "x_pos": -1842.500433072144, + "y_pos": 2297.497584870598 + }, + { + "id": 5641, + "x_pos": -1391.3849796853933, + "y_pos": 1384.8925268336216 + }, + { + "id": 5637, + "x_pos": -1790.499350391784, + "y_pos": 1960.0020126078343 + }, + { + "id": 5635, + "x_pos": -2252.5, + "y_pos": 1829.0016100862676 + }, + { + "id": 5634, + "x_pos": -2070, + "y_pos": 1663.5008050431343 + }, + { + "id": 5630, + "x_pos": -2383.3817316443124, + "y_pos": 1205.9134579551019 + }, + { + "id": 5629, + "x_pos": -2552.4989173196395, + "y_pos": 1556.500940733772 + }, + { + "id": 5626, + "x_pos": -1761.500649608216, + "y_pos": 1778.4991949568657 + }, + { + "id": 5625, + "x_pos": -2026.999133855712, + "y_pos": 2280.5 + }, + { + "id": 5622, + "x_pos": -1649.499566927856, + "y_pos": 1524.4971823490314 + }, + { + "id": 5614, + "x_pos": -644.4010033547256, + "y_pos": 730.4186907354724 + }, + { + "id": 5612, + "x_pos": -1962.500649608216, + "y_pos": 2256.4991949568657 + }, + { + "id": 5610, + "x_pos": -1899.5, + "y_pos": 2134 + }, + { + "id": 5603, + "x_pos": -1921.000216536072, + "y_pos": 965.4983899137324 + }, + { + "id": 5600, + "x_pos": -1850.999566927856, + "y_pos": 812.0004025215671 + }, + { + "id": 5595, + "x_pos": -1888.5, + "y_pos": 884.0020126078348 + }, + { + "id": 5593, + "x_pos": -1868.500216536072, + "y_pos": 825.498792435299 + }, + { + "id": 5591, + "x_pos": -1408.502814968937, + "y_pos": 481.99766225218445 + }, + { + "id": 5590, + "x_pos": -2165.499133855712, + "y_pos": 1356.001207564701 + }, + { + "id": 5589, + "x_pos": -1932.999350391784, + "y_pos": 972.5008050431338 + }, + { + "id": 5584, + "x_pos": -1935.4989173196395, + "y_pos": 962 + }, + { + "id": 5581, + "x_pos": -1406.449290898795, + "y_pos": 486.8565080927797 + }, + { + "id": 5578, + "x_pos": -1519.4989173196395, + "y_pos": 823.5008050431338 + }, + { + "id": 5574, + "x_pos": -2518.499133855712, + "y_pos": 1576 + }, + { + "id": 5572, + "x_pos": -2384.999566927856, + "y_pos": 1210.5016100862676 + }, + { + "id": 5571, + "x_pos": -161.500433072144, + "y_pos": 570.9991949568662 + }, + { + "id": 5563, + "x_pos": -439.99523620641503, + "y_pos": -251.9863142667241 + }, + { + "id": 5560, + "x_pos": 490.000216536072, + "y_pos": -406.99758487059853 + }, + { + "id": 5558, + "x_pos": 388, + "y_pos": -113.99718234903139 + }, + { + "id": 5556, + "x_pos": 641.0019488246489, + "y_pos": -235.99838991373235 + }, + { + "id": 5555, + "x_pos": -587.999133855712, + "y_pos": 712.498792435299 + }, + { + "id": 5552, + "x_pos": 886.4846259388842, + "y_pos": 730.5156983411107 + }, + { + "id": 5550, + "x_pos": 623.5976974288424, + "y_pos": -143.99959738643884 + }, + { + "id": 5545, + "x_pos": 583.500649608216, + "y_pos": -119.49758487059853 + }, + { + "id": 5543, + "x_pos": 1274.000866144288, + "y_pos": 854.0024151294015 + }, + { + "id": 5537, + "x_pos": -423.00866144288193, + "y_pos": -264.00241512940147 + }, + { + "id": 5527, + "x_pos": 412.499350391784, + "y_pos": -188.5 + }, + { + "id": 5522, + "x_pos": 1031.5996462534904, + "y_pos": 996.5503152878618 + }, + { + "id": 5519, + "x_pos": 682.500866144288, + "y_pos": 873.0008050431338 + }, + { + "id": 5516, + "x_pos": 279.000866144288, + "y_pos": 464.50161008626765 + }, + { + "id": 5513, + "x_pos": 192.5, + "y_pos": 556.9963773058971 + }, + { + "id": 5511, + "x_pos": 377.500649608216, + "y_pos": -113.99798739216521 + }, + { + "id": 5504, + "x_pos": -455.99566927855903, + "y_pos": -230.99758487059808 + }, + { + "id": 5500, + "x_pos": 636.5, + "y_pos": 877 + }, + { + "id": 5498, + "x_pos": 765.499783463928, + "y_pos": 696.0020126078348 + }, + { + "id": 5494, + "x_pos": 871.000433072144, + "y_pos": 796.501207564701 + }, + { + "id": 5483, + "x_pos": -2061.000433072144, + "y_pos": 2321.497584870598 + }, + { + "id": 5479, + "x_pos": 681.00108268036, + "y_pos": -221.49919495686618 + }, + { + "id": 5474, + "x_pos": -493.504980329657, + "y_pos": 737.9955722627637 + }, + { + "id": 5472, + "x_pos": -1364.500433072144, + "y_pos": 539.5004125437322 + }, + { + "id": 5468, + "x_pos": -245.999566927856, + "y_pos": -259.9971823490314 + }, + { + "id": 5467, + "x_pos": -485.9805117535143, + "y_pos": -240.94525706689592 + }, + { + "id": 5464, + "x_pos": -600.0071456903779, + "y_pos": 738.5096605176068 + }, + { + "id": 5460, + "x_pos": 83, + "y_pos": 379.5 + }, + { + "id": 5457, + "x_pos": -180.99848424749598, + "y_pos": 601.5004025215671 + }, + { + "id": 5454, + "x_pos": -603, + "y_pos": 746 + }, + { + "id": 5450, + "x_pos": -492.000216536072, + "y_pos": 742.9975848705985 + }, + { + "id": 5443, + "x_pos": -723.999783463928, + "y_pos": 633.5036226941024 + }, + { + "id": 5438, + "x_pos": -1320.999133855712, + "y_pos": 1485.0005500583093 + }, + { + "id": 5433, + "x_pos": -426.00303150500895, + "y_pos": -257.0048302588034 + }, + { + "id": 5429, + "x_pos": -480.999566927856, + "y_pos": -223.99436469806278 + }, + { + "id": 5427, + "x_pos": -301.498700783568, + "y_pos": -379.9979873921652 + }, + { + "id": 5423, + "x_pos": 670.500433072144, + "y_pos": 945.0028176509686 + }, + { + "id": 5406, + "x_pos": 598.999783463928, + "y_pos": -122.49919495686618 + }, + { + "id": 5400, + "x_pos": 690.500433072144, + "y_pos": 1105.9995974784329 + }, + { + "id": 5394, + "x_pos": 649.001732288576, + "y_pos": 935.0020126078348 + }, + { + "id": 5388, + "x_pos": -1872.9982677114235, + "y_pos": 989.4995974784329 + }, + { + "id": 5383, + "x_pos": 685.999783463928, + "y_pos": 1101.9983899137324 + }, + { + "id": 5380, + "x_pos": -587.499783463928, + "y_pos": 778.4995974784333 + }, + { + "id": 5373, + "x_pos": -1563.999783463928, + "y_pos": 1455.4979873921657 + }, + { + "id": 5371, + "x_pos": -1620.999783463928, + "y_pos": 1513.001207564701 + }, + { + "id": 5369, + "x_pos": -1816.999566927856, + "y_pos": 1077.5020126078348 + }, + { + "id": 5360, + "x_pos": -2112.8975387775727, + "y_pos": 1540.480679056781 + }, + { + "id": 5357, + "x_pos": -1305.997185031063, + "y_pos": 1489.5004125437317 + }, + { + "id": 5355, + "x_pos": -1301.996102350703, + "y_pos": 1486.5015126603512 + }, + { + "id": 5335, + "x_pos": -1805.999350391784, + "y_pos": 1970.001207564701 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/1a7294c6581ef00d0eb0c9cf7929f288_3896004683166534424.png" + }, + "261": { + "name": "Fishing Point", + "clear_name": "FishingPoint", + "points": [ + { + "id": 20055, + "x_pos": 1638.5, + "y_pos": 8759.328499201292 + }, + { + "id": 18686, + "x_pos": 2040, + "y_pos": 8354.5 + }, + { + "id": 17694, + "x_pos": 3327, + "y_pos": 6754 + }, + { + "id": 17693, + "x_pos": 3212, + "y_pos": 5569.5 + }, + { + "id": 17692, + "x_pos": 2951, + "y_pos": 4871.5 + }, + { + "id": 17691, + "x_pos": 3398.5, + "y_pos": 6779 + }, + { + "id": 17690, + "x_pos": 2878.5, + "y_pos": 5907.5 + }, + { + "id": 17689, + "x_pos": 1883, + "y_pos": 5719.5 + }, + { + "id": 17688, + "x_pos": 512.5, + "y_pos": 5895.5 + }, + { + "id": 17687, + "x_pos": 61, + "y_pos": 5961.5 + }, + { + "id": 17686, + "x_pos": -653, + "y_pos": 3073 + }, + { + "id": 17685, + "x_pos": -803, + "y_pos": 1679.5 + }, + { + "id": 17684, + "x_pos": -1272.5, + "y_pos": 2178.5 + }, + { + "id": 17683, + "x_pos": -2090.5, + "y_pos": 2174 + }, + { + "id": 17682, + "x_pos": -1294, + "y_pos": 1373.5 + }, + { + "id": 17681, + "x_pos": -2402, + "y_pos": 1633 + }, + { + "id": 17680, + "x_pos": -2329, + "y_pos": 1190.5 + }, + { + "id": 17679, + "x_pos": -1757, + "y_pos": 954.5 + }, + { + "id": 17678, + "x_pos": -1881.5, + "y_pos": 789.5 + }, + { + "id": 17677, + "x_pos": -1162, + "y_pos": 1011 + }, + { + "id": 17676, + "x_pos": -141.5, + "y_pos": 1335 + }, + { + "id": 17675, + "x_pos": -1198, + "y_pos": 507 + }, + { + "id": 17674, + "x_pos": -491, + "y_pos": 621.5 + }, + { + "id": 17673, + "x_pos": 312, + "y_pos": 38 + }, + { + "id": 17672, + "x_pos": 65, + "y_pos": 263.5 + }, + { + "id": 17671, + "x_pos": -816, + "y_pos": -564 + }, + { + "id": 17670, + "x_pos": -868, + "y_pos": -177 + }, + { + "id": 17669, + "x_pos": 584.5, + "y_pos": -435 + }, + { + "id": 17668, + "x_pos": 529, + "y_pos": 470.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/052bbb288d4f3245166908367aa8ccd8_465260317346550977.png" + }, + "91": { + "name": "Butterfly\u00a0Wings", + "clear_name": "ButterflyWings", + "points": [ + { + "id": 20047, + "x_pos": 882, + "y_pos": -616.5 + }, + { + "id": 20046, + "x_pos": 948.5, + "y_pos": -586.5 + }, + { + "id": 20045, + "x_pos": 986.5, + "y_pos": -584.5 + }, + { + "id": 20044, + "x_pos": 951, + "y_pos": -583 + }, + { + "id": 20043, + "x_pos": 835.5, + "y_pos": -401.5 + }, + { + "id": 20042, + "x_pos": 665.5, + "y_pos": -86 + }, + { + "id": 20041, + "x_pos": 660.5, + "y_pos": 1 + }, + { + "id": 20040, + "x_pos": 992, + "y_pos": 101 + }, + { + "id": 20039, + "x_pos": 347, + "y_pos": -329 + }, + { + "id": 20038, + "x_pos": 409.5, + "y_pos": -159.5 + }, + { + "id": 20037, + "x_pos": 377, + "y_pos": -121.5 + }, + { + "id": 20036, + "x_pos": 144, + "y_pos": -30 + }, + { + "id": 20035, + "x_pos": 358.5, + "y_pos": 32.5 + }, + { + "id": 20034, + "x_pos": 502.5, + "y_pos": 117 + }, + { + "id": 20033, + "x_pos": 515, + "y_pos": 126.5 + }, + { + "id": 20032, + "x_pos": 623, + "y_pos": 305 + }, + { + "id": 20031, + "x_pos": 464.5, + "y_pos": 352 + }, + { + "id": 20030, + "x_pos": 456, + "y_pos": 366 + }, + { + "id": 20029, + "x_pos": 383, + "y_pos": 422 + }, + { + "id": 20028, + "x_pos": 378.5, + "y_pos": 425.5 + }, + { + "id": 20027, + "x_pos": 374.5, + "y_pos": 425 + }, + { + "id": 20026, + "x_pos": 381.5, + "y_pos": 674.5 + }, + { + "id": 20025, + "x_pos": 391, + "y_pos": 683 + }, + { + "id": 20024, + "x_pos": 121, + "y_pos": 493 + }, + { + "id": 20023, + "x_pos": 20, + "y_pos": 318 + }, + { + "id": 20022, + "x_pos": 9, + "y_pos": 383 + }, + { + "id": 20021, + "x_pos": -229, + "y_pos": 597 + }, + { + "id": 20020, + "x_pos": -363, + "y_pos": 476.5 + }, + { + "id": 20019, + "x_pos": -298, + "y_pos": 503 + }, + { + "id": 20018, + "x_pos": -285.5, + "y_pos": 507 + }, + { + "id": 20017, + "x_pos": -323.5, + "y_pos": 638.5 + }, + { + "id": 20016, + "x_pos": -236, + "y_pos": 604 + }, + { + "id": 20015, + "x_pos": -229, + "y_pos": 650 + }, + { + "id": 20014, + "x_pos": -403.5, + "y_pos": 494.5 + }, + { + "id": 20013, + "x_pos": 1171.5, + "y_pos": 897 + }, + { + "id": 20012, + "x_pos": 984, + "y_pos": 940 + }, + { + "id": 20011, + "x_pos": 1273, + "y_pos": 857 + }, + { + "id": 20010, + "x_pos": 3425.5, + "y_pos": 4874 + }, + { + "id": 20009, + "x_pos": 3429, + "y_pos": 4820 + }, + { + "id": 20008, + "x_pos": 3592, + "y_pos": 5101.5 + }, + { + "id": 20007, + "x_pos": 3480.5, + "y_pos": 5249 + }, + { + "id": 20006, + "x_pos": 3463.5, + "y_pos": 5294 + }, + { + "id": 20005, + "x_pos": 3418, + "y_pos": 6673.5 + }, + { + "id": 20004, + "x_pos": 3429, + "y_pos": 6690.5 + }, + { + "id": 20003, + "x_pos": 2403.5, + "y_pos": 6026 + }, + { + "id": 20002, + "x_pos": 2367, + "y_pos": 6117 + }, + { + "id": 20001, + "x_pos": -1614.5, + "y_pos": 408.5 + }, + { + "id": 20000, + "x_pos": -1574.5, + "y_pos": 410 + }, + { + "id": 19999, + "x_pos": -1374, + "y_pos": 458 + }, + { + "id": 19998, + "x_pos": -1394, + "y_pos": 462.5 + }, + { + "id": 19997, + "x_pos": -1605.5, + "y_pos": 579.5 + }, + { + "id": 19996, + "x_pos": -1607, + "y_pos": 583 + }, + { + "id": 19995, + "x_pos": -1600, + "y_pos": 596 + }, + { + "id": 19994, + "x_pos": -551, + "y_pos": 1332 + }, + { + "id": 19993, + "x_pos": -424, + "y_pos": 1544 + }, + { + "id": 19992, + "x_pos": -1003, + "y_pos": 1606 + }, + { + "id": 19991, + "x_pos": -1199, + "y_pos": 1790 + }, + { + "id": 19990, + "x_pos": -2167, + "y_pos": 1117.5 + }, + { + "id": 19989, + "x_pos": -2101.5, + "y_pos": 1132 + }, + { + "id": 19988, + "x_pos": -2038, + "y_pos": 1174 + }, + { + "id": 19987, + "x_pos": -2082, + "y_pos": 1326 + }, + { + "id": 19986, + "x_pos": -2094.5, + "y_pos": 1340 + }, + { + "id": 19985, + "x_pos": -2224, + "y_pos": 1252.5 + }, + { + "id": 19984, + "x_pos": -2214.5, + "y_pos": 1306.5 + }, + { + "id": 19983, + "x_pos": -2182.5, + "y_pos": 1320 + }, + { + "id": 19982, + "x_pos": -2114, + "y_pos": 1310 + }, + { + "id": 19981, + "x_pos": -2193.5, + "y_pos": 1311 + }, + { + "id": 19980, + "x_pos": -2082.5, + "y_pos": 1350 + }, + { + "id": 19979, + "x_pos": -2261, + "y_pos": 1288 + }, + { + "id": 19978, + "x_pos": -2296, + "y_pos": 1342.5 + }, + { + "id": 19977, + "x_pos": -2289, + "y_pos": 1426 + }, + { + "id": 19976, + "x_pos": -1978.5, + "y_pos": 1428.5 + }, + { + "id": 19975, + "x_pos": -1945, + "y_pos": 1491.5 + }, + { + "id": 19974, + "x_pos": -1928, + "y_pos": 1538.5 + }, + { + "id": 19973, + "x_pos": -2115.5, + "y_pos": 1539 + }, + { + "id": 19972, + "x_pos": -2268, + "y_pos": 1525.5 + }, + { + "id": 19971, + "x_pos": -2245.5, + "y_pos": 1582.5 + }, + { + "id": 19970, + "x_pos": -2146.5, + "y_pos": 1565 + }, + { + "id": 19969, + "x_pos": -2084, + "y_pos": 1590 + }, + { + "id": 19968, + "x_pos": -1816, + "y_pos": 1612 + }, + { + "id": 19967, + "x_pos": -1939, + "y_pos": 1733.5 + }, + { + "id": 19966, + "x_pos": -1928.5, + "y_pos": 1774 + }, + { + "id": 19965, + "x_pos": -1807, + "y_pos": 1900 + }, + { + "id": 19964, + "x_pos": -1819, + "y_pos": 1929 + }, + { + "id": 19963, + "x_pos": -1780, + "y_pos": 1937 + }, + { + "id": 19962, + "x_pos": -1770.5, + "y_pos": 1918.5 + }, + { + "id": 19961, + "x_pos": -902, + "y_pos": 2175 + }, + { + "id": 19960, + "x_pos": -939, + "y_pos": 2178.5 + }, + { + "id": 19959, + "x_pos": -2034, + "y_pos": 2158 + }, + { + "id": 19958, + "x_pos": -1644, + "y_pos": 2489 + }, + { + "id": 19957, + "x_pos": -1555, + "y_pos": 2689 + }, + { + "id": 19956, + "x_pos": -1810, + "y_pos": 3065 + }, + { + "id": 19955, + "x_pos": -1830, + "y_pos": 3052 + }, + { + "id": 19954, + "x_pos": -1783.5, + "y_pos": 3029 + }, + { + "id": 19953, + "x_pos": -1796, + "y_pos": 3075.5 + }, + { + "id": 19952, + "x_pos": -1599.5, + "y_pos": 3067.5 + }, + { + "id": 19951, + "x_pos": -1594, + "y_pos": 3089 + }, + { + "id": 19950, + "x_pos": -1471, + "y_pos": 3061.5 + }, + { + "id": 19949, + "x_pos": -1478, + "y_pos": 3061.5 + }, + { + "id": 19948, + "x_pos": -1521, + "y_pos": 3126.5 + }, + { + "id": 19947, + "x_pos": -1662.5, + "y_pos": 3106.5 + }, + { + "id": 19946, + "x_pos": -1497, + "y_pos": 3237.5 + }, + { + "id": 19945, + "x_pos": -1494, + "y_pos": 3229 + }, + { + "id": 19944, + "x_pos": -1485.5, + "y_pos": 3238.5 + }, + { + "id": 19943, + "x_pos": -1904.5, + "y_pos": 3149 + }, + { + "id": 19942, + "x_pos": -2070, + "y_pos": 3205 + }, + { + "id": 17879, + "x_pos": 3647, + "y_pos": 5121 + }, + { + "id": 16978, + "x_pos": 2918.199981689453, + "y_pos": 7086.907970232065 + }, + { + "id": 16977, + "x_pos": 2917.4000244140625, + "y_pos": 7089.885802256305 + }, + { + "id": 15835, + "x_pos": 1340.5, + "y_pos": 6221 + }, + { + "id": 15742, + "x_pos": -2093.4000244140625, + "y_pos": 1052.0225339510744 + }, + { + "id": 15737, + "x_pos": -1957.2999572753906, + "y_pos": 1514.1947299459407 + }, + { + "id": 15724, + "x_pos": -1934.2999572753906, + "y_pos": 2176.1917129287685 + }, + { + "id": 15415, + "x_pos": 2815.5, + "y_pos": 5639 + }, + { + "id": 14835, + "x_pos": 1703.5, + "y_pos": 6154.5 + }, + { + "id": 14834, + "x_pos": 1601, + "y_pos": 6208.5 + }, + { + "id": 14833, + "x_pos": 1602, + "y_pos": 6211.5 + }, + { + "id": 14661, + "x_pos": 1347, + "y_pos": 6253 + }, + { + "id": 14660, + "x_pos": 1352.5, + "y_pos": 6257.5 + }, + { + "id": 14501, + "x_pos": 827, + "y_pos": -520 + }, + { + "id": 14448, + "x_pos": 3943, + "y_pos": 5545.5 + }, + { + "id": 14447, + "x_pos": 3952, + "y_pos": 5550 + }, + { + "id": 14446, + "x_pos": 3984, + "y_pos": 5525 + }, + { + "id": 14445, + "x_pos": 3987.5, + "y_pos": 5523.5 + }, + { + "id": 14444, + "x_pos": 3802.5, + "y_pos": 4999.5 + }, + { + "id": 14287, + "x_pos": 1783.2999877929688, + "y_pos": 6165.899993896484 + }, + { + "id": 14216, + "x_pos": 3419, + "y_pos": 5274 + }, + { + "id": 14215, + "x_pos": 3409.5, + "y_pos": 4841.5 + }, + { + "id": 14213, + "x_pos": 3650, + "y_pos": 4826 + }, + { + "id": 11973, + "x_pos": -1647.720188061794, + "y_pos": 1402.5139050479074 + }, + { + "id": 11937, + "x_pos": -1612.2753459353326, + "y_pos": 575.9804697544837 + }, + { + "id": 11764, + "x_pos": -1971.2656529222018, + "y_pos": 1134.4496893937653 + }, + { + "id": 11763, + "x_pos": -1956.7791606979072, + "y_pos": 1144.878683572213 + }, + { + "id": 11762, + "x_pos": -1965.201585683596, + "y_pos": 1161.947950506339 + }, + { + "id": 11748, + "x_pos": -1603.1060308442393, + "y_pos": 695.6677707621361 + }, + { + "id": 11747, + "x_pos": -1606.3053881388055, + "y_pos": 698.6191659456385 + }, + { + "id": 11744, + "x_pos": -1944.5397504878847, + "y_pos": 947.0733116082401 + }, + { + "id": 11739, + "x_pos": -1946.6733726951375, + "y_pos": 1076.2041507545532 + }, + { + "id": 10741, + "x_pos": -1380, + "y_pos": 1564.5 + }, + { + "id": 10669, + "x_pos": -2276, + "y_pos": 1504.5 + }, + { + "id": 10384, + "x_pos": 727.0730533850074, + "y_pos": 938.1429443359375 + }, + { + "id": 5992, + "x_pos": -1910.5010826803605, + "y_pos": 882.0044277372363 + }, + { + "id": 5378, + "x_pos": -1835.999350391784, + "y_pos": 2943.0032201725353 + }, + { + "id": 5377, + "x_pos": -1585.500433072144, + "y_pos": 603.9979873921652 + }, + { + "id": 5376, + "x_pos": -1582.4989173196395, + "y_pos": 629.9983899137324 + }, + { + "id": 5375, + "x_pos": -1909.999350391784, + "y_pos": 884.0048302588034 + }, + { + "id": 5374, + "x_pos": -305.88996001505075, + "y_pos": 675.51771104094 + }, + { + "id": 5372, + "x_pos": -327.9239561783643, + "y_pos": 666.9718235823084 + }, + { + "id": 5370, + "x_pos": -44.46011770239784, + "y_pos": 488.34422424558807 + }, + { + "id": 5366, + "x_pos": -28.5, + "y_pos": 2698.0008050431343 + }, + { + "id": 5365, + "x_pos": -14.919192384778398, + "y_pos": 2708.4094327394323 + }, + { + "id": 5363, + "x_pos": -1675.8598615010342, + "y_pos": 3068.9762513195446 + }, + { + "id": 5361, + "x_pos": -995.999133855712, + "y_pos": 1069.998792435299 + }, + { + "id": 5328, + "x_pos": 901.5693312034018, + "y_pos": -547.0962025625045 + }, + { + "id": 5258, + "x_pos": 112, + "y_pos": 139 + }, + { + "id": 5257, + "x_pos": 989.1503156943527, + "y_pos": -611.0982151703392 + }, + { + "id": 5256, + "x_pos": 808.2737809157697, + "y_pos": 882.7713679339663 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/afb17f6ad50d8b33cd503e1390527ce8_6283032796221356535.png" + }, + "24": { + "name": "Abyss Mage", + "clear_name": "AbyssMage", + "points": [ + { + "id": 19871, + "x_pos": 2081.8999938964844, + "y_pos": 8576.099975585938 + }, + { + "id": 19870, + "x_pos": 2078.6000061035156, + "y_pos": 8577.5 + }, + { + "id": 19869, + "x_pos": 2119.3999938964844, + "y_pos": 8602.200012207031 + }, + { + "id": 19868, + "x_pos": 2115.300018310547, + "y_pos": 8601.699996948242 + }, + { + "id": 19636, + "x_pos": 2036.3000183105469, + "y_pos": 8549.399963378906 + }, + { + "id": 19635, + "x_pos": 2040.5, + "y_pos": 8551.5 + }, + { + "id": 19634, + "x_pos": 2137.2000122070312, + "y_pos": 8607.5 + }, + { + "id": 19488, + "x_pos": 2073.1000366210938, + "y_pos": 8638.700012207031 + }, + { + "id": 19487, + "x_pos": 2074.000030517578, + "y_pos": 8641.899993896484 + }, + { + "id": 19486, + "x_pos": 2078.5, + "y_pos": 8639.200012207031 + }, + { + "id": 19481, + "x_pos": 2107, + "y_pos": 8560.600006103516 + }, + { + "id": 19480, + "x_pos": 2102.8999938964844, + "y_pos": 8564.5 + }, + { + "id": 19471, + "x_pos": 1788.2000122070312, + "y_pos": 7097.499984741211 + }, + { + "id": 19399, + "x_pos": 2213.500030517578, + "y_pos": 5872.099945068359 + }, + { + "id": 19336, + "x_pos": 1838.2999877929688, + "y_pos": 8689.100006103516 + }, + { + "id": 18890, + "x_pos": 2458, + "y_pos": 8348.5 + }, + { + "id": 18887, + "x_pos": 2208.5, + "y_pos": 8658.5 + }, + { + "id": 18832, + "x_pos": 1960.5, + "y_pos": 8540 + }, + { + "id": 18803, + "x_pos": 1829, + "y_pos": 8520 + }, + { + "id": 16707, + "x_pos": -83.5, + "y_pos": 6048.5 + }, + { + "id": 16706, + "x_pos": -244.5, + "y_pos": 6093 + }, + { + "id": 16705, + "x_pos": -256, + "y_pos": 6100.5 + }, + { + "id": 15720, + "x_pos": 2890.7000122070312, + "y_pos": 5910.300018310547 + }, + { + "id": 14135, + "x_pos": 3591.5, + "y_pos": 5067.900001525879 + }, + { + "id": 14122, + "x_pos": 2205.3999633789062, + "y_pos": 6166.299995422363 + }, + { + "id": 14119, + "x_pos": 2215.1000061035156, + "y_pos": 6270 + }, + { + "id": 14117, + "x_pos": 2153.1000061035156, + "y_pos": 6184.800018310547 + }, + { + "id": 14116, + "x_pos": 2153.5, + "y_pos": 6190.300018310547 + }, + { + "id": 14104, + "x_pos": 2736.7999877929688, + "y_pos": 5884.5 + }, + { + "id": 14103, + "x_pos": 2443.2999572753906, + "y_pos": 5831.899963378906 + }, + { + "id": 14101, + "x_pos": 2252.8999938964844, + "y_pos": 5793.0999755859375 + }, + { + "id": 14100, + "x_pos": 2252.6000061035156, + "y_pos": 5797.700012207031 + }, + { + "id": 13726, + "x_pos": 2792.5, + "y_pos": 5474.5 + }, + { + "id": 13725, + "x_pos": 2792.5, + "y_pos": 5481.5 + }, + { + "id": 13632, + "x_pos": 2442.5, + "y_pos": 5836.5 + }, + { + "id": 10941, + "x_pos": -52.5, + "y_pos": 810 + }, + { + "id": 10940, + "x_pos": -783, + "y_pos": 779 + }, + { + "id": 10939, + "x_pos": -657.5, + "y_pos": -545.5 + }, + { + "id": 10938, + "x_pos": -1043.5, + "y_pos": -388.5 + }, + { + "id": 10902, + "x_pos": 546.5, + "y_pos": 1071 + }, + { + "id": 7405, + "x_pos": -46.699981689453125, + "y_pos": 829.2217455475597 + }, + { + "id": 7044, + "x_pos": 395, + "y_pos": 1425.5 + }, + { + "id": 6907, + "x_pos": -372.5, + "y_pos": 1081 + }, + { + "id": 6895, + "x_pos": 391, + "y_pos": 1429 + }, + { + "id": 6796, + "x_pos": -2043.5, + "y_pos": 2980.5 + }, + { + "id": 4184, + "x_pos": -2378.9222840384855, + "y_pos": 1833.3138340097494 + }, + { + "id": 4183, + "x_pos": -2600.5, + "y_pos": 1733.9943736793794 + }, + { + "id": 4182, + "x_pos": -1752, + "y_pos": 1950.2663125093795 + }, + { + "id": 4181, + "x_pos": -1828, + "y_pos": 1878.174791027283 + }, + { + "id": 4179, + "x_pos": -1541, + "y_pos": 1787.8522153116965 + }, + { + "id": 4178, + "x_pos": -1601.5, + "y_pos": 1433.081776833862 + }, + { + "id": 4177, + "x_pos": -1559, + "y_pos": 1624.4414786247034 + }, + { + "id": 4173, + "x_pos": 623.5, + "y_pos": 955.3019458733106 + }, + { + "id": 3499, + "x_pos": -562, + "y_pos": 92 + }, + { + "id": 2354, + "x_pos": -1820, + "y_pos": 2793.28086437646 + }, + { + "id": 2350, + "x_pos": -1819, + "y_pos": 2789.260713037713 + }, + { + "id": 2334, + "x_pos": -1994, + "y_pos": 2088.4798588465906 + }, + { + "id": 2331, + "x_pos": -1907, + "y_pos": 2025.36902648348 + }, + { + "id": 2330, + "x_pos": -2202, + "y_pos": 1967.0617185675828 + }, + { + "id": 2325, + "x_pos": -2519, + "y_pos": 1629.1624752613197 + }, + { + "id": 2319, + "x_pos": -777, + "y_pos": 1298.1675130960066 + }, + { + "id": 2301, + "x_pos": -1824, + "y_pos": 2787.094464493047 + }, + { + "id": 2300, + "x_pos": -640, + "y_pos": 1931.151140133274 + }, + { + "id": 2296, + "x_pos": -1992, + "y_pos": 2770.3224265126264 + }, + { + "id": 2284, + "x_pos": 470, + "y_pos": 702.0541618155526 + }, + { + "id": 2283, + "x_pos": -2083, + "y_pos": 3217.3199075952834 + }, + { + "id": 2275, + "x_pos": -2063, + "y_pos": 3229.1612158026473 + }, + { + "id": 1555, + "x_pos": -808.9989988758784, + "y_pos": 887.0050582836338 + }, + { + "id": 1034, + "x_pos": -557, + "y_pos": 1835.1265862949253 + }, + { + "id": 1027, + "x_pos": -985, + "y_pos": 1793.074747685445 + }, + { + "id": 1010, + "x_pos": 835, + "y_pos": 90 + }, + { + "id": 924, + "x_pos": -528.5, + "y_pos": 2449.6089336623318 + }, + { + "id": 909, + "x_pos": 241, + "y_pos": 2581.7007781552156 + }, + { + "id": 843, + "x_pos": -1627.999126044053, + "y_pos": 2819.9986749770424 + }, + { + "id": 826, + "x_pos": -1203, + "y_pos": 2090.960928129846 + }, + { + "id": 805, + "x_pos": -1633.4997815110132, + "y_pos": 2972.997952237248 + }, + { + "id": 627, + "x_pos": -529, + "y_pos": 2451.1235837041413 + }, + { + "id": 480, + "x_pos": -1522.4993445330397, + "y_pos": 3114.999397716838 + }, + { + "id": 453, + "x_pos": 257, + "y_pos": 2506.5734354841006 + }, + { + "id": 451, + "x_pos": 241, + "y_pos": 2583.1596453455195 + }, + { + "id": 449, + "x_pos": 237.5, + "y_pos": 2583.1083701991847 + }, + { + "id": 389, + "x_pos": -1632.0623109866983, + "y_pos": 3209.786503161119 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/d2fa99f9123c46cd98de7410adfe1d7a_8479587568669217286.png" + }, + "215": { + "name": "Ruin Sentinel", + "clear_name": "RuinSentinel", + "points": [ + { + "id": 19867, + "x_pos": 1880.1000061035156, + "y_pos": 8432 + }, + { + "id": 19866, + "x_pos": 1891.6999816894531, + "y_pos": 8435.899993896484 + }, + { + "id": 19865, + "x_pos": 1880.1000061035156, + "y_pos": 8437.700012207031 + }, + { + "id": 19643, + "x_pos": 1917.5, + "y_pos": 8417.100006103516 + }, + { + "id": 19642, + "x_pos": 1915.6000061035156, + "y_pos": 8420.299987792969 + }, + { + "id": 19641, + "x_pos": 1921.3999938964844, + "y_pos": 8419.89998626709 + }, + { + "id": 19640, + "x_pos": 2140.2000122070312, + "y_pos": 8348.299987792969 + }, + { + "id": 19639, + "x_pos": 2135.4000244140625, + "y_pos": 8347.899993896484 + }, + { + "id": 19638, + "x_pos": 2137.5, + "y_pos": 8351.900024414062 + }, + { + "id": 19478, + "x_pos": 2149.7999877929688, + "y_pos": 8401.700012207031 + }, + { + "id": 19477, + "x_pos": 2148.1000061035156, + "y_pos": 8403.199981689453 + }, + { + "id": 19476, + "x_pos": 2152.6000061035156, + "y_pos": 8403.400024414062 + }, + { + "id": 19475, + "x_pos": 1896.1000061035156, + "y_pos": 8334.699981689453 + }, + { + "id": 19474, + "x_pos": 1894.5999755859375, + "y_pos": 8338.700012207031 + }, + { + "id": 19473, + "x_pos": 1893.4000244140625, + "y_pos": 8342.900024414062 + }, + { + "id": 19267, + "x_pos": 2132.199981689453, + "y_pos": 8396.80004119873 + }, + { + "id": 19266, + "x_pos": 2132.5, + "y_pos": 8403.999992370605 + }, + { + "id": 19265, + "x_pos": 2123.0999755859375, + "y_pos": 8401.499992370605 + }, + { + "id": 19264, + "x_pos": 1989.0000305175781, + "y_pos": 8326.099998474121 + }, + { + "id": 18862, + "x_pos": 2140.6519798272875, + "y_pos": 8375.52334833525 + }, + { + "id": 18856, + "x_pos": 2000.9736273168091, + "y_pos": 8413.449101685612 + }, + { + "id": 18843, + "x_pos": 2178.2415757147246, + "y_pos": 8494.856857984694 + }, + { + "id": 18842, + "x_pos": 2181.7000122070312, + "y_pos": 8496.599975585938 + }, + { + "id": 18841, + "x_pos": 2010.1436662334927, + "y_pos": 8416.436491581095 + }, + { + "id": 18815, + "x_pos": 1813.3276213786503, + "y_pos": 8773.327349561214 + }, + { + "id": 18814, + "x_pos": 1719.6930876700953, + "y_pos": 8784.270601504462 + }, + { + "id": 18813, + "x_pos": 1716.5014597737609, + "y_pos": 8789.656723719507 + }, + { + "id": 18812, + "x_pos": 1805.4413112443744, + "y_pos": 8772.581795398237 + }, + { + "id": 18780, + "x_pos": 2041.8277866726185, + "y_pos": 8311.216498462969 + }, + { + "id": 18778, + "x_pos": 2036.608524741112, + "y_pos": 8311.27228009288 + }, + { + "id": 18766, + "x_pos": 1969.39466439458, + "y_pos": 8277.60396360346 + }, + { + "id": 18765, + "x_pos": 1965.9179929027923, + "y_pos": 8275.446512477401 + }, + { + "id": 18764, + "x_pos": 1900.112385219305, + "y_pos": 8237.216773146047 + }, + { + "id": 18763, + "x_pos": 1748.6407670192275, + "y_pos": 8210.268650682607 + }, + { + "id": 18762, + "x_pos": 1773.3486610153304, + "y_pos": 8205.762676257254 + }, + { + "id": 18759, + "x_pos": 1904.887645280578, + "y_pos": 8237.233701954958 + }, + { + "id": 17547, + "x_pos": 351, + "y_pos": 6412.799987792969 + }, + { + "id": 17546, + "x_pos": 358, + "y_pos": 6422.4000244140625 + }, + { + "id": 17438, + "x_pos": 3507.1000061035156, + "y_pos": 6971.999969482422 + }, + { + "id": 17437, + "x_pos": 3481.800018310547, + "y_pos": 6977.5 + }, + { + "id": 17436, + "x_pos": 3491.9000244140625, + "y_pos": 6980.099960327148 + }, + { + "id": 17416, + "x_pos": 3569.1000061035156, + "y_pos": 6991.700012207031 + }, + { + "id": 17404, + "x_pos": 3566.300018310547, + "y_pos": 7039.899993896484 + }, + { + "id": 17403, + "x_pos": 3493.3999633789062, + "y_pos": 7071.0999755859375 + }, + { + "id": 17387, + "x_pos": 50.800018310546875, + "y_pos": 5799.700012207031 + }, + { + "id": 17384, + "x_pos": -282.79998779296875, + "y_pos": 6129 + }, + { + "id": 17254, + "x_pos": 3441.800018310547, + "y_pos": 6996.900009155273 + }, + { + "id": 17253, + "x_pos": 3527.773726493191, + "y_pos": 6964.848780287757 + }, + { + "id": 17252, + "x_pos": 3530.300018310547, + "y_pos": 6978.5 + }, + { + "id": 17251, + "x_pos": 3515.6442460763446, + "y_pos": 6970.881467847681 + }, + { + "id": 17250, + "x_pos": 3439.999969482422, + "y_pos": 7001.600021362305 + }, + { + "id": 17249, + "x_pos": 3533.291640621872, + "y_pos": 6968.722948479253 + }, + { + "id": 17248, + "x_pos": 3533.7999877929688, + "y_pos": 6994.699981689453 + }, + { + "id": 17247, + "x_pos": 3520.3999938964844, + "y_pos": 7012.5 + }, + { + "id": 17246, + "x_pos": 3483.300048828125, + "y_pos": 6973.5 + }, + { + "id": 17245, + "x_pos": 3540.6343887478415, + "y_pos": 7000.604416326933 + }, + { + "id": 17244, + "x_pos": 3568.2788840791036, + "y_pos": 6984.763581704203 + }, + { + "id": 16678, + "x_pos": 434.9000244140625, + "y_pos": 5883.300018310547 + }, + { + "id": 16677, + "x_pos": 367, + "y_pos": 5816.348050225488 + }, + { + "id": 16676, + "x_pos": 392, + "y_pos": 5870.541509355959 + }, + { + "id": 16675, + "x_pos": 447.3999938964844, + "y_pos": 5916.199981689453 + }, + { + "id": 16674, + "x_pos": 346.800048828125, + "y_pos": 5945.976319271862 + }, + { + "id": 16673, + "x_pos": 258.20001220703125, + "y_pos": 5984.281546298213 + }, + { + "id": 16672, + "x_pos": 248.70004272460938, + "y_pos": 5984.983088467612 + }, + { + "id": 16671, + "x_pos": 187.89999389648438, + "y_pos": 5973.5 + }, + { + "id": 16670, + "x_pos": -62.100006103515625, + "y_pos": 5875.740984589656 + }, + { + "id": 16669, + "x_pos": -195, + "y_pos": 5912.62440118427 + }, + { + "id": 16668, + "x_pos": -413.9999694824219, + "y_pos": 6040.599990844727 + }, + { + "id": 16667, + "x_pos": -408.3999938964844, + "y_pos": 6041.024414190351 + }, + { + "id": 16568, + "x_pos": 3523.7000122070312, + "y_pos": 7070.384660054027 + }, + { + "id": 16567, + "x_pos": 3527.2999877929688, + "y_pos": 7072.033800150799 + }, + { + "id": 16566, + "x_pos": 3529.8999938964844, + "y_pos": 7068.283962511874 + }, + { + "id": 16565, + "x_pos": 3445.7000427246094, + "y_pos": 6806.774977653498 + }, + { + "id": 16564, + "x_pos": 3450.8999938964844, + "y_pos": 6813.42487412646 + }, + { + "id": 16563, + "x_pos": 3436.000030517578, + "y_pos": 6807.42915836662 + }, + { + "id": 16562, + "x_pos": 3272.199981689453, + "y_pos": 6796.327943189273 + }, + { + "id": 16561, + "x_pos": 3280.3999938964844, + "y_pos": 6791.216748036362 + }, + { + "id": 16560, + "x_pos": 3350.9000244140625, + "y_pos": 6554.673168461037 + }, + { + "id": 16559, + "x_pos": 3344.7999877929688, + "y_pos": 6556.58488238409 + }, + { + "id": 16558, + "x_pos": 3351.300048828125, + "y_pos": 6559.485905783344 + }, + { + "id": 16556, + "x_pos": 3006.5999755859375, + "y_pos": 6592.199981689453 + }, + { + "id": 16554, + "x_pos": 3007.800018310547, + "y_pos": 6643.779470082687 + }, + { + "id": 16553, + "x_pos": 3041.3999633789062, + "y_pos": 6599.799865722656 + }, + { + "id": 14072, + "x_pos": 1535.8999633789062, + "y_pos": 6204.900047302246 + }, + { + "id": 13925, + "x_pos": 3569.2999877929688, + "y_pos": 4566.800033569336 + }, + { + "id": 13624, + "x_pos": 3596.5, + "y_pos": 4516.100051879883 + }, + { + "id": 13622, + "x_pos": 3561.4999389648438, + "y_pos": 4537.400009155273 + }, + { + "id": 13621, + "x_pos": 3576.6000366210938, + "y_pos": 4522.300003051758 + }, + { + "id": 13620, + "x_pos": 1078.39875171138, + "y_pos": 6083.000421416124 + }, + { + "id": 13619, + "x_pos": 1080.5, + "y_pos": 6084.683179336342 + }, + { + "id": 13618, + "x_pos": 1077.5, + "y_pos": 6085.621770644539 + }, + { + "id": 13617, + "x_pos": 1075.8999938964844, + "y_pos": 6083.317859762681 + }, + { + "id": 13616, + "x_pos": 2277.7999877929688, + "y_pos": 6194.469957958287 + }, + { + "id": 13615, + "x_pos": 2275.300048828125, + "y_pos": 6193.045120366991 + }, + { + "id": 13463, + "x_pos": 3565.2999877929688, + "y_pos": 4658.213722531602 + }, + { + "id": 13462, + "x_pos": 3579.300048828125, + "y_pos": 4652.234601219992 + }, + { + "id": 13461, + "x_pos": 3584.5, + "y_pos": 4654.016525706301 + }, + { + "id": 13460, + "x_pos": 3571.5999755859375, + "y_pos": 4658.301282784327 + }, + { + "id": 13454, + "x_pos": 1600.5999450683594, + "y_pos": 6146.4139448616625 + }, + { + "id": 13453, + "x_pos": 1600.5, + "y_pos": 6148.726697459957 + }, + { + "id": 13452, + "x_pos": 1600.5, + "y_pos": 6149.483667206743 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/804e80a2ad9a790c2b07cfad29af9121_8586441830330297038.png" + }, + "267": { + "name": "Stormstone", + "clear_name": "Stormstone", + "points": [ + { + "id": 19555, + "x_pos": 1843, + "y_pos": 8729.5 + }, + { + "id": 19554, + "x_pos": 2027, + "y_pos": 8508.5 + }, + { + "id": 19552, + "x_pos": 2041, + "y_pos": 8517 + }, + { + "id": 19551, + "x_pos": 2029, + "y_pos": 8492.5 + }, + { + "id": 19549, + "x_pos": 2018, + "y_pos": 8476.5 + }, + { + "id": 19302, + "x_pos": 2177.5, + "y_pos": 8630 + }, + { + "id": 19301, + "x_pos": 1875.5, + "y_pos": 8724.5 + }, + { + "id": 19300, + "x_pos": 1787.5, + "y_pos": 8657 + }, + { + "id": 19299, + "x_pos": 1742, + "y_pos": 8641 + }, + { + "id": 19298, + "x_pos": 1685.5, + "y_pos": 8504 + }, + { + "id": 19277, + "x_pos": 1834.5, + "y_pos": 8556.500030517578 + }, + { + "id": 18942, + "x_pos": 1724.5, + "y_pos": 8670 + }, + { + "id": 18941, + "x_pos": 1741.5, + "y_pos": 8653.5 + }, + { + "id": 18940, + "x_pos": 1764, + "y_pos": 8649.5 + }, + { + "id": 18939, + "x_pos": 1767, + "y_pos": 8667 + }, + { + "id": 18938, + "x_pos": 1757, + "y_pos": 8679 + }, + { + "id": 18937, + "x_pos": 1808, + "y_pos": 8681.5 + }, + { + "id": 18936, + "x_pos": 1797, + "y_pos": 8700 + }, + { + "id": 18935, + "x_pos": 1838, + "y_pos": 8693 + }, + { + "id": 18934, + "x_pos": 1824.5, + "y_pos": 8706 + }, + { + "id": 18933, + "x_pos": 1813.5, + "y_pos": 8723.5 + }, + { + "id": 18932, + "x_pos": 1753.5, + "y_pos": 8730.5 + }, + { + "id": 18931, + "x_pos": 1781, + "y_pos": 8733 + }, + { + "id": 18930, + "x_pos": 1790, + "y_pos": 8759 + }, + { + "id": 18929, + "x_pos": 1820, + "y_pos": 8749.5 + }, + { + "id": 18928, + "x_pos": 1844, + "y_pos": 8759 + }, + { + "id": 18927, + "x_pos": 1878, + "y_pos": 8765.5 + }, + { + "id": 18926, + "x_pos": 1908, + "y_pos": 8748.5 + }, + { + "id": 18925, + "x_pos": 1914.5, + "y_pos": 8713 + }, + { + "id": 18924, + "x_pos": 1883.5, + "y_pos": 8692.5 + }, + { + "id": 18923, + "x_pos": 1839.5, + "y_pos": 8664 + }, + { + "id": 18922, + "x_pos": 1809.5, + "y_pos": 8646.5 + }, + { + "id": 18921, + "x_pos": 1817, + "y_pos": 8625 + }, + { + "id": 18920, + "x_pos": 1790, + "y_pos": 8630 + }, + { + "id": 18919, + "x_pos": 1781, + "y_pos": 8612 + }, + { + "id": 18918, + "x_pos": 1789.5, + "y_pos": 8590.5 + }, + { + "id": 18917, + "x_pos": 1772.5, + "y_pos": 8584.5 + }, + { + "id": 18916, + "x_pos": 1763.5, + "y_pos": 8568 + }, + { + "id": 18915, + "x_pos": 1830.5, + "y_pos": 8584.5 + }, + { + "id": 18914, + "x_pos": 1805.5, + "y_pos": 8556 + }, + { + "id": 18913, + "x_pos": 1750.5, + "y_pos": 8762.5 + }, + { + "id": 18912, + "x_pos": 1814.5, + "y_pos": 8778 + }, + { + "id": 18911, + "x_pos": 1834.5, + "y_pos": 8790 + }, + { + "id": 18910, + "x_pos": 1867, + "y_pos": 8787 + }, + { + "id": 18909, + "x_pos": 2065.5, + "y_pos": 8627 + }, + { + "id": 18908, + "x_pos": 2098, + "y_pos": 8619.5 + }, + { + "id": 18907, + "x_pos": 1790.5, + "y_pos": 8506 + }, + { + "id": 18906, + "x_pos": 1792.5, + "y_pos": 8486.5 + }, + { + "id": 18905, + "x_pos": 1805, + "y_pos": 8512 + }, + { + "id": 18904, + "x_pos": 1811.5, + "y_pos": 8485 + }, + { + "id": 18903, + "x_pos": 1618, + "y_pos": 8498 + }, + { + "id": 18902, + "x_pos": 1618, + "y_pos": 8505.5 + }, + { + "id": 18901, + "x_pos": 1623, + "y_pos": 8502 + }, + { + "id": 18900, + "x_pos": 1901.5, + "y_pos": 8292 + }, + { + "id": 18899, + "x_pos": 1891, + "y_pos": 8300.5 + }, + { + "id": 18898, + "x_pos": 1902.5, + "y_pos": 8307.5 + }, + { + "id": 18897, + "x_pos": 1893.5, + "y_pos": 8314.5 + }, + { + "id": 18896, + "x_pos": 1914, + "y_pos": 8319 + }, + { + "id": 18895, + "x_pos": 1845, + "y_pos": 8310 + }, + { + "id": 18894, + "x_pos": 1834, + "y_pos": 8324 + }, + { + "id": 18893, + "x_pos": 1849.5, + "y_pos": 8294 + }, + { + "id": 18892, + "x_pos": 1832.5, + "y_pos": 8274.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/677b7eb8840bc25833d5a653118f52ec_2406823361073162076.png" + }, + "258": { + "name": "Lightning Strike Probe", + "clear_name": "LightningStrikeProbe", + "points": [ + { + "id": 19543, + "x_pos": 1926.5, + "y_pos": 8194.5 + }, + { + "id": 18750, + "x_pos": 2434.5, + "y_pos": 8645 + }, + { + "id": 18744, + "x_pos": 2197, + "y_pos": 8564.5 + }, + { + "id": 18738, + "x_pos": 1630.5, + "y_pos": 8591.5 + }, + { + "id": 18737, + "x_pos": 1790.5, + "y_pos": 8496 + }, + { + "id": 17627, + "x_pos": -139, + "y_pos": 6044.5 + }, + { + "id": 17623, + "x_pos": 230, + "y_pos": 6086 + }, + { + "id": 17619, + "x_pos": 306.5, + "y_pos": 6319.5 + }, + { + "id": 17367, + "x_pos": 79.5, + "y_pos": 5923.5 + }, + { + "id": 17319, + "x_pos": 3569, + "y_pos": 6467 + }, + { + "id": 17302, + "x_pos": 3095, + "y_pos": 6519 + }, + { + "id": 17284, + "x_pos": 2954.5, + "y_pos": 6725.5 + }, + { + "id": 15698, + "x_pos": 2473.5, + "y_pos": 5495.5 + }, + { + "id": 15695, + "x_pos": 2689, + "y_pos": 5802 + }, + { + "id": 15694, + "x_pos": 2316.5, + "y_pos": 5732 + }, + { + "id": 15693, + "x_pos": 2446, + "y_pos": 5868.5 + }, + { + "id": 15689, + "x_pos": 2717, + "y_pos": 6085.5 + }, + { + "id": 15688, + "x_pos": 2445.5, + "y_pos": 6171 + }, + { + "id": 15675, + "x_pos": 1659.5, + "y_pos": 6399.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210809/0f046ec1440ad76d401e96f49f3d4627_4602316844533090745.png" + }, + "25": { + "name": "Fatui Agent", + "clear_name": "FatuiAgent", + "points": [ + { + "id": 19513, + "x_pos": -280.5, + "y_pos": 2479.5 + }, + { + "id": 14127, + "x_pos": 2383, + "y_pos": 6168.300018310547 + }, + { + "id": 14126, + "x_pos": 2358.800018310547, + "y_pos": 6210.700012207031 + }, + { + "id": 14112, + "x_pos": 2500.3999938964844, + "y_pos": 6026.100006103516 + }, + { + "id": 13465, + "x_pos": 3721.5, + "y_pos": 4684.069491242075 + }, + { + "id": 7038, + "x_pos": 218, + "y_pos": 675 + }, + { + "id": 2345, + "x_pos": -1986, + "y_pos": 2482.3035346325514 + }, + { + "id": 2343, + "x_pos": -1681, + "y_pos": 2441.2493779096676 + }, + { + "id": 2299, + "x_pos": -1793, + "y_pos": 2785.108318538436 + }, + { + "id": 2279, + "x_pos": -1760, + "y_pos": 3201.209075232173 + }, + { + "id": 1452, + "x_pos": -505, + "y_pos": 1358.7501929130435 + }, + { + "id": 1072, + "x_pos": -424, + "y_pos": 1850.3722562268122 + }, + { + "id": 798, + "x_pos": -1260, + "y_pos": 2122.132220926391 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/46f5cf322074df4642b0259eb914ea5d_7338807285451044408.png" + }, + "229": { + "name": "Specter", + "clear_name": "Specter", + "points": [ + { + "id": 19403, + "x_pos": 1907.3999938964844, + "y_pos": 9040.5 + }, + { + "id": 19402, + "x_pos": 1908.2000122070312, + "y_pos": 9045.399993896484 + }, + { + "id": 19401, + "x_pos": 1900.6000061035156, + "y_pos": 9045.900024414062 + }, + { + "id": 17733, + "x_pos": 3520.499969482422, + "y_pos": 6673.100006103516 + }, + { + "id": 17732, + "x_pos": 3515, + "y_pos": 6673.700012207031 + }, + { + "id": 17731, + "x_pos": 3516.199981689453, + "y_pos": 6669.899993896484 + }, + { + "id": 17596, + "x_pos": 3425.1000061035156, + "y_pos": 6691.300018310547 + }, + { + "id": 17595, + "x_pos": 3419.800018310547, + "y_pos": 6694.299987792969 + }, + { + "id": 17586, + "x_pos": 3748.3999938964844, + "y_pos": 6931.4000244140625 + }, + { + "id": 17585, + "x_pos": 3755.5, + "y_pos": 6939.299987792969 + }, + { + "id": 17584, + "x_pos": 3745.2999877929688, + "y_pos": 6940.200012207031 + }, + { + "id": 17583, + "x_pos": 3786.300018310547, + "y_pos": 7077.399993896484 + }, + { + "id": 17582, + "x_pos": 3789.8999938964844, + "y_pos": 7080.200012207031 + }, + { + "id": 17581, + "x_pos": 3783.5, + "y_pos": 7083.200012207031 + }, + { + "id": 17580, + "x_pos": 3085, + "y_pos": 6591.5 + }, + { + "id": 17579, + "x_pos": 3085, + "y_pos": 6595 + }, + { + "id": 17578, + "x_pos": 3080, + "y_pos": 6594.5 + }, + { + "id": 17567, + "x_pos": 136.50003051757812, + "y_pos": 6021 + }, + { + "id": 17563, + "x_pos": 582.7000122070312, + "y_pos": 6054.799987792969 + }, + { + "id": 17560, + "x_pos": 577.7999877929688, + "y_pos": 6061.100006103516 + }, + { + "id": 17550, + "x_pos": 393.70001220703125, + "y_pos": 6407.799957275391 + }, + { + "id": 17549, + "x_pos": 396.79998779296875, + "y_pos": 6414.699981689453 + }, + { + "id": 17548, + "x_pos": 389.5999755859375, + "y_pos": 6415.900009155273 + }, + { + "id": 17542, + "x_pos": -340.0999755859375, + "y_pos": 6287.899993896484 + }, + { + "id": 17541, + "x_pos": -335.1000061035156, + "y_pos": 6292.200012207031 + }, + { + "id": 17540, + "x_pos": -340.8000183105469, + "y_pos": 6294.5 + }, + { + "id": 17469, + "x_pos": 3671.199981689453, + "y_pos": 6906.200012207031 + }, + { + "id": 17468, + "x_pos": 3748.7999877929688, + "y_pos": 7083.600006103516 + }, + { + "id": 17467, + "x_pos": 3860.1000061035156, + "y_pos": 7176 + }, + { + "id": 17466, + "x_pos": 3723.7999877929688, + "y_pos": 7101 + }, + { + "id": 17465, + "x_pos": 3849, + "y_pos": 7174.600006103516 + }, + { + "id": 17464, + "x_pos": 3738.9000244140625, + "y_pos": 7111.399993896484 + }, + { + "id": 17462, + "x_pos": 3963.5, + "y_pos": 7290.700019836426 + }, + { + "id": 17461, + "x_pos": 3850.2000122070312, + "y_pos": 7180.399993896484 + }, + { + "id": 17460, + "x_pos": 3716.8999938964844, + "y_pos": 7119.4000244140625 + }, + { + "id": 17459, + "x_pos": 3673.3999938964844, + "y_pos": 6915 + }, + { + "id": 17445, + "x_pos": 3908.7000122070312, + "y_pos": 7312.700012207031 + }, + { + "id": 17442, + "x_pos": 3917, + "y_pos": 7327.499969482422 + }, + { + "id": 17440, + "x_pos": 3666.4000244140625, + "y_pos": 6913.4000244140625 + }, + { + "id": 17439, + "x_pos": 3857.5, + "y_pos": 7180.699981689453 + }, + { + "id": 17435, + "x_pos": 3453.300018310547, + "y_pos": 7176.5 + }, + { + "id": 17434, + "x_pos": 3362, + "y_pos": 7167.39998626709 + }, + { + "id": 17433, + "x_pos": 3450, + "y_pos": 7183.700012207031 + }, + { + "id": 17432, + "x_pos": 3444.5, + "y_pos": 7182 + }, + { + "id": 17430, + "x_pos": 3570.699981689453, + "y_pos": 7390.300003051758 + }, + { + "id": 17428, + "x_pos": 3533, + "y_pos": 7414.700042724609 + }, + { + "id": 17426, + "x_pos": 3497.1000366210938, + "y_pos": 7430.499969482422 + }, + { + "id": 17424, + "x_pos": 3356.3999938964844, + "y_pos": 7171.4000244140625 + }, + { + "id": 17423, + "x_pos": 3445.1000061035156, + "y_pos": 7185.799987792969 + }, + { + "id": 17420, + "x_pos": 3487.8999938964844, + "y_pos": 7435.399993896484 + }, + { + "id": 17419, + "x_pos": 3386.8999938964844, + "y_pos": 7204.700012207031 + }, + { + "id": 17410, + "x_pos": 3404.4000244140625, + "y_pos": 7234.700012207031 + }, + { + "id": 17402, + "x_pos": 3353.2999877929688, + "y_pos": 7166.700012207031 + }, + { + "id": 17401, + "x_pos": 3441.2999877929688, + "y_pos": 7245.200012207031 + }, + { + "id": 17400, + "x_pos": 3233.7999877929688, + "y_pos": 7217.899993896484 + }, + { + "id": 17386, + "x_pos": 45.199981689453125, + "y_pos": 6102.300018310547 + }, + { + "id": 17385, + "x_pos": 36.499969482421875, + "y_pos": 6108.099960327148 + }, + { + "id": 16700, + "x_pos": -146.5, + "y_pos": 6042.561618034008 + }, + { + "id": 16699, + "x_pos": 91.89999389648438, + "y_pos": 6089 + }, + { + "id": 16515, + "x_pos": -77.89999389648438, + "y_pos": 6218.18221442335 + }, + { + "id": 16514, + "x_pos": -82, + "y_pos": 6241.679930018794 + }, + { + "id": 16513, + "x_pos": -93, + "y_pos": 6229.184437723967 + }, + { + "id": 16512, + "x_pos": -97.80001831054688, + "y_pos": 6218.743423717293 + }, + { + "id": 16511, + "x_pos": -148.29998779296875, + "y_pos": 6049.290191158456 + }, + { + "id": 16510, + "x_pos": -138.30001831054688, + "y_pos": 6044.199966430664 + }, + { + "id": 16506, + "x_pos": 97.89999389648438, + "y_pos": 6096.699981689453 + }, + { + "id": 16505, + "x_pos": 195.30001831054688, + "y_pos": 6020.546196340023 + }, + { + "id": 16504, + "x_pos": 174.69998168945312, + "y_pos": 6010.7227379419455 + }, + { + "id": 16503, + "x_pos": 183.30001831054688, + "y_pos": 6024.281145196141 + }, + { + "id": 16501, + "x_pos": 177.60000610351562, + "y_pos": 5987.100481715133 + }, + { + "id": 16500, + "x_pos": 34.100006103515625, + "y_pos": 5898.484778857051 + }, + { + "id": 16499, + "x_pos": 32.10003662109375, + "y_pos": 5907.082643807489 + }, + { + "id": 16498, + "x_pos": 39.499969482421875, + "y_pos": 5896.582303809355 + }, + { + "id": 16497, + "x_pos": 35.60003662109375, + "y_pos": 5906.992088601972 + }, + { + "id": 16496, + "x_pos": -51, + "y_pos": 6388.578506652419 + }, + { + "id": 16495, + "x_pos": -53.100006103515625, + "y_pos": 6391.718808975906 + }, + { + "id": 16494, + "x_pos": 84.39999389648438, + "y_pos": 6410.980819339042 + }, + { + "id": 16493, + "x_pos": 88.69998168945312, + "y_pos": 6412.506159904649 + }, + { + "id": 16491, + "x_pos": 215.40005493164062, + "y_pos": 6368.823404932131 + }, + { + "id": 16490, + "x_pos": 212.5, + "y_pos": 6372.987032709638 + }, + { + "id": 16489, + "x_pos": 288.4999694824219, + "y_pos": 6318.199981689453 + }, + { + "id": 16488, + "x_pos": 304.70001220703125, + "y_pos": 6300.799987792969 + }, + { + "id": 16486, + "x_pos": 409.9000244140625, + "y_pos": 6326.292429735056 + }, + { + "id": 16485, + "x_pos": 402.5000305175781, + "y_pos": 6317.295795237951 + }, + { + "id": 16484, + "x_pos": 407.5, + "y_pos": 6331.012403827215 + }, + { + "id": 16483, + "x_pos": 392.5, + "y_pos": 6305.587522062764 + }, + { + "id": 16482, + "x_pos": 412.79998779296875, + "y_pos": 6329.5084443092055 + }, + { + "id": 16481, + "x_pos": 3464.5, + "y_pos": 6510.684452999951 + }, + { + "id": 16480, + "x_pos": 3476, + "y_pos": 6510.18387426082 + }, + { + "id": 16479, + "x_pos": 3470.9000244140625, + "y_pos": 6518.025911666748 + }, + { + "id": 16478, + "x_pos": 3554.2000427246094, + "y_pos": 6468.3696547381005 + }, + { + "id": 16477, + "x_pos": 3423.2000122070312, + "y_pos": 6594.71054994175 + }, + { + "id": 16476, + "x_pos": 3417.699981689453, + "y_pos": 6599.2879373058695 + }, + { + "id": 16475, + "x_pos": 3426, + "y_pos": 6597.910594634754 + }, + { + "id": 16474, + "x_pos": 3422, + "y_pos": 6602.627720859211 + }, + { + "id": 16473, + "x_pos": 3200.3999938964844, + "y_pos": 6806.400039672852 + }, + { + "id": 16471, + "x_pos": 3203.3999938964844, + "y_pos": 6801.5 + }, + { + "id": 16467, + "x_pos": 2994.4999389648438, + "y_pos": 6856.236692711504 + }, + { + "id": 16466, + "x_pos": 2983.199981689453, + "y_pos": 6842.021982700708 + }, + { + "id": 16465, + "x_pos": 2975.7999877929688, + "y_pos": 6839.479692412748 + }, + { + "id": 16459, + "x_pos": 3314.0999755859375, + "y_pos": 7063.463722531602 + }, + { + "id": 16458, + "x_pos": 3276.5, + "y_pos": 7207.200057983398 + }, + { + "id": 16457, + "x_pos": 3319.5, + "y_pos": 7063.983088467612 + }, + { + "id": 16456, + "x_pos": 3277.7999877929688, + "y_pos": 7226.099990844727 + }, + { + "id": 16455, + "x_pos": 3316, + "y_pos": 7066.485327044213 + }, + { + "id": 16453, + "x_pos": 3282.2000122070312, + "y_pos": 7221.699996948242 + }, + { + "id": 16450, + "x_pos": 3161.2000122070312, + "y_pos": 7133.7858305383725 + }, + { + "id": 16445, + "x_pos": 3279.2000122070312, + "y_pos": 7246.199996948242 + }, + { + "id": 16442, + "x_pos": 3241.8999938964844, + "y_pos": 7243.800333495092 + }, + { + "id": 16436, + "x_pos": 3294, + "y_pos": 7253.331663966284 + }, + { + "id": 16417, + "x_pos": 3922.499969482422, + "y_pos": 7305.286795103591 + }, + { + "id": 16416, + "x_pos": 3891.7000122070312, + "y_pos": 7292.699981689453 + }, + { + "id": 16402, + "x_pos": 3963.300018310547, + "y_pos": 7284.358725473303 + }, + { + "id": 16399, + "x_pos": 3970.5, + "y_pos": 7287.400009155273 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/f99326db374b4763bacc10559fe30b0b_8415361503848764488.png" + }, + "269": { + "name": "Remarkable Chest", + "clear_name": "RemarkableChest", + "points": [ + { + "id": 19335, + "x_pos": 2153.5, + "y_pos": 8404 + }, + { + "id": 19334, + "x_pos": 1872, + "y_pos": 8437 + }, + { + "id": 19294, + "x_pos": 1960.5, + "y_pos": 8920 + }, + { + "id": 19293, + "x_pos": 2067.5, + "y_pos": 8640.5 + }, + { + "id": 19292, + "x_pos": 2102.5, + "y_pos": 8556.5 + }, + { + "id": 19291, + "x_pos": 2106, + "y_pos": 8519 + }, + { + "id": 19290, + "x_pos": 1755.5, + "y_pos": 8550.5 + }, + { + "id": 19289, + "x_pos": 1706.2486429697074, + "y_pos": 8502.377399650959 + }, + { + "id": 19288, + "x_pos": 1827.5, + "y_pos": 8384.5 + }, + { + "id": 19287, + "x_pos": 1885, + "y_pos": 8327.5 + }, + { + "id": 19276, + "x_pos": 2157.5, + "y_pos": 8366.5 + }, + { + "id": 19275, + "x_pos": 2464.5, + "y_pos": 8558 + }, + { + "id": 19274, + "x_pos": 2353, + "y_pos": 8567.5 + }, + { + "id": 19273, + "x_pos": 2203, + "y_pos": 8594.5 + }, + { + "id": 19272, + "x_pos": 2091, + "y_pos": 8717.5 + }, + { + "id": 19271, + "x_pos": 1979, + "y_pos": 8760.5 + }, + { + "id": 19270, + "x_pos": 1810, + "y_pos": 8645 + }, + { + "id": 19261, + "x_pos": 1861.5, + "y_pos": 8497 + }, + { + "id": 19259, + "x_pos": 1885, + "y_pos": 8434.5 + }, + { + "id": 19212, + "x_pos": 1774.5, + "y_pos": 8603 + }, + { + "id": 19211, + "x_pos": 1728.5, + "y_pos": 8548 + }, + { + "id": 19210, + "x_pos": 1724.5, + "y_pos": 8493 + }, + { + "id": 19209, + "x_pos": 1936.5, + "y_pos": 8810.5 + }, + { + "id": 19208, + "x_pos": 2064, + "y_pos": 8750.5 + }, + { + "id": 19207, + "x_pos": 2091, + "y_pos": 8742 + }, + { + "id": 19206, + "x_pos": 2052.5, + "y_pos": 8621 + }, + { + "id": 19205, + "x_pos": 2067.5, + "y_pos": 8517 + }, + { + "id": 19204, + "x_pos": 2078, + "y_pos": 8574.5 + }, + { + "id": 19203, + "x_pos": 2109.5, + "y_pos": 8588 + }, + { + "id": 19202, + "x_pos": 2123, + "y_pos": 8592.5 + }, + { + "id": 19201, + "x_pos": 2221, + "y_pos": 8606 + }, + { + "id": 19200, + "x_pos": 2387, + "y_pos": 8571.5 + }, + { + "id": 19198, + "x_pos": 2501.5, + "y_pos": 8510.5 + }, + { + "id": 19197, + "x_pos": 2142.5, + "y_pos": 8367.5 + }, + { + "id": 19196, + "x_pos": 2135, + "y_pos": 8365 + }, + { + "id": 19195, + "x_pos": 2129.5, + "y_pos": 8400 + }, + { + "id": 19194, + "x_pos": 1802, + "y_pos": 8398 + }, + { + "id": 19193, + "x_pos": 1733.5, + "y_pos": 8403 + }, + { + "id": 19192, + "x_pos": 1843.5, + "y_pos": 8105 + }, + { + "id": 18650, + "x_pos": 2002, + "y_pos": 9057.5 + }, + { + "id": 18649, + "x_pos": 1852, + "y_pos": 9077 + }, + { + "id": 18633, + "x_pos": 1981, + "y_pos": 8260.5 + }, + { + "id": 18630, + "x_pos": 1971.5, + "y_pos": 7313 + }, + { + "id": 18629, + "x_pos": 1959.5, + "y_pos": 7378.5 + }, + { + "id": 18627, + "x_pos": 1771.5, + "y_pos": 7078.5 + }, + { + "id": 18603, + "x_pos": 2076.5, + "y_pos": 8553 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a883a243fe84f9f7be605b713ece1273_7582172183824672745.png" + }, + "253": { + "name": "Phase Gate", + "clear_name": "PhaseGate", + "points": [ + { + "id": 19285, + "x_pos": 1623.5, + "y_pos": 7383 + }, + { + "id": 19284, + "x_pos": 1630, + "y_pos": 7319 + }, + { + "id": 19283, + "x_pos": 1701.5, + "y_pos": 7329.5 + }, + { + "id": 19282, + "x_pos": 1786.5, + "y_pos": 7259 + }, + { + "id": 19281, + "x_pos": 1776.5, + "y_pos": 7293 + }, + { + "id": 19280, + "x_pos": 1822.5, + "y_pos": 7310.5 + }, + { + "id": 19279, + "x_pos": 1906.5, + "y_pos": 7333 + }, + { + "id": 19278, + "x_pos": 1745, + "y_pos": 7151 + }, + { + "id": 18732, + "x_pos": 1687.5, + "y_pos": 8495 + }, + { + "id": 18731, + "x_pos": 1625.5, + "y_pos": 8495.5 + }, + { + "id": 18730, + "x_pos": 1707, + "y_pos": 8426 + }, + { + "id": 18729, + "x_pos": 2193.5, + "y_pos": 8360 + }, + { + "id": 18728, + "x_pos": 2137.5, + "y_pos": 8320 + }, + { + "id": 18726, + "x_pos": 1758, + "y_pos": 8376.5 + }, + { + "id": 17626, + "x_pos": 3919, + "y_pos": 7130 + }, + { + "id": 17379, + "x_pos": 3487, + "y_pos": 7071.5 + }, + { + "id": 17377, + "x_pos": 3531, + "y_pos": 6941.5 + }, + { + "id": 17376, + "x_pos": 3516.5, + "y_pos": 6888 + }, + { + "id": 17374, + "x_pos": 3388.7000122070312, + "y_pos": 6957.100006103516 + }, + { + "id": 17312, + "x_pos": 3801.9000244140625, + "y_pos": 6751.399993896484 + }, + { + "id": 17311, + "x_pos": 3705.6000366210938, + "y_pos": 6904.5 + }, + { + "id": 17310, + "x_pos": 3950.7999877929688, + "y_pos": 6855.199996948242 + }, + { + "id": 17283, + "x_pos": 4062.5, + "y_pos": 7137.5 + }, + { + "id": 17278, + "x_pos": 3092, + "y_pos": 6700 + }, + { + "id": 17275, + "x_pos": 3089, + "y_pos": 6765 + }, + { + "id": 17274, + "x_pos": 3051.5, + "y_pos": 6712.5 + }, + { + "id": 17273, + "x_pos": 3065, + "y_pos": 6732 + }, + { + "id": 16782, + "x_pos": 3605.3800704578844, + "y_pos": 7287.396324816302 + }, + { + "id": 16780, + "x_pos": 3316.5, + "y_pos": 7257.5 + }, + { + "id": 16535, + "x_pos": 3240, + "y_pos": 6820 + }, + { + "id": 16534, + "x_pos": 3281.560585275578, + "y_pos": 6790.713509720557 + }, + { + "id": 16533, + "x_pos": 3152.5, + "y_pos": 6725 + }, + { + "id": 16532, + "x_pos": 2974.8454705712156, + "y_pos": 6839.400287147793 + }, + { + "id": 16531, + "x_pos": 2915.7330069579702, + "y_pos": 6763.068805055913 + }, + { + "id": 16530, + "x_pos": 3266.8064483476783, + "y_pos": 6638.922431061426 + }, + { + "id": 16529, + "x_pos": 2901, + "y_pos": 6589 + }, + { + "id": 16528, + "x_pos": 2734.4558205403864, + "y_pos": 6403.058969726921 + }, + { + "id": 16527, + "x_pos": 3136.369170839569, + "y_pos": 6530.3233952179 + }, + { + "id": 16526, + "x_pos": 3172.373203078996, + "y_pos": 6639.729395528591 + }, + { + "id": 16525, + "x_pos": 3552.0596058721676, + "y_pos": 7039.695009261341 + }, + { + "id": 16524, + "x_pos": 3421, + "y_pos": 6899 + }, + { + "id": 16523, + "x_pos": 3566, + "y_pos": 6896 + }, + { + "id": 16522, + "x_pos": 3443.5, + "y_pos": 6640 + }, + { + "id": 16521, + "x_pos": 3459, + "y_pos": 6731.5 + }, + { + "id": 16452, + "x_pos": 475.41627926539695, + "y_pos": 6347.4780159209695 + }, + { + "id": 16447, + "x_pos": 283.5, + "y_pos": 6295 + }, + { + "id": 16446, + "x_pos": 307.5, + "y_pos": 6256 + }, + { + "id": 16437, + "x_pos": 245, + "y_pos": 6164.5 + }, + { + "id": 16429, + "x_pos": 195.5, + "y_pos": 6270.5 + }, + { + "id": 16427, + "x_pos": 185, + "y_pos": 6292 + }, + { + "id": 16423, + "x_pos": 59.5, + "y_pos": 6324 + }, + { + "id": 16414, + "x_pos": -45.5, + "y_pos": 6352 + }, + { + "id": 16412, + "x_pos": -314.8511722797866, + "y_pos": 6285.966799598125 + }, + { + "id": 16393, + "x_pos": -78, + "y_pos": 6301.5 + }, + { + "id": 16387, + "x_pos": -127, + "y_pos": 6224 + }, + { + "id": 16378, + "x_pos": -127.5, + "y_pos": 6113 + }, + { + "id": 16377, + "x_pos": -149, + "y_pos": 6086.5 + }, + { + "id": 16376, + "x_pos": -85, + "y_pos": 6126 + }, + { + "id": 16371, + "x_pos": 463.7884183582446, + "y_pos": 6214.816526334642 + }, + { + "id": 16369, + "x_pos": 858.1713368972096, + "y_pos": 5974.922068859141 + }, + { + "id": 16368, + "x_pos": 636.5367213881555, + "y_pos": 5991.763411958287 + }, + { + "id": 16365, + "x_pos": 416.2893903664417, + "y_pos": 5875.796211981522 + }, + { + "id": 16362, + "x_pos": 399.4179889460065, + "y_pos": 5863.867360603499 + }, + { + "id": 16361, + "x_pos": 73, + "y_pos": 6063.5 + }, + { + "id": 16360, + "x_pos": -25, + "y_pos": 6002 + }, + { + "id": 16352, + "x_pos": 196.5, + "y_pos": 5956.5 + }, + { + "id": 16351, + "x_pos": 107.5, + "y_pos": 5989.5 + }, + { + "id": 16348, + "x_pos": 123, + "y_pos": 5946 + }, + { + "id": 16344, + "x_pos": 87.5, + "y_pos": 5886.5 + }, + { + "id": 16326, + "x_pos": -99, + "y_pos": 5968.5 + }, + { + "id": 16322, + "x_pos": -120.5, + "y_pos": 5933.5 + }, + { + "id": 16315, + "x_pos": -277.7146659074251, + "y_pos": 6225.208503315291 + }, + { + "id": 16313, + "x_pos": -375.61667426216627, + "y_pos": 6207.312611795107 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/ceb4d2664f91c10fc9bbeb22ec31615c_4846146240010439039.png" + }, + "205": { + "name": "Electro Seelie", + "clear_name": "ElectroSeelie", + "points": [ + { + "id": 19255, + "x_pos": 1715.4446718612462, + "y_pos": 8338.441905140087 + }, + { + "id": 19241, + "x_pos": 1841.5, + "y_pos": 8316 + }, + { + "id": 19237, + "x_pos": 2209, + "y_pos": 8567 + }, + { + "id": 19236, + "x_pos": 1939, + "y_pos": 8596.5 + }, + { + "id": 19235, + "x_pos": 2079.5, + "y_pos": 8747 + }, + { + "id": 18753, + "x_pos": 1954, + "y_pos": 8681.5 + }, + { + "id": 18748, + "x_pos": 2303.5, + "y_pos": 8491.5 + }, + { + "id": 18747, + "x_pos": 2236, + "y_pos": 8439.5 + }, + { + "id": 18746, + "x_pos": 2266, + "y_pos": 8558.5 + }, + { + "id": 18745, + "x_pos": 2235, + "y_pos": 8491 + }, + { + "id": 18718, + "x_pos": 1900, + "y_pos": 8280 + }, + { + "id": 17756, + "x_pos": 388.5, + "y_pos": 5925.5 + }, + { + "id": 17740, + "x_pos": -1, + "y_pos": 6164.5 + }, + { + "id": 17632, + "x_pos": 3856, + "y_pos": 7323 + }, + { + "id": 17534, + "x_pos": -92.5, + "y_pos": 5883.5 + }, + { + "id": 17373, + "x_pos": 3275, + "y_pos": 7106 + }, + { + "id": 17365, + "x_pos": 142.5, + "y_pos": 5965.5 + }, + { + "id": 17360, + "x_pos": 443.5, + "y_pos": 5864 + }, + { + "id": 17354, + "x_pos": -22.5, + "y_pos": 6317 + }, + { + "id": 17318, + "x_pos": 3517, + "y_pos": 6571.5 + }, + { + "id": 17315, + "x_pos": 3472, + "y_pos": 6608 + }, + { + "id": 17286, + "x_pos": 3321, + "y_pos": 6987.5 + }, + { + "id": 17282, + "x_pos": 3593, + "y_pos": 7309 + }, + { + "id": 16805, + "x_pos": 3428, + "y_pos": 6584 + }, + { + "id": 16802, + "x_pos": 3056, + "y_pos": 6614.5 + }, + { + "id": 16801, + "x_pos": 3030.3999938964844, + "y_pos": 6754.75640846689 + }, + { + "id": 16800, + "x_pos": 3177, + "y_pos": 6712.5 + }, + { + "id": 16799, + "x_pos": 3494, + "y_pos": 6733.5 + }, + { + "id": 16785, + "x_pos": 4062.5, + "y_pos": 7145 + }, + { + "id": 16454, + "x_pos": 509.5, + "y_pos": 6356.5 + }, + { + "id": 16438, + "x_pos": 240.5, + "y_pos": 6145 + }, + { + "id": 16420, + "x_pos": 45.5, + "y_pos": 6213 + }, + { + "id": 16391, + "x_pos": -43, + "y_pos": 6258.5 + }, + { + "id": 16382, + "x_pos": -208, + "y_pos": 6189.5 + }, + { + "id": 16381, + "x_pos": -199.5, + "y_pos": 6127 + }, + { + "id": 16319, + "x_pos": -164.5, + "y_pos": 5972 + }, + { + "id": 13901, + "x_pos": 1434.5, + "y_pos": 6360 + }, + { + "id": 13858, + "x_pos": 3321.5, + "y_pos": 5112.5 + }, + { + "id": 13782, + "x_pos": 2443.5, + "y_pos": 5977.5 + }, + { + "id": 13748, + "x_pos": 2856, + "y_pos": 5914.5 + }, + { + "id": 13745, + "x_pos": 2494.5, + "y_pos": 5926 + }, + { + "id": 13729, + "x_pos": 1782.5, + "y_pos": 6171 + }, + { + "id": 13647, + "x_pos": 1379, + "y_pos": 5893 + }, + { + "id": 13633, + "x_pos": 2164, + "y_pos": 6324 + }, + { + "id": 13528, + "x_pos": 2292.5, + "y_pos": 5738 + }, + { + "id": 13524, + "x_pos": 2469.5, + "y_pos": 5630.5 + }, + { + "id": 13523, + "x_pos": 2527, + "y_pos": 5632.5 + }, + { + "id": 13511, + "x_pos": 3749, + "y_pos": 4830 + }, + { + "id": 13510, + "x_pos": 3854.5, + "y_pos": 4772.5 + }, + { + "id": 13397, + "x_pos": 3373.5, + "y_pos": 4922 + }, + { + "id": 13340, + "x_pos": 3513, + "y_pos": 5116 + }, + { + "id": 12986, + "x_pos": 964, + "y_pos": 5920 + }, + { + "id": 12985, + "x_pos": 1216.5, + "y_pos": 5916.5 + }, + { + "id": 12983, + "x_pos": 1347.5, + "y_pos": 6047 + }, + { + "id": 12980, + "x_pos": 1516.5, + "y_pos": 6017.5 + }, + { + "id": 12978, + "x_pos": 1459.5, + "y_pos": 6062 + }, + { + "id": 12975, + "x_pos": 1517.5, + "y_pos": 6118.5 + }, + { + "id": 12971, + "x_pos": 1495, + "y_pos": 6221.5 + }, + { + "id": 12969, + "x_pos": 1506.5, + "y_pos": 6231 + }, + { + "id": 12963, + "x_pos": 1514.5, + "y_pos": 6234 + }, + { + "id": 12959, + "x_pos": 1813.5, + "y_pos": 6207.5 + }, + { + "id": 12957, + "x_pos": 1651, + "y_pos": 5927 + }, + { + "id": 12955, + "x_pos": 2339.5, + "y_pos": 6269.5 + }, + { + "id": 12954, + "x_pos": 2214.5, + "y_pos": 6078 + }, + { + "id": 12953, + "x_pos": 2380.5, + "y_pos": 6026.5 + }, + { + "id": 12952, + "x_pos": 2420, + "y_pos": 6142 + }, + { + "id": 12949, + "x_pos": 2545.444460503538, + "y_pos": 6194.112633783216 + }, + { + "id": 12948, + "x_pos": 2198.5, + "y_pos": 5749.5 + }, + { + "id": 12946, + "x_pos": 2247, + "y_pos": 5701.5 + }, + { + "id": 12944, + "x_pos": 2591.391081084221, + "y_pos": 6030.567172819154 + }, + { + "id": 12941, + "x_pos": 2498.391065360768, + "y_pos": 5808.559359365852 + }, + { + "id": 12940, + "x_pos": 2527, + "y_pos": 5551 + }, + { + "id": 12939, + "x_pos": 2908.7222414828066, + "y_pos": 5701.276716302551 + }, + { + "id": 12937, + "x_pos": 3177.5, + "y_pos": 5507 + }, + { + "id": 12935, + "x_pos": 3323.5, + "y_pos": 5288 + }, + { + "id": 12934, + "x_pos": 3426.5, + "y_pos": 5195 + }, + { + "id": 12933, + "x_pos": 3712, + "y_pos": 5115.5 + }, + { + "id": 12932, + "x_pos": 3485.5, + "y_pos": 4965.5 + }, + { + "id": 12931, + "x_pos": 3361.5, + "y_pos": 4793 + }, + { + "id": 12930, + "x_pos": 3516.5, + "y_pos": 4513.5 + }, + { + "id": 12927, + "x_pos": 4003, + "y_pos": 4681 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/94b0ab7f44baf6754d916a5b8df7fe6f_6484334506183939949.png" + }, + "216": { + "name": "Cube Devices", + "clear_name": "CubeDevices", + "points": [ + { + "id": 19254, + "x_pos": 2127.8999938964844, + "y_pos": 8363.800889320246 + }, + { + "id": 19238, + "x_pos": 2548, + "y_pos": 8369.5 + }, + { + "id": 18760, + "x_pos": 2450.5, + "y_pos": 8433.5 + }, + { + "id": 18758, + "x_pos": 2330, + "y_pos": 8523.5 + }, + { + "id": 18757, + "x_pos": 2143, + "y_pos": 8373.5 + }, + { + "id": 18756, + "x_pos": 1925.5, + "y_pos": 8579.5 + }, + { + "id": 18755, + "x_pos": 1728.4000244140625, + "y_pos": 8635.430122931837 + }, + { + "id": 18754, + "x_pos": 1800.0999755859375, + "y_pos": 8564.608857282408 + }, + { + "id": 18705, + "x_pos": 1833, + "y_pos": 8126 + }, + { + "id": 18703, + "x_pos": 1824.1999816894531, + "y_pos": 8113.502253852586 + }, + { + "id": 17364, + "x_pos": 201, + "y_pos": 5992 + }, + { + "id": 17358, + "x_pos": 314.5, + "y_pos": 6232.5 + }, + { + "id": 17357, + "x_pos": 309.5, + "y_pos": 6233.5 + }, + { + "id": 17287, + "x_pos": 3217.550309499893, + "y_pos": 6684.071866283259 + }, + { + "id": 16804, + "x_pos": 3398.5, + "y_pos": 6594 + }, + { + "id": 16803, + "x_pos": 3560.5, + "y_pos": 6606.5 + }, + { + "id": 16793, + "x_pos": 3128.5, + "y_pos": 6874 + }, + { + "id": 16790, + "x_pos": 3254, + "y_pos": 6950 + }, + { + "id": 16787, + "x_pos": 3374, + "y_pos": 7174 + }, + { + "id": 16786, + "x_pos": 3439.5, + "y_pos": 7177 + }, + { + "id": 16779, + "x_pos": 2724.3940071973902, + "y_pos": 6406.288301796951 + }, + { + "id": 16444, + "x_pos": 306.5, + "y_pos": 6233.5 + }, + { + "id": 16440, + "x_pos": 284, + "y_pos": 6101.5 + }, + { + "id": 16432, + "x_pos": 156.5, + "y_pos": 6149.5 + }, + { + "id": 16415, + "x_pos": 67, + "y_pos": 6381 + }, + { + "id": 16384, + "x_pos": -103.5, + "y_pos": 6172.5 + }, + { + "id": 16380, + "x_pos": -196.5, + "y_pos": 6126.5 + }, + { + "id": 16370, + "x_pos": 491, + "y_pos": 6092 + }, + { + "id": 16346, + "x_pos": 115, + "y_pos": 5908 + }, + { + "id": 14467, + "x_pos": 1626, + "y_pos": 6133.5 + }, + { + "id": 14206, + "x_pos": 3346.5, + "y_pos": 4988 + }, + { + "id": 14205, + "x_pos": 3471, + "y_pos": 5144 + }, + { + "id": 14204, + "x_pos": 3422, + "y_pos": 5011.5 + }, + { + "id": 14203, + "x_pos": 3475, + "y_pos": 4902 + }, + { + "id": 14202, + "x_pos": 3449, + "y_pos": 4863 + }, + { + "id": 14201, + "x_pos": 3414, + "y_pos": 4623 + }, + { + "id": 14200, + "x_pos": 3489, + "y_pos": 4650 + }, + { + "id": 14199, + "x_pos": 3530, + "y_pos": 4646 + }, + { + "id": 14198, + "x_pos": 3620, + "y_pos": 4752 + }, + { + "id": 14197, + "x_pos": 3666.5, + "y_pos": 4710.5 + }, + { + "id": 14196, + "x_pos": 3607, + "y_pos": 4918 + }, + { + "id": 14195, + "x_pos": 3646, + "y_pos": 5048 + }, + { + "id": 14194, + "x_pos": 3753.5, + "y_pos": 4692 + }, + { + "id": 14193, + "x_pos": 3751, + "y_pos": 5339 + }, + { + "id": 14192, + "x_pos": 2691.5, + "y_pos": 5539 + }, + { + "id": 14191, + "x_pos": 2838.5, + "y_pos": 5522.5 + }, + { + "id": 14190, + "x_pos": 2959.5, + "y_pos": 5695.5 + }, + { + "id": 14189, + "x_pos": 2220, + "y_pos": 5679.5 + }, + { + "id": 14188, + "x_pos": 2155, + "y_pos": 5835.5 + }, + { + "id": 14187, + "x_pos": 2532, + "y_pos": 6073.5 + }, + { + "id": 14186, + "x_pos": 2565.5, + "y_pos": 6271 + }, + { + "id": 14030, + "x_pos": 3478, + "y_pos": 4656 + }, + { + "id": 14029, + "x_pos": 1224, + "y_pos": 5796 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/f1dba25cd621c5ec4d8770c02496a0c5_1494339182433311300.png" + }, + "71": { + "name": "Torch Puzzle", + "clear_name": "TorchPuzzle", + "points": [ + { + "id": 19242, + "x_pos": 1915, + "y_pos": 8187 + }, + { + "id": 19239, + "x_pos": 2009.5, + "y_pos": 8325 + }, + { + "id": 18713, + "x_pos": 2006, + "y_pos": 8239 + }, + { + "id": 15818, + "x_pos": 588, + "y_pos": -13.5 + }, + { + "id": 11607, + "x_pos": 818.5, + "y_pos": 324 + }, + { + "id": 11606, + "x_pos": -370.5, + "y_pos": -370 + }, + { + "id": 7169, + "x_pos": 710.3179146141265, + "y_pos": 906.0566874190736 + }, + { + "id": 2677, + "x_pos": -1762, + "y_pos": 2189.187440314751 + }, + { + "id": 2675, + "x_pos": -2144, + "y_pos": 2117.67091460845 + }, + { + "id": 2674, + "x_pos": -1432, + "y_pos": 2262.5971009362547 + }, + { + "id": 2671, + "x_pos": -2134, + "y_pos": 2111.0610392948765 + }, + { + "id": 2669, + "x_pos": -2127, + "y_pos": 2122.126401019874 + }, + { + "id": 2667, + "x_pos": -855, + "y_pos": 2435.2065980617326 + }, + { + "id": 2665, + "x_pos": -925, + "y_pos": 2014.4488872147404 + }, + { + "id": 2664, + "x_pos": -1272.5, + "y_pos": 2553.6438683774168 + }, + { + "id": 2663, + "x_pos": -1411.5, + "y_pos": 1985.0959740099615 + }, + { + "id": 2662, + "x_pos": -808.5, + "y_pos": 2515.493423717293 + }, + { + "id": 2658, + "x_pos": -57, + "y_pos": 2710.959801203552 + }, + { + "id": 2655, + "x_pos": -1350, + "y_pos": 2667.326052248797 + }, + { + "id": 2652, + "x_pos": -1620, + "y_pos": 2757.191948019923 + }, + { + "id": 2651, + "x_pos": -1660, + "y_pos": 1791.1344747789767 + }, + { + "id": 2648, + "x_pos": -1959, + "y_pos": 2748.132220926391 + }, + { + "id": 2646, + "x_pos": -2100, + "y_pos": 3192.021782149671 + }, + { + "id": 2642, + "x_pos": -1312, + "y_pos": 1420.17617105182 + }, + { + "id": 2638, + "x_pos": -2218, + "y_pos": 1424.1457440419076 + }, + { + "id": 2637, + "x_pos": -2321, + "y_pos": 1304.2131743444397 + }, + { + "id": 2634, + "x_pos": -287, + "y_pos": 1749.2077249880258 + }, + { + "id": 2633, + "x_pos": -1009, + "y_pos": 1141.5587854422906 + }, + { + "id": 2627, + "x_pos": -1253.5, + "y_pos": 3079.459615928501 + }, + { + "id": 2626, + "x_pos": -1278, + "y_pos": 1134.0093859604472 + }, + { + "id": 2619, + "x_pos": -1266, + "y_pos": 844.1626479363031 + }, + { + "id": 2615, + "x_pos": -978.5, + "y_pos": 765.0272315060847 + }, + { + "id": 2613, + "x_pos": -1213, + "y_pos": 493.9145388767788 + }, + { + "id": 2609, + "x_pos": -700, + "y_pos": 710.1063016216503 + }, + { + "id": 2606, + "x_pos": -280, + "y_pos": 101.08489002208216 + }, + { + "id": 2604, + "x_pos": -342, + "y_pos": -383.6091265753753 + }, + { + "id": 2603, + "x_pos": 464, + "y_pos": -407.8993330098149 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/3ccfe94764f78b06919270e67fb75169_3772545760400216127.png" + }, + "79": { + "name": "Enemies (First-Time Victory)", + "clear_name": "EnemiesFirstTimeVictory", + "points": [ + { + "id": 19234, + "x_pos": 1927, + "y_pos": 8131 + }, + { + "id": 17620, + "x_pos": 3054, + "y_pos": 6859 + }, + { + "id": 17351, + "x_pos": -138.5, + "y_pos": 5894 + }, + { + "id": 17309, + "x_pos": 4056.5, + "y_pos": 7175.5 + }, + { + "id": 17308, + "x_pos": 3963.5, + "y_pos": 7140.5 + }, + { + "id": 17307, + "x_pos": 3963.5, + "y_pos": 7243.5 + }, + { + "id": 13864, + "x_pos": 3641.5, + "y_pos": 4538.75 + }, + { + "id": 13312, + "x_pos": 2574.4445054276894, + "y_pos": 5264.4427216795575 + }, + { + "id": 12075, + "x_pos": -1354, + "y_pos": 2794 + }, + { + "id": 11928, + "x_pos": -1379.199951171875, + "y_pos": 2484.6802464311677 + }, + { + "id": 11927, + "x_pos": -1839.5999145507812, + "y_pos": 2373.7471846785156 + }, + { + "id": 11641, + "x_pos": -1101, + "y_pos": 845 + }, + { + "id": 7625, + "x_pos": 373.5, + "y_pos": 1323.5 + }, + { + "id": 7474, + "x_pos": 206.5633447873024, + "y_pos": 986.77263617367 + }, + { + "id": 7414, + "x_pos": -348.4754434304732, + "y_pos": 1340.2653925980958 + }, + { + "id": 7329, + "x_pos": -28.928702232793512, + "y_pos": 1377.5010020896307 + }, + { + "id": 7326, + "x_pos": -34.50865060971955, + "y_pos": 1098.1517590062726 + }, + { + "id": 7323, + "x_pos": -41.43707379058651, + "y_pos": 1234.5670997167472 + }, + { + "id": 4529, + "x_pos": -1781, + "y_pos": 2476.0011136537396 + }, + { + "id": 4528, + "x_pos": -1998, + "y_pos": 2172.0029697433047 + }, + { + "id": 4526, + "x_pos": -2179, + "y_pos": 1371.001856089565 + }, + { + "id": 4524, + "x_pos": -2462.5, + "y_pos": 1639 + }, + { + "id": 4516, + "x_pos": -2129, + "y_pos": 1721.000742435826 + }, + { + "id": 4511, + "x_pos": -1892, + "y_pos": 1688.0003712179132 + }, + { + "id": 4503, + "x_pos": -1377.5, + "y_pos": 1577.501670480609 + }, + { + "id": 4501, + "x_pos": -1450, + "y_pos": 1536.9977726925217 + }, + { + "id": 4499, + "x_pos": -1384.5, + "y_pos": 1416.5005568268698 + }, + { + "id": 4493, + "x_pos": -1093.5, + "y_pos": 1299.0003712179132 + }, + { + "id": 4490, + "x_pos": -568.5, + "y_pos": 1993.0012992626957 + }, + { + "id": 4487, + "x_pos": -160, + "y_pos": 2697.0007424358264 + }, + { + "id": 4484, + "x_pos": -34, + "y_pos": 2678.5 + }, + { + "id": 4482, + "x_pos": -1588, + "y_pos": 1711.9996287820868 + }, + { + "id": 4479, + "x_pos": -241, + "y_pos": 2484.001484871652 + }, + { + "id": 4473, + "x_pos": -1157, + "y_pos": 1216.0014848716523 + }, + { + "id": 4469, + "x_pos": -972.5, + "y_pos": 690 + }, + { + "id": 4465, + "x_pos": 991, + "y_pos": -36.49907195521723 + }, + { + "id": 4461, + "x_pos": 441, + "y_pos": 191.0007424358264 + }, + { + "id": 4459, + "x_pos": 824, + "y_pos": -122.99888634626086 + }, + { + "id": 4453, + "x_pos": -716, + "y_pos": 210.00185608956508 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/4cca7114e8db044283d84ed3b0b72b06_6968745740726409394.png" + }, + "230": { + "name": "Electric Conduction", + "clear_name": "ElectricConduction", + "points": [ + { + "id": 19232, + "x_pos": 1681.5, + "y_pos": 8324 + }, + { + "id": 18810, + "x_pos": 1924.5, + "y_pos": 9104.5 + }, + { + "id": 18752, + "x_pos": 1911, + "y_pos": 8713.5 + }, + { + "id": 18742, + "x_pos": 2054.5, + "y_pos": 8571 + }, + { + "id": 18735, + "x_pos": 1968, + "y_pos": 8463 + }, + { + "id": 18734, + "x_pos": 2102, + "y_pos": 8400 + }, + { + "id": 18717, + "x_pos": 1912.5, + "y_pos": 8246.5 + }, + { + "id": 17722, + "x_pos": 456.8797141010982, + "y_pos": 6170.880454278809 + }, + { + "id": 17625, + "x_pos": 3559.5, + "y_pos": 6797.5 + }, + { + "id": 16410, + "x_pos": 3448, + "y_pos": 6683.5 + }, + { + "id": 16408, + "x_pos": 3089.5, + "y_pos": 6705 + }, + { + "id": 16404, + "x_pos": 3220, + "y_pos": 6785.5 + }, + { + "id": 16397, + "x_pos": 3925, + "y_pos": 7235 + }, + { + "id": 16390, + "x_pos": -26, + "y_pos": 6255.5 + }, + { + "id": 16383, + "x_pos": -208, + "y_pos": 6212.5 + }, + { + "id": 16373, + "x_pos": 18.5, + "y_pos": 6057 + }, + { + "id": 16366, + "x_pos": 420, + "y_pos": 5869 + }, + { + "id": 16349, + "x_pos": 87.5, + "y_pos": 5977.5 + }, + { + "id": 16318, + "x_pos": -187.5, + "y_pos": 5988.5 + }, + { + "id": 15703, + "x_pos": 3417, + "y_pos": 4806 + }, + { + "id": 15702, + "x_pos": 3386, + "y_pos": 4898.5 + }, + { + "id": 15701, + "x_pos": 3681, + "y_pos": 5071 + }, + { + "id": 15700, + "x_pos": 3732, + "y_pos": 5176 + }, + { + "id": 15699, + "x_pos": 2613, + "y_pos": 5480.5 + }, + { + "id": 15697, + "x_pos": 2803, + "y_pos": 5574.5 + }, + { + "id": 15696, + "x_pos": 2702, + "y_pos": 5658 + }, + { + "id": 15692, + "x_pos": 2446.5, + "y_pos": 5951 + }, + { + "id": 15691, + "x_pos": 2537, + "y_pos": 5998 + }, + { + "id": 15690, + "x_pos": 2689.5, + "y_pos": 6043 + }, + { + "id": 15687, + "x_pos": 2396, + "y_pos": 6200 + }, + { + "id": 15686, + "x_pos": 2360.5, + "y_pos": 6246.5 + }, + { + "id": 15685, + "x_pos": 1868, + "y_pos": 5905.5 + }, + { + "id": 15683, + "x_pos": 1612.5, + "y_pos": 5860.5 + }, + { + "id": 15681, + "x_pos": 1862, + "y_pos": 6162.5 + }, + { + "id": 15678, + "x_pos": 1469.5, + "y_pos": 6081 + }, + { + "id": 15674, + "x_pos": 1494, + "y_pos": 6339 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/0e165bb4106bfde314a5e30b8e7ab371_4162497618460791828.png" + }, + "266": { + "name": "Fluorescent Fungus", + "clear_name": "FluorescentFungus", + "points": [ + { + "id": 19185, + "x_pos": 1816, + "y_pos": 8743 + }, + { + "id": 19184, + "x_pos": 1818.5, + "y_pos": 8742.5 + }, + { + "id": 19183, + "x_pos": 1917.5, + "y_pos": 8654.5 + }, + { + "id": 19182, + "x_pos": 1923, + "y_pos": 8645.5 + }, + { + "id": 18885, + "x_pos": 2232.5, + "y_pos": 8613.5 + }, + { + "id": 18884, + "x_pos": 2231.5, + "y_pos": 8616.5 + }, + { + "id": 18882, + "x_pos": 2185.5, + "y_pos": 8587 + }, + { + "id": 18880, + "x_pos": 2185.5, + "y_pos": 8588.5 + }, + { + "id": 18879, + "x_pos": 2166.5, + "y_pos": 8590.5 + }, + { + "id": 18878, + "x_pos": 2165.5, + "y_pos": 8592 + }, + { + "id": 18877, + "x_pos": 2160, + "y_pos": 8613.5 + }, + { + "id": 18876, + "x_pos": 2157.5, + "y_pos": 8614 + }, + { + "id": 18874, + "x_pos": 2127.5, + "y_pos": 8448.5 + }, + { + "id": 18873, + "x_pos": 2127.5, + "y_pos": 8452 + }, + { + "id": 18872, + "x_pos": 2135, + "y_pos": 8449.5 + }, + { + "id": 18871, + "x_pos": 2125.5, + "y_pos": 8384.5 + }, + { + "id": 18870, + "x_pos": 2127, + "y_pos": 8388 + }, + { + "id": 18869, + "x_pos": 1988, + "y_pos": 8507 + }, + { + "id": 18867, + "x_pos": 1966, + "y_pos": 8465.5 + }, + { + "id": 18865, + "x_pos": 1968, + "y_pos": 8468 + }, + { + "id": 18863, + "x_pos": 1948.5, + "y_pos": 8430.5 + }, + { + "id": 18861, + "x_pos": 1950.5, + "y_pos": 8430 + }, + { + "id": 18859, + "x_pos": 1863, + "y_pos": 8557 + }, + { + "id": 18857, + "x_pos": 1859, + "y_pos": 8558.5 + }, + { + "id": 18855, + "x_pos": 1962.5, + "y_pos": 8649.5 + }, + { + "id": 18854, + "x_pos": 1970, + "y_pos": 8651.5 + }, + { + "id": 18853, + "x_pos": 2022, + "y_pos": 8655 + }, + { + "id": 18852, + "x_pos": 2024, + "y_pos": 8656.5 + }, + { + "id": 18851, + "x_pos": 2024.5, + "y_pos": 8666 + }, + { + "id": 18850, + "x_pos": 2052.5, + "y_pos": 8683 + }, + { + "id": 18849, + "x_pos": 2042, + "y_pos": 8695 + }, + { + "id": 18848, + "x_pos": 2043.5, + "y_pos": 8697.5 + }, + { + "id": 18847, + "x_pos": 1984, + "y_pos": 8688.5 + }, + { + "id": 18846, + "x_pos": 1984.5, + "y_pos": 8691.5 + }, + { + "id": 18845, + "x_pos": 1932.5, + "y_pos": 8679.5 + }, + { + "id": 18844, + "x_pos": 1915, + "y_pos": 8747 + }, + { + "id": 18839, + "x_pos": 1898, + "y_pos": 8749.5 + }, + { + "id": 18838, + "x_pos": 1824, + "y_pos": 8708.5 + }, + { + "id": 18837, + "x_pos": 1827.5, + "y_pos": 8707.5 + }, + { + "id": 18835, + "x_pos": 1810.5, + "y_pos": 8737 + }, + { + "id": 18833, + "x_pos": 1806.5, + "y_pos": 8740.5 + }, + { + "id": 18831, + "x_pos": 1827, + "y_pos": 8760.5 + }, + { + "id": 18829, + "x_pos": 1825.5, + "y_pos": 8763.5 + }, + { + "id": 18827, + "x_pos": 1853.5, + "y_pos": 8796.5 + }, + { + "id": 18825, + "x_pos": 1852.5, + "y_pos": 8798.5 + }, + { + "id": 18712, + "x_pos": 1833.5, + "y_pos": 8446.5 + }, + { + "id": 18711, + "x_pos": 1832.5, + "y_pos": 8448.5 + }, + { + "id": 18709, + "x_pos": 1791, + "y_pos": 8448 + }, + { + "id": 18708, + "x_pos": 1792, + "y_pos": 8444.5 + }, + { + "id": 18706, + "x_pos": 2022.5, + "y_pos": 8333 + }, + { + "id": 18704, + "x_pos": 2024, + "y_pos": 8335.5 + }, + { + "id": 18702, + "x_pos": 2022.5, + "y_pos": 8337 + }, + { + "id": 18701, + "x_pos": 2019.5, + "y_pos": 8337 + }, + { + "id": 18700, + "x_pos": 2016.5, + "y_pos": 8339 + }, + { + "id": 18698, + "x_pos": 1886, + "y_pos": 8390 + }, + { + "id": 18697, + "x_pos": 1890.5, + "y_pos": 8390 + }, + { + "id": 18696, + "x_pos": 1886, + "y_pos": 8391.5 + }, + { + "id": 18695, + "x_pos": 1888.5, + "y_pos": 8395.5 + }, + { + "id": 18694, + "x_pos": 1891, + "y_pos": 8396 + }, + { + "id": 18693, + "x_pos": 1887.5, + "y_pos": 8396.5 + }, + { + "id": 18684, + "x_pos": 1950.5, + "y_pos": 8283.5 + }, + { + "id": 18682, + "x_pos": 1931.5, + "y_pos": 8290 + }, + { + "id": 18680, + "x_pos": 1931.5, + "y_pos": 8294 + }, + { + "id": 18678, + "x_pos": 1900, + "y_pos": 8311.5 + }, + { + "id": 18676, + "x_pos": 1898.5, + "y_pos": 8313 + }, + { + "id": 18675, + "x_pos": 1891.5, + "y_pos": 8313.5 + }, + { + "id": 18674, + "x_pos": 1796, + "y_pos": 8282.5 + }, + { + "id": 18673, + "x_pos": 1794, + "y_pos": 8286 + }, + { + "id": 18672, + "x_pos": 1824.5, + "y_pos": 8293 + }, + { + "id": 18671, + "x_pos": 1837.5, + "y_pos": 8290.5 + }, + { + "id": 18670, + "x_pos": 1871.5, + "y_pos": 8252 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/d0e3567f41bf6daefe493724529ecd1f_594766281249010203.png" + }, + "194": { + "name": "Electroculus", + "clear_name": "Electroculus", + "points": [ + { + "id": 19181, + "x_pos": 1959.5, + "y_pos": 8248.5 + }, + { + "id": 19180, + "x_pos": 1942.5, + "y_pos": 8215 + }, + { + "id": 18795, + "x_pos": 2033.5, + "y_pos": 8619.5 + }, + { + "id": 18660, + "x_pos": 1775.0000305175781, + "y_pos": 7272.499969482422 + }, + { + "id": 18646, + "x_pos": 1868.5, + "y_pos": 8996.499992370605 + }, + { + "id": 18645, + "x_pos": 1702, + "y_pos": 8807.500030517578 + }, + { + "id": 18644, + "x_pos": 1689.0000305175781, + "y_pos": 8701 + }, + { + "id": 18643, + "x_pos": 1715.5000305175781, + "y_pos": 8664 + }, + { + "id": 18642, + "x_pos": 1617.5000305175781, + "y_pos": 8518.5 + }, + { + "id": 18641, + "x_pos": 1705.5, + "y_pos": 8606.5 + }, + { + "id": 18640, + "x_pos": 1875.5, + "y_pos": 8725 + }, + { + "id": 18639, + "x_pos": 1843, + "y_pos": 8651.499969482422 + }, + { + "id": 18638, + "x_pos": 1929.5, + "y_pos": 8660.000030517578 + }, + { + "id": 18637, + "x_pos": 1965, + "y_pos": 8615 + }, + { + "id": 18636, + "x_pos": 1961, + "y_pos": 8539.5 + }, + { + "id": 18635, + "x_pos": 2031, + "y_pos": 8547.5 + }, + { + "id": 18634, + "x_pos": 2020, + "y_pos": 8690.500030517578 + }, + { + "id": 18631, + "x_pos": 2187.499969482422, + "y_pos": 8557 + }, + { + "id": 18626, + "x_pos": 2059.5, + "y_pos": 8730.5 + }, + { + "id": 18625, + "x_pos": 2170, + "y_pos": 8696.5 + }, + { + "id": 18623, + "x_pos": 1978.5, + "y_pos": 8508.500030517578 + }, + { + "id": 18621, + "x_pos": 2068.5, + "y_pos": 8473 + }, + { + "id": 18619, + "x_pos": 2527.999969482422, + "y_pos": 8334.5 + }, + { + "id": 18616, + "x_pos": 2162.5, + "y_pos": 8336.5 + }, + { + "id": 18614, + "x_pos": 2073, + "y_pos": 8330 + }, + { + "id": 18612, + "x_pos": 1867, + "y_pos": 8282.5 + }, + { + "id": 18610, + "x_pos": 1834, + "y_pos": 8285.5 + }, + { + "id": 18608, + "x_pos": 1815.9999694824219, + "y_pos": 8298.5 + }, + { + "id": 18606, + "x_pos": 1717, + "y_pos": 8191.000030517578 + }, + { + "id": 18604, + "x_pos": 1876, + "y_pos": 8114.5 + }, + { + "id": 15911, + "x_pos": 3416.499969482422, + "y_pos": 6639 + }, + { + "id": 15908, + "x_pos": 3485, + "y_pos": 6685.500030517578 + }, + { + "id": 15904, + "x_pos": 3478.5, + "y_pos": 6620.999969482422 + }, + { + "id": 15901, + "x_pos": 3518.5, + "y_pos": 6677 + }, + { + "id": 15900, + "x_pos": 3727.5, + "y_pos": 6582.000015258789 + }, + { + "id": 15898, + "x_pos": 3807, + "y_pos": 6733.5 + }, + { + "id": 15897, + "x_pos": 3599.500030517578, + "y_pos": 6783.000030517578 + }, + { + "id": 15896, + "x_pos": 3760.5, + "y_pos": 6874 + }, + { + "id": 15895, + "x_pos": 3903.5, + "y_pos": 6797 + }, + { + "id": 15894, + "x_pos": 214.00003051757812, + "y_pos": 5917.5 + }, + { + "id": 15893, + "x_pos": 112.00003051757812, + "y_pos": 5912.5 + }, + { + "id": 15892, + "x_pos": 58.5, + "y_pos": 5983 + }, + { + "id": 15891, + "x_pos": 4031, + "y_pos": 7189.5 + }, + { + "id": 15890, + "x_pos": 155, + "y_pos": 6017 + }, + { + "id": 15889, + "x_pos": 3909, + "y_pos": 7140.5 + }, + { + "id": 15888, + "x_pos": 286, + "y_pos": 6128.000030517578 + }, + { + "id": 15887, + "x_pos": 3496.5, + "y_pos": 6968.5 + }, + { + "id": 15886, + "x_pos": 3498, + "y_pos": 6983 + }, + { + "id": 15884, + "x_pos": 3502.5, + "y_pos": 7002 + }, + { + "id": 15883, + "x_pos": 321, + "y_pos": 6133.5 + }, + { + "id": 15882, + "x_pos": 238, + "y_pos": 6231.5 + }, + { + "id": 15881, + "x_pos": 181.5, + "y_pos": 6315.5 + }, + { + "id": 15880, + "x_pos": 282, + "y_pos": 6485.0001220703125 + }, + { + "id": 15879, + "x_pos": 123.5, + "y_pos": 6389.5 + }, + { + "id": 15878, + "x_pos": 3482.5, + "y_pos": 6990 + }, + { + "id": 15877, + "x_pos": 74, + "y_pos": 6306 + }, + { + "id": 15876, + "x_pos": 71.00003051757812, + "y_pos": 6383.999969482422 + }, + { + "id": 15875, + "x_pos": 3479.5, + "y_pos": 6898.5 + }, + { + "id": 15874, + "x_pos": -1, + "y_pos": 6152.5 + }, + { + "id": 15873, + "x_pos": 3560.5, + "y_pos": 6894 + }, + { + "id": 15872, + "x_pos": -9, + "y_pos": 6216 + }, + { + "id": 15871, + "x_pos": -54.5, + "y_pos": 6017.5 + }, + { + "id": 15869, + "x_pos": 3519.5, + "y_pos": 7104.500061035156 + }, + { + "id": 15868, + "x_pos": -74.5, + "y_pos": 6117.499969482422 + }, + { + "id": 15867, + "x_pos": -165, + "y_pos": 6072.499969482422 + }, + { + "id": 15866, + "x_pos": 3647.5, + "y_pos": 7134.000030517578 + }, + { + "id": 15864, + "x_pos": -268, + "y_pos": 6199 + }, + { + "id": 15863, + "x_pos": 3498.5, + "y_pos": 7264.000030517578 + }, + { + "id": 15862, + "x_pos": -206, + "y_pos": 5867 + }, + { + "id": 15861, + "x_pos": 85.00003051757812, + "y_pos": 5802 + }, + { + "id": 15860, + "x_pos": 3412.5, + "y_pos": 7006.5 + }, + { + "id": 15859, + "x_pos": 3310.5, + "y_pos": 6685 + }, + { + "id": 15858, + "x_pos": 3222, + "y_pos": 6760.5 + }, + { + "id": 15857, + "x_pos": 3272.5, + "y_pos": 6679.999969482422 + }, + { + "id": 15856, + "x_pos": 3360, + "y_pos": 7021.999969482422 + }, + { + "id": 15855, + "x_pos": 3142.5, + "y_pos": 7227 + }, + { + "id": 15854, + "x_pos": 3020.499969482422, + "y_pos": 7062 + }, + { + "id": 15853, + "x_pos": 3179.5, + "y_pos": 6817.5 + }, + { + "id": 15852, + "x_pos": 2962.000030517578, + "y_pos": 7063.5 + }, + { + "id": 15851, + "x_pos": 2978.5, + "y_pos": 6999 + }, + { + "id": 15850, + "x_pos": 3075, + "y_pos": 6762 + }, + { + "id": 15849, + "x_pos": 3020.5, + "y_pos": 6759.5 + }, + { + "id": 15848, + "x_pos": 2995, + "y_pos": 6759.999969482422 + }, + { + "id": 15847, + "x_pos": 401.5, + "y_pos": 5868.499984741211 + }, + { + "id": 15846, + "x_pos": 2974.5, + "y_pos": 6762.5 + }, + { + "id": 15845, + "x_pos": 2816, + "y_pos": 6484 + }, + { + "id": 12925, + "x_pos": 2310.2225367270457, + "y_pos": 6106.828957274105 + }, + { + "id": 12924, + "x_pos": 2066.038966814981, + "y_pos": 5960.84608293788 + }, + { + "id": 12923, + "x_pos": 2325.1068870643294, + "y_pos": 6109.794281891436 + }, + { + "id": 12921, + "x_pos": 2259.2357028928564, + "y_pos": 6126.5335334642605 + }, + { + "id": 12919, + "x_pos": 2029.0482592084345, + "y_pos": 5868.860046084221 + }, + { + "id": 12918, + "x_pos": 2250.552080351389, + "y_pos": 6195.798829815318 + }, + { + "id": 12917, + "x_pos": 1895.4107217383907, + "y_pos": 5807.300756527615 + }, + { + "id": 12912, + "x_pos": 1694.7158952162554, + "y_pos": 5964.323725917417 + }, + { + "id": 12911, + "x_pos": 2293.5622018514587, + "y_pos": 6203.797615628679 + }, + { + "id": 12910, + "x_pos": 2226.5820538331145, + "y_pos": 6072.299973391304 + }, + { + "id": 12909, + "x_pos": 1808.684584500811, + "y_pos": 6081.578813357672 + }, + { + "id": 12907, + "x_pos": 1694.2133406913636, + "y_pos": 6111.574260157777 + }, + { + "id": 12905, + "x_pos": 1587.8237818045563, + "y_pos": 6062.960487317254 + }, + { + "id": 12904, + "x_pos": 2246.312551816887, + "y_pos": 5989.724281763054 + }, + { + "id": 12902, + "x_pos": 1636.345431333786, + "y_pos": 6130.522311646748 + }, + { + "id": 12901, + "x_pos": 2374.5900013967457, + "y_pos": 6019.798146835332 + }, + { + "id": 12900, + "x_pos": 1711.5013657364216, + "y_pos": 6194.134611160422 + }, + { + "id": 12899, + "x_pos": 2320.8313343115624, + "y_pos": 6002.722308709766 + }, + { + "id": 12898, + "x_pos": 2413.0997077866105, + "y_pos": 6026.7970844220235 + }, + { + "id": 12896, + "x_pos": 1534.5458185375373, + "y_pos": 6218.130968600508 + }, + { + "id": 12895, + "x_pos": 2391.2193039665526, + "y_pos": 6037.704218046663 + }, + { + "id": 12894, + "x_pos": 2476.2748623556126, + "y_pos": 6127.944547952018 + }, + { + "id": 12893, + "x_pos": 1666, + "y_pos": 6276.5 + }, + { + "id": 12892, + "x_pos": 2410.854024573586, + "y_pos": 5930.733236389511 + }, + { + "id": 12890, + "x_pos": 2376.133620503145, + "y_pos": 6182.72056542688 + }, + { + "id": 12889, + "x_pos": 1699.5043794856501, + "y_pos": 6294.119433827444 + }, + { + "id": 12888, + "x_pos": 2488.159983480069, + "y_pos": 6185.220185993556 + }, + { + "id": 12886, + "x_pos": 2458.3490130360515, + "y_pos": 5939.2085184408115 + }, + { + "id": 12885, + "x_pos": 1680.401329220018, + "y_pos": 6344.307860328439 + }, + { + "id": 12884, + "x_pos": 1649.1474974326793, + "y_pos": 6399.51522991725 + }, + { + "id": 12882, + "x_pos": 2510.3612529896236, + "y_pos": 5956.205938294204 + }, + { + "id": 12881, + "x_pos": 1713.8929158367555, + "y_pos": 6404.298753928651 + }, + { + "id": 12880, + "x_pos": 3246.5, + "y_pos": 4960.5 + }, + { + "id": 12879, + "x_pos": 2295.9088087149676, + "y_pos": 5780.546354001883 + }, + { + "id": 12878, + "x_pos": 1607.6579199820935, + "y_pos": 6456.506578837452 + }, + { + "id": 12877, + "x_pos": 3404.0000610351562, + "y_pos": 5099.166702270508 + }, + { + "id": 12876, + "x_pos": 2244.460935519226, + "y_pos": 5752.017372791217 + }, + { + "id": 12875, + "x_pos": 1496.2086354801559, + "y_pos": 6451.879964179385 + }, + { + "id": 12873, + "x_pos": 1530.4390010853695, + "y_pos": 6349.8070255751245 + }, + { + "id": 12872, + "x_pos": 2893.873365033747, + "y_pos": 5913.568910373346 + }, + { + "id": 12871, + "x_pos": 3242.3333740234375, + "y_pos": 5037.333389282227 + }, + { + "id": 12868, + "x_pos": 2400.5601034385436, + "y_pos": 5680.48200953601 + }, + { + "id": 12866, + "x_pos": 1431.2468961534205, + "y_pos": 6301.326842546689 + }, + { + "id": 12865, + "x_pos": 2460.4666018878233, + "y_pos": 5312.983071680836 + }, + { + "id": 12861, + "x_pos": 3316.333251953125, + "y_pos": 5156.333297729492 + }, + { + "id": 12859, + "x_pos": 3344.4999389648438, + "y_pos": 5159.16667175293 + }, + { + "id": 12858, + "x_pos": 2532.1452366940102, + "y_pos": 5596.662316428632 + }, + { + "id": 12857, + "x_pos": 3186.807773496297, + "y_pos": 5576.832419478207 + }, + { + "id": 12855, + "x_pos": 3295.3333435058594, + "y_pos": 5344.000015258789 + }, + { + "id": 12854, + "x_pos": 2743.4828701129536, + "y_pos": 5530.471974923217 + }, + { + "id": 12852, + "x_pos": 2711.8590703368463, + "y_pos": 5658.139014931703 + }, + { + "id": 12848, + "x_pos": 3472.3064111497843, + "y_pos": 5696.270979147004 + }, + { + "id": 12847, + "x_pos": 2955.085067563963, + "y_pos": 5698.114073674806 + }, + { + "id": 12846, + "x_pos": 1445.4170258305812, + "y_pos": 6121.290709942174 + }, + { + "id": 12844, + "x_pos": 3836.46428633753, + "y_pos": 5705.036586689344 + }, + { + "id": 12843, + "x_pos": 3144, + "y_pos": 4832 + }, + { + "id": 12841, + "x_pos": 3863.461080190973, + "y_pos": 5675.526026871612 + }, + { + "id": 12840, + "x_pos": 2720, + "y_pos": 4475.5 + }, + { + "id": 12839, + "x_pos": 1352.1604490104382, + "y_pos": 6346.895431341385 + }, + { + "id": 12838, + "x_pos": 1284.8920523918723, + "y_pos": 6185.7841827217235 + }, + { + "id": 12836, + "x_pos": 1347.3141676962368, + "y_pos": 6081.5516250034525 + }, + { + "id": 12834, + "x_pos": 1430.4318949015114, + "y_pos": 5943.340067754569 + }, + { + "id": 12830, + "x_pos": 3427.5, + "y_pos": 5257.16667175293 + }, + { + "id": 12829, + "x_pos": 1255.8013146669318, + "y_pos": 5936.447919500692 + }, + { + "id": 12828, + "x_pos": 3665.5, + "y_pos": 5229.83332824707 + }, + { + "id": 12827, + "x_pos": 3605, + "y_pos": 5043.83332824707 + }, + { + "id": 12826, + "x_pos": 3615.3333129882812, + "y_pos": 4953.16667175293 + }, + { + "id": 12825, + "x_pos": 3597.8333129882812, + "y_pos": 4894.16667175293 + }, + { + "id": 12824, + "x_pos": 3724.3333129882812, + "y_pos": 4975.16667175293 + }, + { + "id": 12823, + "x_pos": 1432.431392609974, + "y_pos": 5852.304875335707 + }, + { + "id": 12820, + "x_pos": 1225.4244346307669, + "y_pos": 5829.827818521306 + }, + { + "id": 12819, + "x_pos": 3715.9999389648438, + "y_pos": 5085.333297729492 + }, + { + "id": 12818, + "x_pos": 3705, + "y_pos": 4902.33332824707 + }, + { + "id": 12816, + "x_pos": 3514.8333129882812, + "y_pos": 4883.000015258789 + }, + { + "id": 12812, + "x_pos": 1769.419914006925, + "y_pos": 6648.786687948934 + }, + { + "id": 12810, + "x_pos": 1056.3910765918063, + "y_pos": 6144.3008846228895 + }, + { + "id": 12809, + "x_pos": 3651.5, + "y_pos": 4866.5 + }, + { + "id": 12808, + "x_pos": 842.1698099676414, + "y_pos": 6052.910618083257 + }, + { + "id": 12807, + "x_pos": 3352.5, + "y_pos": 4794.5 + }, + { + "id": 12803, + "x_pos": 3420.5, + "y_pos": 4818 + }, + { + "id": 12801, + "x_pos": 3542, + "y_pos": 4760.83332824707 + }, + { + "id": 12797, + "x_pos": 3628.5, + "y_pos": 4796.499984741211 + }, + { + "id": 12795, + "x_pos": 3644.5, + "y_pos": 4812.499984741211 + }, + { + "id": 12792, + "x_pos": 3753, + "y_pos": 4831.999984741211 + }, + { + "id": 12790, + "x_pos": 3885.3333740234375, + "y_pos": 4885.666702270508 + }, + { + "id": 12772, + "x_pos": 3611.3333740234375, + "y_pos": 4701.000045776367 + }, + { + "id": 12768, + "x_pos": 3881.3333740234375, + "y_pos": 4801.166732788086 + }, + { + "id": 12765, + "x_pos": 3728.1666870117188, + "y_pos": 4773.333389282227 + }, + { + "id": 12762, + "x_pos": 3506.6666870117188, + "y_pos": 4675.333358764648 + }, + { + "id": 12756, + "x_pos": 3511.666748046875, + "y_pos": 4654.000015258789 + }, + { + "id": 12750, + "x_pos": 3514.666748046875, + "y_pos": 4515.500015258789 + }, + { + "id": 12744, + "x_pos": 4049.3333129882812, + "y_pos": 4669.83332824707 + }, + { + "id": 12741, + "x_pos": 3754.166748046875, + "y_pos": 4433.83332824707 + }, + { + "id": 12736, + "x_pos": 3893.6666870117188, + "y_pos": 4416.333297729492 + }, + { + "id": 12730, + "x_pos": 4190.1666259765625, + "y_pos": 4526.499984741211 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/3e1660deb2a0636d7aca3ddb41ecfce1_4819883852816063834.png" + }, + "125": { + "name": "Pinecone", + "clear_name": "Pinecone", + "points": [ + { + "id": 19170, + "x_pos": 2517, + "y_pos": 8503 + }, + { + "id": 19169, + "x_pos": 2516.5, + "y_pos": 8503.5 + }, + { + "id": 18355, + "x_pos": 3114.199951171875, + "y_pos": 6870.444990443386 + }, + { + "id": 18354, + "x_pos": 3117.2999572753906, + "y_pos": 6872.4706457792545 + }, + { + "id": 18349, + "x_pos": 3104.7999877929688, + "y_pos": 6883.784310276442 + }, + { + "id": 18341, + "x_pos": 3105.1000366210938, + "y_pos": 6886.46991975534 + }, + { + "id": 18340, + "x_pos": 3108.800048828125, + "y_pos": 6885.069323655029 + }, + { + "id": 13488, + "x_pos": 83.5, + "y_pos": 582.5 + }, + { + "id": 13486, + "x_pos": -327, + "y_pos": 384 + }, + { + "id": 11885, + "x_pos": -124.88885997219313, + "y_pos": 1395.3873662167853 + }, + { + "id": 11884, + "x_pos": -129.99798368014035, + "y_pos": 1424.7241927248624 + }, + { + "id": 11883, + "x_pos": -171.60888073024944, + "y_pos": 1422.5583826841885 + }, + { + "id": 11882, + "x_pos": -215.10868531018968, + "y_pos": 1448.0484205312287 + }, + { + "id": 11881, + "x_pos": -247, + "y_pos": 1441.1640520136807 + }, + { + "id": 11880, + "x_pos": -274.49785208335743, + "y_pos": 1466.1867491603252 + }, + { + "id": 11879, + "x_pos": -305.1086898026051, + "y_pos": 1476.047248513234 + }, + { + "id": 11878, + "x_pos": -330.22221902073125, + "y_pos": 1386.2766857968954 + }, + { + "id": 11877, + "x_pos": -301.8311783682466, + "y_pos": 1341.3186907348063 + }, + { + "id": 11876, + "x_pos": -368.9444075240208, + "y_pos": 1315.1660053770065 + }, + { + "id": 11875, + "x_pos": -253.4444605035378, + "y_pos": 1349.3873662167853 + }, + { + "id": 11874, + "x_pos": -305.6666409514628, + "y_pos": 1279.4427216795575 + }, + { + "id": 11873, + "x_pos": -124.66454733107912, + "y_pos": 1267.4345699550117 + }, + { + "id": 11872, + "x_pos": -29.55560053134468, + "y_pos": 1238.2747324335705 + }, + { + "id": 11871, + "x_pos": 46.166640951462796, + "y_pos": 1105.8873967224408 + }, + { + "id": 11870, + "x_pos": 26.83329801365562, + "y_pos": 1108.774762939226 + }, + { + "id": 11869, + "x_pos": -156.33332047573094, + "y_pos": 832.3873662167853 + }, + { + "id": 11868, + "x_pos": -108.60865835569894, + "y_pos": 783.5702982004741 + }, + { + "id": 11867, + "x_pos": -88.05551703438596, + "y_pos": 851.051418230466 + }, + { + "id": 11866, + "x_pos": -22.777758517193433, + "y_pos": 835.9980466366746 + }, + { + "id": 11865, + "x_pos": 27.00002246207623, + "y_pos": 838.5 + }, + { + "id": 11864, + "x_pos": 255.61114002780687, + "y_pos": 867.1660358826621 + }, + { + "id": 11863, + "x_pos": 314.88885997219313, + "y_pos": 907.2747324335701 + }, + { + "id": 11862, + "x_pos": 282.27778097926875, + "y_pos": 944.3320412596681 + }, + { + "id": 11861, + "x_pos": 262.8334327861103, + "y_pos": 996.8717393101815 + }, + { + "id": 11860, + "x_pos": 256.7804599303672, + "y_pos": 998.9691892608789 + }, + { + "id": 11859, + "x_pos": 262.61114002780687, + "y_pos": 1109.9427216795575 + }, + { + "id": 11858, + "x_pos": 336.0575449725611, + "y_pos": 1128.2662653170219 + }, + { + "id": 11857, + "x_pos": 352.6666409514628, + "y_pos": 1104.7194074764534 + }, + { + "id": 11856, + "x_pos": 352.11112391707593, + "y_pos": 1107.986326456722 + }, + { + "id": 11855, + "x_pos": 397.83332047573094, + "y_pos": 1132.3320412596681 + }, + { + "id": 11854, + "x_pos": 414.66667952426906, + "y_pos": 1073.3873662167853 + }, + { + "id": 11853, + "x_pos": 279.11110951036517, + "y_pos": 1288.9427216795575 + }, + { + "id": 11852, + "x_pos": 281.00004492415155, + "y_pos": 1291.4960932733493 + }, + { + "id": 11851, + "x_pos": 236.88885997219404, + "y_pos": 1485.1660053770065 + }, + { + "id": 11850, + "x_pos": 233.9444605035378, + "y_pos": 1488.1126337832147 + }, + { + "id": 11849, + "x_pos": 341.44509184278104, + "y_pos": 1574.2487450749277 + }, + { + "id": 11848, + "x_pos": 414.390894648991, + "y_pos": 1556.058187347856 + }, + { + "id": 11847, + "x_pos": 515.2777585171934, + "y_pos": 1363.9980466366742 + }, + { + "id": 11846, + "x_pos": 520.9445054276894, + "y_pos": 1369.8873662167853 + }, + { + "id": 11845, + "x_pos": 545.3906543047797, + "y_pos": 1333.5630707561695 + }, + { + "id": 11844, + "x_pos": 430.38885997219313, + "y_pos": 1632.2213303341232 + }, + { + "id": 11840, + "x_pos": 944.5, + "y_pos": 164.5 + }, + { + "id": 11828, + "x_pos": -787.5, + "y_pos": 168.5 + }, + { + "id": 11824, + "x_pos": -181.5, + "y_pos": 964.5 + }, + { + "id": 11823, + "x_pos": -170.5, + "y_pos": 962.5 + }, + { + "id": 11822, + "x_pos": -417.5, + "y_pos": 939 + }, + { + "id": 11814, + "x_pos": -1476, + "y_pos": 1522 + }, + { + "id": 11076, + "x_pos": 61.5, + "y_pos": 59 + }, + { + "id": 11034, + "x_pos": -46.5, + "y_pos": 55 + }, + { + "id": 11033, + "x_pos": -86.5, + "y_pos": 11 + }, + { + "id": 11032, + "x_pos": -118, + "y_pos": -21.5 + }, + { + "id": 11031, + "x_pos": -142, + "y_pos": -41.5 + }, + { + "id": 11029, + "x_pos": -80.5, + "y_pos": -76.5 + }, + { + "id": 11028, + "x_pos": -63, + "y_pos": -70.5 + }, + { + "id": 11027, + "x_pos": -29.5, + "y_pos": -77.5 + }, + { + "id": 11025, + "x_pos": 35.5, + "y_pos": -52 + }, + { + "id": 10909, + "x_pos": -1461.5, + "y_pos": 1377.5 + }, + { + "id": 10898, + "x_pos": -227, + "y_pos": 1133.5 + }, + { + "id": 10869, + "x_pos": 576.8677384035909, + "y_pos": 12.618316586590936 + }, + { + "id": 10845, + "x_pos": -45, + "y_pos": 0 + }, + { + "id": 10816, + "x_pos": 918.1361268129713, + "y_pos": 94.36505435434037 + }, + { + "id": 10813, + "x_pos": 1011, + "y_pos": 108 + }, + { + "id": 10809, + "x_pos": 883.8295614233011, + "y_pos": 9.038938887282711 + }, + { + "id": 10808, + "x_pos": 1022.5, + "y_pos": 38 + }, + { + "id": 10803, + "x_pos": 854.7830584188359, + "y_pos": -199.3898613774818 + }, + { + "id": 10802, + "x_pos": 854.672771292514, + "y_pos": -209.49687210248248 + }, + { + "id": 10800, + "x_pos": 879.7928753800115, + "y_pos": -240.91982527639902 + }, + { + "id": 10799, + "x_pos": 898.1550071450056, + "y_pos": -257.8364731771421 + }, + { + "id": 10797, + "x_pos": 937.5021465696054, + "y_pos": -325.2140576083739 + }, + { + "id": 10795, + "x_pos": 1871, + "y_pos": 706 + }, + { + "id": 10794, + "x_pos": 1851.5, + "y_pos": 697 + }, + { + "id": 10793, + "x_pos": 1882.5, + "y_pos": 727 + }, + { + "id": 10792, + "x_pos": 1928.5, + "y_pos": 716 + }, + { + "id": 10791, + "x_pos": 1950, + "y_pos": 652.5 + }, + { + "id": 10790, + "x_pos": 1925, + "y_pos": 641.5 + }, + { + "id": 10789, + "x_pos": 1891, + "y_pos": 658 + }, + { + "id": 10788, + "x_pos": 1865, + "y_pos": 653 + }, + { + "id": 10369, + "x_pos": 994.6564713402458, + "y_pos": 952.7898759379032 + }, + { + "id": 10368, + "x_pos": 999.6499678675873, + "y_pos": 954.0442765621638 + }, + { + "id": 10367, + "x_pos": 1012.943884032451, + "y_pos": 962.7717728055077 + }, + { + "id": 10075, + "x_pos": 490, + "y_pos": 906.5 + }, + { + "id": 10063, + "x_pos": 518, + "y_pos": 1070 + }, + { + "id": 10046, + "x_pos": 798.5, + "y_pos": 1196.5 + }, + { + "id": 10044, + "x_pos": 819.5, + "y_pos": 1179 + }, + { + "id": 10037, + "x_pos": 874, + "y_pos": 1026 + }, + { + "id": 10036, + "x_pos": 877, + "y_pos": 1032 + }, + { + "id": 10035, + "x_pos": 872, + "y_pos": 1035 + }, + { + "id": 10034, + "x_pos": 866, + "y_pos": 995 + }, + { + "id": 10033, + "x_pos": 877, + "y_pos": 997.5 + }, + { + "id": 10030, + "x_pos": 921, + "y_pos": 1136 + }, + { + "id": 10029, + "x_pos": 931, + "y_pos": 1144 + }, + { + "id": 10019, + "x_pos": 1105, + "y_pos": 1128.5 + }, + { + "id": 9704, + "x_pos": 1274, + "y_pos": 781 + }, + { + "id": 9703, + "x_pos": 1276, + "y_pos": 780 + }, + { + "id": 9702, + "x_pos": 1286.5, + "y_pos": 786 + }, + { + "id": 9701, + "x_pos": 1277, + "y_pos": 786.5 + }, + { + "id": 9700, + "x_pos": 1283, + "y_pos": 788 + }, + { + "id": 9386, + "x_pos": -452.5, + "y_pos": 1375.5 + }, + { + "id": 9359, + "x_pos": -384.5, + "y_pos": 1376 + }, + { + "id": 9297, + "x_pos": 480, + "y_pos": 54 + }, + { + "id": 9296, + "x_pos": 542.5, + "y_pos": -65 + }, + { + "id": 9292, + "x_pos": 643.5, + "y_pos": 113.5 + }, + { + "id": 9288, + "x_pos": 641.5, + "y_pos": -92 + }, + { + "id": 9286, + "x_pos": 631.5, + "y_pos": -83.5 + }, + { + "id": 9281, + "x_pos": 575.5, + "y_pos": 71 + }, + { + "id": 9278, + "x_pos": 608, + "y_pos": -75 + }, + { + "id": 9277, + "x_pos": 600, + "y_pos": -65.5 + }, + { + "id": 9274, + "x_pos": 555.5, + "y_pos": 149 + }, + { + "id": 9271, + "x_pos": 691.5, + "y_pos": -79 + }, + { + "id": 9268, + "x_pos": 624, + "y_pos": -82.5 + }, + { + "id": 9266, + "x_pos": 808, + "y_pos": -15 + }, + { + "id": 9253, + "x_pos": 621.5, + "y_pos": -60.5 + }, + { + "id": 9252, + "x_pos": 875.5, + "y_pos": -141.5 + }, + { + "id": 9250, + "x_pos": 567, + "y_pos": 145 + }, + { + "id": 9248, + "x_pos": 580, + "y_pos": 177 + }, + { + "id": 9247, + "x_pos": 595.5, + "y_pos": 175 + }, + { + "id": 9182, + "x_pos": 413.5, + "y_pos": 81.5 + }, + { + "id": 9181, + "x_pos": 455.5, + "y_pos": 102.5 + }, + { + "id": 9180, + "x_pos": 367, + "y_pos": -394 + }, + { + "id": 9179, + "x_pos": 453.5, + "y_pos": 101 + }, + { + "id": 9178, + "x_pos": 368, + "y_pos": -390 + }, + { + "id": 9177, + "x_pos": 574, + "y_pos": 234.5 + }, + { + "id": 9176, + "x_pos": 331, + "y_pos": -480 + }, + { + "id": 9175, + "x_pos": 477, + "y_pos": -325.5 + }, + { + "id": 9174, + "x_pos": 476, + "y_pos": -316 + }, + { + "id": 9173, + "x_pos": 480.5, + "y_pos": -316 + }, + { + "id": 7961, + "x_pos": -105.5, + "y_pos": 555 + }, + { + "id": 7960, + "x_pos": -17.5, + "y_pos": 503 + }, + { + "id": 7959, + "x_pos": 68.5, + "y_pos": 548.5 + }, + { + "id": 7958, + "x_pos": -108, + "y_pos": 539.5 + }, + { + "id": 7957, + "x_pos": 127, + "y_pos": 568.5 + }, + { + "id": 7956, + "x_pos": 81.5, + "y_pos": 582.5 + }, + { + "id": 7955, + "x_pos": 92, + "y_pos": 594 + }, + { + "id": 7954, + "x_pos": -205.5, + "y_pos": 404 + }, + { + "id": 7953, + "x_pos": -279, + "y_pos": 394.5 + }, + { + "id": 7952, + "x_pos": 52.5, + "y_pos": 452.5 + }, + { + "id": 7951, + "x_pos": -245, + "y_pos": 398.5 + }, + { + "id": 7950, + "x_pos": -305.5, + "y_pos": 380.5 + }, + { + "id": 7949, + "x_pos": -191.5, + "y_pos": 414.5 + }, + { + "id": 7948, + "x_pos": 40, + "y_pos": 291 + }, + { + "id": 7947, + "x_pos": -211, + "y_pos": 426.5 + }, + { + "id": 7946, + "x_pos": -326.5, + "y_pos": 210 + }, + { + "id": 7945, + "x_pos": -560, + "y_pos": 374 + }, + { + "id": 7944, + "x_pos": -751, + "y_pos": 172.5 + }, + { + "id": 7943, + "x_pos": -762, + "y_pos": 183.5 + }, + { + "id": 7942, + "x_pos": -730.5, + "y_pos": 194 + }, + { + "id": 7941, + "x_pos": -502.5, + "y_pos": -182 + }, + { + "id": 7940, + "x_pos": -516, + "y_pos": -179.5 + }, + { + "id": 7939, + "x_pos": -506, + "y_pos": -309 + }, + { + "id": 7938, + "x_pos": -342, + "y_pos": -322 + }, + { + "id": 7937, + "x_pos": -345, + "y_pos": -319 + }, + { + "id": 7936, + "x_pos": -413.5, + "y_pos": -288.5 + }, + { + "id": 7935, + "x_pos": -392.5, + "y_pos": -233.5 + }, + { + "id": 7934, + "x_pos": -341, + "y_pos": -304.5 + }, + { + "id": 7933, + "x_pos": -337.5, + "y_pos": -203 + }, + { + "id": 7932, + "x_pos": 184.5, + "y_pos": 585.5 + }, + { + "id": 7931, + "x_pos": -404.5, + "y_pos": 395 + }, + { + "id": 7930, + "x_pos": 248, + "y_pos": 383.5 + }, + { + "id": 7929, + "x_pos": 58.5, + "y_pos": 293 + }, + { + "id": 7928, + "x_pos": -397.5, + "y_pos": -229 + }, + { + "id": 7927, + "x_pos": -374.5, + "y_pos": -128 + }, + { + "id": 7926, + "x_pos": -10.5, + "y_pos": 617.5 + }, + { + "id": 7925, + "x_pos": -400.5, + "y_pos": 433.5 + }, + { + "id": 7924, + "x_pos": -143, + "y_pos": 612.5 + }, + { + "id": 7923, + "x_pos": -184.5, + "y_pos": 141 + }, + { + "id": 7922, + "x_pos": -729, + "y_pos": 277.5 + }, + { + "id": 7921, + "x_pos": -138, + "y_pos": 582.5 + }, + { + "id": 7920, + "x_pos": 203.5, + "y_pos": 569.5 + }, + { + "id": 7919, + "x_pos": 234.5, + "y_pos": 500.5 + }, + { + "id": 7918, + "x_pos": 36, + "y_pos": 625 + }, + { + "id": 7917, + "x_pos": 18.5, + "y_pos": 628.5 + }, + { + "id": 7916, + "x_pos": -85, + "y_pos": 623.5 + }, + { + "id": 7915, + "x_pos": 239.5, + "y_pos": 551.5 + }, + { + "id": 7914, + "x_pos": 320, + "y_pos": 505.5 + }, + { + "id": 7913, + "x_pos": 249.5, + "y_pos": 552 + }, + { + "id": 7912, + "x_pos": 335, + "y_pos": 563 + }, + { + "id": 7911, + "x_pos": 186, + "y_pos": 577.5 + }, + { + "id": 7910, + "x_pos": -717, + "y_pos": 97 + }, + { + "id": 7909, + "x_pos": 232.5, + "y_pos": 592 + }, + { + "id": 7908, + "x_pos": -97, + "y_pos": 631 + }, + { + "id": 7907, + "x_pos": -332.5, + "y_pos": 419.5 + }, + { + "id": 7906, + "x_pos": 254, + "y_pos": 668.5 + }, + { + "id": 7905, + "x_pos": 331.5, + "y_pos": 561.5 + }, + { + "id": 7904, + "x_pos": 352.5, + "y_pos": 681 + }, + { + "id": 7903, + "x_pos": 725, + "y_pos": -583.5 + }, + { + "id": 7902, + "x_pos": 699.5, + "y_pos": -570 + }, + { + "id": 7901, + "x_pos": 725, + "y_pos": -570.5 + }, + { + "id": 7900, + "x_pos": 491.5, + "y_pos": -520.5 + }, + { + "id": 7899, + "x_pos": -173, + "y_pos": 624 + }, + { + "id": 7898, + "x_pos": 371.5, + "y_pos": 697.5 + }, + { + "id": 7897, + "x_pos": 365.5, + "y_pos": 722.5 + }, + { + "id": 7896, + "x_pos": 104, + "y_pos": 658 + }, + { + "id": 7895, + "x_pos": 552.5, + "y_pos": -391.5 + }, + { + "id": 7894, + "x_pos": 867, + "y_pos": -475 + }, + { + "id": 7893, + "x_pos": -3.5, + "y_pos": 696.5 + }, + { + "id": 7892, + "x_pos": 872, + "y_pos": -476 + }, + { + "id": 7891, + "x_pos": 876.5, + "y_pos": -467 + }, + { + "id": 7890, + "x_pos": -360.5, + "y_pos": -117.5 + }, + { + "id": 7889, + "x_pos": -1327.5, + "y_pos": -278.5 + }, + { + "id": 7888, + "x_pos": 24, + "y_pos": 318 + }, + { + "id": 7887, + "x_pos": 752.5, + "y_pos": -562 + }, + { + "id": 7886, + "x_pos": -125, + "y_pos": 166.5 + }, + { + "id": 7885, + "x_pos": 863.5, + "y_pos": -469 + }, + { + "id": 7884, + "x_pos": 836.5, + "y_pos": -426 + }, + { + "id": 7883, + "x_pos": 805.5, + "y_pos": -456.5 + }, + { + "id": 7882, + "x_pos": 760, + "y_pos": -587 + }, + { + "id": 7881, + "x_pos": 925.5, + "y_pos": -462 + }, + { + "id": 7880, + "x_pos": 928, + "y_pos": -457.5 + }, + { + "id": 7879, + "x_pos": 599, + "y_pos": -586 + }, + { + "id": 7878, + "x_pos": 335, + "y_pos": 731.5 + }, + { + "id": 7877, + "x_pos": 833, + "y_pos": -425.5 + }, + { + "id": 7876, + "x_pos": 914, + "y_pos": -443.5 + }, + { + "id": 7875, + "x_pos": 830, + "y_pos": -425.5 + }, + { + "id": 7874, + "x_pos": 866.5, + "y_pos": -425.5 + }, + { + "id": 7873, + "x_pos": 860, + "y_pos": -424 + }, + { + "id": 7872, + "x_pos": 1013.5, + "y_pos": -555 + }, + { + "id": 7871, + "x_pos": 851, + "y_pos": -425 + }, + { + "id": 7870, + "x_pos": 751, + "y_pos": -557 + }, + { + "id": 7869, + "x_pos": 768, + "y_pos": -535 + }, + { + "id": 7868, + "x_pos": 863.5, + "y_pos": -420.5 + }, + { + "id": 7867, + "x_pos": 893.5, + "y_pos": -405.5 + }, + { + "id": 7866, + "x_pos": 929.5, + "y_pos": -452.5 + }, + { + "id": 7865, + "x_pos": 1008.5, + "y_pos": -543.5 + }, + { + "id": 7864, + "x_pos": 437.5, + "y_pos": -466 + }, + { + "id": 6107, + "x_pos": 452.49740156713506, + "y_pos": -522.4826915726217 + }, + { + "id": 6106, + "x_pos": 441.001515752504, + "y_pos": -519.9963773058976 + }, + { + "id": 6105, + "x_pos": 433.5, + "y_pos": -537.9927546117951 + }, + { + "id": 6104, + "x_pos": 450.500866144288, + "y_pos": -516.4983899137324 + }, + { + "id": 6103, + "x_pos": -436.001299216432, + "y_pos": -67.49315713336182 + }, + { + "id": 6102, + "x_pos": -430.51494098897183, + "y_pos": -63.00925799603965 + }, + { + "id": 6101, + "x_pos": -443.85791267638615, + "y_pos": -55.14209002113557 + }, + { + "id": 6100, + "x_pos": -439.50454725751297, + "y_pos": -51.50080504313382 + }, + { + "id": 6071, + "x_pos": -1151.3611607174666, + "y_pos": 929.4856166032159 + }, + { + "id": 6068, + "x_pos": -413.0142913807558, + "y_pos": 1454.9985888993415 + }, + { + "id": 6067, + "x_pos": -417.499133855712, + "y_pos": 1453.5004703668865 + }, + { + "id": 6066, + "x_pos": -411.50108268036, + "y_pos": 1452.5 + }, + { + "id": 6065, + "x_pos": -431.00238189679294, + "y_pos": 23.001207564700962 + }, + { + "id": 6064, + "x_pos": -435.5, + "y_pos": 22.50040252156714 + }, + { + "id": 6063, + "x_pos": -437.5071456903779, + "y_pos": 26 + }, + { + "id": 6062, + "x_pos": -444.499566927856, + "y_pos": 35.50161008626765 + }, + { + "id": 6061, + "x_pos": -431.5051968657299, + "y_pos": 27.508050431338688 + }, + { + "id": 6060, + "x_pos": 972.5, + "y_pos": 813.4983899137324 + }, + { + "id": 6058, + "x_pos": 215.499350391784, + "y_pos": 414.497648165569 + }, + { + "id": 6057, + "x_pos": 217.9939369899821, + "y_pos": 418.0037629350895 + }, + { + "id": 6055, + "x_pos": 949.000433072144, + "y_pos": 815.9991949568662 + }, + { + "id": 6054, + "x_pos": 951.499566927856, + "y_pos": 823 + }, + { + "id": 6053, + "x_pos": 1092.999783463928, + "y_pos": 874.499529633114 + }, + { + "id": 6052, + "x_pos": 1007.501732288576, + "y_pos": 839.5040252156696 + }, + { + "id": 6051, + "x_pos": 211.49783463927906, + "y_pos": 418.98588899341485 + }, + { + "id": 6050, + "x_pos": 1000.6180518196152, + "y_pos": 845.4609555000011 + }, + { + "id": 6049, + "x_pos": 1106.500649608216, + "y_pos": 880.0164628410162 + }, + { + "id": 6048, + "x_pos": 1041.50108268036, + "y_pos": 884.0032201725353 + }, + { + "id": 6047, + "x_pos": 998.000866144288, + "y_pos": 855.501207564701 + }, + { + "id": 6046, + "x_pos": 1038.501515752504, + "y_pos": 898.9995974784329 + }, + { + "id": 6045, + "x_pos": 1105.131693592155, + "y_pos": 895.4762092654928 + }, + { + "id": 6044, + "x_pos": 1088.001515752505, + "y_pos": 929.0023518344306 + }, + { + "id": 6043, + "x_pos": 1085.00108268036, + "y_pos": 863.4990592662275 + }, + { + "id": 6042, + "x_pos": 1094.000216536072, + "y_pos": 906.502351834431 + }, + { + "id": 6041, + "x_pos": 1125.501299216432, + "y_pos": 881.5047036688616 + }, + { + "id": 6040, + "x_pos": 1137.000866144288, + "y_pos": 877.4962370649105 + }, + { + "id": 6039, + "x_pos": 1098.999566927856, + "y_pos": 860.5 + }, + { + "id": 6038, + "x_pos": 1137.500866144288, + "y_pos": 889.002822201317 + }, + { + "id": 6036, + "x_pos": -288.000216536072, + "y_pos": 243.50201260783479 + }, + { + "id": 6035, + "x_pos": -278.999783463928, + "y_pos": 251.00402521566957 + }, + { + "id": 6034, + "x_pos": -268.00454725751297, + "y_pos": 279.4991949568662 + }, + { + "id": 6033, + "x_pos": -274.000433072144, + "y_pos": 279.5004025215667 + }, + { + "id": 6032, + "x_pos": -287.3940742004197, + "y_pos": 297.96739584507213 + }, + { + "id": 6031, + "x_pos": 706.000216536072, + "y_pos": -207.49838991373235 + }, + { + "id": 6030, + "x_pos": 751.998700783568, + "y_pos": -223.49919495686618 + }, + { + "id": 6029, + "x_pos": 744.999783463928, + "y_pos": -218.49919495686618 + }, + { + "id": 6028, + "x_pos": 521.500433072144, + "y_pos": -560.998792435299 + }, + { + "id": 6027, + "x_pos": 766.501515752504, + "y_pos": -228.49758487059853 + }, + { + "id": 6026, + "x_pos": 713.0021653607209, + "y_pos": -211.49838991373235 + }, + { + "id": 6025, + "x_pos": 543.496102350703, + "y_pos": -526.4975848705985 + }, + { + "id": 6024, + "x_pos": 707.496968494991, + "y_pos": -201.49798739216521 + }, + { + "id": 6023, + "x_pos": -267.5077952985939, + "y_pos": 285.5052327803701 + }, + { + "id": 6022, + "x_pos": -498.999350391784, + "y_pos": 0.5032201725352934 + }, + { + "id": 6021, + "x_pos": 541.0779926462847, + "y_pos": -530.1054605585441 + }, + { + "id": 6020, + "x_pos": -301.999566927856, + "y_pos": 244.0028176509686 + }, + { + "id": 6019, + "x_pos": -275.0071456903779, + "y_pos": 284.99838991373235 + }, + { + "id": 6018, + "x_pos": -272.36592451105207, + "y_pos": 237.8848789238491 + }, + { + "id": 6017, + "x_pos": -481.998267711424, + "y_pos": 20.504830258803395 + }, + { + "id": 6016, + "x_pos": -258.97812985672226, + "y_pos": 298.018918513646 + }, + { + "id": 6015, + "x_pos": 711.0875202334555, + "y_pos": -184.52213859418725 + }, + { + "id": 6014, + "x_pos": -474.000216536072, + "y_pos": 21.001207564700962 + }, + { + "id": 6013, + "x_pos": 537.5, + "y_pos": -527.5036226941024 + }, + { + "id": 6012, + "x_pos": 754.500866144288, + "y_pos": -195.99959747843286 + }, + { + "id": 6011, + "x_pos": -1559.0216536072057, + "y_pos": 465.00644034507104 + }, + { + "id": 6010, + "x_pos": -1554.0095275871709, + "y_pos": 462.4947672196299 + }, + { + "id": 6009, + "x_pos": -1557.0140748446838, + "y_pos": 506.0104655607406 + }, + { + "id": 6008, + "x_pos": -1549.5142913807558, + "y_pos": 476.01449077640973 + }, + { + "id": 6007, + "x_pos": -1546.9987007835675, + "y_pos": 464.4991949568662 + }, + { + "id": 6006, + "x_pos": -1554.495669278559, + "y_pos": 480.49879243529904 + }, + { + "id": 6005, + "x_pos": -1553.50627954609, + "y_pos": 512.498792435299 + }, + { + "id": 6004, + "x_pos": -1556.499350391784, + "y_pos": 517.5 + }, + { + "id": 6003, + "x_pos": -1552.5142913807558, + "y_pos": 501.51690590581165 + }, + { + "id": 5999, + "x_pos": 496.500216536072, + "y_pos": -408.9991949568662 + }, + { + "id": 5998, + "x_pos": 495.4922047014061, + "y_pos": -418.49597478433043 + }, + { + "id": 5996, + "x_pos": 489.47726371243334, + "y_pos": -417.5020126078348 + }, + { + "id": 5995, + "x_pos": 499.9915550931901, + "y_pos": -414.9939621764961 + }, + { + "id": 5994, + "x_pos": 488.9919881653341, + "y_pos": -410.0253588587175 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/d8374d19da0b808d6349dd4e7e614cb3_1238085734338144926.png" + }, + "63": { + "name": "Electro\u00a0Crystal", + "clear_name": "ElectroCrystal", + "points": [ + { + "id": 19150, + "x_pos": 1629.5, + "y_pos": 8585.5 + }, + { + "id": 19149, + "x_pos": 1630, + "y_pos": 8595.5 + }, + { + "id": 19148, + "x_pos": 1636.5, + "y_pos": 8601.5 + }, + { + "id": 17878, + "x_pos": 3242, + "y_pos": 7080 + }, + { + "id": 17877, + "x_pos": 3244, + "y_pos": 7076 + }, + { + "id": 17876, + "x_pos": 3224.5, + "y_pos": 7187 + }, + { + "id": 17875, + "x_pos": 3223, + "y_pos": 7190.5 + }, + { + "id": 17874, + "x_pos": 3340.5, + "y_pos": 7326.5 + }, + { + "id": 17129, + "x_pos": 2519, + "y_pos": 5840 + }, + { + "id": 17128, + "x_pos": 2516, + "y_pos": 5844.5 + }, + { + "id": 17127, + "x_pos": 2493.5, + "y_pos": 5846 + }, + { + "id": 17111, + "x_pos": 2456, + "y_pos": 6145 + }, + { + "id": 17107, + "x_pos": 2411.5, + "y_pos": 6167.5 + }, + { + "id": 17091, + "x_pos": 3653, + "y_pos": 5066 + }, + { + "id": 17090, + "x_pos": 3648, + "y_pos": 5066.5 + }, + { + "id": 17088, + "x_pos": 3648.5, + "y_pos": 5068 + }, + { + "id": 17045, + "x_pos": 2351, + "y_pos": 5756.5 + }, + { + "id": 17044, + "x_pos": 2305, + "y_pos": 5745.5 + }, + { + "id": 16975, + "x_pos": 3865.5, + "y_pos": 7157 + }, + { + "id": 16971, + "x_pos": 3044.5, + "y_pos": 6719.5 + }, + { + "id": 16970, + "x_pos": 3034, + "y_pos": 6710 + }, + { + "id": 16969, + "x_pos": 2986.5, + "y_pos": 6853.5 + }, + { + "id": 16968, + "x_pos": 2965.5, + "y_pos": 6843.5 + }, + { + "id": 16967, + "x_pos": 2989.5, + "y_pos": 6853.5 + }, + { + "id": 16960, + "x_pos": 114, + "y_pos": 6039.5 + }, + { + "id": 16959, + "x_pos": 115.5, + "y_pos": 6044 + }, + { + "id": 16958, + "x_pos": 22.5, + "y_pos": 6049.5 + }, + { + "id": 16957, + "x_pos": 25.5, + "y_pos": 6051 + }, + { + "id": 16956, + "x_pos": -208.5, + "y_pos": 5990 + }, + { + "id": 16955, + "x_pos": -209.5, + "y_pos": 5993 + }, + { + "id": 16954, + "x_pos": -113, + "y_pos": 6330.5 + }, + { + "id": 16953, + "x_pos": -115.5, + "y_pos": 6332 + }, + { + "id": 13178, + "x_pos": 3532.115782861436, + "y_pos": 4490.976846402939 + }, + { + "id": 13177, + "x_pos": 3532.0022521716564, + "y_pos": 4515.346568184797 + }, + { + "id": 13176, + "x_pos": 3526.391170932524, + "y_pos": 4513.22425937553 + }, + { + "id": 13175, + "x_pos": 3625.835786037109, + "y_pos": 4685.142218284826 + }, + { + "id": 13174, + "x_pos": 3698.4458941261673, + "y_pos": 4749.094915216163 + }, + { + "id": 13173, + "x_pos": 3339, + "y_pos": 4884 + }, + { + "id": 13172, + "x_pos": 3338, + "y_pos": 4888.5 + }, + { + "id": 13171, + "x_pos": 3337.5, + "y_pos": 4890 + }, + { + "id": 13170, + "x_pos": 3433.7810394519256, + "y_pos": 5059.1915994060455 + }, + { + "id": 13169, + "x_pos": 3433.7239002683837, + "y_pos": 5060.366971382313 + }, + { + "id": 13168, + "x_pos": 3403.1131833021573, + "y_pos": 5180.438664363379 + }, + { + "id": 13167, + "x_pos": 3411.779709309756, + "y_pos": 5185.103488333991 + }, + { + "id": 13166, + "x_pos": 3418.390763594396, + "y_pos": 5196.26583285165 + }, + { + "id": 13165, + "x_pos": 3400.1684959316535, + "y_pos": 5200.589316077423 + }, + { + "id": 13164, + "x_pos": 3409.335296751131, + "y_pos": 5202.9226934314775 + }, + { + "id": 13163, + "x_pos": 3217.3911394856186, + "y_pos": 5516.539364165583 + }, + { + "id": 13162, + "x_pos": 3213.058060670841, + "y_pos": 5514.1814816982205 + }, + { + "id": 13161, + "x_pos": 3197.7801436023747, + "y_pos": 5589.6222469935 + }, + { + "id": 13160, + "x_pos": 3194.946843342512, + "y_pos": 5594.509275166431 + }, + { + "id": 13159, + "x_pos": 3186.3912787504887, + "y_pos": 5600.118222950552 + }, + { + "id": 13158, + "x_pos": 2795.058018147808, + "y_pos": 5659.294267273808 + }, + { + "id": 13157, + "x_pos": 2686.614108352407, + "y_pos": 5648.964913962704 + }, + { + "id": 13156, + "x_pos": 2480.0581327043956, + "y_pos": 5487.861604253745 + }, + { + "id": 13155, + "x_pos": 2483.7247422089513, + "y_pos": 5491.58239592823 + }, + { + "id": 13154, + "x_pos": 2658.834769279626, + "y_pos": 5852.7355118423275 + }, + { + "id": 13153, + "x_pos": 2665.945882352941, + "y_pos": 5858.56660281718 + }, + { + "id": 13152, + "x_pos": 2669.8902616057285, + "y_pos": 5861.287780639164 + }, + { + "id": 13151, + "x_pos": 2505.503776959332, + "y_pos": 5850.387135747389 + }, + { + "id": 13150, + "x_pos": 2330.335038437259, + "y_pos": 5749.939490847697 + }, + { + "id": 13149, + "x_pos": 2321.3343582236375, + "y_pos": 5757.842374751624 + }, + { + "id": 13148, + "x_pos": 1974.4462102992493, + "y_pos": 5887.747050508617 + }, + { + "id": 13147, + "x_pos": 1978.2239032891448, + "y_pos": 5904.351781176038 + }, + { + "id": 13146, + "x_pos": 2214.1706958983477, + "y_pos": 6457.175535348402 + }, + { + "id": 13145, + "x_pos": 2194.6128527223646, + "y_pos": 6464.022952896863 + }, + { + "id": 13144, + "x_pos": 2223.446097214315, + "y_pos": 6462.85674690421 + }, + { + "id": 13143, + "x_pos": 2210.2263166455605, + "y_pos": 6463.11769791862 + }, + { + "id": 13142, + "x_pos": 2206.9461713391656, + "y_pos": 6473.908019826504 + }, + { + "id": 13141, + "x_pos": 1968.3328343654266, + "y_pos": 5915.60583572478 + }, + { + "id": 13140, + "x_pos": 1578.5573744156954, + "y_pos": 6082.1854126154285 + }, + { + "id": 13139, + "x_pos": 1568.5021380023472, + "y_pos": 6093.988145432608 + }, + { + "id": 13138, + "x_pos": 1578.168521182125, + "y_pos": 6089.182709582934 + }, + { + "id": 11767, + "x_pos": -1915.0552438111495, + "y_pos": 1222.0934144645348 + }, + { + "id": 11765, + "x_pos": -1908.8555382751697, + "y_pos": 1225.2840971195137 + }, + { + "id": 11753, + "x_pos": -2182.823367963851, + "y_pos": 1180.3131888927628 + }, + { + "id": 11752, + "x_pos": -2185.762787636446, + "y_pos": 1185.4860642942303 + }, + { + "id": 10975, + "x_pos": -1538.5, + "y_pos": 1929.5 + }, + { + "id": 10974, + "x_pos": -1540.5, + "y_pos": 1937.5 + }, + { + "id": 10959, + "x_pos": 260.5, + "y_pos": 2562 + }, + { + "id": 10958, + "x_pos": 264, + "y_pos": 2563.5 + }, + { + "id": 10957, + "x_pos": -154, + "y_pos": 2624 + }, + { + "id": 10956, + "x_pos": -149.5, + "y_pos": 2631 + }, + { + "id": 10955, + "x_pos": -152.5, + "y_pos": 2633 + }, + { + "id": 10946, + "x_pos": -1011, + "y_pos": -165 + }, + { + "id": 10945, + "x_pos": 9.5, + "y_pos": 344.5 + }, + { + "id": 10733, + "x_pos": -1458.5, + "y_pos": 1599.5 + }, + { + "id": 10731, + "x_pos": -1461, + "y_pos": 1605 + }, + { + "id": 10387, + "x_pos": -650, + "y_pos": -616.5 + }, + { + "id": 10386, + "x_pos": -1022.5, + "y_pos": -699.5 + }, + { + "id": 9682, + "x_pos": -1472.9148234134227, + "y_pos": 1958.908490669115 + }, + { + "id": 9681, + "x_pos": -1559.127707755105, + "y_pos": 1971.3109494891214 + }, + { + "id": 3497, + "x_pos": -1360.5, + "y_pos": 2223.6177886171627 + }, + { + "id": 3496, + "x_pos": -1581.9996364295855, + "y_pos": 2105.497958076137 + }, + { + "id": 3494, + "x_pos": -1375, + "y_pos": 2214.502576345707 + }, + { + "id": 3449, + "x_pos": -1361.5, + "y_pos": 2229.5020038244384 + }, + { + "id": 3448, + "x_pos": -911.5015754717965, + "y_pos": 2124.5026253306814 + }, + { + "id": 3447, + "x_pos": -904.5598679282671, + "y_pos": 2126.136222947402 + }, + { + "id": 3446, + "x_pos": -2203.52011756294, + "y_pos": 1566.57671545196 + }, + { + "id": 3445, + "x_pos": -1860.0056959364952, + "y_pos": 1475.5513372553742 + }, + { + "id": 3444, + "x_pos": -2117, + "y_pos": 901.9486085824196 + }, + { + "id": 3443, + "x_pos": -2111.5, + "y_pos": 909.0868724686816 + }, + { + "id": 3442, + "x_pos": -1905.099012342903, + "y_pos": 1331.4754943690264 + }, + { + "id": 3437, + "x_pos": -1345.53017634441, + "y_pos": 926.1411819053556 + }, + { + "id": 3435, + "x_pos": -533.0016966619346, + "y_pos": 1330.5023336272725 + }, + { + "id": 3433, + "x_pos": 844.4453432476748, + "y_pos": 1035.6099696405895 + }, + { + "id": 3432, + "x_pos": 854.953462986934, + "y_pos": 1063.626596734904 + }, + { + "id": 3431, + "x_pos": -514.5002423802762, + "y_pos": 1319.499708296591 + }, + { + "id": 3430, + "x_pos": 895.9065624034538, + "y_pos": 899.0802158928682 + }, + { + "id": 3428, + "x_pos": 940.5, + "y_pos": 925.006011473316 + }, + { + "id": 3426, + "x_pos": 973.4720050780779, + "y_pos": 843.0837163337765 + }, + { + "id": 3424, + "x_pos": 989.4547960784539, + "y_pos": 820.0609634678722 + }, + { + "id": 3423, + "x_pos": 1322.4996364295857, + "y_pos": 776 + }, + { + "id": 3421, + "x_pos": 1345.9975761972364, + "y_pos": 777.5 + }, + { + "id": 3419, + "x_pos": -1340.5, + "y_pos": 927.5005834068179 + }, + { + "id": 3416, + "x_pos": -1066.9975761972364, + "y_pos": 730.009917915907 + }, + { + "id": 3415, + "x_pos": -1069.493092162123, + "y_pos": 740.0070008818166 + }, + { + "id": 3410, + "x_pos": -1071.4946676339196, + "y_pos": 757.0093345090891 + }, + { + "id": 3408, + "x_pos": -528.0327213373121, + "y_pos": 1332.5341267542412 + }, + { + "id": 3407, + "x_pos": -446.0016966619346, + "y_pos": 1713.5026253306814 + }, + { + "id": 3404, + "x_pos": 833.4915166903265, + "y_pos": 1083.6814369758017 + }, + { + "id": 3402, + "x_pos": 1339.4996364295857, + "y_pos": 787.5 + }, + { + "id": 3400, + "x_pos": -1077.0895595121242, + "y_pos": 761.1408902019466 + }, + { + "id": 3398, + "x_pos": 932.7967641382511, + "y_pos": 926.2003976973888 + }, + { + "id": 3395, + "x_pos": 1347.8857176996844, + "y_pos": 786.9000015258789 + }, + { + "id": 3392, + "x_pos": -271.5, + "y_pos": 749.2102508019707 + }, + { + "id": 3391, + "x_pos": -291.5, + "y_pos": 748.209678280703 + }, + { + "id": 3389, + "x_pos": 669.4327394733036, + "y_pos": -359.4323273537202 + }, + { + "id": 3387, + "x_pos": -689, + "y_pos": 251.20767445626416 + }, + { + "id": 3386, + "x_pos": -646, + "y_pos": 5.001717563804505 + }, + { + "id": 3384, + "x_pos": -517, + "y_pos": 27 + }, + { + "id": 3382, + "x_pos": -479, + "y_pos": -46.462650621014745 + }, + { + "id": 3380, + "x_pos": 1011.4281342480517, + "y_pos": -579.5011693582514 + }, + { + "id": 3379, + "x_pos": -377.06059506909605, + "y_pos": -426.4682068730308 + }, + { + "id": 3377, + "x_pos": -121, + "y_pos": 384.5820060379019 + }, + { + "id": 3376, + "x_pos": -428, + "y_pos": 71.68305604173315 + }, + { + "id": 3373, + "x_pos": -836, + "y_pos": -558.0448074229964 + }, + { + "id": 3370, + "x_pos": -561, + "y_pos": -433.3782037339606 + }, + { + "id": 3368, + "x_pos": -897.5453251116842, + "y_pos": -110.9454540071265 + }, + { + "id": 3367, + "x_pos": -1251, + "y_pos": -299.8928030262987 + }, + { + "id": 3365, + "x_pos": -1130.5, + "y_pos": -158.83154325060514 + }, + { + "id": 3363, + "x_pos": -1252, + "y_pos": -284.88421520727616 + }, + { + "id": 3362, + "x_pos": -1252, + "y_pos": -266.4959923511228 + }, + { + "id": 3360, + "x_pos": -1198.5, + "y_pos": -203.33755472392068 + }, + { + "id": 3358, + "x_pos": -831, + "y_pos": -415.97868121652346 + }, + { + "id": 3207, + "x_pos": -440.05429318191, + "y_pos": 1714.0265424656068 + }, + { + "id": 3198, + "x_pos": -326.1050718498127, + "y_pos": 1904.8713358950808 + }, + { + "id": 3187, + "x_pos": -20, + "y_pos": 633.7073881956303 + }, + { + "id": 3184, + "x_pos": -335, + "y_pos": 368.06254031478466 + }, + { + "id": 3176, + "x_pos": -330, + "y_pos": 146.4961278476776 + }, + { + "id": 3167, + "x_pos": -297, + "y_pos": 81.00700575177257 + }, + { + "id": 3151, + "x_pos": -450.5, + "y_pos": -387.9262955204863 + }, + { + "id": 3127, + "x_pos": -1154, + "y_pos": -271.8083561392443 + }, + { + "id": 3106, + "x_pos": -1134, + "y_pos": -264.30406222973306 + }, + { + "id": 3103, + "x_pos": -1095.5, + "y_pos": -211.77400486315446 + }, + { + "id": 3100, + "x_pos": -1072, + "y_pos": -170.7685659111071 + }, + { + "id": 3083, + "x_pos": -1174, + "y_pos": -360.359024271477 + }, + { + "id": 3077, + "x_pos": -1086, + "y_pos": -404.38421520727616 + }, + { + "id": 3070, + "x_pos": -1098.5, + "y_pos": -549.9675170517942 + }, + { + "id": 3068, + "x_pos": -1098, + "y_pos": -402.3830701647398 + }, + { + "id": 3063, + "x_pos": -990.5, + "y_pos": -379.87018843620626 + }, + { + "id": 3024, + "x_pos": 244, + "y_pos": 327.53219668757174 + }, + { + "id": 2937, + "x_pos": 806, + "y_pos": 462.7654991043487 + }, + { + "id": 2932, + "x_pos": 805.5, + "y_pos": 469.76950675322587 + }, + { + "id": 2923, + "x_pos": 915.5, + "y_pos": 250.14383833486409 + }, + { + "id": 2916, + "x_pos": 604, + "y_pos": 168.78553734873458 + }, + { + "id": 2883, + "x_pos": 923.5, + "y_pos": -128.5 + }, + { + "id": 2872, + "x_pos": 923, + "y_pos": -128.5 + }, + { + "id": 2864, + "x_pos": 422, + "y_pos": -345.45864297213757 + }, + { + "id": 2857, + "x_pos": 579.5, + "y_pos": -335.9532040200902 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/723d15046c4bd70a5b319d81a0032428_8204759773213807472.png" + }, + "233": { + "name": "Medaka", + "clear_name": "Medaka", + "points": [ + { + "id": 18685, + "x_pos": 2037.5, + "y_pos": 8352.5 + }, + { + "id": 17216, + "x_pos": 3401.5, + "y_pos": 6778 + }, + { + "id": 17196, + "x_pos": 1878.5, + "y_pos": 5718 + }, + { + "id": 17193, + "x_pos": 512.5, + "y_pos": 5893.5 + }, + { + "id": 17188, + "x_pos": 60.5, + "y_pos": 5961.5 + }, + { + "id": 17165, + "x_pos": -2081.5, + "y_pos": 2179.5 + }, + { + "id": 17160, + "x_pos": -2401.5, + "y_pos": 1632 + }, + { + "id": 17149, + "x_pos": -2337, + "y_pos": 1182.5 + }, + { + "id": 17145, + "x_pos": -1757.5, + "y_pos": 954.5 + }, + { + "id": 16903, + "x_pos": -1881.5, + "y_pos": 792 + }, + { + "id": 16902, + "x_pos": -811, + "y_pos": -564.5 + }, + { + "id": 16898, + "x_pos": -868.5, + "y_pos": -175 + }, + { + "id": 16891, + "x_pos": 59, + "y_pos": 269.5 + }, + { + "id": 16886, + "x_pos": 583, + "y_pos": -429 + }, + { + "id": 16875, + "x_pos": 524.5, + "y_pos": 472 + }, + { + "id": 16857, + "x_pos": -1160.5, + "y_pos": 1012 + }, + { + "id": 16852, + "x_pos": -139.5, + "y_pos": 1338 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/c73727c8c2154882fec62e362a5cefc2_5995468836888288778.png" + }, + "234": { + "name": "Glaze Medaka", + "clear_name": "GlazeMedaka", + "points": [ + { + "id": 18683, + "x_pos": 2042.5, + "y_pos": 8352.5 + }, + { + "id": 17211, + "x_pos": 3323, + "y_pos": 6753.5 + }, + { + "id": 17206, + "x_pos": 3209.5, + "y_pos": 5571 + }, + { + "id": 17202, + "x_pos": 2950, + "y_pos": 4877 + }, + { + "id": 17195, + "x_pos": 514.5, + "y_pos": 5891.5 + }, + { + "id": 17187, + "x_pos": 58, + "y_pos": 5960 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/cf722ef03eb80706bbcf58ae8d1b7dc0_7605640269598805358.png" + }, + "238": { + "name": "Crystalfish", + "clear_name": "Crystalfish", + "points": [ + { + "id": 18679, + "x_pos": 2042.5, + "y_pos": 8356 + }, + { + "id": 17217, + "x_pos": 3403.5, + "y_pos": 6776.5 + }, + { + "id": 17191, + "x_pos": 510, + "y_pos": 5895 + }, + { + "id": 17185, + "x_pos": 58.5, + "y_pos": 5963.5 + }, + { + "id": 17183, + "x_pos": -653, + "y_pos": 3057.5 + }, + { + "id": 17166, + "x_pos": -2083.5, + "y_pos": 2177.5 + }, + { + "id": 17159, + "x_pos": -2404.5, + "y_pos": 1632.5 + }, + { + "id": 17146, + "x_pos": -1752.5, + "y_pos": 955 + }, + { + "id": 16899, + "x_pos": -811.5, + "y_pos": -562 + }, + { + "id": 16882, + "x_pos": 584.5, + "y_pos": -428 + }, + { + "id": 16880, + "x_pos": 314, + "y_pos": 39 + }, + { + "id": 16864, + "x_pos": -1194.5, + "y_pos": 502 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/da1383e42e316097e81720215233b21d_1998660093109411895.png" + }, + "237": { + "name": "Dawncatcher", + "clear_name": "Dawncatcher", + "points": [ + { + "id": 18677, + "x_pos": 2037.5, + "y_pos": 8356 + }, + { + "id": 17218, + "x_pos": 3399.5, + "y_pos": 6776 + }, + { + "id": 17194, + "x_pos": 510.5, + "y_pos": 5891.5 + }, + { + "id": 17189, + "x_pos": 62.5, + "y_pos": 5959.5 + }, + { + "id": 17182, + "x_pos": -657.5, + "y_pos": 3058 + }, + { + "id": 17162, + "x_pos": -2399.5, + "y_pos": 1630 + }, + { + "id": 17150, + "x_pos": -2335, + "y_pos": 1180.5 + }, + { + "id": 17147, + "x_pos": -1755, + "y_pos": 952.5 + }, + { + "id": 16900, + "x_pos": -812.5, + "y_pos": -563.5 + }, + { + "id": 16897, + "x_pos": -868, + "y_pos": -172.5 + }, + { + "id": 16883, + "x_pos": 589, + "y_pos": -428 + }, + { + "id": 16867, + "x_pos": -492, + "y_pos": 618 + }, + { + "id": 16863, + "x_pos": -1190.5, + "y_pos": 502.5 + }, + { + "id": 16855, + "x_pos": -1158, + "y_pos": 1010.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/707349e7b91298d9cda04d72411ac518_6268973006179235717.png" + }, + "212": { + "name": "Inazuma Shrine of Depths", + "clear_name": "InazumaShrineofDepths", + "points": [ + { + "id": 18652, + "x_pos": 2191, + "y_pos": 8473 + }, + { + "id": 18651, + "x_pos": 1769, + "y_pos": 8364 + }, + { + "id": 16063, + "x_pos": 3051, + "y_pos": 6702 + }, + { + "id": 16062, + "x_pos": 177.5, + "y_pos": 5964.5 + }, + { + "id": 13476, + "x_pos": 2816.5, + "y_pos": 4624.5 + }, + { + "id": 13475, + "x_pos": 2257.5, + "y_pos": 6056.5 + }, + { + "id": 13474, + "x_pos": 1486, + "y_pos": 6400.5 + }, + { + "id": 13413, + "x_pos": 3771.5, + "y_pos": 5137.5 + }, + { + "id": 13411, + "x_pos": 2380.5, + "y_pos": 6254 + }, + { + "id": 13410, + "x_pos": 1611, + "y_pos": 6221.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/ffadf78c6d06c5dcef05dc193a9c7d90_5321777026753870854.png" + }, + "190": { + "name": "Waverider Waypoint (Cannot Teleport)", + "clear_name": "WaveriderWaypointCannotTeleport", + "points": [ + { + "id": 18567, + "x_pos": 2523.5, + "y_pos": 8528 + }, + { + "id": 18565, + "x_pos": 1715, + "y_pos": 8124 + }, + { + "id": 16033, + "x_pos": 3360, + "y_pos": 6497.5 + }, + { + "id": 16016, + "x_pos": 2921.5, + "y_pos": 6581 + }, + { + "id": 16010, + "x_pos": 2787.5, + "y_pos": 7005.5 + }, + { + "id": 15950, + "x_pos": 487, + "y_pos": 5847.5 + }, + { + "id": 15945, + "x_pos": 207, + "y_pos": 6395.5 + }, + { + "id": 15937, + "x_pos": -383.5, + "y_pos": 6091 + }, + { + "id": 15089, + "x_pos": 1059.5, + "y_pos": 5969.20794817869 + }, + { + "id": 12800, + "x_pos": 3953, + "y_pos": 4789 + }, + { + "id": 12799, + "x_pos": 3539, + "y_pos": 4463 + }, + { + "id": 12780, + "x_pos": 3101, + "y_pos": 4675 + }, + { + "id": 12777, + "x_pos": 3569, + "y_pos": 5253.5 + }, + { + "id": 12773, + "x_pos": 3169, + "y_pos": 5317 + }, + { + "id": 12769, + "x_pos": 2905.5, + "y_pos": 5615 + }, + { + "id": 12767, + "x_pos": 2717, + "y_pos": 6100.5 + }, + { + "id": 12764, + "x_pos": 1291, + "y_pos": 6167 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220401/6db2133bf163989dbff9c6a1e0c814a0_7631310718225262758.png" + }, + "196": { + "name": "Onikabuto", + "clear_name": "Onikabuto", + "points": [ + { + "id": 18539, + "x_pos": 1574.8000183105469, + "y_pos": 5913.600006103516 + }, + { + "id": 17956, + "x_pos": 3657.5, + "y_pos": 4816.5 + }, + { + "id": 17729, + "x_pos": 3346.5, + "y_pos": 7086.5 + }, + { + "id": 17727, + "x_pos": 3315, + "y_pos": 7048 + }, + { + "id": 17726, + "x_pos": 3401, + "y_pos": 7198 + }, + { + "id": 17725, + "x_pos": 3524, + "y_pos": 7201 + }, + { + "id": 17724, + "x_pos": 3258, + "y_pos": 7236.5 + }, + { + "id": 17723, + "x_pos": 3235, + "y_pos": 7023 + }, + { + "id": 15462, + "x_pos": 3695.9000549316406, + "y_pos": 4802.500015258789 + }, + { + "id": 15461, + "x_pos": 3636.5, + "y_pos": 4833.800018310547 + }, + { + "id": 15460, + "x_pos": 3666.300018310547, + "y_pos": 4839.600006103516 + }, + { + "id": 15459, + "x_pos": 3676.4000244140625, + "y_pos": 4842.499969482422 + }, + { + "id": 15458, + "x_pos": 3651.5999755859375, + "y_pos": 4867.199996948242 + }, + { + "id": 15457, + "x_pos": 3686.300018310547, + "y_pos": 4878.799987792969 + }, + { + "id": 15456, + "x_pos": 3657.6000061035156, + "y_pos": 4879.899993896484 + }, + { + "id": 15455, + "x_pos": 3663.800018310547, + "y_pos": 4894.199981689453 + }, + { + "id": 15454, + "x_pos": 3863.7999877929688, + "y_pos": 4805.700012207031 + }, + { + "id": 15453, + "x_pos": 4110.899993896484, + "y_pos": 4602.999984741211 + }, + { + "id": 15452, + "x_pos": 3626.7000122070312, + "y_pos": 4966.699935913086 + }, + { + "id": 15451, + "x_pos": 3869.1000366210938, + "y_pos": 5658.5 + }, + { + "id": 15450, + "x_pos": 2345.800018310547, + "y_pos": 5903.499969482422 + }, + { + "id": 15449, + "x_pos": 2344.5, + "y_pos": 5919.600006103516 + }, + { + "id": 15448, + "x_pos": 2386.6000061035156, + "y_pos": 6029 + }, + { + "id": 15447, + "x_pos": 2465.5999755859375, + "y_pos": 5930.800018310547 + }, + { + "id": 15446, + "x_pos": 2502.7999877929688, + "y_pos": 5981.600006103516 + }, + { + "id": 15445, + "x_pos": 2287.1000061035156, + "y_pos": 5999.5999755859375 + }, + { + "id": 15444, + "x_pos": 2295.7000122070312, + "y_pos": 5991.499969482422 + }, + { + "id": 15443, + "x_pos": 2348.8999938964844, + "y_pos": 6099.300018310547 + }, + { + "id": 15442, + "x_pos": 2355.2000122070312, + "y_pos": 6096.899993896484 + }, + { + "id": 15441, + "x_pos": 2346.6000061035156, + "y_pos": 6098.699981689453 + }, + { + "id": 15440, + "x_pos": 2342.5, + "y_pos": 6102.100006103516 + }, + { + "id": 15439, + "x_pos": 2388.2000122070312, + "y_pos": 6046.399978637695 + }, + { + "id": 15438, + "x_pos": 2336.5, + "y_pos": 6168.000030517578 + }, + { + "id": 15437, + "x_pos": 2545.7000732421875, + "y_pos": 5953.399993896484 + }, + { + "id": 15436, + "x_pos": 1542.1000061035156, + "y_pos": 6226.5 + }, + { + "id": 15263, + "x_pos": 1734, + "y_pos": 6087.5 + }, + { + "id": 15035, + "x_pos": 1769.5, + "y_pos": 6272.304298597179 + }, + { + "id": 14565, + "x_pos": 3863, + "y_pos": 5629 + }, + { + "id": 14564, + "x_pos": 3852.5, + "y_pos": 5630 + }, + { + "id": 14563, + "x_pos": 3867, + "y_pos": 5661.5 + }, + { + "id": 14562, + "x_pos": 3859, + "y_pos": 5668.5 + }, + { + "id": 14561, + "x_pos": 3872.5, + "y_pos": 5679.5 + }, + { + "id": 14560, + "x_pos": 2385, + "y_pos": 6039.5 + }, + { + "id": 14559, + "x_pos": 2388, + "y_pos": 6050.5 + }, + { + "id": 14558, + "x_pos": 2413.5, + "y_pos": 6038.5 + }, + { + "id": 14557, + "x_pos": 2398.5, + "y_pos": 6056 + }, + { + "id": 14556, + "x_pos": 2630.5, + "y_pos": 6075.5 + }, + { + "id": 14555, + "x_pos": 2285, + "y_pos": 6054 + }, + { + "id": 14554, + "x_pos": 2224, + "y_pos": 6025.5 + }, + { + "id": 14553, + "x_pos": 1469, + "y_pos": 5982.5 + }, + { + "id": 14552, + "x_pos": 1422.5, + "y_pos": 6025 + }, + { + "id": 14550, + "x_pos": 1385.5, + "y_pos": 6001.8032218623175 + }, + { + "id": 14525, + "x_pos": 4057, + "y_pos": 4625.5 + }, + { + "id": 14524, + "x_pos": 4075, + "y_pos": 4606.5 + }, + { + "id": 14523, + "x_pos": 3673, + "y_pos": 4766 + }, + { + "id": 14522, + "x_pos": 3702, + "y_pos": 4794 + }, + { + "id": 14521, + "x_pos": 3721.5, + "y_pos": 4881 + }, + { + "id": 14519, + "x_pos": 3531.5, + "y_pos": 5073 + }, + { + "id": 14469, + "x_pos": 1596.5, + "y_pos": 6362.5 + }, + { + "id": 12673, + "x_pos": 1616.1128087276775, + "y_pos": 5974.06043288782 + }, + { + "id": 12626, + "x_pos": 1605.7244760720805, + "y_pos": 6168.937065584063 + }, + { + "id": 12618, + "x_pos": 1505.9466166304555, + "y_pos": 6215.189545037014 + }, + { + "id": 12576, + "x_pos": 1665, + "y_pos": 6255.5 + }, + { + "id": 12436, + "x_pos": 2346.1694258615953, + "y_pos": 5967.080256864087 + }, + { + "id": 12434, + "x_pos": 2336.7805520248785, + "y_pos": 5979.742052666292 + }, + { + "id": 12428, + "x_pos": 2333.300018310547, + "y_pos": 5976.299987792969 + }, + { + "id": 12252, + "x_pos": 2632, + "y_pos": 5617.5 + }, + { + "id": 12228, + "x_pos": 2719.2250458342533, + "y_pos": 5554.9456760299545 + }, + { + "id": 12225, + "x_pos": 2714.000030517578, + "y_pos": 5492.5 + }, + { + "id": 12223, + "x_pos": 2711.500030517578, + "y_pos": 5498.900039672852 + }, + { + "id": 12202, + "x_pos": 3513.5, + "y_pos": 5426 + }, + { + "id": 12194, + "x_pos": 3341.2803906852096, + "y_pos": 5093.073677103701 + }, + { + "id": 12179, + "x_pos": 3552.501753513572, + "y_pos": 5108.813815089572 + }, + { + "id": 12164, + "x_pos": 3472.5, + "y_pos": 4785 + }, + { + "id": 12160, + "x_pos": 3550.699981689453, + "y_pos": 4903.5 + }, + { + "id": 12123, + "x_pos": 3686.4999389648438, + "y_pos": 4799.700012207031 + }, + { + "id": 12115, + "x_pos": 3726, + "y_pos": 4835.5 + }, + { + "id": 12110, + "x_pos": 3769, + "y_pos": 4848.5 + }, + { + "id": 12104, + "x_pos": 3648.8905747580484, + "y_pos": 4717.10727193614 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/332c864890886bc00e354cdd61c02c47_5205171672274107090.png" + }, + "223": { + "name": "Weapon", + "clear_name": "Weapon", + "points": [ + { + "id": 18424, + "x_pos": 3029.5999450683594, + "y_pos": 6737.677118852978 + }, + { + "id": 18423, + "x_pos": 3032.5, + "y_pos": 6742.271089034193 + }, + { + "id": 18422, + "x_pos": 3014.7000427246094, + "y_pos": 6759.066396637603 + }, + { + "id": 18421, + "x_pos": 3031.199981689453, + "y_pos": 6759.873427591898 + }, + { + "id": 18419, + "x_pos": 3036.3999938964844, + "y_pos": 6755.790897975798 + }, + { + "id": 15637, + "x_pos": 2421.5, + "y_pos": 6046.5 + }, + { + "id": 15636, + "x_pos": 2428.5, + "y_pos": 6017.5 + }, + { + "id": 15629, + "x_pos": 2515, + "y_pos": 5965.5 + }, + { + "id": 15627, + "x_pos": 2459.5, + "y_pos": 5953.5 + }, + { + "id": 15626, + "x_pos": 2446, + "y_pos": 5956.5 + }, + { + "id": 15625, + "x_pos": 2445.5, + "y_pos": 5954.5 + }, + { + "id": 15621, + "x_pos": 2428, + "y_pos": 6035.5 + }, + { + "id": 15607, + "x_pos": 2371.5, + "y_pos": 6046 + }, + { + "id": 15548, + "x_pos": 2447, + "y_pos": 5962 + }, + { + "id": 15545, + "x_pos": 2456.5, + "y_pos": 5944 + }, + { + "id": 15055, + "x_pos": 2533.5, + "y_pos": 5289.5 + }, + { + "id": 15053, + "x_pos": 2476, + "y_pos": 5291.5 + }, + { + "id": 15048, + "x_pos": 2387.5, + "y_pos": 5372 + }, + { + "id": 14185, + "x_pos": -1015.5, + "y_pos": 1071 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210727/1febfc70f6327c93149c0583c516acdf_8128863759798635357.png" + }, + "130": { + "name": "Cooking Ingredient", + "clear_name": "CookingIngredient", + "points": [ + { + "id": 18420, + "x_pos": 3009, + "y_pos": 6737.275491021215 + }, + { + "id": 18134, + "x_pos": 3745.2604789792877, + "y_pos": 6546.023532909547 + }, + { + "id": 18133, + "x_pos": 84.84347292953589, + "y_pos": 6330.881596937674 + }, + { + "id": 18132, + "x_pos": 62.36634622235215, + "y_pos": 6339.256645002859 + }, + { + "id": 18128, + "x_pos": 2937.876132384463, + "y_pos": 6607.066611760953 + }, + { + "id": 18126, + "x_pos": 2935.735767119566, + "y_pos": 6613.202145328511 + }, + { + "id": 17817, + "x_pos": 3028.3999938964844, + "y_pos": 6590.817684370781 + }, + { + "id": 17816, + "x_pos": 2969.1000061035156, + "y_pos": 7055.955961028292 + }, + { + "id": 17036, + "x_pos": 111.5, + "y_pos": 6281.659572029599 + }, + { + "id": 17035, + "x_pos": 81, + "y_pos": 6293.619954146388 + }, + { + "id": 17034, + "x_pos": 134.10000610351562, + "y_pos": 6300.109308370493 + }, + { + "id": 17033, + "x_pos": 147.50003051757812, + "y_pos": 6322.752388229932 + }, + { + "id": 17032, + "x_pos": 3413.7999572753906, + "y_pos": 6555.019442109353 + }, + { + "id": 17031, + "x_pos": 4024.5, + "y_pos": 7189.275506302394 + }, + { + "id": 17030, + "x_pos": 4029.2000122070312, + "y_pos": 7184.052862047229 + }, + { + "id": 17029, + "x_pos": 4027.0999755859375, + "y_pos": 7197.896186472697 + }, + { + "id": 17025, + "x_pos": 3229.7999877929688, + "y_pos": 6763.54145204447 + }, + { + "id": 17023, + "x_pos": 3220.8999938964844, + "y_pos": 6724.675353457022 + }, + { + "id": 17022, + "x_pos": 3211.2000427246094, + "y_pos": 6719.429591129394 + }, + { + "id": 17021, + "x_pos": 3100.9999389648438, + "y_pos": 6643.5 + }, + { + "id": 17020, + "x_pos": 3084, + "y_pos": 6659.5 + }, + { + "id": 17019, + "x_pos": 3090.9999389648438, + "y_pos": 6661.500015258789 + }, + { + "id": 17018, + "x_pos": 3087.9999389648438, + "y_pos": 6663 + }, + { + "id": 17017, + "x_pos": 3038.2999877929688, + "y_pos": 6745.359507067797 + }, + { + "id": 15622, + "x_pos": 2419, + "y_pos": 6034 + }, + { + "id": 15612, + "x_pos": 2399, + "y_pos": 6057.5 + }, + { + "id": 15606, + "x_pos": 2478.3999938964844, + "y_pos": 5807.769486383884 + }, + { + "id": 15558, + "x_pos": 2375.5, + "y_pos": 6008 + }, + { + "id": 15551, + "x_pos": 2518, + "y_pos": 5960.5 + }, + { + "id": 15266, + "x_pos": 1757.5, + "y_pos": 6017.909635034457 + }, + { + "id": 15265, + "x_pos": 1772, + "y_pos": 6024.196808690176 + }, + { + "id": 15264, + "x_pos": 1776.1000061035156, + "y_pos": 6031.60412493584 + }, + { + "id": 15088, + "x_pos": 1666.2670128586851, + "y_pos": 6368.050258155927 + }, + { + "id": 15087, + "x_pos": 1666, + "y_pos": 6366.403649581511 + }, + { + "id": 15086, + "x_pos": 1664.699229068926, + "y_pos": 6393.8042833151485 + }, + { + "id": 15085, + "x_pos": 1451.0024125698064, + "y_pos": 6271.8072991630215 + }, + { + "id": 15083, + "x_pos": 1710.5, + "y_pos": 5897.447871617276 + }, + { + "id": 15082, + "x_pos": 1683, + "y_pos": 5910.855834924983 + }, + { + "id": 15056, + "x_pos": 2545.5, + "y_pos": 5283.5 + }, + { + "id": 15052, + "x_pos": 2481.5, + "y_pos": 5295 + }, + { + "id": 15051, + "x_pos": 2495.5, + "y_pos": 5312 + }, + { + "id": 15050, + "x_pos": 2391.5, + "y_pos": 5343.5 + }, + { + "id": 14954, + "x_pos": 2396.9000854492188, + "y_pos": 6052.3480932447455 + }, + { + "id": 14953, + "x_pos": 2382.999969482422, + "y_pos": 6051.659915940083 + }, + { + "id": 14952, + "x_pos": 2394.5999755859375, + "y_pos": 6053.263049287007 + }, + { + "id": 14951, + "x_pos": 2378.2000122070312, + "y_pos": 6054.972831491588 + }, + { + "id": 14950, + "x_pos": 2382.8999633789062, + "y_pos": 6056.570026757176 + }, + { + "id": 14949, + "x_pos": 2393.2999267578125, + "y_pos": 6057.174596870751 + }, + { + "id": 14947, + "x_pos": 2340.2999877929688, + "y_pos": 5986.859862439165 + }, + { + "id": 14946, + "x_pos": 2430.800033569336, + "y_pos": 5984.8646427193235 + }, + { + "id": 14945, + "x_pos": 2451.8999633789062, + "y_pos": 5997.5510049642 + }, + { + "id": 14944, + "x_pos": 2447.699981689453, + "y_pos": 6009.2351394735015 + }, + { + "id": 14942, + "x_pos": 2523, + "y_pos": 5584.550256018518 + }, + { + "id": 14941, + "x_pos": 2524, + "y_pos": 5593.578165832023 + }, + { + "id": 14940, + "x_pos": 2739, + "y_pos": 5592.604547191806 + }, + { + "id": 14937, + "x_pos": 2687, + "y_pos": 5874 + }, + { + "id": 14932, + "x_pos": 2678.5, + "y_pos": 5893.5 + }, + { + "id": 14924, + "x_pos": 2575, + "y_pos": 5803.5 + }, + { + "id": 14919, + "x_pos": 2514.5, + "y_pos": 5890 + }, + { + "id": 14609, + "x_pos": 1372.2015204069849, + "y_pos": 5702.004561196354 + }, + { + "id": 14607, + "x_pos": 2032.5, + "y_pos": 5776 + }, + { + "id": 14606, + "x_pos": 2012, + "y_pos": 5786 + }, + { + "id": 13978, + "x_pos": -166.5, + "y_pos": 355 + }, + { + "id": 13662, + "x_pos": 3019, + "y_pos": 4839 + }, + { + "id": 13661, + "x_pos": 3037, + "y_pos": 4854.5 + }, + { + "id": 13660, + "x_pos": 3000, + "y_pos": 4878.5 + }, + { + "id": 13658, + "x_pos": 3034, + "y_pos": 4918 + }, + { + "id": 13479, + "x_pos": -386.5, + "y_pos": 391.5 + }, + { + "id": 11702, + "x_pos": 345.5, + "y_pos": 526.5 + }, + { + "id": 11053, + "x_pos": 185.5, + "y_pos": -25 + }, + { + "id": 10888, + "x_pos": 948.5, + "y_pos": 1117 + }, + { + "id": 10645, + "x_pos": -1326, + "y_pos": 1412.5 + }, + { + "id": 9828, + "x_pos": 1229, + "y_pos": 895.1272907914272 + }, + { + "id": 9707, + "x_pos": 600, + "y_pos": 697 + }, + { + "id": 9146, + "x_pos": -1060.7857611740233, + "y_pos": 1575.5710343284773 + }, + { + "id": 9145, + "x_pos": -729.2857610288738, + "y_pos": -400.44286281731866 + }, + { + "id": 8707, + "x_pos": 988.4285317562408, + "y_pos": 907.1299506672221 + }, + { + "id": 8468, + "x_pos": -685, + "y_pos": 257.5531906765332 + }, + { + "id": 8467, + "x_pos": -1966, + "y_pos": 3287 + }, + { + "id": 8466, + "x_pos": -688, + "y_pos": 2253.5 + }, + { + "id": 8465, + "x_pos": -692, + "y_pos": 2258 + }, + { + "id": 8464, + "x_pos": -1964.5, + "y_pos": 3290.5 + }, + { + "id": 8463, + "x_pos": -691, + "y_pos": 2264.5 + }, + { + "id": 8462, + "x_pos": -682, + "y_pos": 2265 + }, + { + "id": 8461, + "x_pos": -1960, + "y_pos": 3289.5 + }, + { + "id": 8460, + "x_pos": 802, + "y_pos": 600.5 + }, + { + "id": 7782, + "x_pos": -1590, + "y_pos": 2968.5 + }, + { + "id": 7781, + "x_pos": -1595.5, + "y_pos": 2970 + }, + { + "id": 7756, + "x_pos": -1131.5, + "y_pos": 1369.1859839517401 + }, + { + "id": 7755, + "x_pos": -1099.2999877929688, + "y_pos": 1365.0242032880396 + }, + { + "id": 7754, + "x_pos": -1099, + "y_pos": 1386.133160107459 + }, + { + "id": 7753, + "x_pos": -1123.8999938964844, + "y_pos": 1388.9765150952853 + }, + { + "id": 7752, + "x_pos": -1249.5, + "y_pos": 2611.936155906982 + }, + { + "id": 7709, + "x_pos": 127, + "y_pos": 375.5 + }, + { + "id": 7708, + "x_pos": -39, + "y_pos": 402.5 + }, + { + "id": 7707, + "x_pos": 211.5, + "y_pos": 370 + }, + { + "id": 7706, + "x_pos": 129.5, + "y_pos": 387 + }, + { + "id": 7705, + "x_pos": -40.5, + "y_pos": 399 + }, + { + "id": 7704, + "x_pos": -617.5, + "y_pos": -299 + }, + { + "id": 7703, + "x_pos": -181, + "y_pos": 378 + }, + { + "id": 7702, + "x_pos": -909.5, + "y_pos": -136 + }, + { + "id": 7701, + "x_pos": 142.5, + "y_pos": 406 + }, + { + "id": 7700, + "x_pos": 193.5, + "y_pos": 406.5 + }, + { + "id": 7699, + "x_pos": -607.5, + "y_pos": -293.5 + }, + { + "id": 7698, + "x_pos": -66.5, + "y_pos": 393.5 + }, + { + "id": 7697, + "x_pos": -333, + "y_pos": 444.5 + }, + { + "id": 7696, + "x_pos": -1415.5, + "y_pos": 391 + }, + { + "id": 7695, + "x_pos": -1353.5, + "y_pos": 614.5 + }, + { + "id": 7694, + "x_pos": -1184.5, + "y_pos": 770 + }, + { + "id": 7693, + "x_pos": -1346.5, + "y_pos": 621 + }, + { + "id": 7692, + "x_pos": -1018, + "y_pos": 1070.5 + }, + { + "id": 7691, + "x_pos": -317, + "y_pos": 485.5 + }, + { + "id": 7690, + "x_pos": -912.5, + "y_pos": -138 + }, + { + "id": 7689, + "x_pos": -163, + "y_pos": 602.5 + }, + { + "id": 7688, + "x_pos": -1009, + "y_pos": 767.5 + }, + { + "id": 7687, + "x_pos": -285.5, + "y_pos": 609.5 + }, + { + "id": 7686, + "x_pos": -40.5, + "y_pos": 399.5 + }, + { + "id": 7685, + "x_pos": -1429, + "y_pos": 589.5 + }, + { + "id": 7683, + "x_pos": -1417, + "y_pos": 388 + }, + { + "id": 7682, + "x_pos": -366.5, + "y_pos": 528 + }, + { + "id": 7681, + "x_pos": -1324, + "y_pos": 1412 + }, + { + "id": 7680, + "x_pos": -2004.5, + "y_pos": 1671 + }, + { + "id": 7679, + "x_pos": -1278.5, + "y_pos": 1456 + }, + { + "id": 7678, + "x_pos": -1173, + "y_pos": 798 + }, + { + "id": 7677, + "x_pos": -2382, + "y_pos": 1566.5 + }, + { + "id": 7676, + "x_pos": 122, + "y_pos": 410 + }, + { + "id": 7675, + "x_pos": 23, + "y_pos": 398 + }, + { + "id": 7674, + "x_pos": -287, + "y_pos": 550 + }, + { + "id": 7673, + "x_pos": -501, + "y_pos": 1733.5 + }, + { + "id": 7672, + "x_pos": 124, + "y_pos": 446 + }, + { + "id": 7671, + "x_pos": -284, + "y_pos": 623.5 + }, + { + "id": 7670, + "x_pos": 36.5, + "y_pos": 1105 + }, + { + "id": 7669, + "x_pos": -186.5, + "y_pos": 376 + }, + { + "id": 7668, + "x_pos": 167, + "y_pos": 980.5 + }, + { + "id": 7667, + "x_pos": 111.5, + "y_pos": 454.5 + }, + { + "id": 7665, + "x_pos": 162.5, + "y_pos": 979 + }, + { + "id": 7661, + "x_pos": 164.5, + "y_pos": 991 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/2b934f219e94c7698645462d4a258ac3_3789345521064785644.png" + }, + "80": { + "name": "Magical Crystal Chunk", + "clear_name": "MagicalCrystalChunk", + "points": [ + { + "id": 18402, + "x_pos": 3569.8999633789062, + "y_pos": 6618.691220942206 + }, + { + "id": 18400, + "x_pos": 3544.3001403808594, + "y_pos": 6626.446108816635 + }, + { + "id": 18396, + "x_pos": 3110, + "y_pos": 6618.658877065936 + }, + { + "id": 18395, + "x_pos": 3112.1000366210938, + "y_pos": 6621.504227239599 + }, + { + "id": 18376, + "x_pos": 181.21757586401236, + "y_pos": 5899.307058492281 + }, + { + "id": 18375, + "x_pos": 176.44547443855026, + "y_pos": 5906.9247535683935 + }, + { + "id": 18366, + "x_pos": -115.69789170688819, + "y_pos": 5951.309005454372 + }, + { + "id": 18359, + "x_pos": -121.93944708835807, + "y_pos": 5958.702468793237 + }, + { + "id": 18358, + "x_pos": -125.25836065758267, + "y_pos": 6350.310805948291 + }, + { + "id": 18357, + "x_pos": -124.92453909607138, + "y_pos": 6361.759461683527 + }, + { + "id": 14071, + "x_pos": 3803, + "y_pos": 5001 + }, + { + "id": 14070, + "x_pos": 3807, + "y_pos": 5002 + }, + { + "id": 14069, + "x_pos": 3660.5, + "y_pos": 4942.5 + }, + { + "id": 14068, + "x_pos": 3847, + "y_pos": 4792 + }, + { + "id": 14067, + "x_pos": 3837, + "y_pos": 4788.5 + }, + { + "id": 12163, + "x_pos": 1470.317626953125, + "y_pos": 6377.614990234375 + }, + { + "id": 12161, + "x_pos": 1470.353271484375, + "y_pos": 6370.249267578125 + }, + { + "id": 12158, + "x_pos": 1368.2666015625, + "y_pos": 6095.172607421875 + }, + { + "id": 12156, + "x_pos": 1371.481689453125, + "y_pos": 6083.98681640625 + }, + { + "id": 12154, + "x_pos": 1526.523681640625, + "y_pos": 6102.550537109375 + }, + { + "id": 12152, + "x_pos": 1525.625244140625, + "y_pos": 6082.14306640625 + }, + { + "id": 12148, + "x_pos": 1745.8400000000001, + "y_pos": 6352.05 + }, + { + "id": 12145, + "x_pos": 1759.028564453125, + "y_pos": 6342.956298828125 + }, + { + "id": 12140, + "x_pos": 1650.6599999999999, + "y_pos": 5991.93 + }, + { + "id": 12137, + "x_pos": 1648.1399999999999, + "y_pos": 5998.18 + }, + { + "id": 12133, + "x_pos": 1997.56396484375, + "y_pos": 5881.25537109375 + }, + { + "id": 12131, + "x_pos": 2005.441162109375, + "y_pos": 5874.22802734375 + }, + { + "id": 12127, + "x_pos": 2425, + "y_pos": 6228.5 + }, + { + "id": 12124, + "x_pos": 2417.5, + "y_pos": 6233.5 + }, + { + "id": 12122, + "x_pos": 2560, + "y_pos": 6267 + }, + { + "id": 12119, + "x_pos": 2563, + "y_pos": 6262.5 + }, + { + "id": 12114, + "x_pos": 2340.5, + "y_pos": 5774 + }, + { + "id": 12111, + "x_pos": 2343, + "y_pos": 5778 + }, + { + "id": 12108, + "x_pos": 2622, + "y_pos": 5823.5 + }, + { + "id": 12106, + "x_pos": 2630, + "y_pos": 5816.5 + }, + { + "id": 12101, + "x_pos": 2671, + "y_pos": 5638 + }, + { + "id": 12099, + "x_pos": 2678.5, + "y_pos": 5637.5 + }, + { + "id": 12097, + "x_pos": 2905.5, + "y_pos": 5694.5 + }, + { + "id": 12094, + "x_pos": 2915.5, + "y_pos": 5698.5 + }, + { + "id": 12092, + "x_pos": 3579, + "y_pos": 5061.5 + }, + { + "id": 12089, + "x_pos": 3588.5, + "y_pos": 5057.5 + }, + { + "id": 12086, + "x_pos": 3430, + "y_pos": 4679.5 + }, + { + "id": 12084, + "x_pos": 3431.5, + "y_pos": 4671 + }, + { + "id": 11179, + "x_pos": -990, + "y_pos": -356 + }, + { + "id": 11178, + "x_pos": -989.5, + "y_pos": -352 + }, + { + "id": 11177, + "x_pos": -1169, + "y_pos": -227.5 + }, + { + "id": 11176, + "x_pos": -962, + "y_pos": -156 + }, + { + "id": 11175, + "x_pos": -957.5, + "y_pos": -152 + }, + { + "id": 11174, + "x_pos": -1009.5, + "y_pos": -105 + }, + { + "id": 11173, + "x_pos": -1002.5, + "y_pos": -104.5 + }, + { + "id": 11172, + "x_pos": -849, + "y_pos": -73 + }, + { + "id": 11167, + "x_pos": -1650, + "y_pos": 1194.5 + }, + { + "id": 11166, + "x_pos": -1648, + "y_pos": 1197.5 + }, + { + "id": 11165, + "x_pos": -1656, + "y_pos": 1199 + }, + { + "id": 11160, + "x_pos": -51, + "y_pos": 2400.5 + }, + { + "id": 11155, + "x_pos": 1057, + "y_pos": 65 + }, + { + "id": 11154, + "x_pos": -1459.5, + "y_pos": 2591.5 + }, + { + "id": 11153, + "x_pos": -1879, + "y_pos": 2666 + }, + { + "id": 11113, + "x_pos": -1847, + "y_pos": 2066 + }, + { + "id": 11112, + "x_pos": -1856.5, + "y_pos": 2075.5 + }, + { + "id": 11109, + "x_pos": -2378, + "y_pos": 1951.5 + }, + { + "id": 11107, + "x_pos": -2007, + "y_pos": 1486 + }, + { + "id": 11106, + "x_pos": -2018.5, + "y_pos": 1482.5 + }, + { + "id": 11105, + "x_pos": -2072.5, + "y_pos": 1502 + }, + { + "id": 11101, + "x_pos": -2239, + "y_pos": 1633.5 + }, + { + "id": 11100, + "x_pos": -2233, + "y_pos": 1625.5 + }, + { + "id": 11099, + "x_pos": -2239.5, + "y_pos": 1547.5 + }, + { + "id": 11098, + "x_pos": -2121, + "y_pos": 1402.5 + }, + { + "id": 11097, + "x_pos": -2116, + "y_pos": 1402.5 + }, + { + "id": 11096, + "x_pos": -2141.5, + "y_pos": 1382 + }, + { + "id": 11095, + "x_pos": -2318.5, + "y_pos": 1499.5 + }, + { + "id": 11094, + "x_pos": -2323.5, + "y_pos": 1498 + }, + { + "id": 11093, + "x_pos": -2398, + "y_pos": 1213 + }, + { + "id": 11092, + "x_pos": -2379.5, + "y_pos": 1213 + }, + { + "id": 9139, + "x_pos": 1064.571320228073, + "y_pos": 67.41863517436423 + }, + { + "id": 9138, + "x_pos": 1061.4285202894707, + "y_pos": 84.9123463207452 + }, + { + "id": 9137, + "x_pos": -1176.3571590205202, + "y_pos": -225.4070657938837 + }, + { + "id": 9136, + "x_pos": -1165.0714573575842, + "y_pos": -229.14618668747426 + }, + { + "id": 7726, + "x_pos": -1789.5, + "y_pos": 1116 + }, + { + "id": 7725, + "x_pos": -1796.5, + "y_pos": 1117.5 + }, + { + "id": 7720, + "x_pos": -891.5, + "y_pos": -679.5 + }, + { + "id": 7717, + "x_pos": -839.5, + "y_pos": -73 + }, + { + "id": 7716, + "x_pos": -774.5, + "y_pos": -294 + }, + { + "id": 7713, + "x_pos": -786, + "y_pos": -293.5 + }, + { + "id": 7712, + "x_pos": -781, + "y_pos": -294 + }, + { + "id": 7711, + "x_pos": -883.5, + "y_pos": -677.5 + }, + { + "id": 7710, + "x_pos": -886.5, + "y_pos": -676.5 + }, + { + "id": 7571, + "x_pos": 594.5, + "y_pos": -383.5 + }, + { + "id": 7570, + "x_pos": 904, + "y_pos": -591 + }, + { + "id": 7569, + "x_pos": 591.5, + "y_pos": -384 + }, + { + "id": 7568, + "x_pos": 892, + "y_pos": -594 + }, + { + "id": 7567, + "x_pos": 80.5, + "y_pos": 2770 + }, + { + "id": 7566, + "x_pos": 64, + "y_pos": 2777.5 + }, + { + "id": 7565, + "x_pos": 89, + "y_pos": 2592 + }, + { + "id": 7564, + "x_pos": -2019.5, + "y_pos": 3209.5 + }, + { + "id": 7557, + "x_pos": -1637, + "y_pos": 3015 + }, + { + "id": 6295, + "x_pos": -2380.5, + "y_pos": 1957 + }, + { + "id": 6294, + "x_pos": -2236, + "y_pos": 1457 + }, + { + "id": 6293, + "x_pos": -2078, + "y_pos": 1500 + }, + { + "id": 6292, + "x_pos": -2135.5, + "y_pos": 1379.5 + }, + { + "id": 6291, + "x_pos": -2249, + "y_pos": 1507 + }, + { + "id": 6290, + "x_pos": -2236, + "y_pos": 1551 + }, + { + "id": 6289, + "x_pos": -2385, + "y_pos": 1211 + }, + { + "id": 5254, + "x_pos": -2029, + "y_pos": 3210 + }, + { + "id": 5253, + "x_pos": -1837, + "y_pos": 2975.5 + }, + { + "id": 5252, + "x_pos": 34, + "y_pos": 2656 + }, + { + "id": 5251, + "x_pos": 29, + "y_pos": 2664.5 + }, + { + "id": 5250, + "x_pos": 92, + "y_pos": 2588 + }, + { + "id": 5248, + "x_pos": -1632, + "y_pos": 3013 + }, + { + "id": 5247, + "x_pos": -148.5, + "y_pos": 172.5 + }, + { + "id": 5246, + "x_pos": -1864, + "y_pos": 2665 + }, + { + "id": 5241, + "x_pos": -436, + "y_pos": -59 + }, + { + "id": 5234, + "x_pos": -49, + "y_pos": 2396.5 + }, + { + "id": 5231, + "x_pos": 70.5, + "y_pos": 2776.5 + }, + { + "id": 5230, + "x_pos": -1454, + "y_pos": 2592 + }, + { + "id": 5228, + "x_pos": -426, + "y_pos": -58 + }, + { + "id": 5227, + "x_pos": -150.5, + "y_pos": 174.5 + }, + { + "id": 4979, + "x_pos": -1765.9054013969353, + "y_pos": 3201.2845036266626 + }, + { + "id": 4978, + "x_pos": -1763.8375917788094, + "y_pos": 3203.586922906892 + }, + { + "id": 4977, + "x_pos": -1763.9123776950964, + "y_pos": 3205.280881838875 + }, + { + "id": 4976, + "x_pos": -1524.8920069044661, + "y_pos": 3099.33883044347 + }, + { + "id": 4975, + "x_pos": -1526.892565008319, + "y_pos": 3101.3370195495763 + }, + { + "id": 4974, + "x_pos": -1522.8370336749565, + "y_pos": 3101.3750483213416 + }, + { + "id": 4973, + "x_pos": -1314.8334059999129, + "y_pos": 2922.4990945530535 + }, + { + "id": 4972, + "x_pos": -1313.8802867235554, + "y_pos": 2923.385913684703 + }, + { + "id": 4971, + "x_pos": -1329.8847515543785, + "y_pos": 2876.4284696912027 + }, + { + "id": 4970, + "x_pos": -1327.8936812160246, + "y_pos": 2877.3433576782045 + }, + { + "id": 4969, + "x_pos": -1784.891448800613, + "y_pos": 2638.4049280705867 + }, + { + "id": 4968, + "x_pos": -1783.0206498425568, + "y_pos": 2638.5597594984883 + }, + { + "id": 4967, + "x_pos": -1425.867450334939, + "y_pos": 2024.6095590805626 + }, + { + "id": 4964, + "x_pos": -1426.8981460468476, + "y_pos": 2025.3904409194374 + }, + { + "id": 4962, + "x_pos": -31.425353609676222, + "y_pos": 640.7391346366385 + }, + { + "id": 4961, + "x_pos": -35.951026386909234, + "y_pos": 645.6653407104745 + }, + { + "id": 4959, + "x_pos": -28.44893349746053, + "y_pos": 648.6626243696342 + }, + { + "id": 4957, + "x_pos": -692.9026108776711, + "y_pos": 251.32977597400213 + }, + { + "id": 4956, + "x_pos": -699.9734900669878, + "y_pos": 252.19124259114233 + }, + { + "id": 4955, + "x_pos": -114.94223625122595, + "y_pos": 288.70608582308023 + }, + { + "id": 4954, + "x_pos": -117.44293388104234, + "y_pos": 291.1802805850966 + }, + { + "id": 4953, + "x_pos": -403.4457244003065, + "y_pos": 251.7178566333887 + }, + { + "id": 4952, + "x_pos": -400.4401433617777, + "y_pos": 248.69929497097928 + }, + { + "id": 4951, + "x_pos": -312.8654969714539, + "y_pos": 17.40402262363955 + }, + { + "id": 4950, + "x_pos": -315.9215864086691, + "y_pos": 18.483701954957724 + }, + { + "id": 4949, + "x_pos": -266.8981460468476, + "y_pos": -354.54527234733996 + }, + { + "id": 4948, + "x_pos": -254.90149466996536, + "y_pos": -353.6249516786579 + }, + { + "id": 4947, + "x_pos": -262.9037270853769, + "y_pos": -355.6231407847645 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/6d09b837e25086a0796e4b9142888634_2908890532103113308.png" + }, + "65": { + "name": "Windmill Mechanism", + "clear_name": "WindmillMechanism", + "points": [ + { + "id": 18264, + "x_pos": -873, + "y_pos": 1149.5 + }, + { + "id": 2553, + "x_pos": -1404, + "y_pos": 2209.5007424358264 + }, + { + "id": 2552, + "x_pos": -901, + "y_pos": 2106 + }, + { + "id": 2551, + "x_pos": -960, + "y_pos": 729.5007424358259 + }, + { + "id": 2550, + "x_pos": -988, + "y_pos": 811.0001856089566 + }, + { + "id": 2549, + "x_pos": -1259, + "y_pos": 973 + }, + { + "id": 2548, + "x_pos": -1036.5, + "y_pos": 1452.0012992626957 + }, + { + "id": 2547, + "x_pos": -1464.5, + "y_pos": 1747.4985151283477 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/9ff85467bba55ef1f9bb6e456e548716_1411025027764000890.png" + }, + "148": { + "name": "Warming Seelie", + "clear_name": "WarmingSeelie", + "points": [ + { + "id": 18210, + "x_pos": 142, + "y_pos": 1272 + }, + { + "id": 7631, + "x_pos": 547, + "y_pos": 1275 + }, + { + "id": 7628, + "x_pos": 87, + "y_pos": 1702 + }, + { + "id": 7627, + "x_pos": 185.5, + "y_pos": 1364 + }, + { + "id": 7624, + "x_pos": 217.5, + "y_pos": 1404.5 + }, + { + "id": 7621, + "x_pos": 194, + "y_pos": 1286 + }, + { + "id": 7619, + "x_pos": 269, + "y_pos": 1179.5 + }, + { + "id": 7618, + "x_pos": 164.5, + "y_pos": 1301 + }, + { + "id": 7616, + "x_pos": 378, + "y_pos": 1358.5 + }, + { + "id": 7615, + "x_pos": 166, + "y_pos": 1707 + }, + { + "id": 7614, + "x_pos": 190.5, + "y_pos": 1000 + }, + { + "id": 7613, + "x_pos": 237, + "y_pos": 1309.5 + }, + { + "id": 7612, + "x_pos": 314.5, + "y_pos": 960.5 + }, + { + "id": 7611, + "x_pos": -295.5, + "y_pos": 1294.5 + }, + { + "id": 7578, + "x_pos": 206.21285993585843, + "y_pos": 1508.558111400017 + }, + { + "id": 7576, + "x_pos": -206.1137136600264, + "y_pos": 1523.1555435894816 + }, + { + "id": 7324, + "x_pos": 335.5, + "y_pos": 1101.5 + }, + { + "id": 7131, + "x_pos": 198, + "y_pos": 1279.4706638129624 + }, + { + "id": 7124, + "x_pos": 106, + "y_pos": 1188.447989043972 + }, + { + "id": 7122, + "x_pos": -200.69996643066406, + "y_pos": 1159.7091204321268 + }, + { + "id": 7117, + "x_pos": -217.5, + "y_pos": 1184.5087514968222 + }, + { + "id": 7110, + "x_pos": -153.5, + "y_pos": 1133.3882639988537 + }, + { + "id": 7108, + "x_pos": 140.5, + "y_pos": 1384.4832609068462 + }, + { + "id": 7106, + "x_pos": -8, + "y_pos": 1395.9752580472023 + }, + { + "id": 7104, + "x_pos": -70.5, + "y_pos": 1374.4648839698866 + }, + { + "id": 7103, + "x_pos": -255.5, + "y_pos": 1398.9642911654682 + }, + { + "id": 7101, + "x_pos": -131.5, + "y_pos": 1437.9693300030222 + }, + { + "id": 7088, + "x_pos": 552, + "y_pos": 1413.4573257135562 + }, + { + "id": 7085, + "x_pos": 434, + "y_pos": 1424.4789630748155 + }, + { + "id": 7063, + "x_pos": 323, + "y_pos": 1568.4776292648748 + }, + { + "id": 6926, + "x_pos": 32, + "y_pos": 833.4042697181412 + }, + { + "id": 6902, + "x_pos": -172.5, + "y_pos": 986.9601415345423 + }, + { + "id": 6875, + "x_pos": -291, + "y_pos": 982.9533242837347 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/3bdc9f5c3eaff44d225e093839309cb0_2802035982698142962.png" + }, + "197": { + "name": "Naku Weed", + "clear_name": "NakuWeed", + "points": [ + { + "id": 18009, + "x_pos": 3733, + "y_pos": 6615.5 + }, + { + "id": 18008, + "x_pos": 3734.5, + "y_pos": 6620.5 + }, + { + "id": 18007, + "x_pos": 3035, + "y_pos": 6718.5 + }, + { + "id": 18006, + "x_pos": 3038.5, + "y_pos": 6730.5 + }, + { + "id": 18005, + "x_pos": 3076, + "y_pos": 6700 + }, + { + "id": 18004, + "x_pos": 3566, + "y_pos": 7195.5 + }, + { + "id": 17984, + "x_pos": 3422.5, + "y_pos": 6719.5 + }, + { + "id": 17983, + "x_pos": 3416.5, + "y_pos": 6718 + }, + { + "id": 17982, + "x_pos": 3406.5, + "y_pos": 6722.5 + }, + { + "id": 17981, + "x_pos": 3251.5, + "y_pos": 6738 + }, + { + "id": 17980, + "x_pos": 3094.5, + "y_pos": 6697.5 + }, + { + "id": 17979, + "x_pos": 3036, + "y_pos": 6688.5 + }, + { + "id": 17978, + "x_pos": 3091, + "y_pos": 6701.5 + }, + { + "id": 17977, + "x_pos": 3061.5, + "y_pos": 6715 + }, + { + "id": 17976, + "x_pos": 3014.5, + "y_pos": 6701.5 + }, + { + "id": 17975, + "x_pos": 3046, + "y_pos": 6774 + }, + { + "id": 17974, + "x_pos": 3220.5, + "y_pos": 6832.5 + }, + { + "id": 17973, + "x_pos": 3233, + "y_pos": 6835 + }, + { + "id": 17972, + "x_pos": 3363, + "y_pos": 6855.5 + }, + { + "id": 17971, + "x_pos": 3370, + "y_pos": 6871 + }, + { + "id": 17970, + "x_pos": 3618, + "y_pos": 6844.5 + }, + { + "id": 17969, + "x_pos": 3598, + "y_pos": 6833 + }, + { + "id": 17968, + "x_pos": 3640.5, + "y_pos": 6865.5 + }, + { + "id": 17967, + "x_pos": 3609, + "y_pos": 6855.5 + }, + { + "id": 17966, + "x_pos": 3649.5, + "y_pos": 6869 + }, + { + "id": 17965, + "x_pos": 3534, + "y_pos": 7099.5 + }, + { + "id": 17964, + "x_pos": 3988.5, + "y_pos": 7171.5 + }, + { + "id": 17963, + "x_pos": 3977.5, + "y_pos": 7174 + }, + { + "id": 17962, + "x_pos": 3944.5, + "y_pos": 7263 + }, + { + "id": 17961, + "x_pos": 3931, + "y_pos": 7271 + }, + { + "id": 17960, + "x_pos": 3475, + "y_pos": 7198 + }, + { + "id": 17959, + "x_pos": 3480.5, + "y_pos": 7198.5 + }, + { + "id": 17958, + "x_pos": 3521.5, + "y_pos": 7207 + }, + { + "id": 17728, + "x_pos": 3722, + "y_pos": 7042 + }, + { + "id": 16300, + "x_pos": 3486.7173133933757, + "y_pos": 7221.230084639288 + }, + { + "id": 16297, + "x_pos": 3478.22074708282, + "y_pos": 7232.23855701743 + }, + { + "id": 16296, + "x_pos": 3461.727412479975, + "y_pos": 7216.226233558313 + }, + { + "id": 16295, + "x_pos": 3452.7310481511504, + "y_pos": 7215.725848450216 + }, + { + "id": 16294, + "x_pos": 3441.735491749254, + "y_pos": 7223.732010179774 + }, + { + "id": 16293, + "x_pos": 3456.7785207911766, + "y_pos": 7175.296766539823 + }, + { + "id": 16292, + "x_pos": 3457.774481156537, + "y_pos": 7179.516141622611 + }, + { + "id": 16291, + "x_pos": 3538.1965092749815, + "y_pos": 7198.712754774904 + }, + { + "id": 16290, + "x_pos": 3528.7003469278898, + "y_pos": 7201.214680315392 + }, + { + "id": 16289, + "x_pos": 3448.550913724681, + "y_pos": 7196.938653789537 + }, + { + "id": 16288, + "x_pos": 3419.5647894536887, + "y_pos": 7167.432861897534 + }, + { + "id": 16287, + "x_pos": 3386, + "y_pos": 7168.5 + }, + { + "id": 16286, + "x_pos": 3385, + "y_pos": 7178 + }, + { + "id": 16285, + "x_pos": 3363, + "y_pos": 7089.5 + }, + { + "id": 16284, + "x_pos": 3583.326949262373, + "y_pos": 7017.6317627926 + }, + { + "id": 16283, + "x_pos": 3346.5, + "y_pos": 6985 + }, + { + "id": 16282, + "x_pos": 3355, + "y_pos": 6970 + }, + { + "id": 16281, + "x_pos": 3226.096164565656, + "y_pos": 7017.657139374278 + }, + { + "id": 16280, + "x_pos": 3267.902436352644, + "y_pos": 6940.6042831888935 + }, + { + "id": 16279, + "x_pos": 3450.9743557152506, + "y_pos": 6825.519187661095 + }, + { + "id": 16278, + "x_pos": 3242.9629273392675, + "y_pos": 6814.359594982989 + }, + { + "id": 16277, + "x_pos": 3246.5, + "y_pos": 6836.5 + }, + { + "id": 16276, + "x_pos": 3249.4553624994332, + "y_pos": 6824.787883771374 + }, + { + "id": 16275, + "x_pos": 3240.4589981706094, + "y_pos": 6825.788653987569 + }, + { + "id": 16274, + "x_pos": 3230.962835823517, + "y_pos": 6817.782492258011 + }, + { + "id": 16273, + "x_pos": 3082.908690391123, + "y_pos": 6756.003448537571 + }, + { + "id": 16272, + "x_pos": 3073.3069392048856, + "y_pos": 6756.786291737824 + }, + { + "id": 16271, + "x_pos": 3094.6247844988957, + "y_pos": 6771.663030860351 + }, + { + "id": 16270, + "x_pos": 3283.8459355451796, + "y_pos": 6756.481818813923 + }, + { + "id": 16269, + "x_pos": 3274.8949935338114, + "y_pos": 6757.710043747682 + }, + { + "id": 16268, + "x_pos": 3263.493745961521, + "y_pos": 6750.507636326991 + }, + { + "id": 16266, + "x_pos": 3274.8459355451796, + "y_pos": 6731.000689110695 + }, + { + "id": 16265, + "x_pos": 3142.855630668315, + "y_pos": 6614.938301598919 + }, + { + "id": 16263, + "x_pos": 3169.0268473933265, + "y_pos": 6622.291367391188 + }, + { + "id": 16260, + "x_pos": 3260.0014282003476, + "y_pos": 6673.961760275381 + }, + { + "id": 16258, + "x_pos": 3277.0593733851856, + "y_pos": 6659.274453175987 + }, + { + "id": 16256, + "x_pos": 3428.884716037719, + "y_pos": 6693.775319768221 + }, + { + "id": 16254, + "x_pos": 3424.895825032978, + "y_pos": 6664.487595435385 + }, + { + "id": 16252, + "x_pos": 3466.5154190173434, + "y_pos": 6674.631739886787 + }, + { + "id": 16249, + "x_pos": 3456.887341800235, + "y_pos": 6634.968340030515 + }, + { + "id": 16247, + "x_pos": 3713.721965906223, + "y_pos": 6567.340025563855 + }, + { + "id": 15414, + "x_pos": 3699, + "y_pos": 4831.5 + }, + { + "id": 14452, + "x_pos": 1648, + "y_pos": 6345.5 + }, + { + "id": 14451, + "x_pos": 1618, + "y_pos": 6327.5 + }, + { + "id": 14450, + "x_pos": 1356, + "y_pos": 6046.5 + }, + { + "id": 14270, + "x_pos": 3761.5, + "y_pos": 4872 + }, + { + "id": 14269, + "x_pos": 3737, + "y_pos": 4858.5 + }, + { + "id": 13918, + "x_pos": 3349, + "y_pos": 5171 + }, + { + "id": 13917, + "x_pos": 3363, + "y_pos": 5160 + }, + { + "id": 13916, + "x_pos": 3346.5, + "y_pos": 5150.5 + }, + { + "id": 13894, + "x_pos": 1667.5, + "y_pos": 6306.807603890544 + }, + { + "id": 12689, + "x_pos": 1404, + "y_pos": 5994 + }, + { + "id": 12687, + "x_pos": 1370.5, + "y_pos": 6032.5 + }, + { + "id": 12685, + "x_pos": 1510.5, + "y_pos": 5975 + }, + { + "id": 12684, + "x_pos": 1474, + "y_pos": 5989.5 + }, + { + "id": 12681, + "x_pos": 1458.5, + "y_pos": 5999.5 + }, + { + "id": 12680, + "x_pos": 1567, + "y_pos": 5914.5 + }, + { + "id": 12669, + "x_pos": 1562.5, + "y_pos": 5914.5 + }, + { + "id": 12556, + "x_pos": 1584.5, + "y_pos": 6342.493665971706 + }, + { + "id": 12552, + "x_pos": 1618.5, + "y_pos": 6359.5 + }, + { + "id": 12427, + "x_pos": 2349, + "y_pos": 5995 + }, + { + "id": 12423, + "x_pos": 2330, + "y_pos": 6004.5 + }, + { + "id": 12396, + "x_pos": 2332.5, + "y_pos": 6063.5 + }, + { + "id": 12394, + "x_pos": 2326.5, + "y_pos": 6105 + }, + { + "id": 12392, + "x_pos": 2337, + "y_pos": 6130.5 + }, + { + "id": 12389, + "x_pos": 2343.5, + "y_pos": 6120 + }, + { + "id": 12386, + "x_pos": 2423.5, + "y_pos": 6115.5 + }, + { + "id": 12378, + "x_pos": 2482, + "y_pos": 6109.5 + }, + { + "id": 12369, + "x_pos": 2500.5, + "y_pos": 6063 + }, + { + "id": 12365, + "x_pos": 2494, + "y_pos": 5981.5 + }, + { + "id": 12361, + "x_pos": 2419.5, + "y_pos": 5981 + }, + { + "id": 12357, + "x_pos": 2438, + "y_pos": 5983 + }, + { + "id": 12356, + "x_pos": 2446, + "y_pos": 5982 + }, + { + "id": 12353, + "x_pos": 2474, + "y_pos": 5992.5 + }, + { + "id": 12350, + "x_pos": 2487.5, + "y_pos": 5997 + }, + { + "id": 12348, + "x_pos": 2483.5, + "y_pos": 6011.5 + }, + { + "id": 12345, + "x_pos": 2513.5, + "y_pos": 6022.5 + }, + { + "id": 12343, + "x_pos": 2473, + "y_pos": 6011.5 + }, + { + "id": 12339, + "x_pos": 2483, + "y_pos": 6025 + }, + { + "id": 12338, + "x_pos": 2533, + "y_pos": 5956.5 + }, + { + "id": 12331, + "x_pos": 2533, + "y_pos": 6043.5 + }, + { + "id": 12328, + "x_pos": 2525.5, + "y_pos": 5961 + }, + { + "id": 12269, + "x_pos": 2658.5, + "y_pos": 5762 + }, + { + "id": 12262, + "x_pos": 2673.5, + "y_pos": 5769.5 + }, + { + "id": 12259, + "x_pos": 2662.5, + "y_pos": 5775.5 + }, + { + "id": 12162, + "x_pos": 3615.5, + "y_pos": 4847 + }, + { + "id": 12159, + "x_pos": 3616, + "y_pos": 4903 + }, + { + "id": 12157, + "x_pos": 3566.5, + "y_pos": 4853 + }, + { + "id": 12155, + "x_pos": 3691.5, + "y_pos": 4878.5 + }, + { + "id": 12153, + "x_pos": 3680.5, + "y_pos": 4895.5 + }, + { + "id": 12151, + "x_pos": 3645.5, + "y_pos": 4912 + }, + { + "id": 12144, + "x_pos": 3622, + "y_pos": 4925.5 + }, + { + "id": 12142, + "x_pos": 3673.5, + "y_pos": 4933 + }, + { + "id": 12129, + "x_pos": 3654.5, + "y_pos": 4787.5 + }, + { + "id": 12128, + "x_pos": 3640, + "y_pos": 4791 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/9d9f6ce89c821ea9aec34ee05e14489f_6904408485220253083.png" + }, + "33": { + "name": "Small Lamp Grass", + "clear_name": "SmallLampGrass", + "points": [ + { + "id": 18000, + "x_pos": -502, + "y_pos": -1 + }, + { + "id": 17999, + "x_pos": -495.5, + "y_pos": -1.5 + }, + { + "id": 17948, + "x_pos": 421.5, + "y_pos": 551 + }, + { + "id": 17947, + "x_pos": 434.5, + "y_pos": 581 + }, + { + "id": 17945, + "x_pos": 491, + "y_pos": 616.5 + }, + { + "id": 17943, + "x_pos": 929.5, + "y_pos": 50.5 + }, + { + "id": 17942, + "x_pos": 935, + "y_pos": 47.5 + }, + { + "id": 17941, + "x_pos": 943, + "y_pos": 53 + }, + { + "id": 17940, + "x_pos": 936, + "y_pos": 55.5 + }, + { + "id": 17939, + "x_pos": 776.5, + "y_pos": -202 + }, + { + "id": 17936, + "x_pos": -321, + "y_pos": 109.5 + }, + { + "id": 17935, + "x_pos": -276, + "y_pos": 112.5 + }, + { + "id": 17934, + "x_pos": -264.5, + "y_pos": 119.5 + }, + { + "id": 17933, + "x_pos": -198, + "y_pos": 152.5 + }, + { + "id": 17932, + "x_pos": -194.5, + "y_pos": 157 + }, + { + "id": 17929, + "x_pos": -276.5, + "y_pos": 115.5 + }, + { + "id": 17928, + "x_pos": -251, + "y_pos": 224 + }, + { + "id": 17923, + "x_pos": -434.8999786376953, + "y_pos": 17.201767293507146 + }, + { + "id": 17917, + "x_pos": -434.00001525878906, + "y_pos": 7.199394702356585 + }, + { + "id": 17916, + "x_pos": -429.3000183105469, + "y_pos": 12.700063863317155 + }, + { + "id": 17915, + "x_pos": -595.5, + "y_pos": 229.5 + }, + { + "id": 17914, + "x_pos": -588, + "y_pos": 225 + }, + { + "id": 13990, + "x_pos": 346, + "y_pos": -55.5 + }, + { + "id": 13989, + "x_pos": 346, + "y_pos": -51 + }, + { + "id": 13988, + "x_pos": 356, + "y_pos": -40 + }, + { + "id": 13987, + "x_pos": 357, + "y_pos": -38 + }, + { + "id": 13986, + "x_pos": 365, + "y_pos": -35 + }, + { + "id": 13985, + "x_pos": 365.5, + "y_pos": -33.5 + }, + { + "id": 13984, + "x_pos": 414, + "y_pos": -43.5 + }, + { + "id": 13983, + "x_pos": 414.5, + "y_pos": -42 + }, + { + "id": 13981, + "x_pos": 419, + "y_pos": 8.5 + }, + { + "id": 13980, + "x_pos": 421, + "y_pos": 33 + }, + { + "id": 13979, + "x_pos": 419.5, + "y_pos": 34 + }, + { + "id": 12071, + "x_pos": 804.5, + "y_pos": -135.5 + }, + { + "id": 12070, + "x_pos": 797.5, + "y_pos": -133 + }, + { + "id": 12069, + "x_pos": -638, + "y_pos": 756.5 + }, + { + "id": 12068, + "x_pos": -634, + "y_pos": 758.5 + }, + { + "id": 11900, + "x_pos": 813.0714416503906, + "y_pos": 297.7143249511719 + }, + { + "id": 11899, + "x_pos": 823.3473205566406, + "y_pos": 300.8190002441406 + }, + { + "id": 11898, + "x_pos": 815.2377319335938, + "y_pos": 308.52757263183594 + }, + { + "id": 11897, + "x_pos": 782.3006286621094, + "y_pos": 319.5724334716797 + }, + { + "id": 11896, + "x_pos": 796.3006286621094, + "y_pos": 315.5724334716797 + }, + { + "id": 11895, + "x_pos": 802.8006286621094, + "y_pos": 317.5724334716797 + }, + { + "id": 10609, + "x_pos": -386.5, + "y_pos": -137 + }, + { + "id": 8719, + "x_pos": -628.1999816894531, + "y_pos": 446.89862573675236 + }, + { + "id": 8718, + "x_pos": -623.0425039903084, + "y_pos": 447.9097458472793 + }, + { + "id": 8717, + "x_pos": -625.9445745627718, + "y_pos": 450.8718689004759 + }, + { + "id": 7787, + "x_pos": -309.5, + "y_pos": -340.5 + }, + { + "id": 7785, + "x_pos": -302.5, + "y_pos": -334 + }, + { + "id": 322, + "x_pos": -249, + "y_pos": 222.5 + }, + { + "id": 321, + "x_pos": -277, + "y_pos": 213 + }, + { + "id": 320, + "x_pos": -263.5, + "y_pos": 117 + }, + { + "id": 319, + "x_pos": -193.5, + "y_pos": 154.5 + }, + { + "id": 318, + "x_pos": -321.5, + "y_pos": 106 + }, + { + "id": 317, + "x_pos": 479, + "y_pos": 598.5 + }, + { + "id": 316, + "x_pos": 461.5, + "y_pos": 665.5 + }, + { + "id": 315, + "x_pos": 400.5, + "y_pos": 539 + }, + { + "id": 314, + "x_pos": 433, + "y_pos": 539 + }, + { + "id": 313, + "x_pos": 518.5, + "y_pos": 610 + }, + { + "id": 312, + "x_pos": 469.5, + "y_pos": 666 + }, + { + "id": 311, + "x_pos": -306, + "y_pos": -335.833835997669 + }, + { + "id": 310, + "x_pos": -872, + "y_pos": -525.2933264891999 + }, + { + "id": 309, + "x_pos": -803.5, + "y_pos": -581.7678205023863 + }, + { + "id": 308, + "x_pos": 939.5, + "y_pos": 50.5 + }, + { + "id": 307, + "x_pos": 351.5, + "y_pos": -75 + }, + { + "id": 306, + "x_pos": 349.5, + "y_pos": -75 + }, + { + "id": 305, + "x_pos": 363, + "y_pos": -44.5 + }, + { + "id": 304, + "x_pos": 414.5, + "y_pos": -44 + }, + { + "id": 303, + "x_pos": 421.5, + "y_pos": 8 + }, + { + "id": 302, + "x_pos": 424, + "y_pos": 34 + }, + { + "id": 301, + "x_pos": -432.90000915527344, + "y_pos": 17.350860750912034 + }, + { + "id": 300, + "x_pos": -500, + "y_pos": -3.4820034148551713 + }, + { + "id": 299, + "x_pos": -588.5, + "y_pos": 221 + }, + { + "id": 298, + "x_pos": -629.5, + "y_pos": 450.5 + }, + { + "id": 297, + "x_pos": -633.4542404707872, + "y_pos": 754.8148556017491 + }, + { + "id": 296, + "x_pos": 797.5, + "y_pos": -136 + }, + { + "id": 295, + "x_pos": 780.5, + "y_pos": -199 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/b043bdf1fa278c1133382946facd4bfd_1109548125966368267.png" + }, + "227": { + "name": "Sango Pearl", + "clear_name": "SangoPearl", + "points": [ + { + "id": 17957, + "x_pos": 201.5, + "y_pos": 6236.5 + }, + { + "id": 16023, + "x_pos": 40, + "y_pos": 5940.5 + }, + { + "id": 16021, + "x_pos": 34, + "y_pos": 5945 + }, + { + "id": 16019, + "x_pos": 28.5, + "y_pos": 5949.5 + }, + { + "id": 16017, + "x_pos": 20.5, + "y_pos": 5977.5 + }, + { + "id": 16015, + "x_pos": 15, + "y_pos": 5977.5 + }, + { + "id": 16013, + "x_pos": 24, + "y_pos": 5995.5 + }, + { + "id": 16011, + "x_pos": 37, + "y_pos": 6022 + }, + { + "id": 16009, + "x_pos": 20, + "y_pos": 6022 + }, + { + "id": 16008, + "x_pos": 28, + "y_pos": 6022.5 + }, + { + "id": 16007, + "x_pos": 31.5, + "y_pos": 6024.5 + }, + { + "id": 16006, + "x_pos": 24, + "y_pos": 6025 + }, + { + "id": 16004, + "x_pos": 32, + "y_pos": 6041 + }, + { + "id": 16003, + "x_pos": 129.5, + "y_pos": 6078 + }, + { + "id": 16001, + "x_pos": 124.5, + "y_pos": 6078 + }, + { + "id": 16000, + "x_pos": 369, + "y_pos": 6144 + }, + { + "id": 15998, + "x_pos": 361, + "y_pos": 6145.5 + }, + { + "id": 15997, + "x_pos": 362, + "y_pos": 6154 + }, + { + "id": 15995, + "x_pos": 368, + "y_pos": 6153.5 + }, + { + "id": 15994, + "x_pos": 329, + "y_pos": 6148.5 + }, + { + "id": 15993, + "x_pos": 98.5, + "y_pos": 6214 + }, + { + "id": 15992, + "x_pos": 91, + "y_pos": 6215.5 + }, + { + "id": 15990, + "x_pos": 66.5, + "y_pos": 6215.5 + }, + { + "id": 15988, + "x_pos": 117.5, + "y_pos": 6100 + }, + { + "id": 15976, + "x_pos": 338, + "y_pos": 6154 + }, + { + "id": 15974, + "x_pos": 88, + "y_pos": 6192 + }, + { + "id": 15967, + "x_pos": 94, + "y_pos": 6189.5 + }, + { + "id": 15965, + "x_pos": 200.5, + "y_pos": 6210 + }, + { + "id": 15956, + "x_pos": 206, + "y_pos": 6222 + }, + { + "id": 15954, + "x_pos": 212, + "y_pos": 6228.5 + }, + { + "id": 15948, + "x_pos": 194.5, + "y_pos": 6157 + }, + { + "id": 15946, + "x_pos": 204, + "y_pos": 6228.5 + }, + { + "id": 15943, + "x_pos": 193, + "y_pos": 6167 + }, + { + "id": 15941, + "x_pos": 239.5, + "y_pos": 6171 + }, + { + "id": 15939, + "x_pos": 246.5, + "y_pos": 6171 + }, + { + "id": 15935, + "x_pos": 326, + "y_pos": 6130.5 + }, + { + "id": 15934, + "x_pos": 325, + "y_pos": 6124 + }, + { + "id": 15933, + "x_pos": 409.5, + "y_pos": 5900 + }, + { + "id": 15932, + "x_pos": 405.5, + "y_pos": 5903.5 + }, + { + "id": 15931, + "x_pos": 399, + "y_pos": 5874 + }, + { + "id": 15930, + "x_pos": 433.5, + "y_pos": 5870.5 + }, + { + "id": 15929, + "x_pos": 427, + "y_pos": 5866 + }, + { + "id": 15906, + "x_pos": 15, + "y_pos": 6204 + }, + { + "id": 15903, + "x_pos": 19, + "y_pos": 6211 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/58ff5b695da772c331b7273998e531fc_692372653778779380.png" + }, + "31": { + "name": "Calla Lily", + "clear_name": "CallaLily", + "points": [ + { + "id": 17955, + "x_pos": 157, + "y_pos": 481.5 + }, + { + "id": 17954, + "x_pos": 146.5, + "y_pos": 502.5 + }, + { + "id": 17953, + "x_pos": 143.5, + "y_pos": 501 + }, + { + "id": 17952, + "x_pos": 147, + "y_pos": 500 + }, + { + "id": 17951, + "x_pos": 148.5, + "y_pos": 536.5 + }, + { + "id": 17950, + "x_pos": 187.5, + "y_pos": 557.5 + }, + { + "id": 17949, + "x_pos": 172, + "y_pos": 568 + }, + { + "id": 17938, + "x_pos": 564.5, + "y_pos": -212 + }, + { + "id": 17937, + "x_pos": 403, + "y_pos": -21.5 + }, + { + "id": 17931, + "x_pos": -266.5, + "y_pos": 166 + }, + { + "id": 17930, + "x_pos": -269, + "y_pos": 168.5 + }, + { + "id": 15663, + "x_pos": -546.6000061035156, + "y_pos": 477.70001220703125 + }, + { + "id": 13982, + "x_pos": 403, + "y_pos": -12.5 + }, + { + "id": 10842, + "x_pos": 708.8565892023153, + "y_pos": 39.88180291193203 + }, + { + "id": 5098, + "x_pos": 476.5, + "y_pos": -353 + }, + { + "id": 5097, + "x_pos": 842, + "y_pos": -259 + }, + { + "id": 5096, + "x_pos": 628, + "y_pos": -138 + }, + { + "id": 5095, + "x_pos": 712, + "y_pos": 38 + }, + { + "id": 5094, + "x_pos": 407, + "y_pos": -21 + }, + { + "id": 5092, + "x_pos": 191, + "y_pos": 557 + }, + { + "id": 5091, + "x_pos": 160.5, + "y_pos": 481 + }, + { + "id": 5090, + "x_pos": -207.5, + "y_pos": -281.5 + }, + { + "id": 5089, + "x_pos": -213.5, + "y_pos": -279.5 + }, + { + "id": 5088, + "x_pos": -191, + "y_pos": 338.5 + }, + { + "id": 5087, + "x_pos": -269.5, + "y_pos": 166 + }, + { + "id": 1599, + "x_pos": -492.9994279290736, + "y_pos": 741.9994675490912 + }, + { + "id": 1583, + "x_pos": -195, + "y_pos": -355.67254813987574 + }, + { + "id": 1568, + "x_pos": -1376.5, + "y_pos": -428.5 + }, + { + "id": 1460, + "x_pos": -465.49971396453657, + "y_pos": 730.5050582836338 + }, + { + "id": 1454, + "x_pos": -351, + "y_pos": 695 + }, + { + "id": 1419, + "x_pos": -403, + "y_pos": 669.5 + }, + { + "id": 1409, + "x_pos": 169, + "y_pos": 567.5 + }, + { + "id": 1007, + "x_pos": 149, + "y_pos": 534.5 + }, + { + "id": 997, + "x_pos": 146, + "y_pos": 498 + }, + { + "id": 984, + "x_pos": 186, + "y_pos": 501 + }, + { + "id": 982, + "x_pos": 152, + "y_pos": 485.5 + }, + { + "id": 975, + "x_pos": 721, + "y_pos": 30 + }, + { + "id": 972, + "x_pos": 131, + "y_pos": 541 + }, + { + "id": 964, + "x_pos": 634.5, + "y_pos": -140.5 + }, + { + "id": 946, + "x_pos": 560.5, + "y_pos": -213.5 + }, + { + "id": 944, + "x_pos": -273, + "y_pos": 165.5 + }, + { + "id": 916, + "x_pos": -191, + "y_pos": 345 + }, + { + "id": 846, + "x_pos": 837.5, + "y_pos": -263.5 + }, + { + "id": 774, + "x_pos": -885, + "y_pos": -556.8428381106619 + }, + { + "id": 758, + "x_pos": -854.5, + "y_pos": -594.7603187415586 + }, + { + "id": 721, + "x_pos": -798, + "y_pos": -537.7040555353517 + }, + { + "id": 607, + "x_pos": -552.199951171875, + "y_pos": 477.2000274658203 + }, + { + "id": 466, + "x_pos": 797.5, + "y_pos": 951 + }, + { + "id": 462, + "x_pos": 718, + "y_pos": 1074.5 + }, + { + "id": 457, + "x_pos": 745.5, + "y_pos": 1069.5 + }, + { + "id": 439, + "x_pos": 789.5, + "y_pos": 942 + }, + { + "id": 432, + "x_pos": 813.5, + "y_pos": 918 + }, + { + "id": 430, + "x_pos": 820.5, + "y_pos": 921.5 + }, + { + "id": 358, + "x_pos": 715.5, + "y_pos": 1068 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/a6f1bd260353cd0dd05fc579ba7629c9_3072127796732483493.png" + }, + "43": { + "name": "Windwheel Aster", + "clear_name": "WindwheelAster", + "points": [ + { + "id": 17946, + "x_pos": 500.5, + "y_pos": 390 + }, + { + "id": 17944, + "x_pos": 505.5, + "y_pos": 391.5 + }, + { + "id": 17913, + "x_pos": -1089.5, + "y_pos": -222.5 + }, + { + "id": 17912, + "x_pos": -1083.5, + "y_pos": -223.5 + }, + { + "id": 11061, + "x_pos": -164.5, + "y_pos": 451 + }, + { + "id": 11060, + "x_pos": -163, + "y_pos": 451.5 + }, + { + "id": 11059, + "x_pos": -199, + "y_pos": 453 + }, + { + "id": 11058, + "x_pos": -199, + "y_pos": 451.5 + }, + { + "id": 11057, + "x_pos": -183, + "y_pos": 479 + }, + { + "id": 11056, + "x_pos": -183.5, + "y_pos": 480 + }, + { + "id": 11055, + "x_pos": -186.5, + "y_pos": 477 + }, + { + "id": 10169, + "x_pos": 567, + "y_pos": -273.5 + }, + { + "id": 10168, + "x_pos": 564, + "y_pos": -271.5 + }, + { + "id": 7814, + "x_pos": -1172, + "y_pos": -302 + }, + { + "id": 7813, + "x_pos": -1171, + "y_pos": -296 + }, + { + "id": 7812, + "x_pos": -1170, + "y_pos": -289.5 + }, + { + "id": 7811, + "x_pos": -1032.5, + "y_pos": -289 + }, + { + "id": 7810, + "x_pos": -1117, + "y_pos": -456 + }, + { + "id": 7809, + "x_pos": -1112.5, + "y_pos": -452 + }, + { + "id": 7808, + "x_pos": -903.5, + "y_pos": -623.5 + }, + { + "id": 7807, + "x_pos": -941.5, + "y_pos": -573 + }, + { + "id": 7806, + "x_pos": -936, + "y_pos": -569 + }, + { + "id": 7805, + "x_pos": -842, + "y_pos": -522.5 + }, + { + "id": 7804, + "x_pos": -720.5, + "y_pos": -481 + }, + { + "id": 7803, + "x_pos": -729.5, + "y_pos": -479.5 + }, + { + "id": 7802, + "x_pos": -1008.5, + "y_pos": -212 + }, + { + "id": 7801, + "x_pos": -702, + "y_pos": -212 + }, + { + "id": 7800, + "x_pos": -1019.5, + "y_pos": -158.5 + }, + { + "id": 7799, + "x_pos": -831.5, + "y_pos": -228.5 + }, + { + "id": 7798, + "x_pos": -835.5, + "y_pos": -229.5 + }, + { + "id": 7797, + "x_pos": -703, + "y_pos": -208.5 + }, + { + "id": 7796, + "x_pos": -833, + "y_pos": -223 + }, + { + "id": 7795, + "x_pos": -711, + "y_pos": -206.5 + }, + { + "id": 7794, + "x_pos": -939.5, + "y_pos": -564.5 + }, + { + "id": 7793, + "x_pos": -1025, + "y_pos": -154 + }, + { + "id": 7792, + "x_pos": -914, + "y_pos": -613.5 + }, + { + "id": 7791, + "x_pos": -837, + "y_pos": -521.5 + }, + { + "id": 7790, + "x_pos": -834.5, + "y_pos": -516.5 + }, + { + "id": 7789, + "x_pos": -1026, + "y_pos": -289.5 + }, + { + "id": 7788, + "x_pos": -1124, + "y_pos": -461 + }, + { + "id": 7786, + "x_pos": -735.5, + "y_pos": -480.5 + }, + { + "id": 1650, + "x_pos": 694.5, + "y_pos": 528.5 + }, + { + "id": 1610, + "x_pos": -1037.5, + "y_pos": -166.7288113460827 + }, + { + "id": 1608, + "x_pos": -1011.5, + "y_pos": -216.08927859468963 + }, + { + "id": 1604, + "x_pos": -1083.5, + "y_pos": -217.84058758241372 + }, + { + "id": 1588, + "x_pos": -709, + "y_pos": -211.88034691479993 + }, + { + "id": 1557, + "x_pos": 601, + "y_pos": 380 + }, + { + "id": 1553, + "x_pos": 534.5, + "y_pos": 446.5 + }, + { + "id": 1552, + "x_pos": 597, + "y_pos": 379 + }, + { + "id": 1544, + "x_pos": 700.5, + "y_pos": 529 + }, + { + "id": 1543, + "x_pos": 524, + "y_pos": 447.5 + }, + { + "id": 1542, + "x_pos": 673, + "y_pos": 425 + }, + { + "id": 1534, + "x_pos": -172, + "y_pos": 476.5 + }, + { + "id": 1349, + "x_pos": -1165.5, + "y_pos": -293.39685078862067 + }, + { + "id": 1327, + "x_pos": 507, + "y_pos": 373 + }, + { + "id": 1291, + "x_pos": 525.5, + "y_pos": 451 + }, + { + "id": 1151, + "x_pos": -1029, + "y_pos": -294.33458617375163 + }, + { + "id": 1150, + "x_pos": 490, + "y_pos": 340 + }, + { + "id": 1135, + "x_pos": 587.5, + "y_pos": 345 + }, + { + "id": 1123, + "x_pos": -1121.5, + "y_pos": -454.06602313612393 + }, + { + "id": 1106, + "x_pos": -1026, + "y_pos": -159.81808229993112 + }, + { + "id": 1083, + "x_pos": 510.5, + "y_pos": 375.5 + }, + { + "id": 1080, + "x_pos": 672, + "y_pos": 429 + }, + { + "id": 1078, + "x_pos": 597.5, + "y_pos": 382.5 + }, + { + "id": 1076, + "x_pos": 696, + "y_pos": 531.5 + }, + { + "id": 1070, + "x_pos": 648.5, + "y_pos": 572.5 + }, + { + "id": 1045, + "x_pos": 495.5, + "y_pos": 340.5 + }, + { + "id": 1024, + "x_pos": 531.5, + "y_pos": 453.5 + }, + { + "id": 981, + "x_pos": -936.5, + "y_pos": -573.1537937378068 + }, + { + "id": 928, + "x_pos": -163, + "y_pos": 446 + }, + { + "id": 816, + "x_pos": -910, + "y_pos": -617.9478627622482 + }, + { + "id": 731, + "x_pos": -837, + "y_pos": -524.8555911040689 + }, + { + "id": 648, + "x_pos": -726, + "y_pos": -479.1226537895311 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/33cbf21075c22bc4cb77a4f9538721cd_7036897896353552957.png" + }, + "41": { + "name": "Wolfhook", + "clear_name": "Wolfhook", + "points": [ + { + "id": 17927, + "x_pos": -380.5, + "y_pos": 258 + }, + { + "id": 17926, + "x_pos": -368.5, + "y_pos": 257.5 + }, + { + "id": 17925, + "x_pos": -377, + "y_pos": 261.5 + }, + { + "id": 17924, + "x_pos": -362.5, + "y_pos": 274 + }, + { + "id": 17922, + "x_pos": -395, + "y_pos": 275.5 + }, + { + "id": 17921, + "x_pos": -351.5, + "y_pos": 278 + }, + { + "id": 17920, + "x_pos": -415.5, + "y_pos": 277 + }, + { + "id": 17919, + "x_pos": -411, + "y_pos": 280.5 + }, + { + "id": 17918, + "x_pos": -358.5, + "y_pos": 277.5 + }, + { + "id": 11275, + "x_pos": -390.5, + "y_pos": 297.5 + }, + { + "id": 11274, + "x_pos": -530.5, + "y_pos": 370.5 + }, + { + "id": 11273, + "x_pos": -473, + "y_pos": 387.5 + }, + { + "id": 10608, + "x_pos": -324, + "y_pos": 179.5 + }, + { + "id": 10607, + "x_pos": -318.5, + "y_pos": 183.5 + }, + { + "id": 10606, + "x_pos": -419, + "y_pos": 282.5 + }, + { + "id": 10605, + "x_pos": -402, + "y_pos": 295.5 + }, + { + "id": 10604, + "x_pos": -419.5, + "y_pos": 321.5 + }, + { + "id": 10603, + "x_pos": -373, + "y_pos": 334.5 + }, + { + "id": 10602, + "x_pos": -520, + "y_pos": 390.5 + }, + { + "id": 935, + "x_pos": -319.5, + "y_pos": 156.5 + }, + { + "id": 922, + "x_pos": -356.5, + "y_pos": 255.5 + }, + { + "id": 684, + "x_pos": -381, + "y_pos": 261.5 + }, + { + "id": 631, + "x_pos": -391.5, + "y_pos": 275 + }, + { + "id": 630, + "x_pos": -536, + "y_pos": 362 + }, + { + "id": 597, + "x_pos": -357.5, + "y_pos": 307 + }, + { + "id": 553, + "x_pos": -497.5, + "y_pos": 388 + }, + { + "id": 542, + "x_pos": -356, + "y_pos": 272.5 + }, + { + "id": 540, + "x_pos": -384, + "y_pos": 302 + }, + { + "id": 538, + "x_pos": -481, + "y_pos": 381 + }, + { + "id": 529, + "x_pos": -536, + "y_pos": 369.5 + }, + { + "id": 380, + "x_pos": -328, + "y_pos": 286.5 + }, + { + "id": 377, + "x_pos": -348.5, + "y_pos": 235.5 + }, + { + "id": 376, + "x_pos": -281.5, + "y_pos": 270 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/3a5384ac4251c193f642af367235dd86_6745549244100568777.png" + }, + "139": { + "name": "Starsilver", + "clear_name": "Starsilver", + "points": [ + { + "id": 17806, + "x_pos": 437.5, + "y_pos": 1758.5 + }, + { + "id": 17805, + "x_pos": 407.5, + "y_pos": 1754.5 + }, + { + "id": 17765, + "x_pos": 506.5, + "y_pos": 1228 + }, + { + "id": 17764, + "x_pos": 511, + "y_pos": 1227 + }, + { + "id": 17763, + "x_pos": 506.5, + "y_pos": 1222.5 + }, + { + "id": 17762, + "x_pos": 508.5, + "y_pos": 1224.5 + }, + { + "id": 17761, + "x_pos": 509, + "y_pos": 1229.5 + }, + { + "id": 17760, + "x_pos": 139, + "y_pos": 1179 + }, + { + "id": 17759, + "x_pos": 394, + "y_pos": 1646.5 + }, + { + "id": 17758, + "x_pos": 362.5, + "y_pos": 1653.5 + }, + { + "id": 17757, + "x_pos": -224.5, + "y_pos": 1539 + }, + { + "id": 11048, + "x_pos": -123.5, + "y_pos": 1236 + }, + { + "id": 11047, + "x_pos": -126.5, + "y_pos": 1234 + }, + { + "id": 11046, + "x_pos": -126, + "y_pos": 1249.5 + }, + { + "id": 11045, + "x_pos": -127.5, + "y_pos": 1250.5 + }, + { + "id": 11044, + "x_pos": -128, + "y_pos": 1256 + }, + { + "id": 11043, + "x_pos": -128, + "y_pos": 1259 + }, + { + "id": 11042, + "x_pos": -168, + "y_pos": 1317 + }, + { + "id": 11041, + "x_pos": -162, + "y_pos": 1316.5 + }, + { + "id": 11040, + "x_pos": 486, + "y_pos": 1743.5 + }, + { + "id": 11039, + "x_pos": 491.5, + "y_pos": 1745.5 + }, + { + "id": 11038, + "x_pos": 493.5, + "y_pos": 1745.5 + }, + { + "id": 11037, + "x_pos": 479.5, + "y_pos": 1749.5 + }, + { + "id": 11036, + "x_pos": 489.5, + "y_pos": 1759.5 + }, + { + "id": 11035, + "x_pos": 486, + "y_pos": 1759.5 + }, + { + "id": 10934, + "x_pos": 407.5, + "y_pos": 1638.5 + }, + { + "id": 7609, + "x_pos": 431.5, + "y_pos": 1379 + }, + { + "id": 7608, + "x_pos": 440, + "y_pos": 1377 + }, + { + "id": 7607, + "x_pos": 434, + "y_pos": 1388.5 + }, + { + "id": 7606, + "x_pos": 446.5, + "y_pos": 1383 + }, + { + "id": 7605, + "x_pos": 143.5, + "y_pos": 1190.5 + }, + { + "id": 7604, + "x_pos": 149.5, + "y_pos": 1182.5 + }, + { + "id": 7603, + "x_pos": 440.5, + "y_pos": 1385.5 + }, + { + "id": 7460, + "x_pos": -307, + "y_pos": 989.5 + }, + { + "id": 7459, + "x_pos": -311.5, + "y_pos": 996.5 + }, + { + "id": 7398, + "x_pos": -302, + "y_pos": 996.5 + }, + { + "id": 7397, + "x_pos": -314.5, + "y_pos": 1000.5 + }, + { + "id": 7396, + "x_pos": -305.5, + "y_pos": 998 + }, + { + "id": 7363, + "x_pos": -237.5, + "y_pos": 1181 + }, + { + "id": 7362, + "x_pos": 25, + "y_pos": 876.5 + }, + { + "id": 7361, + "x_pos": -276.5, + "y_pos": 1154.5 + }, + { + "id": 7359, + "x_pos": 19.5, + "y_pos": 879.5 + }, + { + "id": 7357, + "x_pos": -272.5, + "y_pos": 1158 + }, + { + "id": 7354, + "x_pos": 366.5, + "y_pos": 1604 + }, + { + "id": 7353, + "x_pos": -250, + "y_pos": 1173 + }, + { + "id": 7352, + "x_pos": -282, + "y_pos": 1158.5 + }, + { + "id": 7350, + "x_pos": 11.5, + "y_pos": 884.5 + }, + { + "id": 7345, + "x_pos": 16.5, + "y_pos": 894 + }, + { + "id": 7298, + "x_pos": -237.5, + "y_pos": 1537 + }, + { + "id": 7285, + "x_pos": -108, + "y_pos": 917.5 + }, + { + "id": 7284, + "x_pos": -115, + "y_pos": 917.5 + }, + { + "id": 7283, + "x_pos": -110.5, + "y_pos": 924 + }, + { + "id": 7279, + "x_pos": 8, + "y_pos": 885 + }, + { + "id": 7241, + "x_pos": 217.5, + "y_pos": 1687 + }, + { + "id": 7240, + "x_pos": 215.5, + "y_pos": 1683 + }, + { + "id": 7239, + "x_pos": 220, + "y_pos": 1688 + }, + { + "id": 7238, + "x_pos": 70, + "y_pos": 1690 + }, + { + "id": 7237, + "x_pos": 65, + "y_pos": 1693.5 + }, + { + "id": 7235, + "x_pos": 423.5, + "y_pos": 1055 + }, + { + "id": 7234, + "x_pos": 421, + "y_pos": 1061 + }, + { + "id": 7233, + "x_pos": 434, + "y_pos": 1063 + }, + { + "id": 7232, + "x_pos": 429.5, + "y_pos": 1063.5 + }, + { + "id": 7231, + "x_pos": 282.5, + "y_pos": 941.5 + }, + { + "id": 7230, + "x_pos": 417.5, + "y_pos": 1062.5 + }, + { + "id": 7229, + "x_pos": 177.5, + "y_pos": 972.5 + }, + { + "id": 7228, + "x_pos": 173, + "y_pos": 973.5 + }, + { + "id": 6836, + "x_pos": 183.5, + "y_pos": 971 + }, + { + "id": 6797, + "x_pos": -170, + "y_pos": 1323 + }, + { + "id": 6714, + "x_pos": 360, + "y_pos": 1603.5 + }, + { + "id": 6697, + "x_pos": -225.5, + "y_pos": 1531.5 + }, + { + "id": 6694, + "x_pos": -158, + "y_pos": 1318 + }, + { + "id": 6689, + "x_pos": -236, + "y_pos": 1532 + }, + { + "id": 6688, + "x_pos": 272.5, + "y_pos": 907 + }, + { + "id": 6680, + "x_pos": 272, + "y_pos": 909.5 + }, + { + "id": 6678, + "x_pos": 267, + "y_pos": 909.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/a2c6221dbea855dd7f2cc24679d59dae_7730903243870175587.png" + }, + "62": { + "name": "Flaming Flower Stamen", + "clear_name": "FlamingFlowerStamen", + "points": [ + { + "id": 17712, + "x_pos": 389.1000061035156, + "y_pos": 6410.899993896484 + }, + { + "id": 15780, + "x_pos": 1706, + "y_pos": 6102.5 + }, + { + "id": 15106, + "x_pos": 1345.5, + "y_pos": 6185 + }, + { + "id": 13571, + "x_pos": 1355.5, + "y_pos": 6176.5 + }, + { + "id": 13570, + "x_pos": 1361.5, + "y_pos": 6178.5 + }, + { + "id": 11781, + "x_pos": -1235.5, + "y_pos": 1125 + }, + { + "id": 10960, + "x_pos": 136.5, + "y_pos": 2419.5 + }, + { + "id": 10844, + "x_pos": -302.5, + "y_pos": 214 + }, + { + "id": 10843, + "x_pos": -924, + "y_pos": 760.5 + }, + { + "id": 10388, + "x_pos": -1361.5, + "y_pos": 1539.5 + }, + { + "id": 10058, + "x_pos": 650, + "y_pos": 1120.5 + }, + { + "id": 9307, + "x_pos": -2357, + "y_pos": 1922 + }, + { + "id": 9306, + "x_pos": -2344, + "y_pos": 1937 + }, + { + "id": 5341, + "x_pos": -1640.5, + "y_pos": 2550.5 + }, + { + "id": 5340, + "x_pos": -1641.5, + "y_pos": 2554.5 + }, + { + "id": 5337, + "x_pos": -1634.5, + "y_pos": 2554.5 + }, + { + "id": 4946, + "x_pos": -559.9293998626094, + "y_pos": 1310.3888854980469 + }, + { + "id": 4452, + "x_pos": -702.9127962729863, + "y_pos": 264.3888854980469 + }, + { + "id": 4237, + "x_pos": -686.9042851892295, + "y_pos": 141.38888549804688 + }, + { + "id": 3622, + "x_pos": -224.44879397149725, + "y_pos": 494.8888854980469 + }, + { + "id": 3621, + "x_pos": -214.94614297819635, + "y_pos": 512.8888854980469 + }, + { + "id": 3620, + "x_pos": -208.44684060801228, + "y_pos": 499.8888854980469 + }, + { + "id": 3619, + "x_pos": -1685.4702809698338, + "y_pos": 1856.8888854980469 + }, + { + "id": 3618, + "x_pos": -1698.9443291406744, + "y_pos": 1982.3888854980469 + }, + { + "id": 3617, + "x_pos": -1573.417679681699, + "y_pos": 1974.8888854980469 + }, + { + "id": 3616, + "x_pos": -1547.5104644472417, + "y_pos": 1872.8888854980469 + }, + { + "id": 3495, + "x_pos": 861.604644472417, + "y_pos": 707.8888854980469 + }, + { + "id": 3493, + "x_pos": 867.5805064807791, + "y_pos": 708.3888854980469 + }, + { + "id": 3441, + "x_pos": -1704.975443430473, + "y_pos": 2227.888885498047 + }, + { + "id": 3440, + "x_pos": -1016.9342832713223, + "y_pos": 1644.8888854980469 + }, + { + "id": 3439, + "x_pos": -1564.4367947386604, + "y_pos": 2303.388885498047 + }, + { + "id": 3438, + "x_pos": -918.3907511707971, + "y_pos": 1649.3888854980469 + }, + { + "id": 3436, + "x_pos": -1486.9621884639669, + "y_pos": 2410.388885498047 + }, + { + "id": 3434, + "x_pos": -1972.438469050219, + "y_pos": 1448.8888854980469 + }, + { + "id": 3429, + "x_pos": -2083.9324694338, + "y_pos": 3081.388885498047 + }, + { + "id": 3427, + "x_pos": -1966.4367947386604, + "y_pos": 1447.8888854980469 + }, + { + "id": 3425, + "x_pos": -2084.9327484857267, + "y_pos": 3090.888885498047 + }, + { + "id": 3422, + "x_pos": -1154.9347018492122, + "y_pos": 713.3888854980469 + }, + { + "id": 3420, + "x_pos": -2092.955630743695, + "y_pos": 3090.388885498047 + }, + { + "id": 3418, + "x_pos": -1151.9338646934325, + "y_pos": 714.8888854980469 + }, + { + "id": 3417, + "x_pos": -813.4093081239057, + "y_pos": 2466.388885498047 + }, + { + "id": 3414, + "x_pos": -663.9471196599388, + "y_pos": 791.3888854980469 + }, + { + "id": 3413, + "x_pos": -1980.8299178508323, + "y_pos": 1123.3888854980469 + }, + { + "id": 3412, + "x_pos": -1975.9423757771892, + "y_pos": 1446.8888854980469 + }, + { + "id": 3411, + "x_pos": -1949.4501892311298, + "y_pos": 1354.8888854980469 + }, + { + "id": 3409, + "x_pos": -822.4169820518828, + "y_pos": 872.3888854980469 + }, + { + "id": 3406, + "x_pos": -1811.4574445812173, + "y_pos": 1523.8888854980469 + }, + { + "id": 3405, + "x_pos": -1852.4228421423381, + "y_pos": 1549.3888854980469 + }, + { + "id": 3403, + "x_pos": -1241.9760015343259, + "y_pos": 1683.8888854980469 + }, + { + "id": 3401, + "x_pos": -582.4194935192209, + "y_pos": 806.8888854980469 + }, + { + "id": 3399, + "x_pos": -1159.4693042880913, + "y_pos": 712.8888854980469 + }, + { + "id": 3397, + "x_pos": -1974.9107033835378, + "y_pos": 1123.8888854980469 + }, + { + "id": 3396, + "x_pos": -787.3500095895361, + "y_pos": 565.8888854980469 + }, + { + "id": 3394, + "x_pos": -606.4423757771892, + "y_pos": 843.8888854980469 + }, + { + "id": 3393, + "x_pos": -738.3908906967604, + "y_pos": 697.8888854980469 + }, + { + "id": 3390, + "x_pos": -845.9247955058236, + "y_pos": 915.3888854980469 + }, + { + "id": 3388, + "x_pos": -1009.9764201122157, + "y_pos": 723.8888854980469 + }, + { + "id": 3385, + "x_pos": -935.0079529799036, + "y_pos": 734.3888854980469 + }, + { + "id": 3383, + "x_pos": -714.4134939028022, + "y_pos": 634.8888854980469 + }, + { + "id": 3381, + "x_pos": -1086.9476777637915, + "y_pos": -578.6111145019531 + }, + { + "id": 3378, + "x_pos": -611.9168425259195, + "y_pos": 657.3888854980469 + }, + { + "id": 3375, + "x_pos": -1028.9722343333187, + "y_pos": -431.6111145019531 + }, + { + "id": 3374, + "x_pos": -1069.9616303601138, + "y_pos": -326.6111145019531 + }, + { + "id": 3372, + "x_pos": -1064.9443291406742, + "y_pos": -316.6111145019531 + }, + { + "id": 3371, + "x_pos": -923.8940997939144, + "y_pos": -528.1111145019531 + }, + { + "id": 3369, + "x_pos": -673.9134939028022, + "y_pos": 542.3888854980469 + }, + { + "id": 3366, + "x_pos": -1169.960514152408, + "y_pos": -100.11111450195312 + }, + { + "id": 3364, + "x_pos": -1045.437771420403, + "y_pos": -267.6111145019531 + }, + { + "id": 3361, + "x_pos": -1049.4394457319618, + "y_pos": -127.61111450195312 + }, + { + "id": 3359, + "x_pos": -989.9102848056482, + "y_pos": -129.11111450195312 + }, + { + "id": 3357, + "x_pos": 796.6977082898857, + "y_pos": -427.6111145019531 + }, + { + "id": 3356, + "x_pos": -684.4391666800352, + "y_pos": -234.11111450195312 + }, + { + "id": 3355, + "x_pos": -611.9193539932576, + "y_pos": -355.6111145019531 + }, + { + "id": 3354, + "x_pos": -688.9239583500439, + "y_pos": -10.111114501953125 + }, + { + "id": 3353, + "x_pos": -2135.99176796817, + "y_pos": 1545.3888854980469 + }, + { + "id": 3352, + "x_pos": -1295.9513054388353, + "y_pos": 1751.3888854980469 + }, + { + "id": 3351, + "x_pos": -1373.425214083713, + "y_pos": 1843.8888854980469 + }, + { + "id": 3350, + "x_pos": -2287.463583723599, + "y_pos": 1510.8888854980469 + }, + { + "id": 3349, + "x_pos": -2238.454793587916, + "y_pos": 1463.3888854980469 + }, + { + "id": 3348, + "x_pos": -2093.867171283013, + "y_pos": 1576.8888854980469 + }, + { + "id": 3347, + "x_pos": -1932.9436315108583, + "y_pos": 1686.3888854980469 + }, + { + "id": 3346, + "x_pos": -1875.5259518291593, + "y_pos": 2126.888885498047 + }, + { + "id": 3345, + "x_pos": -2487.485349773862, + "y_pos": 1949.3888854980469 + }, + { + "id": 3344, + "x_pos": -2482.939864309851, + "y_pos": 1951.3888854980469 + }, + { + "id": 3343, + "x_pos": -2492.450468283056, + "y_pos": 1953.3888854980469 + }, + { + "id": 3342, + "x_pos": -1872.923958350044, + "y_pos": 2131.888885498047 + }, + { + "id": 3341, + "x_pos": -2351.9086104940898, + "y_pos": 1716.3888854980469 + }, + { + "id": 3340, + "x_pos": -2487.44112004352, + "y_pos": 1957.3888854980469 + }, + { + "id": 3339, + "x_pos": -2598.962467515893, + "y_pos": 1517.3888854980469 + }, + { + "id": 3338, + "x_pos": -1691, + "y_pos": 2094 + }, + { + "id": 3337, + "x_pos": -1144.9123776950964, + "y_pos": 1966.8888854980469 + }, + { + "id": 3336, + "x_pos": -1659.5, + "y_pos": 2091 + }, + { + "id": 3335, + "x_pos": -930.4187958894045, + "y_pos": 1911.3888854980469 + }, + { + "id": 3334, + "x_pos": -878.4047037671194, + "y_pos": 2111.388885498047 + }, + { + "id": 3333, + "x_pos": -973.4246559798598, + "y_pos": 2164.888885498047 + }, + { + "id": 3332, + "x_pos": -1096.4490730234238, + "y_pos": 2310.888885498047 + }, + { + "id": 3331, + "x_pos": -1655.5, + "y_pos": 2098.5 + }, + { + "id": 3330, + "x_pos": -1524.914470584545, + "y_pos": 2608.888885498047 + }, + { + "id": 3329, + "x_pos": -1881.926469817382, + "y_pos": 2133.388885498047 + }, + { + "id": 3328, + "x_pos": -1722.9437710368215, + "y_pos": 2756.388885498047 + }, + { + "id": 3327, + "x_pos": -1725.9405619396673, + "y_pos": 2760.888885498047 + }, + { + "id": 3326, + "x_pos": -1605, + "y_pos": 2124.5 + }, + { + "id": 3325, + "x_pos": -1523.418935415368, + "y_pos": 2614.388885498047 + }, + { + "id": 3324, + "x_pos": -1650.4914889162433, + "y_pos": 3270.888885498047 + }, + { + "id": 3323, + "x_pos": -1657.4404224137043, + "y_pos": 3278.388885498047 + }, + { + "id": 3322, + "x_pos": -1517.9180982595885, + "y_pos": 2612.388885498047 + }, + { + "id": 3321, + "x_pos": -1070, + "y_pos": 1813 + }, + { + "id": 3320, + "x_pos": -1610.417121577846, + "y_pos": 1866.8888854980469 + }, + { + "id": 3319, + "x_pos": -938.4259117135289, + "y_pos": 1962.3888854980469 + }, + { + "id": 3318, + "x_pos": -1166.4102848056482, + "y_pos": 1891.8888854980469 + }, + { + "id": 3317, + "x_pos": -1652.439027154072, + "y_pos": 3277.888885498047 + }, + { + "id": 3316, + "x_pos": -830.8878211255696, + "y_pos": 2589.888885498047 + }, + { + "id": 3315, + "x_pos": -749.4603746264447, + "y_pos": 1251.8888854980469 + }, + { + "id": 3314, + "x_pos": -711.494837539361, + "y_pos": 261.3888854980469 + }, + { + "id": 3313, + "x_pos": -934.3989832026273, + "y_pos": 2224.388885498047 + }, + { + "id": 3312, + "x_pos": 846.6345030285465, + "y_pos": -585.6111145019531 + }, + { + "id": 3311, + "x_pos": -874.4448872445273, + "y_pos": 690.8888854980469 + }, + { + "id": 3310, + "x_pos": -1219.918377311515, + "y_pos": 1786.8888854980469 + }, + { + "id": 3309, + "x_pos": -747.4376318944396, + "y_pos": 1375.8888854980469 + }, + { + "id": 3308, + "x_pos": -1159.9310741741683, + "y_pos": 1304.8888854980469 + }, + { + "id": 3307, + "x_pos": -452.85196295302103, + "y_pos": 1345.3888854980469 + }, + { + "id": 3306, + "x_pos": -417.37582189273235, + "y_pos": 1602.8888854980469 + }, + { + "id": 3305, + "x_pos": -1027.9400038358144, + "y_pos": 1056.8888854980469 + }, + { + "id": 3304, + "x_pos": -390.02776566668126, + "y_pos": 361.8888854980469 + }, + { + "id": 3212, + "x_pos": -594.4487939714973, + "y_pos": 1607.3888854980469 + }, + { + "id": 3210, + "x_pos": -1227.4635837235992, + "y_pos": 2262.888885498047 + }, + { + "id": 3209, + "x_pos": -362.37665904851156, + "y_pos": 1659.8888854980469 + }, + { + "id": 3205, + "x_pos": -439.9095871758318, + "y_pos": 1734.8888854980469 + }, + { + "id": 3197, + "x_pos": 125.09627291462311, + "y_pos": 2610.888885498047 + }, + { + "id": 3195, + "x_pos": -124.42507455774967, + "y_pos": 570.8888854980469 + }, + { + "id": 3194, + "x_pos": 473.55539180739925, + "y_pos": 784.3888854980469 + }, + { + "id": 3192, + "x_pos": -223.9473987118654, + "y_pos": 526.8888854980469 + }, + { + "id": 3191, + "x_pos": 471.5531593919877, + "y_pos": 794.8888854980469 + }, + { + "id": 3185, + "x_pos": -72, + "y_pos": 625.5 + }, + { + "id": 3158, + "x_pos": -222.41712157784605, + "y_pos": -321.6111145019531 + }, + { + "id": 3048, + "x_pos": -133, + "y_pos": 267.5 + }, + { + "id": 3036, + "x_pos": -70.97837347570066, + "y_pos": 291.3888854980469 + }, + { + "id": 3028, + "x_pos": -31.940561939667532, + "y_pos": 264.8888854980469 + }, + { + "id": 3011, + "x_pos": 957.5760416499561, + "y_pos": 1111.8888854980469 + }, + { + "id": 3007, + "x_pos": 943.0765997538092, + "y_pos": 1110.3888854980469 + }, + { + "id": 3003, + "x_pos": 949.0736697085813, + "y_pos": 1113.3888854980469 + }, + { + "id": 2996, + "x_pos": 963.0775764355512, + "y_pos": 1114.3888854980469 + }, + { + "id": 2994, + "x_pos": 564.5598566382223, + "y_pos": 865.3888854980469 + }, + { + "id": 2992, + "x_pos": 607.5771578576623, + "y_pos": 839.3888854980469 + }, + { + "id": 2986, + "x_pos": 606.0714372931698, + "y_pos": 838.8888854980469 + }, + { + "id": 2984, + "x_pos": 558.0772973836251, + "y_pos": 864.8888854980469 + }, + { + "id": 2982, + "x_pos": 477.05469417758286, + "y_pos": 796.3888854980469 + }, + { + "id": 2975, + "x_pos": 1244.1321310871717, + "y_pos": 827.8888854980469 + }, + { + "id": 2973, + "x_pos": 1238.5831574740805, + "y_pos": 840.8888854980469 + }, + { + "id": 2971, + "x_pos": 1197.5717163450963, + "y_pos": 874.3888854980469 + }, + { + "id": 2965, + "x_pos": 1175.5806460067424, + "y_pos": 840.8888854980469 + }, + { + "id": 2963, + "x_pos": 543.5749254422503, + "y_pos": 603.8888854980469 + }, + { + "id": 2957, + "x_pos": 543.074785916287, + "y_pos": 612.3888854980469 + }, + { + "id": 2955, + "x_pos": 552.5697629816109, + "y_pos": 615.3888854980469 + }, + { + "id": 2953, + "x_pos": 569.0740882864711, + "y_pos": 656.8888854980469 + }, + { + "id": 2951, + "x_pos": 584.0753440201402, + "y_pos": 667.8888854980469 + }, + { + "id": 2944, + "x_pos": 739.5820412663743, + "y_pos": 626.8888854980469 + }, + { + "id": 2943, + "x_pos": 743.5806460067424, + "y_pos": 625.3888854980469 + }, + { + "id": 2935, + "x_pos": 908, + "y_pos": 173 + }, + { + "id": 2917, + "x_pos": 844.0604147420754, + "y_pos": 253.88888549804688 + }, + { + "id": 2905, + "x_pos": 545.5675305661994, + "y_pos": 117.88888549804688 + }, + { + "id": 2899, + "x_pos": 905, + "y_pos": 175 + }, + { + "id": 2869, + "x_pos": 348.53278860135697, + "y_pos": -357.1111145019531 + }, + { + "id": 2849, + "x_pos": 674.5806460067424, + "y_pos": -349.6111145019531 + }, + { + "id": 2835, + "x_pos": 951.1586410201835, + "y_pos": -602.6111145019531 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/a04fa1f0d9619196297357a33127095c_7827399238932095762.png" + }, + "61": { + "name": "Mist Flower Corolla", + "clear_name": "MistFlowerCorolla", + "points": [ + { + "id": 17711, + "x_pos": -103.19998168945312, + "y_pos": 6081.5999755859375 + }, + { + "id": 17710, + "x_pos": -338.5, + "y_pos": 6291.5 + }, + { + "id": 17709, + "x_pos": -99.29998779296875, + "y_pos": 6087.100006103516 + }, + { + "id": 17708, + "x_pos": -29.399993896484375, + "y_pos": 5957.5 + }, + { + "id": 17707, + "x_pos": -14.60003662109375, + "y_pos": 5944.399993896484 + }, + { + "id": 14828, + "x_pos": 3272.8010154353397, + "y_pos": 5256.606061673108 + }, + { + "id": 14827, + "x_pos": 3217.606955269306, + "y_pos": 5251.616205220518 + }, + { + "id": 14284, + "x_pos": 1576.1000061035156, + "y_pos": 6448.800018310547 + }, + { + "id": 14283, + "x_pos": 1584.0999755859375, + "y_pos": 6453.0999755859375 + }, + { + "id": 13678, + "x_pos": 2519, + "y_pos": 5302 + }, + { + "id": 13677, + "x_pos": 2502.5, + "y_pos": 5297 + }, + { + "id": 13569, + "x_pos": 1662.5, + "y_pos": 6130.5 + }, + { + "id": 13568, + "x_pos": 1661.5, + "y_pos": 6132 + }, + { + "id": 13567, + "x_pos": 1656, + "y_pos": 6127.5 + }, + { + "id": 13566, + "x_pos": 1483.8135919950619, + "y_pos": 5827.404997456868 + }, + { + "id": 13565, + "x_pos": 1487, + "y_pos": 5832.5 + }, + { + "id": 13564, + "x_pos": 1473.5, + "y_pos": 5838 + }, + { + "id": 11818, + "x_pos": -2156, + "y_pos": 2093.5 + }, + { + "id": 11810, + "x_pos": -2166.5, + "y_pos": 782.5 + }, + { + "id": 11782, + "x_pos": -1223.5, + "y_pos": 1131.5 + }, + { + "id": 10891, + "x_pos": -981, + "y_pos": 803.5 + }, + { + "id": 10863, + "x_pos": 496.7284905389906, + "y_pos": -68.26977211556778 + }, + { + "id": 10389, + "x_pos": -1602.5, + "y_pos": 1266.5 + }, + { + "id": 10045, + "x_pos": 818.5, + "y_pos": 1170.5 + }, + { + "id": 10042, + "x_pos": 824, + "y_pos": 1171.5 + }, + { + "id": 7632, + "x_pos": -2139.499969482422, + "y_pos": 2078.999954223633 + }, + { + "id": 6075, + "x_pos": -1969.5, + "y_pos": 2735.5 + }, + { + "id": 6074, + "x_pos": -1960.5, + "y_pos": 2730 + }, + { + "id": 3452, + "x_pos": -705.8874025476798, + "y_pos": 2166.888885498047 + }, + { + "id": 3303, + "x_pos": -1587.952840224431, + "y_pos": 472.8888854980469 + }, + { + "id": 3302, + "x_pos": -1591.951026386909, + "y_pos": 476.3888854980469 + }, + { + "id": 3301, + "x_pos": -1251.4137729547288, + "y_pos": 674.8888854980469 + }, + { + "id": 3300, + "x_pos": -1259.9229816683014, + "y_pos": 676.8888854980469 + }, + { + "id": 3299, + "x_pos": -591.4287022327935, + "y_pos": 457.8888854980469 + }, + { + "id": 3298, + "x_pos": -2122.9660951909373, + "y_pos": 1283.3888854980469 + }, + { + "id": 3297, + "x_pos": -1997.910145279685, + "y_pos": 1308.8888854980469 + }, + { + "id": 3296, + "x_pos": -2067.9384690502193, + "y_pos": 2818.388885498047 + }, + { + "id": 3295, + "x_pos": -2069.958979366813, + "y_pos": 2816.388885498047 + }, + { + "id": 3294, + "x_pos": -1803.93721331655, + "y_pos": 1859.8888854980469 + }, + { + "id": 3293, + "x_pos": -1647.4236792981173, + "y_pos": 1814.8888854980469 + }, + { + "id": 3292, + "x_pos": -1655.425911713529, + "y_pos": 1857.8888854980469 + }, + { + "id": 3291, + "x_pos": -968.4095871758318, + "y_pos": 1138.3888854980469 + }, + { + "id": 3290, + "x_pos": -581.9260512394922, + "y_pos": 460.8888854980469 + }, + { + "id": 3289, + "x_pos": -2070.439166680035, + "y_pos": 2821.388885498047 + }, + { + "id": 3288, + "x_pos": -1735.9467010820492, + "y_pos": 1898.8888854980469 + }, + { + "id": 3287, + "x_pos": -1486.942236251226, + "y_pos": 1810.8888854980469 + }, + { + "id": 3286, + "x_pos": -933.905261870972, + "y_pos": 1075.3888854980469 + }, + { + "id": 3285, + "x_pos": -1416.9147496364712, + "y_pos": 1786.8888854980469 + }, + { + "id": 3284, + "x_pos": -1272.4644208793784, + "y_pos": 1607.8888854980469 + }, + { + "id": 3283, + "x_pos": -1320.9446081926008, + "y_pos": 1692.8888854980469 + }, + { + "id": 3282, + "x_pos": -1266.8954950535467, + "y_pos": 1895.8888854980469 + }, + { + "id": 3281, + "x_pos": -1451.9169820518828, + "y_pos": 1785.8888854980469 + }, + { + "id": 3280, + "x_pos": -1485.3608926146676, + "y_pos": 2129.888885498047 + }, + { + "id": 3279, + "x_pos": -1119.7901529513138, + "y_pos": 1589.7777709960938 + }, + { + "id": 3278, + "x_pos": -571.4543750100265, + "y_pos": 466.8888854980469 + }, + { + "id": 3211, + "x_pos": -284.5, + "y_pos": 535 + }, + { + "id": 3204, + "x_pos": -107.3528001088007, + "y_pos": 2698.388885498047 + }, + { + "id": 3203, + "x_pos": -328.9268883952718, + "y_pos": 2445.388885498047 + }, + { + "id": 3201, + "x_pos": -104.42423740197046, + "y_pos": 2699.888885498047 + }, + { + "id": 3200, + "x_pos": -20, + "y_pos": 2619.5 + }, + { + "id": 3196, + "x_pos": -56.926469817381985, + "y_pos": 514.3888854980469 + }, + { + "id": 3193, + "x_pos": -201, + "y_pos": 332.5 + }, + { + "id": 3190, + "x_pos": -52, + "y_pos": 590.5 + }, + { + "id": 3189, + "x_pos": -729.9253536096762, + "y_pos": 621.3888854980469 + }, + { + "id": 3188, + "x_pos": -730.9256326616028, + "y_pos": 646.8888854980469 + }, + { + "id": 3186, + "x_pos": -744.3946578977675, + "y_pos": 635.8888854980469 + }, + { + "id": 3183, + "x_pos": -1265.4254931356395, + "y_pos": 838.3888854980469 + }, + { + "id": 3182, + "x_pos": -720.9088895460159, + "y_pos": 26.388885498046875 + }, + { + "id": 3181, + "x_pos": -1267.8843329764886, + "y_pos": 836.3888854980469 + }, + { + "id": 3180, + "x_pos": -1598.0683677219788, + "y_pos": 474.8888854980469 + }, + { + "id": 3179, + "x_pos": -656.4051223450087, + "y_pos": 42.388885498046875 + }, + { + "id": 3178, + "x_pos": -1115.883774872636, + "y_pos": 914.3888854980469 + }, + { + "id": 3177, + "x_pos": -269.940282887741, + "y_pos": 346.8888854980469 + }, + { + "id": 3174, + "x_pos": -1118.9140520066553, + "y_pos": 916.3888854980469 + }, + { + "id": 3173, + "x_pos": -198.4192144672943, + "y_pos": 195.38888549804688 + }, + { + "id": 3172, + "x_pos": -1851.4511659128723, + "y_pos": 946.8888854980469 + }, + { + "id": 3171, + "x_pos": -224.90791286427338, + "y_pos": 109.38888549804688 + }, + { + "id": 3169, + "x_pos": -1843.9828383065237, + "y_pos": 922.8888854980469 + }, + { + "id": 3165, + "x_pos": -1684.9017737218917, + "y_pos": 1083.3888854980469 + }, + { + "id": 3164, + "x_pos": -288.43553900499137, + "y_pos": -199.11111450195312 + }, + { + "id": 3156, + "x_pos": -1679.9250745577497, + "y_pos": 1085.3888854980469 + }, + { + "id": 3153, + "x_pos": -990.3781938341072, + "y_pos": 990.8888854980469 + }, + { + "id": 3149, + "x_pos": -700.8974484170317, + "y_pos": 1166.8888854980469 + }, + { + "id": 3146, + "x_pos": -453.43428327132233, + "y_pos": -168.61111450195312 + }, + { + "id": 3145, + "x_pos": -703.8978669949215, + "y_pos": 1169.8888854980469 + }, + { + "id": 3144, + "x_pos": -703.7647592260073, + "y_pos": 1171.8888854980469 + }, + { + "id": 3141, + "x_pos": -465.93414374535905, + "y_pos": -174.61111450195312 + }, + { + "id": 3140, + "x_pos": -962.9320508559108, + "y_pos": 1290.3888854980469 + }, + { + "id": 3137, + "x_pos": -802.9267488693085, + "y_pos": -168.61111450195312 + }, + { + "id": 3136, + "x_pos": -471.83312694798633, + "y_pos": 1302.3888854980469 + }, + { + "id": 3135, + "x_pos": -466.93972478388787, + "y_pos": 1305.3888854980469 + }, + { + "id": 3132, + "x_pos": -794.4231211942647, + "y_pos": -186.11111450195312 + }, + { + "id": 3129, + "x_pos": -1041.9852102478985, + "y_pos": 1747.8888854980469 + }, + { + "id": 3125, + "x_pos": -876.4045642411561, + "y_pos": 1727.8888854980469 + }, + { + "id": 3124, + "x_pos": -575.860613562741, + "y_pos": 1757.8888854980469 + }, + { + "id": 3123, + "x_pos": -1145.9186563634416, + "y_pos": -249.11111450195312 + }, + { + "id": 3118, + "x_pos": -1119.4118195912433, + "y_pos": -215.61111450195312 + }, + { + "id": 3116, + "x_pos": -367.4196330451841, + "y_pos": 1826.8888854980469 + }, + { + "id": 3113, + "x_pos": -408.9035875594136, + "y_pos": 1887.8888854980469 + }, + { + "id": 3090, + "x_pos": -852.4168425259195, + "y_pos": 1840.3888854980469 + }, + { + "id": 3089, + "x_pos": -1178.5188360050352, + "y_pos": -278.1111145019531 + }, + { + "id": 3081, + "x_pos": -854.9384690502188, + "y_pos": 1845.3888854980469 + }, + { + "id": 3078, + "x_pos": -604.4846521440454, + "y_pos": 1915.3888854980469 + }, + { + "id": 3071, + "x_pos": -1887.4055409228986, + "y_pos": 1661.3888854980469 + }, + { + "id": 3069, + "x_pos": -2435.5, + "y_pos": 1783 + }, + { + "id": 3064, + "x_pos": -1547.4182377855518, + "y_pos": 1907.8888854980469 + }, + { + "id": 3061, + "x_pos": -1599.378891463923, + "y_pos": 1882.8888854980469 + }, + { + "id": 3057, + "x_pos": -894.9186563634416, + "y_pos": -552.1111145019531 + }, + { + "id": 3054, + "x_pos": -1476.8985646247374, + "y_pos": 2053.888885498047 + }, + { + "id": 3051, + "x_pos": -1421.901355144002, + "y_pos": 2045.3888854980469 + }, + { + "id": 3050, + "x_pos": -882.4081919161999, + "y_pos": -538.6111145019531 + }, + { + "id": 3047, + "x_pos": -1286.367450334939, + "y_pos": 2104.388885498047 + }, + { + "id": 3044, + "x_pos": -2407.934143745359, + "y_pos": 2047.3888854980469 + }, + { + "id": 3043, + "x_pos": -2428.4307951222418, + "y_pos": 2036.3888854980469 + }, + { + "id": 3038, + "x_pos": -1168.3701013282403, + "y_pos": 2132.888885498047 + }, + { + "id": 3033, + "x_pos": -661.4487939714973, + "y_pos": 2380.388885498047 + }, + { + "id": 3030, + "x_pos": -663.4289812847201, + "y_pos": 2382.388885498047 + }, + { + "id": 3022, + "x_pos": -651.4256326616028, + "y_pos": 2383.388885498047 + }, + { + "id": 3019, + "x_pos": -656.4270279212346, + "y_pos": 2386.888885498047 + }, + { + "id": 3017, + "x_pos": -922.4701414438705, + "y_pos": 2565.388885498047 + }, + { + "id": 3016, + "x_pos": -1647.3205696112964, + "y_pos": 3073.388885498047 + }, + { + "id": 3013, + "x_pos": -1650.8841934505256, + "y_pos": 3077.388885498047 + }, + { + "id": 3010, + "x_pos": -1656.385728236121, + "y_pos": 3075.388885498047 + }, + { + "id": 2959, + "x_pos": 404.54576451593675, + "y_pos": 339.8888854980469 + }, + { + "id": 2948, + "x_pos": 815.0669724623467, + "y_pos": 635.3888854980469 + }, + { + "id": 2938, + "x_pos": 815.56711198831, + "y_pos": 639.3888854980469 + }, + { + "id": 2912, + "x_pos": 882.0943195511381, + "y_pos": 321.3888854980469 + }, + { + "id": 2896, + "x_pos": 652.0590194824426, + "y_pos": 116.88888549804688 + }, + { + "id": 2890, + "x_pos": 651.0569265929944, + "y_pos": 118.88888549804688 + }, + { + "id": 2866, + "x_pos": 387.542694944746, + "y_pos": -355.6111145019531 + }, + { + "id": 2862, + "x_pos": 534.5902732982049, + "y_pos": -368.6111145019531 + }, + { + "id": 2846, + "x_pos": 729, + "y_pos": -484 + }, + { + "id": 2841, + "x_pos": -2132.9681880803855, + "y_pos": 1524.3888854980469 + }, + { + "id": 2840, + "x_pos": -2115.9538169061734, + "y_pos": 3233.388885498047 + }, + { + "id": 2839, + "x_pos": -2119.953537854247, + "y_pos": 3236.388885498047 + }, + { + "id": 2838, + "x_pos": -2119.4835359363396, + "y_pos": 3232.388885498047 + }, + { + "id": 2837, + "x_pos": -2021.9206097269266, + "y_pos": 1504.8888854980469 + }, + { + "id": 2836, + "x_pos": -2113.9507473349827, + "y_pos": 3237.388885498047 + }, + { + "id": 2834, + "x_pos": -2015.918935415368, + "y_pos": 1513.3888854980469 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/379f3acf5091d5c9bab5d238398ed74b_1299253059491585322.png" + }, + "263": { + "name": "Thunder Manifestation", + "clear_name": "ThunderManifestation", + "points": [ + { + "id": 17704, + "x_pos": 3510.5, + "y_pos": 7030.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210901/bb3d1566056753c5a5aba7c999ff438c_4529726033541116576.png" + }, + "262": { + "name": "Hydro Hypostasis", + "clear_name": "HydroHypostasis", + "points": [ + { + "id": 17703, + "x_pos": 216.5, + "y_pos": 5879.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210901/5f1aacfa5eba74e29d41cc6c38705f4c_2316776350798580845.png" + }, + "209": { + "name": "Nobushi", + "clear_name": "Nobushi", + "points": [ + { + "id": 17695, + "x_pos": -53.100006103515625, + "y_pos": 6172.5 + }, + { + "id": 17577, + "x_pos": -44.79998779296875, + "y_pos": 5943.399993896484 + }, + { + "id": 17576, + "x_pos": -30.300018310546875, + "y_pos": 5930 + }, + { + "id": 17575, + "x_pos": -6.20001220703125, + "y_pos": 5971.600006103516 + }, + { + "id": 17574, + "x_pos": 11.600006103515625, + "y_pos": 5995.5 + }, + { + "id": 17568, + "x_pos": 113, + "y_pos": 6046.9000244140625 + }, + { + "id": 17564, + "x_pos": 172.89999389648438, + "y_pos": 6056.600006103516 + }, + { + "id": 17562, + "x_pos": 164.79998779296875, + "y_pos": 6057.100006103516 + }, + { + "id": 17557, + "x_pos": 254.10000610351562, + "y_pos": 6184.399993896484 + }, + { + "id": 17544, + "x_pos": -104.39999389648438, + "y_pos": 6339.799987792969 + }, + { + "id": 17543, + "x_pos": -93.89999389648438, + "y_pos": 6340.799987792969 + }, + { + "id": 17456, + "x_pos": 3676.5, + "y_pos": 6599.600006103516 + }, + { + "id": 17453, + "x_pos": 3673.499969482422, + "y_pos": 6604.299987792969 + }, + { + "id": 17415, + "x_pos": 3246.2000122070312, + "y_pos": 6946.899993896484 + }, + { + "id": 17409, + "x_pos": 3248.6000061035156, + "y_pos": 6951.199981689453 + }, + { + "id": 17408, + "x_pos": 3242.5, + "y_pos": 6953.399993896484 + }, + { + "id": 17407, + "x_pos": 3048.6000061035156, + "y_pos": 6709.700012207031 + }, + { + "id": 17406, + "x_pos": 3063.8999938964844, + "y_pos": 6713.0999755859375 + }, + { + "id": 17397, + "x_pos": 3056.5, + "y_pos": 6736.799987792969 + }, + { + "id": 17396, + "x_pos": 3055.5, + "y_pos": 6739.699981689453 + }, + { + "id": 17394, + "x_pos": 3060.2000122070312, + "y_pos": 6739.299987792969 + }, + { + "id": 16697, + "x_pos": 189, + "y_pos": 6187.5 + }, + { + "id": 16696, + "x_pos": 199, + "y_pos": 6196 + }, + { + "id": 16695, + "x_pos": 203, + "y_pos": 6206 + }, + { + "id": 16694, + "x_pos": 453.5, + "y_pos": 6218.5 + }, + { + "id": 16693, + "x_pos": 458, + "y_pos": 6222 + }, + { + "id": 16692, + "x_pos": 449.5, + "y_pos": 6222 + }, + { + "id": 16691, + "x_pos": 637.5, + "y_pos": 6085.5 + }, + { + "id": 16690, + "x_pos": 633.5, + "y_pos": 6087 + }, + { + "id": 16689, + "x_pos": 635.5, + "y_pos": 6089 + }, + { + "id": 16688, + "x_pos": -7.5, + "y_pos": 5779.5 + }, + { + "id": 16687, + "x_pos": -13, + "y_pos": 5780.5 + }, + { + "id": 16686, + "x_pos": -9, + "y_pos": 5784 + }, + { + "id": 16685, + "x_pos": -115, + "y_pos": 5919 + }, + { + "id": 16684, + "x_pos": -109, + "y_pos": 5918 + }, + { + "id": 16683, + "x_pos": -162.5, + "y_pos": 5985 + }, + { + "id": 16682, + "x_pos": -168, + "y_pos": 5990 + }, + { + "id": 16681, + "x_pos": -111, + "y_pos": 6298 + }, + { + "id": 16680, + "x_pos": -113, + "y_pos": 6321.5 + }, + { + "id": 16679, + "x_pos": -109.5, + "y_pos": 6322 + }, + { + "id": 16647, + "x_pos": 3738, + "y_pos": 6564 + }, + { + "id": 16646, + "x_pos": 3755.5, + "y_pos": 6570.5 + }, + { + "id": 16645, + "x_pos": 3748.5, + "y_pos": 6589 + }, + { + "id": 16644, + "x_pos": 3762.5, + "y_pos": 6609 + }, + { + "id": 16643, + "x_pos": 3595, + "y_pos": 6490.5 + }, + { + "id": 16642, + "x_pos": 3682.5, + "y_pos": 6590 + }, + { + "id": 16641, + "x_pos": 3610.5, + "y_pos": 6681 + }, + { + "id": 16640, + "x_pos": 3605.5, + "y_pos": 6684.5 + }, + { + "id": 16639, + "x_pos": 3614.5, + "y_pos": 6684 + }, + { + "id": 16637, + "x_pos": 3406.5, + "y_pos": 6700 + }, + { + "id": 16636, + "x_pos": 3399.5, + "y_pos": 6701 + }, + { + "id": 16635, + "x_pos": 3509.5, + "y_pos": 6866.5 + }, + { + "id": 16634, + "x_pos": 3521.5, + "y_pos": 6868.5 + }, + { + "id": 16633, + "x_pos": 3567.5, + "y_pos": 6812.5 + }, + { + "id": 16632, + "x_pos": 3837, + "y_pos": 6874 + }, + { + "id": 16631, + "x_pos": 3842, + "y_pos": 6875 + }, + { + "id": 16630, + "x_pos": 3843.5, + "y_pos": 6880.5 + }, + { + "id": 16629, + "x_pos": 3873, + "y_pos": 6936.5 + }, + { + "id": 16628, + "x_pos": 3863, + "y_pos": 6937 + }, + { + "id": 16627, + "x_pos": 3869.5, + "y_pos": 6941 + }, + { + "id": 16625, + "x_pos": 3772, + "y_pos": 6995 + }, + { + "id": 16624, + "x_pos": 3772.5, + "y_pos": 7000 + }, + { + "id": 16623, + "x_pos": 3214.5, + "y_pos": 7010 + }, + { + "id": 16615, + "x_pos": 3218, + "y_pos": 7013 + }, + { + "id": 15808, + "x_pos": 2178.0999755859375, + "y_pos": 5852.899963378906 + }, + { + "id": 15807, + "x_pos": 2177.499969482422, + "y_pos": 5857.20002746582 + }, + { + "id": 15806, + "x_pos": 2181.5, + "y_pos": 5856.299987792969 + }, + { + "id": 15805, + "x_pos": 1519, + "y_pos": 5981.199981689453 + }, + { + "id": 15660, + "x_pos": 2494.800018310547, + "y_pos": 5629.600006103516 + }, + { + "id": 15659, + "x_pos": 2512.6000366210938, + "y_pos": 5628.399993896484 + }, + { + "id": 15658, + "x_pos": 2512.300018310547, + "y_pos": 5637.100006103516 + }, + { + "id": 15657, + "x_pos": 3453.1000061035156, + "y_pos": 4990.800018310547 + }, + { + "id": 15656, + "x_pos": 3599.199951171875, + "y_pos": 4891.700012207031 + }, + { + "id": 14907, + "x_pos": 3149.596984249595, + "y_pos": 5571.006762364939 + }, + { + "id": 14906, + "x_pos": 2247.5, + "y_pos": 5865.5 + }, + { + "id": 14424, + "x_pos": 3365.5999755859375, + "y_pos": 4837.5 + }, + { + "id": 14422, + "x_pos": 3372.1000061035156, + "y_pos": 4843.4000244140625 + }, + { + "id": 14303, + "x_pos": 2841.5, + "y_pos": 5667.600006103516 + }, + { + "id": 14302, + "x_pos": 2836.7999877929688, + "y_pos": 5665.799987792969 + }, + { + "id": 14301, + "x_pos": 2837.2999877929688, + "y_pos": 5669.699981689453 + }, + { + "id": 14298, + "x_pos": 2337.800018310547, + "y_pos": 5988 + }, + { + "id": 14297, + "x_pos": 2537.2000122070312, + "y_pos": 6152.399993896484 + }, + { + "id": 14295, + "x_pos": 2540.7999877929688, + "y_pos": 6156.300018310547 + }, + { + "id": 14294, + "x_pos": 2572.199981689453, + "y_pos": 6258.899993896484 + }, + { + "id": 14293, + "x_pos": 2570, + "y_pos": 6261.500022888184 + }, + { + "id": 14282, + "x_pos": 2328.0999755859375, + "y_pos": 6049 + }, + { + "id": 14276, + "x_pos": 1349.1000061035156, + "y_pos": 6030.899993896484 + }, + { + "id": 14275, + "x_pos": 1358.3000183105469, + "y_pos": 6043.4000244140625 + }, + { + "id": 14271, + "x_pos": 2288.7999877929688, + "y_pos": 5951.700012207031 + }, + { + "id": 14207, + "x_pos": 3519.1000366210938, + "y_pos": 4178.154543625231 + }, + { + "id": 14179, + "x_pos": 3441.6000061035156, + "y_pos": 4181.200012207031 + }, + { + "id": 14178, + "x_pos": 3458.800018310547, + "y_pos": 4188 + }, + { + "id": 14177, + "x_pos": 3480.500030517578, + "y_pos": 4196.700012207031 + }, + { + "id": 14176, + "x_pos": 3478.2999877929688, + "y_pos": 4200.5 + }, + { + "id": 14175, + "x_pos": 3539.699981689453, + "y_pos": 4224.299987792969 + }, + { + "id": 14174, + "x_pos": 2810.699981689453, + "y_pos": 4645.5 + }, + { + "id": 14173, + "x_pos": 2849.2999877929688, + "y_pos": 4616 + }, + { + "id": 14172, + "x_pos": 2843.300018310547, + "y_pos": 4618.9000244140625 + }, + { + "id": 14171, + "x_pos": 2849.8999633789062, + "y_pos": 4623.999954223633 + }, + { + "id": 14170, + "x_pos": 2867.2000122070312, + "y_pos": 4601.4000244140625 + }, + { + "id": 14169, + "x_pos": 2891.199981689453, + "y_pos": 4635.799987792969 + }, + { + "id": 14165, + "x_pos": 3369.8999938964844, + "y_pos": 5297.5 + }, + { + "id": 14161, + "x_pos": 1826.9999694824219, + "y_pos": 6332.299987792969 + }, + { + "id": 14160, + "x_pos": 1831.0999755859375, + "y_pos": 6333.600006103516 + }, + { + "id": 14159, + "x_pos": 1824.2999572753906, + "y_pos": 6336.399993896484 + }, + { + "id": 14156, + "x_pos": 1540.699951171875, + "y_pos": 6216.399963378906 + }, + { + "id": 14081, + "x_pos": 2258.7999877929688, + "y_pos": 5695.699981689453 + }, + { + "id": 14075, + "x_pos": 2464.9000244140625, + "y_pos": 5956.899993896484 + }, + { + "id": 14074, + "x_pos": 2451.699981689453, + "y_pos": 5958.699981689453 + }, + { + "id": 14024, + "x_pos": 3431.8999633789062, + "y_pos": 4184.186128113406 + }, + { + "id": 14023, + "x_pos": 3467.5, + "y_pos": 4215.039627695309 + }, + { + "id": 14022, + "x_pos": 3524, + "y_pos": 4146.045262326774 + }, + { + "id": 14021, + "x_pos": 3367.5, + "y_pos": 4969.5 + }, + { + "id": 14020, + "x_pos": 2481.5, + "y_pos": 5915 + }, + { + "id": 14019, + "x_pos": 2489, + "y_pos": 5910.5 + }, + { + "id": 14018, + "x_pos": 2068.6000061035156, + "y_pos": 5879.700631070125 + }, + { + "id": 14017, + "x_pos": 2060.7999877929688, + "y_pos": 5880.783962511874 + }, + { + "id": 14016, + "x_pos": 2069.5, + "y_pos": 5884.037180929679 + }, + { + "id": 14015, + "x_pos": 1754, + "y_pos": 5881.601608641427 + }, + { + "id": 14014, + "x_pos": 1746.7999877929688, + "y_pos": 5882.023094351016 + }, + { + "id": 14013, + "x_pos": 1681.4999694824219, + "y_pos": 5910.428046716312 + }, + { + "id": 14012, + "x_pos": 1678.9000244140625, + "y_pos": 5913.429204194574 + }, + { + "id": 14011, + "x_pos": 1501.5, + "y_pos": 5993.559348905437 + }, + { + "id": 14010, + "x_pos": 1499.1000366210938, + "y_pos": 5996.883563679705 + }, + { + "id": 14009, + "x_pos": 1504.8999938964844, + "y_pos": 5995.9038330769945 + }, + { + "id": 13934, + "x_pos": 3471.199981689453, + "y_pos": 4153.672418799007 + }, + { + "id": 13932, + "x_pos": 3476.5, + "y_pos": 4165.936530379823 + }, + { + "id": 13931, + "x_pos": 3484, + "y_pos": 4167.083270921193 + }, + { + "id": 13930, + "x_pos": 3480, + "y_pos": 4179.516507451338 + }, + { + "id": 13929, + "x_pos": 3482, + "y_pos": 4266.534849063935 + }, + { + "id": 13928, + "x_pos": 3476.7000122070312, + "y_pos": 4268.5 + }, + { + "id": 13927, + "x_pos": 3484.4000854492188, + "y_pos": 4272.97579671196 + }, + { + "id": 13926, + "x_pos": 3489.5, + "y_pos": 4267.662506687615 + }, + { + "id": 13924, + "x_pos": 3655, + "y_pos": 4941 + }, + { + "id": 13839, + "x_pos": 3678, + "y_pos": 4753 + }, + { + "id": 13838, + "x_pos": 3673, + "y_pos": 4759.5 + }, + { + "id": 13837, + "x_pos": 3944, + "y_pos": 4793 + }, + { + "id": 13836, + "x_pos": 3935.5, + "y_pos": 4794 + }, + { + "id": 13835, + "x_pos": 3928, + "y_pos": 4794 + }, + { + "id": 13834, + "x_pos": 3474.800018310547, + "y_pos": 4989.200012207031 + }, + { + "id": 13833, + "x_pos": 3487.5, + "y_pos": 5091.5 + }, + { + "id": 13832, + "x_pos": 3496.5, + "y_pos": 5093 + }, + { + "id": 13831, + "x_pos": 3487, + "y_pos": 5096 + }, + { + "id": 13830, + "x_pos": 3808.5, + "y_pos": 5157 + }, + { + "id": 13829, + "x_pos": 3831, + "y_pos": 5141.5 + }, + { + "id": 13828, + "x_pos": 3823.5, + "y_pos": 5157 + }, + { + "id": 13827, + "x_pos": 3829, + "y_pos": 5156 + }, + { + "id": 13826, + "x_pos": 2514.500030517578, + "y_pos": 5874.075318786583 + }, + { + "id": 13825, + "x_pos": 2511.0999755859375, + "y_pos": 5880.540191158456 + }, + { + "id": 13824, + "x_pos": 2547, + "y_pos": 5891.643289638285 + }, + { + "id": 13823, + "x_pos": 2393.0999755859375, + "y_pos": 6347.346514559131 + }, + { + "id": 13822, + "x_pos": 2440.7000122070312, + "y_pos": 6351.650822848218 + }, + { + "id": 13821, + "x_pos": 2399.5, + "y_pos": 6350.737047985622 + }, + { + "id": 13820, + "x_pos": 2436.3999633789062, + "y_pos": 6352.010698161792 + }, + { + "id": 13819, + "x_pos": 2672.3999938964844, + "y_pos": 6063.294683587643 + }, + { + "id": 13818, + "x_pos": 2610, + "y_pos": 6069.948717215673 + }, + { + "id": 13817, + "x_pos": 2615.1000061035156, + "y_pos": 6070.483088467612 + }, + { + "id": 13816, + "x_pos": 2134.5, + "y_pos": 5902.04244501104 + }, + { + "id": 13815, + "x_pos": 2128.5, + "y_pos": 5900.180462929971 + }, + { + "id": 13722, + "x_pos": 3651.5, + "y_pos": 4663 + }, + { + "id": 13721, + "x_pos": 3298.5, + "y_pos": 5029 + }, + { + "id": 13719, + "x_pos": 3293.5, + "y_pos": 5032 + }, + { + "id": 13717, + "x_pos": 3298, + "y_pos": 5034 + }, + { + "id": 13715, + "x_pos": 2915, + "y_pos": 5655.5 + }, + { + "id": 13714, + "x_pos": 2916, + "y_pos": 5689 + }, + { + "id": 13713, + "x_pos": 2817, + "y_pos": 5631 + }, + { + "id": 13712, + "x_pos": 2811, + "y_pos": 5636 + }, + { + "id": 13711, + "x_pos": 2816.5, + "y_pos": 5635.5 + }, + { + "id": 13710, + "x_pos": 2790.5, + "y_pos": 5632 + }, + { + "id": 13706, + "x_pos": 2611.5, + "y_pos": 5548.5 + }, + { + "id": 13613, + "x_pos": 3939.5, + "y_pos": 4794 + }, + { + "id": 13612, + "x_pos": 3405.5, + "y_pos": 5004 + }, + { + "id": 13611, + "x_pos": 3425.5, + "y_pos": 5008 + }, + { + "id": 13610, + "x_pos": 2392.5, + "y_pos": 6355.5 + }, + { + "id": 13609, + "x_pos": 2501.5, + "y_pos": 6281.5 + }, + { + "id": 13608, + "x_pos": 2674.5, + "y_pos": 6066 + }, + { + "id": 13607, + "x_pos": 2616, + "y_pos": 6069 + }, + { + "id": 13606, + "x_pos": 2563, + "y_pos": 5887 + }, + { + "id": 13605, + "x_pos": 2517.5, + "y_pos": 5880.5 + }, + { + "id": 13604, + "x_pos": 2137.5, + "y_pos": 5905.5 + }, + { + "id": 13603, + "x_pos": 2065.5, + "y_pos": 5884.5 + }, + { + "id": 13602, + "x_pos": 1941, + "y_pos": 5745.5 + }, + { + "id": 13601, + "x_pos": 1750, + "y_pos": 5884 + }, + { + "id": 13600, + "x_pos": 1674.5, + "y_pos": 5914.5 + }, + { + "id": 13598, + "x_pos": 1656.5, + "y_pos": 5804.5 + }, + { + "id": 13597, + "x_pos": 1587, + "y_pos": 5825.5 + }, + { + "id": 13596, + "x_pos": 1599.5, + "y_pos": 5826.5 + }, + { + "id": 13595, + "x_pos": 1592.5, + "y_pos": 5832.5 + }, + { + "id": 13594, + "x_pos": 1588, + "y_pos": 5876 + }, + { + "id": 13593, + "x_pos": 1426, + "y_pos": 5733.5 + }, + { + "id": 13589, + "x_pos": 1848, + "y_pos": 6130.5 + }, + { + "id": 13588, + "x_pos": 1617.5, + "y_pos": 6310.5 + }, + { + "id": 13587, + "x_pos": 1413, + "y_pos": 6393.5 + }, + { + "id": 13586, + "x_pos": 1420.5, + "y_pos": 6398.5 + }, + { + "id": 13585, + "x_pos": 1412.5, + "y_pos": 6401.5 + }, + { + "id": 13584, + "x_pos": 1394.5, + "y_pos": 6396.5 + }, + { + "id": 13490, + "x_pos": 3365.0999450683594, + "y_pos": 5149.678239629355 + }, + { + "id": 13489, + "x_pos": 3371.000030517578, + "y_pos": 5153.326846814949 + }, + { + "id": 13459, + "x_pos": 3654, + "y_pos": 4662.486662159535 + }, + { + "id": 13458, + "x_pos": 1698.8999938964844, + "y_pos": 6047.521388685591 + }, + { + "id": 13457, + "x_pos": 1706.9000244140625, + "y_pos": 6053.276058751839 + }, + { + "id": 13456, + "x_pos": 1700.5, + "y_pos": 6058.915650527088 + }, + { + "id": 13455, + "x_pos": 1610.7000122070312, + "y_pos": 6029.349948803956 + }, + { + "id": 13451, + "x_pos": 1604.4999694824219, + "y_pos": 6149.580791056975 + }, + { + "id": 13450, + "x_pos": 1746, + "y_pos": 6137.110060588624 + }, + { + "id": 13449, + "x_pos": 1750.800048828125, + "y_pos": 6135.744951745659 + }, + { + "id": 13448, + "x_pos": 1749.6000061035156, + "y_pos": 6138.584318920943 + }, + { + "id": 13447, + "x_pos": 1828.5, + "y_pos": 6123.103862494012 + }, + { + "id": 13446, + "x_pos": 1822.6999816894531, + "y_pos": 6123.115139394935 + }, + { + "id": 13445, + "x_pos": 1830, + "y_pos": 6124.420736971391 + }, + { + "id": 13444, + "x_pos": 1824.9000244140625, + "y_pos": 6124.684437723967 + }, + { + "id": 13443, + "x_pos": 1799.7000732421875, + "y_pos": 6199.647063881244 + }, + { + "id": 13442, + "x_pos": 1796.6000366210938, + "y_pos": 6204.524784740455 + }, + { + "id": 13441, + "x_pos": 1719, + "y_pos": 6343.051460421386 + }, + { + "id": 13440, + "x_pos": 1720.5, + "y_pos": 6344.011825088084 + }, + { + "id": 13439, + "x_pos": 1715.6000366210938, + "y_pos": 6344.62941124865 + }, + { + "id": 13438, + "x_pos": 1609.7999877929688, + "y_pos": 6444.348621326628 + }, + { + "id": 13437, + "x_pos": 1603.7999877929688, + "y_pos": 6448.255441718422 + }, + { + "id": 13436, + "x_pos": 1613.2000732421875, + "y_pos": 6451.4601259257015 + }, + { + "id": 13435, + "x_pos": 1608, + "y_pos": 6456.8347123850235 + }, + { + "id": 13434, + "x_pos": 1558.8999938964844, + "y_pos": 6302.038500769015 + }, + { + "id": 13433, + "x_pos": 1337.2999877929688, + "y_pos": 6210.216732760378 + }, + { + "id": 13432, + "x_pos": 1333.7000122070312, + "y_pos": 6214.98815963593 + }, + { + "id": 13431, + "x_pos": 1340.1000061035156, + "y_pos": 6216.616436320295 + }, + { + "id": 13430, + "x_pos": 1329.3000183105469, + "y_pos": 6218.713174344439 + }, + { + "id": 13428, + "x_pos": 1305.4000244140625, + "y_pos": 6167.906665668712 + }, + { + "id": 13427, + "x_pos": 1302.5, + "y_pos": 6174.596537473108 + }, + { + "id": 13426, + "x_pos": 1307.5999755859375, + "y_pos": 6174.010119422661 + }, + { + "id": 13424, + "x_pos": 1364.2999877929688, + "y_pos": 6137.898568995632 + }, + { + "id": 13423, + "x_pos": 1371.7999877929688, + "y_pos": 6135.674457748404 + }, + { + "id": 13422, + "x_pos": 1405.2000122070312, + "y_pos": 6088.704722397242 + }, + { + "id": 13421, + "x_pos": 1419.2999572753906, + "y_pos": 6090.203595470948 + }, + { + "id": 13420, + "x_pos": 1418, + "y_pos": 6071.561602758024 + }, + { + "id": 13389, + "x_pos": 1412.6000061035156, + "y_pos": 5769.367949072675 + }, + { + "id": 13354, + "x_pos": 2645.2000122070312, + "y_pos": 5517.025348203602 + }, + { + "id": 13353, + "x_pos": 2649.5, + "y_pos": 5518.026668042938 + }, + { + "id": 13348, + "x_pos": 2682.4000549316406, + "y_pos": 5716.539627695309 + }, + { + "id": 13347, + "x_pos": 2680.1000366210938, + "y_pos": 5719.624309528363 + }, + { + "id": 13346, + "x_pos": 2618.5, + "y_pos": 5636.185001187114 + }, + { + "id": 13345, + "x_pos": 2622.199981689453, + "y_pos": 5637.554084824074 + }, + { + "id": 13344, + "x_pos": 2510, + "y_pos": 5467.565547000049 + }, + { + "id": 13343, + "x_pos": 2510.499969482422, + "y_pos": 5455.569074864017 + }, + { + "id": 13342, + "x_pos": 1228.6000061035156, + "y_pos": 5927.249606535921 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/cb93b7eea7720f5e2c5fe5691120197e_8315551290426847794.png" + }, + "231": { + "name": "Light-Up Tile Puzzle\n", + "clear_name": "LightUpTilePuzzle", + "points": [ + { + "id": 17631, + "x_pos": 3498, + "y_pos": 6556.5 + }, + { + "id": 17630, + "x_pos": 3530.5, + "y_pos": 7074.5 + }, + { + "id": 17629, + "x_pos": 3275, + "y_pos": 6796 + }, + { + "id": 17628, + "x_pos": 2998, + "y_pos": 6608.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/50b2473f03dabd7c69ef2a4f4f2f2219_8669391996585562169.png" + }, + "26": { + "name": "Fatui Cicin Mage", + "clear_name": "FatuiCicinMage", + "points": [ + { + "id": 17604, + "x_pos": 53.5, + "y_pos": 5880.5 + }, + { + "id": 17484, + "x_pos": 2948.500030517578, + "y_pos": 6678.4000244140625 + }, + { + "id": 14182, + "x_pos": 1796.2000122070312, + "y_pos": 6250.800018310547 + }, + { + "id": 14128, + "x_pos": 2371.8999938964844, + "y_pos": 6159.100006103516 + }, + { + "id": 14125, + "x_pos": 2347.7999877929688, + "y_pos": 6240.600006103516 + }, + { + "id": 14107, + "x_pos": 2330.5, + "y_pos": 5986.600006103516 + }, + { + "id": 13937, + "x_pos": 3649.5, + "y_pos": 5048.5 + }, + { + "id": 13848, + "x_pos": 3739.5, + "y_pos": 5016 + }, + { + "id": 13468, + "x_pos": 3578, + "y_pos": 5018.577943189273 + }, + { + "id": 13467, + "x_pos": 3612.1000061035156, + "y_pos": 4921.611218066886 + }, + { + "id": 7322, + "x_pos": 365, + "y_pos": 896.5 + }, + { + "id": 7312, + "x_pos": -23.5, + "y_pos": 851 + }, + { + "id": 7001, + "x_pos": 472.5, + "y_pos": 1439 + }, + { + "id": 6972, + "x_pos": 228, + "y_pos": 980.5 + }, + { + "id": 6899, + "x_pos": 43, + "y_pos": 1055.5 + }, + { + "id": 6859, + "x_pos": -96, + "y_pos": 1307.5 + }, + { + "id": 2349, + "x_pos": -1995.6000061035156, + "y_pos": 2526 + }, + { + "id": 1659, + "x_pos": -1215.9991418936102, + "y_pos": 748.0082529890865 + }, + { + "id": 1644, + "x_pos": -1048.994279290735, + "y_pos": 712.5061231854511 + }, + { + "id": 1556, + "x_pos": -340, + "y_pos": -341.8525903997379 + }, + { + "id": 1351, + "x_pos": -668, + "y_pos": 1244.9688166138972 + }, + { + "id": 971, + "x_pos": 55.5, + "y_pos": 437 + }, + { + "id": 968, + "x_pos": -318, + "y_pos": 1913.9391001522208 + }, + { + "id": 904, + "x_pos": 975, + "y_pos": -607 + }, + { + "id": 784, + "x_pos": -731, + "y_pos": 2205.0499553069976 + }, + { + "id": 594, + "x_pos": -679, + "y_pos": 2432.2235019561285 + }, + { + "id": 550, + "x_pos": -1827.3000183105469, + "y_pos": 2185.2000122070312 + }, + { + "id": 444, + "x_pos": 139, + "y_pos": 2574.10813909618 + }, + { + "id": 360, + "x_pos": 462.0150688040285, + "y_pos": 897.9538222057135 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/d1a239ee4d68279a5e06ec48c3ef35bc_7800605549026574186.png" + }, + "191": { + "name": "Mist Bubble", + "clear_name": "MistBubble", + "points": [ + { + "id": 17349, + "x_pos": -322.5, + "y_pos": 6048.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210610/aad8b195858c3b67f86fc8dae7942e87_6453002108010102957.png" + }, + "228": { + "name": "Amakumo Fruit", + "clear_name": "AmakumoFruit", + "points": [ + { + "id": 17337, + "x_pos": 4030.5, + "y_pos": 7149.5 + }, + { + "id": 17336, + "x_pos": 3579.5, + "y_pos": 7042 + }, + { + "id": 17335, + "x_pos": 3582.5, + "y_pos": 7050 + }, + { + "id": 17334, + "x_pos": 3552.5, + "y_pos": 7065.5 + }, + { + "id": 17333, + "x_pos": 3582, + "y_pos": 7025.5 + }, + { + "id": 17332, + "x_pos": 3581, + "y_pos": 7022 + }, + { + "id": 17331, + "x_pos": 3537.5, + "y_pos": 6971 + }, + { + "id": 17330, + "x_pos": 3543, + "y_pos": 6992 + }, + { + "id": 17329, + "x_pos": 3487, + "y_pos": 6943.5 + }, + { + "id": 17328, + "x_pos": 3486, + "y_pos": 6861.5 + }, + { + "id": 17327, + "x_pos": 3469, + "y_pos": 6947 + }, + { + "id": 17326, + "x_pos": 3468.5, + "y_pos": 6965.5 + }, + { + "id": 17325, + "x_pos": 3538, + "y_pos": 7088 + }, + { + "id": 17324, + "x_pos": 3516, + "y_pos": 7095.5 + }, + { + "id": 17323, + "x_pos": 3513, + "y_pos": 7079 + }, + { + "id": 17322, + "x_pos": 3471, + "y_pos": 7073 + }, + { + "id": 17321, + "x_pos": 3367.5, + "y_pos": 7050.5 + }, + { + "id": 17320, + "x_pos": 3569, + "y_pos": 7192 + }, + { + "id": 17300, + "x_pos": 3575, + "y_pos": 6771.5 + }, + { + "id": 17299, + "x_pos": 3626, + "y_pos": 6865.5 + }, + { + "id": 17298, + "x_pos": 3651.5, + "y_pos": 6898 + }, + { + "id": 17297, + "x_pos": 3626, + "y_pos": 6914 + }, + { + "id": 17296, + "x_pos": 3658.5, + "y_pos": 6925.5 + }, + { + "id": 17295, + "x_pos": 3655, + "y_pos": 7159.5 + }, + { + "id": 17294, + "x_pos": 3660, + "y_pos": 7150.5 + }, + { + "id": 17243, + "x_pos": 3093, + "y_pos": 6720.5 + }, + { + "id": 17242, + "x_pos": 3092.5, + "y_pos": 6725 + }, + { + "id": 17241, + "x_pos": 3375.5, + "y_pos": 6998 + }, + { + "id": 17240, + "x_pos": 3372, + "y_pos": 7010.5 + }, + { + "id": 17239, + "x_pos": 3373.5, + "y_pos": 7030 + }, + { + "id": 16185, + "x_pos": 3685, + "y_pos": 7108.5 + }, + { + "id": 16182, + "x_pos": 3673, + "y_pos": 7114.5 + }, + { + "id": 16177, + "x_pos": 3684.5, + "y_pos": 7122 + }, + { + "id": 16171, + "x_pos": 3696.5, + "y_pos": 7117 + }, + { + "id": 16168, + "x_pos": 3755, + "y_pos": 7062 + }, + { + "id": 16163, + "x_pos": 3751.5, + "y_pos": 7065.5 + }, + { + "id": 16156, + "x_pos": 3725, + "y_pos": 7081 + }, + { + "id": 16147, + "x_pos": 3724, + "y_pos": 7087.5 + }, + { + "id": 16139, + "x_pos": 3716.5, + "y_pos": 7082.5 + }, + { + "id": 16135, + "x_pos": 3589, + "y_pos": 6979.5 + }, + { + "id": 16125, + "x_pos": 3581.5, + "y_pos": 6993 + }, + { + "id": 16121, + "x_pos": 3577.5, + "y_pos": 6999.5 + }, + { + "id": 16119, + "x_pos": 3571.5, + "y_pos": 7047.5 + }, + { + "id": 16109, + "x_pos": 3576, + "y_pos": 7185.5 + }, + { + "id": 16102, + "x_pos": 3412.5, + "y_pos": 7152.5 + }, + { + "id": 16100, + "x_pos": 3418, + "y_pos": 7155.5 + }, + { + "id": 16095, + "x_pos": 3445.5, + "y_pos": 7167.5 + }, + { + "id": 16087, + "x_pos": 3398, + "y_pos": 7154 + }, + { + "id": 16083, + "x_pos": 3383, + "y_pos": 7130.5 + }, + { + "id": 16081, + "x_pos": 3388.5, + "y_pos": 7136 + }, + { + "id": 16078, + "x_pos": 3573.5, + "y_pos": 7088.5 + }, + { + "id": 16077, + "x_pos": 3566.5, + "y_pos": 7089.5 + }, + { + "id": 16075, + "x_pos": 3528, + "y_pos": 7091.5 + }, + { + "id": 16074, + "x_pos": 3498, + "y_pos": 7086 + }, + { + "id": 16071, + "x_pos": 3366.5, + "y_pos": 7057 + }, + { + "id": 16069, + "x_pos": 3436.5, + "y_pos": 7014.5 + }, + { + "id": 16067, + "x_pos": 3441, + "y_pos": 7026.5 + }, + { + "id": 16065, + "x_pos": 3431, + "y_pos": 6995 + }, + { + "id": 16064, + "x_pos": 3434, + "y_pos": 6992 + }, + { + "id": 16060, + "x_pos": 3319, + "y_pos": 7011.5 + }, + { + "id": 16058, + "x_pos": 3337, + "y_pos": 6994.5 + }, + { + "id": 16056, + "x_pos": 3414, + "y_pos": 6930 + }, + { + "id": 16053, + "x_pos": 3409.5, + "y_pos": 6932 + }, + { + "id": 16051, + "x_pos": 3458.5, + "y_pos": 6895.5 + }, + { + "id": 16049, + "x_pos": 3494, + "y_pos": 6906 + }, + { + "id": 16047, + "x_pos": 3545, + "y_pos": 6937.5 + }, + { + "id": 16046, + "x_pos": 3514.5, + "y_pos": 6907 + }, + { + "id": 16045, + "x_pos": 3512, + "y_pos": 6896.5 + }, + { + "id": 16042, + "x_pos": 3530.5, + "y_pos": 6864 + }, + { + "id": 16041, + "x_pos": 3465, + "y_pos": 6848.5 + }, + { + "id": 16038, + "x_pos": 3462.5, + "y_pos": 6850.5 + }, + { + "id": 16037, + "x_pos": 3450, + "y_pos": 6834 + }, + { + "id": 16034, + "x_pos": 3761, + "y_pos": 6985.5 + }, + { + "id": 16032, + "x_pos": 3730, + "y_pos": 6929.5 + }, + { + "id": 16025, + "x_pos": 3704, + "y_pos": 6902 + }, + { + "id": 16002, + "x_pos": 3694.5, + "y_pos": 6891 + }, + { + "id": 15999, + "x_pos": 3675.5, + "y_pos": 6906.5 + }, + { + "id": 15980, + "x_pos": 3247.5, + "y_pos": 6995.5 + }, + { + "id": 15973, + "x_pos": 3238.5, + "y_pos": 6979 + }, + { + "id": 15970, + "x_pos": 3242.5, + "y_pos": 6959.5 + }, + { + "id": 15960, + "x_pos": 3271, + "y_pos": 6930 + }, + { + "id": 15928, + "x_pos": 3563.5, + "y_pos": 6793 + }, + { + "id": 15925, + "x_pos": 3546, + "y_pos": 6804.5 + }, + { + "id": 15923, + "x_pos": 3191, + "y_pos": 7144 + }, + { + "id": 15922, + "x_pos": 3184.5, + "y_pos": 7106.5 + }, + { + "id": 15920, + "x_pos": 4008, + "y_pos": 7157.5 + }, + { + "id": 15919, + "x_pos": 4008.5, + "y_pos": 7164.5 + }, + { + "id": 15918, + "x_pos": 4012, + "y_pos": 7155 + }, + { + "id": 15916, + "x_pos": 3145.5, + "y_pos": 6665.5 + }, + { + "id": 15913, + "x_pos": 3467.5, + "y_pos": 6593 + }, + { + "id": 15912, + "x_pos": 3469.5, + "y_pos": 6595.5 + }, + { + "id": 15909, + "x_pos": 3471, + "y_pos": 6592.5 + }, + { + "id": 15905, + "x_pos": 3675, + "y_pos": 6619 + }, + { + "id": 15899, + "x_pos": 3692.5, + "y_pos": 6615 + }, + { + "id": 15865, + "x_pos": 3717, + "y_pos": 6624 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210728/8930ad79749f51735d5588ef97f32872_3955574742465159371.png" + }, + "247": { + "name": "Purple Shirakodai", + "clear_name": "PurpleShirakodai", + "points": [ + { + "id": 17215, + "x_pos": 3399.5, + "y_pos": 6779.5 + }, + { + "id": 17208, + "x_pos": 3323, + "y_pos": 6756.5 + }, + { + "id": 17207, + "x_pos": 3207.5, + "y_pos": 5573 + }, + { + "id": 17198, + "x_pos": 1874, + "y_pos": 5719.5 + }, + { + "id": 17190, + "x_pos": 513, + "y_pos": 5896.5 + }, + { + "id": 17184, + "x_pos": 61, + "y_pos": 5965 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/1c092bc85c52fc86aca152f6694f1a0e_6867688196252309931.png" + }, + "251": { + "name": "Pufferfish", + "clear_name": "Pufferfish", + "points": [ + { + "id": 17214, + "x_pos": 3403.5, + "y_pos": 6780 + }, + { + "id": 17201, + "x_pos": 2947.5, + "y_pos": 4879 + }, + { + "id": 17180, + "x_pos": -653, + "y_pos": 3062 + }, + { + "id": 16889, + "x_pos": 58, + "y_pos": 271 + }, + { + "id": 16870, + "x_pos": -497, + "y_pos": 620.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/4d081837e56ebd43c0879666130dfebe_1996513933409704189.png" + }, + "242": { + "name": "Akai Maou", + "clear_name": "AkaiMaou", + "points": [ + { + "id": 17213, + "x_pos": 3325.5, + "y_pos": 6752 + }, + { + "id": 17204, + "x_pos": 2952.5, + "y_pos": 4875 + }, + { + "id": 17178, + "x_pos": -1280, + "y_pos": 2178 + }, + { + "id": 17172, + "x_pos": -806, + "y_pos": 1686.5 + }, + { + "id": 17157, + "x_pos": -1293.5, + "y_pos": 1367 + }, + { + "id": 16894, + "x_pos": 57.5, + "y_pos": 267.5 + }, + { + "id": 16871, + "x_pos": -495, + "y_pos": 616.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/d79d8099ab913f885308563ed6cc69a6_5248974579798155262.png" + }, + "239": { + "name": "Lunged Stickleback", + "clear_name": "LungedStickleback", + "points": [ + { + "id": 17212, + "x_pos": 3320.5, + "y_pos": 6752 + }, + { + "id": 17205, + "x_pos": 3211.5, + "y_pos": 5569 + }, + { + "id": 17203, + "x_pos": 2947.5, + "y_pos": 4875 + }, + { + "id": 17199, + "x_pos": 1875.5, + "y_pos": 5717 + }, + { + "id": 17192, + "x_pos": 515.5, + "y_pos": 5894.5 + }, + { + "id": 17186, + "x_pos": 63, + "y_pos": 5963 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/c96d759c9c72a758de3b30dde1e54305_3238658892155714137.png" + }, + "244": { + "name": "Golden Koi", + "clear_name": "GoldenKoi", + "points": [ + { + "id": 17210, + "x_pos": 3320.5, + "y_pos": 6755 + }, + { + "id": 17177, + "x_pos": -1277.5, + "y_pos": 2178.5 + }, + { + "id": 17169, + "x_pos": -806, + "y_pos": 1689.5 + }, + { + "id": 17153, + "x_pos": -1294, + "y_pos": 1370 + }, + { + "id": 16887, + "x_pos": 584.5, + "y_pos": -430 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/3e65aa27fd314b71d4ad474b4938dd7d_7089238208679764848.png" + }, + "245": { + "name": "Rusty Koi", + "clear_name": "RustyKoi", + "points": [ + { + "id": 17209, + "x_pos": 3325.5, + "y_pos": 6755.5 + }, + { + "id": 17175, + "x_pos": -1277, + "y_pos": 2180.5 + }, + { + "id": 17167, + "x_pos": -801, + "y_pos": 1690 + }, + { + "id": 17154, + "x_pos": -1289, + "y_pos": 1370.5 + }, + { + "id": 16878, + "x_pos": 314, + "y_pos": 42.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/177f71ebcb203218e56849a0977253ea_8319055007876151736.png" + }, + "252": { + "name": "Bitter Pufferfish", + "clear_name": "BitterPufferfish", + "points": [ + { + "id": 17200, + "x_pos": 2952.5, + "y_pos": 4879.5 + }, + { + "id": 17197, + "x_pos": 1877, + "y_pos": 5720.5 + }, + { + "id": 16890, + "x_pos": 60, + "y_pos": 271 + }, + { + "id": 16865, + "x_pos": -494.5, + "y_pos": 622 + }, + { + "id": 16860, + "x_pos": -1190, + "y_pos": 505 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/29dbdc379c07bbb0319b19bcb5146d7d_7008418784153823631.png" + }, + "235": { + "name": "Sweet-Flower Medaka", + "clear_name": "SweetFlowerMedaka", + "points": [ + { + "id": 17181, + "x_pos": -655, + "y_pos": 3060 + }, + { + "id": 17174, + "x_pos": -1279.5, + "y_pos": 2181 + }, + { + "id": 17170, + "x_pos": -803.5, + "y_pos": 1688.5 + }, + { + "id": 17163, + "x_pos": -2403.5, + "y_pos": 1629.5 + }, + { + "id": 17155, + "x_pos": -1291.5, + "y_pos": 1369 + }, + { + "id": 17151, + "x_pos": -2339.5, + "y_pos": 1181 + }, + { + "id": 16862, + "x_pos": -1192.5, + "y_pos": 504 + }, + { + "id": 16858, + "x_pos": -1163, + "y_pos": 1010 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/39e4e58062fc81109a2284a0f7dba7e7_4836412121549584085.png" + }, + "240": { + "name": "Betta", + "clear_name": "Betta", + "points": [ + { + "id": 17179, + "x_pos": -657, + "y_pos": 3062 + }, + { + "id": 17176, + "x_pos": -1282, + "y_pos": 2180 + }, + { + "id": 17171, + "x_pos": -801.5, + "y_pos": 1686.5 + }, + { + "id": 17164, + "x_pos": -2085, + "y_pos": 2179.5 + }, + { + "id": 17161, + "x_pos": -2398.5, + "y_pos": 1633 + }, + { + "id": 17156, + "x_pos": -1289.5, + "y_pos": 1367.5 + }, + { + "id": 16905, + "x_pos": -1880, + "y_pos": 789 + }, + { + "id": 16861, + "x_pos": -1195, + "y_pos": 505 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/ca977ea3a679616cc5199fc28adffedc_3480458975965199093.png" + }, + "246": { + "name": "Brown Shirakodai", + "clear_name": "BrownShirakodai", + "points": [ + { + "id": 17173, + "x_pos": -1277, + "y_pos": 2183 + }, + { + "id": 17168, + "x_pos": -803.5, + "y_pos": 1691 + }, + { + "id": 17158, + "x_pos": -2401.5, + "y_pos": 1634.5 + }, + { + "id": 17152, + "x_pos": -1291.5, + "y_pos": 1371.5 + }, + { + "id": 17144, + "x_pos": -1755, + "y_pos": 956 + }, + { + "id": 16904, + "x_pos": -1878.5, + "y_pos": 791.5 + }, + { + "id": 16859, + "x_pos": -1192.5, + "y_pos": 506 + }, + { + "id": 16856, + "x_pos": -1163, + "y_pos": 1013.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/652e137f1b983b8b2e79b8a99c89d9ee_6350020359542918263.png" + }, + "249": { + "name": "Abiding Angelfish", + "clear_name": "AbidingAngelfish", + "points": [ + { + "id": 17148, + "x_pos": -2334.5, + "y_pos": 1184 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/9f26c3dfe3c28c9d2dcb8e3465acd863_5488722030313993481.png" + }, + "236": { + "name": "Aizen Medaka", + "clear_name": "AizenMedaka", + "points": [ + { + "id": 16901, + "x_pos": -810, + "y_pos": -563 + }, + { + "id": 16896, + "x_pos": -871, + "y_pos": -173 + }, + { + "id": 16888, + "x_pos": 61, + "y_pos": 269.5 + }, + { + "id": 16885, + "x_pos": 586, + "y_pos": -429 + }, + { + "id": 16877, + "x_pos": 312, + "y_pos": 41 + }, + { + "id": 16872, + "x_pos": 522.5, + "y_pos": 473 + }, + { + "id": 16869, + "x_pos": -494.5, + "y_pos": 619.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/549223649c9505ac954e544a2d1ad341_4692641212802909650.png" + }, + "248": { + "name": "Tea-Colored Shirakodai", + "clear_name": "TeaColoredShirakodai", + "points": [ + { + "id": 16895, + "x_pos": -869.5, + "y_pos": -171 + }, + { + "id": 16892, + "x_pos": 56.5, + "y_pos": 269.5 + }, + { + "id": 16884, + "x_pos": 587, + "y_pos": -429.5 + }, + { + "id": 16876, + "x_pos": 316, + "y_pos": 42.5 + }, + { + "id": 16873, + "x_pos": 524, + "y_pos": 475 + }, + { + "id": 16868, + "x_pos": -497, + "y_pos": 617.5 + }, + { + "id": 16854, + "x_pos": -138.5, + "y_pos": 1336 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/cd36a883aa3fbe95e8c67e52dcaca7d2_6579274992395941390.png" + }, + "241": { + "name": "Venomspine Fish", + "clear_name": "VenomspineFish", + "points": [ + { + "id": 16893, + "x_pos": 60, + "y_pos": 267.5 + }, + { + "id": 16881, + "x_pos": 587, + "y_pos": -427.5 + }, + { + "id": 16879, + "x_pos": 316.5, + "y_pos": 40.5 + }, + { + "id": 16874, + "x_pos": 526, + "y_pos": 474 + }, + { + "id": 16866, + "x_pos": -492, + "y_pos": 621 + }, + { + "id": 16853, + "x_pos": -141.5, + "y_pos": 1336.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/c4285c53101856d43ec8d5ce83b0773a_8579317499076034916.png" + }, + "243": { + "name": "Snowstrider", + "clear_name": "Snowstrider", + "points": [ + { + "id": 16851, + "x_pos": -137.5, + "y_pos": 1338.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/c493dfc7555d3e562cf00f96c76da732_5208485418705325984.png" + }, + "250": { + "name": "Raimei Angelfish", + "clear_name": "RaimeiAngelfish", + "points": [ + { + "id": 16850, + "x_pos": 2878, + "y_pos": 5906 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/f7f203299d5fd0e11094ba5f9fa882e5_3020637751506460112.png" + }, + "225": { + "name": "Kid Kujirai", + "clear_name": "KidKujirai", + "points": [ + { + "id": 16818, + "x_pos": 3088, + "y_pos": 6662.5 + }, + { + "id": 16817, + "x_pos": -68, + "y_pos": 6029.999969482422 + }, + { + "id": 15433, + "x_pos": 3390, + "y_pos": 4736 + }, + { + "id": 15432, + "x_pos": 3967.5, + "y_pos": 5579 + }, + { + "id": 15431, + "x_pos": 2437, + "y_pos": 6275 + }, + { + "id": 15430, + "x_pos": 2213.5, + "y_pos": 5949 + }, + { + "id": 15429, + "x_pos": 1511.5, + "y_pos": 6219.5 + }, + { + "id": 15428, + "x_pos": 1534, + "y_pos": 6294 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210727/3794d72a412aec7fc99549b06ab59689_971848779535696228.png" + }, + "198": { + "name": "Dendrobium", + "clear_name": "Dendrobium", + "points": [ + { + "id": 15812, + "x_pos": 1892, + "y_pos": 5877 + }, + { + "id": 15798, + "x_pos": 1892.5, + "y_pos": 5898.5 + }, + { + "id": 15797, + "x_pos": 1884, + "y_pos": 5881 + }, + { + "id": 15796, + "x_pos": 1910, + "y_pos": 5789 + }, + { + "id": 15793, + "x_pos": 1588, + "y_pos": 6220 + }, + { + "id": 15792, + "x_pos": 1590, + "y_pos": 6225 + }, + { + "id": 15791, + "x_pos": 1585.5, + "y_pos": 6225.5 + }, + { + "id": 15033, + "x_pos": 1630.4706318729432, + "y_pos": 6277.003046411935 + }, + { + "id": 15032, + "x_pos": 1632, + "y_pos": 6277.5 + }, + { + "id": 15030, + "x_pos": 1557, + "y_pos": 6279.5 + }, + { + "id": 14551, + "x_pos": 1988.9005271729502, + "y_pos": 5953.199096926477 + }, + { + "id": 14549, + "x_pos": 1992.5, + "y_pos": 5856.5 + }, + { + "id": 14548, + "x_pos": 2006.5, + "y_pos": 5859 + }, + { + "id": 14547, + "x_pos": 2031.5, + "y_pos": 5877.5 + }, + { + "id": 13701, + "x_pos": 2644.5, + "y_pos": 5547 + }, + { + "id": 13700, + "x_pos": 2623.5, + "y_pos": 5551 + }, + { + "id": 13699, + "x_pos": 2644.5, + "y_pos": 5558 + }, + { + "id": 13698, + "x_pos": 2647, + "y_pos": 5568 + }, + { + "id": 13697, + "x_pos": 2660.5, + "y_pos": 5586 + }, + { + "id": 13696, + "x_pos": 2550.5, + "y_pos": 5532.5 + }, + { + "id": 13551, + "x_pos": 1611, + "y_pos": 6300.5 + }, + { + "id": 13550, + "x_pos": 1599.5, + "y_pos": 6307.5 + }, + { + "id": 12599, + "x_pos": 1567.5, + "y_pos": 6234.5 + }, + { + "id": 12592, + "x_pos": 1573.5, + "y_pos": 6235 + }, + { + "id": 12584, + "x_pos": 1573, + "y_pos": 6237.5 + }, + { + "id": 12580, + "x_pos": 1593, + "y_pos": 6304.5 + }, + { + "id": 12508, + "x_pos": 1768.5, + "y_pos": 5867.5 + }, + { + "id": 12506, + "x_pos": 1820, + "y_pos": 5826 + }, + { + "id": 12503, + "x_pos": 1782.5, + "y_pos": 5867 + }, + { + "id": 12502, + "x_pos": 1817.5, + "y_pos": 5836 + }, + { + "id": 12499, + "x_pos": 1847, + "y_pos": 5860 + }, + { + "id": 12498, + "x_pos": 1877.5, + "y_pos": 5810.5 + }, + { + "id": 12492, + "x_pos": 1869.5, + "y_pos": 5905 + }, + { + "id": 12489, + "x_pos": 1900, + "y_pos": 5882.5 + }, + { + "id": 12487, + "x_pos": 1972.5, + "y_pos": 5880.5 + }, + { + "id": 12485, + "x_pos": 1906, + "y_pos": 5823.5 + }, + { + "id": 12483, + "x_pos": 1873.5, + "y_pos": 5758 + }, + { + "id": 12480, + "x_pos": 1906, + "y_pos": 5746.5 + }, + { + "id": 12477, + "x_pos": 1974, + "y_pos": 5719 + }, + { + "id": 12474, + "x_pos": 1995.5, + "y_pos": 5750 + }, + { + "id": 12472, + "x_pos": 2019.5, + "y_pos": 5785.5 + }, + { + "id": 12471, + "x_pos": 2048.5, + "y_pos": 5862.5 + }, + { + "id": 12469, + "x_pos": 2044, + "y_pos": 5865 + }, + { + "id": 12466, + "x_pos": 2113, + "y_pos": 5917.5 + }, + { + "id": 12463, + "x_pos": 2073.5, + "y_pos": 5885 + }, + { + "id": 12460, + "x_pos": 2116.5, + "y_pos": 5935 + }, + { + "id": 12454, + "x_pos": 2151.5, + "y_pos": 5961.5 + }, + { + "id": 12232, + "x_pos": 2547.5, + "y_pos": 5546.5 + }, + { + "id": 12230, + "x_pos": 2598.5, + "y_pos": 5557.5 + }, + { + "id": 12220, + "x_pos": 2515, + "y_pos": 5457.5 + }, + { + "id": 12219, + "x_pos": 2502.5, + "y_pos": 5492.5 + }, + { + "id": 12217, + "x_pos": 2460.5, + "y_pos": 5311.5 + }, + { + "id": 12214, + "x_pos": 2451.5, + "y_pos": 5317.5 + }, + { + "id": 12212, + "x_pos": 2466.5, + "y_pos": 5318 + }, + { + "id": 12210, + "x_pos": 2459.5, + "y_pos": 5321.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/6b49bd2414c9e194b4eb31d754351ed5_727978745745109106.png" + }, + "142": { + "name": "Scarlet Quartz", + "clear_name": "ScarletQuartz", + "points": [ + { + "id": 15802, + "x_pos": -252, + "y_pos": 1123.5 + }, + { + "id": 7454, + "x_pos": 279.5, + "y_pos": 1124.5 + }, + { + "id": 7395, + "x_pos": 96.5, + "y_pos": 1187.5 + }, + { + "id": 7394, + "x_pos": 199.5, + "y_pos": 1310.5 + }, + { + "id": 7393, + "x_pos": 24.5, + "y_pos": 1304 + }, + { + "id": 7392, + "x_pos": 100, + "y_pos": 1324.5 + }, + { + "id": 7391, + "x_pos": 662, + "y_pos": 1251.5 + }, + { + "id": 7390, + "x_pos": 250.5, + "y_pos": 1309 + }, + { + "id": 7389, + "x_pos": 230, + "y_pos": 1320.5 + }, + { + "id": 7346, + "x_pos": -41.5, + "y_pos": 970.5 + }, + { + "id": 7282, + "x_pos": -74, + "y_pos": 956.5 + }, + { + "id": 7278, + "x_pos": 492.5, + "y_pos": 1424 + }, + { + "id": 7277, + "x_pos": -82, + "y_pos": 1511 + }, + { + "id": 7276, + "x_pos": 384.5, + "y_pos": 883 + }, + { + "id": 7275, + "x_pos": 19.5, + "y_pos": 1726.5 + }, + { + "id": 7274, + "x_pos": 376, + "y_pos": 896.5 + }, + { + "id": 6857, + "x_pos": 44, + "y_pos": 998 + }, + { + "id": 6851, + "x_pos": 66.5, + "y_pos": 967 + }, + { + "id": 6848, + "x_pos": 45.5, + "y_pos": 1002 + }, + { + "id": 6845, + "x_pos": 44, + "y_pos": 1004.5 + }, + { + "id": 6843, + "x_pos": -75, + "y_pos": 1346.5 + }, + { + "id": 6839, + "x_pos": 265, + "y_pos": 885 + }, + { + "id": 6833, + "x_pos": 4, + "y_pos": 955.5 + }, + { + "id": 6829, + "x_pos": 290.5, + "y_pos": 996.5 + }, + { + "id": 6827, + "x_pos": -73, + "y_pos": 1347 + }, + { + "id": 6826, + "x_pos": 270, + "y_pos": 1000.5 + }, + { + "id": 6822, + "x_pos": -96.5, + "y_pos": 1305.5 + }, + { + "id": 6820, + "x_pos": 166.5, + "y_pos": 981.5 + }, + { + "id": 6812, + "x_pos": 306, + "y_pos": 890.5 + }, + { + "id": 6810, + "x_pos": 153.5, + "y_pos": 1014 + }, + { + "id": 6803, + "x_pos": -75, + "y_pos": 1375 + }, + { + "id": 6799, + "x_pos": -7.5, + "y_pos": 968.5 + }, + { + "id": 6793, + "x_pos": 38.5, + "y_pos": 1001 + }, + { + "id": 6789, + "x_pos": 274, + "y_pos": 1036 + }, + { + "id": 6787, + "x_pos": -55, + "y_pos": 1378 + }, + { + "id": 6782, + "x_pos": -188, + "y_pos": 1359 + }, + { + "id": 6779, + "x_pos": 315, + "y_pos": 899 + }, + { + "id": 6774, + "x_pos": -351.5, + "y_pos": 1058.5 + }, + { + "id": 6770, + "x_pos": 321.5, + "y_pos": 1030.5 + }, + { + "id": 6764, + "x_pos": 281.5, + "y_pos": 1064.5 + }, + { + "id": 6758, + "x_pos": 41.5, + "y_pos": 1393 + }, + { + "id": 6755, + "x_pos": 53, + "y_pos": 1013.5 + }, + { + "id": 6748, + "x_pos": -362, + "y_pos": 1128.5 + }, + { + "id": 6745, + "x_pos": 237.5, + "y_pos": 1176 + }, + { + "id": 6736, + "x_pos": 244, + "y_pos": 1189 + }, + { + "id": 6735, + "x_pos": 309, + "y_pos": 1003.5 + }, + { + "id": 6730, + "x_pos": -193, + "y_pos": 1350 + }, + { + "id": 6720, + "x_pos": 523, + "y_pos": 1504 + }, + { + "id": 6718, + "x_pos": 515.5, + "y_pos": 1497.5 + }, + { + "id": 6717, + "x_pos": 200, + "y_pos": 1100 + }, + { + "id": 6713, + "x_pos": 204, + "y_pos": 1403.5 + }, + { + "id": 6711, + "x_pos": 534.5, + "y_pos": 1527.5 + }, + { + "id": 6708, + "x_pos": 29, + "y_pos": 1402.5 + }, + { + "id": 6704, + "x_pos": 541, + "y_pos": 1531.5 + }, + { + "id": 6692, + "x_pos": 520, + "y_pos": 1517.5 + }, + { + "id": 6691, + "x_pos": -225, + "y_pos": 1400.5 + }, + { + "id": 6690, + "x_pos": -105.5, + "y_pos": 1471 + }, + { + "id": 6682, + "x_pos": 253, + "y_pos": 1105.5 + }, + { + "id": 6679, + "x_pos": 190, + "y_pos": 1377.5 + }, + { + "id": 6677, + "x_pos": 195, + "y_pos": 1106 + }, + { + "id": 6672, + "x_pos": 54, + "y_pos": 1016.5 + }, + { + "id": 6668, + "x_pos": -21, + "y_pos": 848.5 + }, + { + "id": 6662, + "x_pos": -96.5, + "y_pos": 853 + }, + { + "id": 6654, + "x_pos": 143, + "y_pos": 759 + }, + { + "id": 6651, + "x_pos": 149.5, + "y_pos": 786.5 + }, + { + "id": 6648, + "x_pos": 147, + "y_pos": 839 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/8d7dd881ea24a9443257883fb7bf14b3_7659258338215423698.png" + }, + "211": { + "name": "Crystal Marrow", + "clear_name": "CrystalMarrow", + "points": [ + { + "id": 15795, + "x_pos": 1806.5, + "y_pos": 6184.5 + }, + { + "id": 15794, + "x_pos": 1742, + "y_pos": 6151 + }, + { + "id": 15037, + "x_pos": 1874.078552103013, + "y_pos": 6280.23991258097 + }, + { + "id": 15036, + "x_pos": 1862.1015724096005, + "y_pos": 6285.3042833151485 + }, + { + "id": 13137, + "x_pos": 1266.8999938964844, + "y_pos": 5942.332643807489 + }, + { + "id": 12713, + "x_pos": 1211.2999572753906, + "y_pos": 5830.100028991699 + }, + { + "id": 12710, + "x_pos": 1210.3999328613281, + "y_pos": 5840.500022888184 + }, + { + "id": 12709, + "x_pos": 1202.1000061035156, + "y_pos": 5847.500022888184 + }, + { + "id": 12708, + "x_pos": 1218.6999816894531, + "y_pos": 5887.200004577637 + }, + { + "id": 12707, + "x_pos": 1202.6000366210938, + "y_pos": 5891.9999923706055 + }, + { + "id": 12706, + "x_pos": 1224, + "y_pos": 5925.900001525879 + }, + { + "id": 12705, + "x_pos": 1219.8999938964844, + "y_pos": 5911.400001525879 + }, + { + "id": 12694, + "x_pos": 1419, + "y_pos": 5923.400001525879 + }, + { + "id": 12693, + "x_pos": 1405.0000305175781, + "y_pos": 5927.10001373291 + }, + { + "id": 12691, + "x_pos": 1452.5, + "y_pos": 5940.900001525879 + }, + { + "id": 12690, + "x_pos": 1436.3999938964844, + "y_pos": 5940.300010681152 + }, + { + "id": 12686, + "x_pos": 1469, + "y_pos": 5948.400001525879 + }, + { + "id": 12678, + "x_pos": 1596.1000061035156, + "y_pos": 5958.899971008301 + }, + { + "id": 12677, + "x_pos": 1605.2000122070312, + "y_pos": 5969.200004577637 + }, + { + "id": 12672, + "x_pos": 1609.8999938964844, + "y_pos": 5984.400001525879 + }, + { + "id": 12667, + "x_pos": 1620.8000183105469, + "y_pos": 5993.300010681152 + }, + { + "id": 12664, + "x_pos": 1618.9999389648438, + "y_pos": 6000.39998626709 + }, + { + "id": 12663, + "x_pos": 1631, + "y_pos": 6019.400001525879 + }, + { + "id": 12660, + "x_pos": 1625.8999938964844, + "y_pos": 6057.10001373291 + }, + { + "id": 12658, + "x_pos": 1633.3999938964844, + "y_pos": 6067.39998626709 + }, + { + "id": 12655, + "x_pos": 1704.5, + "y_pos": 6152.900001525879 + }, + { + "id": 12653, + "x_pos": 1708.1000366210938, + "y_pos": 6151.60001373291 + }, + { + "id": 12649, + "x_pos": 1722.3000183105469, + "y_pos": 6151.5000076293945 + }, + { + "id": 12646, + "x_pos": 1780.1999816894531, + "y_pos": 6155.900032043457 + }, + { + "id": 12631, + "x_pos": 1629.4999694824219, + "y_pos": 6159.700019836426 + }, + { + "id": 12622, + "x_pos": 1584.4000244140625, + "y_pos": 6187.199989318848 + }, + { + "id": 12613, + "x_pos": 1567, + "y_pos": 6198.400001525879 + }, + { + "id": 12609, + "x_pos": 1538.5, + "y_pos": 6215.5 + }, + { + "id": 12607, + "x_pos": 1513.5, + "y_pos": 6213.5 + }, + { + "id": 12602, + "x_pos": 1535, + "y_pos": 6214 + }, + { + "id": 12589, + "x_pos": 1507.5, + "y_pos": 6239.900001525879 + }, + { + "id": 12572, + "x_pos": 1734.0000305175781, + "y_pos": 6163.300010681152 + }, + { + "id": 12568, + "x_pos": 1768.8000183105469, + "y_pos": 6168.900016784668 + }, + { + "id": 12563, + "x_pos": 1717.3999938964844, + "y_pos": 6169.5000076293945 + }, + { + "id": 12561, + "x_pos": 1781.5, + "y_pos": 6178.10001373291 + }, + { + "id": 12558, + "x_pos": 1804, + "y_pos": 6190.900001525879 + }, + { + "id": 12554, + "x_pos": 1812.7999572753906, + "y_pos": 6191.4999923706055 + }, + { + "id": 12549, + "x_pos": 1609.5, + "y_pos": 6372.400001525879 + }, + { + "id": 12546, + "x_pos": 1798.0999755859375, + "y_pos": 6294.800010681152 + }, + { + "id": 12543, + "x_pos": 1794.9999694824219, + "y_pos": 6299.400016784668 + }, + { + "id": 12540, + "x_pos": 1744.4999694824219, + "y_pos": 6327.400001525879 + }, + { + "id": 12536, + "x_pos": 1745.3000183105469, + "y_pos": 6335.400016784668 + }, + { + "id": 12533, + "x_pos": 1757.5, + "y_pos": 6336.200004577637 + }, + { + "id": 12532, + "x_pos": 1773.2999877929688, + "y_pos": 6322.599983215332 + }, + { + "id": 12530, + "x_pos": 1751.5, + "y_pos": 6336.900001525879 + }, + { + "id": 12528, + "x_pos": 1766.5, + "y_pos": 6324.900001525879 + }, + { + "id": 12526, + "x_pos": 1809.2999877929688, + "y_pos": 6267.599998474121 + }, + { + "id": 12523, + "x_pos": 1805.8000183105469, + "y_pos": 6192.0000076293945 + }, + { + "id": 12443, + "x_pos": 2205.8999938964844, + "y_pos": 6017.400016784668 + }, + { + "id": 12440, + "x_pos": 2285.600067138672, + "y_pos": 6000.599998474121 + }, + { + "id": 12439, + "x_pos": 2278.100067138672, + "y_pos": 6002.800025939941 + }, + { + "id": 12431, + "x_pos": 2256.4000244140625, + "y_pos": 6021.60001373291 + }, + { + "id": 12425, + "x_pos": 2260.7000122070312, + "y_pos": 6024.200004577637 + }, + { + "id": 12422, + "x_pos": 2297.5, + "y_pos": 6005.400001525879 + }, + { + "id": 12420, + "x_pos": 2266.000030517578, + "y_pos": 6027.60001373291 + }, + { + "id": 12418, + "x_pos": 2269.0999755859375, + "y_pos": 6031.39998626709 + }, + { + "id": 12416, + "x_pos": 2271.9000244140625, + "y_pos": 6025.5000076293945 + }, + { + "id": 12413, + "x_pos": 2263.999969482422, + "y_pos": 6036.900001525879 + }, + { + "id": 12411, + "x_pos": 2277.1000366210938, + "y_pos": 6044.699989318848 + }, + { + "id": 12408, + "x_pos": 2293.500030517578, + "y_pos": 6006.0000076293945 + }, + { + "id": 12402, + "x_pos": 2225.1000061035156, + "y_pos": 6059.900016784668 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/9d09e681cc4409e84a883177a18f27e4_1933260267132351165.png" + }, + "29": { + "name": "Valberry", + "clear_name": "Valberry", + "points": [ + { + "id": 15790, + "x_pos": 507, + "y_pos": -441 + }, + { + "id": 9298, + "x_pos": 973, + "y_pos": -611 + }, + { + "id": 9153, + "x_pos": 561, + "y_pos": -351 + }, + { + "id": 9152, + "x_pos": 603.5, + "y_pos": -524.5 + }, + { + "id": 6002, + "x_pos": 429.5, + "y_pos": -361.5 + }, + { + "id": 6001, + "x_pos": 315.5, + "y_pos": -456.5 + }, + { + "id": 762, + "x_pos": 396, + "y_pos": -455 + }, + { + "id": 712, + "x_pos": 874.5, + "y_pos": -600 + }, + { + "id": 355, + "x_pos": 327.5, + "y_pos": -317 + }, + { + "id": 354, + "x_pos": 371, + "y_pos": -280.5 + }, + { + "id": 352, + "x_pos": 622, + "y_pos": -361.5 + }, + { + "id": 351, + "x_pos": 696.5, + "y_pos": -349.5 + }, + { + "id": 350, + "x_pos": 741, + "y_pos": -345.5 + }, + { + "id": 349, + "x_pos": 1016.5, + "y_pos": -610 + }, + { + "id": 348, + "x_pos": 1099.5, + "y_pos": -523.5 + }, + { + "id": 347, + "x_pos": 670, + "y_pos": -426 + }, + { + "id": 346, + "x_pos": 708, + "y_pos": -517.5 + }, + { + "id": 345, + "x_pos": 653, + "y_pos": -649 + }, + { + "id": 344, + "x_pos": 499, + "y_pos": -619.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/7f5bc37c3574dfa608dd423d3855f92a_75362034087454100.png" + }, + "124": { + "name": "Matsutake", + "clear_name": "Matsutake", + "points": [ + { + "id": 15740, + "x_pos": -2305.4000549316406, + "y_pos": 1032.251804816738 + }, + { + "id": 15023, + "x_pos": 2688, + "y_pos": 5901.5 + }, + { + "id": 14208, + "x_pos": 3117, + "y_pos": 4884.5 + }, + { + "id": 11953, + "x_pos": -1788.9421225887154, + "y_pos": 1146.3552731338104 + }, + { + "id": 11905, + "x_pos": 847.6983947753906, + "y_pos": 321.58448791503906 + }, + { + "id": 11842, + "x_pos": 904.0597839355469, + "y_pos": 204.05703735351562 + }, + { + "id": 11838, + "x_pos": 859.8740844726562, + "y_pos": 142.26715087890625 + }, + { + "id": 11829, + "x_pos": -783, + "y_pos": 72.5 + }, + { + "id": 11827, + "x_pos": -800.5, + "y_pos": 210 + }, + { + "id": 11825, + "x_pos": -817, + "y_pos": 542.5 + }, + { + "id": 11821, + "x_pos": -1237.5, + "y_pos": 784 + }, + { + "id": 11820, + "x_pos": -905, + "y_pos": 956 + }, + { + "id": 11819, + "x_pos": -606, + "y_pos": 1411 + }, + { + "id": 10894, + "x_pos": -911.5, + "y_pos": 863.5 + }, + { + "id": 10883, + "x_pos": 933.5, + "y_pos": 1121 + }, + { + "id": 10839, + "x_pos": 1253.5, + "y_pos": 787 + }, + { + "id": 10838, + "x_pos": 854.5, + "y_pos": 687.5 + }, + { + "id": 10837, + "x_pos": 741.5, + "y_pos": 675.5 + }, + { + "id": 10836, + "x_pos": 639.5, + "y_pos": 734 + }, + { + "id": 10835, + "x_pos": 753.5, + "y_pos": 812 + }, + { + "id": 10834, + "x_pos": 362.5, + "y_pos": 620.5 + }, + { + "id": 10833, + "x_pos": 382.5, + "y_pos": 784 + }, + { + "id": 10832, + "x_pos": 433, + "y_pos": 825.5 + }, + { + "id": 10831, + "x_pos": 703, + "y_pos": 1010 + }, + { + "id": 10830, + "x_pos": -1038, + "y_pos": -210.5 + }, + { + "id": 10828, + "x_pos": -395.5, + "y_pos": 377 + }, + { + "id": 10826, + "x_pos": -353.5, + "y_pos": 1709 + }, + { + "id": 10825, + "x_pos": -419, + "y_pos": 1694 + }, + { + "id": 10815, + "x_pos": 1004, + "y_pos": 115.5 + }, + { + "id": 10811, + "x_pos": 882.6223741113272, + "y_pos": 3.428310176697778 + }, + { + "id": 10801, + "x_pos": 831.6577788531577, + "y_pos": -215.75959100275713 + }, + { + "id": 10796, + "x_pos": 942.9369408686425, + "y_pos": -319.7973945700305 + }, + { + "id": 10776, + "x_pos": -1200.5, + "y_pos": 1990.5 + }, + { + "id": 10688, + "x_pos": -1202.5, + "y_pos": 1992.5 + }, + { + "id": 10687, + "x_pos": -992, + "y_pos": 1834.5 + }, + { + "id": 10686, + "x_pos": -1022, + "y_pos": 2029.5 + }, + { + "id": 10685, + "x_pos": -1014.5, + "y_pos": 2258.5 + }, + { + "id": 10684, + "x_pos": -1003, + "y_pos": 2272.5 + }, + { + "id": 10679, + "x_pos": -1839.5, + "y_pos": 2271.5 + }, + { + "id": 10678, + "x_pos": -1816.5, + "y_pos": 2275.5 + }, + { + "id": 10677, + "x_pos": -1876, + "y_pos": 2268 + }, + { + "id": 10676, + "x_pos": -1884.5, + "y_pos": 2074 + }, + { + "id": 10664, + "x_pos": -2316.5, + "y_pos": 999 + }, + { + "id": 10371, + "x_pos": 948.9504820034199, + "y_pos": 260.97103522974476 + }, + { + "id": 10370, + "x_pos": 889.8233332986265, + "y_pos": 253.0707377364697 + }, + { + "id": 10069, + "x_pos": 618.5, + "y_pos": 1020 + }, + { + "id": 10066, + "x_pos": 532, + "y_pos": 1051.5 + }, + { + "id": 10064, + "x_pos": 527.5, + "y_pos": 1052 + }, + { + "id": 10062, + "x_pos": 523, + "y_pos": 1060 + }, + { + "id": 10061, + "x_pos": 605.5, + "y_pos": 1092.5 + }, + { + "id": 10051, + "x_pos": 712.5, + "y_pos": 1167 + }, + { + "id": 10050, + "x_pos": 723.5, + "y_pos": 1135.5 + }, + { + "id": 10049, + "x_pos": 719, + "y_pos": 1137.5 + }, + { + "id": 10048, + "x_pos": 725.5, + "y_pos": 1219 + }, + { + "id": 10043, + "x_pos": 810.5, + "y_pos": 1178.5 + }, + { + "id": 10031, + "x_pos": 906.5, + "y_pos": 1131 + }, + { + "id": 10024, + "x_pos": 1008, + "y_pos": 1044.5 + }, + { + "id": 10018, + "x_pos": 1113.5, + "y_pos": 1086.5 + }, + { + "id": 9511, + "x_pos": -1367.3015518921748, + "y_pos": 1377.852746544786 + }, + { + "id": 9510, + "x_pos": -1346.5760110979227, + "y_pos": 1935.081840390505 + }, + { + "id": 9399, + "x_pos": -2459.2994596330777, + "y_pos": 1980.2982997473855 + }, + { + "id": 9396, + "x_pos": -453.5, + "y_pos": 1353 + }, + { + "id": 9370, + "x_pos": -662.5, + "y_pos": 1393.5 + }, + { + "id": 9289, + "x_pos": 558.5, + "y_pos": 131.5 + }, + { + "id": 9270, + "x_pos": 496, + "y_pos": -34 + }, + { + "id": 9265, + "x_pos": 941.5, + "y_pos": -122 + }, + { + "id": 9264, + "x_pos": 979, + "y_pos": -111 + }, + { + "id": 9262, + "x_pos": 970, + "y_pos": -111 + }, + { + "id": 9261, + "x_pos": 473, + "y_pos": 68.5 + }, + { + "id": 9172, + "x_pos": 318, + "y_pos": -437 + }, + { + "id": 9171, + "x_pos": 619.5, + "y_pos": -133 + }, + { + "id": 9170, + "x_pos": 597.5, + "y_pos": -124.5 + }, + { + "id": 9169, + "x_pos": 518, + "y_pos": 197.5 + }, + { + "id": 8859, + "x_pos": -506.8334273207747, + "y_pos": 1685.2213608397788 + }, + { + "id": 8858, + "x_pos": -412.4455250971314, + "y_pos": 1510.0553249571167 + }, + { + "id": 8857, + "x_pos": -664.5, + "y_pos": 1630.5553249571167 + }, + { + "id": 8856, + "x_pos": -464.4444961172485, + "y_pos": 1667.0553249571167 + }, + { + "id": 8735, + "x_pos": -939.7744976058148, + "y_pos": 603.3718383608184 + }, + { + "id": 8734, + "x_pos": -941.1366611382309, + "y_pos": 612.9606237702556 + }, + { + "id": 8733, + "x_pos": -930.3324442045005, + "y_pos": 599.4071918750365 + }, + { + "id": 8728, + "x_pos": -855.3659663098915, + "y_pos": 667.0902541527207 + }, + { + "id": 7863, + "x_pos": -399, + "y_pos": -437 + }, + { + "id": 7862, + "x_pos": -397.5, + "y_pos": -275 + }, + { + "id": 7860, + "x_pos": -381.5, + "y_pos": -272.5 + }, + { + "id": 7859, + "x_pos": -418, + "y_pos": -397.5 + }, + { + "id": 7858, + "x_pos": -327.5, + "y_pos": -43.5 + }, + { + "id": 7857, + "x_pos": 799, + "y_pos": -590.5 + }, + { + "id": 7856, + "x_pos": 716, + "y_pos": -577.5 + }, + { + "id": 7855, + "x_pos": 492, + "y_pos": -432 + }, + { + "id": 7854, + "x_pos": 830.5, + "y_pos": -603 + }, + { + "id": 7853, + "x_pos": 923, + "y_pos": -464.5 + }, + { + "id": 7852, + "x_pos": -62, + "y_pos": 269.5 + }, + { + "id": 7851, + "x_pos": -617, + "y_pos": 365 + }, + { + "id": 7850, + "x_pos": -246.5, + "y_pos": 397 + }, + { + "id": 7849, + "x_pos": 16.5, + "y_pos": 312.5 + }, + { + "id": 7848, + "x_pos": 1057, + "y_pos": -612.5 + }, + { + "id": 7847, + "x_pos": 48.5, + "y_pos": 535 + }, + { + "id": 7846, + "x_pos": 103.5, + "y_pos": 547.5 + }, + { + "id": 7845, + "x_pos": 184.5, + "y_pos": 566 + }, + { + "id": 7844, + "x_pos": 252, + "y_pos": 548 + }, + { + "id": 7843, + "x_pos": 0, + "y_pos": 570 + }, + { + "id": 7842, + "x_pos": 136, + "y_pos": 625 + }, + { + "id": 7841, + "x_pos": -51.5, + "y_pos": 620.5 + }, + { + "id": 7840, + "x_pos": 1047, + "y_pos": -564 + }, + { + "id": 7213, + "x_pos": -114.5, + "y_pos": 548 + }, + { + "id": 7211, + "x_pos": -98.00064960821601, + "y_pos": 561.4971823490314 + }, + { + "id": 7195, + "x_pos": -1575, + "y_pos": 1570 + }, + { + "id": 6348, + "x_pos": -109.5, + "y_pos": 543 + }, + { + "id": 6208, + "x_pos": -2179.365924511052, + "y_pos": 2014.4549176764967 + }, + { + "id": 6205, + "x_pos": -2190.999133855712, + "y_pos": 2016.0004025215667 + }, + { + "id": 6099, + "x_pos": 578.499350391784, + "y_pos": 14.004427737236256 + }, + { + "id": 6098, + "x_pos": 470.5, + "y_pos": -515.5004025215671 + }, + { + "id": 6073, + "x_pos": -1802.00627954609, + "y_pos": 2008.0052327803705 + }, + { + "id": 6072, + "x_pos": -1806.500216536072, + "y_pos": 2009.0004025215676 + }, + { + "id": 6059, + "x_pos": -295.999350391784, + "y_pos": 299.0020126078348 + }, + { + "id": 6056, + "x_pos": -226.49783463927906, + "y_pos": 259.00241512940147 + }, + { + "id": 6037, + "x_pos": 511.999566927856, + "y_pos": -639.5036226941024 + }, + { + "id": 5997, + "x_pos": 475, + "y_pos": -379.9967798274647 + }, + { + "id": 5611, + "x_pos": 1189.6420873236139, + "y_pos": 908.9661882803712 + }, + { + "id": 5609, + "x_pos": -1656.500866144288, + "y_pos": 1750.002822201317 + }, + { + "id": 5608, + "x_pos": -1665.500649608216, + "y_pos": 1751.998118532455 + }, + { + "id": 5418, + "x_pos": 769.499350391784, + "y_pos": 676.0052327803701 + }, + { + "id": 5412, + "x_pos": 790.000649608216, + "y_pos": 808.0004025215671 + }, + { + "id": 5389, + "x_pos": -1609.999133855712, + "y_pos": 1332.0016100862676 + }, + { + "id": 5387, + "x_pos": -1605.500216536072, + "y_pos": 1341.5028176509686 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/7c072e0281e39ca93198c7e8461c3ebd_9100116309988175626.png" + }, + "259": { + "name": "Sword Hilt", + "clear_name": "SwordHilt", + "points": [ + { + "id": 15684, + "x_pos": 1734, + "y_pos": 5892 + }, + { + "id": 15682, + "x_pos": 1889, + "y_pos": 6133.5 + }, + { + "id": 15680, + "x_pos": 1484, + "y_pos": 6018 + }, + { + "id": 15679, + "x_pos": 1820, + "y_pos": 6344.5 + }, + { + "id": 15677, + "x_pos": 1411.5, + "y_pos": 6094.5 + }, + { + "id": 15676, + "x_pos": 1363, + "y_pos": 5835 + }, + { + "id": 15673, + "x_pos": 1332, + "y_pos": 6152 + }, + { + "id": 15672, + "x_pos": 1367.5, + "y_pos": 6265 + }, + { + "id": 15671, + "x_pos": 1026.5, + "y_pos": 6133.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/d77adc11449e80b50976951010bd0bb5_806305631443341504.png" + }, + "92": { + "name": "Snapdragon", + "clear_name": "Snapdragon", + "points": [ + { + "id": 15662, + "x_pos": -1721.5, + "y_pos": 1043.2999877929688 + }, + { + "id": 15661, + "x_pos": -1677.4000244140625, + "y_pos": 961.8000183105469 + }, + { + "id": 11784, + "x_pos": -1202, + "y_pos": 1156.5 + }, + { + "id": 11783, + "x_pos": -1203.5, + "y_pos": 1157 + }, + { + "id": 10840, + "x_pos": 748, + "y_pos": 545.5 + }, + { + "id": 10754, + "x_pos": -1377.5, + "y_pos": 1334 + }, + { + "id": 10753, + "x_pos": -1373.5, + "y_pos": 1345 + }, + { + "id": 9332, + "x_pos": -452.5, + "y_pos": 1230 + }, + { + "id": 9331, + "x_pos": -442.5, + "y_pos": 1247.5 + }, + { + "id": 5882, + "x_pos": -855, + "y_pos": 537 + }, + { + "id": 5880, + "x_pos": -1950, + "y_pos": 1733 + }, + { + "id": 5878, + "x_pos": -861, + "y_pos": 541.5 + }, + { + "id": 5876, + "x_pos": -760, + "y_pos": 618.5 + }, + { + "id": 5875, + "x_pos": -767.5, + "y_pos": 618.5 + }, + { + "id": 5869, + "x_pos": -501.5, + "y_pos": 933 + }, + { + "id": 5865, + "x_pos": -463, + "y_pos": 958 + }, + { + "id": 5857, + "x_pos": -458.5, + "y_pos": 964 + }, + { + "id": 5846, + "x_pos": -1266, + "y_pos": 672.5 + }, + { + "id": 5843, + "x_pos": 443, + "y_pos": 422.5 + }, + { + "id": 5841, + "x_pos": -1263, + "y_pos": 717 + }, + { + "id": 5838, + "x_pos": -1867, + "y_pos": 723.5 + }, + { + "id": 5834, + "x_pos": -1830.5, + "y_pos": 722 + }, + { + "id": 5832, + "x_pos": 438, + "y_pos": 456 + }, + { + "id": 5830, + "x_pos": 437, + "y_pos": 483 + }, + { + "id": 5825, + "x_pos": -1769.5, + "y_pos": 683 + }, + { + "id": 5824, + "x_pos": 467, + "y_pos": 447.5 + }, + { + "id": 5821, + "x_pos": -1684, + "y_pos": 929 + }, + { + "id": 5819, + "x_pos": -1678.5, + "y_pos": 945 + }, + { + "id": 5815, + "x_pos": -1700, + "y_pos": 948.5 + }, + { + "id": 5813, + "x_pos": -1689.5, + "y_pos": 951.5 + }, + { + "id": 5810, + "x_pos": -1689, + "y_pos": 985.5 + }, + { + "id": 5808, + "x_pos": 477.5, + "y_pos": 413.5 + }, + { + "id": 5806, + "x_pos": 548, + "y_pos": 452 + }, + { + "id": 5805, + "x_pos": -1739, + "y_pos": 972.5 + }, + { + "id": 5802, + "x_pos": -1752.5, + "y_pos": 983 + }, + { + "id": 5801, + "x_pos": 563, + "y_pos": 453 + }, + { + "id": 5799, + "x_pos": -1737, + "y_pos": 1011 + }, + { + "id": 5798, + "x_pos": 591, + "y_pos": 435.5 + }, + { + "id": 5797, + "x_pos": -1677.1000061035156, + "y_pos": 1004.9000091552734 + }, + { + "id": 5796, + "x_pos": 646, + "y_pos": 470 + }, + { + "id": 5795, + "x_pos": -1485.5, + "y_pos": 942 + }, + { + "id": 5790, + "x_pos": -1667.1000061035156, + "y_pos": 986.5000305175781 + }, + { + "id": 5788, + "x_pos": 652, + "y_pos": 471.5 + }, + { + "id": 5786, + "x_pos": -1746, + "y_pos": 1013 + }, + { + "id": 5785, + "x_pos": 577, + "y_pos": 474 + }, + { + "id": 5784, + "x_pos": -1764, + "y_pos": 991.5 + }, + { + "id": 5779, + "x_pos": 720, + "y_pos": 491.5 + }, + { + "id": 5778, + "x_pos": -2208.5, + "y_pos": 1290.5 + }, + { + "id": 5776, + "x_pos": -2109, + "y_pos": 1322 + }, + { + "id": 5775, + "x_pos": 688, + "y_pos": 524.5 + }, + { + "id": 5774, + "x_pos": -1735.5, + "y_pos": 1017.5 + }, + { + "id": 5773, + "x_pos": -68, + "y_pos": -338.5 + }, + { + "id": 5771, + "x_pos": -74.5, + "y_pos": -317.5 + }, + { + "id": 5767, + "x_pos": -1494, + "y_pos": 941 + }, + { + "id": 5765, + "x_pos": -1479.5, + "y_pos": 944 + }, + { + "id": 5761, + "x_pos": -184.5, + "y_pos": -188.5 + }, + { + "id": 5760, + "x_pos": -1412.5, + "y_pos": 982.5 + }, + { + "id": 5759, + "x_pos": -1381, + "y_pos": 982 + }, + { + "id": 5755, + "x_pos": -1282, + "y_pos": 1005.5 + }, + { + "id": 5752, + "x_pos": -2160, + "y_pos": 1316 + }, + { + "id": 5751, + "x_pos": -171, + "y_pos": -182 + }, + { + "id": 5750, + "x_pos": -2093.5, + "y_pos": 1339.5 + }, + { + "id": 5747, + "x_pos": -182, + "y_pos": -146 + }, + { + "id": 5746, + "x_pos": -2101, + "y_pos": 1536.5 + }, + { + "id": 5744, + "x_pos": -2070.5, + "y_pos": 1510.5 + }, + { + "id": 5743, + "x_pos": -2093, + "y_pos": 1513 + }, + { + "id": 5740, + "x_pos": -2080.5, + "y_pos": 1517.5 + }, + { + "id": 5739, + "x_pos": -230.5, + "y_pos": 87.5 + }, + { + "id": 5737, + "x_pos": -1666.5, + "y_pos": 1022.1000213623047 + }, + { + "id": 5735, + "x_pos": -32, + "y_pos": 249 + }, + { + "id": 5730, + "x_pos": -894, + "y_pos": 988.5 + }, + { + "id": 5728, + "x_pos": -923.5, + "y_pos": 1048 + }, + { + "id": 5726, + "x_pos": -1080.5, + "y_pos": 1014.5 + }, + { + "id": 5724, + "x_pos": -907, + "y_pos": 1096.5 + }, + { + "id": 5722, + "x_pos": 587, + "y_pos": -503 + }, + { + "id": 5721, + "x_pos": -1066.5, + "y_pos": 1016.5 + }, + { + "id": 5717, + "x_pos": 583, + "y_pos": -492.5 + }, + { + "id": 5711, + "x_pos": 334.5, + "y_pos": 63 + }, + { + "id": 5710, + "x_pos": 341, + "y_pos": 79 + }, + { + "id": 5706, + "x_pos": -2055.5, + "y_pos": 1547 + }, + { + "id": 5703, + "x_pos": -2074, + "y_pos": 1560.5 + }, + { + "id": 5700, + "x_pos": -2430.5, + "y_pos": 1941.5 + }, + { + "id": 5698, + "x_pos": -1951.5, + "y_pos": 1735.5 + }, + { + "id": 5695, + "x_pos": -1406, + "y_pos": 981.5 + }, + { + "id": 5687, + "x_pos": -1279, + "y_pos": 1010.5 + }, + { + "id": 5685, + "x_pos": -1159, + "y_pos": 1158.5 + }, + { + "id": 5683, + "x_pos": -818.5, + "y_pos": 1192 + }, + { + "id": 5682, + "x_pos": 575, + "y_pos": -476 + }, + { + "id": 5681, + "x_pos": -913.5, + "y_pos": 1391.5 + }, + { + "id": 5679, + "x_pos": -887.5, + "y_pos": 1347.5 + }, + { + "id": 5678, + "x_pos": 726, + "y_pos": -466.5 + }, + { + "id": 5675, + "x_pos": 746.5, + "y_pos": -474 + }, + { + "id": 5671, + "x_pos": -1290, + "y_pos": 1737.5 + }, + { + "id": 5668, + "x_pos": 746.5, + "y_pos": -462 + }, + { + "id": 5666, + "x_pos": -919.5, + "y_pos": 1855.5 + }, + { + "id": 5662, + "x_pos": -1252, + "y_pos": 2138.5 + }, + { + "id": 5657, + "x_pos": -1265.5, + "y_pos": 2108.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/5cb9b715be7356eddae0d8aa197d4673_5925617248491431715.png" + }, + "257": { + "name": "Eye of the Storm", + "clear_name": "EyeoftheStorm", + "points": [ + { + "id": 15655, + "x_pos": -2370.7000122070312, + "y_pos": 1123.102644160645 + }, + { + "id": 15654, + "x_pos": -2380.0999755859375, + "y_pos": 1115.6059875713204 + }, + { + "id": 15653, + "x_pos": -1110.5, + "y_pos": -126.58284352370083 + }, + { + "id": 15652, + "x_pos": -2198.5, + "y_pos": 1359.2118681550091 + }, + { + "id": 15651, + "x_pos": -2153.499969482422, + "y_pos": 1392.5098926764986 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210809/620ee858dffb831f74cbd4522236351d_2832753190229304335.png" + }, + "226": { + "name": "Dandy", + "clear_name": "Dandy", + "points": [ + { + "id": 15633, + "x_pos": -2036, + "y_pos": 877.5 + }, + { + "id": 15632, + "x_pos": -1054.5, + "y_pos": 1390.5 + }, + { + "id": 15631, + "x_pos": -514.5, + "y_pos": 1719.5 + }, + { + "id": 15630, + "x_pos": -1362, + "y_pos": 386 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210727/f83c0d8a66d9508896efc1a98d7758ae_2773058170448514076.png" + }, + "165": { + "name": "Apple", + "clear_name": "Apple", + "points": [ + { + "id": 15416, + "x_pos": -1772, + "y_pos": 2639.7000122070312 + }, + { + "id": 11023, + "x_pos": 216, + "y_pos": -58 + }, + { + "id": 10870, + "x_pos": 621.9998101866495, + "y_pos": 99.50578868480488 + }, + { + "id": 10759, + "x_pos": -1398, + "y_pos": 1867 + }, + { + "id": 10298, + "x_pos": -1050.5, + "y_pos": 1687 + }, + { + "id": 10297, + "x_pos": -1155, + "y_pos": 928.5 + }, + { + "id": 10296, + "x_pos": -1598, + "y_pos": 430.5 + }, + { + "id": 10295, + "x_pos": -341, + "y_pos": 524.5 + }, + { + "id": 10294, + "x_pos": -200.5, + "y_pos": 508 + }, + { + "id": 10293, + "x_pos": -512, + "y_pos": 94.5 + }, + { + "id": 10292, + "x_pos": -304, + "y_pos": 2.5 + }, + { + "id": 10291, + "x_pos": 97, + "y_pos": 507 + }, + { + "id": 10290, + "x_pos": -304.5, + "y_pos": 98 + }, + { + "id": 10289, + "x_pos": -271, + "y_pos": -331.5 + }, + { + "id": 10142, + "x_pos": 983.5, + "y_pos": 1006 + }, + { + "id": 10141, + "x_pos": 901, + "y_pos": 1029 + }, + { + "id": 9447, + "x_pos": -681.5, + "y_pos": 1259.5 + }, + { + "id": 9282, + "x_pos": 669.5, + "y_pos": -83 + }, + { + "id": 9238, + "x_pos": 338.5, + "y_pos": -333.5 + }, + { + "id": 9237, + "x_pos": 372.5, + "y_pos": -3 + }, + { + "id": 9236, + "x_pos": 373.5, + "y_pos": -124 + }, + { + "id": 9235, + "x_pos": 457, + "y_pos": -225 + }, + { + "id": 9234, + "x_pos": 454, + "y_pos": 100.5 + }, + { + "id": 9233, + "x_pos": 337.5, + "y_pos": 28.5 + }, + { + "id": 8459, + "x_pos": 510, + "y_pos": -483 + }, + { + "id": 8458, + "x_pos": 480.5, + "y_pos": -401 + }, + { + "id": 8457, + "x_pos": 512.5, + "y_pos": -478 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/d652bfddea0f3d250e6a6f54731ad579_2692331837360997427.png" + }, + "144": { + "name": "Pot", + "clear_name": "Pot", + "points": [ + { + "id": 15262, + "x_pos": 2115.1001748164217, + "y_pos": 6038.803191309824 + }, + { + "id": 15261, + "x_pos": 1822.6000061035156, + "y_pos": 6122.4037943037965 + }, + { + "id": 15260, + "x_pos": 1740.2000122070312, + "y_pos": 6228.5993727103505 + }, + { + "id": 15259, + "x_pos": 1696.3000183105469, + "y_pos": 6279.406695993446 + }, + { + "id": 15258, + "x_pos": 1598, + "y_pos": 6436.906695993446 + }, + { + "id": 15038, + "x_pos": 1833.6015418621473, + "y_pos": 6325.201840072787 + }, + { + "id": 14896, + "x_pos": 1495.8999633789062, + "y_pos": 5997.499969482422 + }, + { + "id": 14544, + "x_pos": 1595.4021195795258, + "y_pos": 5827.509152945202 + }, + { + "id": 14543, + "x_pos": 2135.3251026644202, + "y_pos": 5903.949084196272 + }, + { + "id": 7528, + "x_pos": -91.50009155273438, + "y_pos": 1297.4999694824219 + }, + { + "id": 7430, + "x_pos": 479.5, + "y_pos": 1050 + }, + { + "id": 7428, + "x_pos": 47, + "y_pos": 1059 + }, + { + "id": 7343, + "x_pos": -188, + "y_pos": 966 + }, + { + "id": 7268, + "x_pos": 304, + "y_pos": 926 + }, + { + "id": 7041, + "x_pos": 290, + "y_pos": 1170.5 + }, + { + "id": 7031, + "x_pos": 280.5, + "y_pos": 1062.5 + }, + { + "id": 7011, + "x_pos": -149.5, + "y_pos": 1366 + }, + { + "id": 6994, + "x_pos": 43, + "y_pos": 1119 + }, + { + "id": 6968, + "x_pos": 334, + "y_pos": 1026 + }, + { + "id": 6922, + "x_pos": 116.5, + "y_pos": 1662.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/4538e2ca083797eb48785426e80ef189_7042825244123805664.png" + }, + "218": { + "name": "Maple Wood", + "clear_name": "MapleWood", + "points": [ + { + "id": 14987, + "x_pos": 1543.817078381173, + "y_pos": 6034.786839361845 + }, + { + "id": 14986, + "x_pos": 1549.5995075601368, + "y_pos": 6057.712138630803 + }, + { + "id": 14985, + "x_pos": 1590.4004924398623, + "y_pos": 6077.003381182471 + }, + { + "id": 14983, + "x_pos": 1531.2015078752029, + "y_pos": 6103.006762364939 + }, + { + "id": 14981, + "x_pos": 1576.5024927549275, + "y_pos": 6130.602695775224 + }, + { + "id": 14980, + "x_pos": 1518.2015078752029, + "y_pos": 6114.407447772184 + }, + { + "id": 14978, + "x_pos": 1469.4975072450725, + "y_pos": 6129.109473424749 + }, + { + "id": 14823, + "x_pos": 1375.9698363077741, + "y_pos": 6085.6944899013815 + }, + { + "id": 14822, + "x_pos": 1377.1990067659654, + "y_pos": 6139.004576472602 + }, + { + "id": 14821, + "x_pos": 1397.7014898510515, + "y_pos": 6115.4096044819635 + }, + { + "id": 14820, + "x_pos": 1388.5894488189078, + "y_pos": 6081.310086571219 + }, + { + "id": 14819, + "x_pos": 1408.801023789967, + "y_pos": 6065.2059310828845 + }, + { + "id": 14818, + "x_pos": 1381.9030102580355, + "y_pos": 6040.10641317214 + }, + { + "id": 14817, + "x_pos": 1410.0969897419645, + "y_pos": 6038.305479546123 + }, + { + "id": 14816, + "x_pos": 1436.3979829759983, + "y_pos": 6084.004576472602 + }, + { + "id": 14815, + "x_pos": 1447.0995033829831, + "y_pos": 6116.8032218623175 + }, + { + "id": 14814, + "x_pos": 1437.5, + "y_pos": 6093.504576472602 + }, + { + "id": 14813, + "x_pos": 1442.2040340480035, + "y_pos": 6045.006895261395 + }, + { + "id": 14812, + "x_pos": 1473.4949727179628, + "y_pos": 6007.421045663466 + }, + { + "id": 14811, + "x_pos": 1474.8035374309866, + "y_pos": 6025.303191309824 + }, + { + "id": 14810, + "x_pos": 1506.1020170240017, + "y_pos": 6011.4004515367615 + }, + { + "id": 14809, + "x_pos": 1510.5025136410186, + "y_pos": 5988.703673399079 + }, + { + "id": 14808, + "x_pos": 1532.698976210033, + "y_pos": 5988.199066373983 + }, + { + "id": 14806, + "x_pos": 1535.1221261521523, + "y_pos": 5971.8912985915595 + }, + { + "id": 14801, + "x_pos": 1571.4004966170169, + "y_pos": 5992.807798334918 + }, + { + "id": 14755, + "x_pos": 1403, + "y_pos": 5971.002288236301 + }, + { + "id": 14252, + "x_pos": 3135.5, + "y_pos": 4785 + }, + { + "id": 14251, + "x_pos": 3151.5, + "y_pos": 4793.5 + }, + { + "id": 14250, + "x_pos": 3116, + "y_pos": 4806 + }, + { + "id": 14248, + "x_pos": 3099.5, + "y_pos": 4841.5 + }, + { + "id": 14247, + "x_pos": 3087.5, + "y_pos": 4851.5 + }, + { + "id": 14246, + "x_pos": 3075, + "y_pos": 4862 + }, + { + "id": 14245, + "x_pos": 3062, + "y_pos": 4876 + }, + { + "id": 14244, + "x_pos": 3087, + "y_pos": 4875.5 + }, + { + "id": 14243, + "x_pos": 3029, + "y_pos": 4870.5 + }, + { + "id": 14242, + "x_pos": 3021, + "y_pos": 4877 + }, + { + "id": 14241, + "x_pos": 3012, + "y_pos": 4920 + }, + { + "id": 14240, + "x_pos": 3012, + "y_pos": 4924.5 + }, + { + "id": 14239, + "x_pos": 3018, + "y_pos": 4926 + }, + { + "id": 14238, + "x_pos": 3034, + "y_pos": 4931 + }, + { + "id": 14237, + "x_pos": 3007.5, + "y_pos": 4944 + }, + { + "id": 14236, + "x_pos": 3035.5, + "y_pos": 4955.5 + }, + { + "id": 14235, + "x_pos": 3051.5, + "y_pos": 4960.5 + }, + { + "id": 14234, + "x_pos": 3068, + "y_pos": 4938.5 + }, + { + "id": 14233, + "x_pos": 3091.5, + "y_pos": 4893.5 + }, + { + "id": 14229, + "x_pos": 3115, + "y_pos": 4908.5 + }, + { + "id": 14227, + "x_pos": 3167.5, + "y_pos": 4756.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210723/6cf7ac4eca8ccf728dbd7098660392d6_6514286872918371888.png" + }, + "167": { + "name": "Carrot", + "clear_name": "Carrot", + "points": [ + { + "id": 14895, + "x_pos": 1410.5743669727954, + "y_pos": 6060.794038364622 + }, + { + "id": 14886, + "x_pos": 1433.5201091281506, + "y_pos": 5970.009152945202 + }, + { + "id": 14839, + "x_pos": 1409.4698363077741, + "y_pos": 6060.794038364622 + }, + { + "id": 13786, + "x_pos": -508, + "y_pos": 46 + }, + { + "id": 9672, + "x_pos": -1388.6359663258145, + "y_pos": 1394.0849295704993 + }, + { + "id": 9671, + "x_pos": -1036.0684642594933, + "y_pos": 2335.958760769061 + }, + { + "id": 9670, + "x_pos": -1392.3580161561513, + "y_pos": 1392.4021192353766 + }, + { + "id": 9669, + "x_pos": -1394.273034644465, + "y_pos": 1399.4162091988474 + }, + { + "id": 9668, + "x_pos": -1381.8045359338375, + "y_pos": 1413.7593835450689 + }, + { + "id": 9667, + "x_pos": -1386.1348572827033, + "y_pos": 1421.4560520810464 + }, + { + "id": 9666, + "x_pos": -428.0032895740296, + "y_pos": -53.17585277361013 + }, + { + "id": 9665, + "x_pos": -719.0887879937727, + "y_pos": 212.92028368670526 + }, + { + "id": 9663, + "x_pos": -249.45722028509954, + "y_pos": 182.01642014702065 + }, + { + "id": 9662, + "x_pos": -239.63817736176225, + "y_pos": 599.3200421896345 + }, + { + "id": 9661, + "x_pos": -350.9902227929988, + "y_pos": 642.9972378514158 + }, + { + "id": 9660, + "x_pos": 207.8174286413514, + "y_pos": 387.68406284712046 + }, + { + "id": 9659, + "x_pos": 191.5, + "y_pos": 416.8200421896345 + }, + { + "id": 9658, + "x_pos": 135.70001220703125, + "y_pos": 442.6005064662536 + }, + { + "id": 9657, + "x_pos": -366.1000061035156, + "y_pos": 629.6983890181268 + }, + { + "id": 9242, + "x_pos": 484, + "y_pos": -384.5 + }, + { + "id": 9134, + "x_pos": -921.5, + "y_pos": -611.5 + }, + { + "id": 9131, + "x_pos": -908.5, + "y_pos": -477.5 + }, + { + "id": 9128, + "x_pos": -1110, + "y_pos": -243 + }, + { + "id": 9030, + "x_pos": -335.5, + "y_pos": -146.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/7200f7e1f2125fbd514594a932a7e4e4_5919526869501196996.png" + }, + "168": { + "name": "Radish", + "clear_name": "Radish", + "points": [ + { + "id": 14838, + "x_pos": 1413.9698363077741, + "y_pos": 6062.0995484632385 + }, + { + "id": 11732, + "x_pos": -277.8000183105469, + "y_pos": 612.7612274646112 + }, + { + "id": 11731, + "x_pos": -283.3999938964844, + "y_pos": 616.6127516830034 + }, + { + "id": 11730, + "x_pos": -280, + "y_pos": 621.4934627300358 + }, + { + "id": 11729, + "x_pos": -350.7000427246094, + "y_pos": 641.0512143377155 + }, + { + "id": 11728, + "x_pos": 136.77820120970227, + "y_pos": 402.56165523155914 + }, + { + "id": 11727, + "x_pos": 140.92550755963202, + "y_pos": 432.9956926750556 + }, + { + "id": 11726, + "x_pos": 144.10000610351562, + "y_pos": 438.50449556519334 + }, + { + "id": 11725, + "x_pos": 129.83694978795575, + "y_pos": 390.88626600866473 + }, + { + "id": 11724, + "x_pos": 185.99571477753125, + "y_pos": 358.5759441256214 + }, + { + "id": 10827, + "x_pos": -284, + "y_pos": 619.5 + }, + { + "id": 10824, + "x_pos": -864.5, + "y_pos": 850 + }, + { + "id": 10680, + "x_pos": -1814, + "y_pos": 2270 + }, + { + "id": 9678, + "x_pos": -1387.580470010752, + "y_pos": 1394.569290596778 + }, + { + "id": 9677, + "x_pos": -1380.15391244281, + "y_pos": 1407.9035554467373 + }, + { + "id": 9676, + "x_pos": -1391.135768097527, + "y_pos": 1418.2268235235933 + }, + { + "id": 9675, + "x_pos": -346.71718814853375, + "y_pos": 643.456021532149 + }, + { + "id": 9674, + "x_pos": 126.5, + "y_pos": 399.9608546111767 + }, + { + "id": 9673, + "x_pos": 137, + "y_pos": 439.9741268216003 + }, + { + "id": 9504, + "x_pos": -2416.0765941865234, + "y_pos": 1913.0768204730148 + }, + { + "id": 9503, + "x_pos": -2425.0759767985933, + "y_pos": 1916.0756620305165 + }, + { + "id": 9502, + "x_pos": -2421.076251193229, + "y_pos": 1912.5770135467646 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/2d2a228c04dbdd7d3b544f1acd2ecc08_8249547580628994674.png" + }, + "49": { + "name": "Geovishap Hatchling", + "clear_name": "GeovishapHatchling", + "points": [ + { + "id": 14465, + "x_pos": -2040.8999938964844, + "y_pos": 2338.5 + }, + { + "id": 9312, + "x_pos": -2357.5, + "y_pos": 1926 + }, + { + "id": 9143, + "x_pos": -2331.1110382809884, + "y_pos": 1051.1106804198894 + }, + { + "id": 9140, + "x_pos": -2298, + "y_pos": 1059.6679739931596 + }, + { + "id": 7409, + "x_pos": -427.5, + "y_pos": 938.5 + }, + { + "id": 7408, + "x_pos": -400.5, + "y_pos": 1365 + }, + { + "id": 7407, + "x_pos": -353.5, + "y_pos": 1473 + }, + { + "id": 7311, + "x_pos": -315, + "y_pos": 1531 + }, + { + "id": 2360, + "x_pos": -1842, + "y_pos": 2353.5 + }, + { + "id": 2359, + "x_pos": -1850, + "y_pos": 2341 + }, + { + "id": 2358, + "x_pos": -1848, + "y_pos": 2367 + }, + { + "id": 2356, + "x_pos": -1879, + "y_pos": 2189 + }, + { + "id": 2340, + "x_pos": -1877, + "y_pos": 2182 + }, + { + "id": 2332, + "x_pos": -1495, + "y_pos": 2628.6939668207815 + }, + { + "id": 2322, + "x_pos": -1396, + "y_pos": 2444.5377939454893 + }, + { + "id": 2321, + "x_pos": -2565, + "y_pos": 1441.5327561108024 + }, + { + "id": 2313, + "x_pos": -1520, + "y_pos": 1238 + }, + { + "id": 2312, + "x_pos": -1176, + "y_pos": 1188.1134413675036 + }, + { + "id": 2311, + "x_pos": -2383, + "y_pos": 1241.1498806746026 + }, + { + "id": 2307, + "x_pos": -1819, + "y_pos": 785.8891727295586 + }, + { + "id": 2304, + "x_pos": -1098.5, + "y_pos": 831.1100605886245 + }, + { + "id": 431, + "x_pos": 81, + "y_pos": 2784.389160121208 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/aac3fd2bb94c588f47cbd3d6b7669e39_4849308969470348276.png" + }, + "183": { + "name": "Maguu Kenki", + "clear_name": "MaguuKenki", + "points": [ + { + "id": 13668, + "x_pos": 1589.5, + "y_pos": 6270.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/015b9416a88691ff518dd72d9698a5c7_6257024584937050452.png" + }, + "204": { + "name": "Perpetual Mechanical Array", + "clear_name": "PerpetualMechanicalArray", + "points": [ + { + "id": 13356, + "x_pos": 3721.5, + "y_pos": 4446 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/1cdc7cab48dfb1ea36397d288077954a_2062428048248631837.png" + }, + "203": { + "name": "Pyro Hypostasis", + "clear_name": "PyroHypostasis", + "points": [ + { + "id": 13355, + "x_pos": 2430, + "y_pos": 5363 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/d0d92652d2b2b1024b9d6b5c0f859080_8667568985549994162.png" + }, + "39": { + "name": "Philanemo Mushroom", + "clear_name": "PhilanemoMushroom", + "points": [ + { + "id": 11721, + "x_pos": 191.5, + "y_pos": 410 + }, + { + "id": 11720, + "x_pos": 193, + "y_pos": 386 + }, + { + "id": 11719, + "x_pos": 202, + "y_pos": 356.5 + }, + { + "id": 11718, + "x_pos": 194, + "y_pos": 354.5 + }, + { + "id": 11717, + "x_pos": 169.5, + "y_pos": 384.5 + }, + { + "id": 11716, + "x_pos": 112, + "y_pos": 442.5 + }, + { + "id": 11715, + "x_pos": -247, + "y_pos": 597 + }, + { + "id": 11714, + "x_pos": -284.5, + "y_pos": 627 + }, + { + "id": 11713, + "x_pos": -359, + "y_pos": 629 + }, + { + "id": 11712, + "x_pos": -369.5, + "y_pos": 639.5 + }, + { + "id": 11709, + "x_pos": 120.5, + "y_pos": 410.5 + }, + { + "id": 11628, + "x_pos": 158, + "y_pos": 119 + }, + { + "id": 11627, + "x_pos": 128.5, + "y_pos": 131.5 + }, + { + "id": 11626, + "x_pos": 129, + "y_pos": 133.5 + }, + { + "id": 11277, + "x_pos": 142, + "y_pos": 121.5 + }, + { + "id": 11276, + "x_pos": 80.5, + "y_pos": 29.5 + }, + { + "id": 11072, + "x_pos": 183.5, + "y_pos": 21.5 + }, + { + "id": 11071, + "x_pos": 192, + "y_pos": 39.5 + }, + { + "id": 11066, + "x_pos": 24, + "y_pos": 112 + }, + { + "id": 11065, + "x_pos": 28.5, + "y_pos": 115 + }, + { + "id": 11064, + "x_pos": 20.5, + "y_pos": 123 + }, + { + "id": 11063, + "x_pos": 22, + "y_pos": 124 + }, + { + "id": 11062, + "x_pos": 24, + "y_pos": 123.5 + }, + { + "id": 10610, + "x_pos": 79.5, + "y_pos": 16 + }, + { + "id": 9299, + "x_pos": 123, + "y_pos": 137.5 + }, + { + "id": 1563, + "x_pos": 199, + "y_pos": 386 + }, + { + "id": 1558, + "x_pos": 205.5, + "y_pos": 359 + }, + { + "id": 1535, + "x_pos": 115.5, + "y_pos": 381 + }, + { + "id": 1447, + "x_pos": -239.5, + "y_pos": 602.5 + }, + { + "id": 1445, + "x_pos": -356.5, + "y_pos": 628.5 + }, + { + "id": 1413, + "x_pos": -284, + "y_pos": 624.5 + }, + { + "id": 1042, + "x_pos": 115.5, + "y_pos": 372.5 + }, + { + "id": 1013, + "x_pos": 188, + "y_pos": 355.5 + }, + { + "id": 988, + "x_pos": 159.5, + "y_pos": 388.5 + }, + { + "id": 978, + "x_pos": 115, + "y_pos": 448 + }, + { + "id": 960, + "x_pos": 123, + "y_pos": 389.5 + }, + { + "id": 898, + "x_pos": 194, + "y_pos": 415 + }, + { + "id": 878, + "x_pos": 206.5, + "y_pos": 373.5 + }, + { + "id": 668, + "x_pos": 159, + "y_pos": 130.5 + }, + { + "id": 661, + "x_pos": 143, + "y_pos": 121.5 + }, + { + "id": 655, + "x_pos": 72, + "y_pos": 98.5 + }, + { + "id": 650, + "x_pos": 160.5, + "y_pos": 124.5 + }, + { + "id": 645, + "x_pos": 187, + "y_pos": 41.5 + }, + { + "id": 624, + "x_pos": 186.5, + "y_pos": 26 + }, + { + "id": 615, + "x_pos": 184.5, + "y_pos": 7.5 + }, + { + "id": 592, + "x_pos": 172.5, + "y_pos": 424 + }, + { + "id": 584, + "x_pos": 122.5, + "y_pos": -14.5 + }, + { + "id": 576, + "x_pos": 83.5, + "y_pos": -20 + }, + { + "id": 561, + "x_pos": 103.5, + "y_pos": 105.5 + }, + { + "id": 535, + "x_pos": 27, + "y_pos": 121.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/c6e5a6d0fd9f73e0b716463d1ae2d60e_3118451947706292312.png" + }, + "35": { + "name": "Cecilia", + "clear_name": "Cecilia", + "points": [ + { + "id": 11307, + "x_pos": 997, + "y_pos": -290 + }, + { + "id": 11306, + "x_pos": 998, + "y_pos": -286.5 + }, + { + "id": 11305, + "x_pos": 969.5, + "y_pos": -279 + }, + { + "id": 11304, + "x_pos": 975, + "y_pos": -278 + }, + { + "id": 11303, + "x_pos": 970, + "y_pos": -277.5 + }, + { + "id": 11302, + "x_pos": 948, + "y_pos": -264 + }, + { + "id": 11301, + "x_pos": 946.5, + "y_pos": -257.5 + }, + { + "id": 11300, + "x_pos": 951.5, + "y_pos": -257 + }, + { + "id": 11299, + "x_pos": 948.5, + "y_pos": -231.5 + }, + { + "id": 11298, + "x_pos": 947.5, + "y_pos": -229.5 + }, + { + "id": 11297, + "x_pos": 916.5, + "y_pos": -205 + }, + { + "id": 11296, + "x_pos": 918, + "y_pos": -206 + }, + { + "id": 11295, + "x_pos": 976, + "y_pos": -187.5 + }, + { + "id": 11294, + "x_pos": 975, + "y_pos": -189 + }, + { + "id": 11293, + "x_pos": 976.5, + "y_pos": -186.5 + }, + { + "id": 11283, + "x_pos": 1086, + "y_pos": -107 + }, + { + "id": 11282, + "x_pos": 1079, + "y_pos": -102.5 + }, + { + "id": 11281, + "x_pos": 1086.5, + "y_pos": -99.5 + }, + { + "id": 11280, + "x_pos": 1084, + "y_pos": -94.5 + }, + { + "id": 11279, + "x_pos": 900, + "y_pos": -167 + }, + { + "id": 11278, + "x_pos": 898, + "y_pos": -165.5 + }, + { + "id": 11158, + "x_pos": 972, + "y_pos": -158 + }, + { + "id": 11157, + "x_pos": 954.5, + "y_pos": -134.5 + }, + { + "id": 11156, + "x_pos": 980.5, + "y_pos": -103.5 + }, + { + "id": 877, + "x_pos": 981, + "y_pos": -102.5 + }, + { + "id": 872, + "x_pos": 890.5, + "y_pos": -163 + }, + { + "id": 864, + "x_pos": 954, + "y_pos": -132 + }, + { + "id": 859, + "x_pos": 1000.5, + "y_pos": -98 + }, + { + "id": 851, + "x_pos": 974, + "y_pos": -150.5 + }, + { + "id": 850, + "x_pos": 1086.5, + "y_pos": -102.5 + }, + { + "id": 844, + "x_pos": 950.5, + "y_pos": -183 + }, + { + "id": 841, + "x_pos": 978.5, + "y_pos": -190.5 + }, + { + "id": 823, + "x_pos": 916.5, + "y_pos": -204.5 + }, + { + "id": 819, + "x_pos": 946, + "y_pos": -231 + }, + { + "id": 814, + "x_pos": 948, + "y_pos": -262.5 + }, + { + "id": 809, + "x_pos": 970.5, + "y_pos": -282 + }, + { + "id": 498, + "x_pos": 998, + "y_pos": -279 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/949c049703b25e48d44f10b0d54b18e8_2016192383263616602.png" + }, + "37": { + "name": "Dandelion Seed", + "clear_name": "DandelionSeed", + "points": [ + { + "id": 11272, + "x_pos": -214, + "y_pos": 626 + }, + { + "id": 11074, + "x_pos": 820, + "y_pos": -119 + }, + { + "id": 11073, + "x_pos": 823, + "y_pos": -121 + }, + { + "id": 11070, + "x_pos": 230, + "y_pos": 71 + }, + { + "id": 11069, + "x_pos": 226, + "y_pos": 81.5 + }, + { + "id": 11068, + "x_pos": 196.5, + "y_pos": 128 + }, + { + "id": 11067, + "x_pos": 196.5, + "y_pos": 139 + }, + { + "id": 11054, + "x_pos": 230, + "y_pos": 92.5 + }, + { + "id": 10617, + "x_pos": 444.5, + "y_pos": 191 + }, + { + "id": 10616, + "x_pos": 449, + "y_pos": 191 + }, + { + "id": 10615, + "x_pos": 975, + "y_pos": 226.5 + }, + { + "id": 10614, + "x_pos": 983, + "y_pos": 229.5 + }, + { + "id": 10613, + "x_pos": 982, + "y_pos": 236 + }, + { + "id": 10612, + "x_pos": 535.5, + "y_pos": -174 + }, + { + "id": 10611, + "x_pos": 221, + "y_pos": 0.5 + }, + { + "id": 10012, + "x_pos": 613, + "y_pos": 1194 + }, + { + "id": 10011, + "x_pos": 619, + "y_pos": 1196 + }, + { + "id": 10010, + "x_pos": 626.5, + "y_pos": 1185.5 + }, + { + "id": 1108, + "x_pos": 941, + "y_pos": 767.5 + }, + { + "id": 294, + "x_pos": -398.5, + "y_pos": -3.5 + }, + { + "id": 293, + "x_pos": 945.5, + "y_pos": 768.5 + }, + { + "id": 292, + "x_pos": 1275.5, + "y_pos": 855.5 + }, + { + "id": 291, + "x_pos": 1282, + "y_pos": 867 + }, + { + "id": 290, + "x_pos": 924.5, + "y_pos": 949.5 + }, + { + "id": 289, + "x_pos": 518.5, + "y_pos": 620.5 + }, + { + "id": 288, + "x_pos": 527, + "y_pos": 615 + }, + { + "id": 287, + "x_pos": 707, + "y_pos": 643.5 + }, + { + "id": 266, + "x_pos": 213, + "y_pos": 393 + }, + { + "id": 258, + "x_pos": -390, + "y_pos": -5 + }, + { + "id": 242, + "x_pos": -696.9415118926727, + "y_pos": 658.3510622635472 + }, + { + "id": 240, + "x_pos": -691.5017162127797, + "y_pos": 663.0050582836338 + }, + { + "id": 238, + "x_pos": -701.4988558581472, + "y_pos": 664.5005324509088 + }, + { + "id": 237, + "x_pos": -647.9962176082408, + "y_pos": 640.4958676003153 + }, + { + "id": 236, + "x_pos": -664.5, + "y_pos": 674.0015973527265 + }, + { + "id": 235, + "x_pos": -679.4998569822683, + "y_pos": 694.0015973527265 + }, + { + "id": 232, + "x_pos": -617.4187720733448, + "y_pos": 737.3883338271635 + }, + { + "id": 229, + "x_pos": -621.0037184610223, + "y_pos": 741.999201323637 + }, + { + "id": 226, + "x_pos": -613.0028603546325, + "y_pos": 741.000798676363 + }, + { + "id": 223, + "x_pos": -585.5, + "y_pos": 670 + }, + { + "id": 214, + "x_pos": -209, + "y_pos": 620 + }, + { + "id": 210, + "x_pos": -80.5, + "y_pos": 391 + }, + { + "id": 207, + "x_pos": -300, + "y_pos": 395.5 + }, + { + "id": 203, + "x_pos": -358.5, + "y_pos": 356.5 + }, + { + "id": 199, + "x_pos": -364, + "y_pos": 260 + }, + { + "id": 194, + "x_pos": 155.5, + "y_pos": -45.5 + }, + { + "id": 191, + "x_pos": 521.5, + "y_pos": -163 + }, + { + "id": 190, + "x_pos": 535.5, + "y_pos": -171.5 + }, + { + "id": 184, + "x_pos": 348.5, + "y_pos": -267 + }, + { + "id": 182, + "x_pos": 825, + "y_pos": -120 + }, + { + "id": 177, + "x_pos": 438.5, + "y_pos": -455.5 + }, + { + "id": 169, + "x_pos": 953, + "y_pos": -660 + }, + { + "id": 6, + "x_pos": 234, + "y_pos": 86.5 + }, + { + "id": 5, + "x_pos": 201.5, + "y_pos": 127.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/70436d7222c58143f04e7c4c7787b43d_7905547638982774118.png" + }, + "30": { + "name": "Jueyun Chili", + "clear_name": "JueyunChili", + "points": [ + { + "id": 11089, + "x_pos": -2066, + "y_pos": 1317 + }, + { + "id": 11088, + "x_pos": -1863.5, + "y_pos": 1334.5 + }, + { + "id": 11087, + "x_pos": -1978.5, + "y_pos": 1442.5 + }, + { + "id": 11086, + "x_pos": -2244, + "y_pos": 2037 + }, + { + "id": 5993, + "x_pos": -1452.4471196599388, + "y_pos": 469.26177081030846 + }, + { + "id": 1641, + "x_pos": -715.4157687009806, + "y_pos": 740.4423775944069 + }, + { + "id": 1637, + "x_pos": -750.9987128404155, + "y_pos": 651.5042596072703 + }, + { + "id": 1634, + "x_pos": -738.9272101195106, + "y_pos": 766.4059047071537 + }, + { + "id": 1605, + "x_pos": -748.5032894078272, + "y_pos": 657.5010649018177 + }, + { + "id": 1570, + "x_pos": -737.4267810663155, + "y_pos": 775.4106967653329 + }, + { + "id": 1512, + "x_pos": -1494.456957807688, + "y_pos": 681.473259747117 + }, + { + "id": 1471, + "x_pos": -1402.4997139645366, + "y_pos": 630.0021298036354 + }, + { + "id": 1466, + "x_pos": -711.5024313014374, + "y_pos": 746.0034609309073 + }, + { + "id": 1451, + "x_pos": -1469.4247788180728, + "y_pos": 449.346270205368 + }, + { + "id": 1446, + "x_pos": -1386.5, + "y_pos": 627.0037271563615 + }, + { + "id": 1433, + "x_pos": -1305.501001124121, + "y_pos": 579.5101165672672 + }, + { + "id": 1418, + "x_pos": -1418.5014301773163, + "y_pos": 553.0031947054526 + }, + { + "id": 1398, + "x_pos": -2116, + "y_pos": 1105 + }, + { + "id": 1393, + "x_pos": -1576.4997139645366, + "y_pos": 552.5037271563615 + }, + { + "id": 1389, + "x_pos": -1298, + "y_pos": 536.005324509088 + }, + { + "id": 1385, + "x_pos": -2061.5, + "y_pos": 1168 + }, + { + "id": 1378, + "x_pos": -706.4998569822683, + "y_pos": 832.5029284799984 + }, + { + "id": 1375, + "x_pos": -1439.4988558581472, + "y_pos": 526.0039933818161 + }, + { + "id": 1341, + "x_pos": -2125, + "y_pos": 1337.5 + }, + { + "id": 1324, + "x_pos": -2063, + "y_pos": 1346 + }, + { + "id": 1316, + "x_pos": -2239, + "y_pos": 1273.5 + }, + { + "id": 1281, + "x_pos": -1929.5, + "y_pos": 1564 + }, + { + "id": 1278, + "x_pos": -2408, + "y_pos": 1246.5 + }, + { + "id": 1271, + "x_pos": -1857, + "y_pos": 1553.5 + }, + { + "id": 1266, + "x_pos": -2049, + "y_pos": 1674 + }, + { + "id": 1253, + "x_pos": -2406.5, + "y_pos": 1414 + }, + { + "id": 1250, + "x_pos": -1920, + "y_pos": 1555 + }, + { + "id": 1244, + "x_pos": -2038.5, + "y_pos": 1600 + }, + { + "id": 1235, + "x_pos": -1841, + "y_pos": 1657.5 + }, + { + "id": 1232, + "x_pos": -1948.5, + "y_pos": 1526 + }, + { + "id": 1230, + "x_pos": -2152.5, + "y_pos": 1293.5 + }, + { + "id": 1227, + "x_pos": -2031, + "y_pos": 1306.5 + }, + { + "id": 1182, + "x_pos": -2393, + "y_pos": 1526 + }, + { + "id": 1180, + "x_pos": -1967.5, + "y_pos": 1445.5 + }, + { + "id": 1170, + "x_pos": -2131.5, + "y_pos": 1230.5 + }, + { + "id": 1149, + "x_pos": -2431, + "y_pos": 1381 + }, + { + "id": 1147, + "x_pos": -2064, + "y_pos": 1191.5 + }, + { + "id": 1140, + "x_pos": -2505, + "y_pos": 1461 + }, + { + "id": 985, + "x_pos": -2262, + "y_pos": 2040 + }, + { + "id": 813, + "x_pos": -2383.5, + "y_pos": 1592.5 + }, + { + "id": 738, + "x_pos": -2466, + "y_pos": 1531.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/df7a61223ea4313ed63fc9691f932bd3_4925794327803709245.png" + }, + "38": { + "name": "Glaze Lily", + "clear_name": "GlazeLily", + "points": [ + { + "id": 11085, + "x_pos": -1029.5, + "y_pos": 2981 + }, + { + "id": 11084, + "x_pos": -1027, + "y_pos": 2987.5 + }, + { + "id": 11083, + "x_pos": -1237, + "y_pos": 2775.5 + }, + { + "id": 11082, + "x_pos": -1148, + "y_pos": 2903.5 + }, + { + "id": 11081, + "x_pos": -1202, + "y_pos": 2930 + }, + { + "id": 10640, + "x_pos": -1226, + "y_pos": 2841 + }, + { + "id": 7783, + "x_pos": -1309.5, + "y_pos": 2710 + }, + { + "id": 1654, + "x_pos": -1487, + "y_pos": 499.5 + }, + { + "id": 1642, + "x_pos": -1321, + "y_pos": 410.5 + }, + { + "id": 1635, + "x_pos": -1369, + "y_pos": 412 + }, + { + "id": 1524, + "x_pos": -1454.5, + "y_pos": 657 + }, + { + "id": 1521, + "x_pos": -1464, + "y_pos": 633.5 + }, + { + "id": 1467, + "x_pos": -1486, + "y_pos": 530 + }, + { + "id": 1457, + "x_pos": -1449.5, + "y_pos": 542.5 + }, + { + "id": 1449, + "x_pos": -1451, + "y_pos": 422.5 + }, + { + "id": 1442, + "x_pos": -1492, + "y_pos": 414.5 + }, + { + "id": 1427, + "x_pos": -1385.5, + "y_pos": 563 + }, + { + "id": 1416, + "x_pos": -1346, + "y_pos": 409.5 + }, + { + "id": 1406, + "x_pos": -1308, + "y_pos": 558 + }, + { + "id": 1395, + "x_pos": -1384.5, + "y_pos": 471.5 + }, + { + "id": 1372, + "x_pos": -1477.5, + "y_pos": 505.5 + }, + { + "id": 1368, + "x_pos": -1370.5, + "y_pos": 437.5 + }, + { + "id": 1361, + "x_pos": -1410.5, + "y_pos": 405.5 + }, + { + "id": 1350, + "x_pos": -1494, + "y_pos": 509.5 + }, + { + "id": 1337, + "x_pos": -1339, + "y_pos": 470 + }, + { + "id": 1228, + "x_pos": -1365.5, + "y_pos": 400 + }, + { + "id": 1137, + "x_pos": -1318.5, + "y_pos": 438.5 + }, + { + "id": 931, + "x_pos": -1188, + "y_pos": 2869 + }, + { + "id": 921, + "x_pos": -1213.5, + "y_pos": 2823.5 + }, + { + "id": 917, + "x_pos": -1221.5, + "y_pos": 2785 + }, + { + "id": 903, + "x_pos": -1147, + "y_pos": 2886 + }, + { + "id": 888, + "x_pos": -1250.5, + "y_pos": 2859.5 + }, + { + "id": 883, + "x_pos": -1237, + "y_pos": 2774 + }, + { + "id": 882, + "x_pos": -1222.5, + "y_pos": 2838.5 + }, + { + "id": 598, + "x_pos": -1146.5, + "y_pos": 2887 + }, + { + "id": 571, + "x_pos": -1167, + "y_pos": 2925 + }, + { + "id": 533, + "x_pos": -1199, + "y_pos": 2927.5 + }, + { + "id": 528, + "x_pos": -1178, + "y_pos": 2944 + }, + { + "id": 414, + "x_pos": -1028.5, + "y_pos": 2988.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/98282bd9cda9c167702216285bc841cd_4998299768885098182.png" + }, + "93": { + "name": "Horsetail", + "clear_name": "Horsetail", + "points": [ + { + "id": 11007, + "x_pos": -1124, + "y_pos": 935 + }, + { + "id": 11005, + "x_pos": -1031.5, + "y_pos": 1099.5 + }, + { + "id": 10897, + "x_pos": -925.5, + "y_pos": 865.5 + }, + { + "id": 10896, + "x_pos": -933.5, + "y_pos": 867 + }, + { + "id": 10895, + "x_pos": -927.5, + "y_pos": 875 + }, + { + "id": 10892, + "x_pos": -986, + "y_pos": 812.5 + }, + { + "id": 10890, + "x_pos": -975, + "y_pos": 810.5 + }, + { + "id": 10889, + "x_pos": -962.5, + "y_pos": 782.5 + }, + { + "id": 10822, + "x_pos": -1052, + "y_pos": 1113.5 + }, + { + "id": 10821, + "x_pos": -1053.5, + "y_pos": 1121 + }, + { + "id": 5643, + "x_pos": -878.5, + "y_pos": 674.5 + }, + { + "id": 5638, + "x_pos": -997.5, + "y_pos": 816.5 + }, + { + "id": 5636, + "x_pos": -1002, + "y_pos": 818.5 + }, + { + "id": 5632, + "x_pos": -1029, + "y_pos": 862 + }, + { + "id": 5624, + "x_pos": -953.5, + "y_pos": 925 + }, + { + "id": 5620, + "x_pos": -973, + "y_pos": 949.5 + }, + { + "id": 5606, + "x_pos": -933.5, + "y_pos": 948 + }, + { + "id": 5605, + "x_pos": -1035.5, + "y_pos": 875.5 + }, + { + "id": 5601, + "x_pos": -1062, + "y_pos": 888 + }, + { + "id": 5596, + "x_pos": -1071.5, + "y_pos": 903.5 + }, + { + "id": 5588, + "x_pos": -1052.5, + "y_pos": 933.5 + }, + { + "id": 5585, + "x_pos": -1106, + "y_pos": 992.5 + }, + { + "id": 5580, + "x_pos": -1106, + "y_pos": 1010.5 + }, + { + "id": 5577, + "x_pos": -1032.5, + "y_pos": 1023.5 + }, + { + "id": 5576, + "x_pos": -1067.5, + "y_pos": 1081.5 + }, + { + "id": 5573, + "x_pos": -997, + "y_pos": 1156.5 + }, + { + "id": 5567, + "x_pos": -1056.5, + "y_pos": 1695.5 + }, + { + "id": 5566, + "x_pos": -1054.5, + "y_pos": 1698.5 + }, + { + "id": 5554, + "x_pos": -1069.5, + "y_pos": 1689.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/11f060b9411797f623057a93598998a7_1129068969993264323.png" + }, + "166": { + "name": "Lotus Head", + "clear_name": "LotusHead", + "points": [ + { + "id": 10118, + "x_pos": -1272.5999755859375, + "y_pos": 2308.2546344784814 + }, + { + "id": 10117, + "x_pos": -1263.7000122070312, + "y_pos": 2279.435663619415 + }, + { + "id": 9501, + "x_pos": -2207.5, + "y_pos": 1067.5 + }, + { + "id": 9500, + "x_pos": -2475, + "y_pos": 1391 + }, + { + "id": 9499, + "x_pos": -2424.5, + "y_pos": 1326 + }, + { + "id": 9498, + "x_pos": -2426, + "y_pos": 1338 + }, + { + "id": 9497, + "x_pos": -2457, + "y_pos": 1393 + }, + { + "id": 9496, + "x_pos": -2426, + "y_pos": 1413 + }, + { + "id": 9495, + "x_pos": -2433, + "y_pos": 1414.5 + }, + { + "id": 9494, + "x_pos": -2481.5, + "y_pos": 1444.5 + }, + { + "id": 9493, + "x_pos": -2475.5, + "y_pos": 1450 + }, + { + "id": 9492, + "x_pos": -2530, + "y_pos": 1440.5 + }, + { + "id": 9491, + "x_pos": -1447.5, + "y_pos": 2157 + }, + { + "id": 9490, + "x_pos": -1411, + "y_pos": 2152 + }, + { + "id": 9489, + "x_pos": -1392.5, + "y_pos": 2187 + }, + { + "id": 9488, + "x_pos": -1463.5, + "y_pos": 2188.5 + }, + { + "id": 9487, + "x_pos": -1388.5, + "y_pos": 2187 + }, + { + "id": 9486, + "x_pos": -1432, + "y_pos": 2193.5 + }, + { + "id": 9485, + "x_pos": -1395, + "y_pos": 2206.5 + }, + { + "id": 9484, + "x_pos": -1486, + "y_pos": 2121 + }, + { + "id": 9483, + "x_pos": -1453, + "y_pos": 2221.5 + }, + { + "id": 9482, + "x_pos": -1583, + "y_pos": 2496.5 + }, + { + "id": 9481, + "x_pos": -1586.5, + "y_pos": 2499.5 + }, + { + "id": 9480, + "x_pos": -1573, + "y_pos": 2514.5 + }, + { + "id": 9479, + "x_pos": -1373.5, + "y_pos": 2241.5 + }, + { + "id": 9478, + "x_pos": -1162, + "y_pos": 2807.5 + }, + { + "id": 9477, + "x_pos": -2205.5, + "y_pos": 1065 + }, + { + "id": 9476, + "x_pos": -2220.5, + "y_pos": 1083 + }, + { + "id": 9475, + "x_pos": -2541, + "y_pos": 1458.5 + }, + { + "id": 9474, + "x_pos": -2217, + "y_pos": 1081 + }, + { + "id": 9473, + "x_pos": -2478, + "y_pos": 1773 + }, + { + "id": 9472, + "x_pos": -2549, + "y_pos": 1462.5 + }, + { + "id": 9471, + "x_pos": -1378, + "y_pos": 2240 + }, + { + "id": 9470, + "x_pos": -1573.5, + "y_pos": 2519 + }, + { + "id": 9469, + "x_pos": -1601.5, + "y_pos": 2558.5 + }, + { + "id": 9468, + "x_pos": -1620.5, + "y_pos": 2579.5 + }, + { + "id": 9467, + "x_pos": -1150.5, + "y_pos": 2817 + }, + { + "id": 9466, + "x_pos": -1173.5, + "y_pos": 1720.5 + }, + { + "id": 9465, + "x_pos": -1216, + "y_pos": 2800.5 + }, + { + "id": 9464, + "x_pos": -1154.5, + "y_pos": 2814 + }, + { + "id": 9463, + "x_pos": -1181.5, + "y_pos": 2817 + }, + { + "id": 9462, + "x_pos": -1185.5, + "y_pos": 2917 + }, + { + "id": 9461, + "x_pos": -1179, + "y_pos": 1712 + }, + { + "id": 9460, + "x_pos": -841.5, + "y_pos": 1987.5 + }, + { + "id": 9459, + "x_pos": -985, + "y_pos": 1809.5 + }, + { + "id": 9458, + "x_pos": -2464, + "y_pos": 1779.5 + }, + { + "id": 9457, + "x_pos": -2470, + "y_pos": 1789 + }, + { + "id": 9456, + "x_pos": -1403.5, + "y_pos": 1412 + }, + { + "id": 9455, + "x_pos": -979.5, + "y_pos": 1247 + }, + { + "id": 9454, + "x_pos": -1169.5, + "y_pos": 1711.5 + }, + { + "id": 9453, + "x_pos": -831.5, + "y_pos": 1998 + }, + { + "id": 9452, + "x_pos": -1011, + "y_pos": 2461.5 + }, + { + "id": 9451, + "x_pos": -1020, + "y_pos": 2458 + }, + { + "id": 9450, + "x_pos": -1628, + "y_pos": 2568.5 + }, + { + "id": 9449, + "x_pos": -1375, + "y_pos": 2237 + }, + { + "id": 9448, + "x_pos": -994.5, + "y_pos": 1816.5 + }, + { + "id": 9397, + "x_pos": -453, + "y_pos": 1306 + }, + { + "id": 9388, + "x_pos": -993, + "y_pos": 1162 + }, + { + "id": 9387, + "x_pos": -984.5, + "y_pos": 1246.5 + }, + { + "id": 9383, + "x_pos": -450, + "y_pos": 1305 + }, + { + "id": 9362, + "x_pos": -1016, + "y_pos": 1132 + }, + { + "id": 9356, + "x_pos": -924.5, + "y_pos": 1011.5 + }, + { + "id": 9355, + "x_pos": -931, + "y_pos": 1004.5 + }, + { + "id": 9354, + "x_pos": -777.5, + "y_pos": 885.5 + }, + { + "id": 9353, + "x_pos": -848.5, + "y_pos": 660.5 + }, + { + "id": 9352, + "x_pos": -841.5, + "y_pos": 670 + }, + { + "id": 9351, + "x_pos": -609, + "y_pos": 759.5 + }, + { + "id": 9350, + "x_pos": -788.5, + "y_pos": 887.5 + }, + { + "id": 9349, + "x_pos": -602.5, + "y_pos": 765 + }, + { + "id": 9348, + "x_pos": -612, + "y_pos": 768 + }, + { + "id": 9347, + "x_pos": -606.5, + "y_pos": 769 + }, + { + "id": 9346, + "x_pos": -749.5, + "y_pos": 514.5 + }, + { + "id": 9345, + "x_pos": -693, + "y_pos": 542.5 + }, + { + "id": 9344, + "x_pos": -834, + "y_pos": 669 + }, + { + "id": 9343, + "x_pos": -704.5, + "y_pos": 548.5 + }, + { + "id": 9342, + "x_pos": -880.5, + "y_pos": 550 + }, + { + "id": 9341, + "x_pos": -870, + "y_pos": 601 + }, + { + "id": 9319, + "x_pos": -485.5, + "y_pos": 931 + }, + { + "id": 9318, + "x_pos": -487, + "y_pos": 947 + }, + { + "id": 9317, + "x_pos": -479.5, + "y_pos": 953 + }, + { + "id": 9316, + "x_pos": -447.5, + "y_pos": 954.5 + }, + { + "id": 9315, + "x_pos": -438, + "y_pos": 959 + }, + { + "id": 9314, + "x_pos": -455.5, + "y_pos": 956.5 + }, + { + "id": 9313, + "x_pos": -446, + "y_pos": 934.5 + }, + { + "id": 8706, + "x_pos": -1912.3334273207752, + "y_pos": 2798.942691173902 + }, + { + "id": 8705, + "x_pos": -1923.6110687964729, + "y_pos": 2827.11068041989 + }, + { + "id": 8704, + "x_pos": -1510.1110687964729, + "y_pos": 3059.0553249571167 + }, + { + "id": 8703, + "x_pos": -1495.888992234496, + "y_pos": 3067.2766857968954 + }, + { + "id": 8702, + "x_pos": -1497.7779234380232, + "y_pos": 3083.221330334123 + }, + { + "id": 8701, + "x_pos": -1720.944496117248, + "y_pos": 2554.0534020994473 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/e1cf72c72c13c9e0d69e90acb8fa424b_4901939395745895580.png" + }, + "181": { + "name": "Cryo Hypostasis", + "clear_name": "CryoHypostasis", + "points": [ + { + "id": 10004, + "x_pos": -199, + "y_pos": 1149 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/fd8f9ac263bf9e8fbdf1209b5ef85876_738776757835666393.png" + }, + "36": { + "name": "Silk Flower", + "clear_name": "SilkFlower", + "points": [ + { + "id": 9338, + "x_pos": -1157, + "y_pos": 2909 + }, + { + "id": 2034, + "x_pos": -1014.5, + "y_pos": 1463.5 + }, + { + "id": 2033, + "x_pos": -1022, + "y_pos": 1409.5 + }, + { + "id": 2032, + "x_pos": -1031.5, + "y_pos": 1378.5 + }, + { + "id": 2031, + "x_pos": -1128.5, + "y_pos": 1290.5 + }, + { + "id": 1501, + "x_pos": -1096, + "y_pos": 1303 + }, + { + "id": 1486, + "x_pos": -1049, + "y_pos": 1386 + }, + { + "id": 1422, + "x_pos": -1032.5, + "y_pos": 1436.5 + }, + { + "id": 957, + "x_pos": -1175, + "y_pos": 2858.5 + }, + { + "id": 953, + "x_pos": -1186.5, + "y_pos": 2862.5 + }, + { + "id": 907, + "x_pos": -1246, + "y_pos": 2844 + }, + { + "id": 895, + "x_pos": -1179, + "y_pos": 2931 + }, + { + "id": 659, + "x_pos": -1158, + "y_pos": 2911.5 + }, + { + "id": 562, + "x_pos": -1194.5, + "y_pos": 2932 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/c1de910e1820469e794944ba33bb89ae_4335239219072420295.png" + }, + "157": { + "name": "Primo Geovishap", + "clear_name": "PrimoGeovishap", + "points": [ + { + "id": 8716, + "x_pos": -2233, + "y_pos": 2122.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/6e8b8fc335a4f3f5c8331a8ae27c4b9c_7943722077019832142.png" + }, + "153": { + "name": "Chilled Meat", + "clear_name": "ChilledMeat", + "points": [ + { + "id": 7643, + "x_pos": 370.5, + "y_pos": 1305 + }, + { + "id": 7486, + "x_pos": 427, + "y_pos": 1642.5 + }, + { + "id": 7207, + "x_pos": 383, + "y_pos": 1247 + }, + { + "id": 7204, + "x_pos": 383.5, + "y_pos": 1256.5 + }, + { + "id": 7184, + "x_pos": 381, + "y_pos": 1292 + }, + { + "id": 7181, + "x_pos": 382.5, + "y_pos": 1319.5 + }, + { + "id": 7176, + "x_pos": 323, + "y_pos": 1231 + }, + { + "id": 7170, + "x_pos": 504, + "y_pos": 1373 + }, + { + "id": 7165, + "x_pos": 500, + "y_pos": 1379 + }, + { + "id": 7159, + "x_pos": 492, + "y_pos": 1441 + }, + { + "id": 7155, + "x_pos": 495, + "y_pos": 1483 + }, + { + "id": 7142, + "x_pos": 459.5, + "y_pos": 1557 + }, + { + "id": 7136, + "x_pos": 423, + "y_pos": 1621.5 + }, + { + "id": 7133, + "x_pos": 292, + "y_pos": 1572.5 + }, + { + "id": 7130, + "x_pos": 258.5, + "y_pos": 1633 + }, + { + "id": 7123, + "x_pos": -70, + "y_pos": 1270 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/83194f444f9bdb03090bfeb8cbad2177_193823876063594258.png" + }, + "155": { + "name": "Ancient Rime", + "clear_name": "AncientRime", + "points": [ + { + "id": 7630, + "x_pos": 513, + "y_pos": 1369 + }, + { + "id": 7579, + "x_pos": -2.944582034675477, + "y_pos": 1684.8393798096276 + }, + { + "id": 7577, + "x_pos": 176.6758855556036, + "y_pos": 845.8822614069704 + }, + { + "id": 7485, + "x_pos": 45.400827566243606, + "y_pos": 1429.50227886234 + }, + { + "id": 7484, + "x_pos": 70.54799693134828, + "y_pos": 1217.7355128488512 + }, + { + "id": 7482, + "x_pos": 143.16516821436107, + "y_pos": 1273.3284839563198 + }, + { + "id": 7480, + "x_pos": 129.06446099500863, + "y_pos": 1305.6775642442562 + }, + { + "id": 7479, + "x_pos": 706.622364269746, + "y_pos": 1318.4585122358694 + }, + { + "id": 7478, + "x_pos": 45.90568044886186, + "y_pos": 1063.7971798839176 + }, + { + "id": 7465, + "x_pos": 146.44343530087554, + "y_pos": 1263.4440555746664 + }, + { + "id": 7462, + "x_pos": -319.6282243602009, + "y_pos": 1021.4921256605576 + }, + { + "id": 7417, + "x_pos": 300.5663882005683, + "y_pos": 899.3462011516744 + }, + { + "id": 7415, + "x_pos": 359.5929242915063, + "y_pos": 907.6739424564689 + }, + { + "id": 7333, + "x_pos": 363.5827388961907, + "y_pos": 1091.144515430698 + }, + { + "id": 7330, + "x_pos": 212.06069379400196, + "y_pos": 1417.0521598421246 + }, + { + "id": 7328, + "x_pos": 339.10017964159306, + "y_pos": 1061.2015585883464 + }, + { + "id": 7325, + "x_pos": 246.00111620770622, + "y_pos": 1079.4977363826329 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/bfcc38014cd7965c5495a2c5a93ec9a9_7088476606723735200.png" + }, + "147": { + "name": "Seelie\u00a0Court", + "clear_name": "SeelieCourt", + "points": [ + { + "id": 7598, + "x_pos": -199, + "y_pos": 1083.5 + }, + { + "id": 7597, + "x_pos": -168, + "y_pos": 1490.5 + }, + { + "id": 7596, + "x_pos": -45.5, + "y_pos": 1363 + }, + { + "id": 7595, + "x_pos": 97, + "y_pos": 1384 + }, + { + "id": 7594, + "x_pos": 264.5, + "y_pos": 1307.5 + }, + { + "id": 7554, + "x_pos": -280, + "y_pos": 1311 + }, + { + "id": 7553, + "x_pos": -302.5, + "y_pos": 1376.5 + }, + { + "id": 7552, + "x_pos": 566, + "y_pos": 1344.5 + }, + { + "id": 7551, + "x_pos": 198, + "y_pos": 1510 + }, + { + "id": 7550, + "x_pos": 493.5, + "y_pos": 1395 + }, + { + "id": 7549, + "x_pos": -98, + "y_pos": 1459 + }, + { + "id": 7548, + "x_pos": 318, + "y_pos": 1625.5 + }, + { + "id": 7547, + "x_pos": 199, + "y_pos": 1374 + }, + { + "id": 7546, + "x_pos": 184.5, + "y_pos": 1388.5 + }, + { + "id": 7545, + "x_pos": 381.5, + "y_pos": 957 + }, + { + "id": 7544, + "x_pos": 52, + "y_pos": 1416.5 + }, + { + "id": 7543, + "x_pos": 343, + "y_pos": 1435.5 + }, + { + "id": 7542, + "x_pos": -178, + "y_pos": 1142.5 + }, + { + "id": 7540, + "x_pos": -321.5, + "y_pos": 1139 + }, + { + "id": 7539, + "x_pos": 147, + "y_pos": 1347 + }, + { + "id": 7538, + "x_pos": 228.5, + "y_pos": 1372.5 + }, + { + "id": 7537, + "x_pos": 296.5, + "y_pos": 1114 + }, + { + "id": 7536, + "x_pos": 213, + "y_pos": 1392.5 + }, + { + "id": 7535, + "x_pos": 260.5, + "y_pos": 1198.5 + }, + { + "id": 7534, + "x_pos": 86.5, + "y_pos": 1254.5 + }, + { + "id": 7533, + "x_pos": -310.5, + "y_pos": 1037.5 + }, + { + "id": 7532, + "x_pos": -177, + "y_pos": 1150.5 + }, + { + "id": 7531, + "x_pos": 217, + "y_pos": 1029.5 + }, + { + "id": 7530, + "x_pos": 59.5, + "y_pos": 1227 + }, + { + "id": 7529, + "x_pos": -22.5, + "y_pos": 847 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/129a17158bfb304f621cadb9823bc8cb_1093300982033335835.png" + }, + "87": { + "name": "Unusual Hilichurl", + "clear_name": "UnusualHilichurl", + "points": [ + { + "id": 7593, + "x_pos": 522.5570661189577, + "y_pos": 441.2967575717821 + }, + { + "id": 5070, + "x_pos": -2076.926051239492, + "y_pos": 2165.731999060699 + }, + { + "id": 5068, + "x_pos": -2208.442236251226, + "y_pos": 1477.2587629871605 + }, + { + "id": 5067, + "x_pos": -362.91279627298627, + "y_pos": 1660.222233844287 + }, + { + "id": 5065, + "x_pos": -1366.468467132312, + "y_pos": 416.85026668168575 + }, + { + "id": 5064, + "x_pos": -935.464978983231, + "y_pos": 735.7555079150234 + }, + { + "id": 5063, + "x_pos": 790.051764132355, + "y_pos": 862.323141080542 + }, + { + "id": 5062, + "x_pos": -1809.4538169061734, + "y_pos": 2947.7395873601117 + }, + { + "id": 5061, + "x_pos": -1608.88698396979, + "y_pos": 1916.370424443924 + }, + { + "id": 5060, + "x_pos": -874.9321903818741, + "y_pos": 2497.240040083585 + }, + { + "id": 5059, + "x_pos": 1374.056787067031, + "y_pos": 688.2350601253779 + }, + { + "id": 5057, + "x_pos": 437.06669341042016, + "y_pos": -549.2472836591596 + }, + { + "id": 5056, + "x_pos": -442.5, + "y_pos": 296 + }, + { + "id": 5055, + "x_pos": -941.5082320318302, + "y_pos": -263.7875760482925 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/f203ec4bc212479d666cb30ec2ce4ee9_696400277393733820.png" + }, + "141": { + "name": "Crimson Agate", + "clear_name": "CrimsonAgate", + "points": [ + { + "id": 7591, + "x_pos": 175.65012556825786, + "y_pos": 1214.4076291664537 + }, + { + "id": 7585, + "x_pos": 151.8325993702274, + "y_pos": 1392.723808191281 + }, + { + "id": 7450, + "x_pos": -2.5, + "y_pos": 1433 + }, + { + "id": 7370, + "x_pos": 403.1970106600693, + "y_pos": 1381.5564937914914 + }, + { + "id": 7369, + "x_pos": -242.75693487718945, + "y_pos": 1282.1137963872447 + }, + { + "id": 7368, + "x_pos": 355.9479306577932, + "y_pos": 1573.8844588715992 + }, + { + "id": 7367, + "x_pos": 408.5, + "y_pos": 1430 + }, + { + "id": 7366, + "x_pos": 75, + "y_pos": 1288 + }, + { + "id": 7365, + "x_pos": 126.56376336519224, + "y_pos": 1294.1879768841445 + }, + { + "id": 7364, + "x_pos": -197.4275860250873, + "y_pos": 1153.7477363826329 + }, + { + "id": 7242, + "x_pos": -256, + "y_pos": 1063 + }, + { + "id": 7074, + "x_pos": -262.465955664974, + "y_pos": 931.6295755560759 + }, + { + "id": 7069, + "x_pos": -213.96093273029783, + "y_pos": 911.2576962990479 + }, + { + "id": 7066, + "x_pos": -113.5, + "y_pos": 801.5 + }, + { + "id": 7054, + "x_pos": 80.5, + "y_pos": 905.5 + }, + { + "id": 7049, + "x_pos": -25.5, + "y_pos": 948.5 + }, + { + "id": 7047, + "x_pos": 67.5, + "y_pos": 1001.5 + }, + { + "id": 7043, + "x_pos": 188, + "y_pos": 968.5 + }, + { + "id": 7040, + "x_pos": 215.5, + "y_pos": 1014.5 + }, + { + "id": 7027, + "x_pos": 297.5, + "y_pos": 1037.5 + }, + { + "id": 7025, + "x_pos": 482.5, + "y_pos": 1032.5 + }, + { + "id": 7020, + "x_pos": 359, + "y_pos": 1080 + }, + { + "id": 7017, + "x_pos": 389, + "y_pos": 1128.5 + }, + { + "id": 7013, + "x_pos": 309, + "y_pos": 1110.5 + }, + { + "id": 7008, + "x_pos": 213, + "y_pos": 1139 + }, + { + "id": 7003, + "x_pos": 247.5454854640102, + "y_pos": 1174.221478421176 + }, + { + "id": 7000, + "x_pos": 228, + "y_pos": 1229 + }, + { + "id": 6995, + "x_pos": 144.5418577889668, + "y_pos": 1262.2386819131652 + }, + { + "id": 6992, + "x_pos": 133.5, + "y_pos": 1262.5 + }, + { + "id": 6989, + "x_pos": 138.5, + "y_pos": 1290 + }, + { + "id": 6959, + "x_pos": 168.5, + "y_pos": 1318.5 + }, + { + "id": 6953, + "x_pos": 154, + "y_pos": 1331 + }, + { + "id": 6948, + "x_pos": 186.5, + "y_pos": 1338 + }, + { + "id": 6943, + "x_pos": 167.5, + "y_pos": 1352 + }, + { + "id": 6938, + "x_pos": 207.5, + "y_pos": 1376 + }, + { + "id": 6935, + "x_pos": 183.5, + "y_pos": 1393 + }, + { + "id": 6931, + "x_pos": 126.5, + "y_pos": 1400.5 + }, + { + "id": 6925, + "x_pos": 125, + "y_pos": 1343 + }, + { + "id": 6917, + "x_pos": 83.5, + "y_pos": 1286 + }, + { + "id": 6912, + "x_pos": 41.5, + "y_pos": 1280.5 + }, + { + "id": 6909, + "x_pos": 97.5, + "y_pos": 1185.5 + }, + { + "id": 6908, + "x_pos": 54.5, + "y_pos": 1219 + }, + { + "id": 6904, + "x_pos": -23.824476338266322, + "y_pos": 1189.4284696912032 + }, + { + "id": 6901, + "x_pos": -44.5, + "y_pos": 1192 + }, + { + "id": 6898, + "x_pos": -40, + "y_pos": 1231 + }, + { + "id": 6894, + "x_pos": -194, + "y_pos": 1111 + }, + { + "id": 6892, + "x_pos": -192, + "y_pos": 1148.5 + }, + { + "id": 6885, + "x_pos": -369, + "y_pos": 1087 + }, + { + "id": 6880, + "x_pos": -393, + "y_pos": 1245 + }, + { + "id": 6874, + "x_pos": -375, + "y_pos": 1248 + }, + { + "id": 6872, + "x_pos": -311.95311927635703, + "y_pos": 1247.5389342187123 + }, + { + "id": 6869, + "x_pos": -226, + "y_pos": 1225 + }, + { + "id": 6866, + "x_pos": -3, + "y_pos": 1396 + }, + { + "id": 6864, + "x_pos": -350.45353785424686, + "y_pos": 1339.6499481123792 + }, + { + "id": 6862, + "x_pos": -164.5, + "y_pos": 1368 + }, + { + "id": 6860, + "x_pos": -174.5, + "y_pos": 1384 + }, + { + "id": 6858, + "x_pos": -205.5, + "y_pos": 1409.5 + }, + { + "id": 6853, + "x_pos": -189.42535360967577, + "y_pos": 1423.6839023728835 + }, + { + "id": 6819, + "x_pos": -87.95409595809997, + "y_pos": 1506.214687569075 + }, + { + "id": 6814, + "x_pos": -137.5, + "y_pos": 1596.5 + }, + { + "id": 6809, + "x_pos": 133, + "y_pos": 1672 + }, + { + "id": 6806, + "x_pos": 415.0419973149301, + "y_pos": 1709.777616131877 + }, + { + "id": 6800, + "x_pos": 325.5, + "y_pos": 1276 + }, + { + "id": 6795, + "x_pos": 419, + "y_pos": 1283 + }, + { + "id": 6792, + "x_pos": 371, + "y_pos": 1325.5 + }, + { + "id": 6790, + "x_pos": 475, + "y_pos": 1254 + }, + { + "id": 6785, + "x_pos": 442.0376720100703, + "y_pos": 1219.3826479777058 + }, + { + "id": 6780, + "x_pos": 524, + "y_pos": 1233 + }, + { + "id": 6776, + "x_pos": 277, + "y_pos": 1340 + }, + { + "id": 6772, + "x_pos": 135.5, + "y_pos": 1428 + }, + { + "id": 6767, + "x_pos": 41, + "y_pos": 1456 + }, + { + "id": 6765, + "x_pos": 297.5, + "y_pos": 1399.5 + }, + { + "id": 6760, + "x_pos": 704.5, + "y_pos": 1317 + }, + { + "id": 6756, + "x_pos": 556.5, + "y_pos": 1419 + }, + { + "id": 6746, + "x_pos": 439, + "y_pos": 1426 + }, + { + "id": 6741, + "x_pos": 159.94343530087554, + "y_pos": 1501.444055574666 + }, + { + "id": 6733, + "x_pos": 163.5, + "y_pos": 1501 + }, + { + "id": 6729, + "x_pos": 622, + "y_pos": 1483 + }, + { + "id": 6723, + "x_pos": 359, + "y_pos": 1608.5 + }, + { + "id": 6639, + "x_pos": 139.5, + "y_pos": 1159.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/d564ff58c9b0cabb7ca22c3dd54b7458_2879418302062023946.png" + }, + "140": { + "name": "Strange Tooth", + "clear_name": "StrangeTooth", + "points": [ + { + "id": 7583, + "x_pos": 46.5, + "y_pos": 996.5 + }, + { + "id": 7146, + "x_pos": 532.5, + "y_pos": 1526 + }, + { + "id": 7102, + "x_pos": -215.5, + "y_pos": 988 + }, + { + "id": 7099, + "x_pos": -50, + "y_pos": 812.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/5da3e49853b5d2188ff4bd6b302ecaa1_4526547052916822390.png" + }, + "145": { + "name": "Campfire/Torch", + "clear_name": "CampfireTorch", + "points": [ + { + "id": 7431, + "x_pos": 268.5, + "y_pos": 1100.5 + }, + { + "id": 7429, + "x_pos": 475.5, + "y_pos": 1035 + }, + { + "id": 7427, + "x_pos": -69, + "y_pos": 896.5 + }, + { + "id": 7426, + "x_pos": -82.5, + "y_pos": 897.5 + }, + { + "id": 7424, + "x_pos": 474, + "y_pos": 1049.5 + }, + { + "id": 7423, + "x_pos": 467.5, + "y_pos": 1054.5 + }, + { + "id": 7422, + "x_pos": 432.5, + "y_pos": 1073 + }, + { + "id": 7421, + "x_pos": -94.5, + "y_pos": 911.5 + }, + { + "id": 7420, + "x_pos": -124, + "y_pos": 953 + }, + { + "id": 7371, + "x_pos": 474, + "y_pos": 1141 + }, + { + "id": 7344, + "x_pos": 56.5, + "y_pos": 955.5 + }, + { + "id": 7342, + "x_pos": 18.5, + "y_pos": 1090.5 + }, + { + "id": 7262, + "x_pos": -332.5, + "y_pos": 1373 + }, + { + "id": 7259, + "x_pos": -117.5, + "y_pos": 1332.5 + }, + { + "id": 7258, + "x_pos": -308.5, + "y_pos": 1254 + }, + { + "id": 7257, + "x_pos": -317, + "y_pos": 1241.5 + }, + { + "id": 7256, + "x_pos": -303, + "y_pos": 1243 + }, + { + "id": 7255, + "x_pos": -356, + "y_pos": 1206.5 + }, + { + "id": 7253, + "x_pos": 214.5, + "y_pos": 918 + }, + { + "id": 7252, + "x_pos": 234.5, + "y_pos": 916.5 + }, + { + "id": 7249, + "x_pos": -249, + "y_pos": 916.5 + }, + { + "id": 7248, + "x_pos": -251, + "y_pos": 912 + }, + { + "id": 7247, + "x_pos": 70, + "y_pos": 785.5 + }, + { + "id": 7246, + "x_pos": 110.5, + "y_pos": 792 + }, + { + "id": 7245, + "x_pos": 293, + "y_pos": 932.5 + }, + { + "id": 7244, + "x_pos": 119.5, + "y_pos": 798.5 + }, + { + "id": 7243, + "x_pos": 149.5, + "y_pos": 768 + }, + { + "id": 7068, + "x_pos": 198.49996948242188, + "y_pos": 1321.9999694824219 + }, + { + "id": 7059, + "x_pos": 206, + "y_pos": 1327 + }, + { + "id": 7055, + "x_pos": 177.5, + "y_pos": 1343.5 + }, + { + "id": 7053, + "x_pos": -73.5, + "y_pos": 1316.5 + }, + { + "id": 7048, + "x_pos": -152.5, + "y_pos": 1351.5 + }, + { + "id": 7046, + "x_pos": 277.5, + "y_pos": 1037 + }, + { + "id": 7045, + "x_pos": 70.49996948242188, + "y_pos": 1277.5 + }, + { + "id": 7039, + "x_pos": 226.5, + "y_pos": 1334.5 + }, + { + "id": 7034, + "x_pos": 35, + "y_pos": 1114.5 + }, + { + "id": 7029, + "x_pos": 46.5, + "y_pos": 1112.5 + }, + { + "id": 7026, + "x_pos": 12, + "y_pos": 1398.5 + }, + { + "id": 7023, + "x_pos": 218, + "y_pos": 1104.5 + }, + { + "id": 7015, + "x_pos": 300.5, + "y_pos": 1007.5 + }, + { + "id": 7014, + "x_pos": 90.5, + "y_pos": 988 + }, + { + "id": 7010, + "x_pos": 69.5, + "y_pos": 1283.5 + }, + { + "id": 7004, + "x_pos": -159, + "y_pos": 1369.5 + }, + { + "id": 7002, + "x_pos": 304.5, + "y_pos": 1182.5 + }, + { + "id": 6999, + "x_pos": 67.5, + "y_pos": 1000.5 + }, + { + "id": 6997, + "x_pos": -144.5, + "y_pos": 1374 + }, + { + "id": 6988, + "x_pos": -164.5, + "y_pos": 1444 + }, + { + "id": 6982, + "x_pos": -38.5, + "y_pos": 955.5 + }, + { + "id": 6979, + "x_pos": 286, + "y_pos": 1067.5 + }, + { + "id": 6973, + "x_pos": 265.5, + "y_pos": 1099 + }, + { + "id": 6962, + "x_pos": 373.5, + "y_pos": 938 + }, + { + "id": 6957, + "x_pos": -252.5, + "y_pos": 939 + }, + { + "id": 6956, + "x_pos": 288, + "y_pos": 798 + }, + { + "id": 6950, + "x_pos": -296, + "y_pos": 1134.5 + }, + { + "id": 6949, + "x_pos": 280.5, + "y_pos": 823.5 + }, + { + "id": 6945, + "x_pos": -34.5, + "y_pos": 1674.5 + }, + { + "id": 6944, + "x_pos": -263, + "y_pos": 926 + }, + { + "id": 6942, + "x_pos": 365, + "y_pos": 940 + }, + { + "id": 6941, + "x_pos": 487.5, + "y_pos": 1372.5 + }, + { + "id": 6940, + "x_pos": -298.5, + "y_pos": 1145 + }, + { + "id": 6937, + "x_pos": 376.5, + "y_pos": 944 + }, + { + "id": 6934, + "x_pos": -322, + "y_pos": 1180 + }, + { + "id": 6932, + "x_pos": 517.5, + "y_pos": 1359 + }, + { + "id": 6921, + "x_pos": -230.5, + "y_pos": 970 + }, + { + "id": 6915, + "x_pos": 341.5, + "y_pos": 1566 + }, + { + "id": 6914, + "x_pos": 264.5, + "y_pos": 863.5 + }, + { + "id": 6906, + "x_pos": 377.5, + "y_pos": 1563.5 + }, + { + "id": 6896, + "x_pos": 368, + "y_pos": 947.5 + }, + { + "id": 6890, + "x_pos": -221.5, + "y_pos": 983.5 + }, + { + "id": 6886, + "x_pos": 301, + "y_pos": 936.5 + }, + { + "id": 6881, + "x_pos": -213, + "y_pos": 910 + }, + { + "id": 6877, + "x_pos": 557.5, + "y_pos": 1545 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/92112a39652724c6ae55ce1461cbcee2_4374283950207047779.png" + }, + "156": { + "name": "Eight Stone Tablets", + "clear_name": "EightStoneTablets", + "points": [ + { + "id": 7382, + "x_pos": 372.41339153486115, + "y_pos": 947.5139140637248 + }, + { + "id": 7381, + "x_pos": 103.6164161609122, + "y_pos": 1423.0074869946811 + }, + { + "id": 7379, + "x_pos": -25.86772627434584, + "y_pos": 1096.1728593121165 + }, + { + "id": 7378, + "x_pos": 86.53081600649693, + "y_pos": 1280.861792331386 + }, + { + "id": 7377, + "x_pos": -89.3623331529061, + "y_pos": 1489.4289495339735 + }, + { + "id": 7375, + "x_pos": 255.9233303975234, + "y_pos": 1196.7171006945723 + }, + { + "id": 7374, + "x_pos": -199.00135350399069, + "y_pos": 1151.4239225685014 + }, + { + "id": 7372, + "x_pos": 277.8665989580404, + "y_pos": 1338.6992737895016 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/c1eb3ec1842c1f4c00625c667312d2ca_8388959847180590508.png" + }, + "159": { + "name": "Three Boxes", + "clear_name": "ThreeBoxes", + "points": [ + { + "id": 7380, + "x_pos": 425.54810822859145, + "y_pos": 990.6942773689025 + }, + { + "id": 7376, + "x_pos": -56.5, + "y_pos": 1389.5 + }, + { + "id": 7373, + "x_pos": -61.10360066486464, + "y_pos": 1126.89801552089 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/2bf4ac8cb97a33df5b7d615046e13ad6_4658689920972908858.png" + }, + "158": { + "name": "Frostbearing Tree", + "clear_name": "FrostbearingTree", + "points": [ + { + "id": 7179, + "x_pos": 302, + "y_pos": 1036 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220401/b1d8af1877bb2a97f7890985cc5a26a6_7290602061532571860.png" + }, + "151": { + "name": "The Great Snowboar King", + "clear_name": "TheGreatSnowboarKing", + "points": [ + { + "id": 6991, + "x_pos": 375.5, + "y_pos": 1317.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/2e14d42a701015d4c5caf1021abe3558_738119058447087070.png" + }, + "138": { + "name": "Geo Hypostasis", + "clear_name": "GeoHypostasis", + "points": [ + { + "id": 5991, + "x_pos": 106.499783463928, + "y_pos": 2275.5008050431343 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/6ccf59504ae1e8423e0ae2d01fd4f570_7280622112643159099.png" + }, + "137": { + "name": "Pyro Regisvine", + "clear_name": "PyroRegisvine", + "points": [ + { + "id": 5990, + "x_pos": -1700.500649608216, + "y_pos": 2171.9983899137324 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/c49c98db09c383e7e3b2ff5e14747245_6871099093515341414.png" + }, + "136": { + "name": "Oceanid", + "clear_name": "Oceanid", + "points": [ + { + "id": 5989, + "x_pos": -1024, + "y_pos": 538.5018814675445 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/ea4ab72e0f46b64380e6fba31efc8b62_8378099877381895933.png" + }, + "135": { + "name": "Electro Hypostasis", + "clear_name": "ElectroHypostasis", + "points": [ + { + "id": 5988, + "x_pos": 1194.000216536072, + "y_pos": 1013.498792435299 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/17a13672670254eaff4c08a50869d319_7363096478543937109.png" + }, + "133": { + "name": "Cryo Regisvine", + "clear_name": "CryoRegisvine", + "points": [ + { + "id": 5987, + "x_pos": 927.500649608216, + "y_pos": 226.50120756470096 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/ef9f64d70a3ecd050081462074df8eee_8230297720297860960.png" + }, + "132": { + "name": "Anemo Hypostasis", + "clear_name": "AnemoHypostasis", + "points": [ + { + "id": 5986, + "x_pos": 553.500216536072, + "y_pos": -585.0008050431338 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/fbb938490cf2452ae264b362d2cad4a2_7534730879355417882.png" + }, + "134": { + "name": "Lupus Boreas, Dominator of Wolves", + "clear_name": "LupusBoreasDominatorofWolves", + "points": [ + { + "id": 5974, + "x_pos": -482.500216536072, + "y_pos": 333.0009407337725 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8b54838d1ad807825234725124c8acd3_8075172329293457218.png" + }, + "81": { + "name": "Bamboo Shoot", + "clear_name": "BambooShoot", + "points": [ + { + "id": 4993, + "x_pos": -1554.9274464991245, + "y_pos": 810.7468277226571 + }, + { + "id": 4992, + "x_pos": -1601.9236792981173, + "y_pos": 729.731275711335 + }, + { + "id": 4991, + "x_pos": -1581.9480963416813, + "y_pos": 713.2395942290191 + }, + { + "id": 4990, + "x_pos": -1580.9094476498688, + "y_pos": 661.2211488202411 + }, + { + "id": 4989, + "x_pos": -1607.4213073567428, + "y_pos": 668.7291056632434 + }, + { + "id": 4988, + "x_pos": -1548.9303765443522, + "y_pos": 728.7645497820713 + }, + { + "id": 4987, + "x_pos": -1585.4153077403241, + "y_pos": 683.7356158075181 + }, + { + "id": 4986, + "x_pos": -1598.9228421423381, + "y_pos": 731.7298290126073 + }, + { + "id": 4985, + "x_pos": -1587.9160053701403, + "y_pos": 696.2265739404702 + }, + { + "id": 4984, + "x_pos": -1607.9253536096762, + "y_pos": 714.7421259517923 + }, + { + "id": 4983, + "x_pos": -1584.9225630904116, + "y_pos": 738.182087954594 + }, + { + "id": 4982, + "x_pos": -1544.4112614873907, + "y_pos": 724.6918531710057 + }, + { + "id": 4981, + "x_pos": -1545.890751170797, + "y_pos": 559.7225955189688 + }, + { + "id": 4980, + "x_pos": -1612.4093081239057, + "y_pos": 555.2258505911063 + }, + { + "id": 4966, + "x_pos": -1608.9165634739932, + "y_pos": 590.235254132836 + }, + { + "id": 4965, + "x_pos": -1254.9167029999562, + "y_pos": 568.182087954594 + }, + { + "id": 4963, + "x_pos": -1255.9019132478547, + "y_pos": 572.2334457594266 + }, + { + "id": 4960, + "x_pos": -1568.9060990267515, + "y_pos": 613.7555079150234 + }, + { + "id": 4958, + "x_pos": -1274.3749847369531, + "y_pos": 589.3792006562394 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/d46910e7cdebb011cc107aa088a3df69_887321789543977894.png" + }, + "6": { + "name": "Geoculus", + "clear_name": "Geoculus", + "points": [ + { + "id": 2110, + "x_pos": -2407.5, + "y_pos": 1602.5 + }, + { + "id": 2042, + "x_pos": -0.5, + "y_pos": 2664 + }, + { + "id": 1865, + "x_pos": -2178.5, + "y_pos": 2167.6726049978897 + }, + { + "id": 1747, + "x_pos": -2438, + "y_pos": 1607.6449953037095 + }, + { + "id": 1744, + "x_pos": -1205, + "y_pos": 489 + }, + { + "id": 1734, + "x_pos": -2388.5495293809718, + "y_pos": 1226.270843798893 + }, + { + "id": 1720, + "x_pos": 368.50021848898723, + "y_pos": 2696.000602283162 + }, + { + "id": 1716, + "x_pos": -1082.4994537775328, + "y_pos": 2196.001204566325 + }, + { + "id": 1714, + "x_pos": -619.9987983105725, + "y_pos": 1446.0013250229576 + }, + { + "id": 1692, + "x_pos": 9.001092444933875, + "y_pos": 1926.4993977168378 + }, + { + "id": 1675, + "x_pos": -1230.5002184889868, + "y_pos": 1867.4991568035725 + }, + { + "id": 1674, + "x_pos": -2494.4995630220265, + "y_pos": 1357.0002409132649 + }, + { + "id": 1673, + "x_pos": -2399.4995630220265, + "y_pos": 1371.5001204566324 + }, + { + "id": 1672, + "x_pos": -1373.069958101236, + "y_pos": 368.26120726829276 + }, + { + "id": 286, + "x_pos": -1328.5, + "y_pos": 603.7098652676805 + }, + { + "id": 284, + "x_pos": -1198.8504157425355, + "y_pos": 846.8043551015844 + }, + { + "id": 283, + "x_pos": -1268.4995709468053, + "y_pos": 650.500798676363 + }, + { + "id": 281, + "x_pos": -1283.9306425450695, + "y_pos": 531.9160212744209 + }, + { + "id": 280, + "x_pos": -1429.972403722703, + "y_pos": 552.4269365180517 + }, + { + "id": 278, + "x_pos": -1502.9143385236644, + "y_pos": 621.409365638061 + }, + { + "id": 277, + "x_pos": -1172.841548643175, + "y_pos": 647.7660186361509 + }, + { + "id": 276, + "x_pos": -1452.844981068734, + "y_pos": 479.83896441065644 + }, + { + "id": 275, + "x_pos": -1330.8781611824702, + "y_pos": 817.8336399015684 + }, + { + "id": 274, + "x_pos": -1622.0027234818067, + "y_pos": 578.914690147149 + }, + { + "id": 273, + "x_pos": -1637.9529533112022, + "y_pos": 712.9580848962164 + }, + { + "id": 272, + "x_pos": -1578.9985698226837, + "y_pos": 446.00425960727034 + }, + { + "id": 271, + "x_pos": -1496.9998569822683, + "y_pos": 801.0018635781807 + }, + { + "id": 270, + "x_pos": -1532.9183430201501, + "y_pos": 817.4652729834852 + }, + { + "id": 269, + "x_pos": -1626.905048516015, + "y_pos": 373.90339097062133 + }, + { + "id": 268, + "x_pos": -1345.9982837872203, + "y_pos": 736.0063894109057 + }, + { + "id": 267, + "x_pos": -1486.0005720709264, + "y_pos": 161.00851921454068 + }, + { + "id": 265, + "x_pos": -1366.8858841399779, + "y_pos": 869.8576001924648 + }, + { + "id": 264, + "x_pos": -1100.9994279290736, + "y_pos": 1101.0079867636318 + }, + { + "id": 263, + "x_pos": -1117.8286770473292, + "y_pos": 887.8336399015684 + }, + { + "id": 262, + "x_pos": -1191.9979977517573, + "y_pos": 1030.0063894109057 + }, + { + "id": 261, + "x_pos": -1213.8561364518005, + "y_pos": 911.8464187233799 + }, + { + "id": 260, + "x_pos": -1049.9299336013173, + "y_pos": 957.9007287160775 + }, + { + "id": 259, + "x_pos": -1170.9994279290736, + "y_pos": 1254.0037271563615 + }, + { + "id": 257, + "x_pos": -1122.5, + "y_pos": 1433.0037271563615 + }, + { + "id": 256, + "x_pos": -1085.5004290531947, + "y_pos": 1433.5031947054526 + }, + { + "id": 255, + "x_pos": -1693, + "y_pos": 987.5 + }, + { + "id": 254, + "x_pos": -1791, + "y_pos": 916 + }, + { + "id": 253, + "x_pos": -1895, + "y_pos": 732 + }, + { + "id": 252, + "x_pos": -2051.5, + "y_pos": 889.5 + }, + { + "id": 251, + "x_pos": -1479.0706135681962, + "y_pos": 2222.7820462657164 + }, + { + "id": 250, + "x_pos": -1991, + "y_pos": 942 + }, + { + "id": 249, + "x_pos": -1657, + "y_pos": 1167 + }, + { + "id": 248, + "x_pos": -1400, + "y_pos": 1500 + }, + { + "id": 247, + "x_pos": -1702, + "y_pos": 1549 + }, + { + "id": 246, + "x_pos": -1641.580773306082, + "y_pos": 2477.2780711968435 + }, + { + "id": 245, + "x_pos": -1213.0754203259057, + "y_pos": 2543.258557222377 + }, + { + "id": 244, + "x_pos": -1365.5620924977115, + "y_pos": 2843.7763848039885 + }, + { + "id": 243, + "x_pos": -1260.575311081412, + "y_pos": 3075.2766257172534 + }, + { + "id": 241, + "x_pos": -1952, + "y_pos": 1303.5 + }, + { + "id": 239, + "x_pos": -2064, + "y_pos": 1351 + }, + { + "id": 234, + "x_pos": -1689.0703950792094, + "y_pos": 2494.7822871789813 + }, + { + "id": 233, + "x_pos": -1957, + "y_pos": 1398 + }, + { + "id": 231, + "x_pos": -1785.0410083104869, + "y_pos": 2483.2746984111336 + }, + { + "id": 230, + "x_pos": -2037, + "y_pos": 1592 + }, + { + "id": 228, + "x_pos": -1988.5528067157732, + "y_pos": 2574.2830099187768 + }, + { + "id": 227, + "x_pos": -1965, + "y_pos": 1591 + }, + { + "id": 225, + "x_pos": -1889.077277482293, + "y_pos": 2667.7905986866244 + }, + { + "id": 224, + "x_pos": -2058, + "y_pos": 1561 + }, + { + "id": 222, + "x_pos": -2174, + "y_pos": 1493 + }, + { + "id": 221, + "x_pos": -2032.070832057183, + "y_pos": 2841.2774689136813 + }, + { + "id": 220, + "x_pos": -2022.0319410175352, + "y_pos": 2979.79565786519 + }, + { + "id": 219, + "x_pos": -2293, + "y_pos": 1439 + }, + { + "id": 218, + "x_pos": -2357, + "y_pos": 1416 + }, + { + "id": 217, + "x_pos": -1628.1128911871392, + "y_pos": 2820.270241515731 + }, + { + "id": 216, + "x_pos": -2372, + "y_pos": 1358.5 + }, + { + "id": 215, + "x_pos": -1840.0785884162137, + "y_pos": 2870.2760234340913 + }, + { + "id": 213, + "x_pos": -2024, + "y_pos": 1109 + }, + { + "id": 212, + "x_pos": -2017.0734539250243, + "y_pos": 3198.28987594683 + }, + { + "id": 211, + "x_pos": -2327, + "y_pos": 1094 + }, + { + "id": 209, + "x_pos": -1685.0439579118083, + "y_pos": 3161.7778302835786 + }, + { + "id": 206, + "x_pos": -1530.5528067157734, + "y_pos": 3164.787346357547 + }, + { + "id": 205, + "x_pos": -2502.5, + "y_pos": 1580.5 + }, + { + "id": 204, + "x_pos": -1296.0726892135708, + "y_pos": 3007.768796036141 + }, + { + "id": 202, + "x_pos": -2554.5, + "y_pos": 1657.5 + }, + { + "id": 201, + "x_pos": -1445.6428241783287, + "y_pos": 2908.2703619723634 + }, + { + "id": 200, + "x_pos": -2593, + "y_pos": 1549.5 + }, + { + "id": 198, + "x_pos": -1386.5665715219407, + "y_pos": 2755.775662064194 + }, + { + "id": 197, + "x_pos": -2592, + "y_pos": 1672 + }, + { + "id": 196, + "x_pos": -1336.544176400795, + "y_pos": 2736.2726506483814 + }, + { + "id": 195, + "x_pos": -995, + "y_pos": 2454 + }, + { + "id": 193, + "x_pos": -817, + "y_pos": 1782 + }, + { + "id": 192, + "x_pos": -292, + "y_pos": 1655 + }, + { + "id": 189, + "x_pos": -1086.5733446805311, + "y_pos": 2503.2760234340913 + }, + { + "id": 188, + "x_pos": -666, + "y_pos": 1579.5 + }, + { + "id": 187, + "x_pos": -458.5, + "y_pos": 1586.5 + }, + { + "id": 186, + "x_pos": -717, + "y_pos": 2391 + }, + { + "id": 183, + "x_pos": 270.5, + "y_pos": 2537 + }, + { + "id": 181, + "x_pos": -2135, + "y_pos": 1694 + }, + { + "id": 180, + "x_pos": -2001, + "y_pos": 1676 + }, + { + "id": 179, + "x_pos": -1920, + "y_pos": 1761 + }, + { + "id": 178, + "x_pos": -1828, + "y_pos": 1703 + }, + { + "id": 176, + "x_pos": -2183, + "y_pos": 2033 + }, + { + "id": 175, + "x_pos": -1637, + "y_pos": 1676 + }, + { + "id": 174, + "x_pos": -1413, + "y_pos": 1582 + }, + { + "id": 173, + "x_pos": -968, + "y_pos": 2289 + }, + { + "id": 172, + "x_pos": -320, + "y_pos": 1860.5 + }, + { + "id": 171, + "x_pos": -286.5, + "y_pos": 1846.5 + }, + { + "id": 170, + "x_pos": -527.5, + "y_pos": 1756 + }, + { + "id": 168, + "x_pos": -471, + "y_pos": 1729 + }, + { + "id": 167, + "x_pos": -767, + "y_pos": 1670.5 + }, + { + "id": 166, + "x_pos": 152.5, + "y_pos": 2430.5 + }, + { + "id": 158, + "x_pos": -1560, + "y_pos": 1918 + }, + { + "id": 157, + "x_pos": -1473.0634034316322, + "y_pos": 1982.2633754876779 + }, + { + "id": 156, + "x_pos": -962.5, + "y_pos": 1992 + }, + { + "id": 155, + "x_pos": -551.5, + "y_pos": 1960.5 + }, + { + "id": 154, + "x_pos": -637.5, + "y_pos": 2052.5 + }, + { + "id": 153, + "x_pos": -175, + "y_pos": 2462 + }, + { + "id": 152, + "x_pos": -636.0585966739231, + "y_pos": 2970.277107543784 + }, + { + "id": 151, + "x_pos": -955.5, + "y_pos": 2048.5 + }, + { + "id": 150, + "x_pos": -885, + "y_pos": 2087 + }, + { + "id": 149, + "x_pos": -624, + "y_pos": 2300 + }, + { + "id": 148, + "x_pos": -510.5, + "y_pos": 1480.5 + }, + { + "id": 147, + "x_pos": -1269, + "y_pos": 1559 + }, + { + "id": 146, + "x_pos": -910.8770108957115, + "y_pos": 1378.3856715726192 + }, + { + "id": 145, + "x_pos": -1022.9090468675945, + "y_pos": 1504.4527603871284 + }, + { + "id": 144, + "x_pos": -242, + "y_pos": 1705 + }, + { + "id": 143, + "x_pos": -504.5, + "y_pos": 1375.5 + }, + { + "id": 142, + "x_pos": -612.8501235621661, + "y_pos": 1110.7743893326801 + }, + { + "id": 141, + "x_pos": -1394.8938931329485, + "y_pos": 965.9087154797094 + }, + { + "id": 140, + "x_pos": -1322.9004719486034, + "y_pos": 1189.8607948979175 + }, + { + "id": 139, + "x_pos": -665, + "y_pos": 1494.5 + }, + { + "id": 138, + "x_pos": -1299, + "y_pos": 1412 + }, + { + "id": 137, + "x_pos": -943.7963550399827, + "y_pos": 1046.8378995088387 + }, + { + "id": 136, + "x_pos": -1117.788918117938, + "y_pos": 781.7303444252611 + }, + { + "id": 135, + "x_pos": -938.8734354524208, + "y_pos": 740.8806132889858 + }, + { + "id": 102, + "x_pos": -1212, + "y_pos": 2046.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/2868bba96b4e4fccab2667b65676cc26_3366803659083755673.png" + }, + "9": { + "name": "Liyue", + "clear_name": "Liyue", + "points": [ + { + "id": 342, + "x_pos": -2036.5, + "y_pos": 1110.5 + }, + { + "id": 341, + "x_pos": -2045, + "y_pos": 876 + }, + { + "id": 340, + "x_pos": -2166.5, + "y_pos": 1262 + }, + { + "id": 339, + "x_pos": -1836, + "y_pos": 2401 + }, + { + "id": 338, + "x_pos": -2301, + "y_pos": 1892 + }, + { + "id": 337, + "x_pos": -474.5, + "y_pos": 1310 + }, + { + "id": 336, + "x_pos": -66.5, + "y_pos": 2939.5 + }, + { + "id": 335, + "x_pos": -1272.9989988758784, + "y_pos": 682.4986688727281 + }, + { + "id": 334, + "x_pos": -826.4994279290736, + "y_pos": 790.0034609309073 + }, + { + "id": 333, + "x_pos": -1642.500873955947, + "y_pos": 2964.504577352035 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/f6663a092b83ae3f3711ca059f3e196a_6416415565664253407.png" + }, + "8": { + "name": "Mondstadt", + "clear_name": "Mondstadt", + "points": [ + { + "id": 332, + "x_pos": -537, + "y_pos": 747 + }, + { + "id": 331, + "x_pos": 928.5, + "y_pos": -272.5 + }, + { + "id": 330, + "x_pos": 437, + "y_pos": -551 + }, + { + "id": 329, + "x_pos": -200.5, + "y_pos": -427 + }, + { + "id": 328, + "x_pos": -460.5, + "y_pos": 174.5 + }, + { + "id": 327, + "x_pos": -115.5, + "y_pos": 344.5 + }, + { + "id": 326, + "x_pos": 245.5, + "y_pos": 345.5 + }, + { + "id": 325, + "x_pos": 454, + "y_pos": 609.5 + }, + { + "id": 324, + "x_pos": 763.5, + "y_pos": 735.5 + }, + { + "id": 323, + "x_pos": 551, + "y_pos": 943 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/1e4f19dec0512a085939e1f2eebea6f1_6196265303986877186.png" + } + }, + "categories": [ + { + "id": 1, + "name": "Waypoints", + "children": [ + 2, + 3, + 154, + 158, + 190, + 192, + 316, + 319, + 338, + 340 + ] + }, + { + "id": 13, + "name": "Open-World Chests", + "children": [ + 17, + 44, + 45, + 46, + 269 + ] + }, + { + "id": 4, + "name": "Oculi", + "children": [ + 5, + 6, + 141, + 182, + 194, + 320, + 325, + 326, + 327, + 328, + 357 + ] + }, + { + "id": 14, + "name": "Puzzles", + "children": [ + 18, + 148, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 79, + 83, + 155, + 156, + 159, + 258, + 259, + 191, + 193, + 205, + 216, + 230, + 231, + 264, + 260, + 321, + 332, + 330, + 331, + 341, + 346, + 349, + 353, + 354 + ] + }, + { + "id": 50, + "name": "Enemies (Common)", + "children": [ + 55, + 57, + 58, + 56, + 59, + 209, + 229, + 54, + 47, + 48, + 213, + 345, + 221, + 222 + ] + }, + { + "id": 12, + "name": "Enemies (Elite)", + "children": [ + 149, + 19, + 20, + 21, + 255, + 24, + 22, + 23, + 25, + 26, + 215, + 150, + 27, + 28, + 49, + 169, + 152, + 53, + 151, + 257, + 206, + 207, + 210, + 265, + 337, + 214, + 344 + ] + }, + { + "id": 131, + "name": "Enemies (Boss)", + "children": [ + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 157, + 181, + 183, + 203, + 204, + 262, + 263, + 318, + 333, + 352 + ] + }, + { + "id": 10, + "name": "Local Specialties", + "children": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 78, + 185, + 196, + 197, + 198, + 199, + 211, + 227, + 228, + 266 + ] + }, + { + "id": 60, + "name": "Materials", + "children": [ + 61, + 62, + 63, + 81, + 82, + 90, + 91, + 92, + 93, + 94, + 115, + 116, + 121, + 122, + 123, + 124, + 125, + 126, + 140, + 153, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 195, + 200, + 201, + 254, + 342, + 343, + 355, + 356, + 184 + ] + }, + { + "id": 273, + "name": "Animals", + "children": [ + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 339, + 348, + 350, + 351 + ] + }, + { + "id": 143, + "name": "Guide", + "children": [ + 208, + 253, + 267, + 268, + 144, + 145, + 146, + 147, + 322, + 323, + 324, + 334, + 347, + 358 + ] + }, + { + "id": 7, + "name": "Shrines of Depths", + "children": [ + 8, + 9, + 212 + ] + }, + { + "id": 232, + "name": "Fishing", + "children": [ + 261, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 335, + 336 + ] + }, + { + "id": 11, + "name": "Ores", + "children": [ + 15, + 16, + 80, + 139, + 142, + 172, + 202 + ] + }, + { + "id": 86, + "name": "Enemies (Easter Egg)", + "children": [ + 87 + ] + }, + { + "id": 84, + "name": "Geography", + "children": [ + 85 + ] + }, + { + "id": 88, + "name": "Events", + "children": [] + }, + { + "id": 51, + "name": "World Quests", + "children": [ + 52 + ] + }, + { + "id": 110, + "name": "Books/Recipes", + "children": [ + 111, + 112 + ] + }, + { + "id": 113, + "name": "Investigation", + "children": [ + 114, + 127, + 128, + 129, + 130, + 256, + 223, + 224, + 329, + 359 + ] + }, + { + "id": 170, + "name": "NPC", + "children": [ + 171, + 225, + 226, + 270 + ] + }, + { + "id": 173, + "name": "Wood", + "children": [ + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 217, + 218, + 219, + 220 + ] + }, + { + "id": 186, + "name": "Puzzle Chest", + "children": [ + 187, + 188, + 189 + ] + } + ] +} \ No newline at end of file diff --git a/cheat-library/res/map_undeground_mines.json b/cheat-library/res/map_undeground_mines.json new file mode 100644 index 0000000..0571f40 --- /dev/null +++ b/cheat-library/res/map_undeground_mines.json @@ -0,0 +1,5479 @@ +{ + "labels": { + "127": { + "name": "Mora", + "clear_name": "Mora", + "points": [ + { + "id": 26555, + "x_pos": 205.25, + "y_pos": -70.25 + }, + { + "id": 26553, + "x_pos": -414.25, + "y_pos": -322.75 + }, + { + "id": 26122, + "x_pos": -499, + "y_pos": -286.75 + }, + { + "id": 26121, + "x_pos": -515.25, + "y_pos": -260.5 + }, + { + "id": 26118, + "x_pos": -19.25, + "y_pos": -508.5 + }, + { + "id": 26104, + "x_pos": -388.75, + "y_pos": -165.25 + }, + { + "id": 26101, + "x_pos": -494.75, + "y_pos": -279 + }, + { + "id": 26100, + "x_pos": -513.25, + "y_pos": -261.75 + }, + { + "id": 26099, + "x_pos": -290.5, + "y_pos": -153.75 + }, + { + "id": 26098, + "x_pos": -294, + "y_pos": -145 + }, + { + "id": 26097, + "x_pos": 337.25, + "y_pos": -159 + }, + { + "id": 26091, + "x_pos": -346.5, + "y_pos": -410.75 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/cb0d79765ac1b39571d2e8d09e24825c_572899893604837928.png" + }, + "114": { + "name": "Artifact", + "clear_name": "Artifact", + "points": [ + { + "id": 26554, + "x_pos": 227.5, + "y_pos": 44.5 + }, + { + "id": 26090, + "x_pos": -406.54998779296875, + "y_pos": -464.2649066106767 + }, + { + "id": 26089, + "x_pos": 172.1499481201172, + "y_pos": -156.1047611281324 + }, + { + "id": 26088, + "x_pos": 131.1499481201172, + "y_pos": -101.81371305434777 + }, + { + "id": 26087, + "x_pos": 221.04995727539062, + "y_pos": -74.59312768786617 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a9f458cf7ba149ec659aabb581050a0b_766781731981267833.png" + }, + "359": { + "name": "Rock Pile", + "clear_name": "RockPile", + "points": [ + { + "id": 26548, + "x_pos": -876.75, + "y_pos": 154.5 + }, + { + "id": 26517, + "x_pos": 57.75, + "y_pos": 453 + }, + { + "id": 26509, + "x_pos": 237.5, + "y_pos": 486 + }, + { + "id": 26508, + "x_pos": 146, + "y_pos": 494.5 + }, + { + "id": 26507, + "x_pos": 237.75, + "y_pos": 108 + }, + { + "id": 26506, + "x_pos": 65.75, + "y_pos": 163.5 + }, + { + "id": 26505, + "x_pos": -73.5, + "y_pos": 170.25 + }, + { + "id": 26504, + "x_pos": 21, + "y_pos": 81 + }, + { + "id": 26503, + "x_pos": -19.5, + "y_pos": 170.25 + }, + { + "id": 26502, + "x_pos": -492.25, + "y_pos": 197 + }, + { + "id": 26501, + "x_pos": -160.5, + "y_pos": 538.75 + }, + { + "id": 26500, + "x_pos": -266.75, + "y_pos": 355.75 + }, + { + "id": 26499, + "x_pos": -197.75, + "y_pos": 151.75 + }, + { + "id": 26498, + "x_pos": -207, + "y_pos": 88 + }, + { + "id": 26497, + "x_pos": -227, + "y_pos": -66.5 + }, + { + "id": 26496, + "x_pos": -62, + "y_pos": -312.5 + }, + { + "id": 26495, + "x_pos": 2, + "y_pos": -326.75 + }, + { + "id": 26494, + "x_pos": -116.25, + "y_pos": -129.25 + }, + { + "id": 26476, + "x_pos": -20.300003051757812, + "y_pos": -254.49145562099739 + }, + { + "id": 26475, + "x_pos": -357.5, + "y_pos": 237.5 + }, + { + "id": 26474, + "x_pos": -79.75, + "y_pos": 465 + }, + { + "id": 26473, + "x_pos": -189, + "y_pos": 239.5 + }, + { + "id": 26472, + "x_pos": -153.5, + "y_pos": -172 + }, + { + "id": 26123, + "x_pos": 224.25, + "y_pos": 384 + }, + { + "id": 26120, + "x_pos": -36.75, + "y_pos": -499.5 + }, + { + "id": 26117, + "x_pos": -13.5, + "y_pos": 292 + }, + { + "id": 26103, + "x_pos": -237.75, + "y_pos": -425 + }, + { + "id": 26102, + "x_pos": -9.5, + "y_pos": 87 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/67f677c001b0f43c749f493a1e66ffbb_4133034866915659827.png" + }, + "195": { + "name": "Luminescent Spine", + "clear_name": "LuminescentSpine", + "points": [ + { + "id": 26547, + "x_pos": 150.25, + "y_pos": 456.5 + }, + { + "id": 25827, + "x_pos": -480.29998779296875, + "y_pos": -71.14845482423289 + }, + { + "id": 25826, + "x_pos": -345.1499938964844, + "y_pos": -328 + }, + { + "id": 25825, + "x_pos": -313.9499969482422, + "y_pos": -402.65080451954213 + }, + { + "id": 25820, + "x_pos": 143.9499969482422, + "y_pos": 379.4507330242777 + }, + { + "id": 25819, + "x_pos": 181.6999969482422, + "y_pos": 427.40113146807516 + }, + { + "id": 25818, + "x_pos": -124.45001220703125, + "y_pos": 170.2007406562252 + }, + { + "id": 25817, + "x_pos": -59.34999084472656, + "y_pos": -112.80026308521587 + }, + { + "id": 25816, + "x_pos": -73.40000915527344, + "y_pos": -125.85054906627329 + }, + { + "id": 25793, + "x_pos": 149.65000915527344, + "y_pos": 379.40080451954236 + }, + { + "id": 25792, + "x_pos": 201.40000915527344, + "y_pos": 319.70106760475846 + }, + { + "id": 25791, + "x_pos": 201.5, + "y_pos": 379.75066916096057 + }, + { + "id": 25790, + "x_pos": 178.85000610351562, + "y_pos": 482.50066916096057 + }, + { + "id": 25789, + "x_pos": -60.25, + "y_pos": 479.00100374144085 + }, + { + "id": 25788, + "x_pos": 236.8000030517578, + "y_pos": 29.549936136682845 + }, + { + "id": 25787, + "x_pos": -127.14999389648438, + "y_pos": 178.35020685384598 + }, + { + "id": 25786, + "x_pos": -44.600006103515625, + "y_pos": -106.64878940471317 + }, + { + "id": 25785, + "x_pos": -68, + "y_pos": -124.49866167807886 + }, + { + "id": 25784, + "x_pos": 249.25, + "y_pos": -92.94971401894259 + }, + { + "id": 25783, + "x_pos": 300.6999969482422, + "y_pos": -249.74899625855915 + }, + { + "id": 25781, + "x_pos": 139.14999389648438, + "y_pos": -462.29958629230805 + }, + { + "id": 25779, + "x_pos": 57.19999694824219, + "y_pos": -497.24933083903943 + }, + { + "id": 25778, + "x_pos": 50.44999694824219, + "y_pos": -375.94840622481024 + }, + { + "id": 25777, + "x_pos": -58.59999084472656, + "y_pos": -322.7992669757223 + }, + { + "id": 25776, + "x_pos": -556.3999938964844, + "y_pos": 219.20039844379744 + }, + { + "id": 25775, + "x_pos": -601.25, + "y_pos": 126.9004775710091 + }, + { + "id": 25774, + "x_pos": -339.75, + "y_pos": -333.2985978147617 + }, + { + "id": 25773, + "x_pos": -331.75, + "y_pos": -330.1501429905288 + }, + { + "id": 25772, + "x_pos": -319, + "y_pos": -404.0502554532686 + }, + { + "id": 25771, + "x_pos": -313.8000030517578, + "y_pos": -369.20039844379744 + }, + { + "id": 25770, + "x_pos": -390.84999084472656, + "y_pos": -361.69940233430384 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/86fc768c90691a768b983487ee8fd27d_2443134744517808602.png" + }, + "358": { + "name": "Lumenlamp", + "clear_name": "Lumenlamp", + "points": [ + { + "id": 26546, + "x_pos": 191, + "y_pos": 128 + }, + { + "id": 25857, + "x_pos": 205.18984605437163, + "y_pos": -364.2473127975038 + }, + { + "id": 25856, + "x_pos": -34.42441292099761, + "y_pos": -469.93026486610347 + }, + { + "id": 25855, + "x_pos": -531.5951535739482, + "y_pos": -163.309723437711 + }, + { + "id": 25854, + "x_pos": 235.94394522840093, + "y_pos": -84.20367852498339 + }, + { + "id": 25853, + "x_pos": 175.43459923083265, + "y_pos": -106.12328307711095 + }, + { + "id": 25852, + "x_pos": 99.45826349724166, + "y_pos": -490.97895099015227 + }, + { + "id": 25851, + "x_pos": 270.0274822259844, + "y_pos": -347.93888035384134 + }, + { + "id": 25850, + "x_pos": 298.45921689138095, + "y_pos": -221.5445755735857 + }, + { + "id": 25849, + "x_pos": 340.4518029282772, + "y_pos": -110.45376908292724 + }, + { + "id": 25848, + "x_pos": 370.19032818638425, + "y_pos": -163.4918916924762 + }, + { + "id": 25847, + "x_pos": 383.461751327879, + "y_pos": -295.091310940202 + }, + { + "id": 25846, + "x_pos": 337.9310712517481, + "y_pos": -314.51602435356676 + }, + { + "id": 25845, + "x_pos": 290.85842254820955, + "y_pos": -278.4257619907635 + }, + { + "id": 25844, + "x_pos": 134.00683259955758, + "y_pos": -406.28338361481906 + }, + { + "id": 25843, + "x_pos": 129.67076765234333, + "y_pos": -356.6170899168494 + }, + { + "id": 25842, + "x_pos": 207.43897821674955, + "y_pos": -362.9899680745632 + }, + { + "id": 25841, + "x_pos": -1.2816410090620138, + "y_pos": -365.664324160213 + }, + { + "id": 25840, + "x_pos": 10.249035560654647, + "y_pos": -400.1314101092312 + }, + { + "id": 25839, + "x_pos": -31.937793048603226, + "y_pos": -443.6305747470285 + }, + { + "id": 25838, + "x_pos": -108.04075260281161, + "y_pos": -375.46511641126153 + }, + { + "id": 25837, + "x_pos": -102.79277755726321, + "y_pos": -342.44203299630544 + }, + { + "id": 25836, + "x_pos": -114.29678240873864, + "y_pos": -468.7107425461618 + }, + { + "id": 25835, + "x_pos": 50.092505704936684, + "y_pos": -540.8389155850612 + }, + { + "id": 25834, + "x_pos": -29.18766173337508, + "y_pos": -513.5763769600082 + }, + { + "id": 25833, + "x_pos": -395.2022210682221, + "y_pos": -381.1234153753012 + }, + { + "id": 25832, + "x_pos": -296.8306804969011, + "y_pos": -370.9580427491453 + }, + { + "id": 25831, + "x_pos": -332.3169879477516, + "y_pos": -314.66869601910616 + }, + { + "id": 25830, + "x_pos": -353.28256161822446, + "y_pos": -323.02981089495097 + }, + { + "id": 25829, + "x_pos": -391.9258482718285, + "y_pos": -336.87078178310776 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220316/199be36c70a3befa17ee7055371db2f9_2964552706133707771.png" + }, + "85": { + "name": "Viewpoint", + "clear_name": "Viewpoint", + "points": [ + { + "id": 26545, + "x_pos": 37.5, + "y_pos": 59.2908556951445 + }, + { + "id": 26491, + "x_pos": -169.75, + "y_pos": 412.5 + }, + { + "id": 26490, + "x_pos": -109.75, + "y_pos": -330.5 + }, + { + "id": 26086, + "x_pos": 194.75, + "y_pos": 104.5 + }, + { + "id": 26085, + "x_pos": 107.5, + "y_pos": -142.5 + }, + { + "id": 26084, + "x_pos": 291.5, + "y_pos": -278.75 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/873545b6a19891b8d21ae766cd1b70e4_4883968056261625769.png" + }, + "77": { + "name": "Mini Puzzle", + "clear_name": "MiniPuzzle", + "points": [ + { + "id": 26528, + "x_pos": 120.25, + "y_pos": -429.75 + }, + { + "id": 26524, + "x_pos": -31.25, + "y_pos": -462.25 + }, + { + "id": 26516, + "x_pos": 1.5, + "y_pos": -473.5 + }, + { + "id": 26510, + "x_pos": 368.75, + "y_pos": -292.5 + }, + { + "id": 26477, + "x_pos": 86.5, + "y_pos": -262 + }, + { + "id": 26471, + "x_pos": 225.66665649414062, + "y_pos": -298 + }, + { + "id": 26470, + "x_pos": -4.91668701171875, + "y_pos": -315.6666564941406 + }, + { + "id": 26469, + "x_pos": 68, + "y_pos": -530.6666564941406 + }, + { + "id": 26468, + "x_pos": -111.75, + "y_pos": -355.6666717529297 + }, + { + "id": 25473, + "x_pos": -166.83331298828125, + "y_pos": -152.08334350585938 + }, + { + "id": 25469, + "x_pos": 13.300003051757812, + "y_pos": 87.45174439766583 + }, + { + "id": 25468, + "x_pos": 200.5, + "y_pos": 194.39746634668654 + }, + { + "id": 25458, + "x_pos": 191.75, + "y_pos": 371.5 + }, + { + "id": 25457, + "x_pos": 69.5, + "y_pos": -382 + }, + { + "id": 25448, + "x_pos": 157.3000030517578, + "y_pos": -94.20038317990316 + }, + { + "id": 25447, + "x_pos": -192.75, + "y_pos": -47.401131468075164 + }, + { + "id": 25438, + "x_pos": -30.050003051757812, + "y_pos": 135.15313895095687 + }, + { + "id": 25437, + "x_pos": -202.15000915527344, + "y_pos": 141.3471956295234 + }, + { + "id": 25436, + "x_pos": -409.5833435058594, + "y_pos": -328.0833435058594 + }, + { + "id": 25434, + "x_pos": 73.60000610351562, + "y_pos": 152.79727475673508 + }, + { + "id": 25433, + "x_pos": -20.849990844726562, + "y_pos": 270.99831183370407 + }, + { + "id": 25431, + "x_pos": 176.74998474121094, + "y_pos": 522.2976017052679 + }, + { + "id": 25429, + "x_pos": 237.40000915527344, + "y_pos": 426.89912398519346 + }, + { + "id": 25428, + "x_pos": 386.5, + "y_pos": -300.3333435058594 + }, + { + "id": 25427, + "x_pos": 230.60000610351562, + "y_pos": -226.649785514207 + }, + { + "id": 25426, + "x_pos": 172.04998779296875, + "y_pos": -384.2503193165858 + }, + { + "id": 25425, + "x_pos": -206.24996948242188, + "y_pos": -215.25 + }, + { + "id": 25406, + "x_pos": 136.85000610351562, + "y_pos": 547.0499361366828 + }, + { + "id": 25401, + "x_pos": -63.799957275390625, + "y_pos": -325.8928127477511 + }, + { + "id": 25398, + "x_pos": 279.25, + "y_pos": -150.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8318e95c402c3f8120c236d569b7c30d_4122189942380617256.png" + }, + "18": { + "name": "Seelie", + "clear_name": "Seelie", + "points": [ + { + "id": 26525, + "x_pos": 84.5, + "y_pos": 130.99272661023588 + }, + { + "id": 25476, + "x_pos": -161.6000213623047, + "y_pos": -132.55493957999283 + }, + { + "id": 25467, + "x_pos": 337.8000030517578, + "y_pos": -106.19839859286299 + }, + { + "id": 25466, + "x_pos": 212.00001525878906, + "y_pos": -218.500319316586 + }, + { + "id": 25465, + "x_pos": 68.83331298828125, + "y_pos": -258.1666564941406 + }, + { + "id": 25464, + "x_pos": 144.0500030517578, + "y_pos": 541.3994738295683 + }, + { + "id": 25463, + "x_pos": 164.25, + "y_pos": 389.4269816261508 + }, + { + "id": 25462, + "x_pos": 7.833343505859375, + "y_pos": -366.4166717529297 + }, + { + "id": 25460, + "x_pos": -4.5999755859375, + "y_pos": -357.2004137076917 + }, + { + "id": 25459, + "x_pos": -362.20001220703125, + "y_pos": -457.7500305277888 + }, + { + "id": 25424, + "x_pos": 232.15000915527344, + "y_pos": -12.912841784885359 + }, + { + "id": 25423, + "x_pos": 306.16668701171875, + "y_pos": -280.6666564941406 + }, + { + "id": 25422, + "x_pos": 113, + "y_pos": -141.3333740234375 + }, + { + "id": 25421, + "x_pos": -233.09999084472656, + "y_pos": -160.14980841004854 + }, + { + "id": 25420, + "x_pos": 14.050003051757812, + "y_pos": 103.59686868099016 + }, + { + "id": 25419, + "x_pos": 86.69999694824219, + "y_pos": 188.41053024931216 + }, + { + "id": 25418, + "x_pos": 188.15000915527344, + "y_pos": 452.8498646414182 + }, + { + "id": 25417, + "x_pos": -204.33331298828125, + "y_pos": 357.0833282470703 + }, + { + "id": 25416, + "x_pos": -215.40000915527344, + "y_pos": 198.69772179995516 + }, + { + "id": 25415, + "x_pos": -564.8999786376953, + "y_pos": 239.14945856567374 + }, + { + "id": 25414, + "x_pos": 243.15000915527344, + "y_pos": -408.35321807816854 + }, + { + "id": 25413, + "x_pos": 161.4499969482422, + "y_pos": -416.90116199586396 + }, + { + "id": 25412, + "x_pos": -78.84999084472656, + "y_pos": -347.20041370769195 + }, + { + "id": 25411, + "x_pos": -46.55000305175781, + "y_pos": -473.4627931854625 + }, + { + "id": 25410, + "x_pos": -434.3500061035156, + "y_pos": -208.70743226583068 + }, + { + "id": 25409, + "x_pos": -501.1666564941406, + "y_pos": -270 + }, + { + "id": 25404, + "x_pos": 152.99996948242188, + "y_pos": 527.2051436260986 + }, + { + "id": 25403, + "x_pos": 161.99996948242188, + "y_pos": 539.8988046686077 + }, + { + "id": 25402, + "x_pos": -219.89999389648438, + "y_pos": -64.9028196343711 + }, + { + "id": 25399, + "x_pos": -355.41668701171875, + "y_pos": -318.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8de3558f991ac422463712dd095278b3_109842752079072307.png" + }, + "79": { + "name": "Enemies (First-Time Victory)", + "clear_name": "EnemiesFirstTimeVictory", + "points": [ + { + "id": 26515, + "x_pos": 252.25, + "y_pos": -527 + }, + { + "id": 25432, + "x_pos": 153, + "y_pos": 517.8515528077141 + }, + { + "id": 25430, + "x_pos": 228.64999389648438, + "y_pos": 470.3508683828595 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/4cca7114e8db044283d84ed3b0b72b06_6968745740726409394.png" + }, + "52": { + "name": "World Quests", + "clear_name": "WorldQuests", + "points": [ + { + "id": 26511, + "x_pos": -73.25, + "y_pos": 410 + }, + { + "id": 26492, + "x_pos": -224, + "y_pos": 222.5 + }, + { + "id": 26434, + "x_pos": -77.10687299045549, + "y_pos": 416.9642947453681 + }, + { + "id": 26433, + "x_pos": 50.535715235227144, + "y_pos": 243.71430971316613 + }, + { + "id": 26432, + "x_pos": 55.42850848906437, + "y_pos": -172.78572080440995 + }, + { + "id": 26430, + "x_pos": -69.08630287011829, + "y_pos": 414.92858596248243 + }, + { + "id": 26428, + "x_pos": 124.25, + "y_pos": -116 + }, + { + "id": 26427, + "x_pos": -259.6070169781285, + "y_pos": 253 + }, + { + "id": 26426, + "x_pos": -155.80436792189562, + "y_pos": 472.7857032631691 + }, + { + "id": 26425, + "x_pos": 21.464254244532185, + "y_pos": 152.39285284555854 + }, + { + "id": 26424, + "x_pos": 164.8929525016306, + "y_pos": 171.53572094990477 + }, + { + "id": 26423, + "x_pos": -135.71426950465252, + "y_pos": -471 + }, + { + "id": 26422, + "x_pos": 97.53450893995068, + "y_pos": -424.6428676678613 + }, + { + "id": 26421, + "x_pos": 94.46426950465275, + "y_pos": -424.6785735044732 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/5938abaf948c3b2fa47a3ac3938aabf3_4865664785447822197.png" + }, + "17": { + "name": "Common Chest", + "clear_name": "CommonChest", + "points": [ + { + "id": 26489, + "x_pos": -31.5, + "y_pos": -106.58334350585938 + }, + { + "id": 25396, + "x_pos": 194, + "y_pos": 539 + }, + { + "id": 25395, + "x_pos": -160, + "y_pos": 151 + }, + { + "id": 25394, + "x_pos": 68.8333740234375, + "y_pos": 244.5 + }, + { + "id": 25393, + "x_pos": -120, + "y_pos": -90 + }, + { + "id": 25390, + "x_pos": 232.25, + "y_pos": -273.5 + }, + { + "id": 25386, + "x_pos": 107.25, + "y_pos": -403.75 + }, + { + "id": 25385, + "x_pos": -10.166656494140625, + "y_pos": -341.5 + }, + { + "id": 25384, + "x_pos": -142.16668701171875, + "y_pos": -409.4166564941406 + }, + { + "id": 25381, + "x_pos": -750, + "y_pos": 173 + }, + { + "id": 25369, + "x_pos": -58.5, + "y_pos": 317 + }, + { + "id": 25368, + "x_pos": -213.5, + "y_pos": 422 + }, + { + "id": 25367, + "x_pos": -128.5, + "y_pos": 502 + }, + { + "id": 25365, + "x_pos": 106.5, + "y_pos": 385.5 + }, + { + "id": 25358, + "x_pos": -289.5, + "y_pos": 255 + }, + { + "id": 25357, + "x_pos": -154.5, + "y_pos": 101 + }, + { + "id": 25355, + "x_pos": -118, + "y_pos": 213.5 + }, + { + "id": 25353, + "x_pos": 84, + "y_pos": 220 + }, + { + "id": 25349, + "x_pos": -26.5, + "y_pos": 36.5 + }, + { + "id": 25343, + "x_pos": -216, + "y_pos": -83.5 + }, + { + "id": 25337, + "x_pos": -438.9166564941406, + "y_pos": -318.25 + }, + { + "id": 25336, + "x_pos": -400.25, + "y_pos": -230.5 + }, + { + "id": 25335, + "x_pos": -534.75, + "y_pos": -81.5 + }, + { + "id": 25334, + "x_pos": -484, + "y_pos": -56 + }, + { + "id": 25327, + "x_pos": 153.8333740234375, + "y_pos": -97.41667175292969 + }, + { + "id": 25326, + "x_pos": 368.83331298828125, + "y_pos": -123.00003051757812 + }, + { + "id": 25325, + "x_pos": 290.25, + "y_pos": -106.25 + }, + { + "id": 25324, + "x_pos": 329.5, + "y_pos": -161.5 + }, + { + "id": 25323, + "x_pos": 266, + "y_pos": -208.75 + }, + { + "id": 25305, + "x_pos": 204.08334350585938, + "y_pos": -303.0833435058594 + }, + { + "id": 25303, + "x_pos": 276.5, + "y_pos": -394.25 + }, + { + "id": 25302, + "x_pos": 201.25, + "y_pos": -387.75 + }, + { + "id": 25301, + "x_pos": 157.5, + "y_pos": -405.75 + }, + { + "id": 25300, + "x_pos": 93.5, + "y_pos": -493.5 + }, + { + "id": 25299, + "x_pos": -122.25, + "y_pos": -490.5833435058594 + }, + { + "id": 25298, + "x_pos": -9.083343505859375, + "y_pos": -549.5 + }, + { + "id": 25297, + "x_pos": 27.5, + "y_pos": -564.75 + }, + { + "id": 25295, + "x_pos": 18, + "y_pos": -514.5833282470703 + }, + { + "id": 25293, + "x_pos": -11.25, + "y_pos": -456.75 + }, + { + "id": 25292, + "x_pos": 22.166656494140625, + "y_pos": -470.58331298828125 + }, + { + "id": 25291, + "x_pos": 43.500030517578125, + "y_pos": -421.33331298828125 + }, + { + "id": 25290, + "x_pos": 21.6666259765625, + "y_pos": -394.5833435058594 + }, + { + "id": 25289, + "x_pos": -97.5, + "y_pos": -316.9166717529297 + }, + { + "id": 25287, + "x_pos": -102.08334350585938, + "y_pos": -399.6666717529297 + }, + { + "id": 25286, + "x_pos": -141.08334350585938, + "y_pos": -442.6666717529297 + }, + { + "id": 25285, + "x_pos": -224.75, + "y_pos": -400.25 + }, + { + "id": 25284, + "x_pos": -319.1666564941406, + "y_pos": -390 + }, + { + "id": 25283, + "x_pos": -306.16668701171875, + "y_pos": -370.25 + }, + { + "id": 25282, + "x_pos": -290, + "y_pos": -360 + }, + { + "id": 25281, + "x_pos": -314.7500305175781, + "y_pos": -319.3333435058594 + }, + { + "id": 25279, + "x_pos": -381.25, + "y_pos": -385.8333435058594 + }, + { + "id": 25278, + "x_pos": -390.9166259765625, + "y_pos": -437.8333435058594 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/35cf41aad7620ce6d5dc516defb967f7_7806440070871726330.png" + }, + "24": { + "name": "Abyss Mage", + "clear_name": "AbyssMage", + "points": [ + { + "id": 26488, + "x_pos": 0.5000152587890625, + "y_pos": 228.9498757482129 + }, + { + "id": 26482, + "x_pos": 179.6999969482422, + "y_pos": -581.9513774687471 + }, + { + "id": 26481, + "x_pos": 175.49998474121094, + "y_pos": -581.6033281807197 + }, + { + "id": 26409, + "x_pos": 110.75, + "y_pos": 136.25 + }, + { + "id": 25672, + "x_pos": 112.5, + "y_pos": 136 + }, + { + "id": 25666, + "x_pos": -882.5, + "y_pos": 335.75 + }, + { + "id": 25665, + "x_pos": -884, + "y_pos": 335.25 + }, + { + "id": 25664, + "x_pos": -150.5, + "y_pos": 97.75 + }, + { + "id": 25663, + "x_pos": -139, + "y_pos": -140.5 + }, + { + "id": 25662, + "x_pos": 112.75, + "y_pos": 136.75 + }, + { + "id": 25661, + "x_pos": 65, + "y_pos": 245.75 + }, + { + "id": 25660, + "x_pos": 200.5, + "y_pos": 210.5 + }, + { + "id": 25659, + "x_pos": 314.25, + "y_pos": -203 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/d2fa99f9123c46cd98de7410adfe1d7a_8479587568669217286.png" + }, + "47": { + "name": "Whopperflower", + "clear_name": "Whopperflower", + "points": [ + { + "id": 26487, + "x_pos": 153.09999084472656, + "y_pos": 419.5531886817171 + }, + { + "id": 26486, + "x_pos": -16.699981689453125, + "y_pos": -412.50303393549893 + }, + { + "id": 26483, + "x_pos": 211.10000610351562, + "y_pos": -590.4019659591881 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a5842417b7fc163a30730478e5b9866e_271693866523629665.png" + }, + "215": { + "name": "Ruin Sentinel", + "clear_name": "RuinSentinel", + "points": [ + { + "id": 26485, + "x_pos": 243.60000610351562, + "y_pos": 423.59801879359657 + }, + { + "id": 26484, + "x_pos": 232.19998168945312, + "y_pos": 436.99848303225053 + }, + { + "id": 26418, + "x_pos": -535, + "y_pos": -83.25 + }, + { + "id": 26417, + "x_pos": -540.1000061035156, + "y_pos": -86.434692105576 + }, + { + "id": 26416, + "x_pos": -474.0500030517578, + "y_pos": -207.70207345830795 + }, + { + "id": 26415, + "x_pos": -481.6999969482422, + "y_pos": -204.69985625225604 + }, + { + "id": 26414, + "x_pos": -481.84999084472656, + "y_pos": -208.8954215800843 + }, + { + "id": 26413, + "x_pos": -393.8500061035156, + "y_pos": -218.4883663260391 + }, + { + "id": 26412, + "x_pos": -402.9499969482422, + "y_pos": -219.30311781119826 + }, + { + "id": 26411, + "x_pos": -398.29998779296875, + "y_pos": -226.95207345830795 + }, + { + "id": 26408, + "x_pos": 146.75, + "y_pos": 350.5402993478224 + }, + { + "id": 26407, + "x_pos": 150.75, + "y_pos": 347.2928218144193 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/804e80a2ad9a790c2b07cfad29af9121_8586441830330297038.png" + }, + "44": { + "name": "Exquisite\u00a0Chest", + "clear_name": "ExquisiteChest", + "points": [ + { + "id": 26480, + "x_pos": 435, + "y_pos": -110.5 + }, + { + "id": 26456, + "x_pos": 238.4000244140625, + "y_pos": -336.8999938964844 + }, + { + "id": 25387, + "x_pos": -290.25, + "y_pos": -463.75 + }, + { + "id": 25382, + "x_pos": -545.8333740234375, + "y_pos": 229 + }, + { + "id": 25377, + "x_pos": -270, + "y_pos": 308.5 + }, + { + "id": 25376, + "x_pos": -212, + "y_pos": 322 + }, + { + "id": 25375, + "x_pos": 43, + "y_pos": 448 + }, + { + "id": 25374, + "x_pos": 149.5, + "y_pos": 337 + }, + { + "id": 25372, + "x_pos": 151.5, + "y_pos": 422.5 + }, + { + "id": 25360, + "x_pos": 30.5, + "y_pos": 267 + }, + { + "id": 25359, + "x_pos": 120.00003051757812, + "y_pos": 135.8333282470703 + }, + { + "id": 25345, + "x_pos": -187, + "y_pos": -98 + }, + { + "id": 25340, + "x_pos": -43, + "y_pos": -112.75 + }, + { + "id": 25316, + "x_pos": 214.5, + "y_pos": -372.75 + }, + { + "id": 25315, + "x_pos": 322, + "y_pos": -359 + }, + { + "id": 25314, + "x_pos": 302.75, + "y_pos": -453.25 + }, + { + "id": 25312, + "x_pos": 131.5, + "y_pos": -545.5 + }, + { + "id": 25309, + "x_pos": 23.416656494140625, + "y_pos": -394 + }, + { + "id": 25308, + "x_pos": -1.083343505859375, + "y_pos": -379.9166717529297 + }, + { + "id": 25306, + "x_pos": -125.41665649414062, + "y_pos": -368.74998474121094 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8cd1c9d66f0adf4b34a7dfcf7715c99f_1064467135939485371.png" + }, + "46": { + "name": "Luxurious\u00a0Chest", + "clear_name": "LuxuriousChest", + "points": [ + { + "id": 26478, + "x_pos": 23.750030517578125, + "y_pos": 272.09999084472656 + }, + { + "id": 25397, + "x_pos": -168, + "y_pos": 467 + }, + { + "id": 25391, + "x_pos": 239.5, + "y_pos": -102 + }, + { + "id": 25383, + "x_pos": -813.5, + "y_pos": 241 + }, + { + "id": 25364, + "x_pos": 20, + "y_pos": 154 + }, + { + "id": 25342, + "x_pos": -169, + "y_pos": -150.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/3c110f9d0de63330f592ba922952d776_784803524970068534.png" + }, + "70": { + "name": "Elemental Monument", + "clear_name": "ElementalMonument", + "points": [ + { + "id": 26467, + "x_pos": 431, + "y_pos": -129.25 + }, + { + "id": 26466, + "x_pos": 422.5, + "y_pos": -107 + }, + { + "id": 26465, + "x_pos": 443.25, + "y_pos": -95.5 + }, + { + "id": 25477, + "x_pos": -113.10000610351562, + "y_pos": -122.95240592667915 + }, + { + "id": 25475, + "x_pos": -112.39999389648438, + "y_pos": -132.05094751007073 + }, + { + "id": 25472, + "x_pos": -139.89999389648438, + "y_pos": -176.1990753857708 + }, + { + "id": 25471, + "x_pos": 38.69999694824219, + "y_pos": -220.70073302427772 + }, + { + "id": 25470, + "x_pos": 66.20001220703125, + "y_pos": -227.90079688759488 + }, + { + "id": 25461, + "x_pos": -110.70001220703125, + "y_pos": -102.44871027750173 + }, + { + "id": 25446, + "x_pos": -97.85000610351562, + "y_pos": -127.61526297545879 + }, + { + "id": 25444, + "x_pos": -119.85000610351562, + "y_pos": -191.85153754381986 + }, + { + "id": 25443, + "x_pos": -81.85000610351562, + "y_pos": -244.55226293615033 + }, + { + "id": 25442, + "x_pos": -40.09999084472656, + "y_pos": -236.70004859942287 + }, + { + "id": 25440, + "x_pos": 106.84999084472656, + "y_pos": -226.9493794384623 + }, + { + "id": 25407, + "x_pos": -114.84999084472656, + "y_pos": -91.0971803656289 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/f381e3a85279e3c1815874f324355c4e_7651994827911834755.png" + }, + "64": { + "name": "Time Trial Challenge", + "clear_name": "TimeTrialChallenge", + "points": [ + { + "id": 26464, + "x_pos": -125.39996337890625, + "y_pos": -424.50000381469727 + }, + { + "id": 25479, + "x_pos": -123.40000915527344, + "y_pos": -144.54493269337286 + }, + { + "id": 25478, + "x_pos": -0.149993896484375, + "y_pos": -383.14577054844335 + }, + { + "id": 25474, + "x_pos": 83.30000305175781, + "y_pos": -404.6551616977331 + }, + { + "id": 25456, + "x_pos": -101.85000610351562, + "y_pos": -247.80027071716313 + }, + { + "id": 25455, + "x_pos": -58.70001220703125, + "y_pos": -164.7972823886821 + }, + { + "id": 25454, + "x_pos": -216.50001525878906, + "y_pos": -44.55428568292655 + }, + { + "id": 25453, + "x_pos": -62.30000305175781, + "y_pos": 152.50672213739426 + }, + { + "id": 25452, + "x_pos": 51.75, + "y_pos": 267.0833435058594 + }, + { + "id": 25451, + "x_pos": 143.6999969482422, + "y_pos": 465.6997369147839 + }, + { + "id": 25450, + "x_pos": 178.35000610351562, + "y_pos": -145.25198458704017 + }, + { + "id": 25449, + "x_pos": 390.3000183105469, + "y_pos": -244.04592117091943 + }, + { + "id": 25408, + "x_pos": -215.91668701171875, + "y_pos": 3.166656494140625 + }, + { + "id": 25405, + "x_pos": 193.35000610351562, + "y_pos": -90.40046993906185 + }, + { + "id": 25400, + "x_pos": -405.0833435058594, + "y_pos": -347.75 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/5f0745a1c1812d249a90601c8de54552_2767759384451412130.png" + }, + "3": { + "name": "Teleport Waypoint", + "clear_name": "TeleportWaypoint", + "points": [ + { + "id": 26463, + "x_pos": 21.75, + "y_pos": 84 + }, + { + "id": 25277, + "x_pos": 241.60403409497303, + "y_pos": 111.1268891223026 + }, + { + "id": 25276, + "x_pos": 150.77968039731877, + "y_pos": 212.49913398741637 + }, + { + "id": 25275, + "x_pos": 190.62113996344897, + "y_pos": 426.62663132473426 + }, + { + "id": 25274, + "x_pos": -49.623479793935076, + "y_pos": 399.32616786868175 + }, + { + "id": 25273, + "x_pos": -664.6321704426077, + "y_pos": 102.71663594569691 + }, + { + "id": 25272, + "x_pos": -779.7580352997775, + "y_pos": 308.855226993378 + }, + { + "id": 25271, + "x_pos": -263.9325379849897, + "y_pos": 269.092420706907 + }, + { + "id": 25270, + "x_pos": -115.09294663657693, + "y_pos": -90.63203147604645 + }, + { + "id": 25269, + "x_pos": 267.52006089940915, + "y_pos": -151.15511633992992 + }, + { + "id": 25268, + "x_pos": 212.56566953584888, + "y_pos": -363.255604338578 + }, + { + "id": 25267, + "x_pos": 0.6253651930842352, + "y_pos": -339.82434812769634 + }, + { + "id": 25266, + "x_pos": -115.87662048952348, + "y_pos": -443.0860375142829 + }, + { + "id": 25265, + "x_pos": -356.5529219654436, + "y_pos": -404.7770414379777 + }, + { + "id": 25264, + "x_pos": -346.8582644089097, + "y_pos": -159.53351797494383 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220401/0cc42d15134cbb724304050fd0bbcaac_8799482478853097434.png" + }, + "357": { + "name": "Lumenspar", + "clear_name": "Lumenspar", + "points": [ + { + "id": 26455, + "x_pos": -124, + "y_pos": -473 + }, + { + "id": 25945, + "x_pos": -400, + "y_pos": 248.75 + }, + { + "id": 25560, + "x_pos": 159, + "y_pos": 187.75 + }, + { + "id": 25559, + "x_pos": 209, + "y_pos": -160.5 + }, + { + "id": 25558, + "x_pos": 36, + "y_pos": 457.75 + }, + { + "id": 25557, + "x_pos": 22.25, + "y_pos": 239.75 + }, + { + "id": 25556, + "x_pos": -886, + "y_pos": 302 + }, + { + "id": 25555, + "x_pos": -785.25, + "y_pos": 297.25 + }, + { + "id": 25554, + "x_pos": -740, + "y_pos": 167 + }, + { + "id": 25553, + "x_pos": -736.25, + "y_pos": 135.75 + }, + { + "id": 25552, + "x_pos": -619, + "y_pos": 86 + }, + { + "id": 25551, + "x_pos": -522, + "y_pos": 220.5 + }, + { + "id": 25550, + "x_pos": -419.75, + "y_pos": 244.75 + }, + { + "id": 25549, + "x_pos": -68, + "y_pos": 442 + }, + { + "id": 25548, + "x_pos": -157.75, + "y_pos": 460.25 + }, + { + "id": 25547, + "x_pos": -248, + "y_pos": 371.5 + }, + { + "id": 25546, + "x_pos": -207, + "y_pos": 338.5 + }, + { + "id": 25545, + "x_pos": -196, + "y_pos": 214 + }, + { + "id": 25544, + "x_pos": -208, + "y_pos": 179 + }, + { + "id": 25543, + "x_pos": -167.75, + "y_pos": 148 + }, + { + "id": 25542, + "x_pos": -119.25, + "y_pos": -6.5 + }, + { + "id": 25541, + "x_pos": -11.5, + "y_pos": -30.5 + }, + { + "id": 25540, + "x_pos": -230.5, + "y_pos": -69 + }, + { + "id": 25539, + "x_pos": -156, + "y_pos": -109.5 + }, + { + "id": 25538, + "x_pos": -111, + "y_pos": -109.25 + }, + { + "id": 25537, + "x_pos": -145.75, + "y_pos": -154.25 + }, + { + "id": 25536, + "x_pos": -158.5, + "y_pos": -183 + }, + { + "id": 25535, + "x_pos": -67, + "y_pos": -127 + }, + { + "id": 25534, + "x_pos": 153.5, + "y_pos": 470 + }, + { + "id": 25533, + "x_pos": 174, + "y_pos": 519 + }, + { + "id": 25532, + "x_pos": 147, + "y_pos": 559 + }, + { + "id": 25531, + "x_pos": 131.25, + "y_pos": 435 + }, + { + "id": 25530, + "x_pos": 230, + "y_pos": 424 + }, + { + "id": 25529, + "x_pos": 178.25, + "y_pos": 347 + }, + { + "id": 25528, + "x_pos": -178, + "y_pos": -253.5 + }, + { + "id": 25527, + "x_pos": -96.25, + "y_pos": 279.25 + }, + { + "id": 25526, + "x_pos": -26, + "y_pos": 211.5 + }, + { + "id": 25525, + "x_pos": -57.5, + "y_pos": 126.5 + }, + { + "id": 25524, + "x_pos": 20.5, + "y_pos": 153 + }, + { + "id": 25523, + "x_pos": 155.75, + "y_pos": 217.75 + }, + { + "id": 25522, + "x_pos": 89.5, + "y_pos": 223.5 + }, + { + "id": 25521, + "x_pos": 89.25, + "y_pos": 215.5 + }, + { + "id": 25520, + "x_pos": 190, + "y_pos": 247 + }, + { + "id": 25519, + "x_pos": 199.5, + "y_pos": 192.5 + }, + { + "id": 25518, + "x_pos": 227, + "y_pos": 118 + }, + { + "id": 25517, + "x_pos": 229.5, + "y_pos": 46.5 + }, + { + "id": 25516, + "x_pos": 60.5, + "y_pos": -252.75 + }, + { + "id": 25515, + "x_pos": 49, + "y_pos": -157 + }, + { + "id": 25514, + "x_pos": 136, + "y_pos": -119 + }, + { + "id": 25513, + "x_pos": 405, + "y_pos": -70 + }, + { + "id": 25512, + "x_pos": 387, + "y_pos": -150.5 + }, + { + "id": 25511, + "x_pos": 244, + "y_pos": -188.5 + }, + { + "id": 25510, + "x_pos": 276.5, + "y_pos": -181 + }, + { + "id": 25509, + "x_pos": 294, + "y_pos": -215 + }, + { + "id": 25508, + "x_pos": 283, + "y_pos": -269.5 + }, + { + "id": 25507, + "x_pos": 243, + "y_pos": -308 + }, + { + "id": 25506, + "x_pos": 332, + "y_pos": -357.5 + }, + { + "id": 25505, + "x_pos": 250, + "y_pos": -453.5 + }, + { + "id": 25504, + "x_pos": 290.5, + "y_pos": -424 + }, + { + "id": 25503, + "x_pos": 144, + "y_pos": -347 + }, + { + "id": 25502, + "x_pos": 142, + "y_pos": -456 + }, + { + "id": 25501, + "x_pos": 169, + "y_pos": -398 + }, + { + "id": 25500, + "x_pos": 117.5, + "y_pos": -506 + }, + { + "id": 25499, + "x_pos": 161.5, + "y_pos": -570.5 + }, + { + "id": 25498, + "x_pos": -25, + "y_pos": -249.25 + }, + { + "id": 25497, + "x_pos": 15, + "y_pos": -458.5 + }, + { + "id": 25496, + "x_pos": 25, + "y_pos": -368 + }, + { + "id": 25495, + "x_pos": -51.799957275390625, + "y_pos": -326.1999969482422 + }, + { + "id": 25494, + "x_pos": 46, + "y_pos": -453.75 + }, + { + "id": 25493, + "x_pos": -53, + "y_pos": -384 + }, + { + "id": 25492, + "x_pos": 7.5, + "y_pos": -423 + }, + { + "id": 25491, + "x_pos": 28.5, + "y_pos": -560 + }, + { + "id": 25490, + "x_pos": -101, + "y_pos": -471 + }, + { + "id": 25489, + "x_pos": -191, + "y_pos": -413 + }, + { + "id": 25488, + "x_pos": -101.39999389648438, + "y_pos": -341.6999969482422 + }, + { + "id": 25487, + "x_pos": -40, + "y_pos": -269 + }, + { + "id": 25486, + "x_pos": -355.25, + "y_pos": -163 + }, + { + "id": 25485, + "x_pos": -391, + "y_pos": -147.5 + }, + { + "id": 25484, + "x_pos": -519.75, + "y_pos": -250.75 + }, + { + "id": 25483, + "x_pos": -479, + "y_pos": -178 + }, + { + "id": 25482, + "x_pos": -310, + "y_pos": -342 + }, + { + "id": 25481, + "x_pos": -381, + "y_pos": -339 + }, + { + "id": 25480, + "x_pos": -357, + "y_pos": -448 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220310/e4fab80370548e0ddce4db0e3e1be4dc_1266036035787531353.png" + }, + "252": { + "name": "Bitter Pufferfish", + "clear_name": "BitterPufferfish", + "points": [ + { + "id": 26444, + "x_pos": -105.5, + "y_pos": -171 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/29dbdc379c07bbb0319b19bcb5146d7d_7008418784153823631.png" + }, + "246": { + "name": "Brown Shirakodai", + "clear_name": "BrownShirakodai", + "points": [ + { + "id": 26443, + "x_pos": -105.5, + "y_pos": -171 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/652e137f1b983b8b2e79b8a99c89d9ee_6350020359542918263.png" + }, + "240": { + "name": "Betta", + "clear_name": "Betta", + "points": [ + { + "id": 26442, + "x_pos": -105.5, + "y_pos": -171 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/ca977ea3a679616cc5199fc28adffedc_3480458975965199093.png" + }, + "233": { + "name": "Medaka", + "clear_name": "Medaka", + "points": [ + { + "id": 26441, + "x_pos": -105.5, + "y_pos": -171 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/c73727c8c2154882fec62e362a5cefc2_5995468836888288778.png" + }, + "242": { + "name": "Akai Maou", + "clear_name": "AkaiMaou", + "points": [ + { + "id": 26440, + "x_pos": -105.5, + "y_pos": -171 + }, + { + "id": 26438, + "x_pos": -176.25, + "y_pos": 92.25 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/d79d8099ab913f885308563ed6cc69a6_5248974579798155262.png" + }, + "251": { + "name": "Pufferfish", + "clear_name": "Pufferfish", + "points": [ + { + "id": 26439, + "x_pos": -176.25, + "y_pos": 92.25 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/4d081837e56ebd43c0879666130dfebe_1996513933409704189.png" + }, + "238": { + "name": "Crystalfish", + "clear_name": "Crystalfish", + "points": [ + { + "id": 26437, + "x_pos": -176.25, + "y_pos": 92.25 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/da1383e42e316097e81720215233b21d_1998660093109411895.png" + }, + "237": { + "name": "Dawncatcher", + "clear_name": "Dawncatcher", + "points": [ + { + "id": 26436, + "x_pos": -176.25, + "y_pos": 92.25 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/707349e7b91298d9cda04d72411ac518_6268973006179235717.png" + }, + "235": { + "name": "Sweet-Flower Medaka", + "clear_name": "SweetFlowerMedaka", + "points": [ + { + "id": 26435, + "x_pos": -176.25, + "y_pos": 92.25 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210729/39e4e58062fc81109a2284a0f7dba7e7_4836412121549584085.png" + }, + "42": { + "name": "Noctilucous Jade", + "clear_name": "NoctilucousJade", + "points": [ + { + "id": 26420, + "x_pos": 235.5287610616042, + "y_pos": -512.1205970118731 + }, + { + "id": 26419, + "x_pos": 229.27878913919903, + "y_pos": -512.8702025231312 + }, + { + "id": 25696, + "x_pos": 107.94557311212066, + "y_pos": 536.9081164631621 + }, + { + "id": 25694, + "x_pos": 216.7231341566844, + "y_pos": -178.9105764410274 + }, + { + "id": 25693, + "x_pos": 109.94556412729025, + "y_pos": 534.1595629218823 + }, + { + "id": 25692, + "x_pos": -88.55536963669533, + "y_pos": -452.88960130825944 + }, + { + "id": 25691, + "x_pos": -94.05534492841184, + "y_pos": -452.88960130825944 + }, + { + "id": 25684, + "x_pos": 146.94570714874953, + "y_pos": -339.3816838789594 + }, + { + "id": 25683, + "x_pos": 214.97314201841118, + "y_pos": -173.9132063659731 + }, + { + "id": 25682, + "x_pos": 220.97311506391998, + "y_pos": -176.91162841100572 + }, + { + "id": 25681, + "x_pos": -56.026319279044856, + "y_pos": -108.97424625860776 + }, + { + "id": 25680, + "x_pos": 6.306744199556306, + "y_pos": 21.595940397426148 + }, + { + "id": 25679, + "x_pos": 112.19555401935622, + "y_pos": 539.9065385081944 + }, + { + "id": 25678, + "x_pos": -115.5552483414856, + "y_pos": -408.9127446477837 + }, + { + "id": 25677, + "x_pos": -330.8598536092295, + "y_pos": -348.00035776082063 + }, + { + "id": 25676, + "x_pos": -388.35959529535694, + "y_pos": -406.2197191352004 + }, + { + "id": 25675, + "x_pos": -400.6095402632709, + "y_pos": -346.2512782345516 + }, + { + "id": 25674, + "x_pos": -405.10952004740284, + "y_pos": -342.75311918201373 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/f7f2ebb4ce20b9729578435ff70bfa50_9037585527228488046.png" + }, + "169": { + "name": "Geovishap", + "clear_name": "Geovishap", + "points": [ + { + "id": 26410, + "x_pos": 245.75, + "y_pos": -516.101036729154 + }, + { + "id": 25667, + "x_pos": -296.9499969482422, + "y_pos": -450.251483219859 + }, + { + "id": 25642, + "x_pos": -276.1999969482422, + "y_pos": 316.67500893944725 + }, + { + "id": 25635, + "x_pos": 231.00003051757812, + "y_pos": -41.548540709223516 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/7395724ddaff18a17da140bbc03243b4_7346214567256973914.png" + }, + "58": { + "name": "Treasure Hoarder", + "clear_name": "TreasureHoarder", + "points": [ + { + "id": 26406, + "x_pos": 26.171218872070312, + "y_pos": -560.7441787719727 + }, + { + "id": 26405, + "x_pos": 5.66473388671875, + "y_pos": -568.0663757324219 + }, + { + "id": 26404, + "x_pos": -9.389297485351562, + "y_pos": -549.0661087036133 + }, + { + "id": 26403, + "x_pos": -16.05303955078125, + "y_pos": -531.2702178955078 + }, + { + "id": 25603, + "x_pos": 329.6101531982422, + "y_pos": -159.9613494873047 + }, + { + "id": 25600, + "x_pos": 267, + "y_pos": -349.5 + }, + { + "id": 25598, + "x_pos": 280.44947814941406, + "y_pos": -396.96142959594727 + }, + { + "id": 25597, + "x_pos": 140.8541259765625, + "y_pos": -545.5931167602539 + }, + { + "id": 25596, + "x_pos": 114.11796569824219, + "y_pos": -499.61952209472656 + }, + { + "id": 25594, + "x_pos": 111.1854248046875, + "y_pos": -402.7040252685547 + }, + { + "id": 25593, + "x_pos": 117.6854248046875, + "y_pos": -365.7040252685547 + }, + { + "id": 25592, + "x_pos": -33.25, + "y_pos": -499.25 + }, + { + "id": 25591, + "x_pos": -9.226287841796875, + "y_pos": -546.5994262695312 + }, + { + "id": 25590, + "x_pos": 5.59344482421875, + "y_pos": -566.0253143310547 + }, + { + "id": 25589, + "x_pos": 27.496337890625, + "y_pos": -559.1742706298828 + }, + { + "id": 25587, + "x_pos": -11.752548217773438, + "y_pos": -313.34320068359375 + }, + { + "id": 25586, + "x_pos": -53.03987121582031, + "y_pos": -350.64376068115234 + }, + { + "id": 25585, + "x_pos": 33.406097412109375, + "y_pos": -425.2116165161133 + }, + { + "id": 25584, + "x_pos": -7.0526123046875, + "y_pos": -450.1632080078125 + }, + { + "id": 25583, + "x_pos": -41.53309631347656, + "y_pos": -428.3845672607422 + }, + { + "id": 25582, + "x_pos": -130.86334228515625, + "y_pos": -366.3907470703125 + }, + { + "id": 25581, + "x_pos": -99.54246520996094, + "y_pos": -318.9347229003906 + }, + { + "id": 25580, + "x_pos": 27.401763916015625, + "y_pos": -389.92359924316406 + }, + { + "id": 25579, + "x_pos": -100.77967834472656, + "y_pos": -401.3248748779297 + }, + { + "id": 25575, + "x_pos": -322.8590393066406, + "y_pos": -384.8587951660156 + }, + { + "id": 25574, + "x_pos": -313.8590393066406, + "y_pos": -314.6087951660156 + }, + { + "id": 25572, + "x_pos": -367.60630798339844, + "y_pos": -400.25760650634766 + }, + { + "id": 25571, + "x_pos": -404.07470703125, + "y_pos": -412.5333786010742 + }, + { + "id": 25570, + "x_pos": -386.89561462402344, + "y_pos": -379.74181365966797 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/8d42ff5f7bdfb638bca30feb75856b76_3677046310229927021.png" + }, + "224": { + "name": "Ores", + "clear_name": "Ores", + "points": [ + { + "id": 26119, + "x_pos": 208.4499969482422, + "y_pos": -376.8964473413512 + }, + { + "id": 26116, + "x_pos": -193.1999969482422, + "y_pos": -204.997338620052 + }, + { + "id": 26115, + "x_pos": 183.3000030517578, + "y_pos": -85.75264611605371 + }, + { + "id": 26114, + "x_pos": 383.3999938964844, + "y_pos": -267.74933083903943 + }, + { + "id": 26113, + "x_pos": 191.8000030517578, + "y_pos": -334.0013459538684 + }, + { + "id": 26112, + "x_pos": 132.0500030517578, + "y_pos": -413.4999847361057 + }, + { + "id": 26111, + "x_pos": -61.55000305175781, + "y_pos": -340.3498722733657 + }, + { + "id": 26110, + "x_pos": -105.90000915527344, + "y_pos": -308.99933083903943 + }, + { + "id": 26109, + "x_pos": -117.74998474121094, + "y_pos": -329.25066152901354 + }, + { + "id": 26108, + "x_pos": 49.44999694824219, + "y_pos": -544.4507177603832 + }, + { + "id": 26107, + "x_pos": -148.29998779296875, + "y_pos": -405.5509551420182 + }, + { + "id": 26106, + "x_pos": -138.70001220703125, + "y_pos": -490.14980077810105 + }, + { + "id": 26105, + "x_pos": -142.39999389648438, + "y_pos": -470.254684126724 + }, + { + "id": 26096, + "x_pos": -376.9499969482422, + "y_pos": -355.60019158995146 + }, + { + "id": 26095, + "x_pos": -322.25, + "y_pos": -311.79892476329474 + }, + { + "id": 26094, + "x_pos": -296.65000915527344, + "y_pos": -342.00132305802686 + }, + { + "id": 26093, + "x_pos": -293.84999084472656, + "y_pos": -382.30964660255836 + }, + { + "id": 26092, + "x_pos": -342.1499938964844, + "y_pos": -425.79961682009684 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210727/9cee1c61743200ad2e5cfcb0ab74fe2e_4171622996361539631.png" + }, + "15": { + "name": "White\u00a0Iron\u00a0Chunk", + "clear_name": "WhiteIronChunk", + "points": [ + { + "id": 26083, + "x_pos": -48.75001525878906, + "y_pos": -107.61239636667642 + }, + { + "id": 26082, + "x_pos": 265.45001220703125, + "y_pos": -120.62836486115134 + }, + { + "id": 26081, + "x_pos": 262.95001220703125, + "y_pos": -125.13176977049761 + }, + { + "id": 26078, + "x_pos": -45.00001525878906, + "y_pos": -111.61542295276195 + }, + { + "id": 26077, + "x_pos": -5.0000457763671875, + "y_pos": -242.77307780080855 + }, + { + "id": 26075, + "x_pos": 268.20001220703125, + "y_pos": -124.3812022856066 + }, + { + "id": 26074, + "x_pos": 264.70001220703125, + "y_pos": -128.6344180333224 + }, + { + "id": 26064, + "x_pos": 96.75, + "y_pos": 520.3560289113907 + }, + { + "id": 26063, + "x_pos": -358.25, + "y_pos": -324.4080559949025 + }, + { + "id": 26055, + "x_pos": 137.20001220703125, + "y_pos": 164.00727015947405 + }, + { + "id": 26054, + "x_pos": 139.20001220703125, + "y_pos": 156.75178447219378 + }, + { + "id": 26047, + "x_pos": -46.25001525878906, + "y_pos": -121.37280025634527 + }, + { + "id": 26046, + "x_pos": 2.2499542236328125, + "y_pos": -239.0202403763535 + }, + { + "id": 26045, + "x_pos": -8.500045776367188, + "y_pos": -239.27042953798377 + }, + { + "id": 26040, + "x_pos": 337.90000915527344, + "y_pos": -100.30496290636552 + }, + { + "id": 26039, + "x_pos": 340.34999084472656, + "y_pos": -106.1011488848385 + }, + { + "id": 26037, + "x_pos": 270.1000061035156, + "y_pos": -292.21813008287086 + }, + { + "id": 26035, + "x_pos": 260.70001220703125, + "y_pos": -131.8868771345169 + }, + { + "id": 26031, + "x_pos": 89.75, + "y_pos": 521.6069747195424 + }, + { + "id": 26029, + "x_pos": -361, + "y_pos": -342.92205395554765 + }, + { + "id": 26019, + "x_pos": -185.75, + "y_pos": -88.16042815044898 + }, + { + "id": 26017, + "x_pos": 128.45001220703125, + "y_pos": 160.50462189664904 + }, + { + "id": 26008, + "x_pos": -375.6000061035156, + "y_pos": -197.05812457781258 + }, + { + "id": 26001, + "x_pos": 262.8500061035156, + "y_pos": -283.4615094258088 + }, + { + "id": 25994, + "x_pos": 92.75, + "y_pos": 516.6031914869354 + }, + { + "id": 25992, + "x_pos": -371.5, + "y_pos": -330.41259587403056 + }, + { + "id": 25983, + "x_pos": -187.75, + "y_pos": -82.15588827132069 + }, + { + "id": 25980, + "x_pos": 130.20001220703125, + "y_pos": 165.2582159676258 + }, + { + "id": 25970, + "x_pos": -2.5000457763671875, + "y_pos": -235.767781275159 + }, + { + "id": 25961, + "x_pos": 346.90000915527344, + "y_pos": -106.80988110875455 + }, + { + "id": 25960, + "x_pos": 332.09999084472656, + "y_pos": -104.34982475342599 + }, + { + "id": 25953, + "x_pos": 248.5, + "y_pos": -386.6532400084959 + }, + { + "id": 25952, + "x_pos": 273, + "y_pos": -383.4007809073014 + }, + { + "id": 25951, + "x_pos": 269, + "y_pos": -389.90569910969043 + }, + { + "id": 25950, + "x_pos": 280.5, + "y_pos": -279.89661935143386 + }, + { + "id": 25949, + "x_pos": 264.70001220703125, + "y_pos": -132.63744461940792 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a1e6d42d614a36b3f248d15761867b7a_3583691230971212151.png" + }, + "16": { + "name": "Crystal Chunk", + "clear_name": "CrystalChunk", + "points": [ + { + "id": 26080, + "x_pos": -41.04998779296875, + "y_pos": 253.86283873008324 + }, + { + "id": 26079, + "x_pos": -477.8000183105469, + "y_pos": -202.20481065762556 + }, + { + "id": 26076, + "x_pos": 44.299957275390625, + "y_pos": -172.77014579553838 + }, + { + "id": 26059, + "x_pos": -116.65000915527344, + "y_pos": 164.40152228348825 + }, + { + "id": 26058, + "x_pos": -120.94999694824219, + "y_pos": -1.5449373399574142 + }, + { + "id": 26057, + "x_pos": -116.94999694824219, + "y_pos": -9.050612188867717 + }, + { + "id": 26056, + "x_pos": 20.949981689453125, + "y_pos": 41.71282592205398 + }, + { + "id": 26053, + "x_pos": -244.40003967285156, + "y_pos": 363.97902131085675 + }, + { + "id": 26051, + "x_pos": -474.0500183105469, + "y_pos": -200.2032973645828 + }, + { + "id": 26049, + "x_pos": -56.00001525878906, + "y_pos": -117.11958450862949 + }, + { + "id": 26048, + "x_pos": -39.25001525878906, + "y_pos": -112.36599043765295 + }, + { + "id": 26044, + "x_pos": 42.299957275390625, + "y_pos": -176.27279405836316 + }, + { + "id": 26042, + "x_pos": 184.24998474121094, + "y_pos": -95.75852372611644 + }, + { + "id": 26038, + "x_pos": 359.75, + "y_pos": -197.72042292793685 + }, + { + "id": 26036, + "x_pos": 213.85000610351562, + "y_pos": -321.49026199362106 + }, + { + "id": 26030, + "x_pos": -502.5, + "y_pos": 235.35016490085036 + }, + { + "id": 26025, + "x_pos": -384.9499969482422, + "y_pos": -459.6980757700521 + }, + { + "id": 26021, + "x_pos": -123.40000915527344, + "y_pos": 165.65246809164 + }, + { + "id": 26020, + "x_pos": -190.75, + "y_pos": 94.49866441583663 + }, + { + "id": 26018, + "x_pos": 29.699981689453125, + "y_pos": 55.47322981172283 + }, + { + "id": 26016, + "x_pos": -241.90003967285156, + "y_pos": 369.733372028355 + }, + { + "id": 26015, + "x_pos": -252.40003967285156, + "y_pos": 364.4793996341177 + }, + { + "id": 26014, + "x_pos": -272.59999084472656, + "y_pos": 207.38849303649658 + }, + { + "id": 26013, + "x_pos": -266.59999084472656, + "y_pos": 201.1337639957378 + }, + { + "id": 26011, + "x_pos": -34.54998779296875, + "y_pos": 253.36246040682272 + }, + { + "id": 26010, + "x_pos": -481.8000183105469, + "y_pos": -198.70216239480078 + }, + { + "id": 26009, + "x_pos": -472.0500183105469, + "y_pos": -196.70064910175802 + }, + { + "id": 26007, + "x_pos": -51.50001525878906, + "y_pos": -107.1120180434159 + }, + { + "id": 26006, + "x_pos": 51.549957275390625, + "y_pos": -173.27052411879913 + }, + { + "id": 26004, + "x_pos": 162.8000030517578, + "y_pos": -430.1855775407262 + }, + { + "id": 26003, + "x_pos": 365, + "y_pos": -189.7143697557658 + }, + { + "id": 26002, + "x_pos": 383.8999938964844, + "y_pos": -303.4503641599531 + }, + { + "id": 26000, + "x_pos": 265.1000061035156, + "y_pos": -285.9634010421123 + }, + { + "id": 25999, + "x_pos": 212.85000610351562, + "y_pos": -315.4857221144928 + }, + { + "id": 25998, + "x_pos": 208.90000915527344, + "y_pos": 340.4295383711342 + }, + { + "id": 25997, + "x_pos": 202.15000915527344, + "y_pos": 335.1755659768969 + }, + { + "id": 25996, + "x_pos": 123.5, + "y_pos": 476.3654869929078 + }, + { + "id": 25995, + "x_pos": 118.5, + "y_pos": 471.3617037603012 + }, + { + "id": 25993, + "x_pos": -495.75, + "y_pos": 239.10300232530517 + }, + { + "id": 25990, + "x_pos": -379.9499969482422, + "y_pos": -463.4509131945074 + }, + { + "id": 25986, + "x_pos": -126.40000915527344, + "y_pos": 159.64792821251194 + }, + { + "id": 25985, + "x_pos": -193.25, + "y_pos": 88.49412453670857 + }, + { + "id": 25984, + "x_pos": -114.44999694824219, + "y_pos": -2.0453156632179343 + }, + { + "id": 25982, + "x_pos": 31.949981689453125, + "y_pos": 43.213960891835995 + }, + { + "id": 25981, + "x_pos": 27.449981689453125, + "y_pos": 39.71131262901122 + }, + { + "id": 25979, + "x_pos": -253.15003967285156, + "y_pos": 370.73412867487605 + }, + { + "id": 25978, + "x_pos": -273.84999084472656, + "y_pos": 211.89189794584263 + }, + { + "id": 25976, + "x_pos": -39.04998779296875, + "y_pos": 249.35943382073674 + }, + { + "id": 25975, + "x_pos": -474.8000183105469, + "y_pos": -195.199514131976 + }, + { + "id": 25973, + "x_pos": -45.75001525878906, + "y_pos": -106.1112613968944 + }, + { + "id": 25972, + "x_pos": -42.50001525878906, + "y_pos": -110.61466630624068 + }, + { + "id": 25971, + "x_pos": -56.50001525878906, + "y_pos": -113.61693624580471 + }, + { + "id": 25969, + "x_pos": 48.299957275390625, + "y_pos": -171.26901082575637 + }, + { + "id": 25968, + "x_pos": 42.049957275390625, + "y_pos": -182.77771226075197 + }, + { + "id": 25966, + "x_pos": 188.24998474121094, + "y_pos": -89.75398384698815 + }, + { + "id": 25964, + "x_pos": 171.5500030517578, + "y_pos": -421.92933520692486 + }, + { + "id": 25963, + "x_pos": 170.0500030517578, + "y_pos": -428.1840642476834 + }, + { + "id": 25959, + "x_pos": 364.5, + "y_pos": -194.96834215000308 + }, + { + "id": 25958, + "x_pos": 377.3999938964844, + "y_pos": -301.1986617052801 + }, + { + "id": 25957, + "x_pos": 376.1499938964844, + "y_pos": -309.4549040390814 + }, + { + "id": 25956, + "x_pos": 257.3500061035156, + "y_pos": -277.45696954668074 + }, + { + "id": 25955, + "x_pos": 270.3500061035156, + "y_pos": -296.2211566689564 + }, + { + "id": 25954, + "x_pos": 204.10000610351562, + "y_pos": -323.4917752866638 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/5d28b68268829ef9673d3f41d769bc5a_5453055352953307529.png" + }, + "172": { + "name": "Iron Chunk", + "clear_name": "IronChunk", + "points": [ + { + "id": 26062, + "x_pos": -351.25, + "y_pos": -320.9054077320775 + }, + { + "id": 26061, + "x_pos": -336.9499969482422, + "y_pos": -467.4539397805929 + }, + { + "id": 26060, + "x_pos": -383.79998779296875, + "y_pos": -440.3681824523251 + }, + { + "id": 26052, + "x_pos": 33.45001220703125, + "y_pos": 226.6640652772012 + }, + { + "id": 26050, + "x_pos": -371.6000061035156, + "y_pos": -193.05509799172705 + }, + { + "id": 26043, + "x_pos": 170.49998474121094, + "y_pos": -105.51590102969976 + }, + { + "id": 26041, + "x_pos": 155.4499969482422, + "y_pos": -393.3309108302858 + }, + { + "id": 26034, + "x_pos": 184, + "y_pos": -115.39680851306434 + }, + { + "id": 26033, + "x_pos": 188, + "y_pos": -121.40134839219263 + }, + { + "id": 26032, + "x_pos": 197, + "y_pos": -126.40513162479942 + }, + { + "id": 26028, + "x_pos": -347.25, + "y_pos": -313.14954372153693 + }, + { + "id": 26027, + "x_pos": -330.9499969482422, + "y_pos": -459.1976974467916 + }, + { + "id": 26026, + "x_pos": -342.6999969482422, + "y_pos": -462.19996738635564 + }, + { + "id": 26024, + "x_pos": -398.04998779296875, + "y_pos": -428.10891353243824 + }, + { + "id": 26023, + "x_pos": -383.54998779296875, + "y_pos": -431.36137263363275 + }, + { + "id": 26022, + "x_pos": -102.9000244140625, + "y_pos": 195.95307723862334 + }, + { + "id": 26012, + "x_pos": 28.95001220703125, + "y_pos": 228.1652002469832 + }, + { + "id": 26005, + "x_pos": 159.4499969482422, + "y_pos": -390.57883005235203 + }, + { + "id": 25991, + "x_pos": -355.25, + "y_pos": -313.3997328831674 + }, + { + "id": 25989, + "x_pos": -408.04998779296875, + "y_pos": -425.35683275450447 + }, + { + "id": 25988, + "x_pos": -389.79998779296875, + "y_pos": -427.10815688591697 + }, + { + "id": 25987, + "x_pos": -99.6500244140625, + "y_pos": 202.45799544101237 + }, + { + "id": 25977, + "x_pos": 33.20001220703125, + "y_pos": 233.16898347958977 + }, + { + "id": 25974, + "x_pos": -378.3500061035156, + "y_pos": -195.05661128476982 + }, + { + "id": 25967, + "x_pos": 165.99998474121094, + "y_pos": -109.2687384541548 + }, + { + "id": 25965, + "x_pos": 157.4499969482422, + "y_pos": -386.82599262789677 + }, + { + "id": 25962, + "x_pos": 156.75, + "y_pos": -347.40845313445243 + }, + { + "id": 25948, + "x_pos": 192.5, + "y_pos": -138.1640222214255 + }, + { + "id": 25947, + "x_pos": 191.75, + "y_pos": -112.14434941186983 + }, + { + "id": 25946, + "x_pos": 193.5, + "y_pos": -120.15040258404088 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/9cee1c61743200ad2e5cfcb0ab74fe2e_3187639542103597221.png" + }, + "261": { + "name": "Fishing Point", + "clear_name": "FishingPoint", + "points": [ + { + "id": 25944, + "x_pos": -176.25, + "y_pos": 92.25 + }, + { + "id": 25943, + "x_pos": -105.5, + "y_pos": -171 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/052bbb288d4f3245166908367aa8ccd8_465260317346550977.png" + }, + "350": { + "name": "Lucklight Fly", + "clear_name": "LucklightFly", + "points": [ + { + "id": 25942, + "x_pos": -60.44999694824219, + "y_pos": -112.84985700947118 + }, + { + "id": 25941, + "x_pos": -71.4000244140625, + "y_pos": -126.04929750351084 + }, + { + "id": 25938, + "x_pos": -69.44999694824219, + "y_pos": -124.59918784851061 + }, + { + "id": 25937, + "x_pos": 147.75, + "y_pos": 379.30160140713724 + }, + { + "id": 25936, + "x_pos": -481.90000915527344, + "y_pos": -71.04893239524199 + }, + { + "id": 25928, + "x_pos": -338.04998779296875, + "y_pos": -333.14779329521957 + }, + { + "id": 25927, + "x_pos": -333.3000030517578, + "y_pos": -330.3052894243674 + }, + { + "id": 25926, + "x_pos": -317.3999938964844, + "y_pos": -403.9997112112028 + }, + { + "id": 25918, + "x_pos": -46.05000305175781, + "y_pos": -106.69805638043545 + }, + { + "id": 25917, + "x_pos": -603, + "y_pos": 126.94873317334304 + }, + { + "id": 25916, + "x_pos": -558.25, + "y_pos": 219.09788768632552 + }, + { + "id": 25915, + "x_pos": -128.79998779296875, + "y_pos": 178.29690964846577 + }, + { + "id": 25914, + "x_pos": -61.60002136230469, + "y_pos": 479.10886778659733 + }, + { + "id": 25913, + "x_pos": 177.5500030517578, + "y_pos": 482.49898099466463 + }, + { + "id": 25912, + "x_pos": 145.9499969482422, + "y_pos": 379.2020789781459 + }, + { + "id": 25911, + "x_pos": 199.70001220703125, + "y_pos": 379.5026766438423 + }, + { + "id": 25910, + "x_pos": 199.50001525878906, + "y_pos": 319.79789812601257 + }, + { + "id": 25909, + "x_pos": 235.30001831054688, + "y_pos": 29.395435967963294 + }, + { + "id": 25908, + "x_pos": 247.49998474121094, + "y_pos": -92.90215047341053 + }, + { + "id": 25907, + "x_pos": 299.0999755859375, + "y_pos": -249.84785715853673 + }, + { + "id": 25906, + "x_pos": 137.50001525878906, + "y_pos": -462.3002630852159 + }, + { + "id": 25905, + "x_pos": 95.29998779296875, + "y_pos": -505.5 + }, + { + "id": 25904, + "x_pos": 55.19999694824219, + "y_pos": -497.34851868755004 + }, + { + "id": 25903, + "x_pos": 51.80000305175781, + "y_pos": -375.8991316171407 + }, + { + "id": 25902, + "x_pos": -60.29998779296875, + "y_pos": -322.65149657634424 + }, + { + "id": 25901, + "x_pos": 66.79998779296875, + "y_pos": -225.95508257052143 + }, + { + "id": 25900, + "x_pos": 180.25, + "y_pos": 427.39276695606804 + }, + { + "id": 25899, + "x_pos": -126.14999389648438, + "y_pos": 170.11863167610318 + }, + { + "id": 25890, + "x_pos": -344, + "y_pos": -328.0968534170959 + }, + { + "id": 25889, + "x_pos": -392.3000030517578, + "y_pos": -361.6481126118056 + }, + { + "id": 25888, + "x_pos": -315.3000030517578, + "y_pos": -369.29925171182776 + }, + { + "id": 25887, + "x_pos": -315.54998779296875, + "y_pos": -402.85087601480654 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220315/77d071e79329926921ae75865d0539d7_1098378642481747916.png" + }, + "315": { + "name": "Geo Crystalfly", + "clear_name": "GeoCrystalfly", + "points": [ + { + "id": 25940, + "x_pos": 184.6999969482422, + "y_pos": -117.15590402755038 + }, + { + "id": 25935, + "x_pos": -412.5500030517578, + "y_pos": -98.95130279723412 + }, + { + "id": 25934, + "x_pos": -475.4499969482422, + "y_pos": -49.7536273521614 + }, + { + "id": 25933, + "x_pos": -471.40000915527344, + "y_pos": -71.04941504933845 + }, + { + "id": 25932, + "x_pos": -382.5, + "y_pos": -145.87577462426407 + }, + { + "id": 25931, + "x_pos": -373.25, + "y_pos": -149.62305411014313 + }, + { + "id": 25930, + "x_pos": -364, + "y_pos": -152.30096048593668 + }, + { + "id": 25929, + "x_pos": 177.6999969482422, + "y_pos": -65.2463726478386 + }, + { + "id": 25925, + "x_pos": -187.5, + "y_pos": -23.371365638759926 + }, + { + "id": 25924, + "x_pos": -17.099990844726562, + "y_pos": 44.697509479455675 + }, + { + "id": 25923, + "x_pos": 188.4499969482422, + "y_pos": -115.15745631468712 + }, + { + "id": 25922, + "x_pos": -156.39999389648438, + "y_pos": -440.48839608687945 + }, + { + "id": 25898, + "x_pos": -414.8500061035156, + "y_pos": -94.84957081682842 + }, + { + "id": 25897, + "x_pos": -487.1499938964844, + "y_pos": -58.0036273521614 + }, + { + "id": 25896, + "x_pos": 196.4499969482422, + "y_pos": -343.299422673198 + }, + { + "id": 25895, + "x_pos": 176.10000610351562, + "y_pos": -60.137548271069136 + }, + { + "id": 25893, + "x_pos": 211.3000030517578, + "y_pos": -369.1984009155051 + }, + { + "id": 25892, + "x_pos": -399.5500030517578, + "y_pos": -421.9483501611876 + }, + { + "id": 25891, + "x_pos": -420.3999938964844, + "y_pos": -404.04866815162154 + }, + { + "id": 25886, + "x_pos": 200.6999969482422, + "y_pos": 294.41695644992615 + }, + { + "id": 25885, + "x_pos": 198.4499969482422, + "y_pos": 292.1687027729545 + }, + { + "id": 25884, + "x_pos": -14.349990844726562, + "y_pos": 46.94576315642689 + }, + { + "id": 25883, + "x_pos": 184.1999969482422, + "y_pos": -113.15900860182364 + }, + { + "id": 25882, + "x_pos": -152.64999389648438, + "y_pos": -437.99033644580027 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/efa663db3c3c109348d07b274f6c2f27_7541678193235906297.png" + }, + "296": { + "name": "Blue Horned Lizard", + "clear_name": "BlueHornedLizard", + "points": [ + { + "id": 25939, + "x_pos": -65.57149151093563, + "y_pos": -108.5 + }, + { + "id": 25921, + "x_pos": -341.05836634379216, + "y_pos": -321.2857034814115 + }, + { + "id": 25878, + "x_pos": -627.0371418187781, + "y_pos": 79.53569028683387 + }, + { + "id": 25877, + "x_pos": -598, + "y_pos": 205.3571472999365 + }, + { + "id": 25876, + "x_pos": -390.71447453280734, + "y_pos": 240.85717781751237 + }, + { + "id": 25874, + "x_pos": 136.37350797598128, + "y_pos": 428.0714106729456 + }, + { + "id": 25870, + "x_pos": 30.39207996206187, + "y_pos": -20.714294454378205 + }, + { + "id": 25865, + "x_pos": 127.49947647625868, + "y_pos": -209.39286781335636 + }, + { + "id": 25863, + "x_pos": -227.85739651419703, + "y_pos": -425.64285255456844 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/4b1a29183d0ac1a267ba4a8a64db5f6b_5091052195206844315.png" + }, + "285": { + "name": "Red Horned Lizard", + "clear_name": "RedHornedLizard", + "points": [ + { + "id": 25920, + "x_pos": -18.572174282470314, + "y_pos": 9.464294454378205 + }, + { + "id": 25881, + "x_pos": -797.75, + "y_pos": 297.2142791955903 + }, + { + "id": 25880, + "x_pos": -777.6795707966673, + "y_pos": 128.8214264955268 + }, + { + "id": 25869, + "x_pos": 155.94707176839302, + "y_pos": 187.17855880038496 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211021/503ba3861998de072e10d086b214d252_2150181738238989287.png" + }, + "351": { + "name": "Bluethunder Weasel", + "clear_name": "BluethunderWeasel", + "points": [ + { + "id": 25919, + "x_pos": -13, + "y_pos": -19.5 + }, + { + "id": 25873, + "x_pos": -95.12387440531211, + "y_pos": 269.5714127098754 + }, + { + "id": 25872, + "x_pos": 288.5357304953477, + "y_pos": -133.6428679588514 + }, + { + "id": 25871, + "x_pos": -139.53417518424385, + "y_pos": -404.14285284555854 + }, + { + "id": 25868, + "x_pos": 85.78576101558838, + "y_pos": 235.42857364996826 + }, + { + "id": 25862, + "x_pos": 40.75, + "y_pos": -182.6071472999365 + }, + { + "id": 25860, + "x_pos": 206.75, + "y_pos": -160.5 + }, + { + "id": 25859, + "x_pos": -34.28576101558838, + "y_pos": -322.96427905009523 + }, + { + "id": 25858, + "x_pos": 317.9863229422572, + "y_pos": -294.2857334170076 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220315/3b41336af364a2a5f7ff746b437fc2a4_1910532599236360200.png" + }, + "302": { + "name": "Mud Frog", + "clear_name": "MudFrog", + "points": [ + { + "id": 25894, + "x_pos": 124.25, + "y_pos": -125.35714729993651 + }, + { + "id": 25879, + "x_pos": -534.4998254920863, + "y_pos": 222.8928527000635 + }, + { + "id": 25875, + "x_pos": 191.85688825057605, + "y_pos": 398.57142664102184 + }, + { + "id": 25867, + "x_pos": -78.00052352374132, + "y_pos": -145.4642941633881 + }, + { + "id": 25866, + "x_pos": -68.14277799371666, + "y_pos": -230.96429401789305 + }, + { + "id": 25864, + "x_pos": 209.82111197486756, + "y_pos": -506.03572051341985 + }, + { + "id": 25861, + "x_pos": 146.28576101558838, + "y_pos": -117.28572080440972 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211022/7db95558e022ddfc3325d04e2b719090_2507081675898911381.png" + }, + "122": { + "name": "Fish", + "clear_name": "Fish", + "points": [ + { + "id": 25828, + "x_pos": 134.18910984482682, + "y_pos": -501.96429313582985 + }, + { + "id": 25807, + "x_pos": -65.60722200628311, + "y_pos": -184.96430971316613 + }, + { + "id": 25741, + "x_pos": -117.25, + "y_pos": -199.49999985450495 + }, + { + "id": 25740, + "x_pos": -117.78571523522692, + "y_pos": -204.1785735044732 + }, + { + "id": 25736, + "x_pos": -72.25, + "y_pos": -228.07142635003174 + }, + { + "id": 25735, + "x_pos": 460.8713702540372, + "y_pos": -110.78572817009422 + }, + { + "id": 25734, + "x_pos": 420.1070474983694, + "y_pos": -92.17858890875618 + }, + { + "id": 25733, + "x_pos": 429.4428617649728, + "y_pos": -86.8214527300936 + }, + { + "id": 25731, + "x_pos": 109.5618914222946, + "y_pos": -509.0714403266452 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/e01bf2dd86cd24121b1f09285f7304d8_2830373650601356948.png" + }, + "90": { + "name": "Crystal Core", + "clear_name": "CrystalCore", + "points": [ + { + "id": 25824, + "x_pos": -475, + "y_pos": -50.13701941596423 + }, + { + "id": 25823, + "x_pos": -17.650009155273438, + "y_pos": 45.61047632445616 + }, + { + "id": 25822, + "x_pos": 185.29998779296875, + "y_pos": -116.4825482049223 + }, + { + "id": 25815, + "x_pos": -471.75, + "y_pos": -71.25 + }, + { + "id": 25814, + "x_pos": 182, + "y_pos": -55.872691374926944 + }, + { + "id": 25813, + "x_pos": -189.60000610351562, + "y_pos": -22.93904696149275 + }, + { + "id": 25810, + "x_pos": 199.5, + "y_pos": 297.37176506337255 + }, + { + "id": 25808, + "x_pos": 188.04998779296875, + "y_pos": -112.73545874330352 + }, + { + "id": 25769, + "x_pos": -411.6999969482422, + "y_pos": -98.80159908449491 + }, + { + "id": 25768, + "x_pos": -414.8999938964844, + "y_pos": -94.54795648461413 + }, + { + "id": 25767, + "x_pos": -487.3000030517578, + "y_pos": -58.34955556910904 + }, + { + "id": 25766, + "x_pos": -382.59999084472656, + "y_pos": -146.09592821694787 + }, + { + "id": 25765, + "x_pos": -372.9499969482422, + "y_pos": -149.39825277187492 + }, + { + "id": 25764, + "x_pos": -363.6999969482422, + "y_pos": -151.99782358870334 + }, + { + "id": 25763, + "x_pos": 196.59999084472656, + "y_pos": -343.80085836634316 + }, + { + "id": 25762, + "x_pos": 182.10000610351562, + "y_pos": -63.654056535332984 + }, + { + "id": 25757, + "x_pos": 210.5, + "y_pos": -369.6548765014991 + }, + { + "id": 25756, + "x_pos": -399.8500061035156, + "y_pos": -421.900446490705 + }, + { + "id": 25755, + "x_pos": -420.8000030517578, + "y_pos": -404.7457724656481 + }, + { + "id": 25754, + "x_pos": -13.900009155273438, + "y_pos": 49.35756578607493 + }, + { + "id": 25748, + "x_pos": 197.5, + "y_pos": 293.62467560175355 + }, + { + "id": 25746, + "x_pos": 184.04998779296875, + "y_pos": -110.48720506633231 + }, + { + "id": 25745, + "x_pos": -153, + "y_pos": -439.9698045281009 + }, + { + "id": 25744, + "x_pos": -157, + "y_pos": -441.46864031274845 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/621ef976ab2ea278ad1a9371ad845eea_2155132189350895110.png" + }, + "115": { + "name": "Lizard Tail", + "clear_name": "LizardTail", + "points": [ + { + "id": 25821, + "x_pos": -64.35809454585205, + "y_pos": -107.85714671795654 + }, + { + "id": 25812, + "x_pos": -627.3148667635808, + "y_pos": 79.32142723209517 + }, + { + "id": 25809, + "x_pos": 137.71339696508358, + "y_pos": 428.35717839949257 + }, + { + "id": 25803, + "x_pos": 127.03573049534725, + "y_pos": -209.25 + }, + { + "id": 25802, + "x_pos": -341.10736599395614, + "y_pos": -320.9999997090099 + }, + { + "id": 25753, + "x_pos": -797.6786982570984, + "y_pos": 297.5714267865169 + }, + { + "id": 25752, + "x_pos": -777.8213017429016, + "y_pos": 128.42857364996826 + }, + { + "id": 25750, + "x_pos": -597.8216660188496, + "y_pos": 205.60714744543156 + }, + { + "id": 25749, + "x_pos": -390.13014789023646, + "y_pos": 240.2857152392262 + }, + { + "id": 25743, + "x_pos": 29.7961878634369, + "y_pos": -21.035728142813696 + }, + { + "id": 25742, + "x_pos": 156.1773021937879, + "y_pos": 187.53572138638992 + }, + { + "id": 25730, + "x_pos": -227.84501515907004, + "y_pos": -426.0714314787306 + }, + { + "id": 25728, + "x_pos": -18.542763145629124, + "y_pos": 11.107168087534319 + }, + { + "id": 25727, + "x_pos": -58.163116872424325, + "y_pos": -107.00000222789231 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/b99807ea1b34d21c3fa4fa74f57a25e3_1998878996251730722.png" + }, + "61": { + "name": "Mist Flower Corolla", + "clear_name": "MistFlowerCorolla", + "points": [ + { + "id": 25811, + "x_pos": -617.2805694051533, + "y_pos": 111.03570176275207 + }, + { + "id": 25806, + "x_pos": -58.59114546472574, + "y_pos": -193.71428564283724 + }, + { + "id": 25805, + "x_pos": -68.03750609472627, + "y_pos": -240.46427846811525 + }, + { + "id": 25739, + "x_pos": -127.23998760844643, + "y_pos": -138.7499952077585 + }, + { + "id": 25737, + "x_pos": -61.96549106004886, + "y_pos": -237.3571314591686 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/379f3acf5091d5c9bab5d238398ed74b_1299253059491585322.png" + }, + "94": { + "name": "Frog", + "clear_name": "Frog", + "points": [ + { + "id": 25804, + "x_pos": -68.27280380298998, + "y_pos": -231.0000094298946 + }, + { + "id": 25801, + "x_pos": 170.8105324325943, + "y_pos": 466.46429836455627 + }, + { + "id": 25758, + "x_pos": 124.6426187459233, + "y_pos": -124.85713160466366 + }, + { + "id": 25751, + "x_pos": -534.6433320376991, + "y_pos": 223.1428833631344 + }, + { + "id": 25747, + "x_pos": 192.10720674616277, + "y_pos": 397.96430971316613 + }, + { + "id": 25738, + "x_pos": -78.03569997510658, + "y_pos": -145.28569014133882 + }, + { + "id": 25732, + "x_pos": 209.7561077769824, + "y_pos": -506.00001397661345 + }, + { + "id": 25729, + "x_pos": 145.96388996858423, + "y_pos": -117.32141080025372 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/2100d4b4cc447908da0119057bc17ba6_9022240694827521309.png" + }, + "355": { + "name": "Starshroom", + "clear_name": "Starshroom", + "points": [ + { + "id": 25800, + "x_pos": 84.14999389648438, + "y_pos": -259.76591233853765 + }, + { + "id": 25799, + "x_pos": 119.29998779296875, + "y_pos": -190.01316949489774 + }, + { + "id": 25798, + "x_pos": 152.59999084472656, + "y_pos": 412.6172916635637 + }, + { + "id": 25797, + "x_pos": -92.95001220703125, + "y_pos": 474.8059239848517 + }, + { + "id": 25796, + "x_pos": -183.5, + "y_pos": 407.30486832555016 + }, + { + "id": 25795, + "x_pos": -188.29998779296875, + "y_pos": 325.7451454173979 + }, + { + "id": 25794, + "x_pos": -165.19998168945312, + "y_pos": 165.68826345434172 + }, + { + "id": 25726, + "x_pos": 116.89999389648438, + "y_pos": -144.67889798858005 + }, + { + "id": 25725, + "x_pos": 100.14999389648438, + "y_pos": -138.67435810945176 + }, + { + "id": 25724, + "x_pos": 26.849990844726562, + "y_pos": -179.2050022935673 + }, + { + "id": 25723, + "x_pos": 113.04998779296875, + "y_pos": -249.5581899629194 + }, + { + "id": 25722, + "x_pos": 122.79998779296875, + "y_pos": -188.26184536348546 + }, + { + "id": 25721, + "x_pos": 110.04998779296875, + "y_pos": -171.74936069588261 + }, + { + "id": 25720, + "x_pos": 54.54998779296875, + "y_pos": -220.03586889053895 + }, + { + "id": 25719, + "x_pos": 58.79998779296875, + "y_pos": -222.53776050684223 + }, + { + "id": 25718, + "x_pos": 174.59999084472656, + "y_pos": 476.1653387176707 + }, + { + "id": 25717, + "x_pos": 134.59999084472656, + "y_pos": 459.90304321169833 + }, + { + "id": 25716, + "x_pos": 158.09999084472656, + "y_pos": 461.6543673431106 + }, + { + "id": 25715, + "x_pos": 155.34999084472656, + "y_pos": 416.37012908801853 + }, + { + "id": 25714, + "x_pos": 133.34999084472656, + "y_pos": 439.1373427963799 + }, + { + "id": 25713, + "x_pos": -16.750030517578125, + "y_pos": -26.27495969937877 + }, + { + "id": 25712, + "x_pos": -278.6999816894531, + "y_pos": 316.3848196388426 + }, + { + "id": 25711, + "x_pos": -341.70001220703125, + "y_pos": 241.0625141012447 + }, + { + "id": 25710, + "x_pos": -98.95001220703125, + "y_pos": 468.55119494409337 + }, + { + "id": 25709, + "x_pos": -109.94999694824219, + "y_pos": 519.6398171679089 + }, + { + "id": 25708, + "x_pos": -169.9499969482422, + "y_pos": 525.3941678854067 + }, + { + "id": 25707, + "x_pos": -151.64999389648438, + "y_pos": 476.5071995947037 + }, + { + "id": 25706, + "x_pos": -180.75, + "y_pos": 411.3078949116357 + }, + { + "id": 25705, + "x_pos": -155.25, + "y_pos": 402.6012998706324 + }, + { + "id": 25704, + "x_pos": -191.79998779296875, + "y_pos": 334.35165868561535 + }, + { + "id": 25703, + "x_pos": -197.79998779296875, + "y_pos": 339.6056310798526 + }, + { + "id": 25702, + "x_pos": -158.29998779296875, + "y_pos": 365.6253038894083 + }, + { + "id": 25701, + "x_pos": -236.50001525878906, + "y_pos": 351.27969455838 + }, + { + "id": 25700, + "x_pos": -304.25, + "y_pos": 251.35413729508764 + }, + { + "id": 25699, + "x_pos": -225.94998168945312, + "y_pos": 204.2173943454145 + }, + { + "id": 25698, + "x_pos": -162.94998168945312, + "y_pos": 169.19091171716673 + }, + { + "id": 25697, + "x_pos": -238.79998779296875, + "y_pos": 217.1771974989665 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220315/9d8bbf1a80d407c82de17042ba2869a7_6794176729743334303.png" + }, + "92": { + "name": "Snapdragon", + "clear_name": "Snapdragon", + "points": [ + { + "id": 25761, + "x_pos": -192.9690285408126, + "y_pos": -409.62286077058843 + }, + { + "id": 25760, + "x_pos": -223.5538325813243, + "y_pos": -409.07497517876413 + }, + { + "id": 25759, + "x_pos": -232.30436836148056, + "y_pos": -392.51410073565376 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/5cb9b715be7356eddae0d8aa197d4673_5925617248491431715.png" + }, + "40": { + "name": "Cor Lapis", + "clear_name": "CorLapis", + "points": [ + { + "id": 25695, + "x_pos": -50.52637187128448, + "y_pos": -120.88698674966076 + }, + { + "id": 25690, + "x_pos": -49.52637636369968, + "y_pos": -124.38514580219862 + }, + { + "id": 25689, + "x_pos": 44.3608606460557, + "y_pos": -371.38203412998246 + }, + { + "id": 25688, + "x_pos": 20.249854461239238, + "y_pos": -446.28705722709697 + }, + { + "id": 25687, + "x_pos": -167.63820222064737, + "y_pos": -405.7528315904624 + }, + { + "id": 25686, + "x_pos": -166.63820671306257, + "y_pos": -409.5008591467529 + }, + { + "id": 25685, + "x_pos": -413.4712174057852, + "y_pos": -146.5092566004114 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/7e4c2ba659e2cbb09d1e466a5802f420_3756978506289510540.png" + }, + "352": { + "name": "Ruin Serpent", + "clear_name": "RuinSerpent", + "points": [ + { + "id": 25673, + "x_pos": -456.7855712475541, + "y_pos": -120.25 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220315/7811156993c81de7018658749e4ad9f1_6324008873758288020.png" + }, + "344": { + "name": "Shadowy Husk", + "clear_name": "ShadowyHusk", + "points": [ + { + "id": 25671, + "x_pos": -106.25, + "y_pos": -110.5 + }, + { + "id": 25658, + "x_pos": -64, + "y_pos": 482.25 + }, + { + "id": 25657, + "x_pos": -51.5, + "y_pos": 199 + }, + { + "id": 25656, + "x_pos": 225.5, + "y_pos": 462.75 + }, + { + "id": 25655, + "x_pos": 237.25, + "y_pos": 467.25 + }, + { + "id": 25654, + "x_pos": 231.5, + "y_pos": 466.5 + }, + { + "id": 25653, + "x_pos": -378.5, + "y_pos": -125.25 + }, + { + "id": 25652, + "x_pos": -416.25, + "y_pos": -446 + }, + { + "id": 25651, + "x_pos": -93.25, + "y_pos": -201.75 + }, + { + "id": 25650, + "x_pos": -86.25, + "y_pos": -200.5 + }, + { + "id": 25649, + "x_pos": -210.5, + "y_pos": 8.5 + }, + { + "id": 25648, + "x_pos": -525.5, + "y_pos": 222.75 + }, + { + "id": 25647, + "x_pos": -189.75, + "y_pos": 253.25 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220130/1d9c7154a354efd5c37d635619820b20_1895337279536858608.png" + }, + "265": { + "name": "Wolves of the Rift", + "clear_name": "WolvesoftheRift", + "points": [ + { + "id": 25670, + "x_pos": -733.3000030517578, + "y_pos": 338.6648830914605 + }, + { + "id": 25669, + "x_pos": 193.19998168945312, + "y_pos": -259.6092020621145 + }, + { + "id": 25668, + "x_pos": 196.0999755859375, + "y_pos": -241.41861593397698 + }, + { + "id": 25645, + "x_pos": -736.8000030517578, + "y_pos": 335.41740555805745 + }, + { + "id": 25644, + "x_pos": -732.3000030517578, + "y_pos": 332.1699280246544 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/77c551e9d59042686c274c95ccbf61fa_6488691826595353793.png" + }, + "27": { + "name": "Ruin Guard", + "clear_name": "RuinGuard", + "points": [ + { + "id": 25646, + "x_pos": -26.54998779296875, + "y_pos": 129.9974693066979 + }, + { + "id": 25638, + "x_pos": 201.3000030517578, + "y_pos": 531.9169770819358 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/a90a60e07a1a942bf89fbb071efacf78_4504588708900504078.png" + }, + "337": { + "name": "Abyss Herald", + "clear_name": "AbyssHerald", + "points": [ + { + "id": 25643, + "x_pos": -814.4499969482422, + "y_pos": 337.9610786367175 + }, + { + "id": 25641, + "x_pos": 22.70001220703125, + "y_pos": 155.73313240991638 + }, + { + "id": 25640, + "x_pos": 21.20001220703125, + "y_pos": 151.73623698418942 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20211220/2f65ec2b056435291f0e36dbd9034eef_859534947571588850.png" + }, + "150": { + "name": "Ruin Grader", + "clear_name": "RuinGrader", + "points": [ + { + "id": 25639, + "x_pos": -34.75, + "y_pos": -56.85099187009155 + }, + { + "id": 25637, + "x_pos": 166.60000610351562, + "y_pos": 549.0536394889509 + }, + { + "id": 25636, + "x_pos": 153.09999084472656, + "y_pos": 503.0190194318034 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/a90a60e07a1a942bf89fbb071efacf78_6801467019841823806.png" + }, + "210": { + "name": "Fatui Mirror Maiden", + "clear_name": "FatuiMirrorMaiden", + "points": [ + { + "id": 25634, + "x_pos": 6, + "y_pos": -340.2496081164793 + }, + { + "id": 25633, + "x_pos": 340, + "y_pos": -278.3272492939577 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/596c028652f0797454c80c8c2e57856f_2639242042836509216.png" + }, + "221": { + "name": "Floating Hydro Fungus", + "clear_name": "FloatingHydroFungus", + "points": [ + { + "id": 25632, + "x_pos": 153.89277799371666, + "y_pos": 419.4285431323924 + }, + { + "id": 25631, + "x_pos": 83.89245949812994, + "y_pos": -145.64286781335636 + }, + { + "id": 25628, + "x_pos": -218.28573049534748, + "y_pos": 420.10713189565377 + }, + { + "id": 25627, + "x_pos": -223.75, + "y_pos": 417.5 + }, + { + "id": 25626, + "x_pos": -216.8927779937169, + "y_pos": 415.3928527000635 + }, + { + "id": 25623, + "x_pos": 150.6065239746281, + "y_pos": 421.17857394095836 + }, + { + "id": 25622, + "x_pos": 97.21426950465275, + "y_pos": -169.07142635003174 + }, + { + "id": 25621, + "x_pos": 94.96423898441162, + "y_pos": -171.71427919559028 + }, + { + "id": 25620, + "x_pos": 81.67798496532305, + "y_pos": -143.4642944543782 + }, + { + "id": 25619, + "x_pos": -122.21407973661826, + "y_pos": 503.0357208044097 + }, + { + "id": 25618, + "x_pos": -118.6785237491847, + "y_pos": 504.64285284555854 + }, + { + "id": 25567, + "x_pos": -222.67043965143466, + "y_pos": 412.2142776406122 + }, + { + "id": 25565, + "x_pos": 154.4276359494952, + "y_pos": 421.8571321866434 + }, + { + "id": 25564, + "x_pos": 92.18886989644534, + "y_pos": -168.46429773710906 + }, + { + "id": 25563, + "x_pos": 105.94168383655506, + "y_pos": -187.96429710056827 + }, + { + "id": 25562, + "x_pos": 87.42850848906437, + "y_pos": -144.1785735044732 + }, + { + "id": 25561, + "x_pos": 101.43828093223601, + "y_pos": -147.46429530006776 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220315/4a8c1a3622c155a3e29c438b4b21e6d9_8497499512663683568.png" + }, + "55": { + "name": "Hilichurl", + "clear_name": "Hilichurl", + "points": [ + { + "id": 25630, + "x_pos": 187.43519592285156, + "y_pos": 270.67710876464844 + }, + { + "id": 25617, + "x_pos": 201.7774658203125, + "y_pos": 513.77294921875 + }, + { + "id": 25611, + "x_pos": 112.24200439453125, + "y_pos": 391.1266632080078 + }, + { + "id": 25610, + "x_pos": 134.590087890625, + "y_pos": 543.2158432006836 + }, + { + "id": 25609, + "x_pos": -190.50698852539062, + "y_pos": -98.36538696289062 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/4cca7114e8db044283d84ed3b0b72b06_5192184377885677903.png" + }, + "54": { + "name": "Fatui Skirmisher", + "clear_name": "FatuiSkirmisher", + "points": [ + { + "id": 25629, + "x_pos": 366.0500030517578, + "y_pos": -126.14968963330261 + }, + { + "id": 25625, + "x_pos": 342.1999969482422, + "y_pos": -273.3872444791132 + }, + { + "id": 25624, + "x_pos": 336.6999969482422, + "y_pos": -273.8868564073291 + }, + { + "id": 25569, + "x_pos": 363.1499938964844, + "y_pos": -122.60103672915398 + }, + { + "id": 25568, + "x_pos": 333.8000030517578, + "y_pos": -139.5508777339369 + }, + { + "id": 25566, + "x_pos": 339.1999969482422, + "y_pos": -279.8821995459191 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20210428/71cffd628025a16813dfbb1337e5cfca_1951629793205322023.png" + }, + "59": { + "name": "Slime", + "clear_name": "Slime", + "points": [ + { + "id": 25616, + "x_pos": 180.102783203125, + "y_pos": -153.37203979492188 + }, + { + "id": 25615, + "x_pos": -448.29345703125, + "y_pos": 224.0380859375 + }, + { + "id": 25614, + "x_pos": -224, + "y_pos": 316.5 + }, + { + "id": 25613, + "x_pos": -175.93084716796875, + "y_pos": 497.35572814941406 + }, + { + "id": 25612, + "x_pos": -127.93084716796875, + "y_pos": 501.35572814941406 + }, + { + "id": 25608, + "x_pos": -14.086273193359375, + "y_pos": 39.91075134277344 + }, + { + "id": 25607, + "x_pos": -412.2705078125, + "y_pos": -417.5622253417969 + }, + { + "id": 25606, + "x_pos": 172.11175537109375, + "y_pos": -51.712249755859375 + }, + { + "id": 25605, + "x_pos": 433.75, + "y_pos": -104.75 + }, + { + "id": 25604, + "x_pos": 407.174560546875, + "y_pos": -67.36019134521484 + }, + { + "id": 25602, + "x_pos": 375.79869079589844, + "y_pos": -222.63851165771484 + }, + { + "id": 25601, + "x_pos": 325.0480499267578, + "y_pos": -362.1656265258789 + }, + { + "id": 25599, + "x_pos": 175.5193328857422, + "y_pos": -339.1582946777344 + }, + { + "id": 25595, + "x_pos": 145.1428985595703, + "y_pos": -499.30655670166016 + }, + { + "id": 25588, + "x_pos": 66.82829284667969, + "y_pos": -528.3835296630859 + }, + { + "id": 25578, + "x_pos": -138.50547790527344, + "y_pos": -438.74891662597656 + }, + { + "id": 25577, + "x_pos": -227.45582580566406, + "y_pos": -409.86158752441406 + }, + { + "id": 25576, + "x_pos": -197.6103515625, + "y_pos": -420.2881622314453 + }, + { + "id": 25573, + "x_pos": -421.5597839355469, + "y_pos": -330.3868103027344 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/380ece40b8222cd7cd17cf44ba325739_5103907981293273194.png" + }, + "72": { + "name": "Large Rock Pile", + "clear_name": "LargeRockPile", + "points": [ + { + "id": 25445, + "x_pos": -144.89999389648438, + "y_pos": -152.24965778757246 + }, + { + "id": 25441, + "x_pos": 40.30000305175781, + "y_pos": -220.35019158995146 + }, + { + "id": 25435, + "x_pos": 80.75, + "y_pos": 74.30027071716313 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220330/836ae8b9a526ceeb1ebdf0fedb693356_4054736939908165382.png" + }, + "45": { + "name": "Precious\u00a0Chest", + "clear_name": "PreciousChest", + "points": [ + { + "id": 25380, + "x_pos": 154, + "y_pos": 524 + }, + { + "id": 25363, + "x_pos": -159.5, + "y_pos": 171.5 + }, + { + "id": 25362, + "x_pos": -192.5, + "y_pos": 285 + }, + { + "id": 25361, + "x_pos": 18.5, + "y_pos": 264 + }, + { + "id": 25346, + "x_pos": -120, + "y_pos": -3.5 + }, + { + "id": 25341, + "x_pos": -68, + "y_pos": -200.5 + }, + { + "id": 25332, + "x_pos": 59.25, + "y_pos": -217.75 + }, + { + "id": 25331, + "x_pos": 340.83331298828125, + "y_pos": -277 + }, + { + "id": 25320, + "x_pos": -414.75, + "y_pos": -464.25 + }, + { + "id": 25319, + "x_pos": -49, + "y_pos": -387.5 + }, + { + "id": 25318, + "x_pos": 308.25, + "y_pos": -449.5 + } + ], + "icon": "https://uploadstatic-sea.hoyoverse.com/map_manage/20220323/1556afa613e0cb0e8c8f93222ad504da_4646723101390558864.png" + } + }, + "categories": [ + { + "id": 1, + "name": "Waypoints", + "children": [ + 2, + 3, + 154, + 158, + 190, + 192, + 316, + 319, + 338, + 340 + ] + }, + { + "id": 13, + "name": "Open-World Chests", + "children": [ + 17, + 44, + 45, + 46, + 269 + ] + }, + { + "id": 4, + "name": "Oculi", + "children": [ + 5, + 6, + 141, + 182, + 194, + 320, + 325, + 326, + 327, + 328, + 357 + ] + }, + { + "id": 14, + "name": "Puzzles", + "children": [ + 18, + 148, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 79, + 83, + 155, + 156, + 159, + 258, + 259, + 191, + 193, + 205, + 216, + 230, + 231, + 264, + 260, + 321, + 332, + 330, + 331, + 341, + 346, + 349, + 353, + 354 + ] + }, + { + "id": 50, + "name": "Enemies (Common)", + "children": [ + 55, + 57, + 58, + 56, + 59, + 209, + 229, + 54, + 47, + 48, + 213, + 345, + 221, + 222 + ] + }, + { + "id": 12, + "name": "Enemies (Elite)", + "children": [ + 149, + 19, + 20, + 21, + 255, + 24, + 22, + 23, + 25, + 26, + 215, + 150, + 27, + 28, + 49, + 169, + 152, + 53, + 151, + 257, + 206, + 207, + 210, + 265, + 337, + 214, + 344 + ] + }, + { + "id": 131, + "name": "Enemies (Boss)", + "children": [ + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 157, + 181, + 183, + 203, + 204, + 262, + 263, + 318, + 333, + 352 + ] + }, + { + "id": 10, + "name": "Local Specialties", + "children": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 78, + 185, + 196, + 197, + 198, + 199, + 211, + 227, + 228, + 266 + ] + }, + { + "id": 60, + "name": "Materials", + "children": [ + 61, + 62, + 63, + 81, + 82, + 90, + 91, + 92, + 93, + 94, + 115, + 116, + 121, + 122, + 123, + 124, + 125, + 126, + 140, + 153, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 195, + 200, + 201, + 254, + 342, + 343, + 355, + 356, + 184 + ] + }, + { + "id": 273, + "name": "Animals", + "children": [ + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 339, + 348, + 350, + 351 + ] + }, + { + "id": 143, + "name": "Guide", + "children": [ + 208, + 253, + 267, + 268, + 144, + 145, + 146, + 147, + 322, + 323, + 324, + 334, + 347, + 358 + ] + }, + { + "id": 7, + "name": "Shrines of Depths", + "children": [ + 8, + 9, + 212 + ] + }, + { + "id": 232, + "name": "Fishing", + "children": [ + 261, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 335, + 336 + ] + }, + { + "id": 11, + "name": "Ores", + "children": [ + 15, + 16, + 80, + 139, + 142, + 172, + 202 + ] + }, + { + "id": 86, + "name": "Enemies (Easter Egg)", + "children": [ + 87 + ] + }, + { + "id": 84, + "name": "Geography", + "children": [ + 85 + ] + }, + { + "id": 88, + "name": "Events", + "children": [] + }, + { + "id": 51, + "name": "World Quests", + "children": [ + 52 + ] + }, + { + "id": 110, + "name": "Books/Recipes", + "children": [ + 111, + 112 + ] + }, + { + "id": 113, + "name": "Investigation", + "children": [ + 114, + 127, + 128, + 129, + 130, + 256, + 223, + 224, + 329, + 359 + ] + }, + { + "id": 170, + "name": "NPC", + "children": [ + 171, + 225, + 226, + 270 + ] + }, + { + "id": 173, + "name": "Wood", + "children": [ + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 217, + 218, + 219, + 220 + ] + }, + { + "id": 186, + "name": "Puzzle Chest", + "children": [ + 187, + 188, + 189 + ] + } + ] +} \ No newline at end of file diff --git a/cheat-library/res/res.rc b/cheat-library/res/res.rc new file mode 100644 index 0000000..ca167ba --- /dev/null +++ b/cheat-library/res/res.rc @@ -0,0 +1,1219 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// RCDATA +// + +IMGUI_FONT RCDATA "Ruda-Bold.ttf" + +IMGUI_FONT_BOLD RCDATA "Ruda-ExtraBold.ttf" + +SIGNATURES RCDATA "signatures.json" + +MAPENKANOMIYADATA RCDATA "map_enkanomiya.json" + +MAPTEYVATDATA RCDATA "map_teyvat.json" + +MAPUNDEGROUNDMINESDATA RCDATA "map_undeground_mines.json" + +AssemblyChecksums RCDATA "assembly_checksum.json" + + +///////////////////////////////////////////////////////////////////////////// +// +// PNG +// + +HDABIDINGANGELFISH PNG "iconsHD\\AbidingAngelfish.png" + +HDABYSSHERALD PNG "iconsHD\\AbyssHerald.png" + +HDABYSSMAGE PNG "iconsHD\\AbyssMage.png" + +HDADORNEDUNAGI PNG "iconsHD\\AdornedUnagi.png" + +HDAIZENMEDAKA PNG "iconsHD\\AizenMedaka.png" + +HDAKAIMAOU PNG "iconsHD\\AkaiMaou.png" + +HDAMAKUMOFRUIT PNG "iconsHD\\AmakumoFruit.png" + +HDAMETHYSTLUMP PNG "iconsHD\\AmethystLump.png" + +HDANCIENTRIME PNG "iconsHD\\AncientRime.png" + +HDANEMOCRYSTALFLY PNG "iconsHD\\AnemoCrystalfly.png" + +HDANEMOCULUS PNG "iconsHD\\Anemoculus.png" + +HDANEMOHYPOSTASIS PNG "iconsHD\\AnemoHypostasis.png" + +HDAPPLE PNG "iconsHD\\Apple.png" + +HDARALIAWOOD PNG "iconsHD\\AraliaWood.png" + +HDARCHAICSTONE PNG "iconsHD\\ArchaicStone.png" + +HDARTIFACT PNG "iconsHD\\Artifact.png" + +HDBAKEDANUKI PNG "iconsHD\\BakeDanuki.png" + +HDBAMBOOSEGMENT PNG "iconsHD\\BambooSegment.png" + +HDBAMBOOSHOOT PNG "iconsHD\\BambooShoot.png" + +HDBATHYSMALVISHAP PNG "iconsHD\\BathysmalVishap.png" + +HDBATHYSMALVISHAPHERD PNG "iconsHD\\BathysmalVishapHerd.png" + +HDBERRY PNG "iconsHD\\Berry.png" + +HDBETTA PNG "iconsHD\\Betta.png" + +HDBIRCHWOOD PNG "iconsHD\\BirchWood.png" + +HDBIRDEGG PNG "iconsHD\\BirdEgg.png" + +HDBITTERPUFFERFISH PNG "iconsHD\\BitterPufferfish.png" + +HDBLACKKINGPIGEON PNG "iconsHD\\BlackKingPigeon.png" + +HDBLOATTYFLOATTY PNG "iconsHD\\BloattyFloatty.png" + +HDBLUEFROG PNG "iconsHD\\BlueFrog.png" + +HDBLUEHORNEDLIZARD PNG "iconsHD\\BlueHornedLizard.png" + +HDBLUETHUNDERWEASEL PNG "iconsHD\\BluethunderWeasel.png" + +HDBOOK PNG "iconsHD\\Book.png" + +HDBOOTWEASEL PNG "iconsHD\\BootWeasel.png" + +HDBRIGHTCROWNPIGEON PNG "iconsHD\\BrightcrownPigeon.png" + +HDBROWNSHIRAKODAI PNG "iconsHD\\BrownShirakodai.png" + +HDBURIEDCHEST PNG "iconsHD\\BuriedChest.png" + +HDBUTTERFLYWINGS PNG "iconsHD\\ButterflyWings.png" + +HDCALLALILY PNG "iconsHD\\CallaLily.png" + +HDCAMPFIRETORCH PNG "iconsHD\\CampfireTorch.png" + +HDCARROT PNG "iconsHD\\Carrot.png" + +HDCECILIA PNG "iconsHD\\Cecilia.png" + +HDCHILLEDMEAT PNG "iconsHD\\ChilledMeat.png" + +HDCOMMONCHEST PNG "iconsHD\\CommonChest.png" + +HDCOOKINGINGREDIENT PNG "iconsHD\\CookingIngredient.png" + +HDCORLAPIS PNG "iconsHD\\CorLapis.png" + +HDCRAB PNG "iconsHD\\Crab.png" + +HDCRIMSONAGATE PNG "iconsHD\\CrimsonAgate.png" + +HDCRIMSONFINCH PNG "iconsHD\\CrimsonFinch.png" + +HDCRIMSONFLANKPIGEON PNG "iconsHD\\CrimsonflankPigeon.png" + +HDCRIMSONFOX PNG "iconsHD\\CrimsonFox.png" + +HDCROW PNG "iconsHD\\Crow.png" + +HDCRYOCRYSTALFLY PNG "iconsHD\\CryoCrystalfly.png" + +HDCRYOHYPOSTASIS PNG "iconsHD\\CryoHypostasis.png" + +HDCRYOREGISVINE PNG "iconsHD\\CryoRegisvine.png" + +HDCRYSTALCHUNK PNG "iconsHD\\CrystalChunk.png" + +HDCRYSTALCORE PNG "iconsHD\\CrystalCore.png" + +HDCRYSTALFISH PNG "iconsHD\\Crystalfish.png" + +HDCRYSTALMARROW PNG "iconsHD\\CrystalMarrow.png" + +HDCUBEDEVICES PNG "iconsHD\\CubeDevices.png" + +HDCUIHUAWOOD PNG "iconsHD\\CuihuaWood.png" + +HDDANDELIONSEED PNG "iconsHD\\DandelionSeed.png" + +HDDANDY PNG "iconsHD\\Dandy.png" + +HDDAWNCATCHER PNG "iconsHD\\Dawncatcher.png" + +HDDAYNIGHTSWITCHINGMECHANISM PNG "iconsHD\\DayNightSwitchingMechanism.png" + +HDDEEPSEAUNAGI PNG "iconsHD\\DeepSeaUnagi.png" + +HDDENDROBIUM PNG "iconsHD\\Dendrobium.png" + +HDDIVDARAY PNG "iconsHD\\DivdaRay.png" + +HDDOMAIN PNG "iconsHD\\Domain.png" + +HDEIGHTSTONETABLETS PNG "iconsHD\\EightStoneTablets.png" + +HDELECTRICCONDUCTION PNG "iconsHD\\ElectricConduction.png" + +HDELECTROCRYSTAL PNG "iconsHD\\ElectroCrystal.png" + +HDELECTROCRYSTALFLY PNG "iconsHD\\ElectroCrystalfly.png" + +HDELECTROCULUS PNG "iconsHD\\Electroculus.png" + +HDELECTROGRANUM PNG "iconsHD\\Electrogranum.png" + +HDELECTROHYPOSTASIS PNG "iconsHD\\ElectroHypostasis.png" + +HDELECTROSEELIE PNG "iconsHD\\ElectroSeelie.png" + +HDELEMENTALMONUMENT PNG "iconsHD\\ElementalMonument.png" + +HDEMERALDFINCH PNG "iconsHD\\EmeraldFinch.png" + +HDENEMIESFIRSTTIMEVICTORY PNG "iconsHD\\EnemiesFirstTimeVictory.png" + +HDENKANOMIYAPHASEGATE PNG "iconsHD\\EnkanomiyaPhaseGate.png" + +HDEXQUISITECHEST PNG "iconsHD\\ExquisiteChest.png" + +HDEYEOFTHESTORM PNG "iconsHD\\EyeoftheStorm.png" + +HDFATUIAGENT PNG "iconsHD\\FatuiAgent.png" + +HDFATUICICINMAGE PNG "iconsHD\\FatuiCicinMage.png" + +HDFATUIMIRRORMAIDEN PNG "iconsHD\\FatuiMirrorMaiden.png" + +HDFATUISKIRMISHER PNG "iconsHD\\FatuiSkirmisher.png" + +HDFIRWOOD PNG "iconsHD\\FirWood.png" + +HDFISH PNG "iconsHD\\Fish.png" + +HDFISHINGPOINT PNG "iconsHD\\FishingPoint.png" + +HDFLAMINGFLOWERSTAMEN PNG "iconsHD\\FlamingFlowerStamen.png" + +HDFLOATINGANEMOSLIME PNG "iconsHD\\FloatingAnemoSlime.png" + +HDFLOATINGHYDROFUNGUS PNG "iconsHD\\FloatingHydroFungus.png" + +HDFLUORESCENTFUNGUS PNG "iconsHD\\FluorescentFungus.png" + +HDFORMALORAY PNG "iconsHD\\FormaloRay.png" + +HDFOWL PNG "iconsHD\\Fowl.png" + +HDFRAGRANTCEDARWOOD PNG "iconsHD\\FragrantCedarWood.png" + +HDFROG PNG "iconsHD\\Frog.png" + +HDFROSTBEARINGTREE PNG "iconsHD\\FrostbearingTree.png" + +HDGENERALCRAB PNG "iconsHD\\GeneralCrab.png" + +HDGEOCRYSTALFLY PNG "iconsHD\\GeoCrystalfly.png" + +HDGEOCULUS PNG "iconsHD\\Geoculus.png" + +HDGEOGRANUM PNG "iconsHD\\Geogranum.png" + +HDGEOHYPOSTASIS PNG "iconsHD\\GeoHypostasis.png" + +HDGEOSIGIL PNG "iconsHD\\GeoSigil.png" + +HDGEOVISHAP PNG "iconsHD\\Geovishap.png" + +HDGEOVISHAPHATCHLING PNG "iconsHD\\GeovishapHatchling.png" + +HDGLAZELILY PNG "iconsHD\\GlazeLily.png" + +HDGLAZEMEDAKA PNG "iconsHD\\GlazeMedaka.png" + +HDGOLDENCRAB PNG "iconsHD\\GoldenCrab.png" + +HDGOLDENFINCH PNG "iconsHD\\GoldenFinch.png" + +HDGOLDENKOI PNG "iconsHD\\GoldenKoi.png" + +HDGOLDENLOACH PNG "iconsHD\\GoldenLoach.png" + +HDGOLDENWOLFLORD PNG "iconsHD\\GoldenWolflord.png" + +HDGRAYSNOWCAT PNG "iconsHD\\GraySnowCat.png" + +HDGRAYWINGPIGEON PNG "iconsHD\\GraywingPigeon.png" + +HDGREENHORNEDLIZARD PNG "iconsHD\\GreenHornedLizard.png" + +HDHARVESTABLEPLANT PNG "iconsHD\\HarvestablePlant.png" + +HDHILICHURL PNG "iconsHD\\Hilichurl.png" + +HDHILICHURLCHIEFTAIN PNG "iconsHD\\HilichurlChieftain.png" + +HDHILICHURLSHOOTER PNG "iconsHD\\HilichurlShooter.png" + +HDHORSETAIL PNG "iconsHD\\Horsetail.png" + +HDHYDROHYPOSTASIS PNG "iconsHD\\HydroHypostasis.png" + +HDILLUSION PNG "iconsHD\\Illusion.png" + +HDINAZUMASHRINEOFDEPTHS PNG "iconsHD\\InazumaShrineofDepths.png" + +HDIRONCHUNK PNG "iconsHD\\IronChunk.png" + +HDJADECHAMBER PNG "iconsHD\\JadeChamber.png" + +HDJUEYUNCHILI PNG "iconsHD\\JueyunChili.png" + +HDKEYSIGILI PNG "iconsHD\\KeySigilI.png" + +HDKEYSIGILII PNG "iconsHD\\KeySigilII.png" + +HDKEYSIGILIII PNG "iconsHD\\KeySigilIII.png" + +HDKEYSIGILIV PNG "iconsHD\\KeySigilIV.png" + +HDKEYSIGILV PNG "iconsHD\\KeySigilV.png" + +HDKIDKUJIRAI PNG "iconsHD\\KidKujirai.png" + +HDKITSUNE PNG "iconsHD\\Kitsune.png" + +HDLARGEROCKPILE PNG "iconsHD\\LargeRockPile.png" + +HDLAVENDERMELON PNG "iconsHD\\LavenderMelon.png" + +HDLIGHTNINGSTRIKEPROBE PNG "iconsHD\\LightningStrikeProbe.png" + +HDLIGHTUPTILEPUZZLE PNG "iconsHD\\LightUpTilePuzzle.png" + +HDLIYUE PNG "iconsHD\\Liyue.png" + +HDLIZARDTAIL PNG "iconsHD\\LizardTail.png" + +HDLOACHPEARL PNG "iconsHD\\LoachPearl.png" + +HDLOTUSHEAD PNG "iconsHD\\LotusHead.png" + +HDLUCKLIGHTFLY PNG "iconsHD\\LucklightFly.png" + +HDLUMENLAMP PNG "iconsHD\\Lumenlamp.png" + +HDLUMENSPAR PNG "iconsHD\\Lumenspar.png" + +HDLUMINESCENTSPINE PNG "iconsHD\\LuminescentSpine.png" + +HDLUNGEDSTICKLEBACK PNG "iconsHD\\LungedStickleback.png" + +HDLUPUSBOREASDOMINATOROFWOLVES PNG "iconsHD\\LupusBoreasDominatorofWolves.png" + +HDLUXURIOUSCHEST PNG "iconsHD\\LuxuriousChest.png" + +HDMAGICALCRYSTALCHUNK PNG "iconsHD\\MagicalCrystalChunk.png" + +HDMAGUUKENKI PNG "iconsHD\\MaguuKenki.png" + +HDMAPLEWOOD PNG "iconsHD\\MapleWood.png" + +HDMARROWLIZARD PNG "iconsHD\\MarrowLizard.png" + +HDMATSUTAKE PNG "iconsHD\\Matsutake.png" + +HDMEDAKA PNG "iconsHD\\Medaka.png" + +HDMERCHANT PNG "iconsHD\\Merchant.png" + +HDMINIPUZZLE PNG "iconsHD\\MiniPuzzle.png" + +HDMINT PNG "iconsHD\\Mint.png" + +HDMISTBUBBLE PNG "iconsHD\\MistBubble.png" + +HDMISTFLOWERCOROLLA PNG "iconsHD\\MistFlowerCorolla.png" + +HDMITACHURL PNG "iconsHD\\Mitachurl.png" + +HDMONDSTADT PNG "iconsHD\\Mondstadt.png" + +HDMORA PNG "iconsHD\\Mora.png" + +HDMUDFROG PNG "iconsHD\\MudFrog.png" + +HDMUSHROOM PNG "iconsHD\\Mushroom.png" + +HDMYSTERIOUSCARVINGS PNG "iconsHD\\MysteriousCarvings.png" + +HDNAKUWEED PNG "iconsHD\\NakuWeed.png" + +HDNOBUSHI PNG "iconsHD\\Nobushi.png" + +HDNOCTILUCOUSJADE PNG "iconsHD\\NoctilucousJade.png" + +HDOCEANCRAB PNG "iconsHD\\OceanCrab.png" + +HDOCEANID PNG "iconsHD\\Oceanid.png" + +HDONIKABUTO PNG "iconsHD\\Onikabuto.png" + +HDORES PNG "iconsHD\\Ores.png" + +HDOTOGIWOOD PNG "iconsHD\\OtogiWood.png" + +HDPALEREDCRAB PNG "iconsHD\\PaleRedCrab.png" + +HDPERPETUALMECHANICALARRAY PNG "iconsHD\\PerpetualMechanicalArray.png" + +HDPHASEGATE PNG "iconsHD\\PhaseGate.png" + +HDPHILANEMOMUSHROOM PNG "iconsHD\\PhilanemoMushroom.png" + +HDPINECONE PNG "iconsHD\\Pinecone.png" + +HDPINEWOOD PNG "iconsHD\\PineWood.png" + +HDPLACESOFESSENCEWORSHIP PNG "iconsHD\\PlacesofEssenceWorship.png" + +HDPOT PNG "iconsHD\\Pot.png" + +HDPRECIOUSCHEST PNG "iconsHD\\PreciousChest.png" + +HDPRESSUREPLATE PNG "iconsHD\\PressurePlate.png" + +HDPRIMOGEOVISHAP PNG "iconsHD\\PrimoGeovishap.png" + +HDPUFFERFISH PNG "iconsHD\\Pufferfish.png" + +HDPURPLESHIRAKODAI PNG "iconsHD\\PurpleShirakodai.png" + +HDPYROHYPOSTASIS PNG "iconsHD\\PyroHypostasis.png" + +HDPYROREGISVINE PNG "iconsHD\\PyroRegisvine.png" + +HDQINGXIN PNG "iconsHD\\Qingxin.png" + +HDRADIANTSPINCRYSTAL PNG "iconsHD\\RadiantSpincrystal.png" + +HDRADISH PNG "iconsHD\\Radish.png" + +HDRAIMEIANGELFISH PNG "iconsHD\\RaimeiAngelfish.png" + +HDRAWMEAT PNG "iconsHD\\RawMeat.png" + +HDRECIPE PNG "iconsHD\\Recipe.png" + +HDREDFINNEDUNAGI PNG "iconsHD\\RedFinnedUnagi.png" + +HDREDHORNEDLIZARD PNG "iconsHD\\RedHornedLizard.png" + +HDREDTAILEDWEASEL PNG "iconsHD\\RedTailedWeasel.png" + +HDREMARKABLECHEST PNG "iconsHD\\RemarkableChest.png" + +HDROCKPILE PNG "iconsHD\\RockPile.png" + +HDRUINBRAZIER PNG "iconsHD\\RuinBrazier.png" + +HDRUINGRADER PNG "iconsHD\\RuinGrader.png" + +HDRUINGUARD PNG "iconsHD\\RuinGuard.png" + +HDRUINHUNTER PNG "iconsHD\\RuinHunter.png" + +HDRUINSENTINEL PNG "iconsHD\\RuinSentinel.png" + +HDRUINSERPENT PNG "iconsHD\\RuinSerpent.png" + +HDRUSTYKOI PNG "iconsHD\\RustyKoi.png" + +HDSACREDSAKURA PNG "iconsHD\\SacredSakura.png" + +HDSAKURABLOOM PNG "iconsHD\\SakuraBloom.png" + +HDSAMACHURL PNG "iconsHD\\Samachurl.png" + +HDSANDBEARERWOOD PNG "iconsHD\\SandbearerWood.png" + +HDSANGOPEARL PNG "iconsHD\\SangoPearl.png" + +HDSAPPHIRE PNG "iconsHD\\Sapphire.png" + +HDSCARLETQUARTZ PNG "iconsHD\\ScarletQuartz.png" + +HDSEAGANODERMA PNG "iconsHD\\SeaGanoderma.png" + +HDSEAGRASS PNG "iconsHD\\Seagrass.png" + +HDSEALEDCHEST PNG "iconsHD\\SealedChest.png" + +HDSEALLOCATIONII PNG "iconsHD\\SealLocationII.png" + +HDSEALLOCATIONIII PNG "iconsHD\\SealLocationIII.png" + +HDSEALLOCATIONIV PNG "iconsHD\\SealLocationIV.png" + +HDSEALLOCATIONV PNG "iconsHD\\SealLocationV.png" + +HDSEALLOCATIONI PNG "iconsHD\\SealLocationI.png" + +HDSEELIE PNG "iconsHD\\Seelie.png" + +HDSEELIECOURT PNG "iconsHD\\SeelieCourt.png" + +HDSHADOWYHUSK PNG "iconsHD\\ShadowyHusk.png" + +HDSILKFLOWER PNG "iconsHD\\SilkFlower.png" + +HDSLIME PNG "iconsHD\\Slime.png" + +HDSMALLLAMPGRASS PNG "iconsHD\\SmallLampGrass.png" + +HDSMALLROCKPILE PNG "iconsHD\\SmallRockPile.png" + +HDSMASHEDSTONE PNG "iconsHD\\SmashedStone.png" + +HDSNAPDRAGON PNG "iconsHD\\Snapdragon.png" + +HDSNOWBOAR PNG "iconsHD\\Snowboar.png" + +HDSNOWFINCH PNG "iconsHD\\SnowFinch.png" + +HDSNOWFOX PNG "iconsHD\\SnowFox.png" + +HDSNOWSTRIDER PNG "iconsHD\\Snowstrider.png" + +HDSNOWWEASEL PNG "iconsHD\\SnowWeasel.png" + +HDSPECTER PNG "iconsHD\\Specter.png" + +HDSQUIRREL PNG "iconsHD\\Squirrel.png" + +HDSTARCONCH PNG "iconsHD\\Starconch.png" + +HDSTARSHROOM PNG "iconsHD\\Starshroom.png" + +HDSTARSILVER PNG "iconsHD\\Starsilver.png" + +HDSTATUEOFTHESEVEN PNG "iconsHD\\StatueofTheSeven.png" + +HDSTORMBARRIER PNG "iconsHD\\StormBarrier.png" + +HDSTORMSTONE PNG "iconsHD\\Stormstone.png" + +HDSTRANGETOOTH PNG "iconsHD\\StrangeTooth.png" + +HDSUNCRAB PNG "iconsHD\\SunCrab.png" + +HDSUNNYLOACH PNG "iconsHD\\SunnyLoach.png" + +HDSUNSETLOACH PNG "iconsHD\\SunsetLoach.png" + +HDSUNSETTIA PNG "iconsHD\\Sunsettia.png" + +HDSWEETFLOWER PNG "iconsHD\\SweetFlower.png" + +HDSWEETFLOWERMEDAKA PNG "iconsHD\\SweetFlowerMedaka.png" + +HDSWORDHILT PNG "iconsHD\\SwordHilt.png" + +HDTEACOLOREDSHIRAKODAI PNG "iconsHD\\TeaColoredShirakodai.png" + +HDTELEPORTWAYPOINT PNG "iconsHD\\TeleportWaypoint.png" + +HDTHECRUXTHEALCOR PNG "iconsHD\\TheCruxTheAlcor.png" + +HDTHEGREATSNOWBOARKING PNG "iconsHD\\TheGreatSnowboarKing.png" + +HDTHREEBOXES PNG "iconsHD\\ThreeBoxes.png" + +HDTHUNDERMANIFESTATION PNG "iconsHD\\ThunderManifestation.png" + +HDTIMETRIALCHALLENGE PNG "iconsHD\\TimeTrialChallenge.png" + +HDTORCHPUZZLE PNG "iconsHD\\TorchPuzzle.png" + +HDTREASUREHOARDER PNG "iconsHD\\TreasureHoarder.png" + +HDTRIANGULARMECHANISM PNG "iconsHD\\TriangularMechanism.png" + +HDUNAGIMEAT PNG "iconsHD\\UnagiMeat.png" + +HDUNIQUEROCKS PNG "iconsHD\\UniqueRocks.png" + +HDUNUSUALHILICHURL PNG "iconsHD\\UnusualHilichurl.png" + +HDVALBERRY PNG "iconsHD\\Valberry.png" + +HDVENOMSPINEFISH PNG "iconsHD\\VenomspineFish.png" + +HDVIEWPOINT PNG "iconsHD\\Viewpoint.png" + +HDVIOLETGRASS PNG "iconsHD\\Violetgrass.png" + +HDVIOLETIBIS PNG "iconsHD\\VioletIbis.png" + +HDWARMINGSEELIE PNG "iconsHD\\WarmingSeelie.png" + +HDWAVERIDERWAYPOINTCANNOTTELEPORT PNG "iconsHD\\WaveriderWaypointCannotTeleport.png" + +HDWEAPON PNG "iconsHD\\Weapon.png" + +HDWHITEIRONCHUNK PNG "iconsHD\\WhiteIronChunk.png" + +HDWHITEPIGEON PNG "iconsHD\\WhitePigeon.png" + +HDWHOPPERFLOWER PNG "iconsHD\\Whopperflower.png" + +HDWINDMILLMECHANISM PNG "iconsHD\\WindmillMechanism.png" + +HDWINDWHEELASTER PNG "iconsHD\\WindwheelAster.png" + +HDWOLFHOOK PNG "iconsHD\\Wolfhook.png" + +HDWOLVESOFTHERIFT PNG "iconsHD\\WolvesoftheRift.png" + +HDWOODENCRATE PNG "iconsHD\\WoodenCrate.png" + +HDWORLDQUESTS PNG "iconsHD\\WorldQuests.png" + +HDYUMEMIRUWOOD PNG "iconsHD\\YumemiruWood.png" + +ABIDINGANGELFISH PNG "icons\\AbidingAngelfish.png" + +ABYSSHERALD PNG "icons\\AbyssHerald.png" + +ABYSSMAGE PNG "icons\\AbyssMage.png" + +ADORNEDUNAGI PNG "icons\\AdornedUnagi.png" + +AIZENMEDAKA PNG "icons\\AizenMedaka.png" + +AKAIMAOU PNG "icons\\AkaiMaou.png" + +AMAKUMOFRUIT PNG "icons\\AmakumoFruit.png" + +AMETHYSTLUMP PNG "icons\\AmethystLump.png" + +ANCIENTRIME PNG "icons\\AncientRime.png" + +ANEMOCRYSTALFLY PNG "icons\\AnemoCrystalfly.png" + +ANEMOCULUS PNG "icons\\Anemoculus.png" + +ANEMOHYPOSTASIS PNG "icons\\AnemoHypostasis.png" + +APPLE PNG "icons\\Apple.png" + +ARALIAWOOD PNG "icons\\AraliaWood.png" + +ARCHAICSTONE PNG "icons\\ArchaicStone.png" + +ARTIFACT PNG "icons\\Artifact.png" + +BAKEDANUKI PNG "icons\\BakeDanuki.png" + +BAMBOOSEGMENT PNG "icons\\BambooSegment.png" + +BAMBOOSHOOT PNG "icons\\BambooShoot.png" + +BATHYSMALVISHAP PNG "icons\\BathysmalVishap.png" + +BATHYSMALVISHAPHERD PNG "icons\\BathysmalVishapHerd.png" + +BERRY PNG "icons\\Berry.png" + +BETTA PNG "icons\\Betta.png" + +BIRCHWOOD PNG "icons\\BirchWood.png" + +BIRDEGG PNG "icons\\BirdEgg.png" + +BITTERPUFFERFISH PNG "icons\\BitterPufferfish.png" + +BLACKKINGPIGEON PNG "icons\\BlackKingPigeon.png" + +BLOATTYFLOATTY PNG "icons\\BloattyFloatty.png" + +BLUEFROG PNG "icons\\BlueFrog.png" + +BLUEHORNEDLIZARD PNG "icons\\BlueHornedLizard.png" + +BLUETHUNDERWEASEL PNG "icons\\BluethunderWeasel.png" + +BOOK PNG "icons\\Book.png" + +BOOTWEASEL PNG "icons\\BootWeasel.png" + +BRIGHTCROWNPIGEON PNG "icons\\BrightcrownPigeon.png" + +BROWNSHIRAKODAI PNG "icons\\BrownShirakodai.png" + +BURIEDCHEST PNG "icons\\BuriedChest.png" + +BUTTERFLYWINGS PNG "icons\\ButterflyWings.png" + +CALLALILY PNG "icons\\CallaLily.png" + +CAMPFIRETORCH PNG "icons\\CampfireTorch.png" + +CARROT PNG "icons\\Carrot.png" + +CECILIA PNG "icons\\Cecilia.png" + +CHILLEDMEAT PNG "icons\\ChilledMeat.png" + +COMMONCHEST PNG "icons\\CommonChest.png" + +COOKINGINGREDIENT PNG "icons\\CookingIngredient.png" + +CORLAPIS PNG "icons\\CorLapis.png" + +CRAB PNG "icons\\Crab.png" + +CRIMSONAGATE PNG "icons\\CrimsonAgate.png" + +CRIMSONFINCH PNG "icons\\CrimsonFinch.png" + +CRIMSONFLANKPIGEON PNG "icons\\CrimsonflankPigeon.png" + +CRIMSONFOX PNG "icons\\CrimsonFox.png" + +CROW PNG "icons\\Crow.png" + +CRYOCRYSTALFLY PNG "icons\\CryoCrystalfly.png" + +CRYOHYPOSTASIS PNG "icons\\CryoHypostasis.png" + +CRYOREGISVINE PNG "icons\\CryoRegisvine.png" + +CRYSTALCHUNK PNG "icons\\CrystalChunk.png" + +CRYSTALCORE PNG "icons\\CrystalCore.png" + +CRYSTALFISH PNG "icons\\Crystalfish.png" + +CRYSTALMARROW PNG "icons\\CrystalMarrow.png" + +CUBEDEVICES PNG "icons\\CubeDevices.png" + +CUIHUAWOOD PNG "icons\\CuihuaWood.png" + +DANDELIONSEED PNG "icons\\DandelionSeed.png" + +DANDY PNG "icons\\Dandy.png" + +DAWNCATCHER PNG "icons\\Dawncatcher.png" + +DAYNIGHTSWITCHINGMECHANISM PNG "icons\\DayNightSwitchingMechanism.png" + +DEEPSEAUNAGI PNG "icons\\DeepSeaUnagi.png" + +DENDROBIUM PNG "icons\\Dendrobium.png" + +DIVDARAY PNG "icons\\DivdaRay.png" + +DOMAIN PNG "icons\\Domain.png" + +EIGHTSTONETABLETS PNG "icons\\EightStoneTablets.png" + +ELECTRICCONDUCTION PNG "icons\\ElectricConduction.png" + +ELECTROCRYSTAL PNG "icons\\ElectroCrystal.png" + +ELECTROCRYSTALFLY PNG "icons\\ElectroCrystalfly.png" + +ELECTROCULUS PNG "icons\\Electroculus.png" + +ELECTROGRANUM PNG "icons\\Electrogranum.png" + +ELECTROHYPOSTASIS PNG "icons\\ElectroHypostasis.png" + +ELECTROSEELIE PNG "icons\\ElectroSeelie.png" + +ELEMENTALMONUMENT PNG "icons\\ElementalMonument.png" + +EMERALDFINCH PNG "icons\\EmeraldFinch.png" + +ENEMIESFIRSTTIMEVICTORY PNG "icons\\EnemiesFirstTimeVictory.png" + +ENKANOMIYAPHASEGATE PNG "icons\\EnkanomiyaPhaseGate.png" + +EXQUISITECHEST PNG "icons\\ExquisiteChest.png" + +EYEOFTHESTORM PNG "icons\\EyeoftheStorm.png" + +FATUIAGENT PNG "icons\\FatuiAgent.png" + +FATUICICINMAGE PNG "icons\\FatuiCicinMage.png" + +FATUIMIRRORMAIDEN PNG "icons\\FatuiMirrorMaiden.png" + +FATUISKIRMISHER PNG "icons\\FatuiSkirmisher.png" + +FIRWOOD PNG "icons\\FirWood.png" + +FISH PNG "icons\\Fish.png" + +FISHINGPOINT PNG "icons\\FishingPoint.png" + +FLAMINGFLOWERSTAMEN PNG "icons\\FlamingFlowerStamen.png" + +FLOATINGANEMOSLIME PNG "icons\\FloatingAnemoSlime.png" + +FLOATINGHYDROFUNGUS PNG "icons\\FloatingHydroFungus.png" + +FLUORESCENTFUNGUS PNG "icons\\FluorescentFungus.png" + +FORMALORAY PNG "icons\\FormaloRay.png" + +FOWL PNG "icons\\Fowl.png" + +FRAGRANTCEDARWOOD PNG "icons\\FragrantCedarWood.png" + +FROG PNG "icons\\Frog.png" + +FROSTBEARINGTREE PNG "icons\\FrostbearingTree.png" + +GENERALCRAB PNG "icons\\GeneralCrab.png" + +GEOCRYSTALFLY PNG "icons\\GeoCrystalfly.png" + +GEOCULUS PNG "icons\\Geoculus.png" + +GEOGRANUM PNG "icons\\Geogranum.png" + +GEOHYPOSTASIS PNG "icons\\GeoHypostasis.png" + +GEOSIGIL PNG "icons\\GeoSigil.png" + +GEOVISHAP PNG "icons\\Geovishap.png" + +GEOVISHAPHATCHLING PNG "icons\\GeovishapHatchling.png" + +GLAZELILY PNG "icons\\GlazeLily.png" + +GLAZEMEDAKA PNG "icons\\GlazeMedaka.png" + +GOLDENCRAB PNG "icons\\GoldenCrab.png" + +GOLDENFINCH PNG "icons\\GoldenFinch.png" + +GOLDENKOI PNG "icons\\GoldenKoi.png" + +GOLDENLOACH PNG "icons\\GoldenLoach.png" + +GOLDENWOLFLORD PNG "icons\\GoldenWolflord.png" + +GRAYSNOWCAT PNG "icons\\GraySnowCat.png" + +GRAYWINGPIGEON PNG "icons\\GraywingPigeon.png" + +GREENHORNEDLIZARD PNG "icons\\GreenHornedLizard.png" + +HARVESTABLEPLANT PNG "icons\\HarvestablePlant.png" + +HILICHURL PNG "icons\\Hilichurl.png" + +HILICHURLCHIEFTAIN PNG "icons\\HilichurlChieftain.png" + +HILICHURLSHOOTER PNG "icons\\HilichurlShooter.png" + +HORSETAIL PNG "icons\\Horsetail.png" + +HYDROHYPOSTASIS PNG "icons\\HydroHypostasis.png" + +ILLUSION PNG "icons\\Illusion.png" + +INAZUMASHRINEOFDEPTHS PNG "icons\\InazumaShrineofDepths.png" + +IRONCHUNK PNG "icons\\IronChunk.png" + +JADECHAMBER PNG "icons\\JadeChamber.png" + +JUEYUNCHILI PNG "icons\\JueyunChili.png" + +KEYSIGILI PNG "icons\\KeySigilI.png" + +KEYSIGILII PNG "icons\\KeySigilII.png" + +KEYSIGILIII PNG "icons\\KeySigilIII.png" + +KEYSIGILIV PNG "icons\\KeySigilIV.png" + +KEYSIGILV PNG "icons\\KeySigilV.png" + +KIDKUJIRAI PNG "icons\\KidKujirai.png" + +KITSUNE PNG "icons\\Kitsune.png" + +LARGEROCKPILE PNG "icons\\LargeRockPile.png" + +LAVENDERMELON PNG "icons\\LavenderMelon.png" + +LIGHTNINGSTRIKEPROBE PNG "icons\\LightningStrikeProbe.png" + +LIGHTUPTILEPUZZLE PNG "icons\\LightUpTilePuzzle.png" + +LIYUE PNG "icons\\Liyue.png" + +LIZARDTAIL PNG "icons\\LizardTail.png" + +LOACHPEARL PNG "icons\\LoachPearl.png" + +LOTUSHEAD PNG "icons\\LotusHead.png" + +LUCKLIGHTFLY PNG "icons\\LucklightFly.png" + +LUMENLAMP PNG "icons\\Lumenlamp.png" + +LUMENSPAR PNG "icons\\Lumenspar.png" + +LUMINESCENTSPINE PNG "icons\\LuminescentSpine.png" + +LUNGEDSTICKLEBACK PNG "icons\\LungedStickleback.png" + +LUPUSBOREASDOMINATOROFWOLVES PNG "icons\\LupusBoreasDominatorofWolves.png" + +LUXURIOUSCHEST PNG "icons\\LuxuriousChest.png" + +MAGICALCRYSTALCHUNK PNG "icons\\MagicalCrystalChunk.png" + +MAGUUKENKI PNG "icons\\MaguuKenki.png" + +MAPLEWOOD PNG "icons\\MapleWood.png" + +MARROWLIZARD PNG "icons\\MarrowLizard.png" + +MATSUTAKE PNG "icons\\Matsutake.png" + +MEDAKA PNG "icons\\Medaka.png" + +MERCHANT PNG "icons\\Merchant.png" + +MINIPUZZLE PNG "icons\\MiniPuzzle.png" + +MINT PNG "icons\\Mint.png" + +MISTBUBBLE PNG "icons\\MistBubble.png" + +MISTFLOWERCOROLLA PNG "icons\\MistFlowerCorolla.png" + +MITACHURL PNG "icons\\Mitachurl.png" + +MONDSTADT PNG "icons\\Mondstadt.png" + +MORA PNG "icons\\Mora.png" + +MUDFROG PNG "icons\\MudFrog.png" + +MUSHROOM PNG "icons\\Mushroom.png" + +MYSTERIOUSCARVINGS PNG "icons\\MysteriousCarvings.png" + +NAKUWEED PNG "icons\\NakuWeed.png" + +NOBUSHI PNG "icons\\Nobushi.png" + +NOCTILUCOUSJADE PNG "icons\\NoctilucousJade.png" + +OCEANCRAB PNG "icons\\OceanCrab.png" + +OCEANID PNG "icons\\Oceanid.png" + +ONIKABUTO PNG "icons\\Onikabuto.png" + +ORES PNG "icons\\Ores.png" + +OTOGIWOOD PNG "icons\\OtogiWood.png" + +PALEREDCRAB PNG "icons\\PaleRedCrab.png" + +PERPETUALMECHANICALARRAY PNG "icons\\PerpetualMechanicalArray.png" + +PHASEGATE PNG "icons\\PhaseGate.png" + +PHILANEMOMUSHROOM PNG "icons\\PhilanemoMushroom.png" + +PINECONE PNG "icons\\Pinecone.png" + +PINEWOOD PNG "icons\\PineWood.png" + +PLACESOFESSENCEWORSHIP PNG "icons\\PlacesofEssenceWorship.png" + +POT PNG "icons\\Pot.png" + +PRECIOUSCHEST PNG "icons\\PreciousChest.png" + +PRESSUREPLATE PNG "icons\\PressurePlate.png" + +PRIMOGEOVISHAP PNG "icons\\PrimoGeovishap.png" + +PUFFERFISH PNG "icons\\Pufferfish.png" + +PURPLESHIRAKODAI PNG "icons\\PurpleShirakodai.png" + +PYROHYPOSTASIS PNG "icons\\PyroHypostasis.png" + +PYROREGISVINE PNG "icons\\PyroRegisvine.png" + +QINGXIN PNG "icons\\Qingxin.png" + +RADIANTSPINCRYSTAL PNG "icons\\RadiantSpincrystal.png" + +RADISH PNG "icons\\Radish.png" + +RAIMEIANGELFISH PNG "icons\\RaimeiAngelfish.png" + +RAWMEAT PNG "icons\\RawMeat.png" + +RECIPE PNG "icons\\Recipe.png" + +REDFINNEDUNAGI PNG "icons\\RedFinnedUnagi.png" + +REDHORNEDLIZARD PNG "icons\\RedHornedLizard.png" + +REDTAILEDWEASEL PNG "icons\\RedTailedWeasel.png" + +REMARKABLECHEST PNG "icons\\RemarkableChest.png" + +ROCKPILE PNG "icons\\RockPile.png" + +RUINBRAZIER PNG "icons\\RuinBrazier.png" + +RUINGRADER PNG "icons\\RuinGrader.png" + +RUINGUARD PNG "icons\\RuinGuard.png" + +RUINHUNTER PNG "icons\\RuinHunter.png" + +RUINSENTINEL PNG "icons\\RuinSentinel.png" + +RUINSERPENT PNG "icons\\RuinSerpent.png" + +RUSTYKOI PNG "icons\\RustyKoi.png" + +SACREDSAKURA PNG "icons\\SacredSakura.png" + +SAKURABLOOM PNG "icons\\SakuraBloom.png" + +SAMACHURL PNG "icons\\Samachurl.png" + +SANDBEARERWOOD PNG "icons\\SandbearerWood.png" + +SANGOPEARL PNG "icons\\SangoPearl.png" + +SAPPHIRE PNG "icons\\Sapphire.png" + +SCARLETQUARTZ PNG "icons\\ScarletQuartz.png" + +SEAGANODERMA PNG "icons\\SeaGanoderma.png" + +SEAGRASS PNG "icons\\Seagrass.png" + +SEALEDCHEST PNG "icons\\SealedChest.png" + +SEALLOCATIONII PNG "icons\\SealLocationII.png" + +SEALLOCATIONIII PNG "icons\\SealLocationIII.png" + +SEALLOCATIONIV PNG "icons\\SealLocationIV.png" + +SEALLOCATIONV PNG "icons\\SealLocationV.png" + +SEALLOCATIONI PNG "icons\\SealLocationI.png" + +SEELIE PNG "icons\\Seelie.png" + +SEELIECOURT PNG "icons\\SeelieCourt.png" + +SHADOWYHUSK PNG "icons\\ShadowyHusk.png" + +SILKFLOWER PNG "icons\\SilkFlower.png" + +SLIME PNG "icons\\Slime.png" + +SMALLLAMPGRASS PNG "icons\\SmallLampGrass.png" + +SMALLROCKPILE PNG "icons\\SmallRockPile.png" + +SMASHEDSTONE PNG "icons\\SmashedStone.png" + +SNAPDRAGON PNG "icons\\Snapdragon.png" + +SNOWBOAR PNG "icons\\Snowboar.png" + +SNOWFINCH PNG "icons\\SnowFinch.png" + +SNOWFOX PNG "icons\\SnowFox.png" + +SNOWSTRIDER PNG "icons\\Snowstrider.png" + +SNOWWEASEL PNG "icons\\SnowWeasel.png" + +SPECTER PNG "icons\\Specter.png" + +SQUIRREL PNG "icons\\Squirrel.png" + +STARCONCH PNG "icons\\Starconch.png" + +STARSHROOM PNG "icons\\Starshroom.png" + +STARSILVER PNG "icons\\Starsilver.png" + +STATUEOFTHESEVEN PNG "icons\\StatueofTheSeven.png" + +STORMBARRIER PNG "icons\\StormBarrier.png" + +STORMSTONE PNG "icons\\Stormstone.png" + +STRANGETOOTH PNG "icons\\StrangeTooth.png" + +SUNCRAB PNG "icons\\SunCrab.png" + +SUNNYLOACH PNG "icons\\SunnyLoach.png" + +SUNSETLOACH PNG "icons\\SunsetLoach.png" + +SUNSETTIA PNG "icons\\Sunsettia.png" + +SWEETFLOWER PNG "icons\\SweetFlower.png" + +SWEETFLOWERMEDAKA PNG "icons\\SweetFlowerMedaka.png" + +SWORDHILT PNG "icons\\SwordHilt.png" + +TEACOLOREDSHIRAKODAI PNG "icons\\TeaColoredShirakodai.png" + +TELEPORTWAYPOINT PNG "icons\\TeleportWaypoint.png" + +THECRUXTHEALCOR PNG "icons\\TheCruxTheAlcor.png" + +THEGREATSNOWBOARKING PNG "icons\\TheGreatSnowboarKing.png" + +THREEBOXES PNG "icons\\ThreeBoxes.png" + +THUNDERMANIFESTATION PNG "icons\\ThunderManifestation.png" + +TIMETRIALCHALLENGE PNG "icons\\TimeTrialChallenge.png" + +TORCHPUZZLE PNG "icons\\TorchPuzzle.png" + +TREASUREHOARDER PNG "icons\\TreasureHoarder.png" + +TRIANGULARMECHANISM PNG "icons\\TriangularMechanism.png" + +UNAGIMEAT PNG "icons\\UnagiMeat.png" + +UNIQUEROCKS PNG "icons\\UniqueRocks.png" + +UNUSUALHILICHURL PNG "icons\\UnusualHilichurl.png" + +VALBERRY PNG "icons\\Valberry.png" + +VENOMSPINEFISH PNG "icons\\VenomspineFish.png" + +VIEWPOINT PNG "icons\\Viewpoint.png" + +VIOLETGRASS PNG "icons\\Violetgrass.png" + +VIOLETIBIS PNG "icons\\VioletIbis.png" + +WARMINGSEELIE PNG "icons\\WarmingSeelie.png" + +WAVERIDERWAYPOINTCANNOTTELEPORT PNG "icons\\WaveriderWaypointCannotTeleport.png" + +WEAPON PNG "icons\\Weapon.png" + +WHITEIRONCHUNK PNG "icons\\WhiteIronChunk.png" + +WHITEPIGEON PNG "icons\\WhitePigeon.png" + +WHOPPERFLOWER PNG "icons\\Whopperflower.png" + +WINDMILLMECHANISM PNG "icons\\WindmillMechanism.png" + +WINDWHEELASTER PNG "icons\\WindwheelAster.png" + +WOLFHOOK PNG "icons\\Wolfhook.png" + +WOLVESOFTHERIFT PNG "icons\\WolvesoftheRift.png" + +WOODENCRATE PNG "icons\\WoodenCrate.png" + +WORLDQUESTS PNG "icons\\WorldQuests.png" + +YUMEMIRUWOOD PNG "icons\\YumemiruWood.png" + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/cheat-library/res/resource.h b/cheat-library/res/resource.h new file mode 100644 index 0000000..1404202 --- /dev/null +++ b/cheat-library/res/resource.h @@ -0,0 +1,22 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by res.rc +// +#define AssemblyChecksum 4 +#define IDR_RCDATA1 101 +#define IDR_RCDATA2 102 +#define IDB_PNG1 105 +#define IDB_PNG2 106 +#define IDB_ANEMOCULUS 106 +#define IDR_RCDATA3 107 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 109 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/cheat-library/res/scripts/load_map_data.py b/cheat-library/res/scripts/load_map_data.py new file mode 100644 index 0000000..c5525fc --- /dev/null +++ b/cheat-library/res/scripts/load_map_data.py @@ -0,0 +1,85 @@ +import requests +import json +import re + +# Reading api +with open("map_api.txt", "r") as map_api_file: + api_list = [] + for line in map_api_file.readlines(): + name, address = line.split() + api_list.append((name, address)) + +# Getting points data +points_messages = [] +for (name, address) in api_list: + r = requests.get(address) + if r.status_code != 200: + print(f"Failed load points data for {name}") + continue + + points_messages.append((name, json.loads(r.content.decode()))) + +# Refactor data to our format +refactored_data = {} +for (name, message) in points_messages: + label_list = message["data"]["label_list"] + point_list = message["data"]["point_list"] + + label_map = {} + for label in label_list: + label_map[label["id"]] = label + + data = {} + for point in point_list: + label_id = point["label_id"] + if label_id not in data: + label = label_map[label_id] + clear_name = re.sub(r"[^\w\d_]", "", label["name"]) + data[label_id] = { + "name": label["name"], + "clear_name": clear_name, + "points": [], + "icon": label["icon"] + } + + points = data[label_id]["points"] + points.append({ + "id": point["id"], + "x_pos": point["x_pos"], + "y_pos": point["y_pos"] + }) + + refactored_data[name] = { + "labels": data + } + +# Getting categories data +categories_messages = [] +for (name, address) in api_list: + r = requests.get(address.replace("list", "tree").replace("point", "label")) + if r.status_code != 200: + print(f"Failed load categories data for {name}") + continue + + categories_messages.append((name, json.loads(r.content.decode()))) + +# Refactor data to our format +for (name, message) in categories_messages: + categories_list = message["data"]["tree"] + + data = [] + for category in categories_list: + data.append( + { + "id": category["id"], + "name": category["name"], + "children": [child["id"] for child in category["children"]] + } + ) + + refactored_data[name]["categories"] = data + +# Writing refactored data to json files +for (name, data) in refactored_data.items(): + with open(f"../{name}.json", "w") as out_json_file: + json.dump(data, out_json_file, indent=4) diff --git a/cheat-library/res/scripts/map_api.txt b/cheat-library/res/scripts/map_api.txt new file mode 100644 index 0000000..1ac71db --- /dev/null +++ b/cheat-library/res/scripts/map_api.txt @@ -0,0 +1,3 @@ +map_undeground_mines https://sg-public-api-static.hoyolab.com/common/map_user/ys_obc/v1/map/point/list?map_id=9&app_sn=ys_obc&lang=en-us +map_enkanomiya https://sg-public-api-static.hoyolab.com/common/map_user/ys_obc/v1/map/point/list?map_id=7&app_sn=ys_obc&lang=en-us +map_teyvat https://sg-public-api-static.hoyolab.com/common/map_user/ys_obc/v1/map/point/list?map_id=2&app_sn=ys_obc&lang=en-us \ No newline at end of file diff --git a/cheat-library/res/scripts/saved_offsets.json b/cheat-library/res/scripts/saved_offsets.json new file mode 100644 index 0000000..ec34dd4 --- /dev/null +++ b/cheat-library/res/scripts/saved_offsets.json @@ -0,0 +1,383 @@ +{ + "apiFunctions": { + "il2cpp_add_internal_call": "83fb9b0", + "il2cpp_alloc": "83fb9c0", + "il2cpp_array_class_get": "83fb9d0", + "il2cpp_array_element_size": "83fb9e0", + "il2cpp_array_get_byte_length": "8446d30", + "il2cpp_array_length": "83fb9f0", + "il2cpp_array_new": "83fba00", + "il2cpp_array_new_full": "83fba10", + "il2cpp_array_new_specific": "83fba20", + "il2cpp_assembly_get_image": "83fba30", + "il2cpp_bounded_array_class_get": "83fba40", + "il2cpp_capture_memory_snapshot": "83fba50", + "il2cpp_class_array_element_size": "83fba60", + "il2cpp_class_enum_basetype": "83fba70", + "il2cpp_class_from_il2cpp_type": "83fbaa0", + "il2cpp_class_from_name": "83fba80", + "il2cpp_class_from_system_type": "83fba90", + "il2cpp_class_from_type": "83fbaa0", + "il2cpp_class_get_assemblyname": "83fbab0", + "il2cpp_class_get_bitmap": "83fbac0", + "il2cpp_class_get_bitmap_size": "83fbae0", + "il2cpp_class_get_declaring_type": "83fbaf0", + "il2cpp_class_get_element_class": "83fbb00", + "il2cpp_class_get_events": "83fbb10", + "il2cpp_class_get_field_from_name": "83fbb20", + "il2cpp_class_get_fields": "83fbb30", + "il2cpp_class_get_flags": "83fbb40", + "il2cpp_class_get_image": "83fc360", + "il2cpp_class_get_interfaces": "83fbb50", + "il2cpp_class_get_method_from_name": "83fbb60", + "il2cpp_class_get_methods": "83fbb70", + "il2cpp_class_get_name": "83fbb80", + "il2cpp_class_get_namespace": "83fbb90", + "il2cpp_class_get_nested_types": "83fbba0", + "il2cpp_class_get_parent": "83fbbb0", + "il2cpp_class_get_properties": "83fbbc0", + "il2cpp_class_get_property_from_name": "83fbbd0", + "il2cpp_class_get_type": "83fbbe0", + "il2cpp_class_has_attribute": "83fbbf0", + "il2cpp_class_has_parent": "83fbc00", + "il2cpp_class_has_references": "83fbc10", + "il2cpp_class_instance_size": "83fbc20", + "il2cpp_class_is_abstract": "83fbc30", + "il2cpp_class_is_assignable_from": "83fbc40", + "il2cpp_class_is_blittable": "83fbc50", + "il2cpp_class_is_enum": "83fbc60", + "il2cpp_class_is_generic": "83fbc70", + "il2cpp_class_is_inflated": "83fbc80", + "il2cpp_class_is_interface": "83fbc90", + "il2cpp_class_is_subclass_of": "83fbca0", + "il2cpp_class_is_valuetype": "83fbcb0", + "il2cpp_class_num_fields": "83fbcc0", + "il2cpp_class_value_size": "83fbcd0", + "il2cpp_current_thread_get_frame_at": "83fbce0", + "il2cpp_current_thread_get_stack_depth": "83fbcf0", + "il2cpp_current_thread_get_top_frame": "83fbd10", + "il2cpp_current_thread_walk_frame_stack": "83fbd20", + "il2cpp_domain_assembly_open": "83fbd30", + "il2cpp_domain_get": "83fbd40", + "il2cpp_domain_get_assemblies": "83fbd50", + "il2cpp_exception_from_name_msg": "83fbd90", + "il2cpp_field_get_flags": "83fbda0", + "il2cpp_field_get_name": "83fc360", + "il2cpp_field_get_offset": "83fbdb0", + "il2cpp_field_get_parent": "83fbb80", + "il2cpp_field_get_type": "83fbdc0", + "il2cpp_field_get_value": "83fbdd0", + "il2cpp_field_get_value_object": "83fbde0", + "il2cpp_field_has_attribute": "83fbdf0", + "il2cpp_field_set_value": "83fbe00", + "il2cpp_field_set_value_object": "83fbe10", + "il2cpp_field_static_get_value": "83fbe20", + "il2cpp_field_static_set_value": "83fbe30", + "il2cpp_format_exception": "83fbe40", + "il2cpp_format_stack_trace": "83fbef0", + "il2cpp_free": "83fbfa0", + "il2cpp_free_captured_memory_snapshot": "83fbfb0", + "il2cpp_gc_collect": "8445bb0", + "il2cpp_gc_collect_a_little": "83fbfc0", + "il2cpp_gc_disable": "83fbfd0", + "il2cpp_gc_enable": "83fc020", + "il2cpp_gc_get_heap_size": "83fc030", + "il2cpp_gc_get_used_size": "83fc040", + "il2cpp_gchandle_free": "83eb2a0", + "il2cpp_gchandle_get_target": "8436d60", + "il2cpp_gchandle_new": "83fc070", + "il2cpp_gchandle_new_weakref": "83fc080", + "il2cpp_get_corlib": "83fc0a0", + "il2cpp_get_exception_argument_null": "83fc0b0", + "il2cpp_image_get_assembly": "83fc100", + "il2cpp_image_get_entry_point": "83fc110", + "il2cpp_image_get_filename": "83fc360", + "il2cpp_image_get_name": "83fc360", + "il2cpp_init": "83fc120", + "il2cpp_init_utf16": "83fc170", + "il2cpp_is_vm_thread": "83fc220", + "il2cpp_method_get_class": "83fbb90", + "il2cpp_method_get_declaring_type": "83fbb90", + "il2cpp_method_get_flags": "83fc230", + "il2cpp_method_get_name": "83fbb80", + "il2cpp_method_get_object": "83fc260", + "il2cpp_method_get_param": "83fc270", + "il2cpp_method_get_param_count": "83fc280", + "il2cpp_method_get_param_name": "83fc290", + "il2cpp_method_get_return_type": "83fbbe0", + "il2cpp_method_get_token": "83fc2a0", + "il2cpp_method_has_attribute": "83fc2b0", + "il2cpp_method_is_generic": "83fc2c0", + "il2cpp_method_is_inflated": "83fc2d0", + "il2cpp_method_is_instance": "83fc2e0", + "il2cpp_monitor_enter": "83fc2f0", + "il2cpp_monitor_exit": "83fc300", + "il2cpp_monitor_pulse": "83fc310", + "il2cpp_monitor_pulse_all": "83fc320", + "il2cpp_monitor_try_enter": "83fc330", + "il2cpp_monitor_try_wait": "83fc340", + "il2cpp_monitor_wait": "83fc350", + "il2cpp_object_get_class": "83fc360", + "il2cpp_object_get_size": "83fc370", + "il2cpp_object_get_virtual_method": "83fc380", + "il2cpp_object_new": "83fc390", + "il2cpp_object_unbox": "83fc3b0", + "il2cpp_property_get_flags": "83fc420", + "il2cpp_property_get_get_method": "83fbb80", + "il2cpp_property_get_name": "83fbdc0", + "il2cpp_property_get_parent": "83fc360", + "il2cpp_property_get_set_method": "83fbb90", + "il2cpp_raise_exception": "83fc430", + "il2cpp_register_log_callback": "83fc460", + "il2cpp_resolve_icall": "83fc470", + "il2cpp_runtime_class_init": "83fc480", + "il2cpp_runtime_invoke": "83fc490", + "il2cpp_runtime_invoke_convert_args": "83fc4b0", + "il2cpp_runtime_object_init": "83fc4d0", + "il2cpp_runtime_object_init_exception": "83fc4e0", + "il2cpp_runtime_unhandled_exception_policy_set": "83fc4f0", + "il2cpp_set_commandline_arguments": "83fc500", + "il2cpp_set_commandline_arguments_utf16": "83fc510", + "il2cpp_set_config": "83fc520", + "il2cpp_set_config_dir": "83fc530", + "il2cpp_set_config_utf16": "83fc540", + "il2cpp_set_data_dir": "83fc550", + "il2cpp_set_find_plugin_callback": "83fc570", + "il2cpp_set_memory_callbacks": "83fc590", + "il2cpp_set_temp_dir": "83fc5d0", + "il2cpp_shutdown": "83fc5e0", + "il2cpp_stats_dump_to_file": "83fc5f0", + "il2cpp_stats_get_value": "83fc870", + "il2cpp_string_chars": "83fc8f0", + "il2cpp_string_intern": "83fc900", + "il2cpp_string_is_interned": "83fc910", + "il2cpp_string_length": "83fc920", + "il2cpp_string_new": "83fc930", + "il2cpp_string_new_len": "83fc940", + "il2cpp_string_new_utf16": "83fc950", + "il2cpp_string_new_wrapper": "83fc930", + "il2cpp_thread_attach": "83fc960", + "il2cpp_thread_current": "83fc970", + "il2cpp_thread_detach": "83fc980", + "il2cpp_thread_get_all_attached_threads": "83fc990", + "il2cpp_thread_get_frame_at": "83fc9a0", + "il2cpp_thread_get_name": "83fc9b0", + "il2cpp_thread_get_stack_depth": "83fc9c0", + "il2cpp_thread_get_top_frame": "83fc9d0", + "il2cpp_thread_walk_frame_stack": "83fc9e0", + "il2cpp_type_get_class_or_element_class": "83fc9f0", + "il2cpp_type_get_name": "83fca00", + "il2cpp_type_get_object": "83fcac0", + "il2cpp_type_get_type": "83fcad0", + "il2cpp_unhandled_exception": "83fcae0", + "il2cpp_unity_liveness_calculation_begin": "83fcaf0", + "il2cpp_unity_liveness_calculation_end": "83fcb00", + "il2cpp_unity_liveness_calculation_from_root": "83fcb10", + "il2cpp_unity_liveness_calculation_from_statics": "83fcb20", + "il2cpp_value_box": "83fcb30" + }, + "methodInfo": { + "AvatarPropDictionary_SetItem__MethodInfo": "b2cfd70", + "BaseEntity_GetBaseCombat__MethodInfo": "b2db248", + "BaseEntity_GetMoveComponent_1__MethodInfo": "b2bbb98", + "CreateCrashEvent__MethodInfo": "b381cf8", + "Singleton_1_EntityManager__get_Instance__MethodInfo": "b2b2a80", + "Singleton_1_EventManager__get_Instance__MethodInfo": "b2b3818", + "Singleton_1_InteractionManager__get_Instance__MethodInfo": "b2b4fc8", + "Singleton_1_ItemModule__get_Instance__MethodInfo": "b2acd50", + "Singleton_1_LoadingManager__get_Instance__MethodInfo": "b2c2ac0", + "Singleton_1_MBHLOBDPKEC__get_Instance__MethodInfo": "b327ad0", + "Singleton_1_MessageInfo__get_Instance__MethodInfo": "b37c078", + "Singleton_1_UIManager_1__get_Instance__MethodInfo": "b29f2d8", + "Singleton_1_PlayerModule__get_Instance__MethodInfo": "0", + "Singleton_1_MapManager__get_Instance__MethodInfo": "0", + "Singleton_1_NetworkManager_1__get_Instance__MethodInfo": "0", + "Singleton_1_ScenePropManager__get_Instance__MethodInfo": "0" + }, + "moduleInfo": { + "UnityPlayer.dll": { + "functions": { + "GetIl2Classes": "a80580", + "Unity_RecordUserData": "ae5ad0" + }, + "hash": { + "checksum": 1499808152269523874, + "timestamp": 132918960850629156 + } + }, + "UserAssembly.dll": { + "functions": { + "ActorAbilityPlugin_AddDynamicFloatWithRange": "112a110", + "ActorAbilityPlugin_OnEvent": "116d200", + "ActorUtils_GetAvatarPos": "14bc6d0", + "ActorUtils_SetAvatarPos": "14c3bf0", + "ActorUtils_SyncAvatarMotion": "14c88b0", + "Application_RecordUserData": "7435920", + "AttackResult_FillProtoAttackResult": "4d07170", + "AvatarPropDictionary_SetItem": "79284d0", + "AvatarProp_DecodePropType": "42ddf80", + "AvatarProp_DecodePropValue": "39aab80", + "BaseEntity_FireEvent": "163ee90", + "BaseEntity_GetAbsolutePosition": "1650c50", + "BaseEntity_GetBaseCombat": "5102970", + "BaseEntity_GetForward": "163d480", + "BaseEntity_GetForwardFast": "163f7e0", + "BaseEntity_GetMoveComponent_1": "5102780", + "BaseEntity_GetRelativePosition": "164c3f0", + "BaseEntity_GetRight": "1655c20", + "BaseEntity_GetRigidbody": "16425c0", + "BaseEntity_GetUp": "1634200", + "BaseEntity_IsActive": "165e590", + "BaseEntity_SetAbsolutePosition": "1645b20", + "BaseEntity_SetRelativePosition": "1659210", + "BaseEntity_ToStringRelease": "164dc50", + "BaseEntity_GetAllLogicComponents": "0", + "BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo": "0", + "CreateCrashEvent": "31adf70", + "Cursor_get_visible": "7445000", + "Cursor_set_lockState": "7445050", + "Cursor_set_visible": "74450a0", + "EntityManager_GetCurrentAvatar": "1555150", + "EntityManager_GetEntities": "1560f70", + "EntityManager_GetMainCameraEntity": "155f060", + "EntityManager_GetValidEntity": "154a660", + "Entity_SetPosition": "1645b20", + "EventManager_FireEvent": "2f3b3d0", + "EvtCrash_Init": "0", + "FishingManager_get_forcePercent": "19e73f0", + "FishingManager_Tick": "19eb990", + "FixedBoolStack_get_value": "1c11490", + "Formula_CalcAttackResult": "29b4870", + "GameManager_Update": "3253b80", + "HumanoidMoveFSM_CheckSprintCooldown": "24d5450", + "HumanoidMoveFSM_LateTick": "24e0ba0", + "InLevelCutScenePageContext_OnFreeClick": "0", + "InLevelCutScenePageContext_UpdateView": "0", + "InLevelCutScenePageContext_ClearView": "0", + "InLevelMapPageContext_OnMapClicked": "1390800", + "InLevelMapPageContext_OnMarkClicked": "13815e0", + "ItemModule_PickItem": "3d31930", + "KcpClient_TryDequeueEvent": "2fdcb30", + "KcpNative_kcp_client_send_packet": "2b572b0", + "LCAvatarCombat_IsEnergyMax": "2548810", + "LCAvatarCombat_IsSkillInCD_1": "2546c10", + "LCBaseCombat_DoHitEntity": "318b070", + "LCSelectPickup_AddInteeBtnByID": "426a900", + "LCSelectPickup_IsInPosition": "426bda0", + "LCSelectPickup_IsOutPosition": "426c350", + "LevelSceneElementViewPlugin_Tick": "0", + "LevelSyncCombatPlugin_RequestSceneEntityMoveReq": "4bdb410", + "LevelSyncCombatPlugin_SendFaceToDir": "4bdac80", + "LoadingManager_NeedTransByServer": "17f4fe0", + "LoadingManager_PerformPlayerTransmit": "17f1310", + "LoadingManager_RequestSceneTransToPoint": "17f21f0", + "LoadingManager_SceneGoto": "17f49e0", + "LocalEntityInfoData_GetTargetPos": "7758d10", + "LuaEnv_DoString": "600e890", + "LuaManager_LoadCustomLuaFile": "4b1c0c0", + "LuaShellManager_DoString": "47ada50", + "LuaShellManager_ReportLuaShellResult": "47acf40", + "Lua_xlua_pushasciistring": "6018660", + "Miscs_CalcCurrentGroundHeight": "15dd1d0", + "Miscs_CalcCurrentGroundHeight_1": "15dcee0", + "Miscs_CalcCurrentGroundNorm": "15dd370", + "Miscs_CalcCurrentGroundWaterHeight": "15dd910", + "Miscs_CheckTargetAttackable": "15e1c90", + "Miscs_GetSceneGroundLayerMask": "0", + "Miscs_GenLevelPos_1": "15e91a0", + "Miscs_GenWorldPos": "15e9b40", + "MonoInLevelMapPage_get_mapBackground": "4339d00", + "MonoInLevelMapPage_get_mapRect": "4339d30", + "Notify_CreateNotify_1": "2eccfe0", + "Packet_XorEncrypt": "2663fa0", + "RectTransformUtility_ScreenPointToLocalPointInRectangle": "83c28b0", + "Rigidbody_set_detectCollisions": "8334350", + "Rigidbody_set_isKinematic": "8334530", + "SafeFloat_GetValue": "4d3a960", + "Singleton_GetInstance": "7626d40", + "TalkDialogContext_OnDialogSelectItem": "204e820", + "TalkDialogContext_get_canAutoClick": "2052990", + "TalkDialogContext_get_canClick": "204a380", + "Time_get_deltaTime": "73d3140", + "Time_get_timeScale": "0", + "Time_set_timeScale": "0", + "Transform_get_position": "73d7190", + "Transform_set_position": "73d4a90", + "VCHumanoidMove_NotifyLandVelocity": "49428d0", + "VCMonsterAIController_TryDoSkill": "0", + "Vector3_Distance": "73dad90", + "WorldShiftManager_GetAbsolutePosition": "60f0810", + "WorldShiftManager_GetRelativePosition": "60f0aa0", + "MapModule_IsAreaUnlock": "0", + "SimpleSafeUInt16_get_Value": "0", + "ScenePropManager_GetTreeTypeByPattern": "0", + "NetworkManager_1_RequestHitTreeDropNotify": "0", + "GetTimestamp": "0", + "LCAbilityElement_ReduceModifierDurability": "0", + "Camera_WorldToScreenPoint": "0", + "Screen_get_height": "0", + "Screen_get_width": "0", + "Camera_get_main": "0", + "Camera_get_pixelWidth": "0", + "Camera_get_pixelHeight": "0", + "BaseEntity_get_gameObject": "0", + "Utils_1_GetBounds": "0", + "Behaviour_get_isActiveAndEnabled": "0", + "LoadingManager_IsLoaded": "0", + "EntityManager_RemoveEntity": "0", + "EntityManager_IsCachedEntity": "0", + "BaseEntity_get_rootGameObject": "0", + "BaseEntity_IsVisible": "0", + "BaseEntity_IsInCamera": "0", + "GadgetEntity_GetOwnerEntity": "0", + "Rigidbody_set_velocity": "0", + "InLevelMapPageContext_UpdateView": "0", + "UIManager_1_HasEnableMapCamera": "0", + "InLevelMapPageContext_ZoomMap": "0", + "Vector2_Distance": "0", + "MonoMiniMap_Update": "0", + "RectTransform_get_rect": "0", + "Canvas_get_scaleFactor": "0", + "MonoInLevelMainPage_get_miniMap": "0", + "Transform_get_rotation": "0", + "Quaternion_get_eulerAngles": "0", + "GadgetModule_OnGadgetInteractRsp": "0", + "FishingModule_OnFishBiteRsp": "0", + "FishingModule_RequestFishBattleBegin": "0", + "FishingModule_OnFishBattleBeginRsp": "0", + "FishingModule_RequestFishBattleEnd": "0", + "FishingModule_onFishChosenNotify": "0", + "FishingModule_RequestFishBite": "0", + "FishingModule_RequestFishCastRod": "0", + "FishingModule_OnFishBattleEndRsp": "0", + "FishingModule_OnExitFishingRsp": "0" + }, + "hash": { + "checksum": 6469164240778644427, + "timestamp": 132918960789354191 + } + } + }, + "monoHash": { + "checksum": 6469164240778644427, + "timestamp": 132918960789354191 + }, + "typeInfo": { + "Byte": "b224e28", + "GameManager": "b3117b8", + "Int32": "b38ff20", + "LCChestPlugin": "0", + "SceneTreeObject": "0", + "Singleton_1_EntityManager_": "b308870", + "Singleton_1_EventManager_": "b309120", + "Singleton_1_InteractionManager_": "b30bd10", + "Singleton_1_ItemModule_": "b291838", + "Singleton_1_LoadingManager_": "b316a68", + "Singleton_1_MBHLOBDPKEC_": "b3442d8", + "Singleton_1_UIManager_1_": "b2f8038", + "Singleton_1_PlayerModule_": "0", + "Singleton_1_MapManager_": "0", + "Singleton_1_ScenePropManager_": "0", + "Singleton_1_NetworkManager_1_": "0" + } +} \ No newline at end of file diff --git a/cheat-library/res/scripts/saved_offsets_to_static.py b/cheat-library/res/scripts/saved_offsets_to_static.py new file mode 100644 index 0000000..7e06460 --- /dev/null +++ b/cheat-library/res/scripts/saved_offsets_to_static.py @@ -0,0 +1,70 @@ +import json +import re + + +def update_checksums(file_name: str, modules: dict): + + checksums = { + "game_version": input("Input version: "), + "modules": {} + } + + for moduleName, moduleData in modules.items(): + checksums["modules"][moduleName] = moduleData["hash"] + + with open(file_name, "w") as file: + json.dump(checksums, file, indent=2) + + +def apply_offsets(file_name: str, pattern: re.Pattern[str], offsets: dict, reverse_order=False): + with open(file_name) as file: + lines = file.readlines() + + for i, line in enumerate(lines): + m = pattern.match(line) + if m is None: + continue + + filtered_groups = (group for group in m.groups() if group is not None) + if reverse_order: + name, prev_offset = filtered_groups + else: + prev_offset, name = filtered_groups + + if name not in offsets: + print(f"Not found offset for {name}") + continue + + offset = offsets[name] + if int(offset, 16) != 0: + lines[i] = line.replace(prev_offset, f"{int(offset, 16):08X}") + + with open(file_name, "w") as file: + file.writelines(lines) + + +def process(): + with open("saved_offsets.json") as saved_offsets_file: + content = json.load(saved_offsets_file) + + api_pattern = re.compile(r"#define *([\w\d_]+)_ptr *0x([A-Fa-f\d]+)") + apply_offsets("../../src/appdata/il2cpp-api-functions-ptr.h", api_pattern, content["apiFunctions"], True) + + typedef_pattern = re.compile(r"(?:DO_TYPEDEF\(|DO_SINGLETONEDEF\() *0x([A-Fa-f\d]+), *([\w\d_]+) *\);") + apply_offsets("../../src/appdata/il2cpp-types-ptr.h", typedef_pattern, content["typeInfo"]) + + function_pattern = re.compile(r"DO_APP_FUNC *(?:\(|_METHODINFO\() *(?:0x|)([A-Fa-f\d]+)," + r"(?:[^,]+, *([\w\d_]+), | *([\w\d_]+) *)") + + method_info_offsets: dict = content["methodInfo"] + apply_offsets("../../src/appdata/il2cpp-functions.h", function_pattern, + dict(content["moduleInfo"]["UserAssembly.dll"]["functions"], **method_info_offsets)) + + apply_offsets("../../src/appdata/il2cpp-unityplayer-functions.h", function_pattern, + dict(content["moduleInfo"]["UnityPlayer.dll"]["functions"], **method_info_offsets)) + + update_checksums("../assembly_checksum.json", content["moduleInfo"]) + + +if __name__ == "__main__": + process() diff --git a/cheat-library/res/signatures.json b/cheat-library/res/signatures.json new file mode 100644 index 0000000..c103567 --- /dev/null +++ b/cheat-library/res/signatures.json @@ -0,0 +1,5043 @@ +{ + "method": { + "UserAssembly.dll": { + + "ActorAbilityPlugin_AddDynamicFloatWithRange": { + "signatures": [], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 28 74 24 50 B0 01 0F 28 7C 24 40" + } + ] + }, + "ActorAbilityPlugin_OnEvent": { + "signatures": [ + "40 88 BC 24 D8 00 00 00", + "44 8B B3 E0 01 00 00", + "48 8B 05 ?? ?? ?? ?? F6 80 0A 01 00 00 01 74 18 83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B CB 44 3B 70 08", + "F6 80 0A 01 00 00 01 74 18 83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B CB 44 3B 70 08", + "74 18 83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B CB 44 3B 70 08", + "83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B CB 44 3B 70 08", + "75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B CB 44 3B 70 08", + "48 8B C8 E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B CB 44 3B 70 08", + "E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B CB 44 3B 70 08", + "48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B CB 44 3B 70 08", + "48 8B 80 A0 00 00 00 48 8B CB 44 3B 70 08", + "48 8B CB 44 3B 70 08", + "44 3B 70 08 7D 23", + "7D 23 45 33 C9 41 B0 01", + "45 33 C9 41 B0 01 48 8B D6 E8 ?? ?? ?? ?? 88 84 24 D8 00 00 00", + "41 B0 01 48 8B D6 E8 ?? ?? ?? ?? 88 84 24 D8 00 00 00", + "48 8B D6 E8 ?? ?? ?? ?? 88 84 24 D8 00 00 00", + "8B 46 10 89 44 24 68 48 8D 54 24 68", + "89 44 24 68 48 8D 54 24 68 48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B F0", + "48 8D 54 24 68 48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B F0" + ], + "xref": [] + }, + "Application_RecordUserData": { + "signatures": [], + "xref": [ + { + "offset": 17, + "sig": "33 C9 E8 ?? ?? ?? ?? 45 33 C0 33 D2 33 C9 48 8B D8 E8" + }, + { + "offset": 20, + "sig": "48 8B F8 E8 ?? ?? ?? ?? 45 33 C0 33 C9 48 8B D8 41 8D 50 01 E8" + }, + { + "offset": 9, + "sig": "33 C9 48 8B D8 41 8D 50 02 E8" + } + ] + }, + "AttackResult_FillProtoAttackResult": { + "signatures": [ + "48 85 FF 75 37 48 8B 0D", + "75 37 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 B9 BC 00 00 00", + "45 33 C0 41 8B D6 48 8B CF E8 ?? ?? ?? ?? 45 33 C0 8B D3", + "41 8B D6 48 8B CF E8 ?? ?? ?? ?? 45 33 C0 8B D3", + "48 8B CF E8 ?? ?? ?? ?? 45 33 C0 8B D3 48 8B CF E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8D 4E 44", + "E8 ?? ?? ?? ?? 45 33 C0 8B D3 48 8B CF E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8D 4E 44", + "45 33 C0 8B D3 48 8B CF E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8D 4E 44", + "8B D3 48 8B CF E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8D 4E 44", + "48 8B CF E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8D 4E 44", + "E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8D 4E 44", + "48 8B 15 ?? ?? ?? ?? 48 8D 4E 44", + "48 8D 4E 44 E8 ?? ?? ?? ?? 84 C0", + "E8 ?? ?? ?? ?? 84 C0 75 07 B8 E7 03 00 00", + "84 C0 75 07 B8 E7 03 00 00", + "75 07 B8 E7 03 00 00", + "B8 E7 03 00 00 EB 18", + "EB 18 48 8B 46 44", + "48 8B 46 44 48 8D 4D BF", + "48 8D 4D BF 48 8B 15 ?? ?? ?? ?? 48 89 45 BF E8 ?? ?? ?? ?? 45 33 C0", + "48 8B 15 ?? ?? ?? ?? 48 89 45 BF E8 ?? ?? ?? ?? 45 33 C0" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CE E8 ?? ?? ?? ?? 33 D2 48 8B CE E8 ?? ?? ?? ?? 48 85 C0 74 26" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CF E8 ?? ?? ?? ?? 45 33 C0 8B D0 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB" + } + ] + }, + "AvatarPropDictionary_SetItem": { + "signatures": [], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 5F 18 48 8D 4D E0 45 33 C9 33 D2 41 B8 1C 27 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 5F 18 48 8D 4D E0 45 33 C9 33 D2 41 B8 1A 27 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 5C 24 60 0F 28 7C 24 40" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 73 18 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 48 8D 4D C0" + } + ] + }, + "AvatarProp_DecodePropType": { + "signatures": [], + "xref": [ + { + "offset": 56, + "sig": "0F 10 70 48 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 66 0F 7F B4 24 80 00 00 00 45 33 C0 48 8D 94 24 80 00 00 00 33 C9 E8" + }, + { + "offset": 60, + "sig": "48 89 74 24 60 0F 29 74 24 40 48 8B 0D ?? ?? ?? ?? 0F 10 70 48 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 30 48 8D 54 24 30 33 C9 E8" + }, + { + "offset": 39, + "sig": "F6 81 0A 01 00 00 01 74 0E 44 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 40 48 8D 54 24 40 33 C9 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 8B D6 33 C9 E8 ?? ?? ?? ?? 4C 8B E0" + }, + { + "offset": 28, + "sig": "44 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 07 48 8D 55 07 33 C9 E8" + }, + { + "offset": 50, + "sig": "0F 10 70 48 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 66 0F 7F 74 24 50 45 33 C0 48 8D 54 24 50 33 C9 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 89 7C 24 30 4C 89 7C 24 28" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 8B D8 0F 28 74 24 40 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B B4 24 80 00 00 00" + }, + { + "offset": 36, + "sig": "0F 10 70 48 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 85 C0 74 38 48 8B 0D ?? ?? ?? ?? 0F 10 77 58" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 8B D8 0F 28 74 24 30 8B C3 48 8B 5C 24 50" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 8B D0 48 8B CF E8 ?? ?? ?? ?? E9 53 FF FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 44 8B E0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 0F 57 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 10 46 10 45 33 C0 48 8D 55 D7 33 C9 8B D8 0F 29 45 D7 E8 ?? ?? ?? ?? 3B D8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 3B D8 0F 86 99 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 10 46 10 45 33 C0 48 8D 55 D7 33 C9 8B D8 0F 29 45 D7 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 0F 57 C0 2B DF" + }, + { + "offset": 30, + "sig": "44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 40 48 8D 54 24 40 33 C9 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4D 85 FF 0F 84 7F 01 00 00" + }, + { + "offset": 44, + "sig": "E9 19 FF FF FF F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8" + } + ] + }, + "AvatarProp_DecodePropValue": { + "signatures": [], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 73 18 48 8D 4D C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B 03 41 0F 28 D8 0F 28 D0 8B D7 48 8B CB 49 8B 80 B8 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 28 F0 4C 8B 05 ?? ?? ?? ?? 48 8D 54 24 60" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B 07 49 8B 80 B8 01 00 00" + } + ] + }, + "BaseEntity_FireEvent": { + "signatures": [ + "33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 78 45 33 C9 44 0F B6 C3 48 8B D7", + "E8 ?? ?? ?? ?? 48 85 C0 74 78 45 33 C9 44 0F B6 C3 48 8B D7", + "48 85 C0 74 78 45 33 C9 44 0F B6 C3 48 8B D7", + "74 78 45 33 C9 44 0F B6 C3 48 8B D7 48 8B C8" + ], + "xref": [ + { + "offset": 26, + "sig": "89 4C 24 20 8B D5 48 8B CE E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 48 8B CB E8" + }, + { + "offset": 20, + "sig": "41 8B D7 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 49 8B D6 48 8B CF E8" + }, + { + "offset": 26, + "sig": "45 0F B6 C6 8B D5 48 8B CE E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 48 8B CB E8" + }, + { + "offset": 22, + "sig": "8B D5 48 8B CF E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 48 8B CB E8" + }, + { + "offset": 29, + "sig": "48 C7 44 24 20 00 00 00 00 48 8B CE E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 48 8B CB E8" + }, + { + "offset": 26, + "sig": "48 C7 44 24 20 00 00 00 00 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 48 8B CB E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 03 48 8B CB 48 8B 90 A8 06 00 00 FF 90" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 03 48 8B CB 48 8B 90 A8 06 00 00 48 8B 5C 24 40" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B 74 24 60 4C 8B 7C 24 68 48 8B 5C 24 70 48 8B 6C 24 78 48 83 C4 50" + }, + { + "offset": 23, + "sig": "F3 0F 11 44 24 20 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D3 48 8B CE E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 6C 24 70 48 8B 7C 24 78 48 8B 9C 24 80 00 00 00 0F 28 74 24 50 0F 28 7C 24 40 48 83 C4 60 5E C3 8B 84 24 90 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? BA 00 90 00 00 48 8B CE" + }, + { + "offset": 22, + "sig": "8B D5 48 8B CE E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 48 8B CF E8" + }, + { + "offset": 19, + "sig": "45 33 C9 45 33 C0 48 8B D3 48 8B 5C 24 40 48 83 C4 30 5F E9" + }, + { + "offset": 15, + "sig": "0F 28 74 24 40 48 8B 7C 24 68 48 83 C4 50 5B E9" + }, + { + "offset": 12, + "sig": "5E 5D C3 45 33 C9 45 33 C0 48 8B CB E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B 74 24 68 4C 8B 64 24 60 48 8B 6C 24 50 4C 8B 7C 24 30 48 8B 7C 24 58" + }, + { + "offset": 31, + "sig": "48 8B D3 48 8B C8 48 8B 5C 24 40 4C 8B 74 24 48 48 8B 6C 24 50 48 8B 74 24 58 48 83 C4 30 5F E9" + }, + { + "offset": 16, + "sig": "45 33 C0 48 8B D7 48 8B 5C 24 40 48 83 C4 30 5F E9" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B AC 24 88 00 00 00 48 8B 9C 24 80 00 00 00 4C 8B 74 24 60" + } + ] + }, + "BaseEntity_GetBaseCombat": { + "signatures": [ + "48 83 EC 28 48 85 C9 74 16 48 8B 42 30 BA 00 B0 00 01", + "48 85 C9 74 16 48 8B 42 30 BA 00 B0 00 01", + "74 16 48 8B 42 30 BA 00 B0 00 01", + "48 8B 42 30 BA 00 B0 00 01", + "BA 00 B0 00 01 4C 8B 08" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 0A 33 D2 48 8B C8 E8 ?? ?? ?? ?? FF C3 8B FB" + }, + { + "offset": 24, + "sig": "48 8B 8C 24 90 00 00 00 48 85 C9 0F 84 C5 00 00 00 48 8B 15 ?? ?? ?? ?? E8" + }, + { + "offset": 24, + "sig": "48 8B 8C 24 A0 00 00 00 48 85 C9 0F 84 EF 00 00 00 48 8B 15 ?? ?? ?? ?? E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 A0 01 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 8B D8 48 85 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 64 01 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 8B E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B E0 48 8B 54 24 78" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 0F 84 5C FF FF FF 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 0F 84 49 FF FF FF 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 85 C0 74 6D" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B F0 48 85 C0 74 34 33 D2" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 0F 84 5C FF FF FF 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 0F 84 49 FF FF FF 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 85 C0 74 18" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8B CE 4C 8B F0 E8 ?? ?? ?? ?? 48 8B E8 4D 85 F6 0F 84 B9 03 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B E8 4D 85 F6 0F 84 B9 03 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 74 A6 0F 28 74 24 60" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B F0 48 85 C0 74 2C" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B E8 48 85 C0 0F 84 CE 02 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8B CE 4C 8B F0 E8 ?? ?? ?? ?? 48 8B E8 4D 85 F6 0F 84 BB 02 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B E8 4D 85 F6 0F 84 BB 02 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 FF 0F 84 D2 00 00 00 33 D2" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B F0 48 89 44 24 58 48 8B 4F 10" + }, + { + "offset": 27, + "sig": "48 8B CF E8 ?? ?? ?? ?? 48 85 C0 0F 84 CB 00 00 00 48 8B 15 ?? ?? ?? ?? 48 8B C8 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 A1 00 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 45 33 C9" + } + ] + }, + "CreateCrashEvent": { + "signatures": [ + "48 89 5C 24 08 57 48 83 EC 20 80 3D ?? ?? ?? ?? ?? 48 8B FA 75 12 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 88 A0 00 00 00 48 8B 19", + "57 48 83 EC 20 80 3D ?? ?? ?? ?? ?? 48 8B FA 75 12 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 88 A0 00 00 00 48 8B 19", + "48 83 EC 20 80 3D ?? ?? ?? ?? ?? 48 8B FA 75 12 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 88 A0 00 00 00 48 8B 19", + "80 3D ?? ?? ?? ?? ?? 48 8B FA 75 12 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 88 A0 00 00 00 48 8B 19", + "48 8B FA 75 12 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 88 A0 00 00 00 48 8B 19 48 85 DB 75 24", + "75 12 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 88 A0 00 00 00 48 8B 19 48 85 DB 75 24", + "8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 88 A0 00 00 00 48 8B 19 48 85 DB 75 24", + "E8 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 88 A0 00 00 00 48 8B 19 48 85 DB 75 24", + "C6 05 ?? ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 88 A0 00 00 00 48 8B 19 48 85 DB 75 24", + "48 8B 05 ?? ?? ?? ?? 48 8B 88 A0 00 00 00 48 8B 19 48 85 DB 75 24", + "48 8B 88 A0 00 00 00 48 8B 19 48 85 DB 75 24", + "48 8B 19 48 85 DB 75 24", + "48 85 DB 75 24 48 8B 47 30", + "75 24 48 8B 47 30", + "48 8B 47 30 33 C9 4C 8B 40 08 49 8B D0 41 FF 10 48 85 C0 74 42", + "33 C9 4C 8B 40 08 49 8B D0 41 FF 10 48 85 C0 74 42", + "4C 8B 40 08 49 8B D0 41 FF 10 48 85 C0 74 42", + "49 8B D0 41 FF 10 48 85 C0 74 42", + "41 FF 10 48 85 C0 74 42", + "48 85 C0 74 42 C6 40 1F 01" + ], + "xref": [ + { + "offset": 62, + "sig": "48 8B CE E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 8B F0 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 8C 24 80 00 00 00 48 8B F0" + }, + { + "offset": 15, + "sig": "80 79 1A 00 75 7C 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CF 48 8B F0 E8 ?? ?? ?? ?? 33 D2 48 8B CB 8B F8 E8 ?? ?? ?? ?? 33 D2" + }, + { + "offset": 15, + "sig": "0F 84 0E 01 00 00 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CB 48 8B F0 E8 ?? ?? ?? ?? 48 85 ED" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4C 24 68 45 33 E4" + }, + { + "offset": 21, + "sig": "48 8B CB E8 ?? ?? ?? ?? 84 C0 74 7C 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 54 24 40 48 8B D8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CB 48 8B F8 E8 ?? ?? ?? ?? 8B E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CD 48 8B F0 E8 ?? ?? ?? ?? 33 D2 48 8B CB 8B E8" + }, + { + "offset": 14, + "sig": "0F 29 7C 24 50 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 15, + "sig": "0F 84 99 00 00 00 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 93 00 00 00" + }, + { + "offset": 15, + "sig": "0F 84 DE 01 00 00 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 26, + "sig": "F3 41 0F 10 4E 34 45 33 C9 41 B0 01 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CF 48 8B F0 E8 ?? ?? ?? ?? 33 D2 48 8B CB 8B E8 E8 ?? ?? ?? ?? 48 85 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 5A 01 00 00 45 33 C9 4C 8B C7" + }, + { + "offset": 26, + "sig": "F3 41 0F 10 4E 2C 45 33 C9 41 B0 01 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 21, + "sig": "74 0A 45 33 C0 33 D2 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + } + ] + }, + "EntityManager_GetMainCameraEntity": { + "signatures": [], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B E8 48 85 C0 0F 84 09 01 00 00 48 85 FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 BF 00 00 00 48 89 9C 24 10 03 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 0F 84 99 00 00 00 48 8B 15" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 0A 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F0 48 85 FF 0F 84 04 03 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 0F 84 BA 00 00 00 48 8B 15" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 ED 00 00 00 48 89 BC 24 80 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 89 87 18 01 00 00 48 85 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 44 0F 10 05 ?? ?? ?? ?? 33 FF 45 0F 57 C9" + }, + { + "offset": 41, + "sig": "39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 F1 00 00 00 33 D2 48 8B C8 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 0E 45 33 C0 48 8B D7 48 8B C8 E8 ?? ?? ?? ?? 4D 85 F6" + }, + { + "offset": 24, + "sig": "8B 40 18 F2 0F 11 03 89 43 08 48 8B C3 48 83 C4 30 5B C3 33 D2 48 8B C8 E8" + }, + { + "offset": 24, + "sig": "8B 40 0C F2 0F 11 03 89 43 08 48 8B C3 48 83 C4 30 5B C3 33 D2 48 8B C8 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 28 74 24 20 48 83 C4 30 5B C3 F3 0F 59 05" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F0 48 85 DB 0F 84 AA 04 00 00 48 85 C0 0F 84 A1 04 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F0 4D 85 FF 0F 84 78 09 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 0F 84 9B 04 00 00 83 FE 01" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 C4 07 00 00" + }, + { + "offset": 11, + "sig": "48 89 BC 24 08 05 00 00 48 8B C8 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 DB 74 74 48 85 C0" + } + ] + }, + "EventManager_FireEvent": { + "signatures": [ + "83 7B 28 00 75 2A 48 8B 0D", + "75 2A 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 89 43 28", + "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 89 43 28 45 33 C0", + "F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 89 43 28 45 33 C0", + "74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 89 43 28 45 33 C0", + "83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 89 43 28 45 33 C0", + "75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 89 43 28 45 33 C0", + "E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 89 43 28 45 33 C0", + "33 D2 33 C9 E8 ?? ?? ?? ?? 89 43 28 45 33 C0 48 8B D3", + "33 C9 E8 ?? ?? ?? ?? 89 43 28 45 33 C0 48 8B D3", + "E8 ?? ?? ?? ?? 89 43 28 45 33 C0 48 8B D3", + "89 43 28 45 33 C0 48 8B D3", + "45 33 C0 48 8B D3 48 8B CF 40 84 F6", + "48 8B D3 48 8B CF 40 84 F6", + "48 8B CF 40 84 F6 74 14", + "40 84 F6 74 14 48 8B 5C 24 40" + ], + "xref": [ + { + "offset": 24, + "sig": "41 B0 01 48 8B D7 48 8B C8 48 8B 5C 24 40 48 8B 74 24 48 48 83 C4 30 5F E9" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B 74 24 60 0F 28 74 24 40" + }, + { + "offset": 18, + "sig": "48 8B 9C 24 80 00 00 00 0F 28 7C 24 40 48 83 C4 60 5F E9" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 9C 24 80 00 00 00 48 8B B4 24 90 00 00 00 48 83 C4 60" + }, + { + "offset": 18, + "sig": "0F 84 D1 00 00 00 45 33 C9 45 33 C0 48 8B D3 48 8B C8 E8" + }, + { + "offset": 18, + "sig": "0F 84 BA 00 00 00 45 33 C9 45 33 C0 48 8B D3 48 8B C8 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 55 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 74 47" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 34 02 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 15 83 B9 BC 00 00 00 00 75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 81 A0 00 00 00 48 83 78 20 00 74 35" + }, + { + "offset": 17, + "sig": "45 33 C9 45 33 C0 48 8B D3 48 8B C8 48 83 C4 30 5B E9" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 99 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CE E8 ?? ?? ?? ?? 8B D8 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 8B D3 33 C9 E8 ?? ?? ?? ?? 48 85 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 28 B4 24 80 00 00 00 0F 28 7C 24 70 48 8B AC 24 A0 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B D8" + }, + { + "offset": 25, + "sig": "45 33 C9 45 33 C0 48 8B D3 48 8B C8 48 8B 9C 24 80 00 00 00 48 83 C4 70 5F E9" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 84 C0 0F 85 94 00 00 00 33 D2" + }, + { + "offset": 23, + "sig": "4C 8B B4 24 90 00 00 00 48 8B 9C 24 A0 00 00 00 48 83 C4 70 5F 5E 5D E9" + }, + { + "offset": 29, + "sig": "45 33 C9 45 33 C0 48 8B D7 48 8B C8 4C 8D 5C 24 70 49 8B 5B 10 49 8B 73 18 49 8B E3 5F E9" + }, + { + "offset": 20, + "sig": "48 8B CF E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 48 8B CE E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 0F 10 43 1C 0F 2F 43 14" + } + ] + }, + "EvtCrash_Init": { + "signatures": [], + "xref": [] + }, + "FixedBoolStack_get_value": { + "signatures": [], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 85 7C 03 00 00 33 D2 48 8B CB" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 0F 57 C0 84 C0 0F 84 09 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 74 0D 45 33 C0 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 89 6C 24 60" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 48 C7 44 24 20 00 00 00 00 44 0F B6 C0 48 8B D3 49 8B CE" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 74 28 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 85 C0 74 19 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 85 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 40 B7 01 0F B6 F0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 88 43 61 48 8B CD" + }, + { + "offset": 26, + "sig": "8B D3 48 8B CE E8 ?? ?? ?? ?? 48 85 C0 74 26 48 8B 48 10 48 85 C9 74 1D 33 D2 E8" + }, + { + "offset": 26, + "sig": "8B D7 48 8B CE E8 ?? ?? ?? ?? 48 85 C0 74 26 48 8B 48 10 48 85 C9 74 1D 33 D2 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 74 42 48 8B 53 70" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 88 47 28 48 8B CB E8 ?? ?? ?? ?? 33 D2 89 47 4C" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CD 0F B6 D8 E8 ?? ?? ?? ?? 48 C7 44 24 48 00 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 88 47 48 48 8B CE" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 75 0E 45 33 C0 49 8B D6 48 8B CB" + }, + { + "offset": 16, + "sig": "33 D2 E8 ?? ?? ?? ?? 33 D2 48 89 43 38 48 8B CF E8" + }, + { + "offset": 18, + "sig": "48 8B 8B 98 01 00 00 48 85 C9 0F 84 D0 00 00 00 33 D2 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 88 45 3D" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 74 29 48 8B 4B 18 48 85 C9 0F 84 C5 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 74 12 48 8B 4B 18 48 85 C9 74 44" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 74 15 48 8B 4B 18 48 85 C9 74 73" + } + ] + }, + "Formula_CalcAttackResult": { + "signatures": [ + "E8 ?? ?? ?? ?? 48 89 74 24 38 48 8D 4C 24 40", + "48 89 74 24 38 48 8D 4C 24 40", + "48 8D 4C 24 40 48 89 4C 24 30 44 8B C8", + "48 89 4C 24 28 49 8B D6 48 8D 4C 24 4C", + "49 8B D6 48 8D 4C 24 4C", + "48 8D 4C 24 4C 48 89 4C 24 20", + "48 89 4C 24 20 33 C9 E8 ?? ?? ?? ?? 33 D2 48 8B CF", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 0F 28 F0 F6 81 0A 01 00 00 01 74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? F3 44 0F 10 1D", + "48 8B 0D ?? ?? ?? ?? 0F 28 F0 F6 81 0A 01 00 00 01 74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? F3 44 0F 10 1D", + "0F 28 F0 F6 81 0A 01 00 00 01 74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? F3 44 0F 10 1D", + "F6 81 0A 01 00 00 01 74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? F3 44 0F 10 1D", + "74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? F3 44 0F 10 1D", + "39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? F3 44 0F 10 1D", + "75 05 E8 ?? ?? ?? ?? F3 44 0F 10 1D ?? ?? ?? ?? 45 33 C0", + "E8 ?? ?? ?? ?? F3 44 0F 10 1D ?? ?? ?? ?? 45 33 C0", + "F3 44 0F 10 1D ?? ?? ?? ?? 45 33 C0", + "45 33 C0 41 0F 28 CB 33 C9 F3 0F 5C CE", + "41 0F 28 CB 33 C9 F3 0F 5C CE", + "33 C9 F3 0F 5C CE E8 ?? ?? ?? ?? 33 D2", + "0F 28 F0 E8 ?? ?? ?? ?? F3 41 0F 59 F1" + ], + "xref": [] + }, + "GameManager_Update": { + "signatures": [ + "E8 ?? ?? ?? ?? 3B 43 2C 7E 09", + "3B 43 2C 7E 09", + "7E 09 33 D2 33 C9", + "33 D2 33 C9 E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 4B 20", + "33 C9 E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 4B 20", + "E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 4B 20 48 85 C9 74 10", + "33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 4B 20 48 85 C9 74 10", + "48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 4B 20 48 85 C9 74 10", + "E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 4B 20 48 85 C9 74 10", + "33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 4B 20 48 85 C9 74 10 48 8B 01 48 8B 90 78 01 00 00", + "48 8B CB E8 ?? ?? ?? ?? 48 8B 4B 20 48 85 C9 74 10 48 8B 01 48 8B 90 78 01 00 00", + "E8 ?? ?? ?? ?? 48 8B 4B 20 48 85 C9 74 10 48 8B 01 48 8B 90 78 01 00 00", + "48 8B 4B 20 48 85 C9 74 10 48 8B 01 48 8B 90 78 01 00 00", + "48 85 C9 74 10 48 8B 01 48 8B 90 78 01 00 00 FF 90 ?? ?? ?? ?? 33 D2 48 8B CB 48 83 C4 20", + "74 10 48 8B 01 48 8B 90 78 01 00 00 FF 90 ?? ?? ?? ?? 33 D2 48 8B CB 48 83 C4 20" + ], + "xref": [] + }, + "HumanoidMoveFSM_CheckSprintCooldown": { + "signatures": [ + "41 FF 90 ?? ?? ?? ?? 84 C0 74 10 80 BB 09 02 00 00 00", + "84 C0 74 10 80 BB 09 02 00 00 00", + "74 10 80 BB 09 02 00 00 00", + "80 BB 09 02 00 00 00 0F 94 C0 48 83 C4 20 5B C3 B0 01" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 00 01 00 00 48 8B 43 68" + } + ] + }, + "HumanoidMoveFSM_LateTick": { + "signatures": [ + "48 8B 01 48 8B 90 78 04 00 00 FF 90 ?? ?? ?? ?? 84 C0", + "48 8B 90 78 04 00 00 FF 90 ?? ?? ?? ?? 84 C0", + "0F 84 7B 1E 00 00", + "0F 84 8E 1F 00 00", + "33 D2 48 8B C8 E8 ?? ?? ?? ?? F3 41 0F 59 C0 F3 0F 5C F0", + "48 8B C8 E8 ?? ?? ?? ?? F3 41 0F 59 C0 F3 0F 5C F0", + "E8 ?? ?? ?? ?? F3 41 0F 59 C0 F3 0F 5C F0", + "0F 84 17 1A 00 00", + "45 33 C0 8B D0 48 8B CB E8 ?? ?? ?? ?? 48 8B 4E 68", + "4C 8B B6 80 00 00 00 F6 81 0A 01 00 00 01", + "4D 8B C6 48 8D 55 90", + "48 8D 55 90 33 C9 0F 29 4D 90 0F 29 55 A0", + "33 C9 0F 29 4D 90 0F 29 55 A0", + "0F 29 4D 90 0F 29 55 A0 89 45 B0", + "0F 29 55 A0 89 45 B0", + "4C 89 6C 24 28 0F 28 DE 45 8B C7", + "0F 28 DE 45 8B C7 F3 0F 11 44 24 20", + "45 8B C7 F3 0F 11 44 24 20 41 8B D4", + "F3 0F 11 44 24 20 41 8B D4", + "48 85 C9 0F 84 C9 01 00 00 33 D2 E8 ?? ?? ?? ?? 84 C0 0F 85 BA 01 00 00" + ], + "xref": [] + }, + "InLevelCutScenePageContext_OnFreeClick": { + "signatures": [], + "xref": [] + }, + "InLevelCutScenePageContext_UpdateView": { + "signatures": [], + "xref": [] + }, + "InLevelMapPageContext_OnMapClicked": { + "signatures": [ + "48 89 9C 24 40 01 00 00 33 D2 0F 29 B4 24 10 01 00 00", + "33 D2 0F 29 B4 24 10 01 00 00 E8", + "0F 29 B4 24 10 01 00 00 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F2 0F 10 74 24 38", + "48 8B 0D ?? ?? ?? ?? 48 8B D8 F2 0F 10 74 24 38", + "48 8B D8 F2 0F 10 74 24 38 F6 81 0A 01 00 00 01", + "F2 0F 10 74 24 38 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15", + "48 8B C8 44 0F 29 94 24 D0 00 00 00", + "48 85 DB 74 0E 48 8B 05 ?? ?? ?? ?? 48 39 03 48 0F 44 D3 48 8D 45 58", + "74 0E 48 8B 05 ?? ?? ?? ?? 48 39 03 48 0F 44 D3 48 8D 45 58", + "48 8B 05 ?? ?? ?? ?? 48 39 03 48 0F 44 D3 48 8D 45 58", + "48 39 03 48 0F 44 D3 48 8D 45 58", + "48 0F 44 D3 48 8D 45 58", + "44 0F 29 9C 24 C0 00 00 00 48 8D 4D 80", + "48 8D 4D 80 45 33 C0 44 0F 29 B4 24 90 00 00 00", + "45 33 C0 44 0F 29 B4 24 90 00 00 00", + "44 0F 29 B4 24 90 00 00 00 E8", + "44 0F 28 F0 F3 44 0F 10 5D 5C", + "F3 44 0F 10 5D 5C", + "45 33 C0 44 0F 29 AC 24 A0 00 00 00" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 28 74 24 30 B0 01 48 8B 74 24 50" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 7C 24 58 B0 01 48 83 C4 40 5B C3 B0 01" + } + ] + }, + "InLevelMapPageContext_OnMarkClicked": { + "signatures": [ + "48 8B 15 ?? ?? ?? ?? 48 89 9C 24 80 00 00 00 48 89 BC 24 88 00 00 00 4C 89 B4 24 90 00 00 00", + "48 89 9C 24 80 00 00 00 48 89 BC 24 88 00 00 00 4C 89 B4 24 90 00 00 00 E8 ?? ?? ?? ?? 83 F8 01", + "48 89 BC 24 88 00 00 00 4C 89 B4 24 90 00 00 00 E8 ?? ?? ?? ?? 83 F8 01", + "4C 89 B4 24 90 00 00 00 E8 ?? ?? ?? ?? 83 F8 01", + "48 8B 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 F8 01 75 53", + "E8 ?? ?? ?? ?? 83 F8 01 75 53", + "4C 8B 05 ?? ?? ?? ?? 33 D2 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C5", + "33 D2 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C5", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C5 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 13", + "48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C5 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 13", + "48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C5 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 13", + "F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C5 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 13", + "74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C5 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 13", + "83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C5 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 13", + "75 05 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C5 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 13", + "E8 ?? ?? ?? ?? 45 33 C9 4C 8B C5 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 13", + "45 33 C9 4C 8B C5 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 13", + "4C 8B C5 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 13", + "48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 13 45 33 C0", + "33 C9 E8 ?? ?? ?? ?? 84 C0 75 13 45 33 C0 48 8B D5" + ], + "xref": [] + }, + "ItemModule_PickItem": { + "signatures": [ + "83 BC 24 88 00 00 00 00 0F 84 CA 02 00 00", + "8B 94 24 88 00 00 00 45 33 C0 48 89 9C 24 80 00 00 00", + "45 33 C0 48 89 9C 24 80 00 00 00 48 8B C8 48 89 B4 24 90 00 00 00", + "48 89 9C 24 80 00 00 00 48 8B C8 48 89 B4 24 90 00 00 00", + "48 8B C8 48 89 B4 24 90 00 00 00 48 89 7C 24 68", + "48 89 B4 24 90 00 00 00 48 89 7C 24 68 E8", + "48 89 7C 24 68 E8 ?? ?? ?? ?? 48 8B F0", + "E8 ?? ?? ?? ?? 48 8B F0 48 85 C0 0F 84 0D 04 00 00 48 8B 05", + "48 8B F0 48 85 C0 0F 84 0D 04 00 00 48 8B 05", + "48 85 C0 0F 84 0D 04 00 00 48 8B 05", + "0F 84 0D 04 00 00 48 8B 05 ?? ?? ?? ?? F6 80 0A 01 00 00 01 74 18 83 B8 BC 00 00 00 00", + "80 79 1A 00 0F 85 23 02 00 00", + "0F 85 23 02 00 00 4C 89 74 24 58", + "4C 89 74 24 58 4C 8B 05", + "4C 8B 05 ?? ?? ?? ?? BA 00 50 01 01 48 8B CE E8 ?? ?? ?? ?? 4C 8B F0", + "BA 00 50 01 01 48 8B CE E8 ?? ?? ?? ?? 4C 8B F0", + "48 8B CE E8 ?? ?? ?? ?? 4C 8B F0 48 85 C0 0F 84 DE 01 00 00", + "E8 ?? ?? ?? ?? 4C 8B F0 48 85 C0 0F 84 DE 01 00 00 48 8B 15", + "4C 8B F0 48 85 C0 0F 84 DE 01 00 00 48 8B 15", + "48 85 C0 0F 84 DE 01 00 00 48 8B 15 ?? ?? ?? ?? 33 C9" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? EB 10 33 D2 E8 ?? ?? ?? ?? 33 C0 48 89 83 C8 01 00 00" + } + ] + }, + "KcpClient_TryDequeueEvent": { + "signatures": [ + "48 8B 53 48 45 33 C9 45 33 C0 33 C9 E8 ?? ?? ?? ?? 84 C0 75 21", + "45 33 C9 45 33 C0 33 C9 E8 ?? ?? ?? ?? 84 C0 75 21 48 8B 53 48", + "45 33 C0 33 C9 E8 ?? ?? ?? ?? 84 C0 75 21 48 8B 53 48", + "33 C9 E8 ?? ?? ?? ?? 84 C0 75 21 48 8B 53 48", + "E8 ?? ?? ?? ?? 84 C0 75 21 48 8B 53 48", + "84 C0 75 21 48 8B 53 48", + "75 21 48 8B 53 48", + "48 8B 53 48 45 33 C9 4C 8B C7 33 C9 E8", + "45 33 C9 4C 8B C7 33 C9 E8 ?? ?? ?? ?? 85 C0 0F 94 C0", + "4C 8B C7 33 C9 E8 ?? ?? ?? ?? 85 C0 0F 94 C0" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 6C 0E 00 00" + } + ] + }, + "KcpNative_kcp_client_send_packet": { + "signatures": [ + "48 89 5C 24 08 57 48 83 EC 50 48 8B 05 ?? ?? ?? ?? 49 8B D8 48 8B FA 48 85 C0 75 5D 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 28 09 00 00 00", + "57 48 83 EC 50 48 8B 05 ?? ?? ?? ?? 49 8B D8 48 8B FA 48 85 C0 75 5D 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 28 09 00 00 00", + "48 83 EC 50 48 8B 05 ?? ?? ?? ?? 49 8B D8 48 8B FA 48 85 C0 75 5D 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 28 09 00 00 00", + "48 8B 05 ?? ?? ?? ?? 49 8B D8 48 8B FA 48 85 C0 75 5D 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 28 09 00 00 00", + "49 8B D8 48 8B FA 48 85 C0 75 5D 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 28 09 00 00 00", + "48 8B FA 48 85 C0 75 5D 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 28 09 00 00 00 48 89 44 24 20 48 8D 4C 24 20 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 38 16 00 00 00", + "48 85 C0 75 5D 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 28 09 00 00 00 48 89 44 24 20 48 8D 4C 24 20 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 38 16 00 00 00", + "75 5D 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 28 09 00 00 00 48 89 44 24 20 48 8D 4C 24 20 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 38 16 00 00 00", + "48 8D 05 ?? ?? ?? ?? 48 C7 44 24 28 09 00 00 00 48 89 44 24 20 48 8D 4C 24 20 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 38 16 00 00 00", + "48 C7 44 24 28 09 00 00 00 48 89 44 24 20 48 8D 4C 24 20 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 38 16 00 00 00", + "48 89 44 24 20 48 8D 4C 24 20 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 38 16 00 00 00 48 89 44 24 30 C7 44 24 40 01 00 00 00 C7 44 24 44 01 00 00 00 C7 44 24 48 10 00 00 00 C6 44 24 4C 00 E8 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 85 C0 74 13", + "48 8D 4C 24 20 48 8D 05 ?? ?? ?? ?? 48 C7 44 24 38 16 00 00 00 48 89 44 24 30 C7 44 24 40 01 00 00 00 C7 44 24 44 01 00 00 00 C7 44 24 48 10 00 00 00 C6 44 24 4C 00 E8 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 85 C0 74 13", + "48 8D 05 ?? ?? ?? ?? 48 C7 44 24 38 16 00 00 00 48 89 44 24 30 C7 44 24 40 01 00 00 00 C7 44 24 44 01 00 00 00 C7 44 24 48 10 00 00 00 C6 44 24 4C 00 E8 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 85 C0 74 13", + "48 C7 44 24 38 16 00 00 00 48 89 44 24 30 C7 44 24 40 01 00 00 00 C7 44 24 44 01 00 00 00 C7 44 24 48 10 00 00 00 C6 44 24 4C 00 E8 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 85 C0 74 13" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 49 8B 4F 50 48 85 C9 74 7E" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4E 50 48 85 C9 74 2B" + } + ] + }, + "LCAvatarCombat_IsEnergyMax": { + "signatures": [ + "48 8B 0D ?? ?? ?? ?? 0F 29 74 24 30 0F 10 70 40 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "0F 29 74 24 30 0F 10 70 40 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "0F 10 70 40 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "45 33 C0 66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "66 0F 7F 74 24 20 48 8D 54 24 20 33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "48 8D 54 24 20 33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "33 C9 E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F", + "E8 ?? ?? ?? ?? 0F 57 C9 0F 2E C1 7A 0F 75 0D 32 C0", + "0F 57 C9 0F 2E C1 7A 0F 75 0D 32 C0", + "0F 2E C1 7A 0F 75 0D 32 C0", + "7A 0F 75 0D 32 C0 0F 28 74 24 30 48 83 C4 40 5B C3 33 D2", + "75 0D 32 C0 0F 28 74 24 30 48 83 C4 40 5B C3 33 D2", + "32 C0 0F 28 74 24 30 48 83 C4 40 5B C3 33 D2", + "48 8B CB E8 ?? ?? ?? ?? 48 85 C0 0F 84 CD 00 00 00 48 8B 0D", + "0F 10 48 40 45 33 C0 48 8D 54 24 20 33 C9 0F 29 4C 24 20 E8 ?? ?? ?? ?? 33 C0" + ], + "xref": [ + { + "offset": 9, + "sig": "3B F8 75 12 33 D2 48 8B CB E8" + } + ] + }, + "LCAvatarCombat_IsSkillInCD_1": { + "signatures": [ + "48 85 DB 75 0D 32 C0 48 8B 5C 24 30 48 83 C4 20 5F C3 48 8B 03", + "75 0D 32 C0 48 8B 5C 24 30 48 83 C4 20 5F C3 48 8B 03", + "32 C0 48 8B 5C 24 30 48 83 C4 20 5F C3 48 8B 03", + "48 8B 5C 24 30 48 83 C4 20 5F C3 48 8B 03 48 8B CB 48 8B 90 C8 01 00 00", + "48 83 C4 20 5F C3 48 8B 03 48 8B CB 48 8B 90 C8 01 00 00", + "5F C3 48 8B 03 48 8B CB 48 8B 90 C8 01 00 00", + "C3 48 8B 03 48 8B CB 48 8B 90 C8 01 00 00 48 8B 5C 24 30" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 54 24 30 84 C0 48 8B CB" + } + ] + }, + "LCBaseCombat_DoHitEntity": { + "signatures": [ + "45 33 C0 48 89 5C 24 50 8B D5", + "48 89 5C 24 50 8B D5", + "8B D5 48 8B C8 E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 48 01 00 00", + "48 8B C8 E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 48 01 00 00 45 33 C0", + "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 48 01 00 00 45 33 C0 B2 01", + "48 8B D8 48 85 C0 0F 84 48 01 00 00 45 33 C0 B2 01", + "48 85 C0 0F 84 48 01 00 00 45 33 C0 B2 01 48 8B C8 E8 ?? ?? ?? ?? 84 C0", + "0F 84 48 01 00 00 45 33 C0 B2 01 48 8B C8 E8 ?? ?? ?? ?? 84 C0", + "45 33 C0 B2 01 48 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 84 33 01 00 00", + "B2 01 48 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 84 33 01 00 00", + "48 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 84 33 01 00 00 48 85 F6", + "E8 ?? ?? ?? ?? 84 C0 0F 84 33 01 00 00 48 85 F6", + "84 C0 0F 84 33 01 00 00 48 85 F6", + "48 85 F6 0F 84 68 02 00 00 33 D2", + "33 D2 4C 89 74 24 58 48 8B CE E8 ?? ?? ?? ?? 84 C0", + "4C 89 74 24 58 48 8B CE E8 ?? ?? ?? ?? 84 C0", + "48 8B CE E8 ?? ?? ?? ?? 84 C0 74 58 33 D2 48 8B CF", + "E8 ?? ?? ?? ?? 84 C0 74 58 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D", + "84 C0 74 58 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D", + "74 58 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B F0" + ], + "xref": [] + }, + "LCBaseCombat_FireBeingHitEvent": { + "signatures": [ + "48 8B 15 ?? ?? ?? ?? 33 C9 48 89 5C 24 40 4C 89 74 24 48", + "33 C9 48 89 5C 24 40 4C 89 74 24 48", + "48 89 5C 24 40 4C 89 74 24 48 E8", + "4C 89 74 24 48 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 44 8B 77 14", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 44 8B 77 14", + "48 8B 0D ?? ?? ?? ?? 48 8B D8 44 8B 77 14", + "48 8B D8 44 8B 77 14", + "44 8B 77 14 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2", + "E8 ?? ?? ?? ?? 48 85 DB 0F 84 DB 00 00 00 48 C7 44 24 28 00 00 00 00", + "48 85 DB 0F 84 DB 00 00 00 48 C7 44 24 28 00 00 00 00", + "0F 84 DB 00 00 00 48 C7 44 24 28 00 00 00 00 4C 8B CE", + "48 C7 44 24 28 00 00 00 00 4C 8B CE 45 8B C6 89 44 24 20", + "4C 8B CE 45 8B C6 89 44 24 20 8B D5", + "45 8B C6 89 44 24 20 8B D5 48 8B CB E8 ?? ?? ?? ?? 33 D2", + "89 44 24 20 8B D5 48 8B CB E8 ?? ?? ?? ?? 33 D2", + "8B D5 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 85 C0", + "45 33 C9 45 33 C0 48 8B D3 48 8B C8 48 8B 5C 24 40 4C 8B 74 24 48", + "45 33 C0 48 8B D3 48 8B C8 48 8B 5C 24 40 4C 8B 74 24 48", + "48 8B D3 48 8B C8 48 8B 5C 24 40 4C 8B 74 24 48" + ], + "xref": [ + { + "offset": 18, + "sig": "33 C9 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C6 8B D5 48 8B CF E8" + } + ] + }, + "LCSelectPickup_AddInteeBtnByID": { + "signatures": [ + "75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 E2 05 00 00", + "E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 E2 05 00 00", + "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 E2 05 00 00", + "45 33 C0 41 8B D4 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0", + "33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 15 33 D2 48 8B C8 E8 ?? ?? ?? ?? 85 C0", + "E8 ?? ?? ?? ?? 48 85 C0 74 15 33 D2 48 8B C8 E8 ?? ?? ?? ?? 85 C0", + "48 85 C0 74 15 33 D2 48 8B C8 E8 ?? ?? ?? ?? 85 C0", + "74 15 33 D2 48 8B C8 E8 ?? ?? ?? ?? 85 C0", + "48 8B 0D ?? ?? ?? ?? 8B 7A 58", + "8B 7A 58 F6 81 0A 01 00 00 01", + "75 05 E8 ?? ?? ?? ?? 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 0F 84 49 01 00 00", + "E8 ?? ?? ?? ?? 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 0F 84 49 01 00 00", + "45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 0F 84 49 01 00 00 4C 8B 05", + "48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 0F 84 49 01 00 00 4C 8B 05", + "33 C9 E8 ?? ?? ?? ?? 84 C0 0F 84 49 01 00 00 4C 8B 05", + "E8 ?? ?? ?? ?? 84 C0 0F 84 49 01 00 00 4C 8B 05 ?? ?? ?? ?? BA 01 50 01 01", + "84 C0 0F 84 49 01 00 00 4C 8B 05 ?? ?? ?? ?? BA 01 50 01 01", + "0F 84 49 01 00 00 4C 8B 05 ?? ?? ?? ?? BA 01 50 01 01", + "4C 8B 05 ?? ?? ?? ?? BA 01 50 01 01 48 8B CB E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 0F 84 29 01 00 00", + "BA 01 50 01 01 48 8B CB E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 0F 84 29 01 00 00" + ], + "xref": [ + { + "offset": 19, + "sig": "48 8B CE E8 ?? ?? ?? ?? EB 0E 45 33 C0 48 8B D7 48 8B CB E8" + } + ] + }, + "LCSelectPickup_IsInPosition": { + "signatures": [], + "xref": [ + { + "offset": 15, + "sig": "0F 84 2A 01 00 00 45 33 C0 48 8B D7 48 8B CB E8" + } + ] + }, + "LCSelectPickup_IsOutPosition": { + "signatures": [], + "xref": [ + { + "offset": 11, + "sig": "74 16 45 33 C0 48 8B D7 48 8B CB E8" + } + ] + }, + "LevelSyncCombatPlugin_RequestSceneEntityMoveReq": { + "signatures": [ + "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 26 01 00 00 45 33 C0", + "48 8B D8 48 85 C0 0F 84 26 01 00 00 45 33 C0", + "48 85 C0 0F 84 26 01 00 00 45 33 C0 8B D5", + "0F 84 26 01 00 00 45 33 C0 8B D5", + "45 33 C0 8B D5 48 8B C8 E8 ?? ?? ?? ?? 8B 54 24 70", + "8B D5 48 8B C8 E8 ?? ?? ?? ?? 8B 54 24 70", + "48 8B C8 E8 ?? ?? ?? ?? 8B 54 24 70 45 33 C0 48 8B CB E8 ?? ?? ?? ?? 45 33 C0", + "E8 ?? ?? ?? ?? 8B 54 24 70 45 33 C0 48 8B CB E8 ?? ?? ?? ?? 45 33 C0", + "8B 54 24 70 45 33 C0 48 8B CB E8 ?? ?? ?? ?? 45 33 C0 40 0F B6 D6", + "45 33 C0 48 8B CB E8 ?? ?? ?? ?? 45 33 C0 40 0F B6 D6", + "48 8B CB E8 ?? ?? ?? ?? 45 33 C0 40 0F B6 D6 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D", + "E8 ?? ?? ?? ?? 45 33 C0 40 0F B6 D6 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D", + "45 33 C0 40 0F B6 D6 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01", + "40 0F B6 D6 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01", + "48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 45 33 C0 8B D0 48 8B CB E8 ?? ?? ?? ?? 33 D2", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 45 33 C0 8B D0 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB", + "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 45 33 C0 8B D0 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB", + "F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 45 33 C0 8B D0 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB", + "74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 45 33 C0 8B D0 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB", + "83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 45 33 C0 8B D0 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB" + ], + "xref": [ + { + "offset": 21, + "sig": "44 0F B6 8B E0 00 00 00 48 C7 44 24 28 00 00 00 00 89 44 24 20 E8" + } + ] + }, + "LevelSyncCombatPlugin_SendFaceToDir": { + "signatures": [ + "80 79 1A 00 0F 84 CF 00 00 00", + "0F 84 CF 00 00 00 48 89 7C 24 50 48 8B 0D", + "48 85 C0 0F 84 47 01 00 00 45 33 C0 8B D6", + "0F 84 47 01 00 00 45 33 C0 8B D6", + "45 33 C0 8B D6 48 8B C8 E8 ?? ?? ?? ?? F2 0F 10 03", + "8B D6 48 8B C8 E8 ?? ?? ?? ?? F2 0F 10 03 33 D2 8B 5B 08 48 8B CF F2 0F 11 44 24 30", + "48 8B C8 E8 ?? ?? ?? ?? F2 0F 10 03 33 D2 8B 5B 08 48 8B CF F2 0F 11 44 24 30", + "E8 ?? ?? ?? ?? F2 0F 10 03 33 D2 8B 5B 08 48 8B CF F2 0F 11 44 24 30", + "F2 0F 10 03 33 D2 8B 5B 08 48 8B CF F2 0F 11 44 24 30", + "33 D2 8B 5B 08 48 8B CF F2 0F 11 44 24 30", + "8B 5B 08 48 8B CF F2 0F 11 44 24 30", + "48 8B CF F2 0F 11 44 24 30 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? F2 0F 10 44 24 30 48 8D 54 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8B C6 89 5C 24 38 33 C9 E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 4C 8B 0D", + "F2 0F 11 44 24 30 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? F2 0F 10 44 24 30 48 8D 54 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8B C6 89 5C 24 38 33 C9 E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 4C 8B 0D", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? F2 0F 10 44 24 30 48 8D 54 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8B C6 89 5C 24 38 33 C9 E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 4C 8B 0D", + "48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? F2 0F 10 44 24 30 48 8D 54 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8B C6 89 5C 24 38 33 C9 E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 4C 8B 0D", + "48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? F2 0F 10 44 24 30 48 8D 54 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8B C6 89 5C 24 38 33 C9 E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 4C 8B 0D", + "F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? F2 0F 10 44 24 30 48 8D 54 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8B C6 89 5C 24 38 33 C9 E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 4C 8B 0D", + "74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? F2 0F 10 44 24 30 48 8D 54 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8B C6 89 5C 24 38 33 C9 E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 4C 8B 0D", + "83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? F2 0F 10 44 24 30 48 8D 54 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8B C6 89 5C 24 38 33 C9 E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 4C 8B 0D", + "75 05 E8 ?? ?? ?? ?? F2 0F 10 44 24 30 48 8D 54 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8B C6 89 5C 24 38 33 C9 E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 4C 8B 0D" + ], + "xref": [ + { + "offset": 15, + "sig": "89 4C 24 38 8B D6 48 8B C8 F2 0F 11 44 24 30 E8" + } + ] + }, + "LoadingManager_NeedTransByServer": { + "signatures": [ + "33 D2 4C 89 B4 24 C0 00 00 00 48 8B C8 E8 ?? ?? ?? ?? 48 8B 0D", + "4C 89 B4 24 C0 00 00 00 48 8B C8 E8 ?? ?? ?? ?? 48 8B 0D", + "48 8B C8 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 44 0F B6 F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 44 0F B6 F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15", + "48 8B 0D ?? ?? ?? ?? 44 0F B6 F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15", + "44 0F B6 F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15", + "48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 0F 84 F5 01 00 00 4C 8B 08", + "E8 ?? ?? ?? ?? 48 85 C0 0F 84 F5 01 00 00 4C 8B 08 48 8D 4D F7", + "48 85 C0 0F 84 F5 01 00 00 4C 8B 08 48 8D 4D F7", + "0F 84 F5 01 00 00 4C 8B 08 48 8D 4D F7", + "4C 8B 08 48 8D 4D F7 4C 89 A4 24 B0 00 00 00", + "48 8D 4D F7 4C 89 A4 24 B0 00 00 00", + "4C 89 A4 24 B0 00 00 00 48 8B D0", + "48 8B D0 4C 89 AC 24 B8 00 00 00 4C 89 BC 24 80 00 00 00", + "4C 89 AC 24 B8 00 00 00 4C 89 BC 24 80 00 00 00", + "0F 29 74 24 70 0F 29 7C 24 60 44 0F 29 44 24 50 41 FF 91", + "0F 29 7C 24 60 44 0F 29 44 24 50 41 FF 91", + "44 0F 29 44 24 50 41 FF 91", + "41 FF 91 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 33", + "48 8B 0D ?? ?? ?? ?? F2 0F 10 33 44 8B 7B 08 F2 44 0F 10 00" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 85 A3 00 00 00 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 1D" + } + ] + }, + "LoadingManager_PerformPlayerTransmit": { + "signatures": [ + "8B 4F 08 48 8D 54 24 40 F2 0F 10 07 44 8B CD", + "48 8D 54 24 40 F2 0F 10 07 44 8B CD", + "F2 0F 10 07 44 8B CD 44 8B 84 24 80 00 00 00", + "44 8B CD 44 8B 84 24 80 00 00 00", + "44 8B 84 24 80 00 00 00 89 4C 24 48", + "89 4C 24 48 8B 8C 24 88 00 00 00", + "8B 8C 24 88 00 00 00 48 C7 44 24 38 00 00 00 00 89 4C 24 30 48 8B C8", + "48 C7 44 24 38 00 00 00 00 89 4C 24 30 48 8B C8", + "89 4C 24 30 48 8B C8 F2 0F 11 44 24 40 0F 57 C0", + "48 8B C8 F2 0F 11 44 24 40 0F 57 C0", + "F2 0F 11 44 24 40 0F 57 C0 F3 0F 11 44 24 28", + "0F 57 C0 F3 0F 11 44 24 28 89 74 24 20", + "F3 0F 11 44 24 28 89 74 24 20 E8 ?? ?? ?? ?? 48 8B 0D", + "48 8B D3 48 8B C8 E8 ?? ?? ?? ?? E9 A5 00 00 00" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CB 48 83 C4 50" + }, + { + "offset": 13, + "sig": "89 4C 24 20 48 8B CB F2 0F 11 44 24 40 E8" + } + ] + }, + "LoadingManager_RequestSceneTransToPoint": { + "signatures": [ + "49 89 76 10 49 89 5E 18", + "49 89 5E 18 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01", + "33 FF 48 8D 4D EF 45 8B CC", + "48 8D 4D EF 45 8B CC", + "45 8B CC 48 89 7C 24 20 45 8B C7 48 8B D0", + "48 89 7C 24 20 45 8B C7 48 8B D0", + "45 8B C7 48 8B D0 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 0F 10 00", + "48 8B D0 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 0F 10 00 F6 81 0A 01 00 00 01 0F 10 48 10 0F 11 45 CF", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 0F 10 00 F6 81 0A 01 00 00 01 0F 10 48 10 0F 11 45 CF 0F 11 4D DF 74 0D 39 B9 BC 00 00 00", + "48 8B 0D ?? ?? ?? ?? 0F 10 00 F6 81 0A 01 00 00 01 0F 10 48 10 0F 11 45 CF 0F 11 4D DF 74 0D 39 B9 BC 00 00 00", + "0F 10 00 F6 81 0A 01 00 00 01 0F 10 48 10 0F 11 45 CF 0F 11 4D DF 74 0D 39 B9 BC 00 00 00", + "F6 81 0A 01 00 00 01 0F 10 48 10 0F 11 45 CF 0F 11 4D DF 74 0D 39 B9 BC 00 00 00", + "0F 10 48 10 0F 11 45 CF 0F 11 4D DF 74 0D 39 B9 BC 00 00 00", + "0F 11 45 CF 0F 11 4D DF 74 0D 39 B9 BC 00 00 00", + "0F 11 4D DF 74 0D 39 B9 BC 00 00 00", + "33 D2 4C 89 AC 24 F8 00 00 00 48 8B C8", + "4C 89 AC 24 F8 00 00 00 48 8B C8", + "48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 0F 84 A2 01 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 84 90 01 00 00", + "E8 ?? ?? ?? ?? 48 85 C0 0F 84 A2 01 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 84 90 01 00 00", + "48 85 C0 0F 84 A2 01 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 84 90 01 00 00" + ], + "xref": [ + { + "offset": 11, + "sig": "45 33 C9 48 89 4C 24 20 48 8B CB E8" + }, + { + "offset": 15, + "sig": "8B 53 20 48 8B C8 48 C7 44 24 20 00 00 00 00 E8" + }, + { + "offset": 12, + "sig": "4C 8B CB 45 8B C5 41 8B D4 49 8B CE E8" + } + ] + }, + "LoadingManager_SceneGoto": { + "signatures": [ + "48 89 9C 24 A0 00 00 00 33 D2 49 8B CE 48 89 7C 24 78 E8 ?? ?? ?? ?? 45 33 C9", + "33 D2 49 8B CE 48 89 7C 24 78 E8 ?? ?? ?? ?? 45 33 C9", + "49 8B CE 48 89 7C 24 78 E8 ?? ?? ?? ?? 45 33 C9", + "48 89 7C 24 78 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0", + "E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 8B D0 49 8B CC", + "45 33 C9 45 33 C0 8B D0 49 8B CC E8 ?? ?? ?? ?? 48 8B 0D", + "45 33 C0 8B D0 49 8B CC E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8", + "8B D0 49 8B CC E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8", + "49 8B CC E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 D2 49 8B CE", + "48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 D2 49 8B CE", + "48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 D2 49 8B CE", + "45 33 C0 8B D0 48 8B CB E8 ?? ?? ?? ?? 33 D2 49 8B CE E8 ?? ?? ?? ?? 48 8B 0D", + "8B D0 48 8B CB E8 ?? ?? ?? ?? 33 D2 49 8B CE E8 ?? ?? ?? ?? 48 8B 0D", + "48 8B CB E8 ?? ?? ?? ?? 33 D2 49 8B CE E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8", + "E8 ?? ?? ?? ?? 33 D2 49 8B CE E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0", + "33 D2 49 8B CE E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 8B 0D", + "49 8B CE E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 8B 0D", + "33 D2 4C 89 7C 24 70 49 8B CE 48 89 83 98 00 00 00", + "4C 89 7C 24 70 49 8B CE 48 89 83 98 00 00 00" + ], + "xref": [] + }, + "LocalEntityInfoData_GetTargetPos": { + "signatures": [ + "8B 42 3C F2 0F 10 42 34", + "F2 0F 10 42 34 F2 0F 11 01" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 45 BF 33 D2 48 8D 4D CF F2 0F 10 00 8B 40 08 F2 0F 11 45 BF 89 45 C7 E8 ?? ?? ?? ?? 45 33 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 45 E7 33 D2 48 8D 4D F7 F2 0F 10 00 8B 40 08 F2 0F 11 45 E7 89 45 EF E8 ?? ?? ?? ?? 4C 8D 4D E7" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 45 D0 33 D2 48 8D 4D E0 F2 0F 10 00 8B 40 08 F2 0F 11 45 D0 89 45 D8 E8 ?? ?? ?? ?? 48 C7 44 24 28 00 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 45 E0 33 D2 48 8D 4D F0 F2 0F 10 00 8B 40 08 F2 0F 11 45 E0 89 45 E8 E8 ?? ?? ?? ?? 48 85 F6 0F 84 AB 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CF F2 0F 10 30 8B 70 08 E8 ?? ?? ?? ?? 33 D2 48 8B CF 48 8B E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 50 33 D2 48 8D 4C 24 40 F2 0F 10 00 8B 40 08 F2 0F 11 44 24 50 89 44 24 58 E8 ?? ?? ?? ?? E9 34 0B 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 50 33 D2 48 8D 4C 24 40 F2 0F 10 00 8B 40 08 F2 0F 11 44 24 50 89 44 24 58 E8 ?? ?? ?? ?? 45 33 C0 48 8D 4C 24 40 33 D2 F2 0F 10 30 8B 58 08 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 38 F6 81 0A 01 00 00 01 44 8B 68 08" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 F2 0F 11 44 24 50 8B 40 08 4C 8D 44 24 50 45 33 C9 89 44 24 58 33 D2 48 8D 4C 24 40 E8 ?? ?? ?? ?? F2 0F 11 74 24 60" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 40 33 D2 48 8D 4D 90 F2 0F 10 00 8B 40 08 F2 0F 11 44 24 40 89 44 24 48 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 00 F6 81 0A 01 00 00 01 8B 40 08 F2 0F 11 44 24 50 F3 0F 10 44 24 50 F3 0F 10 4C 24 54 F3 0F 11 44 24 60" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 40 33 D2 48 8D 4D 90 F2 0F 10 00 8B 40 08 F2 0F 11 44 24 40 89 44 24 48 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 00 F6 81 0A 01 00 00 01 8B 40 08 F2 0F 11 44 24 60" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 40 33 D2 48 8D 4D 90 F2 0F 10 00 8B 40 08 F2 0F 11 44 24 40 89 44 24 48 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 44 0F 10 08" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 50 33 D2 48 8D 4C 24 40 F2 0F 10 00 8B 40 08 F2 0F 11 44 24 50 89 44 24 58 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 60 33 D2 48 8D 4C 24 40 F2 0F 10 00 8B 40 08 F2 0F 11 44 24 60 89 44 24 68 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 30 33 D2 48 8D 4C 24 70 F2 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8D 4D A0 48 8B D7 F2 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 45 D0 33 D2 48 8D 4D C0 F2 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 F2 0F 11 46 7C" + }, + { + "offset": 151, + "sig": "44 8B 70 08 E8 ?? ?? ?? ?? 48 8D 4C 24 60 45 33 C0 48 8D 89 80 00 00 00 48 8D 54 24 60 0F 10 00 0F 11 41 80 0F 10 48 10 0F 11 49 90 0F 10 40 20 0F 11 41 A0 0F 10 48 30 0F 11 49 B0 0F 10 40 40 0F 11 41 C0 0F 10 48 50 0F 11 49 D0 0F 10 40 60 0F 11 41 E0 0F 10 40 70 0F 11 41 F0 0F 10 88 80 00 00 00 0F 11 09 0F 10 80 90 00 00 00 0F 11 41 10 0F 10 88 A0 00 00 00 0F 11 49 20 0F 10 80 B0 00 00 00 0F 11 41 30 0F 10 88 C0 00 00 00 0F 11 49 40 48 8D 4C 24 50 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8D 4C 24 40 48 8B D5 F2 0F 10 00" + }, + { + "offset": 126, + "sig": "48 8D 55 20 0F 10 00 0F 11 41 80 0F 10 48 10 0F 11 49 90 0F 10 40 20 0F 11 41 A0 0F 10 48 30 0F 11 49 B0 0F 10 40 40 0F 11 41 C0 0F 10 48 50 0F 11 49 D0 0F 10 40 60 0F 11 41 E0 0F 10 48 70 0F 11 49 F0 0F 10 80 80 00 00 00 0F 11 01 0F 10 88 90 00 00 00 0F 11 49 10 0F 10 80 A0 00 00 00 0F 11 41 20 0F 10 88 B0 00 00 00 0F 11 49 30 0F 10 80 C0 00 00 00 0F 11 41 40 48 8D 4C 24 40 E8" + } + ] + }, + "LuaEnv_DoString": { + "signatures": [ + "48 8B C4 4C 89 40 18 57 41 54 41 55 41 56 41 57 48 83 EC 60 48 C7 40 C0 FE FF FF FF 48 89 58 10 48 89 70 20 4D 8B F9", + "4C 89 40 18 57 41 54 41 55 41 56 41 57 48 83 EC 60 48 C7 40 C0 FE FF FF FF 48 89 58 10 48 89 70 20 4D 8B F9", + "57 41 54 41 55 41 56 41 57 48 83 EC 60 48 C7 40 C0 FE FF FF FF 48 89 58 10 48 89 70 20 4D 8B F9", + "41 54 41 55 41 56 41 57 48 83 EC 60 48 C7 40 C0 FE FF FF FF 48 89 58 10 48 89 70 20 4D 8B F9", + "41 55 41 56 41 57 48 83 EC 60 48 C7 40 C0 FE FF FF FF 48 89 58 10 48 89 70 20 4D 8B F9", + "41 56 41 57 48 83 EC 60 48 C7 40 C0 FE FF FF FF 48 89 58 10 48 89 70 20 4D 8B F9", + "41 57 48 83 EC 60 48 C7 40 C0 FE FF FF FF 48 89 58 10 48 89 70 20 4D 8B F9", + "48 83 EC 60 48 C7 40 C0 FE FF FF FF 48 89 58 10 48 89 70 20 4D 8B F9", + "48 C7 40 C0 FE FF FF FF 48 89 58 10 48 89 70 20 4D 8B F9 4C 8B EA", + "48 89 58 10 48 89 70 20 4D 8B F9 4C 8B EA 48 8B F9", + "48 89 70 20 4D 8B F9 4C 8B EA 48 8B F9", + "4D 8B F9 4C 8B EA 48 8B F9", + "4C 8B EA 48 8B F9 33 F6 48 89 74 24 38", + "48 8B F9 33 F6 48 89 74 24 38", + "33 F6 48 89 74 24 38 89 B4 24 90 00 00 00", + "48 89 74 24 38 89 B4 24 90 00 00 00", + "89 B4 24 90 00 00 00 4C 8B 61 30", + "4C 8B 61 30 4C 89 64 24 40", + "4C 89 64 24 40 45 33 C0 49 8B D4 33 C9 E8 ?? ?? ?? ?? 90 40 38 35", + "45 33 C0 49 8B D4 33 C9 E8 ?? ?? ?? ?? 90 40 38 35" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 83 00 00 00 8B 48 18" + }, + { + "offset": 13, + "sig": "45 33 C9 4C 8B 05 ?? ?? ?? ?? 48 8B D0 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 03 48 8B 90 78 02 00 00" + }, + { + "offset": 21, + "sig": "48 C7 44 24 20 00 00 00 00 45 33 C9 4C 8B C7 48 8B D0 48 8B CE E8" + }, + { + "offset": 26, + "sig": "4C 8B C7 48 8B CD 48 8B 5C 24 40 48 8B 6C 24 48 48 8B 74 24 50 48 83 C4 30 5F E9" + } + ] + }, + "LuaManager_LoadCustomLuaFile": { + "signatures": [ + "C6 07 01 48 8B 0D ?? ?? ?? ?? 48 8B 33", + "48 8B 0D ?? ?? ?? ?? 48 8B 33 F6 81 0A 01 00 00 01 74 0D", + "48 8B 33 F6 81 0A 01 00 00 01 74 0D 39 A9 BC 00 00 00", + "F6 81 0A 01 00 00 01 74 0D 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 4C 8B 0D ?? ?? ?? ?? 4C 8B C6 48 8B 15 ?? ?? ?? ?? 33 C9 48 89 6C 24 20 E8 ?? ?? ?? ?? 48 89 03", + "74 0D 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 4C 8B 0D ?? ?? ?? ?? 4C 8B C6 48 8B 15 ?? ?? ?? ?? 33 C9 48 89 6C 24 20 E8 ?? ?? ?? ?? 48 89 03", + "39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 4C 8B 0D ?? ?? ?? ?? 4C 8B C6 48 8B 15 ?? ?? ?? ?? 33 C9 48 89 6C 24 20 E8 ?? ?? ?? ?? 48 89 03", + "75 05 E8 ?? ?? ?? ?? 4C 8B 0D ?? ?? ?? ?? 4C 8B C6 48 8B 15 ?? ?? ?? ?? 33 C9 48 89 6C 24 20 E8 ?? ?? ?? ?? 48 89 03", + "E8 ?? ?? ?? ?? 4C 8B 0D ?? ?? ?? ?? 4C 8B C6 48 8B 15 ?? ?? ?? ?? 33 C9 48 89 6C 24 20 E8 ?? ?? ?? ?? 48 89 03", + "4C 8B 0D ?? ?? ?? ?? 4C 8B C6 48 8B 15 ?? ?? ?? ?? 33 C9 48 89 6C 24 20 E8 ?? ?? ?? ?? 48 89 03", + "4C 8B C6 48 8B 15 ?? ?? ?? ?? 33 C9 48 89 6C 24 20 E8 ?? ?? ?? ?? 48 89 03", + "48 8B 15 ?? ?? ?? ?? 33 C9 48 89 6C 24 20 E8 ?? ?? ?? ?? 48 89 03", + "33 C9 48 89 6C 24 20 E8 ?? ?? ?? ?? 48 89 03", + "48 89 6C 24 20 E8 ?? ?? ?? ?? 48 89 03", + "E8 ?? ?? ?? ?? 48 89 03 48 8B F0", + "48 89 03 48 8B F0", + "48 8B F0 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 4C 8B 0D", + "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 4C 8B 0D ?? ?? ?? ?? 4C 8D 44 24 30 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0", + "F6 81 0A 01 00 00 01 74 0D 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 4C 8B 0D ?? ?? ?? ?? 4C 8D 44 24 30 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0", + "74 0D 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 4C 8B 0D ?? ?? ?? ?? 4C 8D 44 24 30 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0", + "39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 4C 8B 0D ?? ?? ?? ?? 4C 8D 44 24 30 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0" + ], + "xref": [] + }, + "LuaShellManager_DoString": { + "signatures": [ + "48 83 7B 10 00 75 13 48 8B 03 48 8B CB 48 8B 90 58 02 00 00 FF 90 ?? ?? ?? ?? 45 33 C0", + "75 13 48 8B 03 48 8B CB 48 8B 90 58 02 00 00 FF 90 ?? ?? ?? ?? 45 33 C0", + "48 8B 03 48 8B CB 48 8B 90 58 02 00 00 FF 90 ?? ?? ?? ?? 45 33 C0 48 8B D7", + "48 8B CB 48 8B 90 58 02 00 00 FF 90 ?? ?? ?? ?? 45 33 C0 48 8B D7", + "48 8B 90 58 02 00 00 FF 90 ?? ?? ?? ?? 45 33 C0 48 8B D7" + ], + "xref": [] + }, + "LuaShellManager_ReportLuaShellResult": { + "signatures": [ + "45 33 C0 48 8B D6 48 8B C8 E8 ?? ?? ?? ?? 45 33 C0 48 8B D7 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D", + "48 8B D6 48 8B C8 E8 ?? ?? ?? ?? 45 33 C0 48 8B D7 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D", + "48 8B C8 E8 ?? ?? ?? ?? 45 33 C0 48 8B D7 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D" + ], + "xref": [] + }, + "Lua_xlua_pushasciistring": { + "signatures": [], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 44 8D 46 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 85 C0 74 1C 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 41 83 C8 FF 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 30 45 33 C9 4C 8B 05 ?? ?? ?? ?? 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D3 33 C9 E8 ?? ?? ?? ?? 4D 85 E4" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D3 33 C9 E8 ?? ?? ?? ?? 4D 85 E4" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 44 8D 46 FE 48 8B D7 33 C9 E8 ?? ?? ?? ?? 85 C0 74 1C 48 8B 4B 18 48 85 C9 74 0E 41 8D 55 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 41 83 C8 FF 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 75 30 45 33 C9 4C 8B 05 ?? ?? ?? ?? 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 4B 18 48 85 C9 74 0E 41 8D 55 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4D 8B C7 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4C 8B 84 24 B0 00 00 00 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 44 0F B6 84 24 B8 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4B 18 48 85 C9 74 0E 41 8D 55 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4D 8B C7 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4C 8B 84 24 B0 00 00 00 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 44 0F B6 84 24 B8 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 44 8D 46 FE 48 8B D7 33 C9 E8 ?? ?? ?? ?? 85 C0 74 1C 48 8B 4B 18 48 85 C9 74 0E 41 8D 55 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 41 83 C8 FF 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 75 30 45 33 C9 4C 8B 05 ?? ?? ?? ?? 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 4B 18 48 85 C9 74 0E 41 8D 55 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4D 8B C7 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4C 8B 84 24 B0 00 00 00 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 44 8B 84 24 B8 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4B 18 48 85 C9 74 0E 41 8D 55 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4D 8B C7 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4C 8B 84 24 B0 00 00 00 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 44 8B 84 24 B8 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 44 8D 46 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 85 C0 74 1C 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 41 83 C8 FF 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 30 45 33 C9 4C 8B 05 ?? ?? ?? ?? 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4D 8B C4 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 0F B6 C5" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4D 8B C4 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 0F B6 C5" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 44 8D 47 FE 48 8B D6 33 C9 E8 ?? ?? ?? ?? 85 C0 74 1C 48 8B 4B 18 48 85 C9 74 0E 41 8D 55 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 41 83 C8 FF 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 30 45 33 C9 4C 8B 05 ?? ?? ?? ?? 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 4B 18 48 85 C9 74 0E 41 8D 55 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D6 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D6 33 C9 E8 ?? ?? ?? ?? 45 33 C9" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4B 18 48 85 C9 74 0E 41 8D 55 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D6 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D6 33 C9 E8 ?? ?? ?? ?? 45 33 C9" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 44 8D 46 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 85 C0 74 1C 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 41 83 C8 FF 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 30 45 33 C9 4C 8B 05 ?? ?? ?? ?? 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4D 8B C4 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 89 74 24 28 44 89 74 24 20 41 B9 01 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4D 8B C4 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 89 74 24 28 44 89 74 24 20 41 B9 01 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 44 8D 46 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 85 C0 74 1C 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 41 83 C8 FF 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 30 45 33 C9 4C 8B 05 ?? ?? ?? ?? 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4D 8B C4 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8B C5" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4D 8B C4 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8B C5" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 45 8B C7 48 8B D6 33 C9 E8 ?? ?? ?? ?? 45 33 C9 41 83 C8 FF 48 8B D6 33 C9 E8 ?? ?? ?? ?? 45 33 C9" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 45 8B C7 48 8B D6 33 C9 E8 ?? ?? ?? ?? 45 33 C9 41 83 C8 FF 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 57 D2 F3 0F 5A D6 45 33 C9 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 44 8D 47 FD" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 44 8D 46 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 85 C0 74 1C 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 41 83 C8 FF 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 75 30 45 33 C9 4C 8B 05 ?? ?? ?? ?? 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 89 74 24 28 44 89 74 24 20 41 B9 01 00 00 00 45 8B C1 48 8B D3 33 C9 E8 ?? ?? ?? ?? 85 C0 74 1C 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 8D 46 01 45 33 C9 48 8B D3 33 C9 E8 ?? ?? ?? ?? 0F 57 F6" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D3 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 89 74 24 28 44 89 74 24 20 41 B9 01 00 00 00 45 8B C1 48 8B D3 33 C9 E8 ?? ?? ?? ?? 85 C0 74 1C 48 8B 4F 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 8D 46 01 45 33 C9 48 8B D3 33 C9 E8 ?? ?? ?? ?? 0F 57 F6" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 44 8D 46 FE 48 8B D7 33 C9 E8 ?? ?? ?? ?? 85 C0 74 1C 48 8B 4B 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 41 83 C8 FF 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 75 30 45 33 C9 4C 8B 05 ?? ?? ?? ?? 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 4B 18 48 85 C9 74 0E 41 8D 56 FF 45 33 C0 E8 ?? ?? ?? ?? EB 05 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FE 48 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C9 45 8D 41 FD 48 8B D7 33 C9 E8 ?? ?? ?? ?? 4D 85 E4" + } + ] + }, + "Miscs_CheckTargetAttackable": { + "signatures": [ + "48 8B 15 ?? ?? ?? ?? 4C 8B C3 B9 13 00 00 00", + "4C 8B C3 B9 13 00 00 00 E8 ?? ?? ?? ?? 84 C0", + "B9 13 00 00 00 E8 ?? ?? ?? ?? 84 C0", + "48 89 7C 24 30 48 8B 0D ?? ?? ?? ?? 48 8B D3", + "48 8B 0D ?? ?? ?? ?? 48 8B D3 E8 ?? ?? ?? ?? 48 8B F8" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 02 03 00 00 48 85 FF" + }, + { + "offset": 46, + "sig": "66 0F D6 53 38 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C6 48 8B D7 33 C9 E8" + }, + { + "offset": 51, + "sig": "33 D2 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 4D 8B C7 48 8B D3 33 C9 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 83 02 00 00 48 85 DB" + } + ] + }, + "MonoInLevelMapPage_get_mapBackground": { + "signatures": [], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F2 0F 10 74 24 38" + } + ] + }, + "MonoInLevelMapPage_get_mapRect": { + "signatures": [], + "xref": [ + { + "offset": 9, + "sig": "44 0F 29 B4 24 90 00 00 00 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8D 4C 24 50 0F 10 08" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8D 4C 24 60 0F 10 08" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8D 4C 24 70 0F 10 08 0F 11 4C 24 70" + } + ] + }, + "Notify_CreateNotify_1": { + "signatures": [], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 0F 10 00 F6 81 0A 01 00 00 01 0F 11 44 24 50 F2 0F 10 40 10 F2 0F 11 44 24 48" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 FF 0F 84 A2 00 00 00 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 10 30 F2 0F 10 78 10 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 25 0F 11 74 24 40" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 F6 74 30 0F 10 00 0F 29 44 24 40 F2 0F 10 48 10 F2 0F 11 4C 24 50 4C 89 74 24 20 45 33 C9 45 33 C0" + }, + { + "offset": 21, + "sig": "4C 89 74 24 20 4C 8B CF 33 D2 41 B8 84 00 00 00 48 8D 4C 24 60 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 F6 74 30 0F 10 00 0F 29 44 24 40 F2 0F 10 48 10 F2 0F 11 4C 24 50 4C 89 74 24 20 45 33 C9 41 B0 01" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 F6 0F 85 3D FF FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 F6 0F 85 A5 FE FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 F6 0F 85 2F FE FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4D 85 F6 74 3A 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B BC 24 90 00 00 00 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 10 00 0F 11 44 24 70 F2 0F 10 40 10 F2 0F 11 44 24 38" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 DB 74 30 0F 10 00 0F 29 44 24 30" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 DB 0F 85 75 FF FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 DB 0F 85 14 FF FF FF" + }, + { + "offset": 6, + "sig": "41 B8 BD 02 00 00 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 10 00 0F 11 44 24 40 F2 0F 10 40 10 F2 0F 11 44 24 30 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 30" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 ED 75 54" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 DB 0F 84 56 01 00 00 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 10 00 0F 11 44 24 40 F2 0F 10 40 10 F2 0F 11 44 24 38 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 4A" + } + ] + }, + "Packet_XorEncrypt": { + "signatures": [ + "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 15 83 B9 BC 00 00 00 00 75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 81 A0 00 00 00 80 78 10 00 75 2B", + "F6 81 0A 01 00 00 01 74 15 83 B9 BC 00 00 00 00 75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 81 A0 00 00 00 80 78 10 00 75 2B", + "74 15 83 B9 BC 00 00 00 00 75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 81 A0 00 00 00 80 78 10 00 75 2B", + "83 B9 BC 00 00 00 00 75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 81 A0 00 00 00 80 78 10 00 75 2B", + "75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 81 A0 00 00 00 80 78 10 00 75 2B", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 81 A0 00 00 00 80 78 10 00 75 2B", + "48 8B 0D ?? ?? ?? ?? 48 8B 81 A0 00 00 00 80 78 10 00 75 2B", + "48 8B 81 A0 00 00 00 80 78 10 00 75 2B", + "80 78 10 00 75 2B", + "75 2B F6 81 0A 01 00 00 01 74 15 83 B9 BC 00 00 00 00 75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B 81 A0 00 00 00", + "F6 81 0A 01 00 00 01 74 15 83 B9 BC 00 00 00 00 75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B 81 A0 00 00 00 49 83 C0 08", + "74 15 83 B9 BC 00 00 00 00 75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B 81 A0 00 00 00 49 83 C0 08", + "83 B9 BC 00 00 00 00 75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B 81 A0 00 00 00 49 83 C0 08", + "75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B 81 A0 00 00 00 49 83 C0 08", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B 81 A0 00 00 00 49 83 C0 08", + "48 8B 0D ?? ?? ?? ?? 4C 8B 81 A0 00 00 00 49 83 C0 08", + "4C 8B 81 A0 00 00 00 49 83 C0 08", + "49 83 C0 08 EB 25", + "EB 25 F6 81 0A 01 00 00 01 74 15 83 B9 BC 00 00 00 00 75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B 81 A0 00 00 00", + "F6 81 0A 01 00 00 01 74 15 83 B9 BC 00 00 00 00 75 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B 81 A0 00 00 00 4D 8B 00" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 41 83 FC 0C" + }, + { + "offset": 10, + "sig": "48 8D 54 24 40 45 8B C6 33 C9 E8" + } + ] + }, + "SafeFloat_GetValue": { + "signatures": [], + "xref": [ + { + "offset": 31, + "sig": "74 0D 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 74 24 70 48 8D 54 24 70 33 C9 E8" + }, + { + "offset": 50, + "sig": "75 37 48 8B 0D ?? ?? ?? ?? 0F 10 73 60 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 53, + "sig": "75 3A 48 8B 0D ?? ?? ?? ?? 0F 10 B3 80 00 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 E0 01 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 F0 01 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 00 02 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 10 02 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 20 02 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 30 02 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 40 02 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 50 02 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 70 02 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 80 02 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 60 02 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 C0 00 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 D0 00 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 B0 00 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 E0 00 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 F0 00 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + }, + { + "offset": 44, + "sig": "0F 10 B3 00 01 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 66 0F 7F 75 E0 48 8D 55 E0 33 C9 E8" + } + ] + }, + "Singleton_GetInstance": { + "signatures": [ + "48 89 5C 24 08 57 48 83 EC 20 48 8B 5A 18 48 8B FA 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30", + "57 48 83 EC 20 48 8B 5A 18 48 8B FA 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30", + "48 83 EC 20 48 8B 5A 18 48 8B FA 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30", + "48 8B 5A 18 48 8B FA 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30", + "48 8B FA 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30", + "48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "48 8B 18 48 8B CB E8 ?? ?? ?? ?? F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "48 8B CB E8 ?? ?? ?? ?? F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "E8 ?? ?? ?? ?? F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "F6 83 0A 01 00 00 01 74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "74 4D 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "48 8B 18 48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "48 8B CB E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00", + "E8 ?? ?? ?? ?? 83 BB BC 00 00 00 00 75 26 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 5F 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A8 00 00 00 48 8B 18 48 8B CB E8 ?? ?? ?? ?? 48 8B 83 A0 00 00 00 48 8B 5C 24 30 48 8B 00" + ], + "xref": [ + { + "offset": 60, + "sig": "41 B8 99 08 00 00 8B D3 48 8B C8 48 83 C4 20 5B E9 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 58, + "sig": "41 B8 D2 07 00 00 48 8B C8 48 83 C4 20 5B E9 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 60, + "sig": "41 B8 40 06 00 00 8B D3 48 8B C8 48 83 C4 20 5B E9 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 53, + "sig": "41 8D 51 7A 48 83 C4 20 5B E9 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 53, + "sig": "41 8D 50 78 48 83 C4 20 5B E9 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 60, + "sig": "41 B8 D1 07 00 00 8B D3 48 8B C8 48 83 C4 20 5B E9 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 53, + "sig": "41 8D 51 7E 48 83 C4 20 5B E9 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 60, + "sig": "41 B8 78 05 00 00 8B D3 48 8B C8 48 83 C4 20 5B E9 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 63, + "sig": "BA 2B 27 00 00 48 8B C8 E8 ?? ?? ?? ?? F2 48 0F 2C C0 48 83 C4 20 5B C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 63, + "sig": "BA 24 27 00 00 48 8B C8 E8 ?? ?? ?? ?? F2 48 0F 2C C0 48 83 C4 20 5B C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 63, + "sig": "BA 3A 27 00 00 48 8B C8 E8 ?? ?? ?? ?? F2 48 0F 2C C0 48 83 C4 20 5B C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 63, + "sig": "BA 29 27 00 00 48 8B C8 E8 ?? ?? ?? ?? F2 48 0F 2C C0 48 83 C4 20 5B C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 63, + "sig": "BA 20 27 00 00 48 8B C8 E8 ?? ?? ?? ?? F2 48 0F 2C C0 48 83 C4 20 5B C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 49, + "sig": "74 08 33 C0 48 83 C4 20 5B C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 63, + "sig": "BA 2A 27 00 00 48 8B C8 E8 ?? ?? ?? ?? F2 48 0F 2C C0 48 83 C4 20 5B C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 63, + "sig": "BA 27 27 00 00 48 8B C8 E8 ?? ?? ?? ?? F2 48 0F 2C C0 48 83 C4 20 5B C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 55, + "sig": "45 33 C9 45 33 C0 48 8B D0 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 66, + "sig": "41 83 C8 FF 33 D2 48 8B CF E8 ?? ?? ?? ?? 45 33 C0 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 66, + "sig": "48 8B CB 49 8B 82 48 02 00 00 48 89 44 24 28 C6 44 24 20 00 41 FF 92 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + }, + { + "offset": 49, + "sig": "48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8" + } + ] + }, + "TalkDialogContext_OnDialogSelectItem": { + "signatures": [ + "4C 89 74 24 60 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 44 8B 30", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 44 8B 30 F6 81 0A 01 00 00 01", + "48 8B 0D ?? ?? ?? ?? 44 8B 30 F6 81 0A 01 00 00 01", + "44 8B 30 F6 81 0A 01 00 00 01", + "33 D2 48 89 7C 24 58 48 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 84 A9 00 00 00", + "48 89 7C 24 58 48 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 84 A9 00 00 00", + "48 8B 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 44 3B F0 7D 39", + "E8 ?? ?? ?? ?? 44 3B F0 7D 39", + "44 3B F0 7D 39", + "48 89 6C 24 50 0F 84 A5 00 00 00", + "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B E8 E8", + "F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B E8 E8 ?? ?? ?? ?? 33 D2", + "74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B E8 E8 ?? ?? ?? ?? 33 D2", + "83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B E8 E8 ?? ?? ?? ?? 33 D2", + "75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B E8 E8 ?? ?? ?? ?? 33 D2", + "E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B E8 E8 ?? ?? ?? ?? 33 D2", + "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B E8 E8 ?? ?? ?? ?? 33 D2", + "33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B E8 E8 ?? ?? ?? ?? 33 D2 48 8B C8 48 8B F8 E8 ?? ?? ?? ?? 48 85 FF", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B E8 E8 ?? ?? ?? ?? 33 D2 48 8B C8 48 8B F8 E8 ?? ?? ?? ?? 48 85 FF", + "48 8B 0D ?? ?? ?? ?? 48 8B E8 E8 ?? ?? ?? ?? 33 D2 48 8B C8 48 8B F8 E8 ?? ?? ?? ?? 48 85 FF" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 74 24 50 B0 01 48 8B 5C 24 58 48 83 C4 40 5F C3 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 74 24 50 B0 01 48 8B 5C 24 58 48 83 C4 40 5F C3 33 D2" + } + ] + }, + "TalkDialogContext_get_canAutoClick": { + "signatures": [], + "xref": [ + { + "offset": 31, + "sig": "48 8B CB E8 ?? ?? ?? ?? 48 8B 74 24 50 B0 01 48 8B 5C 24 58 48 83 C4 40 5F C3 33 D2 48 8B CB E8" + } + ] + }, + "TalkDialogContext_get_canClick": { + "signatures": [ + "33 D2 48 89 7C 24 30 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 7C 24 30 84 C0 74 2C", + "48 89 7C 24 30 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 7C 24 30 84 C0 74 2C", + "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 7C 24 30 84 C0 74 2C", + "48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 7C 24 30 84 C0 74 2C", + "48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 7C 24 30 84 C0 74 2C", + "33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 75 06 48 83 C4 20 5B C3 33 D2", + "48 8B C8 E8 ?? ?? ?? ?? 84 C0 75 06 48 83 C4 20 5B C3 33 D2", + "E8 ?? ?? ?? ?? 84 C0 75 06 48 83 C4 20 5B C3 33 D2 33 C9", + "84 C0 75 06 48 83 C4 20 5B C3 33 D2 33 C9", + "75 06 48 83 C4 20 5B C3 33 D2 33 C9" + ], + "xref": [] + }, + "Transform_get_position": { + "signatures": [], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 FF 0F 84 01 03 00 00 F2 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CB F2 0F 10 00 F2 0F 11 45 17" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 8B 40 08 89 45 0F F3 0F 10 5D 0F" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 0F 10 77 04" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 0F 10 4D 07 0F 28 D6" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CB F2 0F 10 00 F2 0F 11 45 07" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 0F 10 5F 08 F3 0F 10 4D 07" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 C7 44 24 20 00 00 00 00 0F 28 D7" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 0F 10 5F 08 F2 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 0F 10 5F 08 F3 0F 10 57 04" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 30 48 8B D7 48 8D 4C 24 40" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 00 F6 81 0A 01 00 00 01 8B 70 08 F2 0F 11 84 24 88 00 00 00 74 17 83 B9 BC 00 00 00 00 75 0E E8 ?? ?? ?? ?? F2 0F 10 84 24 88 00 00 00 F2 0F 11 44 24 40" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 45 B0 48 8B D7 48 8D 4D C0 F2 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 73 28 F2 0F 10 38" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 30 F6 81 0A 01 00 00 01 8B 70 08 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 48 8D 4D D0 33 D2 E8 ?? ?? ?? ?? F3 0F 10 15" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 00 F6 81 0A 01 00 00 01 8B 58 08 F2 0F 11 45 DF 74 13 83 B9 BC 00 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 30 F6 81 0A 01 00 00 01 8B 58 08 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 F2 0F 11 75 DF 4C 8D 45 DF 89 5D E7 33 D2 48 8D 4D EF E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8B CB F2 0F 10 38 8B 70 08" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 44 0F 10 08 F6 81 0A 01 00 00 01 41 0F 28 F1 44 8B 78 08" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 38 44 8B 70 08 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 85 C0 0F 84 9F 00 00 00" + } + ] + }, + "VCHumanoidMove_NotifyLandVelocity": { + "signatures": [ + "0F 85 30 03 00 00 48 8B 05 ?? ?? ?? ?? F6 80 0A 01 00 00 01 74 18", + "80 79 1A 00 0F 84 DB 02 00 00", + "45 33 C0 41 8D 50 26", + "33 D2 48 89 74 24 60 E8 ?? ?? ?? ?? 48 85 C0", + "48 89 74 24 60 E8 ?? ?? ?? ?? 48 85 C0 75 49", + "4C 8B 00 48 8B C8 49 8B 90 48 03 00 00 41 FF 90 ?? ?? ?? ?? 85 C0 7F 68", + "48 8B C8 49 8B 90 48 03 00 00 41 FF 90 ?? ?? ?? ?? 85 C0 7F 68", + "49 8B 90 48 03 00 00 41 FF 90 ?? ?? ?? ?? 85 C0 7F 68", + "41 FF 90 ?? ?? ?? ?? 85 C0 7F 68", + "85 C0 7F 68 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01", + "7F 68 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15", + "4C 8B 08 48 8B D7 48 8B C8 4D 8B 81 68 03 00 00 41 FF 91 ?? ?? ?? ?? EB 39", + "48 8B D7 48 8B C8 4D 8B 81 68 03 00 00 41 FF 91 ?? ?? ?? ?? EB 39", + "48 8B C8 4D 8B 81 68 03 00 00 41 FF 91 ?? ?? ?? ?? EB 39", + "4D 8B 81 68 03 00 00 41 FF 91 ?? ?? ?? ?? EB 39", + "4C 8B 08 33 D2 48 8B C8 4D 8B 81 28 03 00 00 41 FF 91 ?? ?? ?? ?? 48 8B F8", + "33 D2 48 8B C8 4D 8B 81 28 03 00 00 41 FF 91 ?? ?? ?? ?? 48 8B F8", + "48 8B C8 4D 8B 81 28 03 00 00 41 FF 91 ?? ?? ?? ?? 48 8B F8 48 85 FF", + "4D 8B 81 28 03 00 00 41 FF 91 ?? ?? ?? ?? 48 8B F8 48 85 FF", + "41 FF 91 ?? ?? ?? ?? 48 8B F8 48 85 FF" + ], + "xref": [ + { + "offset": 14, + "sig": "0F 28 D0 F2 0F 11 75 07 48 8B CF 89 75 0F E8" + } + ] + }, + "VCMonsterAIController_TryDoSkill": { + "signatures": [], + "xref": [] + }, + "BaseEntity_GetAbsolutePosition": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 0F 85 DF 00 00 00 48 8B 07 48 8B CF 48 89 74 24 58", + "84 C0 0F 85 DF 00 00 00 48 8B 07 48 8B CF 48 89 74 24 58", + "0F 85 DF 00 00 00 48 8B 07 48 8B CF 48 89 74 24 58", + "48 8B 07 48 8B CF 48 89 74 24 58", + "48 8B CF 48 89 74 24 58 48 8B 90 E8 0B 00 00", + "48 89 74 24 58 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D", + "E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 7D" + ], + "xref": [ + { + "offset": 21, + "sig": "48 8B D7 E8 ?? ?? ?? ?? EB 4B 45 33 C0 48 8D 4C 24 30 48 8B D7 E8" + }, + { + "offset": 52, + "sig": "48 8B D7 E8 ?? ?? ?? ?? 48 8B 74 24 60 F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B 5C 24 68 48 83 C4 40 5F C3 45 33 C0 48 8D 4C 24 30 48 8B D7 E8" + } + ] + }, + "BaseEntity_GetForward": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 0F 85 4E 01 00 00 48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "84 C0 0F 85 4E 01 00 00 48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "0F 85 4E 01 00 00 48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D", + "E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 1D" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 20 33 D2 48 8D 4C 24 30 F2 0F 10 00 8B 40 08 F2 0F 11 44 24 20 89 44 24 28 E8 ?? ?? ?? ?? 0F 10 00 0F 11 83 58 06 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 38 8B 58 08 48 85 FF 0F 84 CD 03 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CF F2 0F 10 38 8B 40 08" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 DB 0F 84 38 01 00 00 F2 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 38 F6 81 0A 01 00 00 01 44 8B 78 08 74 0D 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 F2 0F 11 7C 24 60" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8D 4C 24 60 66 0F 7F 74 24 70 4C 8D 44 24 70 48 89 7C 24 20" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 FF 0F 84 F7 00 00 00 F2 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 DB 0F 84 FC 09 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 C7 44 24 38 00 00 00 00 4C 8D 4C 24 40 0F 57 C9 4C 8D 44 24 50 48 8B D3" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 89 6C 24 38 4C 8D 4C 24 40" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 30 F6 81 0A 01 00 00 01 8B 58 08 74 0E 44 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? F3 0F 10 5C 24 60" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 8B 48 08 F2 0F 10 00 F2 41 0F 11 07 41 89 4F 08 48 8B CB E8 ?? ?? ?? ?? 84 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 07 41 89 4F 08 48 85 DB 0F 85 BB F2 FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 07 41 89 4F 08 48 85 DB 0F 85 C9 F1 FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 07 41 89 4F 08 48 85 DB 0F 85 50 F1 FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 07 41 89 4F 08 48 85 DB 0F 85 E2 E6 FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 8B 48 08 F2 0F 10 00 F2 41 0F 11 06 41 89 4E 08 48 8B CB" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 06 41 89 4E 08 E9 4A F3 FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 06 41 89 4E 08 E9 DA F2 FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 06 41 89 4E 08 48 85 DB 0F 85 A0 E8 FF FF" + } + ] + }, + "BaseEntity_GetForwardFast": { + "signatures": [], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 0F 28 74 24 30 F2 0F 10 00" + }, + { + "offset": 21, + "sig": "48 8B 53 28 48 85 D2 0F 84 81 00 00 00 45 33 C0 48 8D 4C 24 30 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 30 F6 81 0A 01 00 00 01 8B 58 08 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 F2 0F 11 7D C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 30 F6 81 0A 01 00 00 01 8B 78 08 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 F2 0F 11 75 A7 4C 8D 45 A7 89 7D AF 33 D2 48 8D 4D 97" + } + ] + }, + "BaseEntity_GetMoveComponent_1": { + "signatures": [ + "48 83 EC 28 48 85 C9 74 16 48 8B 42 30 BA 00 00 01 00", + "48 85 C9 74 16 48 8B 42 30 BA 00 00 01 00", + "74 16 48 8B 42 30 BA 00 00 01 00", + "48 8B 42 30 BA 00 00 01 00", + "BA 00 00 01 00 4C 8B 08" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F0 48 85 C0 0F 84 E3 00 00 00 33 D2" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 85 4F 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 FF 0F 84 DA 00 00 00 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 85 DB 0F 84 C1 00 00 00 4C 8B 0B" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 A9 00 00 00 48 85 FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 C7 00 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 B1 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F0 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 C9 00 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 CB 00 00 00 33 D2 48 8B C8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B F0 48 89 44 24 60 48 85 C0 0F 84 53 FF FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 7E 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 74 70" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F0 48 85 C0 0F 84 84 00 00 00 45 33 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 D1 00 00 00 4C 8B 00 48 8B C8 49 8B 90 88 09 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 13 45 33 C0 48 8B D3 48 8B C8 E8 ?? ?? ?? ?? E9 43 FF FF FF" + }, + { + "offset": 22, + "sig": "75 3C 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8B CB E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 B0 45 33 C0" + }, + { + "offset": 31, + "sig": "0F 84 99 00 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 74 69 48 8B 15 ?? ?? ?? ?? 48 8B C8 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 89 87 10 01 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 50 4C 8B 00 48 8B C8 49 8B 90 B8 08 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F0 48 85 ED 74 0E" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 F6 04 00 00 41 B0 01" + } + ] + }, + "BaseEntity_GetRelativePosition": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 0F 85 DB 00 00 00 48 8B 03", + "84 C0 0F 85 DB 00 00 00 48 8B 03", + "0F 85 DB 00 00 00 48 8B 03 48 8B CB 48 89 74 24 58", + "48 8B 03 48 8B CB 48 89 74 24 58 48 8B 90 E8 0B 00 00", + "48 8B CB 48 89 74 24 58 48 8B 90 E8 0B 00 00", + "48 89 74 24 58 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "48 8B D6 33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "33 C9 E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31", + "E8 ?? ?? ?? ?? 48 8B 74 24 58 84 C0 75 31" + ], + "xref": [ + { + "offset": 23, + "sig": "48 8D 4C 24 30 E8 ?? ?? ?? ?? EB 4B 45 33 C0 48 8D 4C 24 30 48 8B D7 E8" + }, + { + "offset": 54, + "sig": "48 8D 4C 24 30 E8 ?? ?? ?? ?? 48 8B 74 24 60 F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B 5C 24 68 48 83 C4 40 5F C3 45 33 C0 48 8D 4C 24 30 48 8B D7 E8" + } + ] + }, + "BaseEntity_GetRight": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 0F 85 4E 01 00 00 48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "84 C0 0F 85 4E 01 00 00 48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "0F 85 4E 01 00 00 48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D", + "E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 0D" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 0F 10 5C 24 58 4C 8D 45 B0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 50 33 D2 48 8D 4D 90 F2 0F 10 00 8B 40 08 F2 0F 11 44 24 50 89 44 24 58 E8 ?? ?? ?? ?? 48 8B 8E A0 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 B3 70 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8D 4C 24 30 F2 0F 11 7C 24 40 4C 8D 44 24 40 89 7C 24 48 48 8D 54 24 50" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 38 F6 81 0A 01 00 00 01 44 8B 78 08 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? F3 0F 10 54 24 50" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 38 F6 81 0A 01 00 00 01 44 8B 70 08 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? F3 0F 10 55 F7" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 44 0F 10 00 F6 81 0A 01 00 00 01 44 8B 60 08 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 41 0F 57 F1" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8D 4D CF 4C 89 7C 24 20 0F 28 D6 48 8D 4D FF 33 D2 F2 0F 10 00 8B 40 08 F2 0F 11 45 CF 89 45 D7 E8 ?? ?? ?? ?? 4C 8D 4D DF 66 0F 7F 7D CF 4C 8D 45 CF 4C 89 7C 24 20 33 D2 48 8D 4D FF 0F 10 00 0F 29 45 DF E8 ?? ?? ?? ?? F3 0F 10 76 08" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8D 4D 97 66 0F 7F 75 A7" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 53 78 F2 44 0F 10 10" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8D 4D D0 49 8B D4 F2 0F 10 30" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 89 74 24 38 48 8D 9F 38 04 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 89 74 24 38 4C 8D 4C 24 40 4C 8D 44 24 60" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8D 4C 24 30 66 0F 7F 74 24 40 4C 8D 44 24 40 48 89 7C 24 20 33 D2 48 8D 4C 24 50 F2 0F 10 00 8B 40 08 F2 0F 11 44 24 30 89 44 24 38 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 38 F6 81 0A 01 00 00 01 8B 78 08 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 F6 F2 0F 11 7D B0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 30 F6 81 0A 01 00 00 01 8B 58 08 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? F2 0F 11 74 24 50" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? EB 74 4D 85 E4" + } + ] + }, + "BaseEntity_GetRigidbody": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 75 0D 48 8B 83 D8 02 00 00", + "84 C0 75 0D 48 8B 83 D8 02 00 00", + "75 0D 48 8B 83 D8 02 00 00", + "48 8B 83 D8 02 00 00" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 74 0D 45 33 C0 48 8B D3 33 C9 E8 ?? ?? ?? ?? 33 D2" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 74 54" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 43 05 00 00 45 33 C0 48 8D 4D D0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 74 54 48 8B 9F 40 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 4F 06 00 00 45 33 C0 48 8D 4D F7" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 35 09 00 00 45 33 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 89 83 88 00 00 00 48 8B CF E8 ?? ?? ?? ?? 48 85 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B E8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D5 33 C9 E8 ?? ?? ?? ?? 33 D2" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 89 87 80 01 00 00 48 8B 8F B0 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 89 85 48 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B B7 50 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 89 86 78 02 00 00 48 8B D8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 33 D2 88 83 70 03 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 89 83 08 02 00 00 48 8B F8 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 7C 24 30" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 89 83 08 02 00 00 48 8B F8 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 B9 BC 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 7C 24 50 84 C0 0F 84 A7 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 48 8D 4C 24 30 33 D2 E8 ?? ?? ?? ?? 48 85 DB 74 7A" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 92 0E 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 89 83 10 01 00 00 48 8B CB E8 ?? ?? ?? ?? 48 85 C0 0F 84 69 02 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 89 83 F0 02 00 00 48 8B F8" + } + ] + }, + "BaseEntity_GetUp": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 0F 85 4E 01 00 00 48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "84 C0 0F 85 4E 01 00 00 48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "0F 85 4E 01 00 00 48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "48 8B 07 48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "48 8B CF 48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "48 89 B4 24 A0 00 00 00 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "FF 90 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "48 8B 0D ?? ?? ?? ?? 48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "48 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "45 33 C9 45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "45 33 C0 48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "48 8B D6 33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "33 C9 E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15", + "E8 ?? ?? ?? ?? 84 C0 75 56 48 8B 07 48 8B CF 48 8B 90 E8 0B 00 00 FF 90 ?? ?? ?? ?? 48 85 C0 0F 84 53 01 00 00 45 33 C0 48 8D 4C 24 40 48 8B D0 E8 ?? ?? ?? ?? F2 0F 10 00 8B 40 08 F2 0F 11 03 89 43 08 48 8B C3 48 8B B4 24 A0 00 00 00 48 8B 9C 24 A8 00 00 00 48 81 C4 90 00 00 00 5F C3 F3 0F 10 15" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8D 4D AF 48 8B D3 F2 44 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 0F 10 5C 24 5C" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 0F 11 06 89 4E 08 49 8B 04 24 48 8D 4C 24 70 49 8B D4 4C 8B 80 48 0C 00 00 FF 90 ?? ?? ?? ?? 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 0F 11 06 89 4E 08 49 8B 04 24 48 8D 4C 24 70 49 8B D4 4C 8B 80 48 0C 00 00 FF 90 ?? ?? ?? ?? 4C 8B A5 50 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 0F 11 06 89 4E 08 4D 85 E4" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 45 00 41 89 4D 08 49 8B 07 48 8D 4C 24 70 49 8B D7 4C 8B 80 48 0C 00 00 FF 90 ?? ?? ?? ?? 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 45 00 41 89 4D 08 49 8B 07 49 8B D7" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 45 00 41 89 4D 08 4D 85 E4" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 45 00 41 89 4D 08 E9 4C 08 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 00 8B 48 08 F2 41 0F 11 45 00 41 89 4D 08 4C 8B 05" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 9D 08 03 00 00 F2 0F 10 00 8B 48 08 F2 0F 11 03 89 4B 08 E9 43 09 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 9D 08 03 00 00 F2 0F 10 00 8B 48 08 F2 0F 11 03 89 4B 08 E9 9B 07 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F2 0F 10 30 44 8B 78 08 48 85 FF 0F 84 33 06 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 9F 30 03 00 00 F2 0F 10 75 B8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 53 10 F2 0F 10 38 8B 78 08" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 45 CF 33 D2 48 8D 4D AF F2 0F 10 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 4C 8D 44 24 40 33 D2 48 8D 4D B0 F2 0F 10 00 8B 40 08 F2 0F 11 44 24 40 89 44 24 48 E8 ?? ?? ?? ?? 45 33 F6" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 53 28 F2 44 0F 10 10" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 44 0F 10 10 F6 81 0A 01 00 00 01 8B 78 08 74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 4C 8D 4D D7" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 44 0F 10 15 ?? ?? ?? ?? 45 33 FF" + } + ] + }, + "BaseEntity_IsActive": { + "signatures": [ + "80 B9 F0 00 00 00 00 75 03 32 C0 C3 80 79 68 00", + "75 03 32 C0 C3 80 79 68 00", + "32 C0 C3 80 79 68 00", + "C3 80 79 68 00 74 34" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 85 C9 00 00 00 48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 D2 48 8B C8 48 8B F0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 74 5D 33 D2 48 8B CB E8 ?? ?? ?? ?? 84 C0 74 0E" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 18 02 00 00 33 D2" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 74 02 FF C6 FF C7 3B FD" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 CC 00 00 00 48 89 7C 24 30" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 CB 00 00 00 48 89 7C 24 30" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 83 FE FF FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 7D FE FF FF 49 8B 3E" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 78 01 00 00 49 8B 36" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 8C 00 00 00 48 8B 05 ?? ?? ?? ?? 49 8B 36" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 C2 00 00 00 40 84 FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 03 01 00 00 48 89 6C 24 60" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 75 63 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 D2 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 75 65 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 05 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 13 01 00 00 33 D2 49 8B CE" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 74 35 F2 0F 10 03" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 74 7F 4C 8B 05 ?? ?? ?? ?? BA 01 10 01 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 A7 00 00 00 4C 8B 05 ?? ?? ?? ?? BA 01 10 01 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 74 67 4C 8B 05 ?? ?? ?? ?? BA 01 10 01 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 84 C0 0F 84 B7 00 00 00 4C 8B 05 ?? ?? ?? ?? BA 01 10 01 00" + } + ] + }, + "BaseEntity_SetAbsolutePosition": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 0F 85 AD 00 00 00 48 8B 0D ?? ?? ?? ?? F2 0F 10 03", + "84 C0 0F 85 AD 00 00 00 48 8B 0D ?? ?? ?? ?? F2 0F 10 03", + "0F 85 AD 00 00 00 48 8B 0D ?? ?? ?? ?? F2 0F 10 03", + "48 8B 0D ?? ?? ?? ?? F2 0F 10 03 48 89 6C 24 70", + "F2 0F 10 03 48 89 6C 24 70", + "48 89 6C 24 70 8B 6B 08", + "8B 6B 08 F6 81 0A 01 00 00 01 F2 0F 11 44 24 30 74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "F6 81 0A 01 00 00 01 F2 0F 11 44 24 30 74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "F2 0F 11 44 24 30 74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "89 6C 24 38 33 D2 48 8D 4C 24 50 E8 ?? ?? ?? ?? F2 0F 10 03", + "33 D2 48 8D 4C 24 50 E8 ?? ?? ?? ?? F2 0F 10 03", + "48 8D 4C 24 50 E8 ?? ?? ?? ?? F2 0F 10 03" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8D 4C 24 50 48 8B D5 E8 ?? ?? ?? ?? 41 B1 01" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 0F 10 7D A0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 97 80 00 00 00 48 85 D2 0F 84 EA 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 49 8B 4E 20 48 85 C9 0F 84 06 02 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4B 30 48 85 C9 0F 84 85 00 00 00 4C 8B 11" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 41 0F 10 4E 2C" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 49 8B 4E 18 48 85 C9 0F 84 68 04 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 66 0F 7F 7C 24 40 41 B0 01" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 41 0F 10 04 24 45 33 C9 48 8D 55 F0 41 B0 01 48 8B CB 0F 29 45 F0 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 41 0F 10 04 24 45 33 C9 48 8D 55 F0 41 B0 01 48 8B CB 0F 29 45 F0 E8 ?? ?? ?? ?? 48 8B BC 24 80 00 00 00" + }, + { + "offset": 14, + "sig": "F2 0F 10 03 F2 0F 11 44 24 30 89 44 24 38 E8" + }, + { + "offset": 33, + "sig": "75 52 F2 0F 10 03 48 8D 54 24 30 8B 43 08 45 33 C9 45 33 C0 F2 0F 11 44 24 30 48 8B CF 89 44 24 38 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8D 94 24 90 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? FF C7 44 8B F7 48 8B 43 40" + }, + { + "offset": 25, + "sig": "F2 0F 10 44 24 20 45 33 C9 89 4C 24 38 45 33 C0 48 8B C8 F2 0F 11 44 24 30 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 75 5F 33 D2" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 41 0F 10 4E 04 45 33 C9 41 B0 01 48 8B CF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 41 0F 10 4E 04 45 33 C9 41 B0 01 48 8B CE" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 66 0F 7F 75 17 41 B0 01" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? B0 01 EB 76" + } + ] + }, + "BaseEntity_SetRelativePosition": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 0F 85 AA 00 00 00 48 8B 0D ?? ?? ?? ?? F2 0F 10 03 48 89 6C 24 60", + "84 C0 0F 85 AA 00 00 00 48 8B 0D ?? ?? ?? ?? F2 0F 10 03 48 89 6C 24 60", + "0F 85 AA 00 00 00 48 8B 0D ?? ?? ?? ?? F2 0F 10 03 48 89 6C 24 60", + "48 8B 0D ?? ?? ?? ?? F2 0F 10 03 48 89 6C 24 60", + "F2 0F 10 03 48 89 6C 24 60", + "48 89 6C 24 60 8B 6B 08", + "8B 6B 08 F6 81 0A 01 00 00 01 F2 0F 11 44 24 30 74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 40", + "F6 81 0A 01 00 00 01 F2 0F 11 44 24 30 74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 40", + "F2 0F 11 44 24 30 74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 40", + "74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 40", + "83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 40", + "75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 40", + "E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 40", + "F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 40", + "45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 40 E8 ?? ?? ?? ?? 44 0F B6 CF", + "F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 40 E8 ?? ?? ?? ?? 44 0F B6 CF", + "4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 40 E8 ?? ?? ?? ?? 44 0F B6 CF", + "89 6C 24 38 33 D2 48 8D 4C 24 40 E8 ?? ?? ?? ?? 44 0F B6 CF", + "33 D2 48 8D 4C 24 40 E8 ?? ?? ?? ?? 44 0F B6 CF", + "48 8D 4C 24 40 E8 ?? ?? ?? ?? 44 0F B6 CF" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 0F 28 74 24 70 EB 79" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4B 78 48 85 C9 0F 84 39 02 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 03 48 8D 4D 70" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 87 A8 00 00 00 FF C6" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 07 48 8D 4C 24 60 48 8B D7 4C 8B 80 48 0C 00 00 FF 90 ?? ?? ?? ?? 45 33 C9 48 8D 54 24 60 41 B0 01 48 8B CF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 85 C0 0F 84 CE 02 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 07 48 8D 4C 24 60 48 8B D7 4C 8B 80 48 0C 00 00 FF 90 ?? ?? ?? ?? 45 33 C9 48 8D 54 24 60 41 B0 01 48 8B CE" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4B 78 48 85 C9 0F 84 32 02 00 00" + }, + { + "offset": 6, + "sig": "48 8B CB 89 45 AF E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4B 78 48 85 C9 0F 84 A7 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4B 78 48 85 C9 0F 84 B5 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 44 0F 28 44 24 60 0F 28 B4 24 80 00 00 00 4C 8B BC 24 C0 00 00 00 48 8B B4 24 B0 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4B 78 48 85 C9 0F 84 17 01 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CF 48 8B F0 E8 ?? ?? ?? ?? 48 85 C0 0F 84 27 04 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8D 4D F0 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 53 78 48 85 D2 0F 84 36 03 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 0F 57 C9 33 C9 48 8B 5C 24 40" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4B 78 48 85 C9 0F 84 85 00 00 00 33 D2" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 B3 00 02 00 00 8B BB 08 02 00 00 F6 81 0A 01 00 00 01 74 0E 44 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 48 8D 4D F7" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F2 0F 10 B3 00 02 00 00 8B BB 08 02 00 00 F6 81 0A 01 00 00 01 74 0E 44 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C0 48 8D 4D E7" + } + ] + }, + "EntityManager_GetEntities": { + "signatures": [], + "xref": [ + { + "offset": 11, + "sig": "4C 89 A4 24 B0 01 00 00 48 8B C8 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B E8 48 85 C0 0F 84 01 01 00 00 48 8B 15" + }, + { + "offset": 11, + "sig": "4C 89 BC 24 60 01 00 00 48 8B C8 E8" + } + ] + }, + "BaseEntity_ToStringRelease": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 0F 85 0E 02 00 00 48 8B 0D ?? ?? ?? ?? 48 89 7C 24 50", + "84 C0 0F 85 0E 02 00 00 48 8B 0D ?? ?? ?? ?? 48 89 7C 24 50", + "0F 85 0E 02 00 00 48 8B 0D ?? ?? ?? ?? 48 89 7C 24 50", + "48 8B 0D ?? ?? ?? ?? 48 89 7C 24 50 48 8B BB 80 02 00 00", + "48 89 7C 24 50 48 8B BB 80 02 00 00", + "48 8B BB 80 02 00 00 F6 81 0A 01 00 00 01 74 0E 44 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9", + "F6 81 0A 01 00 00 01 74 0E 44 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 75 14", + "74 0E 44 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 75 14", + "44 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 75 14", + "75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 75 14 48 8B 05", + "E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 75 14 48 8B 05", + "45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 75 14 48 8B 05", + "45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 75 14 48 8B 05", + "48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 75 14 48 8B 05", + "33 C9 E8 ?? ?? ?? ?? 84 C0 75 14 48 8B 05", + "E8 ?? ?? ?? ?? 84 C0 75 14 48 8B 05 ?? ?? ?? ?? 48 8B 7C 24 50", + "84 C0 75 14 48 8B 05 ?? ?? ?? ?? 48 8B 7C 24 50", + "75 14 48 8B 05 ?? ?? ?? ?? 48 8B 7C 24 50", + "48 8B 05 ?? ?? ?? ?? 48 8B 7C 24 50 48 83 C4 58", + "48 8B 7C 24 50 48 83 C4 58 41 5E 5B C3 48 8B 0D ?? ?? ?? ?? 48 8B BB 30 03 00 00" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 3D ?? ?? ?? ?? 48 8B F0 EB 0A" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F8 48 8B 0D ?? ?? ?? ?? 48 8B AB 48 02 00 00" + } + ] + }, + "EntityManager_GetCurrentAvatar": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 75 16 8B 93 60 01 00 00", + "84 C0 75 16 8B 93 60 01 00 00", + "75 16 8B 93 60 01 00 00", + "8B 93 60 01 00 00 45 33 C0 48 8B CB 48 83 C4 20" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 84 C0 0F 84 7A 02 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 BC 00 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CF 48 8B D8 E8 ?? ?? ?? ?? 84 C0 0F 84 BA 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 7A 4C 8B 05 ?? ?? ?? ?? BA 04 00 01 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 28 02 00 00 4C 8B 08 48 8D 4C 24 20" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 8B 02 00 00 0F 29 74 24 50" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 ED 45 8B FD 48 85 C0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 12 48 8B 90 08 04 00 00 45 33 C0 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB 4C 8B 74 24 48" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 7F 00 00 00 48 89 5C 24 30" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? C7 44 24 50 00 00 00 00 48 8B D8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 66 10 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 0F 84 2E 01 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 4C 8D 4C 24 50 48 C7 44 24 20 00 00 00 00 45 33 C0 48 8B D3 33 C9 E8 ?? ?? ?? ?? 84 C0 74 7A" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 74 78 48 89 74 24 38" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 0F 84 92 00 00 00 48 89 74 24 50" + }, + { + "offset": 65, + "sig": "8B D7 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 85 00 00 00 33 D2 48 8B C8 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 12 48 8B 90 08 04 00 00 45 33 C0 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 49 8B CD E8 ?? ?? ?? ?? 32 C0 E9 95 26 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 AA 01 00 00 4C 8B 08 48 8D 4C 24 50" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 85 C0" + } + ] + }, + "EntityManager_GetValidEntity": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 75 33 45 33 C0 8B D3 48 8B CF E8 ?? ?? ?? ?? 48 8B D8", + "84 C0 75 33 45 33 C0 8B D3 48 8B CF E8 ?? ?? ?? ?? 48 8B D8", + "75 33 45 33 C0 8B D3 48 8B CF E8 ?? ?? ?? ?? 48 8B D8", + "45 33 C0 8B D3 48 8B CF E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 74 0E", + "8B D3 48 8B CF E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 74 0E", + "48 8B CF E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 74 0E 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 74 02", + "E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 74 0E 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 74 02", + "48 8B D8 48 85 C0 74 0E 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 74 02", + "48 85 C0 74 0E 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 74 02", + "74 0E 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 74 02", + "33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 74 02 33 DB", + "48 8B C8 E8 ?? ?? ?? ?? 84 C0 74 02 33 DB", + "E8 ?? ?? ?? ?? 84 C0 74 02 33 DB", + "84 C0 74 02 33 DB", + "74 02 33 DB 48 8B C3" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CB E8 ?? ?? ?? ?? 84 C0 75 30" + } + ] + }, + "Entity_SetPosition": { + "signatures": [ + "E8 ?? ?? ?? ?? 84 C0 0F 85 AD 00 00 00 48 8B 0D ?? ?? ?? ?? F2 0F 10 03", + "84 C0 0F 85 AD 00 00 00 48 8B 0D ?? ?? ?? ?? F2 0F 10 03", + "0F 85 AD 00 00 00 48 8B 0D ?? ?? ?? ?? F2 0F 10 03", + "48 8B 0D ?? ?? ?? ?? F2 0F 10 03 48 89 6C 24 70", + "F2 0F 10 03 48 89 6C 24 70", + "48 89 6C 24 70 8B 6B 08", + "8B 6B 08 F6 81 0A 01 00 00 01 F2 0F 11 44 24 30 74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "F6 81 0A 01 00 00 01 F2 0F 11 44 24 30 74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "F2 0F 11 44 24 30 74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "74 14 83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "83 B9 BC 00 00 00 00 75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "75 0B E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "E8 ?? ?? ?? ?? F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "F2 0F 10 44 24 30 45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "45 33 C9 F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "F2 0F 11 44 24 30 4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "4C 8D 44 24 30 89 6C 24 38 33 D2 48 8D 4C 24 50", + "89 6C 24 38 33 D2 48 8D 4C 24 50 E8 ?? ?? ?? ?? F2 0F 10 03", + "33 D2 48 8D 4C 24 50 E8 ?? ?? ?? ?? F2 0F 10 03", + "48 8D 4C 24 50 E8 ?? ?? ?? ?? F2 0F 10 03" + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8D 4C 24 50 48 8B D5 E8 ?? ?? ?? ?? 41 B1 01" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 0F 10 7D A0" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 97 80 00 00 00 48 85 D2 0F 84 EA 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 49 8B 4E 20 48 85 C9 0F 84 06 02 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 4B 30 48 85 C9 0F 84 85 00 00 00 4C 8B 11" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 41 0F 10 4E 2C" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 49 8B 4E 18 48 85 C9 0F 84 68 04 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 66 0F 7F 7C 24 40 41 B0 01" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 41 0F 10 04 24 45 33 C9 48 8D 55 F0 41 B0 01 48 8B CB 0F 29 45 F0 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 41 0F 10 04 24 45 33 C9 48 8D 55 F0 41 B0 01 48 8B CB 0F 29 45 F0 E8 ?? ?? ?? ?? 48 8B BC 24 80 00 00 00" + }, + { + "offset": 14, + "sig": "F2 0F 10 03 F2 0F 11 44 24 30 89 44 24 38 E8" + }, + { + "offset": 33, + "sig": "75 52 F2 0F 10 03 48 8D 54 24 30 8B 43 08 45 33 C9 45 33 C0 F2 0F 11 44 24 30 48 8B CF 89 44 24 38 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C0 48 8D 94 24 90 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? FF C7 44 8B F7 48 8B 43 40" + }, + { + "offset": 25, + "sig": "F2 0F 10 44 24 20 45 33 C9 89 4C 24 38 45 33 C0 48 8B C8 F2 0F 11 44 24 30 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 75 5F 33 D2" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 41 0F 10 4E 04 45 33 C9 41 B0 01 48 8B CF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? F3 41 0F 10 4E 04 45 33 C9 41 B0 01 48 8B CE" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 66 0F 7F 75 17 41 B0 01" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? B0 01 EB 76" + } + ] + } + }, + "UnityPlayer.dll": { + "GetIl2Classes": { + "signatures": [ + ], + "xref": [ + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 4B E8 ?? ?? ?? ?? 48 8D 4C 24 20" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 3E 02 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 47 E8 ?? ?? ?? ?? 48 8D 4C 24 70" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 48 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 41 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 47 E8 ?? ?? ?? ?? 48 8D 4C 24 20" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 F0 00 00 00 E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 1B 48 83 7F 18 FF" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 14 E8 ?? ?? ?? ?? 48 8B D6" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 14 E8 ?? ?? ?? ?? 48 8B D7" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 14 E8 ?? ?? ?? ?? 48 8B D3" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 74 3F E8" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 44 8B 15 ?? ?? ?? ?? 4C 8B CE" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B 5C 24 28 41 B8 04 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 D0 00 00 00 48 8D 4C 24 20" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 8B 0D ?? ?? ?? ?? 41 B8 08 00 00 00 4C 63 4F 10" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 4C 8B CB 41 B8 04 00 00 00" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 75 05 48 83 C4 28 C3 E8 ?? ?? ?? ?? 48 8B C8 48 8D 54 24 30" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8D 54 24 20 48 8D 48 38" + }, + { + "offset": 0, + "sig": "E8 ?? ?? ?? ?? 48 8B D3 48 8D 48 38 E8 ?? ?? ?? ?? 48 8D 4D 17" + } + ] + }, + "Unity_RecordUserData": { + "signatures": [ + "40 53 48 81 EC 20 01 00 00 8B" + ], + "xref": [] + } + } + }, + "methodInfo": { + "AvatarPropDictionary_SetItem__MethodInfo": [ + { + "offset": 0, + "sig": "4C 8B 0D ?? ?? ?? ?? 4C 8D 45 D0 48 8D 55 E0 66 0F 7F 7D E0" + }, + { + "offset": 0, + "sig": "4C 8B 0D ?? ?? ?? ?? 4C 8D 45 E0 48 8D 55 D0 66 0F 7F 7D D0 48 8B CB 0F 29 45 E0 E8 ?? ?? ?? ?? 48 8B 5F 18" + }, + { + "offset": 0, + "sig": "4C 8B 0D ?? ?? ?? ?? 4C 8D 45 E0 48 8D 55 D0 66 0F 7F 7D D0 48 8B CB 0F 29 45 E0 E8 ?? ?? ?? ?? 48 8B 5C 24 60" + }, + { + "offset": 0, + "sig": "4C 8B 0D ?? ?? ?? ?? 4C 8D 45 C0 48 8D 55 B0 66 0F 7F 7D B0 48 8B CE 0F 29 45 C0 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 73 18" + } + ], + "BaseEntity_GetBaseCombat__MethodInfo": [ + { + "offset": 17, + "sig": "48 8B 8C 24 90 00 00 00 48 85 C9 0F 84 C5 00 00 00 48 8B 15" + }, + { + "offset": 17, + "sig": "48 8B 8C 24 A0 00 00 00 48 85 C9 0F 84 EF 00 00 00 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 0F 84 A0 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 85 C0 0F 84 64 01 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 8B E8" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B C8 E8 ?? ?? ?? ?? 4C 8B E0 48 8B 54 24 78" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 0F 84 5C FF FF FF 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 0F 84 49 FF FF FF 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 85 C0 74 6D" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? F3 0F 10 3D" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 0F 84 5C FF FF FF 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 0F 84 49 FF FF FF 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 85 C0 74 18" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B C8 4C 89 B4 24 90 00 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CE 4C 8B F0 E8 ?? ?? ?? ?? 48 8B E8 4D 85 F6 0F 84 B9 03 00 00" + }, + { + "offset": 10, + "sig": "33 D2 4D 8B 00 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF 4C 89 AC 24 00 02 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B C8 4C 89 74 24 70" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CE 4C 8B F0 E8 ?? ?? ?? ?? 48 8B E8 4D 85 F6 0F 84 BB 02 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B C8 E8 ?? ?? ?? ?? 4C 8B F0 48 89 44 24 58" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8B CF 48 8B E8" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF 48 8B E8 E8 ?? ?? ?? ?? 4C 8B F0" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B C8 E8 ?? ?? ?? ?? 48 8B F0 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 B9 BC 00 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 49 8B CE E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 74 3E" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CE 8B E8 E8 ?? ?? ?? ?? 48 8B 8C 24 C0 00 00 00" + } + ], + "BaseEntity_GetMoveComponent_1__MethodInfo": [ + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF E8 ?? ?? ?? ?? 48 85 C0 0F 85 4F 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B F0 48 85 C0 0F 84 84 00 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 0F 84 69 01 00 00" + }, + { + "offset": 9, + "sig": "48 8B 4B 28 48 85 C9 74 66 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 85 C0 0F 84 01 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF E8 ?? ?? ?? ?? 48 8B D8 48 85 C0 74 2F" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 89 47 18 48 85 C0" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 0F 84 60 02 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 0F 84 84 03 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 85 C0 74 1D" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 D2 48 89 47 40" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CE E8 ?? ?? ?? ?? 48 89 43 50" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF E8 ?? ?? ?? ?? 48 85 C0 74 1F" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 85 C0 75 4E" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? F2 0F 10 00 8B 48 08" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 85 C0 74 14 4C 8B 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 85 C0 74 1C 4C 8B 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CE F2 0F 10 30 44 8B 78 08" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF E8 ?? ?? ?? ?? 48 85 C0 74 14 4C 8B 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF 4C 8B E0 E8 ?? ?? ?? ?? 4C 8B F8" + } + ], + "CreateCrashEvent__MethodInfo": [ + { + "offset": 9, + "sig": "48 85 D2 0F 85 7E 03 00 00 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B D8 48 8B 07 48 85 C0" + } + ], + "Singleton_1_EntityManager__get_Instance__MethodInfo": [ + { + "offset": 36, + "sig": "0F 85 09 02 00 00 48 8B 0D ?? ?? ?? ?? 44 84 A1 0A 01 00 00 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 32, + "sig": "74 4D 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 46, + "sig": "48 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 85 BC 01 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 101, + "sig": "BA 00 30 00 00 48 8B C8 4C 89 BC 24 A0 00 00 00 E8 ?? ?? ?? ?? 4C 8B F8 48 85 C0 0F 84 DF 01 00 00 48 8B 55 48 48 85 D2 0F 84 D2 01 00 00 48 8B 0D ?? ?? ?? ?? 33 FF 48 39 0A 48 0F 44 FA 48 85 FF 0F 84 B9 01 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 38, + "sig": "84 C0 0F 84 81 01 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 35, + "sig": "83 F8 25 75 6C 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 47, + "sig": "33 D2 33 C9 E8 ?? ?? ?? ?? 84 C0 0F 85 40 01 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 43, + "sig": "33 D2 33 C9 E8 ?? ?? ?? ?? 84 C0 75 68 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 3C 01 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01" + }, + { + "offset": 44, + "sig": "E8 ?? ?? ?? ?? 48 85 C0 0F 84 3C 01 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 F0 00 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 0F 84 D7 00 00 00 4C 8B 05" + }, + { + "offset": 86, + "sig": "FF 90 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 65, + "sig": "E9 6C 09 00 00 E8 ?? ?? ?? ?? CC E8 ?? ?? ?? ?? CC 48 8B CF E8 ?? ?? ?? ?? CC 48 8B CF E8 ?? ?? ?? ?? CC 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 65, + "sig": "E9 BC 07 00 00 E8 ?? ?? ?? ?? CC E8 ?? ?? ?? ?? CC 48 8B CF E8 ?? ?? ?? ?? CC 48 8B CF E8 ?? ?? ?? ?? CC 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 5B 02 00 00 45 33 C0 8B 56 38" + }, + { + "offset": 46, + "sig": "CC E8 ?? ?? ?? ?? CC 48 8B CF E8 ?? ?? ?? ?? CC 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 4C 8B 07 48 8B CE 4C 3B C2 48 0F 44 CF 48 85 C9 0F 84 70 01 00 00" + }, + { + "offset": 39, + "sig": "33 D2 E8 ?? ?? ?? ?? 8B D8 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 35, + "sig": "44 88 64 24 40 48 8B 0D ?? ?? ?? ?? 44 84 A1 0A 01 00 00 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8B CB" + } + ], + "Singleton_1_EventManager__get_Instance__MethodInfo": [ + { + "offset": 46, + "sig": "F3 0F 11 44 24 20 8B D5 48 8B CE E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 43, + "sig": "4C 8B C5 8B D0 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 43, + "sig": "44 8B C5 8B D7 48 8B CE E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 42, + "sig": "48 89 7C 24 20 48 8B CE E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 D1 00 00 00 45 33 C9 45 33 C0" + }, + { + "offset": 43, + "sig": "44 8B C3 8B D0 48 8B CE E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 BA 00 00 00 45 33 C9 45 33 C0 48 8B D3" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 DF 00 00 00 45 33 C9 45 33 C0" + }, + { + "offset": 44, + "sig": "44 0F B6 C0 8B D5 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 53, + "sig": "48 C7 44 24 20 00 00 00 00 44 0F B6 C0 8B D6 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 50, + "sig": "0F 57 C9 48 C7 44 24 20 00 00 00 00 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 16 45 33 C9 45 33 C0 48 8B D3 48 8B C8 48 83 C4 30" + }, + { + "offset": 40, + "sig": "41 8B D7 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 99 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 39, + "sig": "E8 ?? ?? ?? ?? 48 89 73 40 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 6D 01 00 00 45 33 C9 45 33 C0" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4C 8B F0 48 85 C0 0F 84 C6 02 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 49 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 13" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 13 45 33 C9 45 33 C0 48 8B D3 48 8B C8 E8 ?? ?? ?? ?? EB 05" + }, + { + "offset": 45, + "sig": "8B D0 48 8B CB 44 89 64 24 20 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 68, + "sig": "48 8B CB F2 0F 11 44 24 50 0F 57 C0 C6 44 24 30 00 F3 0F 11 44 24 28 F3 0F 11 44 24 20 89 44 24 58 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + } + ], + "Singleton_1_InteractionManager__get_Instance__MethodInfo": [ + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 26 FE FF FF" + }, + { + "offset": 36, + "sig": "0F 84 26 FE FF FF 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 71 45 33 C0 48 8B D7" + }, + { + "offset": 39, + "sig": "33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B F0 F6 81 0A 01 00 00 01 74 0D 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 40, + "sig": "48 8B D5 49 8B CE E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 48 8B F0 E8 ?? ?? ?? ?? 33 D2 48 8B CB" + }, + { + "offset": 14, + "sig": "4C 8B C0 48 8B D6 48 8B CF E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 43, + "sig": "4C 89 74 24 50 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 45, + "sig": "C6 86 80 00 00 00 01 E8 ?? ?? ?? ?? 89 47 10 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 48 89 5C 24 50 E8 ?? ?? ?? ?? 48 85 C0" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B E8 33 D2" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F0 48 85 DB 0F 84 5C 01 00 00" + }, + { + "offset": 52, + "sig": "48 8B CE E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 27, + "sig": "48 8B 58 20 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 48 89 9C 24 80 00 00 00 E8 ?? ?? ?? ?? 45 33 FF" + }, + { + "offset": 43, + "sig": "48 89 6C 24 38 48 8B CE E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 65, + "sig": "41 B0 01 48 8B D5 48 8B C8 E8 ?? ?? ?? ?? 48 8B 6C 24 40 48 8B 74 24 48 48 8B 5C 24 50 48 83 C4 30 5F C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 D2 48 8B CB 4C 8B F0 E8 ?? ?? ?? ?? 33 D2 48 8B CD" + }, + { + "offset": 43, + "sig": "48 8B D0 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 44 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B E8 48 85 C0 74 35 48 8B 0D ?? ?? ?? ?? 48 8B 1D ?? ?? ?? ?? E8 ?? ?? ?? ?? 45 33 C9 4C 8B C3 48 8B D6 48 8B C8 48 8B F8 E8 ?? ?? ?? ?? 45 33 C0 48 8B D7 48 8B CD E8 ?? ?? ?? ?? 48 8B 6C 24 30 48 8B 74 24 38 48 8B 5C 24 40 48 83 C4 20 5F C3 48 8B 56 10" + } + ], + "Singleton_1_ItemModule__get_Instance__MethodInfo": [ + { + "offset": 48, + "sig": "83 F8 07 74 0D 32 C0 48 8B 5C 24 30 48 83 C4 20 5F C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 50, + "sig": "4C 89 74 24 78 E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 2C 45 33 C0 8B D7" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 29 45 33 C0 8B D7" + }, + { + "offset": 32, + "sig": "72 85 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 4F 10 48 8B D8 48 85 C9 74 5C" + }, + { + "offset": 51, + "sig": "C6 05 ?? ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 84 C0 74 43 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 2B 01 00 00 45 33 C0 33 D2" + }, + { + "offset": 45, + "sig": "45 33 C9 48 8B C8 45 8D 41 01 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 32, + "sig": "5F 5E C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 15 85 DB" + }, + { + "offset": 41, + "sig": "48 8B 7C 24 70 48 83 C4 50 5B C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 4F 18 48 8B F0 48 85 C9 0F 84 24 01 00 00" + }, + { + "offset": 40, + "sig": "0F 85 BC 00 00 00 48 89 6C 24 60 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 81 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B D8 48 85 F6 74 5B" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4D 8B 0E 49 8B CE" + }, + { + "offset": 36, + "sig": "0F 86 97 00 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 35, + "sig": "E9 73 FF FF FF 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 32, + "sig": "EB 96 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 32, + "sig": "EB 88 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + } + ], + "Singleton_1_LoadingManager__get_Instance__MethodInfo": [ + { + "offset": 44, + "sig": "48 8B C8 F3 0F 11 44 24 20 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 1D 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 74 08 8B 40 20" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 2D 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0" + }, + { + "offset": 54, + "sig": "4D 8B 65 10 75 12 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 74, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 32, + "sig": "75 54 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 31, + "sig": "4C 8B B4 24 90 00 00 00 F6 81 0A 01 00 00 01 74 0E 44 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 41, + "sig": "F3 0F 11 44 24 20 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F0 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 85 F6 0F 84 AC 00 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 31" + }, + { + "offset": 34, + "sig": "4C 89 7F 40 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 29, + "sig": "0F 85 2E 01 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 39, + "sig": "49 8B 57 40 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 28, + "sig": "E9 08 04 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 0A 01 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 CF 00 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 85 C3 00 00 00" + }, + { + "offset": 42, + "sig": "48 8B CF 41 8D 51 0C E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 52, + "sig": "80 B8 F8 00 00 00 00 75 0D 33 C0 48 8B 5C 24 30 48 83 C4 20 5F C3 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 44, + "sig": "44 0F B6 C6 8B D7 48 8B C8 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 39, + "sig": "41 8D 51 05 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + } + ], + "Singleton_1_MBHLOBDPKEC__get_Instance__MethodInfo": [ + { + "offset": 36, + "sig": "0F 85 B6 00 00 00 48 8B 0D ?? ?? ?? ?? 44 84 A1 0A 01 00 00 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 C9 48 89 4D 0F" + }, + { + "offset": 37, + "sig": "75 6E 48 8B 0D ?? ?? ?? ?? 48 89 74 24 30 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 30, + "sig": "48 8B 0D ?? ?? ?? ?? 40 84 B9 0A 01 00 00 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 36, + "sig": "0F 8E 70 FF FF FF 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 13, + "sig": "F3 0F 5E 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 1D 45 33 C0 33 D2" + }, + { + "offset": 33, + "sig": "41 8B DC 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 42, + "sig": "41 B0 01 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 40, + "sig": "49 8B CF E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 43, + "sig": "41 B0 01 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4C 8B F0 33 D2 48 8B CB E8 ?? ?? ?? ?? 4D 85 F6" + }, + { + "offset": 36, + "sig": "0F 84 CE 02 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 40, + "sig": "48 8B D0 48 8B CD E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 38, + "sig": "41 8B 56 10 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 49, + "sig": "33 C9 E8 ?? ?? ?? ?? 48 8B F0 48 85 C0 0F 84 F7 00 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 44, + "sig": "45 33 C9 48 8B D6 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F8 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 73" + }, + { + "offset": 35, + "sig": "E9 3B 01 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 49, + "sig": "48 8D 94 24 C0 00 00 00 48 8B C8 E8 ?? ?? ?? ?? 48 8B F0 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + } + ], + "Singleton_1_MessageInfo__get_Instance__MethodInfo": [ + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 75 2B 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 81 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 D2" + }, + { + "offset": 26, + "sig": "45 03 F4 F6 81 0A 01 00 00 01 74 0E 44 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F8 48 8B 8C 24 C8 00 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 3C 01 00 00 45 33 C0 0F B7 D6" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 C7 00 00 00 45 33 C0 0F B7 D6" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 85 C0 0F 84 99 00 00 00 45 33 C0" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 13 01 00 00 45 33 C0" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 A6 00 00 00 45 33 C0 0F B7 D6" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 85 C0 74 7C 45 33 C0" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B D8 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 85 DB 0F 84 9E 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4C 8B F8 33 D2 49 8B CE E8 ?? ?? ?? ?? 4D 85 FF 0F 84 85 00 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4C 8B F0 33 D2 48 8B CF E8 ?? ?? ?? ?? 4D 85 F6 0F 84 25 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4C 8B F0 33 D2 48 8B CF E8 ?? ?? ?? ?? 4D 85 F6 0F 84 A7 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F0 33 D2 48 8B CF E8 ?? ?? ?? ?? 48 85 F6 0F 84 5F 03 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F0 48 85 DB 0F 84 8F 00 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F0 48 8B 03 48 8B 90 C8 01 00 00" + } + ], + "Singleton_1_UIManager_1__get_Instance__MethodInfo": [ + { + "offset": 46, + "sig": "45 33 C9 45 33 C0 48 8B D0 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 52, + "sig": "48 8B CE E8 ?? ?? ?? ?? 45 33 C0 0F B6 D0 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 D2 48 8B CB 48 8B F8 E8 ?? ?? ?? ?? 48 85 FF 0F 84 BD 00 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0 E8 ?? ?? ?? ?? 45 33 C0 41 8B D6" + }, + { + "offset": 35, + "sig": "4C 89 74 24 48 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4C 8B 07 48 8B CF 48 8B F0 49 8B 90 78 02 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 85 32 FF FF FF" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 D2 48 8B CB 48 8B F0 E8 ?? ?? ?? ?? 33 D2 48 8B CB 48 8B F8 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 37, + "sig": "74 68 48 89 7C 24 30 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 46, + "sig": "48 89 74 24 40 48 8B C8 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 E8 ?? ?? ?? ?? 45 33 C9 41 B0 01 8B D3" + }, + { + "offset": 48, + "sig": "45 0F B6 C1 48 8B D7 48 8B C8 48 8B D8 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 53, + "sig": "8B D8 E8 ?? ?? ?? ?? 45 33 C0 8B D3 48 8B C8 48 8B F0 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 38, + "sig": "48 8B D6 E9 BE 00 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 56, + "sig": "48 C7 44 24 20 00 00 00 00 45 33 C0 48 8B D7 48 8B C8 48 8B D8 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 39, + "sig": "E8 ?? ?? ?? ?? 84 DB 74 62 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 26, + "sig": "83 CB FF F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 EE 0E 00 00" + }, + { + "offset": 38, + "sig": "40 88 B4 24 70 01 00 00 48 8B 0D ?? ?? ?? ?? 40 84 B1 0A 01 00 00 74 0E 44 39 A1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 D5 03 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 85 C0" + } + ] + }, + "typeInfo": { + "Byte": [ + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 4C 8B F0 48 8B 4F 30 48 8B 59 10 48 8B CB E8 ?? ?? ?? ?? 48 8B D3 49 8B CE E8 ?? ?? ?? ?? 48 8B D8 48 89 84 24 A8 00 00 00 BF B5 03 00 00 89 BC 24 98 00 00 00 E9 3E 01 00 00 45 33 C0 49 8B 56 18" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B D8 48 8B 47 30 48 8B 78 10 48 8B CF E8 ?? ?? ?? ?? 48 85 DB 74 38 48 8B 13 48 8B 47 30 48 8B CB 48 39 42 30 75 20 E8 ?? ?? ?? ?? 0F B6 18 88 9C 24 90 00 00 00 BF B5 03 00 00 89 BC 24 A8 00 00 00 E9 4D 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 4C 8B F0 48 8B 4F 30 48 8B 59 10 48 8B CB E8 ?? ?? ?? ?? 48 8B D3 49 8B CE E8 ?? ?? ?? ?? 48 8B D8 48 89 84 24 A8 00 00 00 BF B5 03 00 00 89 BC 24 98 00 00 00 E9 3E 01 00 00 45 33 C0 49 8B 56 10" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 54 24 50 88 44 24 50 E8 ?? ?? ?? ?? 48 8B 4E 30 48 8B F8" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 45 33 C9 4C 8B C0 33 C9 E8 ?? ?? ?? ?? 45 33 C9 4C 8B C0 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 8B 4F 10" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 88 44 24 50 E8 ?? ?? ?? ?? 48 8B F0 48 85 C0 74 18 48 8B 13 48 8B C8 48 8B 52 30 E8 ?? ?? ?? ?? 48 85 C0 0F 84 CF 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 88 44 24 60 E8 ?? ?? ?? ?? 48 8B F0 48 85 C0 74 18 48 8B 13 48 8B C8 48 8B 52 30 E8 ?? ?? ?? ?? 48 85 C0 0F 84 A8 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B 42 30 48 39 41 30 48 8B CF 0F 85 FB 04 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? E9 CB 16 00 00" + }, + { + "offset": 0, + "sig": "48 3B 1D ?? ?? ?? ?? 48 0F 44 C7 48 85 C0 0F 85 74 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 85 DB 0F 84 54 0A 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 66 89 45 40 48 8B 42 30 48 39 41 30 48 8B CB 0F 85 07 0A 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B 0B 48 8B 42 30 48 39 41 30 48 8B CB 0F 84 7C 03 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 89 06 B8 6D D2 D9 91 E9 55 F7 FF FF" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF E8 ?? ?? ?? ?? 0F B6 00 66 89 84 24 A4 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 89 06 B8 6D D2 D9 91 E9 21 F3 FF FF" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF E8 ?? ?? ?? ?? 0F B6 00 66 89 84 24 B0 01 00 00" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF E8 ?? ?? ?? ?? 0F B6 00 48 89 84 24 20 04 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 89 06 B8 6D D2 D9 91 E9 0F E6 FF FF" + }, + { + "offset": 0, + "sig": "48 8B 15 ?? ?? ?? ?? 48 8B CF E8 ?? ?? ?? ?? 0F B6 00 48 89 84 24 30 04 00 00" + } + ], + "GameManager": [ + { + "offset": 16, + "sig": "48 8B CB E8 ?? ?? ?? ?? 84 C0 0F 84 BD 00 00 00 48 8B 05" + }, + { + "offset": 49, + "sig": "48 8B CB E8 ?? ?? ?? ?? 84 C0 0F 84 BD 00 00 00 48 8B 05 ?? ?? ?? ?? F6 80 0A 01 00 00 01 74 18 83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05" + }, + { + "offset": 9, + "sig": "48 85 DB 0F 84 1A 02 00 00 48 8B 05" + }, + { + "offset": 39, + "sig": "0F 84 1A 02 00 00 48 8B 05 ?? ?? ?? ?? F6 80 0A 01 00 00 01 74 18 83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05" + }, + { + "offset": 0, + "sig": "48 8B 05 ?? ?? ?? ?? 4C 8B AC 24 38 01 00 00" + }, + { + "offset": 34, + "sig": "4C 8B A4 24 30 01 00 00 F6 80 0A 01 00 00 01 74 18 83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05" + }, + { + "offset": 5, + "sig": "E9 F0 01 00 00 48 8B 05" + }, + { + "offset": 38, + "sig": "E9 F0 01 00 00 48 8B 05 ?? ?? ?? ?? F6 80 0A 01 00 00 01 74 18 83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05" + }, + { + "offset": 14, + "sig": "4C 8B C6 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 48 8B 05" + }, + { + "offset": 0, + "sig": "48 8B 05 ?? ?? ?? ?? F6 80 0A 01 00 00 01 74 18 83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B 08 48 85 C9 0F 84 DE 00 00 00 33 D2" + }, + { + "offset": 0, + "sig": "48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B 08 48 85 C9 0F 84 DE 00 00 00 33 D2" + }, + { + "offset": 9, + "sig": "48 85 C0 0F 84 0D 04 00 00 48 8B 05" + }, + { + "offset": 39, + "sig": "0F 84 0D 04 00 00 48 8B 05 ?? ?? ?? ?? F6 80 0A 01 00 00 01 74 18 83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05" + }, + { + "offset": 0, + "sig": "48 8B 05 ?? ?? ?? ?? F6 80 0A 01 00 00 01 74 18 83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B 08 48 85 C9 0F 84 9A 00 00 00 33 D2" + }, + { + "offset": 0, + "sig": "48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B 08 48 85 C9 0F 84 9A 00 00 00 33 D2" + }, + { + "offset": 5, + "sig": "3B 4F 2C 74 45 48 8B 05" + }, + { + "offset": 0, + "sig": "48 8B 05 ?? ?? ?? ?? F6 80 0A 01 00 00 01 74 18 83 B8 BC 00 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B 08 48 85 C9 74 59 33 D2" + }, + { + "offset": 0, + "sig": "48 8B 05 ?? ?? ?? ?? 48 8B 80 A0 00 00 00 48 8B 08 48 85 C9 74 59 33 D2" + }, + { + "offset": 13, + "sig": "4C 8B C0 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 8B 05" + }, + { + "offset": 46, + "sig": "4C 8B C0 48 8B D3 33 C9 E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? F6 80 0A 01 00 00 01 74 18 44 39 A8 BC 00 00 00 75 0F 48 8B C8 E8 ?? ?? ?? ?? 48 8B 05" + } + ], + "Int32": [ + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 85 FF 74 1E 4C 89 7C 24 20 41 B9 01 00 00 00 4C 8B C0 48 8B D3 48 8B CF E8 ?? ?? ?? ?? E9 31 FD FF FF" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 85 FF 74 0B 4C 8B C0 48 8B D3 E9 29 03 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 54 24 40 89 5C 24 40 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 54 24 50 89 7C 24 50 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 44 39 A1 BC 00 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 89 7C 24 54 E8 ?? ?? ?? ?? 48 8B D0" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 94 24 A8 00 00 00 89 BC 24 A8 00 00 00 E8 ?? ?? ?? ?? 4C 8B C8" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 89 9C 24 A8 00 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 54 24 78 89 44 24 78 E8 ?? ?? ?? ?? 4C 8B F0 48 85 F6" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 94 24 C0 00 00 00 48 8B E8" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 54 24 68 48 8B D8 89 7C 24 68 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 54 24 20 89 5C 24 20" + }, + { + "offset": 13, + "sig": "49 8B D4 33 C9 48 8B F0 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 54 24 48 89 44 24 48 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9" + }, + { + "offset": 161, + "sig": "49 8B D7 33 C9 E8 ?? ?? ?? ?? 45 33 C0 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 44 39 A1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 48 8D 4D 27 4C 8B C3 33 D2 E8 ?? ?? ?? ?? 48 8B 1D ?? ?? ?? ?? 48 8B CB 0F 10 00 0F 11 45 FF E8 ?? ?? ?? ?? BA 06 00 00 00 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8D 4D FF 48 8B D8 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 55 EB 89 45 EB E8 ?? ?? ?? ?? 48 8B F8" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 55 F3 89 45 F3 E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 74 18" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 55 F7 89 45 F7 E8 ?? ?? ?? ?? 48 8B F8 48 85 C0 74 18" + }, + { + "offset": 47, + "sig": "E9 BD 02 00 00 48 8B 1D ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? BA 07 00 00 00 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8D 4D FF 48 8B D8 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 93, + "sig": "C3 33 D2 48 8B CB E8 ?? ?? ?? ?? 4C 8B 17 45 33 C0 8B D0 48 8B CF 4D 8B 8A B8 01 00 00 41 FF 92 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 D2 48 8B CB 48 8B F8 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8D 54 24 20 48 8B D8 89 7C 24 20" + } + ], + "Singleton_1_EntityManager_": [ + { + "offset": 9, + "sig": "48 85 C0 0F 85 09 02 00 00 48 8B 0D" + }, + { + "offset": 16, + "sig": "48 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 85 BC 01 00 00 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 10 02 00 00 33 D2" + }, + { + "offset": 71, + "sig": "BA 00 30 00 00 48 8B C8 4C 89 BC 24 A0 00 00 00 E8 ?? ?? ?? ?? 4C 8B F8 48 85 C0 0F 84 DF 01 00 00 48 8B 55 48 48 85 D2 0F 84 D2 01 00 00 48 8B 0D ?? ?? ?? ?? 33 FF 48 39 0A 48 0F 44 FA 48 85 FF 0F 84 B9 01 00 00 48 8B 0D" + }, + { + "offset": 5, + "sig": "83 F8 25 75 6C 48 8B 0D" + }, + { + "offset": 17, + "sig": "33 D2 33 C9 E8 ?? ?? ?? ?? 84 C0 0F 85 40 01 00 00 48 8B 0D" + }, + { + "offset": 49, + "sig": "0F 85 93 00 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 84 C0 75 68 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 3C 01 00 00 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01" + }, + { + "offset": 56, + "sig": "FF 90 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 9, + "sig": "48 85 DB 0F 84 80 00 00 00 48 8B 0D" + }, + { + "offset": 35, + "sig": "E9 6C 09 00 00 E8 ?? ?? ?? ?? CC E8 ?? ?? ?? ?? CC 48 8B CF E8 ?? ?? ?? ?? CC 48 8B CF E8 ?? ?? ?? ?? CC 48 8B 0D" + }, + { + "offset": 35, + "sig": "E9 BC 07 00 00 E8 ?? ?? ?? ?? CC E8 ?? ?? ?? ?? CC 48 8B CF E8 ?? ?? ?? ?? CC 48 8B CF E8 ?? ?? ?? ?? CC 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 5B 02 00 00 45 33 C0 8B 56 38" + }, + { + "offset": 16, + "sig": "CC E8 ?? ?? ?? ?? CC 48 8B CF E8 ?? ?? ?? ?? CC 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 4C 8B 07 48 8B CE 4C 3B C2 48 0F 44 CF 48 85 C9 0F 84 70 01 00 00" + }, + { + "offset": 5, + "sig": "44 88 64 24 40 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8B CB" + }, + { + "offset": 12, + "sig": "48 8B F0 48 85 C0 0F 84 BA 01 00 00 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 D7 00 00 00 45 33 C0 8B D7" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 7A 03 00 00 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0" + } + ], + "Singleton_1_EventManager_": [ + { + "offset": 16, + "sig": "F3 0F 11 44 24 20 8B D5 48 8B CE E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 13, + "sig": "4C 8B C5 8B D0 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 13, + "sig": "44 8B C5 8B D7 48 8B CE E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 15, + "sig": "8B D0 48 89 7C 24 20 48 8B CE E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 15, + "sig": "44 89 74 24 20 8B D6 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 13, + "sig": "44 8B C3 8B D0 48 8B CE E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 BA 00 00 00 45 33 C9 45 33 C0 48 8B D3" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 DF 00 00 00 45 33 C9 45 33 C0" + }, + { + "offset": 14, + "sig": "44 0F B6 C0 8B D5 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 23, + "sig": "48 C7 44 24 20 00 00 00 00 44 0F B6 C0 8B D6 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 CB 00 00 00 45 33 C9" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 16 45 33 C9 45 33 C0 48 8B D3 48 8B C8 48 83 C4 30" + }, + { + "offset": 16, + "sig": "48 89 5C 24 20 41 8B D7 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 14, + "sig": "8B D7 48 8B C8 E8 ?? ?? ?? ?? 48 89 73 40 48 8B 0D" + }, + { + "offset": 17, + "sig": "89 4C 24 28 48 8B CB 44 89 64 24 20 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4C 8B F0 48 85 C0 0F 84 C6 02 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 49 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 13" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 13 45 33 C9 45 33 C0 48 8B D3 48 8B C8 E8 ?? ?? ?? ?? EB 05" + }, + { + "offset": 15, + "sig": "8B D0 48 8B CB 44 89 64 24 20 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 81 00 00 00 45 33 C9 45 33 C0 48 8B D3" + } + ], + "Singleton_1_InteractionManager_": [ + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 26 FE FF FF" + }, + { + "offset": 6, + "sig": "0F 84 26 FE FF FF 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 71 45 33 C0 48 8B D7" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 4C 8B F0 F6 81 0A 01 00 00 01 74 0D 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B D8" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 4C 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F8" + }, + { + "offset": 15, + "sig": "C6 86 80 00 00 00 01 E8 ?? ?? ?? ?? 89 47 10 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 48 89 5C 24 50 E8" + }, + { + "offset": 4, + "sig": "44 89 76 68 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F0 48 85 DB 0F 84 5C 01 00 00" + }, + { + "offset": 26, + "sig": "74 18 33 D2 48 8B CE E8 ?? ?? ?? ?? 45 33 C0 48 8B D0 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 8B 58 20 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 48 89 9C 24 80 00 00 00 E8 ?? ?? ?? ?? 45 33 FF" + }, + { + "offset": 35, + "sig": "41 B0 01 48 8B D5 48 8B C8 E8 ?? ?? ?? ?? 48 8B 6C 24 40 48 8B 74 24 48 48 8B 5C 24 50 48 83 C4 30 5F C3 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 D2 48 8B CB 4C 8B F0" + }, + { + "offset": 28, + "sig": "EB 60 33 D2 48 8B CB E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D0 33 C9 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B E8 48 85 C0 74 35" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B D8 48 85 FF" + }, + { + "offset": 17, + "sig": "45 33 C0 33 D2 48 8B C8 E8 ?? ?? ?? ?? 84 C0 74 42 48 8B 0D" + }, + { + "offset": 10, + "sig": "48 C7 43 18 00 00 00 00 74 71 48 8B 0D" + }, + { + "offset": 59, + "sig": "48 C7 43 18 00 00 00 00 74 71 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 40 48 8B 0D" + } + ], + "Singleton_1_ItemModule_": [ + { + "offset": 18, + "sig": "83 F8 07 74 0D 32 C0 48 8B 5C 24 30 48 83 C4 20 5F C3 48 8B 0D" + }, + { + "offset": 20, + "sig": "4C 89 74 24 78 E8 ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 2C" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 29" + }, + { + "offset": 2, + "sig": "72 85 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 4F 10 48 8B D8 48 85 C9 74 5C" + }, + { + "offset": 21, + "sig": "C6 05 ?? ?? ?? ?? ?? 33 D2 48 8B CB E8 ?? ?? ?? ?? 84 C0 74 43 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 89 74 24 60 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F0 48 85 DB" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 2B 01 00 00 45 33 C0 33 D2" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 15 85 DB" + }, + { + "offset": 16, + "sig": "48 8B 6C 24 60 48 8B 7C 24 70 48 83 C4 50 5B C3 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 4F 18 48 8B F0 48 85 C9 0F 84 24 01 00 00" + }, + { + "offset": 11, + "sig": "0F 85 BC 00 00 00 48 89 6C 24 60 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B D8 48 85 F6 74 5B" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 84 81 0A 01 00 00 74 0E 44 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4D 8B 0E" + }, + { + "offset": 185, + "sig": "33 D2 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 9, + "sig": "0F 2F F0 0F 86 97 00 00 00 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F8 4D 85 E4" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F0 4D 85 E4" + }, + { + "offset": 4, + "sig": "32 C0 EB 88 48 8B 0D" + } + ], + "Singleton_1_LoadingManager_": [ + { + "offset": 23, + "sig": "48 89 5C 24 28 45 0F B6 C1 48 8B C8 F3 0F 11 44 24 20 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 1D 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0 74 08 8B 40 20" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 2D 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 85 C0" + }, + { + "offset": 24, + "sig": "4D 8B 65 10 75 12 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 44, + "sig": "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 33 D2 33 C9 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 4C 8B B4 24 90 00 00 00 F6 81 0A 01 00 00 01" + }, + { + "offset": 27, + "sig": "44 89 45 F7 4C 89 6C 24 28 45 0F B6 C1 48 8B C8 F3 0F 11 44 24 20 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0D 39 B9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F0 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 85 F6 0F 84 AC 00 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 31" + }, + { + "offset": 4, + "sig": "4C 89 7F 40 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 0F 85 2E 01 00 00" + }, + { + "offset": 9, + "sig": "49 8B 57 40 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 30, + "sig": "75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 0A 01 00 00 48 8B 0D" + }, + { + "offset": 12, + "sig": "48 8B CF 41 8D 51 0C E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 22, + "sig": "80 B8 F8 00 00 00 00 75 0D 33 C0 48 8B 5C 24 30 48 83 C4 20 5F C3 48 8B 0D" + }, + { + "offset": 14, + "sig": "44 0F B6 C6 8B D7 48 8B C8 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 12, + "sig": "45 33 C9 41 8D 51 05 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 ED 01 00 00 8B 56 18" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 89 6C 24 60 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 0F 85 91 00 00 00" + } + ], + "Singleton_1_MBHLOBDPKEC_": [ + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 44 84 A1 0A 01 00 00 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B E8" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 53 28" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 C9 48 89 4D 0F" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 89 74 24 30 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 33 D2 48 8B CB 48 8B F8" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 40 84 B9 0A 01 00 00 74 0E 44 39 A9 BC 00 00 00" + }, + { + "offset": 6, + "sig": "0F 8E 70 FF FF FF 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 1D 45 33 C0 33 D2" + }, + { + "offset": 3, + "sig": "41 8B DC 48 8B 0D" + }, + { + "offset": 46, + "sig": "48 8B F8 F6 81 0A 01 00 00 01 74 0D 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 45 33 C9 48 89 6C 24 20 41 B0 01 48 8B D7 33 C9 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 24, + "sig": "0F 8D C8 00 00 00 4C 8B 05 ?? ?? ?? ?? 41 8B D6 49 8B CF E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 18, + "sig": "74 10 45 33 C9 41 B0 01 33 D2 48 8B C8 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4C 8B F0 33 D2" + }, + { + "offset": 16, + "sig": "48 8B CD E8 ?? ?? ?? ?? 84 C0 0F 84 CE 02 00 00 48 8B 0D" + }, + { + "offset": 22, + "sig": "E8 ?? ?? ?? ?? 45 33 C9 45 33 C0 48 8B D0 48 8B CD E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 18, + "sig": "74 10 4C 8B 05 ?? ?? ?? ?? 41 8B 56 10 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 19, + "sig": "33 C9 E8 ?? ?? ?? ?? 48 8B F0 48 85 C0 0F 84 F7 00 00 00 48 8B 0D" + }, + { + "offset": 14, + "sig": "45 33 C9 48 8B D6 48 8B CF E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B F8 48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 48 89 BC 24 88 00 00 00 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 19, + "sig": "48 8D 94 24 C0 00 00 00 48 8B C8 E8 ?? ?? ?? ?? 48 8B F0 48 8B 0D" + } + ], + "Singleton_1_UIManager_1_": [ + { + "offset": 22, + "sig": "48 8B CE E8 ?? ?? ?? ?? 45 33 C0 0F B6 D0 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 16, + "sig": "0F 84 60 01 00 00 33 D2 48 8B CB E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4C 8B F0 48 85 FF" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 44 8B F0 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F0" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 8B F8 F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D8 E8" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 4C 8B 07 48 8B CF 48 8B F0 49 8B 90 78 02 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 83 B9 BC 00 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 85 32 FF FF FF" + }, + { + "offset": 32, + "sig": "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 45 33 C9 41 B0 01 48 8B D3 48 8B C8 48 8B F8 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 9, + "sig": "84 C0 74 68 48 89 7C 24 30 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 B1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B F8 E8" + }, + { + "offset": 18, + "sig": "45 0F B6 C1 48 8B D7 48 8B C8 48 8B D8 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 5, + "sig": "E9 6D 02 00 00 48 8B 0D" + }, + { + "offset": 23, + "sig": "8B D8 E8 ?? ?? ?? ?? 45 33 C0 8B D3 48 8B C8 48 8B F0 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 8, + "sig": "48 8B D6 E9 BE 00 00 00 48 8B 0D" + }, + { + "offset": 26, + "sig": "48 C7 44 24 20 00 00 00 00 45 33 C0 48 8B D7 48 8B C8 48 8B D8 E8 ?? ?? ?? ?? 48 8B 0D" + }, + { + "offset": 9, + "sig": "E8 ?? ?? ?? ?? 84 DB 74 62 48 8B 0D" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A9 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 0D 02 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 83 CB FF F6 81 0A 01 00 00 01" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? F6 81 0A 01 00 00 01 74 0E 44 39 A1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 0F 84 EE 0E 00 00" + }, + { + "offset": 0, + "sig": "48 8B 0D ?? ?? ?? ?? 40 84 B1 0A 01 00 00 74 0E 44 39 A1 BC 00 00 00 75 05 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 48 85 C0 74 12" + } + ] + } +} \ No newline at end of file diff --git a/cheat-library/src/framework/dllmain.cpp b/cheat-library/src/framework/dllmain.cpp index 8c51317..176f59f 100644 --- a/cheat-library/src/framework/dllmain.cpp +++ b/cheat-library/src/framework/dllmain.cpp @@ -3,8 +3,9 @@ #define WIN32_LEAN_AND_MEAN #include -#include "il2cpp-init.h" -#include "main.h" + +#include +#include // DLL entry point BOOL WINAPI DllMain( HMODULE hModule, @@ -15,7 +16,7 @@ BOOL WINAPI DllMain( HMODULE hModule, switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: - CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Run, nullptr, 0, NULL); + CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Run, new HMODULE(hModule), 0, NULL); break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: diff --git a/cheat-library/src/framework/helpers.cpp b/cheat-library/src/framework/helpers.cpp index db296b5..03bbc8c 100644 --- a/cheat-library/src/framework/helpers.cpp +++ b/cheat-library/src/framework/helpers.cpp @@ -2,14 +2,42 @@ // Helper functions #include "pch-il2cpp.h" - -#define WIN32_LEAN_AND_MEAN -#include -#include -#include #include "helpers.h" +#define WIN32_LEAN_AND_MEAN + +#include +#include + + // Helper function to get the module base address + +uintptr_t il2cpp_get_mono_base_address() +{ + static HMODULE hMono = GetModuleHandle("mono.dll"); + + if (hMono != NULL) + return (uintptr_t)hMono; + + HMODULE hModules[1024] = {}; + + DWORD cbNeeded = 0; + BOOL result = EnumProcessModules(GetCurrentProcess(), hModules, sizeof(hModules), &cbNeeded); + if (result == FALSE) + return NULL; + + for (int i = 0; i < (cbNeeded / sizeof(HMODULE)); i++) + { + if (hModules[i] == NULL) + continue; + + if (GetProcAddress(hModules[i], "il2cpp_thread_attach") != NULL) + return (uintptr_t)hModules[i]; + } + + return 0; +} + uintptr_t il2cppi_get_base_address() { return (uintptr_t) GetModuleHandleW(L"UserAssembly.dll"); } @@ -22,17 +50,48 @@ uintptr_t il2cppi_get_unity_address() { void il2cppi_new_console() { AllocConsole(); freopen_s((FILE**) stdout, "CONOUT$", "w", stdout); + freopen_s((FILE**) stderr, "CONOUT$", "w", stderr); +} + +void il2cppi_close_console() { + fclose(stdout); + fclose(stderr); + FreeConsole(); } #if _MSC_VER >= 1920 // Helper function to convert Il2CppString to std::string std::string il2cppi_to_string(Il2CppString* str) { - std::u16string u16(reinterpret_cast(str->chars), str->length); + std::u16string u16(reinterpret_cast(str->chars)); return std::wstring_convert, char16_t>{}.to_bytes(u16); } +std::string il2cppi_to_string(app::Vector vec) { + return util::string_format("{ x = %f, y = %f, z = %f }", vec._x, vec._y, vec._z); +} + +std::string il2cppi_to_string(app::Vector2 vec) { + return util::string_format("{ x = %f, y = %f }", vec.x, vec.y); +} + +std::string il2cppi_to_string(app::Vector3 vec) { + return util::string_format("{ x = %f, y = %f, z = %f }", vec.x, vec.y, vec.z); +} + // Helper function to convert System.String to std::string std::string il2cppi_to_string(app::String* str) { + if (str == nullptr) + return std::string(""); return il2cppi_to_string(reinterpret_cast(str)); } + +std::string to_hex_string(app::Byte__Array* barray, int length) { + if (barray == nullptr) + return std::string(); + + std::stringstream stream; + auto uarray = TO_UNI_ARRAY(barray, uint8_t); + return util::to_hex_string(uarray->begin(), length); +} + #endif \ No newline at end of file diff --git a/cheat-library/src/framework/helpers.h b/cheat-library/src/framework/helpers.h index 5fd8846..3a2a658 100644 --- a/cheat-library/src/framework/helpers.h +++ b/cheat-library/src/framework/helpers.h @@ -6,24 +6,281 @@ #include #include #include +#include +#include + +#include #include "il2cpp-metadata-version.h" +#define IS_SINGLETON_LOADED(className) (*app::Singleton_1_## className ##___TypeInfo != nullptr && *app::Singleton_1_ ## className ## __get_Instance__MethodInfo != nullptr) +#define GET_SINGLETON(tpname) IS_SINGLETON_LOADED(tpname) ? reinterpret_cast(app::Singleton_GetInstance(nullptr, *app::Singleton_1_ ## tpname ## __get_Instance__MethodInfo)) : nullptr + +#define INIT_ILCPP_CLASS(className, expr) (il2cpp_runtime_class_init(reinterpret_cast(*app::## className ##__TypeInfo)), expr) +#define GET_STATIC_FIELDS(tpname) INIT_ILCPP_CLASS(tpname, (*app::## tpname ##__TypeInfo)->static_fields) + +#define SAFE_BEGIN() __try { +#define SAFE_ERROR() } __except (EXCEPTION_EXECUTE_HANDLER) { \ +LOG_WARNING("Exception 0x%08x.", GetExceptionCode()); + +#define SAFE_END() } +#define SAFE_EEND() SAFE_ERROR(); SAFE_END(); + +#define COMMA , +#define TO_UNI_COLLECTION(field, collection) reinterpret_cast(field) +#define TO_UNI_ARRAY(field, type) TO_UNI_COLLECTION(field, UniArray) +#define TO_UNI_LIST(field, type) TO_UNI_COLLECTION(field, UniList) +#define TO_UNI_LINK_LIST(field, type) TO_UNI_COLLECTION(field, UniLinkList) +#define TO_UNI_DICT(field, keyType, valueType) TO_UNI_COLLECTION(field, UniDict) + +template +struct UniLinkList; + +template +struct UniLinkListNode +{ + ElementT item; + UniLinkList* container; + UniLinkListNode* forward; + UniLinkListNode* back; +}; + +template +struct UniLinkList +{ + void* klass; + MonitorData* monitor; + uint32_t count; + uint32_t version; + app::Object* syncRoot; + UniLinkListNode* first; + struct SerializationInfo* si; +}; + +template +struct UniArray { + void* klass; + MonitorData* monitor; + Il2CppArrayBounds* bounds; + il2cpp_array_size_t max_length; + ElementT vector[32]; + + typedef ElementT* iterator; + typedef const ElementT* const_iterator; + + size_t length() const { return (bounds == nullptr) ? max_length : bounds->length; } + + iterator begin() { return &vector[0]; } + const_iterator begin() const { return &vector[0]; } + iterator end() { return &vector[length()]; } + const_iterator end() const { return &vector[length()]; } + ElementT* operator[](int i) { return &vector[i]; } + + std::vector vec() + { + auto result = std::vector(length()); + for (auto i = begin(); i < end(); i++) + result.push_back(*i); + return result; + } +}; + +template +struct UniList +{ + void* klass; + void* monitor; + UniArray* store; + int32_t size; + int32_t version; + + typedef T* iterator; + typedef const T* const_iterator; + + iterator begin() { return (*store)[0]; } + const_iterator begin() const { return (*store)[0]; } + iterator end() { return (*store)[size]; } + const_iterator end() const { return (*store)[size]; } + + std::vector vec() + { + auto result = std::vector(); + result.reserve(size); + for (auto i = begin(); i < end(); i++) + result.push_back(*i); + return result; + } +}; + +template +struct __declspec(align(8)) UniDict { + void* klass; + MonitorData* monitor; + struct app::Int32__Array* table; + struct app::Link__Array* linkSlots; + struct UniArray* keySlots; + struct UniArray* valueSlots; + int32_t touchedSlots; + int32_t emptySlot; + int32_t count; + int32_t threshold; + void* hcp; + void* serialization_info; + int32_t generation; + + std::vector> pairs() + { + auto pairs = std::vector>(); + +#define DictCheckNull(field, msg) if (field == nullptr) { LOG_WARNING("Failed to get dict pairs: %s", msg); return pairs; } + + DictCheckNull(linkSlots, "LinkSlots pointer is null."); + DictCheckNull(keySlots, "Key slots is null."); + DictCheckNull(valueSlots, "ValueSlots pointer is null."); + +#undef DictCheckNull + + int32_t next = 0; + const int HASH_FLAG = 0x80000000; + while (next < touchedSlots) + { + int32_t cur = next++; + if ((linkSlots->vector[cur].HashCode & HASH_FLAG) != 0) + { + pairs.push_back( + std::make_pair( + keySlots->vector[cur], + valueSlots->vector[cur] + ) + ); + } + } + return pairs; + } +}; + +template +T* CastTo(void* pObject, void* pClass) +{ + auto object = reinterpret_cast(pObject); + if (object == nullptr || object->klass == nullptr || object->klass != pClass) + return nullptr; + + return reinterpret_cast(object); +} + +inline app::Vector3 operator + (const app::Vector3& A, const app::Vector3& B) +{ + return { A.x + B.x, A.y + B.y, A.z + B.z }; +} + +inline app::Vector3 operator + (const app::Vector3& A, const float k) +{ + return { A.x + k, A.y + k, A.z + k }; +} + +inline app::Vector3 operator - (const app::Vector3& A, const app::Vector3& B) +{ + return { A.x - B.x, A.y - B.y, A.z - B.z }; +} + +inline app::Vector3 operator - (const app::Vector3& A, const float k) +{ + return { A.x - k, A.y - k, A.z - k }; +} + +inline app::Vector3 operator * (const app::Vector3& A, const float k) +{ + return { A.x * k, A.y * k, A.z * k }; +} + +inline app::Vector3 operator / (const app::Vector3& A, const float k) +{ + return { A.x / k, A.y / k, A.z / k }; +} + +inline app::Vector3 operator - (const app::Vector3& A) +{ + return { -A.x, -A.y, -A.z}; +} + +inline app::Vector2 operator + (const app::Vector2& A, const float k) +{ + return { A.x + k, A.y + k}; +} + +inline app::Vector2 operator - (const app::Vector2& A, const app::Vector2& B) +{ + return { A.x - B.x, A.y - B.y }; +} + +inline app::Vector2 operator - (const app::Vector2& A, const float k) +{ + return { A.x - k, A.y - k}; +} + +inline app::Vector2 operator + (const app::Vector2& A, const app::Vector2& B) +{ + return { A.x + B.x, A.y + B.y }; +} + +inline app::Vector2 operator * (const app::Vector2& A, const float k) +{ + return { A.x * k, A.y * k }; +} + +inline app::Vector2 operator * (const app::Vector2& A, const app::Vector2& B) +{ + return { A.x * B.x, A.y * B.y }; +} + +inline app::Vector2 operator / (const app::Vector2& A, const float k) +{ + return { A.x / k, A.y / k }; +} + +inline app::Vector2 operator - (const app::Vector2& A) +{ + return { -A.x, -A.y }; +} + +inline float GetVectorMagnitude(const app::Vector3& A) +{ + return sqrtf(A.x * A.x + A.y * A.y + A.z * A.z); +} + +inline app::Vector3 GetVectorDirection(const app::Vector3& from, const app::Vector3& to) +{ + auto dirRaw = to - from; + return dirRaw / GetVectorMagnitude(dirRaw); +} + +inline bool IsVectorZero(const app::Vector3& vector) +{ + return vector.x == 0 && vector.y == 0 && vector.z == 0; +} + +// Helper function to get mono module base address +uintptr_t il2cpp_get_mono_base_address(); + // Helper function to get the module base address uintptr_t il2cppi_get_base_address(); -// Helpre function to get the UnityPlayer.dll base address +// Helper function to get the UnityPlayer.dll base address uintptr_t il2cppi_get_unity_address(); // Helper function to open a new console window and redirect stdout there void il2cppi_new_console(); +void il2cppi_close_console(); #if _MSC_VER >= 1920 -// Helper function to convert Il2CppString to std::string std::string il2cppi_to_string(Il2CppString* str); - -// Helper function to convert System.String to std::string std::string il2cppi_to_string(app::String* str); +std::string il2cppi_to_string(app::Vector vec); +std::string il2cppi_to_string(app::Vector2 vec); +std::string il2cppi_to_string(app::Vector3 vec); + +std::string to_hex_string(app::Byte__Array* barray, int length); #endif // Helper function to check if a metadata usage pointer is initialized @@ -35,10 +292,3 @@ template bool il2cppi_is_initialized(T* metadataItem) { return !((uintptr_t) *metadataItem & 1); #endif } - -// Helper function to convert a pointer to hex -template std::string to_hex_string(T i) { - std::stringstream stream; - stream << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << std::hex << i; - return stream.str(); -} \ No newline at end of file diff --git a/cheat-library/src/framework/il2cpp-appdata.h b/cheat-library/src/framework/il2cpp-appdata.h index 02d7dbb..8ddc364 100644 --- a/cheat-library/src/framework/il2cpp-appdata.h +++ b/cheat-library/src/framework/il2cpp-appdata.h @@ -28,7 +28,9 @@ namespace app { // TypeInfo pointers #define DO_TYPEDEF(a, n) extern n ## __Class** n ## __TypeInfo +#define DO_SINGLETONEDEF(a, n) extern Singleton_1__Class** n ## __TypeInfo namespace app { #include "il2cpp-types-ptr.h" } -#undef DO_TYPEDEF \ No newline at end of file +#undef DO_TYPEDEF +#undef DO_SINGLETONEDEF \ No newline at end of file diff --git a/cheat-library/src/framework/il2cpp-init.cpp b/cheat-library/src/framework/il2cpp-init.cpp index ec2f1ca..9554aab 100644 --- a/cheat-library/src/framework/il2cpp-init.cpp +++ b/cheat-library/src/framework/il2cpp-init.cpp @@ -6,6 +6,8 @@ #include "il2cpp-init.h" #include "helpers.h" +#include + // IL2CPP APIs #define DO_API(r, n, p) r (*n) p #include "il2cpp-api-functions.h" @@ -23,19 +25,19 @@ namespace app { // TypeInfo pointers #define DO_TYPEDEF(a, n) n ## __Class** n ## __TypeInfo +#define DO_SINGLETONEDEF(a, n) Singleton_1__Class** n ## __TypeInfo namespace app { #include "il2cpp-types-ptr.h" +#include } #undef DO_TYPEDEF +#undef DO_SINGLETONEDEF -// IL2CPP application initializer -void init_il2cpp() +void init_static_offsets() { // Get base address of IL2CPP module uintptr_t baseAddress = il2cppi_get_base_address(); - using namespace app; - // Define IL2CPP API function addresses #define DO_API(r, n, p) n = (r (*) p)(baseAddress + n ## _ptr) #include "il2cpp-api-functions.h" @@ -43,15 +45,17 @@ void init_il2cpp() // Define function addresses #define DO_APP_FUNC(a, r, n, p) n = (r (*) p)(baseAddress + a) - #define DO_APP_FUNC_METHODINFO(a, n) n = (struct MethodInfo **)(baseAddress + a) + #define DO_APP_FUNC_METHODINFO(a, n) n = (struct MethodInfo **)(baseAddress + a) #include "il2cpp-functions.h" #undef DO_APP_FUNC - #undef DO_APP_FUNC_METHODINFO + #undef DO_APP_FUNC_METHODINFO // Define TypeInfo variables - #define DO_TYPEDEF(a, n) n ## __TypeInfo = (n ## __Class**) (baseAddress + a); + #define DO_SINGLETONEDEF(a, n) n ## __TypeInfo = (Singleton_1__Class**) (baseAddress + a) + #define DO_TYPEDEF(a, n) n ## __TypeInfo = (n ## __Class**) (baseAddress + a) #include "il2cpp-types-ptr.h" #undef DO_TYPEDEF + #undef DO_SINGLETONEDEF uintptr_t unityPlayerAddress = il2cppi_get_unity_address(); // Define UnityPlayer functions @@ -60,4 +64,112 @@ void init_il2cpp() #include "il2cpp-unityplayer-functions.h" #undef DO_APP_FUNC #undef DO_APP_FUNC_METHODINFO +} + +void init_scanned_offsets() +{ + // Get base address of IL2CPP module + uintptr_t baseAddress = il2cppi_get_base_address(); + +#define SELECT_OR(container, type, val, def) { auto value = val; if (value == 0) container = (type)(def); else container = (type)val; } + + static config::Field offsetDataField = config::CreateField("OffsetData", "OffsetData", "PatternScanner", true, nlohmann::json::object()); + + std::string signatures = ResourceLoader::Load("Signatures", RT_RCDATA); + + auto scanner = ILPatternScanner(); + scanner.ParseSignatureFile(signatures); + scanner.LoadJson(offsetDataField); + + using namespace app; + + // Define IL2CPP API function addresses + #define DO_API(r, n, p) n = (r (*) p) scanner.SearchAPI(#n); + #include "il2cpp-api-functions.h" + #undef DO_API + + il2cpp_thread_attach(il2cpp_domain_get()); + + // Define function addresses + #define DO_APP_FUNC(a, r, n, p) SELECT_OR(n, r (*) p, scanner.Search("UserAssembly.dll", #n), baseAddress + a) + #define DO_APP_FUNC_METHODINFO(a, n) SELECT_OR(n, struct MethodInfo **, scanner.SearchMethodInfo(#n), baseAddress + a) + #include "il2cpp-functions.h" + #undef DO_APP_FUNC + #undef DO_APP_FUNC_METHODINFO + + // Define TypeInfo variables + #define DO_SINGLETONEDEF(a, n) SELECT_OR(n ## __TypeInfo, Singleton_1__Class**, scanner.SearchTypeInfo(#n), baseAddress + a) + #define DO_TYPEDEF(a, n) SELECT_OR(n ## __TypeInfo, n ## __Class**, scanner.SearchTypeInfo(#n), baseAddress + a) + #include "il2cpp-types-ptr.h" + #undef DO_TYPEDEF + #undef DO_SINGLETONEDEF + + uintptr_t unityPlayerAddress = il2cppi_get_unity_address(); + // Define UnityPlayer functions + #define DO_APP_FUNC(a, r, n, p) SELECT_OR(n, r (*) p, scanner.Search("UnityPlayer.dll", #n), unityPlayerAddress + a) + #include "il2cpp-unityplayer-functions.h" + #undef DO_APP_FUNC + + if (scanner.IsUpdated()) + { + scanner.SaveJson(offsetDataField); + offsetDataField.FireChanged(); + + LOG_INFO("Seems like some offsets was found for a first time. Recommend to restart game for correct cheat and game work."); + } + +#undef SELECT_OR +} + +bool IsStaticCheckSumValid() +{ + PatternScanner scanner; + std::string assemblyChecksumData = ResourceLoader::Load("AssemblyChecksums", RT_RCDATA); + + nlohmann::json assemblyChecksumJson = nlohmann::json::parse(assemblyChecksumData, nullptr, false); + if (assemblyChecksumJson.is_discarded()) + { + LOG_ERROR("Failed to parse assembly checksum data."); + return false; + } + + static config::Field checksumTimestamps = + config::CreateField("ChecksumTimestamp", "m_CheckSumTimestamp", "PatternScanner", true, nlohmann::json::object()); + + std::string version = assemblyChecksumJson["game_version"]; + + for (auto& [moduleName, checksumData] : assemblyChecksumJson["modules"].items()) + { + if (checksumTimestamps.value().contains(moduleName)) + checksumData["timestamp"] = checksumTimestamps.value()[moduleName]; + + if (!scanner.IsValidModuleHash(moduleName, checksumData)) + { + LOG_WARNING("Seems like assembly checksum don't match with version %s. It's normal only if you using Chinese version of genshin impact.", version.c_str()); + return false; + } + + checksumTimestamps.value()[moduleName] = scanner.GetModuleTimestamp(moduleName); + } + //std::system("pause"); + checksumTimestamps.FireChanged(); + + return true; +} + +// IL2CPP application initializer +void init_il2cpp() +{ + if (IsStaticCheckSumValid()) + { + init_static_offsets(); + return; + } + +#ifdef _PATTERN_SCANNER + init_scanned_offsets(); +#else + init_static_offsets(); +#endif + } \ No newline at end of file diff --git a/cheat-library/src/framework/il2cpp-init.h b/cheat-library/src/framework/il2cpp-init.h index a2c675c..ad75746 100644 --- a/cheat-library/src/framework/il2cpp-init.h +++ b/cheat-library/src/framework/il2cpp-init.h @@ -3,5 +3,6 @@ #pragma once +#include // IL2CPP application initializer void init_il2cpp(); \ No newline at end of file diff --git a/cheat-library/src/framework/pch-il2cpp.h b/cheat-library/src/framework/pch-il2cpp.h index 2859c8d..cc6b69c 100644 --- a/cheat-library/src/framework/pch-il2cpp.h +++ b/cheat-library/src/framework/pch-il2cpp.h @@ -10,4 +10,47 @@ // add headers that you want to pre-compile here #include "il2cpp-appdata.h" +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#include + +#include +#include + #endif //PCH_IL2CPP_H \ No newline at end of file diff --git a/cheat-library/src/user/cheat/GenshinCM.cpp b/cheat-library/src/user/cheat/GenshinCM.cpp new file mode 100644 index 0000000..eb9ef82 --- /dev/null +++ b/cheat-library/src/user/cheat/GenshinCM.cpp @@ -0,0 +1,279 @@ +#include "pch-il2cpp.h" +#include "GenshinCM.h" + +#include +#include +#include + +#define ACTIVE_COLOR ImColor(0.13f, 0.8f, 0.08f) + +cheat::GenshinCM& cheat::GenshinCM::instance() +{ + static GenshinCM instance; + return instance; +} + +void cheat::GenshinCM::CursorSetVisibility(bool visibility) +{ + app::Cursor_set_visible(nullptr, visibility, nullptr); + app::Cursor_set_lockState(nullptr, visibility ? app::CursorLockMode__Enum::None : app::CursorLockMode__Enum::Locked, nullptr); +} + +bool cheat::GenshinCM::CursorGetVisibility() +{ + return app::Cursor_get_visible(nullptr, nullptr); +} + +cheat::GenshinCM::GenshinCM() : + NFEX(f_AccConfig, "Account Config", "data", "General::Multi-Account", internal::AccountConfig(), true), + NFS(f_ShowType, "Name show type", "General::Multi-Account", ShowType::Pseudo) +{ + events::AccountChangedEvent += MY_METHOD_HANDLER(cheat::GenshinCM::OnAccountChanged); +} + + +bool cheat::GenshinCM::IsAccountAttached(uint32_t userID, const std::string& profileName) +{ + auto& profiles = f_AccConfig.value().id2Profiles; + return profiles.count(userID) > 0 && profiles[m_CurrentAccount.userID] == profileName; +} + +std::string cheat::GenshinCM::GetAccountDisplayName(uint32_t uid) +{ + switch (f_ShowType.value()) + { + case ShowType::Nickname: + return uid == m_CurrentAccount.userID ? m_CurrentAccount.nickName : f_AccConfig.value().accounts[uid].nickName; + case ShowType::UserID: + return std::to_string(uid == m_CurrentAccount.userID ? m_CurrentAccount.userID : uid); + case ShowType::Pseudo: + default: + { + auto& pseudos = f_AccConfig.value().pseudos; + return pseudos.count(uid) == 0 ? m_CurrentAccount.nickName : pseudos[uid]; + } + break; + } +} + +void cheat::GenshinCM::DetachAccount(uint32_t uid, const std::string& profileName) +{ + auto& accConfig = f_AccConfig.value(); + accConfig.id2Profiles.erase(uid); + accConfig.accounts.erase(uid); + accConfig.profiles2id[profileName].erase(uid); + + f_AccConfig.FireChanged(); +} + +void cheat::GenshinCM::AttachAccount(uint32_t uid, const std::string& profileName) +{ + auto& accConfig = f_AccConfig.value(); + + if (accConfig.id2Profiles.count(uid) > 0) + { + auto prevProfile = accConfig.id2Profiles[uid]; + accConfig.profiles2id[prevProfile].erase(uid); + } + + accConfig.id2Profiles[uid] = profileName; + accConfig.accounts[uid] = m_CurrentAccount; + accConfig.profiles2id[profileName].insert(uid); + + if (accConfig.pseudos.count(uid) == 0) + accConfig.pseudos[uid] = m_CurrentAccount.nickName; + + f_AccConfig.FireChanged(); +} + +void cheat::GenshinCM::DrawProfileEntryActivities(const std::string& profileName) +{ + CheatManagerBase::DrawProfileEntryActivities(profileName); + + ImGui::SameLine(); + + if (m_CurrentAccount.userID == 0) + ImGui::BeginDisabled(); + + auto& profiles = f_AccConfig.value().id2Profiles; + bool isAccountAttached = IsAccountAttached(m_CurrentAccount.userID, profileName); + if (ImGui::SmallButton(isAccountAttached ? "-" : "+")) + { + if (isAccountAttached) + DetachAccount(m_CurrentAccount.userID, profileName); + else + AttachAccount(m_CurrentAccount.userID, profileName); + } + + if (ImGui::IsItemHovered()) + ImGui::SetTooltip(isAccountAttached ? "Dettach" : "Attach"); + + if (m_CurrentAccount.userID == 0) + ImGui::EndDisabled(); + + ImGui::SameLine(); + + if (ImGui::SmallButton("Acl")) + ImGui::OpenPopup("Account list"); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Account list"); + + if (ImGui::BeginPopup("Account list", ImGuiWindowFlags_AlwaysAutoResize)) + { + DrawAccountsList(profileName); + ImGui::EndPopup(); + } +} + +void cheat::GenshinCM::DrawProfileEntry(const std::string& profileName) +{ + CheatManagerBase::DrawProfileEntry(profileName); + ImGui::TableNextColumn(); + + auto& profileIds = f_AccConfig.value().profiles2id; + auto accountCount = profileIds.count(profileName) > 0 ? profileIds[profileName].size() : 0; + if (accountCount == 0) + { + ImGui::Text("No accounts."); + return; + } + + ImColor textColor = IsAccountAttached(m_CurrentAccount.userID, profileName) ? ACTIVE_COLOR : ImColor(ImGui::GetColorU32(ImGuiCol_Text)); + ImGui::TextColored(textColor, "%d account%s", accountCount, accountCount > 1 ? "s" : ""); +} + +void cheat::GenshinCM::DrawProfileTableHeader() +{ + CheatManagerBase::DrawProfileTableHeader(); + ImGui::TableSetupColumn("Accounts"); +} + +int cheat::GenshinCM::GetProfileTableColumnCount() +{ + return CheatManagerBase::GetProfileTableColumnCount() + 1; +} + +void cheat::GenshinCM::DrawAccountsList(const std::string& profileName) +{ + static ImGuiTableFlags flags = + ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable | ImGuiTableFlags_Hideable + | ImGuiTableFlags_RowBg | ImGuiTableFlags_BordersOuter | ImGuiTableFlags_BordersV | ImGuiTableFlags_NoBordersInBody + | ImGuiTableFlags_ScrollY; + if (ImGui::BeginTable("Accounts", 2, flags, + ImVec2(0.0f, ImGui::GetTextLineHeightWithSpacing() * 10), 0.0f)) + { + ImGui::TableSetupColumn("Name"); + ImGui::TableSetupColumn("Actions"); + ImGui::TableSetupScrollFreeze(0, 1); + ImGui::TableHeadersRow(); + + // Perform copying due to we can change values + auto userIDs = f_AccConfig.value().profiles2id[profileName]; + for (auto& userID : userIDs) + { + ImGui::TableNextRow(); + ImGui::TableNextColumn(); + + ImGui::PushID(userID); + + std::string name = GetAccountDisplayName(userID); + ImColor nameColor = m_CurrentAccount.userID == userID ? ACTIVE_COLOR : ImColor(ImGui::GetColorU32(ImGuiCol_Text)); + ImGui::TextColored(nameColor, name.c_str()); + + ImGui::TableNextColumn(); + + if (ImGui::Button("Remove")) + DetachAccount(userID, profileName); + + ImGui::SameLine(); + + DrawPseudoRename(userID); + + ImGui::PopID(); + } + + ImGui::EndTable(); + } +} + +void cheat::GenshinCM::DrawProfileLine() +{ + CheatManagerBase::DrawProfileLine(); + + if (m_CurrentAccount.userID == 0) + return; + + auto& currentProfile = config::CurrentProfileName(); + std::string name = GetAccountDisplayName(m_CurrentAccount.userID); + + constexpr float buttonWidth = 75.0f; + auto innerSpacing = ImGui::GetStyle().ItemInnerSpacing.x; + auto textWidth = CalcWidth(name); + auto width = textWidth + innerSpacing + buttonWidth; + + auto position = max(ImGui::GetCursorPosX() + innerSpacing + 130.0f, ImGui::GetContentRegionAvail().x - width + 20.0f); + + ImGui::SameLine(position); + + bool accountAttached = IsAccountAttached(m_CurrentAccount.userID, currentProfile); + + ImColor textColor = accountAttached ? ACTIVE_COLOR : ImColor(ImGui::GetColorU32(ImGuiCol_Text)); + ImGui::TextColored(textColor, name.c_str()); ImGui::SameLine(); + + if (ImGui::Button(accountAttached ? "Deattach" : "Attach", ImVec2(buttonWidth, 0.0f))) + { + if (accountAttached) + DetachAccount(m_CurrentAccount.userID, currentProfile); + else + AttachAccount(m_CurrentAccount.userID, currentProfile); + } +} + +void cheat::GenshinCM::DrawProfileConfiguration() +{ + ConfigWidget(f_ShowType, "Set accounts' name showing type."); + auto& pseudos = f_AccConfig.value().pseudos; + if (pseudos.count(m_CurrentAccount.userID) > 0) + { + ImGui::Text("Pseudo: %s", pseudos[m_CurrentAccount.userID].c_str()); ImGui::SameLine(); + DrawPseudoRename(m_CurrentAccount.userID); + } + + CheatManagerBase::DrawProfileConfiguration(); +} + + +void cheat::GenshinCM::DrawPseudoRename(uint32_t userID) +{ + auto& pseudo = f_AccConfig.value().pseudos[userID]; + if (ImGui::Button("Rename (Pseudo)")) + ImGui::OpenRenamePopup(pseudo); + + if (ImGui::DrawRenamePopup(pseudo)) + f_AccConfig.FireChanged(); +} + +void cheat::GenshinCM::OnAccountChanged(uint32_t userID) +{ + auto accountData = game::GetAccountData(); + if (accountData == nullptr) + { + m_CurrentAccount.userID = 0; + return; + } + + m_CurrentAccount.nickName = il2cppi_to_string(accountData->fields.nickName); + m_CurrentAccount.userID = accountData->fields.userId; + + auto& profiles = f_AccConfig.value().id2Profiles; + if (profiles.count(m_CurrentAccount.userID) == 0) + return; + + config::ChangeProfile(profiles[m_CurrentAccount.userID]); + + auto& settings = feature::Settings::GetInstance(); + + ImGuiToast toast(ImGuiToastType_Info, settings.f_NotificationsDelay.value(), "Account was updated.\nConfig profile was changed."); + toast.set_title("Config multi-account"); + ImGui::InsertNotification(toast); +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/GenshinCM.h b/cheat-library/src/user/cheat/GenshinCM.h new file mode 100644 index 0000000..432ca55 --- /dev/null +++ b/cheat-library/src/user/cheat/GenshinCM.h @@ -0,0 +1,96 @@ +#pragma once + +#include + +namespace cheat +{ + namespace internal + { + struct AccountData + { + public: + uint32_t userID; + std::string nickName; + + AccountData() : userID(0), nickName() {} + }; + + struct AccountConfig + { + public: + + std::unordered_map pseudos; + std::unordered_map accounts; + std::unordered_map id2Profiles; + std::unordered_map> profiles2id; + + inline bool operator==(const AccountConfig& other) + { + return accounts.size() == other.accounts.size() && pseudos.size() == other.pseudos.size(); + } + + AccountConfig() : pseudos(), accounts(), id2Profiles() { } + }; + + NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(AccountData, nickName, userID) + + inline void to_json(nlohmann::json& nlohmann_json_j, const AccountConfig& nlohmann_json_t) + { + NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, accounts, pseudos, id2Profiles)) + } + + inline void from_json(const nlohmann::json& nlohmann_json_j, AccountConfig& nlohmann_json_t) + { + NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, accounts, pseudos, id2Profiles)) + + for (auto& [userID, profileName] : nlohmann_json_t.id2Profiles) + { + auto& profileIDs = nlohmann_json_t.profiles2id[profileName]; + profileIDs.insert(userID); + } + } + + } + + + class GenshinCM : public CheatManagerBase + { + public: + static GenshinCM& instance(); + + void CursorSetVisibility(bool visibility) final; + bool CursorGetVisibility() final; + + protected: + enum class ShowType + { + Pseudo, + UserID, + Nickname + }; + + config::Field> f_ShowType; + + internal::AccountData m_CurrentAccount; + config::Field f_AccConfig; + + GenshinCM(); + + bool IsAccountAttached(uint32_t userID, const std::string& profileName); + std::string GetAccountDisplayName(uint32_t uid); + + void DetachAccount(uint32_t uid, const std::string& profileName); + void AttachAccount(uint32_t uid, const std::string& profileName); + + void DrawProfileEntryActivities(const std::string& profileName) final; + void DrawProfileEntry(const std::string& profileName) final; + void DrawProfileTableHeader() final; + int GetProfileTableColumnCount() final; + void DrawAccountsList(const std::string& profileName); + void DrawProfileConfiguration() final; + void DrawProfileLine() final; + void DrawPseudoRename(uint32_t userID); + + void OnAccountChanged(uint32_t userID); + }; +} diff --git a/cheat-library/src/user/cheat/ILPatternScanner.cpp b/cheat-library/src/user/cheat/ILPatternScanner.cpp new file mode 100644 index 0000000..a506a64 --- /dev/null +++ b/cheat-library/src/user/cheat/ILPatternScanner.cpp @@ -0,0 +1,644 @@ +#include + +#include "ILPatternScanner.h" +#include +#include +#include +#include + +#define SET_API_FUNC(r, n, p) \ + { \ + auto address = GetProcAddress(hMono, #n); \ + if (address == nullptr) \ + { \ + LOG_ERROR("Failed to get function '%s'.", #n); \ + return; \ + } \ + n = (r (*) p) address; \ + } + +#define FIND_VALUE(t, n, pat, o) static t n = nullptr; static t* p ##n = nullptr; \ + if (n == nullptr) \ + { \ + auto result = PatternScanner::SearchValue(ILPatternScanner::GetMonoHandle(), pat, o); \ + if (!result) \ + { \ + LOG_DEBUG("Failed to get " #n " address"); \ + } \ + else \ + { \ + n = **result; \ + p##n = *result; \ + LOG_DEBUG(#n " at 0x%p", *result); \ + } \ + } + +#define GET_FUNC_BY_XREF(r, n, p, pattern, offset) static r (*n) p = nullptr; \ + if (n == nullptr)\ + { \ + auto result = PatternScanner::SearchValue(ILPatternScanner::GetMonoHandle(), pattern, offset); \ + if (!result) LOG_ERROR("Failed to find pattern '%s' for function '%s'.", pattern, #n); \ + else n = *result; \ + } + +#define SET_API_FUNC_P(r, n, p, pattern) static r (*n) p = nullptr; \ + if (n == nullptr)\ + { \ + auto address = SearchInModule(ILPatternScanner::GetMonoHandle(), pattern); \ + if (address == 0) \ + { \ + LOG_ERROR("Failed to find pattern '%s' for function '%s'.", pattern, #n); \ + } \ + n = (r (*) p) address; \ + } + +void ILPatternScanner::ParseSignatureJson(void* signatureJson) +{ + nlohmann::json& jsonContent = *reinterpret_cast(signatureJson); + PatternScanner::ParseSignatureJson(&jsonContent["method"]); + + ParseXrefsJson(jsonContent["methodInfo"], m_MethodInfoPattern); + ParseXrefsJson(jsonContent["typeInfo"], m_TypeInfoPattern); +} + +std::map ILPatternScanner::LoadOffsetMap(const nlohmann::json& inObject) +{ + std::map result; + for (auto& entry : inObject.items()) + result[entry.key()] = GetOffsetInt(entry.value()); + return result; +} + +void ILPatternScanner::SaveOffsetMap(nlohmann::json& outObject, const std::map& map) +{ + for (auto& [key, value] : map) + outObject[key] = GetOffsetStr(value); +} + +void ILPatternScanner::SaveJson(nlohmann::json & outObject) +{ + PatternScanner::SaveJson(outObject["moduleInfo"]); + + PatternScanner::SaveModuleHash(GetMonoHandle(), outObject["monoHash"]); + SaveOffsetMap(outObject["apiFunctions"], m_ApiMethodsCache); + SaveOffsetMap(outObject["typeInfo"], m_TypeInfoCache); + SaveOffsetMap(outObject["methodInfo"], m_MethodInfoCache); +} + +bool ILPatternScanner::LoadJson(const nlohmann::json & object) +{ + if (object.contains("moduleInfo")) + PatternScanner::LoadJson(object["moduleInfo"]); + + if (object.contains("monoHash") && !PatternScanner::IsValidModuleHash(GetMonoHandle(), object["monoHash"])) + { + LOG_DEBUG("Mono module hash mismatch. Seems game was updated."); + return false; + } + + if (object.contains("apiFunctions")) + m_ApiMethodsCache = LoadOffsetMap(object["apiFunctions"]); + + if (object.contains("typeInfo")) + m_TypeInfoCache = LoadOffsetMap(object["typeInfo"]); + + if (object.contains("methodInfo")) + m_MethodInfoCache = LoadOffsetMap(object["methodInfo"]); + + return true; +} + +std::string SubstrFromLastOccur(const std::string & value, char findChar) +{ + size_t lastCharPos = value.find_last_of(findChar); + if (lastCharPos != std::string::npos) + return value.substr(lastCharPos + 1); + return value; +} + +void ReplaceAllOccur(std::string & value, char findChar, char replaceChar) +{ + size_t pos = value.find(findChar); + + char* data = const_cast(value.data()); + while (pos != std::string::npos) + { + data[pos] = replaceChar; + pos = value.find(findChar, pos + 1); + } +} + +HMODULE ILPatternScanner::GetMonoHandle() +{ + return (HMODULE)il2cpp_get_mono_base_address(); +} + +ILPatternScanner::MetadataInfo* ILPatternScanner::GetMetadataInfo() +{ + FIND_VALUE(void*, s_GlobalMetadata, "48 89 05 ?? ?? ?? ?? 48 85 C0 75 13", 3); + static ModifiedMetadataHeader* s_GlobalMetadataHeader = *reinterpret_cast(ps_GlobalMetadata + 1); + + FIND_VALUE(Il2CppMetadataRegistration*, s_Il2CppMetadataRegistration, "48 8B 05 ?? ?? ?? ?? 48 63 48 30", 3); + static Il2CppCodeRegistration* s_Il2CppCodeRegistration = *reinterpret_cast(ps_Il2CppMetadataRegistration - 1); + static MetadataInfo registrationInfo = { s_GlobalMetadata, s_GlobalMetadataHeader, s_Il2CppCodeRegistration , s_Il2CppMetadataRegistration }; + return ®istrationInfo; +} + +ILPatternScanner::ILPatternScanner() : PatternScanner() { } + +uintptr_t ILPatternScanner::SearchAPI(const std::string& apiFunctionName) +{ + uintptr_t monoBase = il2cpp_get_mono_base_address(); + HMODULE hMono = GetMonoHandle(); + + if (m_ApiMethodsCache.count(apiFunctionName) > 0) + return monoBase + m_ApiMethodsCache[apiFunctionName]; + + uintptr_t apiFuncAddress = reinterpret_cast(GetProcAddress(hMono, apiFunctionName.c_str())); + if (apiFuncAddress == 0) + { + LOG_LAST_ERROR("API %s not found.", apiFunctionName.c_str()); + + return 0; + } + + LOG_DEBUG("API %s was found at UserAssembly.dll + 0x%p.", apiFunctionName.c_str(), apiFuncAddress - monoBase); + m_ApiMethodsCache[apiFunctionName] = apiFuncAddress - monoBase; + m_CacheChanged = true; + return apiFuncAddress; +} + +uintptr_t ILPatternScanner::SearchTypeInfo(const std::string& typeName) +{ + HMODULE hMono = GetMonoHandle(); + uintptr_t monoBase = il2cpp_get_mono_base_address(); + if (m_TypeInfoCache.count(typeName) > 0) + return m_TypeInfoCache[typeName] == 0 ? 0 : monoBase + m_TypeInfoCache[typeName]; + + auto& xrefs = m_TypeInfoPattern[typeName]; + AddressCounter counter; + for (auto& xrefInfo : xrefs) + { + uintptr_t address = SearchXref(hMono, xrefInfo); + if (address == 0) + continue; + counter.Add(address); + } + + uintptr_t address = counter.GetMax(); + if (address == 0) + { + address = GetUsageOffset(typeName); + address = address == 0 ? 0 : address + monoBase; + } + + if (address == 0) + LOG_WARNING("TypeInfo '%s' not found.", typeName.c_str()); + else + LOG_DEBUG("TypeInfo '%s' was found at UserAssembly.dll + 0x%p.", typeName.c_str(), address - monoBase); + + m_TypeInfoCache[typeName] = address == 0 ? 0 : address - monoBase; + m_CacheChanged = true; + return address; +} + +uintptr_t ILPatternScanner::SearchMethodInfo(const std::string& methodName) +{ + HMODULE hMono = GetMonoHandle(); + uintptr_t monoBase = il2cpp_get_mono_base_address(); + if (m_MethodInfoCache.count(methodName) > 0) + return m_MethodInfoCache[methodName] == 0 ? 0 : monoBase + m_MethodInfoCache[methodName]; + + auto& xrefs = m_MethodInfoPattern[methodName]; + AddressCounter counter; + for (auto& xrefInfo : xrefs) + { + uintptr_t address = SearchXref(hMono, xrefInfo); + if (address == 0) + continue; + counter.Add(address); + } + + uintptr_t address = counter.GetMax(); + if (address == 0) + { + address = GetUsageOffset(methodName); + address = address == 0 ? 0 : address + monoBase; + } + + if (address == 0) + LOG_WARNING("MethodInfo '%s' not found.", methodName.c_str()); + else + LOG_DEBUG("MethodInfo '%s' was found at UserAssembly.dll + 0x%p.", methodName.c_str(), address - monoBase); + + m_MethodInfoCache[methodName] = address == 0 ? 0 : address - monoBase; + m_CacheChanged = true; + return address; +} + +uintptr_t ILPatternScanner::Search(const std::string& moduleName, const std::string& name) +{ + bool isSaved = m_CacheOffsets.count(moduleName) > 0 && m_CacheOffsets[moduleName].count(name) > 0; + if (!isSaved && m_ModulePatterns.count(moduleName) > 0 && m_ModulePatterns[moduleName].count(name) > 0) + { + auto& methodPatternData = m_ModulePatterns[moduleName][name]; + if (methodPatternData.signatures.size() == 0 && methodPatternData.xrefs.size() == 0) + { + LOG_DEBUG("Method '%s::%s' has not signatures, will be used manual specified offset.", moduleName.c_str(), name.c_str()); + AddOffset(moduleName, name, 0); + return 0; + } + } + + uintptr_t result = PatternScanner::Search(moduleName, name); + if (result != 0 || isSaved) + { + if (!isSaved) + LOG_DEBUG("Method '%s::%s' was found at %s + 0x%p.", moduleName.c_str(), name.c_str(), + moduleName.c_str(), result - il2cpp_get_mono_base_address()); + + return result; + } + + if (GetModuleInfo(moduleName).handle != GetMonoHandle()) + { + LOG_WARNING("Method '%s::%s' not found.", moduleName.c_str(), name.c_str()); + return 0; + } + + uintptr_t address = GetMethodAddress(name); + if (address != 0) + { + LOG_DEBUG("Method '%s::%s' was found at %s + 0x%p by name.", moduleName.c_str(), name.c_str(), + moduleName.c_str(), result - il2cpp_get_mono_base_address()); + + AddOffset(moduleName, name, address - il2cpp_get_mono_base_address()); + } + return address; +} + +void ILPatternScanner::SearchAll() +{ + PatternScanner::SearchAll(); + + for (auto& [name, entry] : m_MethodInfoPattern) + SearchMethodInfo(name); + + for (auto& [name, entry] : m_TypeInfoPattern) + SearchMethodInfo(name); +} + +void ILPatternScanner::ParseXrefsJson(const nlohmann::json& xrefsJson, std::map>& out) +{ + for (auto& entry : xrefsJson.items()) + { + std::string name = entry.key(); + out[name] = {}; + auto& newPatternEntry = out[name]; + + for (auto& xrefInfo : entry.value()) + newPatternEntry.push_back({ xrefInfo["sig"], xrefInfo["offset"] }); + } +} + +uintptr_t ILPatternScanner::GetUsageOffset(const std::string& name) +{ + if (m_UsageOffsetMap.size() == 0) + LoadUsage(); + + if (m_UsageOffsetMap.count(name) == 0) + return 0; + return m_UsageOffsetMap[name]; +} + +uintptr_t ILPatternScanner::GetMethodAddress(const std::string& name) +{ + if (m_MethodNameMap.size() == 0) + LoadUsage(); + + if (m_MethodNameMap.count(name) == 0) + return 0; + + return m_MethodNameMap[name]; +} + +uintptr_t ILPatternScanner::FindFunctionEntry(uintptr_t address) +{ + auto& monoModuleInfo = GetModuleInfo(GetMonoHandle()); + if (address < monoModuleInfo.base || address > monoModuleInfo.base + monoModuleInfo.size) + return address; + + if (m_MethodPointers.size() == 0) + LoadMethodPointers(); + + auto iter = std::upper_bound(m_MethodPointers.begin(), m_MethodPointers.end(), address); + if (iter != m_MethodPointers.begin()) + { + iter--; + return *iter; + } + + return 0; +} + +void ILPatternScanner::LoadMethodPointers() +{ + auto info = GetMetadataInfo(); + +#define LOAD_METHOD_POINTERS(countField, field) LOG_DEBUG( #field ": %d", info->codeRegistration->##countField); \ + for (uint32_t i = 0; i < info->codeRegistration->##countField##; i++) \ + m_MethodPointers.push_back((uintptr_t)info->codeRegistration->##field[i]); + + LOAD_METHOD_POINTERS(methodPointersCount, methodPointers); + LOAD_METHOD_POINTERS(reversePInvokeWrapperCount, reversePInvokeWrappers); + LOAD_METHOD_POINTERS(genericMethodPointersCount, genericMethodPointers); + LOAD_METHOD_POINTERS(invokerPointersCount, invokerPointers); + LOAD_METHOD_POINTERS(unresolvedVirtualCallCount, unresolvedVirtualCallPointers); + +#undef LOAD_METHOD_POINTERS + + std::sort(m_MethodPointers.begin(), m_MethodPointers.end()); + LOG_DEBUG("Loaded %llu method pointers.", m_MethodPointers.size()); +} + +template +static T MetadataOffset(void* metadata, size_t sectionOffset, size_t itemIndex) +{ + return reinterpret_cast(reinterpret_cast(metadata) + sectionOffset) + itemIndex; +} + +const MethodInfo* ILPatternScanner::GetMethodInfoFromIndex(uint32_t methodIndex) +{ + SET_API_FUNC_P(Il2CppGenericMethod*, GetGenericMethodFromIndex, (uint32_t index), "40 53 48 83 EC 20 48 8B 05 ?? ?? ?? ?? 48 63"); + + GET_FUNC_BY_XREF(MethodInfo*, GetMethod, (const Il2CppGenericMethod * gmethod), "E8 ?? ?? ?? ?? 48 8B C8 0F B7 FE", 1); + GET_FUNC_BY_XREF(MethodInfo*, GetMethodInfoFromMethodDefinitionIndex, (uint32_t index), "E8 ?? ?? ?? ?? 48 8B 40 18 48 83 C4 28", 1); + + uint32_t index = GetDecodedMethodIndex(methodIndex); + + if (index == 0) + return NULL; + + if (GetEncodedIndexType(methodIndex) == kIl2CppMetadataUsageMethodRef) + return GetMethod(GetGenericMethodFromIndex(index)); + else + return GetMethodInfoFromMethodDefinitionIndex(index); +} + +std::string ILPatternScanner::ComputeGenericParamsPrefix(const Il2CppGenericInst* inst) +{ + std::stringstream paramsPrefix; + for (uint32_t i = 0; i < inst->type_argc; i++) + { + if (i > 0) + paramsPrefix << "_"; + + const Il2CppType* type = inst->type_argv[i]; + std::string typeName = il2cpp_type_get_name(type); + //if (m_TranslationMap.count(typeName) > 0) + // typeName = m_TranslationMap[typeName]; + + paramsPrefix << typeName; + } + + return paramsPrefix.str(); +} + +std::string ILPatternScanner::ComputeInspectorClassName(const Il2CppClass* klass) +{ + std::string className = il2cpp_class_get_name(const_cast(klass)); + + std::stringstream fullNameStream; + + if (className != "") + { + className = SubstrFromLastOccur(className, '.'); + ReplaceAllOccur(className, '`', '_'); + fullNameStream << className; + } + + bool isInflated = il2cpp_class_is_inflated(klass); + bool isGeneric = il2cpp_class_is_generic(klass); + + Il2CppGenericClass* genericClass = klass->generic_class; + if (isGeneric || !isInflated || genericClass == nullptr) + return fullNameStream.str(); + + const Il2CppGenericInst* classInst = genericClass->context.class_inst; + if (classInst != nullptr) + fullNameStream << "_" << ComputeGenericParamsPrefix(classInst) << "_"; + return fullNameStream.str(); +} + +std::string ILPatternScanner::ComputeInspectorMethodName(const MethodInfo* method) +{ + static std::map countNames; + + Il2CppClass* klass = il2cpp_method_get_class(method); + std::string methodName = il2cpp_method_get_name(method); + + std::stringstream fullNameStream; + + fullNameStream << ComputeInspectorClassName(klass); + + fullNameStream << "_" << methodName; + + //bool isInflated = il2cpp_method_is_inflated(method); + //bool isGeneric = il2cpp_method_is_generic(method); + + //const Il2CppGenericMethod* genericMethod = method->genericMethod; + //if (isGeneric || !isInflated || genericMethod == nullptr) + // return fullNameStream.str(); + + std::string currentNamePart = fullNameStream.str(); + if (countNames.count(currentNamePart) == 0) + { + countNames[currentNamePart] = 0; + return fullNameStream.str(); + } + + auto& count = countNames[currentNamePart]; + count++; + fullNameStream << "_" << count; + + return fullNameStream.str(); +} + +void ILPatternScanner::LoadUsage() +{ + SET_API_FUNC_P(Il2CppClass*, GetTypeInfoFromTypeIndex, (uint32_t index), "48 83 EC 28 83 F9 FF 75"); + + auto info = GetMetadataInfo(); + + auto s_GlobalMetadata = info->globalMeadata; + auto s_GlobalMetadataHeader = info->metadataHeader; + auto s_Il2CppMetadataRegistration = info->metadataRegistration; + + auto monoModuleBase = il2cpp_get_mono_base_address(); + + uint32_t usageListCount = static_cast(s_GlobalMetadataHeader->metadataUsageListsCount) / sizeof(Il2CppMetadataUsagePair); + for (uint32_t index = 0; index < usageListCount; index++) + { + const Il2CppMetadataUsageList* metadataUsageLists = MetadataOffset(s_GlobalMetadata, s_GlobalMetadataHeader->metadataUsageListsOffset, index); + + uint32_t start = metadataUsageLists->start; + uint32_t count = metadataUsageLists->count; + + for (uint32_t i = 0; i < count; i++) + { + uint32_t offset = start + i; + const Il2CppMetadataUsagePair* metadataUsagePairs = MetadataOffset(s_GlobalMetadata, s_GlobalMetadataHeader->metadataUsagePairsOffset, offset); + uint32_t destinationIndex = metadataUsagePairs->destinationIndex; + uint32_t encodedSourceIndex = metadataUsagePairs->encodedSourceIndex; + + Il2CppMetadataUsage usage = GetEncodedIndexType(encodedSourceIndex); + uint32_t decodedIndex = GetDecodedMethodIndex(encodedSourceIndex); + + void** container = s_Il2CppMetadataRegistration->metadataUsages[destinationIndex]; + uintptr_t containerOffset = reinterpret_cast(container) - monoModuleBase; + + switch (usage) + { + case kIl2CppMetadataUsageTypeInfo: + { + Il2CppClass* klass = GetTypeInfoFromTypeIndex(decodedIndex); + + std::string className = ComputeInspectorClassName(klass) + "__TypeInfo"; + m_UsageOffsetMap[className] = offset; + + *container = klass; + } + break; + case kIl2CppMetadataUsageMethodDef: + case kIl2CppMetadataUsageMethodRef: + { + MethodInfo* method = const_cast(GetMethodInfoFromIndex(encodedSourceIndex)); + *container = method; + + if (method->is_generic || method->methodPointer == nullptr) + break; + + std::string methodName = ComputeInspectorMethodName(method); + std::string methodInfoName = methodName + "__MethodInfo"; + + m_UsageOffsetMap[methodInfoName] = offset; + + uintptr_t pointer = reinterpret_cast(method->methodPointer); + m_MethodNameMap[methodName] = pointer; + // m_MethodPointerMap[pointer] = methodName; + } + break; + default: + break; + } + } + } + LoadMetadata(); +} + +void ILPatternScanner::LoadMetadata() +{ + LOG_DEBUG("Loading methods..."); + + if (!GetMonoHandle()) + { + LOG_ERROR("Mono module not found in game process."); + return; + } + + SET_API_FUNC_P(void, image_get_types, (const Il2CppImage * image, bool exportedOnly, std::vector*target), "48 89 5C 24 18 55 56 41 56 48 83 EC 20 8B"); + + size_t assembliesCount = 0; + auto assemblies = il2cpp_domain_get_assemblies(il2cpp_domain_get(), &assembliesCount); + + for (size_t i = 0; i < assembliesCount; i++) + { + auto assembly = assemblies[i]; + auto image = il2cpp_assembly_get_image(assembly); + + std::vector types; + image_get_types(image, true, &types); + + for (auto& type : types) + LoadClassMethods(const_cast(type)); + } + // LoadGenericMethods(); + + LOG_DEBUG("Loaded %llu method names.", m_MethodNameMap.size()); + LOG_DEBUG("Loaded %llu usages.", m_UsageOffsetMap.size()); +} + +void ILPatternScanner::LoadClassMethods(Il2CppClass* klass) +{ + void* iter = nullptr; + const MethodInfo* method = nullptr; + std::string className = il2cpp_class_get_name(klass); + do + { + method = il2cpp_class_get_methods(klass, &iter); + if (method == nullptr) + break; + + uintptr_t methodPtr = *(uintptr_t*)method; + if (methodPtr == 0) + continue; + + std::string methodName = ComputeInspectorMethodName(method); + + m_MethodNameMap[methodName] = methodPtr; + //m_MethodPointerMap[methodPtr] = name; + } while (method); + + iter = nullptr; + const Il2CppClass* nested = nullptr; + do + { + nested = il2cpp_class_get_nested_types(klass, &iter); + if (nested == nullptr) + break; + LoadClassMethods((Il2CppClass*)nested); + + } while (true); +} + +// +//void ILPatternScanner::LoadGenericMethods() +//{ +// SET_API_FUNC_P(Il2CppGenericMethod*, MetadataCache_GetGenericMethodFromIndex, (uint32_t index), "40 53 48 83 EC 20 48 8B 05 ?? ?? ?? ?? 48 63"); +// FIND_VALUE(MethodInfo**, s_MethodInfoDefinitionTable, "48 8B 05 ?? ?? ?? ?? 48 C1 E2 06", 3); +// +// auto registration = GetMetadataInfo(); +// +// LOG_DEBUG("Count generic functions: %d", registration->metadataRegistration->genericMethodTableCount); +// for (int i = 0; i < registration->metadataRegistration->genericMethodTableCount; i++) +// { +// auto genericMethodIndices = registration->metadataRegistration->genericMethodTable + i; +// auto index = genericMethodIndices->genericMethodIndex; +// +// auto methodSpec = registration->metadataRegistration->methodSpecs + index; +// auto methodInfoOffset = ps_MethodInfoDefinitionTable + methodSpec->methodDefinitionIndex; +// +// auto genericMethod = MetadataCache_GetGenericMethodFromIndex(index); +// auto methodDefinition = genericMethod->methodDefinition; +// auto methodName = il2cpp_method_get_name(methodDefinition); +// if (strcmp(methodName, "get_Instance") != 0) +// continue; +// +// auto klass = il2cpp_method_get_class(methodDefinition); +// auto className = il2cpp_class_get_name(klass); +// +// std::string name = className; +// +// auto classInst = genericMethod->context.class_inst; +// for (int i = 0; i < classInst->type_argc; i++) +// { +// auto type = classInst->type_argv[i]; +// auto typeName = il2cpp_type_get_name(type); +// name = fmt::format("{}_{}", name, typeName); +// } +// LOG_DEBUG("%s_%s : %d", name.c_str(), methodName, methodSpec->methodDefinitionIndex); +// } +//} +#undef SET_API_FUNC +#undef SET_API_FUNC_P +#undef FIND_VALUE \ No newline at end of file diff --git a/cheat-library/src/user/cheat/ILPatternScanner.h b/cheat-library/src/user/cheat/ILPatternScanner.h new file mode 100644 index 0000000..2c4d945 --- /dev/null +++ b/cheat-library/src/user/cheat/ILPatternScanner.h @@ -0,0 +1,180 @@ +#pragma once +#include +class ILPatternScanner : + public PatternScanner +{ + +public: + ILPatternScanner(); + + uintptr_t SearchAPI(const std::string& apiFunctionName); + uintptr_t SearchTypeInfo(const std::string& typeName); + uintptr_t SearchMethodInfo(const std::string& methodName); + + uintptr_t Search(const std::string& moduleName, const std::string& name) override; + + void SearchAll() override; + + void SaveJson(nlohmann::json& outObject) override; + bool LoadJson(const nlohmann::json& object) override; + +protected: + + std::map m_MethodNameMap; + //std::map m_MethodPointerMap; + std::map m_UsageOffsetMap; + + std::map> m_MethodInfoPattern; + std::map> m_TypeInfoPattern; + + // Maybe in some feature I do search method/type info by translated name, but not now, not now + // std::map m_TranslationMap; + + std::map m_ApiMethodsCache; + std::map m_MethodInfoCache; + std::map m_TypeInfoCache; + + std::vector m_MethodPointers; + + uintptr_t GetUsageOffset(const std::string& name); + uintptr_t GetMethodAddress(const std::string& name); + uintptr_t FindFunctionEntry(uintptr_t address) override; + + static HMODULE GetMonoHandle(); + + void ParseXrefsJson(const nlohmann::json& xrefsJson, std::map>& out); + + std::map LoadOffsetMap(const nlohmann::json& inObject); + void SaveOffsetMap(nlohmann::json& outObject, const std::map& map); + + void LoadMetadata(); + void LoadMethodPointers(); + + std::string ComputeGenericParamsPrefix(const Il2CppGenericInst* inst); + std::string ComputeInspectorClassName(const Il2CppClass* klass); + std::string ComputeInspectorMethodName(const MethodInfo* method); + const MethodInfo* GetMethodInfoFromIndex(uint32_t methodIndex); + void LoadUsage(); + + // void LoadGenericMethods(); + void LoadClassMethods(Il2CppClass* klass); + + struct ModifiedMetadataHeader + { + char unk[0x28]; + + int genericContainersOffset; // Il2CppGenericContainer + int genericContainersCount; + int nestedTypesOffset; // TypeDefinitionIndex + int nestedTypesCount; + int interfacesOffset; // TypeIndex + int interfacesCount; + int vtableMethodsOffset; // EncodedMethodIndex + int vtableMethodsCount; + int interfaceOffsetsOffset; // Il2CppInterfaceOffsetPair + int interfaceOffsetsCount; + int typeDefinitionsOffset; // Il2CppTypeDefinition + int typeDefinitionsCount; + + int rgctxEntriesOffset; // Il2CppRGCTXDefinition + int rgctxEntriesCount; + + int unk1; + int unk2; + int unk3; + int unk4; + + int imagesOffset; // Il2CppImageDefinition + int imagesCount; + int assembliesOffset; // Il2CppAssemblyDefinition + int assembliesCount; + + int fieldsOffset; + int fieldsCount; + int genericParametersOffset; // Il2CppGenericParameter + int genericParametersCount; + + int fieldAndParameterDefaultValueDataOffset; // uint8_t + int fieldAndParameterDefaultValueDataCount; + + int fieldMarshaledSizesOffset; // Il2CppFieldMarshaledSize + int fieldMarshaledSizesCount; + int referencedAssembliesOffset; // int32_t + int referencedAssembliesCount; + + int attributesInfoOffset; // Il2CppCustomAttributeTypeRange + int attributesInfoCount; + int attributeTypesOffset; // TypeIndex + int attributeTypesCount; + + int unresolvedVirtualCallParameterTypesOffset; // TypeIndex + int unresolvedVirtualCallParameterTypesCount; + int unresolvedVirtualCallParameterRangesOffset; // Il2CppRange + int unresolvedVirtualCallParameterRangesCount; + + int windowsRuntimeTypeNamesOffset; // Il2CppWindowsRuntimeTypeNamePair + int windowsRuntimeTypeNamesSize; + int exportedTypeDefinitionsOffset; // TypeDefinitionIndex + int exportedTypeDefinitionsCount; + + int unk5; + int unk6; + + int parametersOffset; // Il2CppParameterDefinition + int parametersCount; + + int genericParameterConstraintsOffset; // TypeIndex + int genericParameterConstraintsCount; + + int unk7; + int unk8; + + int metadataUsagePairsOffset; // Il2CppMetadataUsagePair + int metadataUsagePairsCount; + + int unk9; + int unk10; + int unk11; + int unk12; + + int fieldRefsOffset; // Il2CppFieldRef + int fieldRefsCount; + + int eventsOffset; // Il2CppEventDefinition + int eventsCount; + int propertiesOffset; // Il2CppPropertyDefinition + int propertiesCount; + int methodsOffset; // Il2CppMethodDefinition + int methodsCount; + + int parameterDefaultValuesOffset; // Il2CppParameterDefaultValue + int parameterDefaultValuesCount; + + int fieldDefaultValuesOffset; // Il2CppFieldDefaultValue + int fieldDefaultValuesCount; + + int unk13; + int unk14; + int unk15; + int unk16; + + int metadataUsageListsOffset; // Il2CppMetadataUsageList + int metadataUsageListsCount; + }; + + struct MetadataInfo + { + void* globalMeadata; + ModifiedMetadataHeader* metadataHeader; + + Il2CppCodeRegistration* codeRegistration; + Il2CppMetadataRegistration* metadataRegistration; + }; + + MetadataInfo* GetMetadataInfo(); + + + void ParseSignatureJson(void* signatureJson) override; + +}; + diff --git a/cheat-library/src/user/cheat/cheat.cpp b/cheat-library/src/user/cheat/cheat.cpp new file mode 100644 index 0000000..3b27994 --- /dev/null +++ b/cheat-library/src/user/cheat/cheat.cpp @@ -0,0 +1,161 @@ +#include +#include "cheat.h" + +#include + +#include + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#include + +#include +#include +#include + +#include "GenshinCM.h" + +namespace cheat +{ + static void InstallEventHooks(); + + void Init() + { + config::SetupUpdate(&events::GameUpdateEvent); + + auto& protectionBypass = feature::ProtectionBypass::GetInstance(); + protectionBypass.Init(); + + GenshinCM& manager = GenshinCM::instance(); + +#define FEAT_INST(name) &feature::##name##::GetInstance() + manager.AddFeatures({ + &protectionBypass, + FEAT_INST(Settings), + FEAT_INST(Hotkeys), + FEAT_INST(Debug), + FEAT_INST(PacketSniffer), + + FEAT_INST(GodMode), + FEAT_INST(InfiniteStamina), + FEAT_INST(NoCD), + FEAT_INST(NoClip), + FEAT_INST(RapidFire), + + FEAT_INST(AutoLoot), + FEAT_INST(AutoTreeFarm), + FEAT_INST(AutoDestroy), + FEAT_INST(DialogSkip), + FEAT_INST(DumbEnemies), + FEAT_INST(ElementalSight), + FEAT_INST(KillAura), + FEAT_INST(MobVacuum), + + FEAT_INST(ChestTeleport), + FEAT_INST(OculiTeleport), + FEAT_INST(MapTeleport), + FEAT_INST(CustomTeleports), + + FEAT_INST(ESP), + FEAT_INST(InteractiveMap), + + FEAT_INST(AutoFish), + + FEAT_INST(NoFog), + FEAT_INST(FPSUnlock), + FEAT_INST(CameraZoom) + + }); +#undef FEAT_INST + + manager.SetModuleOrder({ + "Player", + "World", + "Teleport", + "ESP", + "Visuals", + "Hotkeys", + "Settings", + "Debug" + }); + + LPBYTE pFontData = nullptr; + DWORD dFontSize = 0; + if (!ResourceLoader::LoadEx("ImGui_Font", RT_RCDATA, pFontData, dFontSize)) + LOG_WARNING("Failed to get font from resources."); + + manager.Init(pFontData, dFontSize); + + InstallEventHooks(); + } + + static void CheckAccountChanged() + { + UPDATE_DELAY(2000U); + + static uint32_t _lastUserID = 0; + + auto playerModule = GET_SINGLETON(PlayerModule); + if (playerModule == nullptr || playerModule->fields._accountData_k__BackingField == nullptr) + return; + + auto& accountData = playerModule->fields._accountData_k__BackingField->fields; + if (_lastUserID != accountData.userId) + events::AccountChangedEvent(accountData.userId); + + _lastUserID = accountData.userId; + } + + static void GameManager_Update_Hook(app::GameManager* __this, MethodInfo* method) + { + SAFE_BEGIN(); + events::GameUpdateEvent(); + CheckAccountChanged(); + SAFE_EEND(); + + CALL_ORIGIN(GameManager_Update_Hook, __this, method); + } + + static void LevelSyncCombatPlugin_RequestSceneEntityMoveReq_Hook(app::BKFGGJFIIKC* __this, uint32_t entityId, app::MotionInfo* syncInfo, + bool isReliable, uint32_t relseq, MethodInfo* method) + { + events::MoveSyncEvent(entityId, syncInfo); + CALL_ORIGIN(LevelSyncCombatPlugin_RequestSceneEntityMoveReq_Hook, __this, entityId, syncInfo, isReliable, relseq, method); + } + + static void InstallEventHooks() + { + HookManager::install(app::GameManager_Update, GameManager_Update_Hook); + HookManager::install(app::LevelSyncCombatPlugin_RequestSceneEntityMoveReq, LevelSyncCombatPlugin_RequestSceneEntityMoveReq_Hook); + } + +} + diff --git a/cheat-library/src/user/cheat/cheat.h b/cheat-library/src/user/cheat/cheat.h new file mode 100644 index 0000000..3268b6e --- /dev/null +++ b/cheat-library/src/user/cheat/cheat.h @@ -0,0 +1,8 @@ +#pragma once + +#include + +namespace cheat +{ + void Init(); +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/esp/ESP.cpp b/cheat-library/src/user/cheat/esp/ESP.cpp new file mode 100644 index 0000000..23edc7c --- /dev/null +++ b/cheat-library/src/user/cheat/esp/ESP.cpp @@ -0,0 +1,660 @@ +#include "pch-il2cpp.h" +#include "ESP.h" + +#include +#include + +#include +#include +#include "ESPRender.h" +#include + +#define IMGUI_DEFINE_MATH_OPERATORS +#include +#include + +#include "cheat-base/cheat/CheatManagerBase.h" + +namespace cheat::feature +{ + + ESP::ESP() : Feature(), + NF(f_Enabled, "ESP", "ESP", false), + + NF(f_DrawBoxMode, "Draw Mode", "ESP", DrawMode::Box), + NF(f_DrawTracerMode, "Tracer Mode", "ESP", DrawTracerMode::Line), + NF(f_Fill, "Fill Box/Rectangle/Arrows", "ESP", false), + NF(f_FillTransparency, "Fill Transparency", "ESP", 0.5f), + + NF(f_ArrowRadius, "Arrow Radius", "ESP", 100.0f), + NF(f_OutlineThickness, "Outline Thickness", "ESP", 1.0f), + NF(f_TracerSize, "Tracer Size", "ESP", 1.0f), + NF(f_DrawDistance, "Draw Distance", "ESP", false), + NF(f_DrawName, "Draw Name", "ESP", false), + + NF(f_FontSize, "Font Size", "ESP", 12.0f), + NF(f_FontOutline, "Font outline", "ESP", true), + NF(f_FontOutlineSize, "Font outline size", "ESP", 1.0f), + + NF(f_GlobalFontColor, "Font Color", "ESP", ImColor(255, 255, 255)), + NF(f_GlobalBoxColor, "Box Color", "ESP", ImColor(255, 255, 255)), + NF(f_GlobalLineColor, "Tracer Color", "ESP", ImColor(255, 255, 255)), + NF(f_GlobalRectColor, "Rect Color", "ESP", ImColor(255, 255, 255)), + + NF(f_MinSize, "Min. Entity Size", "ESP", 0.5f), + NF(f_Range, "Range", "ESP", 100.0f), + m_Search({}) + { + InstallFilters(); + + m_FontContrastColor = ImGui::CalcContrastColor(f_GlobalFontColor); + + ::events::KeyUpEvent += MY_METHOD_HANDLER(ESP::OnKeyUp); + } + + + const FeatureGUIInfo& ESP::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "", "ESP", false }; + return info; + } + + void ESP::DrawMain() + { + if (BeginGroupPanel("General", ImVec2(-1, 0), true)) + { + ConfigWidget("ESP Enabled", f_Enabled, "Show filtered object through obstacles."); + ConfigWidget("Range (m)", f_Range, 1.0f, 1.0f, 200.0f); + + ConfigWidget(f_DrawBoxMode, "Select the mode of box drawing."); + ConfigWidget(f_DrawTracerMode, "Select the mode of tracer drawing."); + + ConfigWidget(f_Fill); + ConfigWidget(f_FillTransparency, 0.01f, 0.0f, 1.0f, "Transparency of filled part."); + + if (f_DrawTracerMode.value() == DrawTracerMode::OffscreenArrows && + BeginGroupPanel("Arrow tracer options", ImVec2(-1, 0), true)) + { + ConfigWidget(f_TracerSize, 0.005f, 0.1f, 10.0f, "Size of tracer."); + ConfigWidget(f_ArrowRadius, 0.5f, 50.0f, 300.0f, "Radius of arrow."); + ConfigWidget(f_OutlineThickness, 0.005f, 0.0f, 10.0f, "Outline thickness of arrow."); + + EndGroupPanel(); + } + + ImGui::Spacing(); + ConfigWidget(f_DrawName, "Draw name of object."); + ConfigWidget(f_DrawDistance, "Draw distance of object."); + + ImGui::Spacing(); + ConfigWidget(f_FontSize, 0.05f, 1.0f, 100.0f, "Font size of name or distance."); + ConfigWidget("## Font outline enabled", f_FontOutline); ImGui::SameLine(); + ConfigWidget("Font outline", f_FontOutlineSize, 0.001f, 0.0f, 10.0f); + + ImGui::Spacing(); + if (BeginGroupPanel("Global colors", ImVec2(-1, 0), true)) + { + if (ConfigWidget(f_GlobalFontColor, "Color of line, name, or distance text font.")) + m_FontContrastColor = ImGui::CalcContrastColor(f_GlobalFontColor); + ConfigWidget(f_GlobalBoxColor, "Color of box font."); + ConfigWidget(f_GlobalLineColor, "Color of line font."); + ConfigWidget(f_GlobalRectColor, "Color of rectangle font."); + EndGroupPanel(); + } + + ConfigWidget(f_MinSize, 0.05f, 0.1f, 200.0f, "Minimum entity size as measured in-world.\n" \ + "Some entities have either extremely small or no bounds at all.\n" \ + "This parameter helps filter out entities that don't meet this condition."); + + EndGroupPanel(); + } + + ImGui::Text("How to use item filters:\n\tLMB - Toggle visibility\n\tRMB - Open color picker"); + ImGui::InputText("Search Filters", &m_Search); + + for (auto& [section, filters] : m_Sections) + { + ImGui::PushID(section.c_str()); + DrawSection(section, filters); + ImGui::PopID(); + } + } + + bool ESP::NeedStatusDraw() const + { + return f_Enabled; + } + + void ESP::DrawStatus() + { + ImGui::Text("ESP [%.01fm|%s|%s%s%s%s]", + f_Range.value(), + f_DrawBoxMode.value() == DrawMode::Box ? "Box" : f_DrawBoxMode.value() == DrawMode::Rectangle ? "Rect" : "None", + f_Fill ? "F" : "", + f_DrawTracerMode.value() == DrawTracerMode::Line ? "L" : f_DrawTracerMode.value() == DrawTracerMode::OffscreenArrows ? "A" : "", + f_DrawName ? "N" : "", + f_DrawDistance ? "D" : "" + ); + } + + ESP& ESP::GetInstance() + { + static ESP instance; + return instance; + } + + void ESP::AddFilter(const std::string& section, const std::string& name, game::IEntityFilter* filter) + { + if (m_Sections.count(section) == 0) + m_Sections[section] = {}; + + auto& filters = m_Sections[section]; + esp::ESPItem newItem(name, ImColor(120, 120, 120, 255), {}, name); + filters.push_back({ config::CreateField(name, name, fmt::format("ESP::Filters::{}", section), false, newItem), filter }); + } + + void ESP::DrawSection(const std::string& section, const Filters& filters) + { + std::vector validFilters; + + for (auto& info : filters) + { + const auto& filterName = info.first.value().m_Name; + + auto it = std::search( + filterName.begin(), filterName.end(), + m_Search.begin(), m_Search.end(), + [](char ch1, char ch2) { return std::tolower(ch1) == std::tolower(ch2); } + ); + + if (it != filterName.end()) + validFilters.push_back(&info); + } + + if (validFilters.empty()) + return; + + SelectData selData + { + std::all_of(validFilters.begin(), validFilters.end(), [](const FilterInfo* filter) { return filter->first.value().m_Enabled; }), + false + }; + + if (BeginGroupPanel(section.c_str(), ImVec2(-1, 0), true, &selData)) + { + for (auto& info : validFilters) + { + ImGui::PushID(info); + DrawFilterField(info->first); + ImGui::PopID(); + } + + ImGui::Spacing(); + + if (ImGui::TreeNode(this, "Hotkeys")) + { + for (auto& info : validFilters) + { + auto& field = info->first; + ImGui::PushID(info); + + auto& hotkey = field.value().m_Hotkey; + if (InputHotkey(field.name().c_str(), &hotkey, true)) + field.FireChanged(); + + ImGui::PopID(); + } + + ImGui::TreePop(); + } + EndGroupPanel(); + } + + if (selData.changed) + { + for (auto& info : validFilters) + { + info->first.value().m_Enabled = selData.toggle; + info->first.FireChanged(); + } + } + } + + std::string Unsplit(const std::string& value) + { + std::stringstream in(value); + std::stringstream out; + std::string word; + while (in >> word) + out << word; + return out.str(); + } + + void FilterItemSelector(const char* label, ImTextureID image, const config::Field& field, const ImVec2& size = ImVec2(200, 0), float icon_size = 30); + + void ESP::DrawFilterField(const config::Field& field) + { + auto imageInfo = ImageLoader::GetImage(Unsplit(field.value().m_Name)); + FilterItemSelector(field.value().m_Name.c_str(), imageInfo ? imageInfo->textureID : nullptr, field); + } + + void ESP::DrawExternal() + { + auto& esp = ESP::GetInstance(); + if (!esp.f_Enabled) + return; + + esp::render::PrepareFrame(); + + auto& entityManager = game::EntityManager::instance(); + + for (auto& entity : entityManager.entities()) + { + if (entityManager.avatar()->distance(entity) > esp.f_Range) + continue; + + for (auto& [section, filters] : m_Sections) + { + for (auto& [field, filter] : filters) + { + auto& entry = field.value(); + if (!entry.m_Enabled || !m_FilterExecutor.ApplyFilter(entity, filter)) + continue; + + esp::render::DrawEntity(entry.m_Name, entity, entry.m_Color, entry.m_ContrastColor); + break; + } + } + } + } + + void ESP::OnKeyUp(short key, bool& cancelled) + { + for (auto& [section, filters] : m_Sections) + { + for (auto& [field, filter] : filters) + { + auto& entry = field.value(); + if (entry.m_Hotkey.IsPressed(key)) + { + entry.m_Enabled = !entry.m_Enabled; + field.FireChanged(); + } + } + } + } + + void FilterItemSelector(const char* label, ImTextureID image, const config::Field& field, const ImVec2& size, float icon_size) + { + + // Init ImGui + ImGuiWindow* window = ImGui::GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiContext& g = *GImGui; + ImGuiIO& io = g.IO; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + + const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + const ImVec2 item_size = ImGui::CalcItemSize(size, ImGui::CalcItemWidth(), label_size.y + style.FramePadding.y * 2.0f + 20.0f); + + float region_max_x = ImGui::GetContentRegionMaxAbs().x; + if (region_max_x - window->DC.CursorPos.x < item_size.x) + ImGui::Spacing(); + + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + item_size); + const ImRect total_bb(window->DC.CursorPos, { frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Max.y }); + + ImGui::ItemSize(total_bb, style.FramePadding.y); + if (!ImGui::ItemAdd(total_bb, id)) + { + ImGui::SameLine(); + return; + } + const bool hovered = ImGui::ItemHoverable(frame_bb, id); + if (hovered) + { + ImGui::SetHoveredID(id); + g.MouseCursor = ImGuiMouseCursor_Hand; + } + + const bool lmb_click = hovered && io.MouseClicked[0]; + if (lmb_click) + { + field.value().m_Enabled = !field.value().m_Enabled; + field.FireChanged(); + ImGui::FocusWindow(window); + memset(io.MouseDown, 0, sizeof(io.MouseDown)); + } + + const bool rmb_click = hovered && io.MouseClicked[ImGuiMouseButton_Right]; + + ImGuiWindow* picker_active_window = NULL; + + static bool color_changed = false; + static ImGuiID opened_id = 0; + if (rmb_click) + { + // Store current color and open a picker + g.ColorPickerRef = ImVec4(field.value().m_Color); + ImGui::OpenPopup("picker"); + ImGui::SetNextWindowPos(g.LastItemData.Rect.GetBL() + ImVec2(0.0f, style.ItemSpacing.y)); + opened_id = id; + memset(io.MouseDown, 0, sizeof(io.MouseDown)); + } + + if (ImGui::BeginPopup("picker")) + { + picker_active_window = g.CurrentWindow; + ImGuiColorEditFlags picker_flags_to_forward = ImGuiColorEditFlags_DataTypeMask_ | ImGuiColorEditFlags_PickerMask_ | ImGuiColorEditFlags_InputMask_ | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaBar; + ImGuiColorEditFlags picker_flags = ImGuiColorEditFlags_DisplayMask_ | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_AlphaPreviewHalf; + ImGui::SetNextItemWidth(ImGui::GetFrameHeight() * 12.0f); // Use 256 + bar sizes? + color_changed |= ImGui::ColorPicker4("##picker", reinterpret_cast(&field.value().m_Color), picker_flags, &g.ColorPickerRef.x); + ImGui::EndPopup(); + } + + bool popup_closed = id == opened_id && picker_active_window == NULL; + if (popup_closed) + { + opened_id = 0; + if (color_changed) + { + field.value().m_ContrastColor = ImGui::CalcContrastColor(field.value().m_Color); + field.FireChanged(); + color_changed = false; + } + } + + const ImU32 border_color = ImGui::GetColorU32(g.ActiveId == id ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg); + const ImRect clip_rect(frame_bb.Min.x, frame_bb.Min.y, frame_bb.Min.x + item_size.x, frame_bb.Min.y + item_size.y); // Not using frame_bb.Max because we have adjusted size + + float border_size = 2.0f; + float border_rounding = 10.0f; + + ImVec2 render_pos = frame_bb.Min + style.FramePadding; + ImGui::RenderFrame(clip_rect.Min, clip_rect.Max, field.value().m_Color, false, border_rounding); + + if (field.value().m_Enabled) + { + float check_mark_size = 13.0f; + ImVec2 checkStart = { clip_rect.Max.x - check_mark_size - border_size, clip_rect.Min.y }; + ImGui::RenderFrame(checkStart - ImVec2(2.0f, 0), checkStart + ImVec2(check_mark_size + border_size, check_mark_size + border_size + 2.0f), + ImGui::GetColorU32(ImGuiCol_FrameBg), false, border_rounding); + ImGui::RenderCheckMark(window->DrawList, checkStart + ImVec2(0, 1.0f), 0xFFFFFFFF, check_mark_size - 1.0f); + } + + window->DrawList->AddRect(clip_rect.Min, clip_rect.Max, border_color, border_rounding - 1.0f, 0, border_size); + + float y_center = frame_bb.Min.y + (frame_bb.Max.y - frame_bb.Min.y) / 2; + + ImVec2 image_start(frame_bb.Min.x + style.FramePadding.x + 5.0f, y_center - icon_size / 2); + ImVec2 image_end(image_start.x + icon_size, image_start.y + icon_size); + if (image != nullptr) + window->DrawList->AddImageRounded(image, image_start, image_start + ImVec2(icon_size, icon_size), { 0.0f, 0.0f }, { 1.0f, 1.0f }, + ImColor(1.0f, 1.0f, 1.0f), 0.3f); + + bool pushed = ImGui::PushStyleColorWithContrast(field.value().m_Color, ImGuiCol_Text, ImColor(0, 0, 0), 2.0f); + + ImVec2 text_end(frame_bb.Max.x - style.FramePadding.x - border_size, y_center + label_size.y / 2); + ImVec2 text_start(ImMax(image_end.x + style.FramePadding.x, text_end.x - label_size.x), y_center - label_size.y / 2); + ImGui::RenderTextClipped(text_start, text_end, label, NULL, NULL, { 0, 0 }, &clip_rect); + + if (pushed) + ImGui::PopStyleColor(); + + ImGui::SameLine(); + + return; + } + + std::string SplitWords(const std::string& value) + { + std::stringstream outStream; + std::stringstream inStream(value); + + char ch; + inStream >> ch; + outStream << ch; + while (inStream >> ch) + { + if (isupper(ch)) + outStream << " "; + outStream << ch; + } + return outStream.str(); + } + + std::string MakeCapital(std::string value) + { + if (islower(value[0])) + value[0] = toupper(value[0]); + return value; + } + +#define ADD_FILTER_FIELD(section, name) AddFilter(MakeCapital(#section), SplitWords(#name), &game::filters::##section##::##name##) + void ESP::InstallFilters() + { + ADD_FILTER_FIELD(collection, Book); + ADD_FILTER_FIELD(collection, Viewpoint); + ADD_FILTER_FIELD(collection, RadiantSpincrystal); + ADD_FILTER_FIELD(collection, BookPage); + ADD_FILTER_FIELD(collection, QuestInteract); + + ADD_FILTER_FIELD(chest, CommonChest); + ADD_FILTER_FIELD(chest, ExquisiteChest); + ADD_FILTER_FIELD(chest, PreciousChest); + ADD_FILTER_FIELD(chest, LuxuriousChest); + ADD_FILTER_FIELD(chest, RemarkableChest); + ADD_FILTER_FIELD(chest, SearchPoint); + + ADD_FILTER_FIELD(featured, Anemoculus); + ADD_FILTER_FIELD(featured, CrimsonAgate); + ADD_FILTER_FIELD(featured, Electroculus); + ADD_FILTER_FIELD(featured, Electrogranum); + ADD_FILTER_FIELD(featured, FishingPoint); + ADD_FILTER_FIELD(featured, Geoculus); + ADD_FILTER_FIELD(featured, ItemDrops); + ADD_FILTER_FIELD(featured, KeySigil); + ADD_FILTER_FIELD(featured, Lumenspar); + ADD_FILTER_FIELD(featured, ShrineOfDepth); + ADD_FILTER_FIELD(featured, TimeTrialChallenge); + + ADD_FILTER_FIELD(guide, CampfireTorch); + ADD_FILTER_FIELD(guide, MysteriousCarvings); + ADD_FILTER_FIELD(guide, PhaseGate); + ADD_FILTER_FIELD(guide, Pot); + ADD_FILTER_FIELD(guide, RuinBrazier); + ADD_FILTER_FIELD(guide, Stormstone); + + ADD_FILTER_FIELD(living, BakeDanuki); + ADD_FILTER_FIELD(living, BirdEgg); + ADD_FILTER_FIELD(living, Boar); + ADD_FILTER_FIELD(living, ButterflyWings); + ADD_FILTER_FIELD(living, Cat); + ADD_FILTER_FIELD(living, Crab); + ADD_FILTER_FIELD(living, Crane); + ADD_FILTER_FIELD(living, Crow); + ADD_FILTER_FIELD(living, CrystalCore); + ADD_FILTER_FIELD(living, Dog); + ADD_FILTER_FIELD(living, Eel); + ADD_FILTER_FIELD(living, Falcon); + ADD_FILTER_FIELD(living, Finch); + ADD_FILTER_FIELD(living, Fish); + ADD_FILTER_FIELD(living, Fox); + ADD_FILTER_FIELD(living, Frog); + ADD_FILTER_FIELD(living, Inu); + ADD_FILTER_FIELD(living, Kitsune); + ADD_FILTER_FIELD(living, LizardTail); + ADD_FILTER_FIELD(living, LucklightFly); + ADD_FILTER_FIELD(living, LuminescentSpine); + ADD_FILTER_FIELD(living, Onikabuto); + ADD_FILTER_FIELD(living, Pigeon); + ADD_FILTER_FIELD(living, Salamander); + ADD_FILTER_FIELD(living, Squirrel); + ADD_FILTER_FIELD(living, Starconch); + ADD_FILTER_FIELD(living, Weasel); + ADD_FILTER_FIELD(living, Wigeon); + + ADD_FILTER_FIELD(mineral, AmethystLump); + ADD_FILTER_FIELD(mineral, ArchaicStone); + ADD_FILTER_FIELD(mineral, CorLapis); + ADD_FILTER_FIELD(mineral, CrystalChunk); + ADD_FILTER_FIELD(mineral, CrystalMarrow); + ADD_FILTER_FIELD(mineral, ElectroCrystal); + ADD_FILTER_FIELD(mineral, IronChunk); + ADD_FILTER_FIELD(mineral, NoctilucousJade); + ADD_FILTER_FIELD(mineral, MagicalCrystalChunk); + ADD_FILTER_FIELD(mineral, ScarletQuartz); + ADD_FILTER_FIELD(mineral, StarSilver); + ADD_FILTER_FIELD(mineral, WhiteIronChunk); + + // Trounce. Arranged by appearance in-game. + ADD_FILTER_FIELD(monster, Dvalin); + ADD_FILTER_FIELD(monster, Andrius); + ADD_FILTER_FIELD(monster, Tartaglia); + ADD_FILTER_FIELD(monster, Azhdaha); + ADD_FILTER_FIELD(monster, Signora); + ADD_FILTER_FIELD(monster, Shogun); + // Bosses. Arranged by "type" then alphabetical. + // Regisvines. + ADD_FILTER_FIELD(monster, CryoRegisvine); + ADD_FILTER_FIELD(monster, PyroRegisvine); + // Hypostases. + ADD_FILTER_FIELD(monster, AnemoHypostasis); + ADD_FILTER_FIELD(monster, CryoHypostasis); + ADD_FILTER_FIELD(monster, ElectroHypostasis); + ADD_FILTER_FIELD(monster, GeoHypostasis); + ADD_FILTER_FIELD(monster, HydroHypostasis); + ADD_FILTER_FIELD(monster, PyroHypostasis); + // Vishaps. + ADD_FILTER_FIELD(monster, CryoBathysmalVishap); + ADD_FILTER_FIELD(monster, ElectroBathysmalVishap); + ADD_FILTER_FIELD(monster, PrimoGeovishap); + // Oceanids. + ADD_FILTER_FIELD(monster, Oceanid); + ADD_FILTER_FIELD(monster, ThunderManifestation); + // Khaenri'ah. + ADD_FILTER_FIELD(monster, PerpetualMechanicalArray); + ADD_FILTER_FIELD(monster, RuinSerpent); + // Others. + ADD_FILTER_FIELD(monster, GoldenWolflord); + ADD_FILTER_FIELD(monster, MaguuKenki); + // Regular. Alphabetical. + ADD_FILTER_FIELD(monster, AbyssMage); + ADD_FILTER_FIELD(monster, BlackSerpentKnight); + ADD_FILTER_FIELD(monster, Cicin); + ADD_FILTER_FIELD(monster, ElectroAbyssLector); + ADD_FILTER_FIELD(monster, EyeOfTheStorm); + ADD_FILTER_FIELD(monster, FatuiAgent); + ADD_FILTER_FIELD(monster, FatuiCicinMage); + ADD_FILTER_FIELD(monster, FatuiMirrorMaiden); + ADD_FILTER_FIELD(monster, FatuiSkirmisher); + ADD_FILTER_FIELD(monster, FloatingFungus); + ADD_FILTER_FIELD(monster, Geovishap); + ADD_FILTER_FIELD(monster, GeovishapHatchling); + ADD_FILTER_FIELD(monster, Hilichurl); + ADD_FILTER_FIELD(monster, HydroAbyssHerald); + ADD_FILTER_FIELD(monster, HydroHypostasisSummon); + ADD_FILTER_FIELD(monster, Kairagi); + ADD_FILTER_FIELD(monster, Millelith); + ADD_FILTER_FIELD(monster, Mitachurl); + ADD_FILTER_FIELD(monster, Nobushi); + ADD_FILTER_FIELD(monster, OceanidBoar); + ADD_FILTER_FIELD(monster, OceanidCrab); + ADD_FILTER_FIELD(monster, OceanidCrane); + ADD_FILTER_FIELD(monster, OceanidFalcon); + ADD_FILTER_FIELD(monster, OceanidFinch); + ADD_FILTER_FIELD(monster, OceanidFrog); + ADD_FILTER_FIELD(monster, OceanidSquirrel); + ADD_FILTER_FIELD(monster, OceanidWigeon); + ADD_FILTER_FIELD(monster, PyroAbyssLector); + ADD_FILTER_FIELD(monster, Rifthound); + ADD_FILTER_FIELD(monster, RifthoundWhelp); + ADD_FILTER_FIELD(monster, RuinGuard); + ADD_FILTER_FIELD(monster, RuinHunter); + ADD_FILTER_FIELD(monster, RuinSentinel); + ADD_FILTER_FIELD(monster, Samachurl); + ADD_FILTER_FIELD(monster, SangonomiyaCohort); + ADD_FILTER_FIELD(monster, ShadowyHusk); + ADD_FILTER_FIELD(monster, ShadowyHusk); + ADD_FILTER_FIELD(monster, ShogunateInfantry); + ADD_FILTER_FIELD(monster, Slime); + ADD_FILTER_FIELD(monster, Specter); + ADD_FILTER_FIELD(monster, TreasureHoarder); + ADD_FILTER_FIELD(monster, UnusualHilichurl); + ADD_FILTER_FIELD(monster, Whopperflower); + + ADD_FILTER_FIELD(plant, AmakumoFruit); + ADD_FILTER_FIELD(plant, Apple); + ADD_FILTER_FIELD(plant, BambooShoot); + ADD_FILTER_FIELD(plant, Berry); + ADD_FILTER_FIELD(plant, CallaLily); + ADD_FILTER_FIELD(plant, Carrot); + ADD_FILTER_FIELD(plant, Cecilia); + ADD_FILTER_FIELD(plant, DandelionSeed); + ADD_FILTER_FIELD(plant, Dendrobium); + ADD_FILTER_FIELD(plant, FlamingFlowerStamen); + ADD_FILTER_FIELD(plant, FluorescentFungus); + ADD_FILTER_FIELD(plant, GlazeLily); + ADD_FILTER_FIELD(plant, Horsetail); + ADD_FILTER_FIELD(plant, JueyunChili); + ADD_FILTER_FIELD(plant, LavenderMelon); + ADD_FILTER_FIELD(plant, LotusHead); + ADD_FILTER_FIELD(plant, Matsutake); + ADD_FILTER_FIELD(plant, Mint); + ADD_FILTER_FIELD(plant, MistFlowerCorolla); + ADD_FILTER_FIELD(plant, Mushroom); + ADD_FILTER_FIELD(plant, NakuWeed); + ADD_FILTER_FIELD(plant, PhilanemoMushroom); + ADD_FILTER_FIELD(plant, Pinecone); + ADD_FILTER_FIELD(plant, Qingxin); + ADD_FILTER_FIELD(plant, Radish); + ADD_FILTER_FIELD(plant, SakuraBloom); + ADD_FILTER_FIELD(plant, SangoPearl); + ADD_FILTER_FIELD(plant, SeaGanoderma); + ADD_FILTER_FIELD(plant, Seagrass); + ADD_FILTER_FIELD(plant, SilkFlower); + ADD_FILTER_FIELD(plant, SmallLampGrass); + ADD_FILTER_FIELD(plant, Snapdragon); + ADD_FILTER_FIELD(plant, Sunsettia); + ADD_FILTER_FIELD(plant, SweetFlower); + ADD_FILTER_FIELD(plant, Valberry); + ADD_FILTER_FIELD(plant, Violetgrass); + ADD_FILTER_FIELD(plant, WindwheelAster); + ADD_FILTER_FIELD(plant, Wolfhook); + + ADD_FILTER_FIELD(puzzle, AncientRime); + ADD_FILTER_FIELD(puzzle, BakeDanuki); + ADD_FILTER_FIELD(puzzle, BloattyFloatty); + ADD_FILTER_FIELD(puzzle, CubeDevices); + ADD_FILTER_FIELD(puzzle, EightStoneTablets); + ADD_FILTER_FIELD(puzzle, ElectricConduction); + ADD_FILTER_FIELD(puzzle, ElectroSeelie); + ADD_FILTER_FIELD(puzzle, ElementalMonument); + ADD_FILTER_FIELD(puzzle, FloatingAnemoSlime); + ADD_FILTER_FIELD(puzzle, Geogranum); + ADD_FILTER_FIELD(puzzle, GeoPuzzle); + ADD_FILTER_FIELD(puzzle, LargeRockPile); + ADD_FILTER_FIELD(puzzle, LightUpTilePuzzle); + ADD_FILTER_FIELD(puzzle, LightningStrikeProbe); + ADD_FILTER_FIELD(puzzle, LumenCage); + ADD_FILTER_FIELD(puzzle, LuminousSeelie); + ADD_FILTER_FIELD(puzzle, MistBubble); + ADD_FILTER_FIELD(puzzle, OozingConcretions); + ADD_FILTER_FIELD(puzzle, PirateHelm); + ADD_FILTER_FIELD(puzzle, PressurePlate); + ADD_FILTER_FIELD(puzzle, Seelie); + ADD_FILTER_FIELD(puzzle, SeelieLamp); + ADD_FILTER_FIELD(puzzle, SmallRockPile); + ADD_FILTER_FIELD(puzzle, StormBarrier); + ADD_FILTER_FIELD(puzzle, SwordHilt); + ADD_FILTER_FIELD(puzzle, Temari); + ADD_FILTER_FIELD(puzzle, TorchPuzzle); + ADD_FILTER_FIELD(puzzle, UniqueRocks); + ADD_FILTER_FIELD(puzzle, WarmingSeelie); + ADD_FILTER_FIELD(puzzle, WindmillMechanism); + } +#undef ADD_FILTER_FIELD +} diff --git a/cheat-library/src/user/cheat/esp/ESP.h b/cheat-library/src/user/cheat/esp/ESP.h new file mode 100644 index 0000000..979b435 --- /dev/null +++ b/cheat-library/src/user/cheat/esp/ESP.h @@ -0,0 +1,86 @@ +#pragma once +#include +#include + +#include +#include +#include + +namespace cheat::feature +{ + + class ESP : public Feature + { + public: + enum class DrawMode + { + None, + Rectangle, + Box + }; + + enum class DrawTracerMode + { + None, + Line, + OffscreenArrows + }; + + config::Field> f_Enabled; + + config::Field> f_DrawBoxMode; + config::Field> f_DrawTracerMode; + config::Field f_Fill; + config::Field f_FillTransparency; + + config::Field f_DrawDistance; + config::Field f_DrawName; + config::Field f_ArrowRadius; + config::Field f_OutlineThickness; + config::Field f_TracerSize; + + config::Field f_FontSize; + config::Field f_FontOutline; + config::Field f_FontOutlineSize; + + config::Field> f_GlobalFontColor; + ImColor m_FontContrastColor; + config::Field> f_GlobalBoxColor; + config::Field> f_GlobalRectColor; + config::Field> f_GlobalLineColor; + + config::Field f_MinSize; + config::Field f_Range; + + std::string m_Search; + + static ESP& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + void DrawExternal() override; + + private: + using FilterInfo = std::pair, game::IEntityFilter*>; + using Filters = std::vector; + using Sections = std::map; + + Sections m_Sections; + game::CacheFilterExecutor m_FilterExecutor; + + void InstallFilters(); + void AddFilter(const std::string& section, const std::string& name, game::IEntityFilter* filter); + + void DrawSection(const std::string& section, const Filters& filters); + void DrawFilterField(const config::Field& field); + + void OnKeyUp(short key, bool& cancelled); + + ESP(); + }; +} + diff --git a/cheat-library/src/user/cheat/esp/ESPItem.h b/cheat-library/src/user/cheat/esp/ESPItem.h new file mode 100644 index 0000000..3683215 --- /dev/null +++ b/cheat-library/src/user/cheat/esp/ESPItem.h @@ -0,0 +1,48 @@ +#pragma once + +#include + +#include + +namespace cheat::feature::esp +{ + class ESPItem + { + public: + ESPItem(const std::string& name, const ImColor& color, const Hotkey& hotkey, const std::string& textureName) + : m_Name(name), m_Color(color), m_Hotkey(hotkey), m_Texture(nullptr), m_Enabled(false) { } + + bool operator==(const ESPItem& another) const + { + return m_Enabled == another.m_Enabled && m_Color == another.m_Color && m_Hotkey == another.m_Hotkey; + } + + Hotkey m_Hotkey; + bool m_Enabled; + std::string m_Name; + ImColor m_Color; + ImColor m_ContrastColor; + void* m_Texture; + }; +} + +namespace config::converters +{ + template<> + inline nlohmann::json ToJson(const cheat::feature::esp::ESPItem& value) + { + return { + { "enabled", value.m_Enabled }, + { "color", ToJson(value.m_Color) }, + { "hotkey", ToJson(value.m_Hotkey) } + }; + } + + template<> + inline void FromJson(cheat::feature::esp::ESPItem& value, const nlohmann::json& jObject) + { + value.m_Enabled = jObject["enabled"]; + FromJson(value.m_Hotkey, jObject["hotkey"]); + FromJson(value.m_Color, jObject["color"]); + } +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/esp/ESPRender.cpp b/cheat-library/src/user/cheat/esp/ESPRender.cpp new file mode 100644 index 0000000..0e37786 --- /dev/null +++ b/cheat-library/src/user/cheat/esp/ESPRender.cpp @@ -0,0 +1,545 @@ +#include +#include "ESPRender.h" + +#define IMGUI_DEFINE_MATH_OPERATORS +#include "imgui_internal.h" + +#include +#include +#include +#include + + +#include +#include "ESP.h" + +namespace cheat::feature::esp::render +{ + static app::Camera* s_Camera = nullptr; + static ImVec2 s_ResolutionScale = ImVec2(0, 0); + static ImVec2 s_ScreenResolution = ImVec2(0, 0); + static ImVec2 s_AvatarPosition = ImVec2(0, 0); + + static void UpdateMainCamera() + { + UPDATE_DELAY(1000); + + s_Camera = nullptr; + + auto camera = app::Camera_get_main(nullptr, nullptr); + if (camera == nullptr) + return; + + if (!app::Behaviour_get_isActiveAndEnabled(reinterpret_cast(camera), nullptr)) + return; + + auto loadingManager = GET_SINGLETON(LoadingManager); + if (loadingManager == nullptr || !app::LoadingManager_IsLoaded(loadingManager, nullptr)) + return; + + s_Camera = camera; + } + + static void UpdateResolutionScale() + { + UPDATE_DELAY(1000); + + SAFE_BEGIN(); + s_ResolutionScale = { 0, 0 }; + + if (s_Camera == nullptr) + return; + + auto pixelWidth = app::Camera_get_pixelWidth(s_Camera, nullptr); + auto pixelHeight = app::Camera_get_pixelHeight(s_Camera, nullptr); + + if (pixelWidth == 0 || pixelHeight == 0) + return; + + auto screenWidth = app::Screen_get_width(nullptr, nullptr); + auto screenHeight = app::Screen_get_height(nullptr, nullptr); + + if (screenWidth == 0 || screenHeight == 0) + return; + + if (screenHeight == pixelHeight && screenWidth == pixelWidth) + return; + + s_ScreenResolution.x = screenWidth; + s_ScreenResolution.y = screenHeight; + + s_ResolutionScale.x = static_cast(screenWidth) / static_cast(pixelWidth); + s_ResolutionScale.y = static_cast(screenHeight) / static_cast(pixelHeight); + SAFE_EEND(); + } + + static app::Vector3 WorldToScreenPosScalled(const app::Vector3& relPosition) + { + if (s_Camera == nullptr) + return {}; + + auto screenPos = app::Camera_WorldToScreenPoint(s_Camera, relPosition, nullptr); + + if (s_ResolutionScale.x != 0) + { + screenPos.x *= s_ResolutionScale.x; + screenPos.y *= s_ResolutionScale.y; + } + + screenPos.y = app::Screen_get_height(nullptr, nullptr) - screenPos.y; + return screenPos; + } + + struct Rect + { + float xMin, xMax; + float yMin, yMax; + + bool empty() const + { + return xMin == 0 && xMax == 0 && yMin == 0 && yMax == 0; + } + }; + + struct BoxScreen + { + ImVec2 lowerTopLeft; + ImVec2 lowerTopRight; + ImVec2 lowerBottomLeft; + ImVec2 lowerBottomRight; + + ImVec2 upperTopLeft; + ImVec2 upperTopRight; + ImVec2 upperBottomLeft; + ImVec2 upperBottomRight; + }; + +#undef min +#undef max + + static ImVec2 FromVec3(const app::Vector3& vec3) + { + return { vec3.x, vec3.y }; + } + + static app::Bounds GetEntityMinBounds(game::Entity* entity, float minSize) + { + auto entityPosition = entity->relativePosition(); + return { entityPosition, { minSize, minSize, minSize } }; + } + + static app::Bounds GetObjectBounds(game::Entity* entity) + { + auto& esp = ESP::GetInstance(); + auto gameObject = entity->gameObject(); + if (gameObject == nullptr) + return GetEntityMinBounds(entity, esp.f_MinSize); + + SAFE_BEGIN(); + + // Sometimes occurs access violation in UnityPlayer.dll + // Callow: Have no idea what to do with it unless just catch exception + auto bounds = app::Utils_1_GetBounds(nullptr, gameObject, nullptr); + if (bounds.m_Extents.x < esp.f_MinSize && + bounds.m_Extents.y < esp.f_MinSize && + bounds.m_Extents.z < esp.f_MinSize) + bounds.m_Extents = { esp.f_MinSize, esp.f_MinSize, esp.f_MinSize }; + + auto min = bounds.m_Center - bounds.m_Extents; + auto max = bounds.m_Center + bounds.m_Extents; + + // When monster or some another object in a far from player - they disappear + // And for some reason game object extends + if ((min.x == 0 || min.y == 0 || min.z == 0)) + return GetEntityMinBounds(entity, 1); + + return bounds; + + SAFE_ERROR(); + + return GetEntityMinBounds(entity, esp.f_MinSize); + + SAFE_END(); + } + + static std::optional GetEntityScreenBox(game::Entity* entity) + { + if (s_Camera == nullptr) + return {}; + + app::Bounds bounds = GetObjectBounds(entity); + + auto min = bounds.m_Center - bounds.m_Extents; + auto max = bounds.m_Center + bounds.m_Extents; + + BoxScreen box; + app::Vector3 temp; +#define BOX_FIELD_SET(field, px, py, pz) temp = app::Camera_WorldToScreenPoint(s_Camera, { px, py, pz }, nullptr);\ + if (temp.z < 1) return {};\ + box.##field = FromVec3(temp); + + BOX_FIELD_SET(lowerTopLeft, min.x, min.y, max.z); + BOX_FIELD_SET(lowerTopRight, max.x, min.y, max.z); + BOX_FIELD_SET(lowerBottomLeft, min.x, min.y, min.z); + BOX_FIELD_SET(lowerBottomRight, max.x, min.y, min.z); + + BOX_FIELD_SET(upperTopLeft, min.x, max.y, max.z); + BOX_FIELD_SET(upperTopRight, max.x, max.y, max.z); + BOX_FIELD_SET(upperBottomLeft, min.x, max.y, min.z); + BOX_FIELD_SET(upperBottomRight, max.x, max.y, min.z); + +#undef BOX_FIELD_SET + + return box; + } + + static void ScaleBoxScreen(BoxScreen& boxScreen) + { + if (s_ResolutionScale.x != 0) + { + +#define SCALE_FIELD(field) boxScreen.##field##.x *= s_ResolutionScale.x; boxScreen.##field##.y *= s_ResolutionScale.y + + SCALE_FIELD(lowerTopLeft); + SCALE_FIELD(lowerTopRight); + SCALE_FIELD(lowerBottomLeft); + SCALE_FIELD(lowerBottomRight); + + SCALE_FIELD(upperTopLeft); + SCALE_FIELD(upperTopRight); + SCALE_FIELD(upperBottomLeft); + SCALE_FIELD(upperBottomRight); + +#undef SCALE_FIELD + + } + + auto screenHeight = app::Screen_get_height(nullptr, nullptr); + +#define FIX_Y(field) boxScreen.##field##.y = screenHeight - boxScreen.##field##.y + + FIX_Y(lowerTopLeft); + FIX_Y(lowerTopRight); + FIX_Y(lowerBottomLeft); + FIX_Y(lowerBottomRight); + + FIX_Y(upperTopLeft); + FIX_Y(upperTopRight); + FIX_Y(upperBottomLeft); + FIX_Y(upperBottomRight); + +#undef FIX_Y + + } + + static Rect GetEntityScreenRect(const BoxScreen& box, bool scalling = true) + { + Rect boxRect{}; + + boxRect.xMin = std::min({ box.lowerTopLeft.x, box.lowerTopRight.x, box.lowerBottomLeft.x, box.lowerBottomRight.x, + box.upperTopLeft.x, box.upperTopRight.x, box.upperBottomRight.x, box.upperBottomLeft.x }); + boxRect.xMax = std::max({ box.lowerTopLeft.x, box.lowerTopRight.x, box.lowerBottomLeft.x, box.lowerBottomRight.x, + box.upperTopLeft.x, box.upperTopRight.x, box.upperBottomRight.x, box.upperBottomLeft.x }); + + boxRect.yMin = std::max({ box.lowerTopLeft.y, box.lowerTopRight.y, box.lowerBottomLeft.y, box.lowerBottomRight.y, + box.upperTopLeft.y, box.upperTopRight.y, box.upperBottomRight.y, box.upperBottomLeft.y }); + boxRect.yMax = std::min({ box.lowerTopLeft.y, box.lowerTopRight.y, box.lowerBottomLeft.y, box.lowerBottomRight.y, + box.upperTopLeft.y, box.upperTopRight.y, box.upperBottomRight.y, box.upperBottomLeft.y }); + + if (!scalling) + { + std::swap(boxRect.yMin, boxRect.yMax); + return boxRect; + } + + if (s_ResolutionScale.x != 0) + { + boxRect.xMin *= s_ResolutionScale.x; + boxRect.xMax *= s_ResolutionScale.x; + + boxRect.yMin *= s_ResolutionScale.y; + boxRect.yMax *= s_ResolutionScale.y; + } + + auto screenHeight = app::Screen_get_height(nullptr, nullptr); + boxRect.yMin = screenHeight - boxRect.yMin; + boxRect.yMax = screenHeight - boxRect.yMax; + return boxRect; + } + + static void DrawQuadLines(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, ImU32 col) + { + auto draw = ImGui::GetBackgroundDrawList(); + + draw->AddLine(p1, p2, col); + draw->AddLine(p2, p3, col); + draw->AddLine(p3, p4, col); + draw->AddLine(p4, p1, col); + } + + static bool HasCenter(const Rect& rect) + { + ImVec2 centerPoint = ImVec2(s_ScreenResolution.x / 2, s_ScreenResolution.y / 2); + + return rect.xMin < centerPoint.x&& centerPoint.x < rect.xMax && + rect.yMin < centerPoint.y&& centerPoint.y < rect.yMax; + } + + static Rect DrawRect(game::Entity* entity, const ImColor& color) + { + auto box = GetEntityScreenBox(entity); + if (!box) + return {}; + + auto entityRect = GetEntityScreenRect(*box); + if (entityRect.empty()) + return {}; + + auto& esp = ESP::GetInstance(); + auto draw = ImGui::GetBackgroundDrawList(); + + auto pMin = ImVec2(entityRect.xMin, entityRect.yMin); + auto pMax = ImVec2(entityRect.xMax, entityRect.yMax); + if (esp.f_Fill) + { + ImColor newColor = color; + newColor.Value.w = 1.0f - esp.f_FillTransparency; + draw->AddRectFilled(pMin, pMax, newColor); + } + draw->AddRect(pMin, pMax, color); + + return entityRect; + } + + // Callow: This way to drawing is slower than native + static Rect DrawBox(game::Entity* entity, const ImColor& color) + { + auto box = GetEntityScreenBox(entity); + if (!box) + return {}; + + ScaleBoxScreen(*box); + auto& esp = ESP::GetInstance(); + auto draw = ImGui::GetBackgroundDrawList(); + + if (esp.f_Fill) + { + ImColor newColor = color; + newColor.Value.w = 1.0f - esp.f_FillTransparency; + + float threshold = 2.0f; +#define ADD_FIXED_QUAD(p1, p2, p3, p4, col) {\ + ImVec2 p13 { std::abs(p3.x - p1.x), std::abs(p3.y - p1.y) };\ + ImVec2 p24 { std::abs(p2.x - p4.x), std::abs(p2.y - p4.y) };\ + if ((p13.x > threshold && p13.y > threshold) || \ + (p24.x > threshold && p24.y > threshold) || \ + (p13.x > threshold && p24.y > threshold) || \ + (p24.x > threshold && p13.y > threshold))\ + draw->AddQuadFilled(p1, p2, p3, p4, newColor);\ + } + + ADD_FIXED_QUAD(box->lowerBottomLeft, box->lowerTopLeft, box->lowerTopRight, box->lowerBottomRight, newColor); + ADD_FIXED_QUAD(box->upperBottomLeft, box->upperTopLeft, box->upperTopRight, box->upperBottomRight, newColor); + + ADD_FIXED_QUAD(box->lowerBottomLeft, box->upperBottomLeft, box->upperBottomRight, box->lowerBottomRight, newColor); + ADD_FIXED_QUAD(box->lowerTopLeft, box->upperTopLeft, box->upperTopRight, box->lowerTopRight, newColor); + + ADD_FIXED_QUAD(box->lowerBottomLeft, box->lowerTopLeft, box->upperTopLeft, box->upperBottomLeft, newColor); + ADD_FIXED_QUAD(box->lowerBottomRight, box->lowerTopRight, box->upperTopRight, box->upperBottomRight, newColor); + +#undef ADD_FIXED_QUAD + } + + DrawQuadLines(box->lowerBottomLeft, box->lowerTopLeft, box->lowerTopRight, box->lowerBottomRight, color); + DrawQuadLines(box->upperBottomLeft, box->upperTopLeft, box->upperTopRight, box->upperBottomRight, color); + + draw->AddLine(box->lowerBottomLeft, box->upperBottomLeft, color); + draw->AddLine(box->lowerTopLeft, box->upperTopLeft, color); + draw->AddLine(box->lowerTopRight, box->upperTopRight, color); + draw->AddLine(box->lowerBottomRight, box->upperBottomRight, color); + + auto rect = GetEntityScreenRect(*box, false); + return rect; + } + + static void UpdateAvatarPosition() + { + SAFE_BEGIN(); + auto& manager = game::EntityManager::instance(); + auto avatarPos = WorldToScreenPosScalled(manager.avatar()->relativePosition()); + + s_AvatarPosition = ImVec2(avatarPos.x, avatarPos.y); + SAFE_EEND(); + } + + static std::optional GetEntityScreenPos(game::Entity* entity) + { + auto targetPos = WorldToScreenPosScalled(entity->relativePosition()); + if (targetPos.z < 1) + return {}; + + return ImVec2(targetPos.x, targetPos.y); + } + + static void DrawLine(game::Entity* entity, const ImColor& color) + { + auto screenPos = GetEntityScreenPos(entity); + if (!screenPos) + return; + + auto draw = ImGui::GetBackgroundDrawList(); + draw->AddLine(s_AvatarPosition, *screenPos, color); + } + +#define PI 3.14159265358979323846 + + static void DrawOffscreenArrows(game::Entity* entity, const ImColor& color) + { + ImRect screen_rect = { 0.0f, 0.0f, ImGui::GetIO().DisplaySize.x, ImGui::GetIO().DisplaySize.y }; + auto entity_pos = WorldToScreenPosScalled(entity->relativePosition()); + if (entity_pos.z > 0 && screen_rect.Contains({ entity_pos.x, entity_pos.y })) + return; + + auto screen_center = screen_rect.GetCenter(); + auto angle = atan2(screen_center.y - entity_pos.y, screen_center.x - entity_pos.x); + angle += entity_pos.z > 0 ? PI : 0.0f; + + auto& esp = ESP::GetInstance(); + ImVec2 arrow_center { + screen_center.x + esp.f_ArrowRadius * cosf(angle), + screen_center.y + esp.f_ArrowRadius * sinf(angle) + }; + + // Triangle + std::array points { + ImVec2(-22.0f, -8.6f), + ImVec2(0.0f, 0.0f), + ImVec2(-22.0f, 8.6f), + ImVec2(-18.0f, 0.0f) + }; + + for (auto& point : points) + { + auto x = point.x * esp.f_TracerSize ; + auto y = point.y * esp.f_TracerSize; + + point.x = arrow_center.x + x * cosf(angle) - y * sinf(angle); + point.y = arrow_center.y + x * sinf(angle) + y * cosf(angle); + } + + + auto draw = ImGui::GetBackgroundDrawList(); + + float alpha = 1.0f; + if (entity_pos.z > 0) + { + constexpr float nearThreshold = 200.0f * 200.0f; + ImVec2 screen_outer_diff = { + entity_pos.x < 0 ? abs(entity_pos.x) : (entity_pos.x > screen_rect.Max.x ? entity_pos.x - screen_rect.Max.x : 0.0f), + entity_pos.y < 0 ? abs(entity_pos.y) : (entity_pos.y > screen_rect.Max.y ? entity_pos.y - screen_rect.Max.y : 0.0f), + }; + auto distance = std::pow(screen_outer_diff.x, 2) + std::pow(screen_outer_diff.y, 2); + alpha = entity_pos.z < 0 ? 1.0f : (distance / nearThreshold); + } + auto arrowColor = color; + arrowColor.Value.w = std::min(alpha, 1.0f); + + // Draw the arrow + draw->AddTriangleFilled(points[0], points[1], points[3], arrowColor); + draw->AddTriangleFilled(points[2], points[1], points[3], arrowColor); + // draw->AddQuad(points[0], points[1], points[2], points[3], ImColor(0.0f, 0.0f, 0.0f, alpha), 0.6f); + draw->AddQuad(points[0], points[1], points[2], points[3], ImColor(0.0f, 0.0f, 0.0f, alpha), esp.f_OutlineThickness); + } + + static void DrawName(const Rect& boxRect, game::Entity* entity, const std::string& name, const ImColor& color, const ImColor& contrastColor) + { + auto& esp = ESP::GetInstance(); + auto& manager = game::EntityManager::instance(); + + std::string text; + if (esp.f_DrawName && esp.f_DrawDistance) + text = fmt::format("{} | {:.1f}m", name, manager.avatar()->distance(entity)); + else if (esp.f_DrawDistance) + text = fmt::format("{:.1f}m", manager.avatar()->distance(entity)); + else + text = name; + + ImVec2 namePosition; + if (!boxRect.empty()) + namePosition = { boxRect.xMin, boxRect.yMin - esp.f_FontSize }; + else + { + auto screenPos = GetEntityScreenPos(entity); + if (!screenPos) + return; + namePosition = *screenPos; + + // Might need to be aware of performance hit but there shouldn't be any. + ImGuiContext& g = *GImGui; + ImFont* font = g.Font; + auto textSize = font->CalcTextSizeA(esp.f_FontSize, FLT_MAX, FLT_MAX, text.c_str()); + namePosition.x -= (textSize.x / 2.0f); + namePosition.y -= esp.f_FontSize; + } + + + auto draw = ImGui::GetBackgroundDrawList(); + auto font = renderer::GetFontBySize(esp.f_FontSize); + // Outline + if (esp.f_FontOutline) + DrawTextWithOutline(draw, font, esp.f_FontSize, namePosition, text.c_str(), color, esp.f_FontOutlineSize, OutlineSide::All, contrastColor); + else + draw->AddText(font, esp.f_FontSize, namePosition, color, text.c_str()); + } + + bool DrawEntity(const std::string& name, game::Entity* entity, const ImColor& color, const ImColor& contrastColor) + { + SAFE_BEGIN(); + auto& esp = ESP::GetInstance(); + + Rect rect; + switch (esp.f_DrawBoxMode.value()) + { + case ESP::DrawMode::Box: + rect = DrawBox(entity, esp.f_GlobalBoxColor ? esp.f_GlobalBoxColor : color); + break; + case ESP::DrawMode::Rectangle: + rect = DrawRect(entity, esp.f_GlobalRectColor ? esp.f_GlobalRectColor : color); + break; + default: + rect = {}; + break; + } + + switch (esp.f_DrawTracerMode.value()) + { + case ESP::DrawTracerMode::Line: + DrawLine(entity, esp.f_GlobalLineColor ? esp.f_GlobalLineColor : color); + break; + case ESP::DrawTracerMode::OffscreenArrows: + DrawOffscreenArrows(entity, esp.f_GlobalLineColor ? esp.f_GlobalLineColor : color); + break; + default: + break; + } + + if (esp.f_DrawName || esp.f_DrawDistance) + DrawName(rect, entity, name, esp.f_GlobalFontColor ? esp.f_GlobalFontColor : color, + esp.m_FontContrastColor ? esp.m_FontContrastColor : contrastColor); + + return HasCenter(rect); + SAFE_ERROR(); + return false; + SAFE_END(); + } + + void PrepareFrame() + { + UpdateMainCamera(); + UpdateResolutionScale(); + + auto& esp = ESP::GetInstance(); + if (esp.f_DrawTracerMode.value() != ESP::DrawTracerMode::None) + UpdateAvatarPosition(); + } +} diff --git a/cheat-library/src/user/cheat/esp/ESPRender.h b/cheat-library/src/user/cheat/esp/ESPRender.h new file mode 100644 index 0000000..b95c1cc --- /dev/null +++ b/cheat-library/src/user/cheat/esp/ESPRender.h @@ -0,0 +1,14 @@ +#pragma once + +#include + +#include +#include + +#include + +namespace cheat::feature::esp::render +{ + bool DrawEntity(const std::string& name, game::Entity* entity, const ImColor& color, const ImColor& contrastColor); + void PrepareFrame(); +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/events.cpp b/cheat-library/src/user/cheat/events.cpp new file mode 100644 index 0000000..99399a4 --- /dev/null +++ b/cheat-library/src/user/cheat/events.cpp @@ -0,0 +1,9 @@ +#include "pch-il2cpp.h" +#include "events.h" + +namespace cheat::events +{ + TEvent<> GameUpdateEvent{}; + TEvent AccountChangedEvent{}; + TEvent MoveSyncEvent{}; +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/events.h b/cheat-library/src/user/cheat/events.h new file mode 100644 index 0000000..665fc15 --- /dev/null +++ b/cheat-library/src/user/cheat/events.h @@ -0,0 +1,11 @@ +#pragma once + +#include +#include + +namespace cheat::events +{ + extern TEvent<> GameUpdateEvent; + extern TEvent AccountChangedEvent; + extern TEvent MoveSyncEvent; +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/game/AdvancedFilter.h b/cheat-library/src/user/cheat/game/AdvancedFilter.h new file mode 100644 index 0000000..4a8abec --- /dev/null +++ b/cheat-library/src/user/cheat/game/AdvancedFilter.h @@ -0,0 +1,62 @@ +#pragma once + +#include "IEntityFilter.h" +#include +#include + +namespace cheat::game +{ + namespace filter::mode { + inline bool whitelist(const std::vector& names, cheat::game::Entity* entity) { + const auto& name = entity->name(); + bool name_found = std::any_of(names.cbegin(), names.cend(), + [&name](const std::string& pattern) { return name.find(pattern) != std::string::npos; }); + + return name_found; + } + + inline bool blacklist(const std::vector& names, cheat::game::Entity* entity) { + bool name_not_found = !whitelist(names, entity); + return name_not_found; + } + } + + template + class AdvancedFilter : + public IEntityFilter + { + public: + AdvancedFilter(const std::vector& types = {}, const std::vector& names = {}) : m_Names(names), m_Types(types) {} + AdvancedFilter(const app::EntityType__Enum_1 type, const std::string name) : AdvancedFilter(std::vector{type}, std::vector{name}) {} + friend AdvancedFilter operator+(AdvancedFilter lFilter, const AdvancedFilter& rFilter); + + bool IsValid(Entity* entity) const override { + if (entity == nullptr) + return false; + + bool type_found = m_Types.size() == 0 || std::any_of(m_Types.cbegin(), m_Types.cend(), + [entity](const app::EntityType__Enum_1& type) { return entity->type() == type; }); + + if (!type_found) + return false; + + return m_Names.empty() || nameFilterFn(m_Names, entity); + } + + private: + std::vector m_Types; + std::vector m_Names; + }; + + + template + AdvancedFilter operator+(AdvancedFilter lFilter, const AdvancedFilter& rFilter) + { + lFilter.m_Names.insert(lFilter.m_Names.end(), rFilter.m_Names.begin(), rFilter.m_Names.end()); + lFilter.m_Types.insert(lFilter.m_Types.end(), rFilter.m_Types.begin(), rFilter.m_Types.end()); + return lFilter; + } + + using WhitelistFilter = AdvancedFilter<&filter::mode::whitelist>; + using BlacklistFilter = AdvancedFilter<&filter::mode::blacklist>; +} diff --git a/cheat-library/src/user/cheat/game/CacheFilterExecutor.cpp b/cheat-library/src/user/cheat/game/CacheFilterExecutor.cpp new file mode 100644 index 0000000..3016da0 --- /dev/null +++ b/cheat-library/src/user/cheat/game/CacheFilterExecutor.cpp @@ -0,0 +1,44 @@ +#include "pch-il2cpp.h" +#include "CacheFilterExecutor.h" + +#include "EntityManager.h" + +namespace cheat::game +{ + + CacheFilterExecutor::CacheFilterExecutor(uint32_t lifeTime) : m_LifeTime(lifeTime) + { + EntityManager& manager = EntityManager::instance(); + manager.entityDestroyEvent += MY_METHOD_HANDLER(CacheFilterExecutor::OnEntityDestroy); + } + + bool CacheFilterExecutor::ApplyFilter(Entity* entity, IEntityFilter* filter) + { + std::lock_guard lock(m_CacheLock); + + if (m_Cache.count(entity) == 0) + m_Cache[entity] = {}; + + auto& entityFilters = m_Cache[entity]; + if (entityFilters.count(filter) == 0) + entityFilters[filter] = { false, 0 }; + + auto& entry = entityFilters[filter]; + auto timestamp = app::GetTimestamp(nullptr, nullptr); + if (entry.second + m_LifeTime > timestamp) + return entry.first; + + bool result = filter->IsValid(entity); + entry = { result, timestamp + m_LifeTime }; + return result; + } + + void CacheFilterExecutor::OnEntityDestroy(Entity* entity) + { + std::lock_guard lock(m_CacheLock); + + if (m_Cache.count(entity) > 0) + m_Cache.erase(entity); + } + +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/game/CacheFilterExecutor.h b/cheat-library/src/user/cheat/game/CacheFilterExecutor.h new file mode 100644 index 0000000..8bf40d7 --- /dev/null +++ b/cheat-library/src/user/cheat/game/CacheFilterExecutor.h @@ -0,0 +1,28 @@ +#pragma once + +#include +#include + +#include "Entity.h" +#include "IEntityFilter.h" + +namespace cheat::game +{ + class CacheFilterExecutor + { + public: + CacheFilterExecutor(uint32_t lifeTime = 1000); + bool ApplyFilter(Entity* entity, IEntityFilter* filter); + + private: + + typedef std::pair CacheValue; + + void OnEntityDestroy(Entity* entity); + + uint32_t m_LifeTime; + + std::mutex m_CacheLock; + std::unordered_map> m_Cache; + }; +} diff --git a/cheat-library/src/user/cheat/game/Chest.cpp b/cheat-library/src/user/cheat/game/Chest.cpp new file mode 100644 index 0000000..ba6cba5 --- /dev/null +++ b/cheat-library/src/user/cheat/game/Chest.cpp @@ -0,0 +1,197 @@ +#include "pch-il2cpp.h" +#include "Chest.h" + +#include "util.h" + +namespace cheat::game +{ + + Chest::Chest(app::BaseEntity* rawEntity) : Entity(rawEntity) + { + } + + cheat::game::Chest::ItemType Chest::itemType() + { + if (!isLoaded()) + return ItemType::None; + + if (m_ItemType) + return *m_ItemType; + + if (name().find("TreasureBox") != std::string::npos) + m_ItemType = ItemType::Chest; + else if (name().find("Search") != std::string::npos || name().find("JunkChest") != std::string::npos) + m_ItemType = ItemType::Investigate; + else if (name().find("BookPage") != std::string::npos) + m_ItemType = ItemType::BookPage; + else if (name().find("BGM") != std::string::npos) + m_ItemType = ItemType::BGM; + else if (name().find("FloraChest") != std::string::npos) + m_ItemType = ItemType::Flora; + else if (name().find("Quest_SiteInteract") != std::string::npos) + m_ItemType = ItemType::QuestInteract; + else + m_ItemType = ItemType::None; + + return *m_ItemType; + } + + cheat::game::Chest::ChestState Chest::chestState() + { + if (!isLoaded()) + return ChestState::None; + + //if (m_ChestState) + // return *m_ChestState; + + auto chestPlugin = plugin(*app::LCChestPlugin__TypeInfo); + if (chestPlugin == nullptr || + chestPlugin->fields._owner == nullptr || + chestPlugin->fields._owner->fields._dataItem == nullptr) + { + // m_ChestState = ChestState::Invalid; + return ChestState::Invalid; + } + + auto state = static_cast(chestPlugin->fields._owner->fields._dataItem->fields.gadgetState); + switch (state) + { + case app::GadgetState__Enum::ChestLocked: + return ChestState::Locked; + case app::GadgetState__Enum::ChestRock: + return ChestState::InRock; + case app::GadgetState__Enum::ChestFrozen: + return ChestState::Frozen; + case app::GadgetState__Enum::ChestBramble: + return ChestState::Bramble; + case app::GadgetState__Enum::ChestTrap: + return ChestState::Trap; + case app::GadgetState__Enum::ChestOpened: + return ChestState::Invalid; + default: + return ChestState::None; + } + } + + cheat::game::Chest::ChestRarity Chest::chestRarity() + { + if (!isLoaded()) + return ChestRarity::Unknown; + + if (m_ChestRarity) + return *m_ChestRarity; + + if (itemType() != ItemType::Chest) + { + m_ChestRarity = ChestRarity::Unknown; + return ChestRarity::Unknown; + } + + auto rarityIdPos = name().find('0'); + if (rarityIdPos == std::string::npos) + { + m_ChestRarity = ChestRarity::Unknown; + return ChestRarity::Unknown; + } + + int rarityId = name()[rarityIdPos + 1] - 48; + switch (rarityId) + { + case 1: + m_ChestRarity = ChestRarity::Common; + break; + case 2: + m_ChestRarity = ChestRarity::Exquisite; + break; + case 4: + m_ChestRarity = ChestRarity::Precious; + break; + case 5: + m_ChestRarity = ChestRarity::Luxurious; + break; + case 6: + m_ChestRarity = ChestRarity::Remarkable; + break; + default: + m_ChestRarity = ChestRarity::Unknown; + break; + } + + return *m_ChestRarity; + } + + ImColor Chest::chestColor() + { + switch (itemType()) + { + case ItemType::Chest: + { + switch (chestRarity()) + { + case ChestRarity::Common: + return ImColor(255, 255, 255); + case ChestRarity::Exquisite: + return ImColor(0, 218, 255); + case ChestRarity::Precious: + return ImColor(231, 112, 255); + case ChestRarity::Luxurious: + return ImColor(246, 255, 0); + case ChestRarity::Remarkable: + return ImColor(255, 137, 0); + case ChestRarity::Unknown: + default: + return ImColor(72, 72, 72); + } + } + case ItemType::Investigate: + case ItemType::BookPage: + case ItemType::BGM: + case ItemType::QuestInteract: + case ItemType::Flora: + return ImColor(104, 146, 163); + case ItemType::None: + default: + return ImColor(72, 72, 72); + } + } + + std::string Chest::minName() + { + switch (itemType()) + { + case ItemType::Chest: + { + switch (chestRarity()) + { + case ChestRarity::Common: + return "CR1"; + case ChestRarity::Exquisite: + return "CR2"; + case ChestRarity::Precious: + return "CR3"; + case ChestRarity::Luxurious: + return "CR4"; + case ChestRarity::Remarkable: + return "CR5"; + case ChestRarity::Unknown: + default: + return "UNK"; + } + } + case ItemType::Investigate: + return "INV"; + case ItemType::BookPage: + return "BPG"; + case ItemType::BGM: + return "BGM"; + case ItemType::QuestInteract: + return "QUE"; + case ItemType::Flora: + return "FLO"; + case ItemType::None: + default: + return "UNK"; + } + } + +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/game/Chest.h b/cheat-library/src/user/cheat/game/Chest.h new file mode 100644 index 0000000..e56c081 --- /dev/null +++ b/cheat-library/src/user/cheat/game/Chest.h @@ -0,0 +1,58 @@ +#pragma once + +#include "Entity.h" + +namespace cheat::game +{ + class Chest : public Entity + { + + public: + + enum class ItemType + { + None, + Chest, + Investigate, + BookPage, + BGM, + Flora, + QuestInteract + }; + + enum class ChestState + { + Invalid, + None, + Locked, + InRock, + Frozen, + Bramble, + Trap + }; + + enum class ChestRarity + { + Unknown, + Common, + Exquisite, + Precious, + Luxurious, + Remarkable + }; + + Chest(app::BaseEntity* rawEntity); + + ItemType itemType(); + ChestState chestState(); + ChestRarity chestRarity(); + ImColor chestColor(); + std::string minName(); + private: + + std::optional m_ItemType; + std::optional m_ChestState; + std::optional m_ChestRarity; + }; +} + diff --git a/cheat-library/src/user/cheat/game/ChestFilter.cpp b/cheat-library/src/user/cheat/game/ChestFilter.cpp new file mode 100644 index 0000000..72f0a2b --- /dev/null +++ b/cheat-library/src/user/cheat/game/ChestFilter.cpp @@ -0,0 +1,47 @@ +#include + +#include "ChestFilter.h" + +namespace cheat::game +{ + ChestFilter::ChestFilter(game::Chest::ChestRarity rarity) : m_ItemType(Chest::ItemType::Chest), m_Rarity(rarity) + { } + + ChestFilter::ChestFilter(game::Chest::ItemType itemType) : m_ItemType(itemType) + { } + + ChestFilter::ChestFilter(game::Chest::ChestState state) : m_ItemType(Chest::ItemType::Chest), m_State(state) + { } + + bool ChestFilter::IsValid(game::Entity* entity) const + { + if (!entity->isChest()) + return false; + + game::Chest* chest = reinterpret_cast(entity); + + return + (!m_ItemType || chest->itemType() == *m_ItemType) && + (!m_Rarity || chest->chestRarity() == *m_Rarity) && + (!m_State || chest->chestState() == *m_State); + } + + ChestFilter operator+(ChestFilter lFilter, const ChestFilter& rFilter) + { + if (rFilter.m_ItemType != Chest::ItemType::Chest) + return lFilter; + + lFilter.m_ItemType = Chest::ItemType::Chest; + + if (rFilter.m_Rarity) + lFilter.m_Rarity = rFilter.m_Rarity; + + if (rFilter.m_State) + lFilter.m_State = rFilter.m_State; + + return lFilter; + } + +} + + diff --git a/cheat-library/src/user/cheat/game/ChestFilter.h b/cheat-library/src/user/cheat/game/ChestFilter.h new file mode 100644 index 0000000..f78b9fc --- /dev/null +++ b/cheat-library/src/user/cheat/game/ChestFilter.h @@ -0,0 +1,28 @@ +#pragma once + +#include + +#include "IEntityFilter.h" +#include "Chest.h" + +namespace cheat::game +{ + class ChestFilter : public IEntityFilter + { + public: + ChestFilter(game::Chest::ChestRarity rarity); + ChestFilter(game::Chest::ChestState state); + ChestFilter(game::Chest::ItemType itemType); + + bool IsValid(game::Entity* entity) const override; + + friend ChestFilter operator+(ChestFilter lFilter, const ChestFilter& rFilter); + + private: + + std::optional m_Rarity; + std::optional m_State; + std::optional m_ItemType; + + }; +} diff --git a/cheat-library/src/user/cheat/game/Entity.cpp b/cheat-library/src/user/cheat/game/Entity.cpp new file mode 100644 index 0000000..6a99a6f --- /dev/null +++ b/cheat-library/src/user/cheat/game/Entity.cpp @@ -0,0 +1,259 @@ +#include "pch-il2cpp.h" +#include "Entity.h" + +#include +#include "EntityManager.h" + +namespace cheat::game +{ + + Entity::Entity(app::BaseEntity* rawEntity) : m_RawEntity(rawEntity), m_Name({}), m_HasName(false) + { + } + + app::String* GetRawName(game::Entity* entity) + { + SAFE_BEGIN(); + return app::BaseEntity_ToStringRelease(entity->raw(), nullptr); + SAFE_ERROR(); + return nullptr; + SAFE_END(); + } + std::string& Entity::name() + { + if (m_HasName || m_RawEntity == nullptr || !isLoaded()) + return m_Name; + + auto rawName = GetRawName(this); + if (rawName == nullptr) + return m_Name; + + auto name = il2cppi_to_string(rawName); + m_Name = name; + m_HasName = true; + return m_Name; + + } + + app::BaseEntity* Entity::raw() + { + return m_RawEntity; + } + + uint32_t Entity::runtimeID() + { + if (m_RawEntity == nullptr) + return 0; + + return m_RawEntity->fields._runtimeID_k__BackingField; + } + + app::EntityType__Enum_1 Entity::type() + { + if (m_RawEntity == nullptr) + return app::EntityType__Enum_1::None; + + return m_RawEntity->fields.entityType; + } + + app::Vector3 Entity::relativePosition() + { + if (m_RawEntity == nullptr) + return {}; + + return app::BaseEntity_GetRelativePosition(m_RawEntity, nullptr); + } + + app::Vector3 Entity::absolutePosition() + { + if (m_RawEntity == nullptr) + return {}; + + return app::BaseEntity_GetAbsolutePosition(m_RawEntity, nullptr); + } + + app::Vector2 Entity::levelPosition() + { + if (m_RawEntity == nullptr) + return {}; + + return app::Miscs_GenLevelPos_1(nullptr, absolutePosition(), nullptr); + } + + float Entity::distance(Entity* entity) + { + if (entity == nullptr) + return 10000; + + return distance(entity->relativePosition()); + } + + float Entity::distance(app::BaseEntity* rawEntity) + { + if (rawEntity == nullptr) + return 10000; + + auto point = app::BaseEntity_GetRelativePosition(rawEntity, nullptr); + return distance(point); + } + + float Entity::distance(const app::Vector3& point) + { + if (m_RawEntity == nullptr) + return 10000; + + auto dist = app::Vector3_Distance(nullptr, relativePosition(), point, nullptr); + return dist; + } + + float Entity::distance(const app::Vector2& levelPoint) + { + if (m_RawEntity == nullptr) + return 10000; + + return app::Vector2_Distance(nullptr, levelPosition(), levelPoint, nullptr); + } + + bool Entity::isGadget() + { + if (m_RawEntity == nullptr) + return false; + + return m_RawEntity->fields.entityType == app::EntityType__Enum_1::Gadget || + m_RawEntity->fields.entityType == app::EntityType__Enum_1::Bullet || + m_RawEntity->fields.entityType == app::EntityType__Enum_1::Field; + } + + bool Entity::isChest() + { + if (m_RawEntity == nullptr) + return false; + + return m_RawEntity->fields.entityType == app::EntityType__Enum_1::Chest; + } + + bool Entity::isAvatar() + { + if (m_RawEntity == nullptr) + return false; + + auto avatar = EntityManager::instance().avatar(); + if (avatar->raw() == nullptr) + return false; + + return avatar->raw() == m_RawEntity; + } + + void Entity::setRelativePosition(const app::Vector3& value) + { + if (m_RawEntity == nullptr) + return; + + app::BaseEntity_SetRelativePosition(m_RawEntity, value, true, nullptr); + } + + void Entity::setAbsolutePosition(const app::Vector3& value) + { + if (m_RawEntity == nullptr) + return; + + app::BaseEntity_SetAbsolutePosition(m_RawEntity, value, true, nullptr); + } + + bool Entity::isLoaded() + { + if (m_RawEntity == nullptr || !app::BaseEntity_IsActive(m_RawEntity, nullptr)) + return false; + + m_IsLoaded = m_IsLoaded || app::BaseEntity_get_rootGameObject(m_RawEntity, nullptr); + return m_IsLoaded; + } + + app::VCBaseMove* Entity::moveComponent() + { + if (!isLoaded()) + return nullptr; + + SAFE_BEGIN(); + return app::BaseEntity_GetMoveComponent_1(m_RawEntity, *app::BaseEntity_GetMoveComponent_1__MethodInfo); + SAFE_ERROR(); + return nullptr; + SAFE_END(); + } + + app::LCBaseCombat* Entity::combat() + { + if (!isLoaded()) + return nullptr; + + SAFE_BEGIN(); + return app::BaseEntity_GetBaseCombat(m_RawEntity, *app::BaseEntity_GetBaseCombat__MethodInfo); + SAFE_ERROR(); + return nullptr; + SAFE_END(); + } + + app::Rigidbody* Entity::rigidbody() + { + if (!isLoaded()) + return nullptr; + + SAFE_BEGIN(); + return app::BaseEntity_GetRigidbody(m_RawEntity, nullptr); + SAFE_ERROR(); + return nullptr; + SAFE_END(); + } + + app::GameObject* Entity::gameObject() + { + if (!isLoaded()) + return nullptr; + + SAFE_BEGIN(); + return app::BaseEntity_get_gameObject(m_RawEntity, nullptr); + SAFE_ERROR(); + return nullptr; + SAFE_END(); + } + + app::Vector3 Entity::forward() + { + if (m_RawEntity == nullptr) + return {}; + + return app::BaseEntity_GetForward(m_RawEntity, nullptr); + } + + app::Vector3 Entity::back() + { + return -forward(); + } + + app::Vector3 Entity::right() + { + if (m_RawEntity == nullptr) + return {}; + + return app::BaseEntity_GetRight(m_RawEntity, nullptr); + } + + app::Vector3 Entity::left() + { + return -right(); + } + + app::Vector3 Entity::up() + { + if (m_RawEntity == nullptr) + return {}; + + return app::BaseEntity_GetUp(m_RawEntity, nullptr); + } + + app::Vector3 Entity::down() + { + return -up(); + } + +} diff --git a/cheat-library/src/user/cheat/game/Entity.h b/cheat-library/src/user/cheat/game/Entity.h new file mode 100644 index 0000000..3e21ccd --- /dev/null +++ b/cheat-library/src/user/cheat/game/Entity.h @@ -0,0 +1,104 @@ +#pragma once +#include +namespace cheat::game +{ + class Entity + { + public: + + Entity(app::BaseEntity* rawEntity); + + std::string& name(); + + app::BaseEntity* raw(); + uint32_t runtimeID(); + app::EntityType__Enum_1 type(); + + app::Vector3 relativePosition(); + app::Vector3 absolutePosition(); + app::Vector2 levelPosition(); + + float distance(const app::Vector3& point); + float distance(const app::Vector2& levelPosition); + float distance(Entity* entity); + float distance(app::BaseEntity* rawEntity); + + bool isGadget(); + bool isChest(); + bool isAvatar(); + + bool isLoaded(); + + void setRelativePosition(const app::Vector3& value); + void setAbsolutePosition(const app::Vector3& value); + + app::VCBaseMove* moveComponent(); + app::LCBaseCombat* combat(); + + app::GameObject* gameObject(); + app::Rigidbody* rigidbody(); + + app::Vector3 forward(); + app::Vector3 back(); + app::Vector3 right(); + app::Vector3 left(); + app::Vector3 up(); + app::Vector3 down(); + + template + T* plugin(void* pClass) + { + if (m_RawEntity == nullptr) + return nullptr; + + SAFE_BEGIN(); + + auto logicComponentsRaw = app::BaseEntity_GetAllLogicComponents(m_RawEntity, nullptr); + auto logicComponents = TO_UNI_LIST(logicComponentsRaw, app::BaseComponent*); + if (logicComponents == nullptr) + return nullptr; + + for (auto& component : *logicComponents) + { + T* value = GetLCPlugin(component, pClass); + if (value != nullptr) + return value; + } + return nullptr; + + SAFE_ERROR(); + return nullptr; + SAFE_END(); + } + + private: + + app::BaseEntity* m_RawEntity; + bool m_HasName; + std::string m_Name; + + bool m_IsLoaded; + + template + T* GetLCPlugin(app::BaseComponentPlugin* plugin, void* pClass) + { + return CastTo(plugin, pClass); + } + + template + T* GetLCPlugin(app::BaseComponent* component, void* pClass) + { + if (component == nullptr || component->fields._pluginList == nullptr) + return nullptr; + + auto componentList = TO_UNI_LIST(component->fields._pluginList, app::BaseComponentPlugin*); + for (auto& plugin : *componentList) + { + T* value = GetLCPlugin(plugin, pClass); + if (value != nullptr) + return value; + } + return nullptr; + } + }; +} diff --git a/cheat-library/src/user/cheat/game/EntityManager.cpp b/cheat-library/src/user/cheat/game/EntityManager.cpp new file mode 100644 index 0000000..13eb591 --- /dev/null +++ b/cheat-library/src/user/cheat/game/EntityManager.cpp @@ -0,0 +1,168 @@ +#include "pch-il2cpp.h" +#include "EntityManager.h" + +#include + +#include "Chest.h" + +namespace cheat::game +{ + + EntityManager& EntityManager::instance() + { + static EntityManager instance; + return instance; + } + + std::vector EntityManager::rawEntities() + { + auto entityManager = GET_SINGLETON(EntityManager); + if (entityManager == nullptr) + return {}; + + auto entities = TO_UNI_LIST(app::EntityManager_GetEntities(entityManager, nullptr), app::BaseEntity*); + if (entities == nullptr) + return {}; + + std::vector aliveEntities; + aliveEntities.reserve(entities->size); + + for (const auto& entity : *entities) + { + if (entity != nullptr && app::BaseEntity_IsActive(entity, nullptr)) + aliveEntities.push_back(entity); + } + return aliveEntities; + } + + std::vector EntityManager::entities() + { + std::vector entityVector; + for (auto& rawEntity : rawEntities()) + { + auto ent = entity(rawEntity); + if (ent != s_EmptyEntity) + entityVector.push_back(ent); + } + return entityVector; + } + + std::vector EntityManager::entities(const IEntityFilter& filter) + { + std::vector entityVector; + for (auto& entity : entities()) + { + if (filter.IsValid(entity)) + entityVector.push_back(entity); + } + + return entityVector; + } + + std::vector EntityManager::entities(Validator validator) + { + std::vector entityVector; + for (auto& entity : entities()) + { + if (validator(entity)) + entityVector.push_back(entity); + } + + return entityVector; + } + + cheat::game::Entity* EntityManager::entity(uint32_t runtimeID, bool unsafe) + { + auto entityManager = GET_SINGLETON(EntityManager); + if (entityManager == nullptr) + return nullptr; + + auto rawEntity = app::EntityManager_GetValidEntity(entityManager, runtimeID, nullptr); + if (unsafe) + return new Entity(rawEntity); + + return entity(rawEntity); + } + + cheat::game::Entity* EntityManager::avatar() + { + auto entityManager = GET_SINGLETON(EntityManager); + if (entityManager == nullptr) + return s_EmptyEntity; + + auto avatarRaw = app::EntityManager_GetCurrentAvatar(entityManager, nullptr); + if (m_AvatarEntity.raw() != avatarRaw) + m_AvatarEntity = Entity(avatarRaw); + + return &m_AvatarEntity; + } + + bool EntityManager_RemoveEntity_Hook(app::EntityManager* __this, app::BaseEntity* entity, uint32_t specifiedRuntimeID, MethodInfo* method) + { + EntityManager::instance().OnRawEntityDestroy(entity); + return CALL_ORIGIN(EntityManager_RemoveEntity_Hook, __this, entity, specifiedRuntimeID, method); + } + + void EntityManager::OnRawEntityDestroy(app::BaseEntity* rawEntity) + { + if (rawEntity == nullptr) + return; + + std::lock_guard lock(m_EntityCacheLock); + if (m_EntityCache.count(rawEntity) == 0) + return; + + entityDestroyEvent(m_EntityCache[rawEntity].first); + + delete m_EntityCache[rawEntity].first; + + m_EntityCache.erase(rawEntity); + } + + EntityManager::EntityManager() : m_AvatarEntity(nullptr) + { + HookManager::install(app::EntityManager_RemoveEntity, EntityManager_RemoveEntity_Hook); + } + + cheat::game::Entity* EntityManager::entity(app::BaseEntity* rawEntity) + { + if (rawEntity == nullptr || !app::BaseEntity_IsActive(rawEntity, nullptr)) + return s_EmptyEntity; + + std::lock_guard lock(m_EntityCacheLock); + if (m_EntityCache.count(rawEntity) > 0) + { + auto& entry = m_EntityCache[rawEntity]; + if (rawEntity->fields._runtimeID_k__BackingField == entry.second) + return entry.first; + + delete m_EntityCache[rawEntity].first; + m_EntityCache.erase(rawEntity); + + entityDestroyEvent(entry.first); + } + + if (app::BaseEntity_get_rootGameObject(rawEntity, nullptr) == nullptr) + return s_EmptyEntity; + + Entity* ent = new Entity(rawEntity); + if (ent->isChest()) + { + delete ent; + ent = new Chest(rawEntity); + } + + m_EntityCache[rawEntity] = { ent, ent->runtimeID() }; + return ent; + } + + app::CameraEntity* EntityManager::mainCamera() + { + auto entityManager = GET_SINGLETON(EntityManager); + if (entityManager == nullptr) + return nullptr; + + auto cameraEntity = app::EntityManager_GetMainCameraEntity(entityManager, nullptr); + return cameraEntity; + } +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/game/EntityManager.h b/cheat-library/src/user/cheat/game/EntityManager.h new file mode 100644 index 0000000..fa595f1 --- /dev/null +++ b/cheat-library/src/user/cheat/game/EntityManager.h @@ -0,0 +1,50 @@ +#pragma once + +#include +#include + +#include "Entity.h" +#include "IEntityFilter.h" + +#include + +namespace cheat::game +{ + class EntityManager + { + public: + + EntityManager(EntityManager const&) = delete; + void operator=(EntityManager const&) = delete; + + static EntityManager& instance(); + + std::vector rawEntities(); + std::vector entities(); + std::vector entities(const IEntityFilter& filter); + + typedef bool (*Validator)(game::Entity* entity); + std::vector entities(Validator validator); + + Entity* entity(app::BaseEntity*); + Entity* entity(uint32_t runtimeID, bool unsafe = false); + + Entity* avatar(); + + app::CameraEntity* mainCamera(); + + void OnRawEntityDestroy(app::BaseEntity* entity); + + TEvent entityDestroyEvent; + + private: + EntityManager(); + + std::mutex m_EntityCacheLock; + std::map> m_EntityCache; + + Entity m_AvatarEntity; + + inline static Entity* s_EmptyEntity = new Entity(nullptr); + }; +} diff --git a/cheat-library/src/user/cheat/game/IEntityFilter.h b/cheat-library/src/user/cheat/game/IEntityFilter.h new file mode 100644 index 0000000..4cb35b1 --- /dev/null +++ b/cheat-library/src/user/cheat/game/IEntityFilter.h @@ -0,0 +1,13 @@ +#pragma once + +#include "Entity.h" + +namespace cheat::game +{ + class IEntityFilter + { + public: + virtual bool IsValid(Entity* entity) const = 0; + }; +} + diff --git a/cheat-library/src/user/cheat/game/SimpleFilter.cpp b/cheat-library/src/user/cheat/game/SimpleFilter.cpp new file mode 100644 index 0000000..887766b --- /dev/null +++ b/cheat-library/src/user/cheat/game/SimpleFilter.cpp @@ -0,0 +1,38 @@ +#include "pch-il2cpp.h" +#include "SimpleFilter.h" + +namespace cheat::game +{ + + bool SimpleFilter::IsValid(Entity* entity) const + { + if (entity == nullptr) + return false; + + if (entity->type() != m_Type) + return false; + + if (m_Names.size() == 0) + return true; + + auto& name = entity->name(); + for (auto& pattern : m_Names) + { + if (name.find(pattern) != -1) + return true; + } + + return false; + } + + SimpleFilter::SimpleFilter(app::EntityType__Enum_1 type, const std::vector& names) : m_Names(names), m_Type(type) + { + + } + + SimpleFilter operator+(SimpleFilter lFilter, const SimpleFilter& rFilter) + { + lFilter.m_Names.insert(lFilter.m_Names.end(), rFilter.m_Names.begin(), rFilter.m_Names.end()); + return lFilter; + } +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/game/SimpleFilter.h b/cheat-library/src/user/cheat/game/SimpleFilter.h new file mode 100644 index 0000000..ee380f1 --- /dev/null +++ b/cheat-library/src/user/cheat/game/SimpleFilter.h @@ -0,0 +1,22 @@ +#pragma once + +#include "IEntityFilter.h" +#include +#include + +namespace cheat::game +{ + class SimpleFilter : + public IEntityFilter + { + public: + + SimpleFilter(app::EntityType__Enum_1 type, const std::vector& names = {}); + SimpleFilter(app::EntityType__Enum_1 type, const std::string name) : SimpleFilter(type, std::vector{name}) {} + bool IsValid(Entity* entity) const override; + friend SimpleFilter operator+(SimpleFilter lFilter, const SimpleFilter& rFilter); + private: + app::EntityType__Enum_1 m_Type; + std::vector m_Names; + }; +} diff --git a/cheat-library/src/user/cheat/game/filters.cpp b/cheat-library/src/user/cheat/game/filters.cpp new file mode 100644 index 0000000..8cc6087 --- /dev/null +++ b/cheat-library/src/user/cheat/game/filters.cpp @@ -0,0 +1,438 @@ +#include + +#include "filters.h" + +namespace cheat::game::filters +{ + namespace collection + { + SimpleFilter Book = { app::EntityType__Enum_1::GatherObject, "SkillObj_EmptyGadget" }; + SimpleFilter Viewpoint = { app::EntityType__Enum_1::ViewPoint, "SkillObj_EmptyGadget" }; + ChestFilter RadiantSpincrystal = ChestFilter(game::Chest::ItemType::BGM); + ChestFilter BookPage = ChestFilter(game::Chest::ItemType::BookPage); + ChestFilter QuestInteract = ChestFilter(game::Chest::ItemType::QuestInteract); + } + + namespace chest + { + ChestFilter CommonChest = ChestFilter(game::Chest::ChestRarity::Common); + ChestFilter ExquisiteChest = ChestFilter(game::Chest::ChestRarity::Exquisite); + ChestFilter PreciousChest = ChestFilter(game::Chest::ChestRarity::Precious); + ChestFilter LuxuriousChest = ChestFilter(game::Chest::ChestRarity::Luxurious); + ChestFilter RemarkableChest = ChestFilter(game::Chest::ChestRarity::Remarkable); + ChestFilter SearchPoint = ChestFilter(game::Chest::ItemType::Investigate); + + ChestFilter SLocked = ChestFilter(game::Chest::ChestState::Locked); + ChestFilter SInLock = ChestFilter(game::Chest::ChestState::InRock); + ChestFilter SFrozen = ChestFilter(game::Chest::ChestState::Frozen); + ChestFilter SBramble = ChestFilter(game::Chest::ChestState::Bramble); + ChestFilter STrap = ChestFilter(game::Chest::ChestState::Trap); + } + + namespace featured + { + SimpleFilter Anemoculus = { app::EntityType__Enum_1::GatherObject, "WindCrystalShell" }; + SimpleFilter CrimsonAgate = { app::EntityType__Enum_1::GatherObject, "Prop_Essence" }; + SimpleFilter Electroculus = { app::EntityType__Enum_1::GatherObject, "Prop_ElectricCrystal" }; + SimpleFilter Electrogranum = { app::EntityType__Enum_1::Gadget, "ThunderSeedCreate" }; + SimpleFilter FishingPoint = { app::EntityType__Enum_1::FishPool, "_FishingShoal" }; + SimpleFilter Geoculus = { app::EntityType__Enum_1::GatherObject, "RockCrystalShell" }; + WhitelistFilter ItemDrops = { std::vector {app::EntityType__Enum_1::GatherObject, app::EntityType__Enum_1::DropItem }, std::vector {"_Food_BirdMeat", "_Food_Meat", "_DropItem" } }; + SimpleFilter Lumenspar = { app::EntityType__Enum_1::GatherObject, "CelestiaSplinter" }; + SimpleFilter KeySigil = { app::EntityType__Enum_1::GatherObject, "RuneContent" }; + SimpleFilter ShrineOfDepth = { app::EntityType__Enum_1::Gadget, "Temple" }; + SimpleFilter TimeTrialChallenge = { app::EntityType__Enum_1::Field, "Challengestarter_" }; + } + + namespace guide + { + SimpleFilter CampfireTorch = { app::EntityType__Enum_1::Gadget, "_FireBasin" }; + SimpleFilter MysteriousCarvings = { app::EntityType__Enum_1::Gadget, "_ReginStatue" }; + SimpleFilter PhaseGate = { app::EntityType__Enum_1::Field, "_TeleportHighway" }; + SimpleFilter Pot = { app::EntityType__Enum_1::Gadget, "_Cooking_" }; + SimpleFilter RuinBrazier = { app::EntityType__Enum_1::Gadget, "_AncientHeatSource" }; + SimpleFilter Stormstone = { app::EntityType__Enum_1::Gadget, "_ReginLamp" }; + } + + namespace living + { + SimpleFilter BirdEgg = { app::EntityType__Enum_1::GatherObject, "BirdEgg" }; + SimpleFilter ButterflyWings = { app::EntityType__Enum_1::EnvAnimal, "Butterfly" }; + SimpleFilter Crab = { app::EntityType__Enum_1::EnvAnimal, "Crab" }; + SimpleFilter CrystalCore = { app::EntityType__Enum_1::EnvAnimal, "Wisp" }; + SimpleFilter Fish = { app::EntityType__Enum_1::Monster, "Fish" }; + SimpleFilter Frog = { app::EntityType__Enum_1::EnvAnimal, "Frog" }; + SimpleFilter LizardTail = { app::EntityType__Enum_1::EnvAnimal, "Lizard" }; + SimpleFilter LuminescentSpine = { app::EntityType__Enum_1::EnvAnimal, "FireFly" }; + SimpleFilter Onikabuto = { app::EntityType__Enum_1::GatherObject, "Electrohercules" }; + SimpleFilter Starconch = { app::EntityType__Enum_1::GatherObject, "Shell" }; + SimpleFilter Eel = { app::EntityType__Enum_1::EnvAnimal, "Eel_" }; + SimpleFilter Inu = { app::EntityType__Enum_1::EnvAnimal, "_Inu_Shihandai" }; + SimpleFilter Boar = { app::EntityType__Enum_1::Monster, "Boar" }; + SimpleFilter Fox = { app::EntityType__Enum_1::Monster, "Fox" }; + SimpleFilter Squirrel = { app::EntityType__Enum_1::Monster, "Squirrel" }; + SimpleFilter Crane = { app::EntityType__Enum_1::Monster, "Crane" }; + SimpleFilter Falcon = { app::EntityType__Enum_1::Monster, "Falcon" }; + SimpleFilter LucklightFly = { app::EntityType__Enum_1::EnvAnimal, "Boltbug_" }; + SimpleFilter Salamander = { app::EntityType__Enum_1::EnvAnimal, "Salamander" }; + SimpleFilter Pigeon = { app::EntityType__Enum_1::Monster, "Pigeon" }; + SimpleFilter Crow = { app::EntityType__Enum_1::Monster, "Crow" }; + SimpleFilter Finch = { app::EntityType__Enum_1::Monster, "Tit" }; + SimpleFilter Wigeon = { app::EntityType__Enum_1::Monster, "Wigeon" }; + SimpleFilter Dog = { app::EntityType__Enum_1::Monster, "DogPrick" }; + SimpleFilter Cat = { app::EntityType__Enum_1::Monster, "Cat" }; + SimpleFilter Weasel = { app::EntityType__Enum_1::Monster, "Marten" }; + SimpleFilter WeaselThief = { app::EntityType__Enum_1::Monster, "Thoarder_Weasel" }; + SimpleFilter Kitsune = { app::EntityType__Enum_1::EnvAnimal, "Vulpes" }; + SimpleFilter BakeDanuki = { app::EntityType__Enum_1::Monster, "Inu_Tanuki" }; + } + + namespace mineral + { + SimpleFilter AmethystLump = { app::EntityType__Enum_1::GatherObject, "_Thundercrystal" }; + SimpleFilter ArchaicStone = { app::EntityType__Enum_1::GatherObject, "AncientOre" }; + SimpleFilter CorLapis = { app::EntityType__Enum_1::GatherObject, "_ElementRock" }; + SimpleFilter CrystalChunk = { app::EntityType__Enum_1::GatherObject, + std::vector { "_OreCrystal", "_ShiningCrystalOre" } }; + SimpleFilter CrystalMarrow = { app::EntityType__Enum_1::GatherObject, "_Crystalizedmarrow" }; + SimpleFilter ElectroCrystal = { app::EntityType__Enum_1::GatherObject, "_OreElectricRock" }; + SimpleFilter IronChunk = { app::EntityType__Enum_1::GatherObject, "_OreStone" }; + SimpleFilter NoctilucousJade = { app::EntityType__Enum_1::GatherObject, + std::vector { "_OreNightBerth", "_ShiningNightBerthOre" } }; + SimpleFilter MagicalCrystalChunk = { app::EntityType__Enum_1::GatherObject, "_OreMagicCrystal" }; + SimpleFilter ScarletQuartz = { app::EntityType__Enum_1::GatherObject, "_OreDulinsBlood" }; + SimpleFilter StarSilver = { app::EntityType__Enum_1::GatherObject, "_OreMoonMeteor" }; + SimpleFilter WhiteIronChunk = { app::EntityType__Enum_1::GatherObject, "_OreMetal" }; + } + + namespace monster + { + SimpleFilter AbyssMage = { app::EntityType__Enum_1::Monster, "_Abyss" }; + SimpleFilter FatuiAgent = { app::EntityType__Enum_1::Monster, "_Fatuus" }; + SimpleFilter FatuiCicinMage = { app::EntityType__Enum_1::Monster, "_Fatuus_Summoner" }; + SimpleFilter FatuiMirrorMaiden = { app::EntityType__Enum_1::Monster, "_Fatuus_Maiden" }; + SimpleFilter FatuiSkirmisher = { app::EntityType__Enum_1::Monster, "_Skirmisher" }; + SimpleFilter Geovishap = { app::EntityType__Enum_1::Monster, "_Drake_Rock" }; + SimpleFilter GeovishapHatchling = { app::EntityType__Enum_1::Monster, "_Wyrm_Rock" }; + SimpleFilter Hilichurl = { app::EntityType__Enum_1::Monster, "_Hili" }; + SimpleFilter Mitachurl = { app::EntityType__Enum_1::Monster, "_Brute" }; + SimpleFilter Nobushi = { app::EntityType__Enum_1::Monster, "_Ronin" }; + SimpleFilter Kairagi = { app::EntityType__Enum_1::Monster, "_Kairagi" }; + SimpleFilter RuinGuard = { app::EntityType__Enum_1::Monster, "_Defender" }; + SimpleFilter RuinHunter = { app::EntityType__Enum_1::Monster, "_Formathr" }; + SimpleFilter RuinGrader = { app::EntityType__Enum_1::Monster, "_Konungmathr" }; + SimpleFilter RuinSentinel = { app::EntityType__Enum_1::Monster, "_Apparatus_Enigma" }; + SimpleFilter Samachurl = { app::EntityType__Enum_1::Monster, "_Shaman" }; + SimpleFilter ShadowyHusk = { app::EntityType__Enum_1::Monster, "ForlornVessel_Strong" }; + SimpleFilter Slime = { app::EntityType__Enum_1::Monster, "_Slime" }; + SimpleFilter FloatingFungus = { app::EntityType__Enum_1::Monster, "_Fungus" }; + SimpleFilter Specter = { app::EntityType__Enum_1::Monster, "_Sylph" }; + SimpleFilter TreasureHoarder = { app::EntityType__Enum_1::Monster, "_Thoarder" }; + SimpleFilter UnusualHilichurl = { app::EntityType__Enum_1::Monster, "_Hili_Wei" }; + SimpleFilter Whopperflower = { app::EntityType__Enum_1::Monster, "_Mimik" }; + SimpleFilter RifthoundWhelp = { app::EntityType__Enum_1::Monster, "_Hound_Kanis" }; + SimpleFilter Rifthound = { app::EntityType__Enum_1::Monster, "_Hound_Riftstalker" }; + SimpleFilter Dvalin = { app::EntityType__Enum_1::Monster, "_Dragon_Dvalin" }; + SimpleFilter Andrius = { app::EntityType__Enum_1::Monster, "_Wolf_LupiBoreas" }; + SimpleFilter Tartaglia = { app::EntityType__Enum_1::Monster, "_Tartaglia" }; + SimpleFilter Azhdaha = { app::EntityType__Enum_1::Monster, "_Dahaka" }; + SimpleFilter Signora = { app::EntityType__Enum_1::Monster, "_LaSignora" }; + SimpleFilter Shogun = { app::EntityType__Enum_1::Monster, "_Shougan" }; + SimpleFilter EyeOfTheStorm = { app::EntityType__Enum_1::Monster, "_Elemental_Wind" }; + SimpleFilter ElectroHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Electric" }; + SimpleFilter AnemoHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Wind" }; + SimpleFilter GeoHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Rock" }; + SimpleFilter HydroHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Water" }; + SimpleFilter CryoHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Ice" }; + SimpleFilter PyroHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Fire" }; + SimpleFilter HydroHypostasisSummon = { app::EntityType__Enum_1::Monster, "_Effigy_Water_Underling_Ooze" }; + SimpleFilter Oceanid = { app::EntityType__Enum_1::Monster, "_Oceanid" }; + SimpleFilter OceanidBoar = { app::EntityType__Enum_1::Monster, "_Oceanid_Boar" }; + SimpleFilter OceanidCrane = { app::EntityType__Enum_1::Monster, "_Oceanid_Crane" }; + SimpleFilter OceanidCrab = { app::EntityType__Enum_1::Monster, "_Oceanid_Crab" }; + SimpleFilter OceanidFinch = { app::EntityType__Enum_1::Monster, "_Oceanid_Tit" }; + SimpleFilter OceanidWigeon = { app::EntityType__Enum_1::Monster, "_Oceanid_Wigeon" }; + SimpleFilter OceanidSquirrel = { app::EntityType__Enum_1::Monster, "_Oceanid_Squirrel" }; + SimpleFilter OceanidFrog = { app::EntityType__Enum_1::Monster, "_Oceanid_Frog" }; + SimpleFilter OceanidFalcon = { app::EntityType__Enum_1::Monster, "_Oceanid_Falcon" }; + SimpleFilter PerpetualMechanicalArray = { app::EntityType__Enum_1::Monster, "_Apparatus_Perpetual" }; + SimpleFilter PrimoGeovishap = { app::EntityType__Enum_1::Monster, "_Drake_Primo_Rock" }; + SimpleFilter HydroBathysmalVishap = { app::EntityType__Enum_1::Monster, "_Drake_Deepsea_Water" }; + SimpleFilter CryoBathysmalVishap = { app::EntityType__Enum_1::Monster, "_Drake_Deepsea_Ice" }; + SimpleFilter ElectroBathysmalVishap = { app::EntityType__Enum_1::Monster, "_Drake_Deepsea_Electric" }; + SimpleFilter ThunderManifestation = { app::EntityType__Enum_1::Monster, "_Raijin" }; + SimpleFilter HydroAbyssHerald = { app::EntityType__Enum_1::Monster, "_Invoker_Herald_Water" }; + SimpleFilter ElectroAbyssLector = { app::EntityType__Enum_1::Monster, "_Invoker_Deacon_Electric" }; + SimpleFilter PyroAbyssLector = { app::EntityType__Enum_1::Monster, "_Invoker_Deacon_Fire" }; + SimpleFilter BlackSerpentKnight = { app::EntityType__Enum_1::Monster, "_Darkwraith_Strong_Wind" }; + SimpleFilter GoldenWolflord = { app::EntityType__Enum_1::Monster, "_Hound_Planelurker" }; + SimpleFilter RuinSerpent = { app::EntityType__Enum_1::Monster, "_Nithhoggr" }; + SimpleFilter Millelith = { app::EntityType__Enum_1::Monster, "_Millelith_" }; + SimpleFilter ShogunateInfantry = { app::EntityType__Enum_1::Monster, "_Aahigaru_" }; + SimpleFilter SangonomiyaCohort = { app::EntityType__Enum_1::Monster, "_AahigaruTaisho_" }; + SimpleFilter CryoRegisvine = { app::EntityType__Enum_1::Monster, "_Regisvine_Ice" }; + SimpleFilter PyroRegisvine = { app::EntityType__Enum_1::Monster, "_Regisvine_Fire" }; + SimpleFilter MaguuKenki = { app::EntityType__Enum_1::Monster, "_Ningyo" }; + SimpleFilter Cicin = { app::EntityType__Enum_1::Monster, "_Cicin" }; + SimpleFilter Beisht = { app::EntityType__Enum_1::Monster, "_Eldritch" }; + } + + namespace plant + { + SimpleFilter AmakumoFruit = { app::EntityType__Enum_1::GatherObject, "_Electroseed" }; + SimpleFilter Apple = { app::EntityType__Enum_1::GatherObject, "_Drop_Plant_Apple" }; + SimpleFilter BambooShoot = { app::EntityType__Enum_1::GatherObject, "_Bambooshoot" }; + SimpleFilter Berry = { app::EntityType__Enum_1::GatherObject, "_Raspberry" }; + SimpleFilter CallaLily = { app::EntityType__Enum_1::GatherObject, "_Plant_Callas" }; + SimpleFilter Carrot = { app::EntityType__Enum_1::GatherObject, "_Plant_Carrot" }; + SimpleFilter Cecilia = { app::EntityType__Enum_1::GatherObject, "_Cecilia" }; + SimpleFilter DandelionSeed = { app::EntityType__Enum_1::GatherObject, "_Plant_Dandelion" }; + SimpleFilter Dendrobium = { app::EntityType__Enum_1::GatherObject, "_Blooddendrobe" }; + SimpleFilter FlamingFlowerStamen = { app::EntityType__Enum_1::GatherObject, "_Flower_FireFlower" }; + SimpleFilter FluorescentFungus = { app::EntityType__Enum_1::GatherObject, "_Lampmushroom" }; + SimpleFilter GlazeLily = { app::EntityType__Enum_1::GatherObject, "_GlazedLily" }; + SimpleFilter Horsetail = { app::EntityType__Enum_1::GatherObject, "_HorseTail" }; + SimpleFilter JueyunChili = { app::EntityType__Enum_1::GatherObject, "_UltimateChilli_Fruit" }; + SimpleFilter LavenderMelon = { app::EntityType__Enum_1::GatherObject, "_Akebia" }; + SimpleFilter LotusHead = { app::EntityType__Enum_1::GatherObject, "_Lotus_Drop" }; + SimpleFilter Matsutake = { app::EntityType__Enum_1::GatherObject, "_Food_Matsutake" }; + SimpleFilter Mint = { app::EntityType__Enum_1::GatherObject, "_Plant_Mint" }; + SimpleFilter MistFlowerCorolla = { app::EntityType__Enum_1::GatherObject, "_Flower_IceFlower" }; + SimpleFilter Mushroom = { app::EntityType__Enum_1::GatherObject, "_Plant_Mushroom" }; + SimpleFilter NakuWeed = { app::EntityType__Enum_1::GatherObject, "_Howlgrass" }; + SimpleFilter PhilanemoMushroom = { app::EntityType__Enum_1::GatherObject, "_WindmilHunter" }; + SimpleFilter Pinecone = { app::EntityType__Enum_1::GatherObject, "_Drop_Plant_Pine" }; + SimpleFilter Qingxin = { app::EntityType__Enum_1::GatherObject, "_QingXin" }; + SimpleFilter Radish = { app::EntityType__Enum_1::GatherObject, "_Plant_Radish" }; + SimpleFilter SakuraBloom = { app::EntityType__Enum_1::GatherObject, "_Cherrypetals" }; + SimpleFilter SangoPearl = { app::EntityType__Enum_1::GatherObject, "_Coralpearl" }; + SimpleFilter SeaGanoderma = { app::EntityType__Enum_1::GatherObject, "_Electroanemones" }; + SimpleFilter Seagrass = { app::EntityType__Enum_1::GatherObject, "_Seagrass" }; + SimpleFilter SilkFlower = { app::EntityType__Enum_1::GatherObject, "_NiChang_Drop" }; + SimpleFilter SmallLampGrass = { app::EntityType__Enum_1::Field, "_Plant_Fuchsia" }; + SimpleFilter Snapdragon = { app::EntityType__Enum_1::GatherObject, "_Plant_Snapdragon" }; + SimpleFilter Sunsettia = { app::EntityType__Enum_1::GatherObject, "_SunsetFruit" }; + SimpleFilter SweetFlower = { app::EntityType__Enum_1::GatherObject, "_Plant_Whiteballet" }; + SimpleFilter Valberry = { app::EntityType__Enum_1::GatherObject, "_DropingBerry_Gather" }; + SimpleFilter Violetgrass = { app::EntityType__Enum_1::GatherObject, "_GlazedGrass" }; + SimpleFilter WindwheelAster = { app::EntityType__Enum_1::GatherObject, "_WindmilDaisy" }; + SimpleFilter Wolfhook = { app::EntityType__Enum_1::GatherObject, "_GogoFruit" }; + } + + namespace puzzle + { + SimpleFilter AncientRime = { app::EntityType__Enum_1::Gadget, "_IceSolidBulk" }; + SimpleFilter BakeDanuki = { app::EntityType__Enum_1::Monster, "Animal_Inu_Tanuki_" }; + SimpleFilter BloattyFloatty = { app::EntityType__Enum_1::Field, "_Flower_PongPongTree_" }; + WhitelistFilter CubeDevices = { std::vector {app::EntityType__Enum_1::Gadget, app::EntityType__Enum_1::Platform }, std::vector {"_ElecStone", "_ElecSwitch" }}; + SimpleFilter EightStoneTablets = { app::EntityType__Enum_1::Gadget, "_HistoryBoard" }; + SimpleFilter ElectricConduction = { app::EntityType__Enum_1::Gear, "_ElectricPowerSource" }; + WhitelistFilter ElectroSeelie = { std::vector {app::EntityType__Enum_1::Field, app::EntityType__Enum_1::Platform }, std::vector {"_ElectricSeelie"} }; + SimpleFilter ElementalMonument = { app::EntityType__Enum_1::Gear, "_ElemTablet" }; + SimpleFilter FloatingAnemoSlime = { app::EntityType__Enum_1::Platform, "_WindSlime" }; + SimpleFilter Geogranum = { app::EntityType__Enum_1::Gadget, "_Property_Prop_RockFragment" }; + SimpleFilter GeoPuzzle = { app::EntityType__Enum_1::Field, "_Rockstraight_" }; + SimpleFilter LargeRockPile = { app::EntityType__Enum_1::Gadget, std::vector {"_ElecRocks", "_StonePile_02" } }; + SimpleFilter LightUpTilePuzzle = { app::EntityType__Enum_1::Field, "_TwinStoryFloor" }; + SimpleFilter LightningStrikeProbe = { app::EntityType__Enum_1::Gadget, "_MagneticGear" }; + SimpleFilter LumenCage = { app::EntityType__Enum_1::Gadget, "_LitBulletLauncher" }; + SimpleFilter LuminousSeelie = { app::EntityType__Enum_1::Platform, "_LitSeelie" }; + SimpleFilter MistBubble = { app::EntityType__Enum_1::Platform, "_Suspiciousbubbles" }; + SimpleFilter OozingConcretions = { app::EntityType__Enum_1::Gadget, "_AbyssCoreLv" }; + SimpleFilter PirateHelm = { app::EntityType__Enum_1::Field, "_PirateHelm" }; + WhitelistFilter PressurePlate = { std::vector {app::EntityType__Enum_1::Field, app::EntityType__Enum_1::Gadget }, std::vector {"Gear_Gravity", "_LitPathPlate" } }; + SimpleFilter SeelieLamp = { app::EntityType__Enum_1::Field, "Gear_SeeliaLamp" }; + SimpleFilter Seelie = { app::EntityType__Enum_1::Platform, "Gear_Seelie" }; + SimpleFilter SmallRockPile = { app::EntityType__Enum_1::Gadget, "_StonePile_01" }; + SimpleFilter StormBarrier = { app::EntityType__Enum_1::Field, "_WindField_PushField" }; + SimpleFilter SwordHilt = { app::EntityType__Enum_1::Field, "_WastedSword_" }; + SimpleFilter Temari = { app::EntityType__Enum_1::Field, "_Temari" }; + SimpleFilter TorchPuzzle = { app::EntityType__Enum_1::Gadget, "_ImmortalFire" }; + SimpleFilter UniqueRocks = { app::EntityType__Enum_1::Gadget, "_Chalcedony" }; + SimpleFilter WarmingSeelie = { app::EntityType__Enum_1::Platform, "_FireSeelie" }; + SimpleFilter WindmillMechanism = { app::EntityType__Enum_1::Gear, "Gear_Windmill" }; + } + + namespace combined + { + SimpleFilter Oculies = { + featured::Anemoculus + + featured::CrimsonAgate + + featured::Electroculus + + featured::Geoculus + + featured::Lumenspar + + featured::KeySigil + }; + SimpleFilter Chests = { app::EntityType__Enum_1::Chest }; + SimpleFilter Ores = { + mineral::AmethystLump + + mineral::ArchaicStone + + mineral::CorLapis + + mineral::CrystalChunk + + mineral::CrystalMarrow + + mineral::ElectroCrystal + + mineral::IronChunk + + mineral::NoctilucousJade + + mineral::MagicalCrystalChunk + + mineral::StarSilver + + mineral::WhiteIronChunk + }; + WhitelistFilter Doodads = { + std::vector { app::EntityType__Enum_1::Gadget }, + std::vector { + "Monster_Effigy_Electric_01", + "Monster_Effigy_Electric_02", + "Monster_Effigy_Wind_01", + "Monster_Effigy_Wind_02", + "Monster_Effigy_Rock_01", + "Monster_Effigy_Rock_02", + "Monster_Effigy_Water_01", + "Monster_Effigy_Ice_01", + "Monster_Effigy_Fire_01", + "Monster_Effigy_Water_Underling_Ooze_01", + "Monster_Effigy_Water_Underling_Ooze_02", + "Monster_Effigy_Water_Underling_Ooze_03", + "Monster_Effigy_Water_Underling_Ooze_04", + "HiliWoodenBox", + "HiliWoodenBarrel", + "HumanBox", + "HumanJars", + "QQTotem", + "WatchTower01", + "WatchTower02", + "StonePile", + "BrokenWall", + "WoodenBox" + } }; + SimpleFilter Animals = { app::EntityType__Enum_1::EnvAnimal }; + SimpleFilter AnimalDrop = { + living::Falcon + + living::Pigeon + + living::Finch + + living::Wigeon + + living::Crane + + living::Crow + + living::Fox + + living::Squirrel + + living::Boar + + living::Weasel + + living::Fish + }; + SimpleFilter AnimalPickUp = { + living::CrystalCore + + living::Salamander + + living::Frog + + living::Crab + + living::LizardTail + + living::Eel + + living::Onikabuto + + living::ButterflyWings + + living::LucklightFly + + living::LuminescentSpine + + living::Starconch + + living::BirdEgg + + living::WeaselThief + }; + SimpleFilter AnimalNPC = { + living::Dog + + living::Cat + + living::Kitsune + + living::BakeDanuki + }; + SimpleFilter Monsters = { app::EntityType__Enum_1::Monster }; + SimpleFilter MonsterCommon = { + monster::Slime + + monster::Specter + + monster::Whopperflower + + monster::Hilichurl + + monster::Samachurl + + monster::UnusualHilichurl + + monster::FatuiSkirmisher + + monster::TreasureHoarder + + monster::Nobushi + + monster::Kairagi + }; + SimpleFilter MonsterElites = { + monster::Mitachurl + + monster::AbyssMage + + monster::HydroAbyssHerald + + monster::PyroAbyssLector + + monster::ElectroAbyssLector + + monster::RifthoundWhelp + + monster::Rifthound + + monster::ShadowyHusk + + monster::RuinGuard + + monster::RuinHunter + + monster::RuinGrader + + monster::RuinSentinel + + monster::Cicin + + monster::FatuiCicinMage + + monster::FatuiAgent + + monster::FatuiMirrorMaiden + + monster::GeovishapHatchling + + monster::Geovishap + + monster::HydroBathysmalVishap + + monster::EyeOfTheStorm + }; + SimpleFilter MonsterBosses = { + // Adding these comments for better tracking. + // Trounce + monster::Dvalin + + monster::Azhdaha + + monster::Signora + + monster::Shogun + + monster::Andrius + + monster::Tartaglia + + // Mondstadt + monster::CryoRegisvine + + monster::ElectroHypostasis + + monster::AnemoHypostasis + + monster::CryoHypostasis + + // Liyue + monster::PyroRegisvine + + monster::Oceanid + + monster::GeoHypostasis + + monster::RuinSerpent + + monster::PrimoGeovishap + + // Inazuma + monster::PerpetualMechanicalArray + + monster::PyroHypostasis + + monster::MaguuKenki + + monster::ThunderManifestation + + monster::GoldenWolflord + + monster::HydroHypostasis + + monster::CryoBathysmalVishap + + monster::ElectroBathysmalVishap + }; + SimpleFilter MonsterShielded = { + // Taken from https://genshin-impact.fandom.com/wiki/Shields/Enemy. + // We won't be including Regisvines and enemy objects here, + // just regular monsters. + monster::AbyssMage + + monster::Slime + + monster::Mitachurl + + monster::ElectroAbyssLector + + monster::HydroAbyssHerald + + monster::PyroAbyssLector + + monster::FatuiCicinMage + + monster::Cicin + + monster::Whopperflower + }; + SimpleFilter MonsterEquips = { app::EntityType__Enum_1::MonsterEquip }; + BlacklistFilter Living = { + std::vector { + app::EntityType__Enum_1::EnvAnimal, + app::EntityType__Enum_1::Monster + }, + std::vector { + // Environmental mobs + "Cat", "DogPrick", "Vulpues", "Inu_Tanuki", + // Overworld bosses + "Ningyo", "Regisvine", "Hypostasis", "Planelurker", "Nithhoggr" + } + }; + SimpleFilter OrganicTargets = Monsters + Animals; // Solael: Please don't mess around with this filter. + //m0nkrel: We can choose the entities we need ourselves so as not to magnetize cats, dogs, etc. + //AdvancedFilter Animals = { std::vector {app::EntityType__Enum_1::EnvAnimal, app::EntityType__Enum_1::Monster }, std::vector {"Crane","Tit", "Boar" , "Squirrel", "Fox", "Pigeon", "Wigeon", "Falcon" ,"Marten" } }; + } +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/game/filters.h b/cheat-library/src/user/cheat/game/filters.h new file mode 100644 index 0000000..712197a --- /dev/null +++ b/cheat-library/src/user/cheat/game/filters.h @@ -0,0 +1,274 @@ +#pragma once + +#include "AdvancedFilter.h" +#include "SimpleFilter.h" +#include "ChestFilter.h" + +namespace cheat::game::filters +{ + namespace collection + { + extern SimpleFilter Book; + extern SimpleFilter Viewpoint; + + extern ChestFilter RadiantSpincrystal; + extern ChestFilter BookPage; + extern ChestFilter QuestInteract; + } + + namespace chest + { + extern ChestFilter CommonChest; + extern ChestFilter ExquisiteChest; + extern ChestFilter PreciousChest; + extern ChestFilter LuxuriousChest; + extern ChestFilter RemarkableChest; + extern ChestFilter SearchPoint; + + extern ChestFilter SLocked; + extern ChestFilter SInLock; + extern ChestFilter SFrozen; + extern ChestFilter SBramble; + extern ChestFilter STrap; + } + + namespace featured + { + extern SimpleFilter Anemoculus; + extern SimpleFilter CrimsonAgate; + extern SimpleFilter Electroculus; + extern SimpleFilter Electrogranum; + extern SimpleFilter FishingPoint; + extern SimpleFilter Geoculus; + extern WhitelistFilter ItemDrops; + extern SimpleFilter Lumenspar; + extern SimpleFilter KeySigil; + extern SimpleFilter ShrineOfDepth; + extern SimpleFilter TimeTrialChallenge; + } + + namespace guide + { + extern SimpleFilter CampfireTorch; + extern SimpleFilter MysteriousCarvings; + extern SimpleFilter PhaseGate; + extern SimpleFilter Pot; + extern SimpleFilter RuinBrazier; + extern SimpleFilter Stormstone; + } + + namespace living + { + extern SimpleFilter BirdEgg; + extern SimpleFilter ButterflyWings; + extern SimpleFilter Crab; + extern SimpleFilter CrystalCore; + extern SimpleFilter Fish; + extern SimpleFilter Frog; + extern SimpleFilter LizardTail; + extern SimpleFilter LuminescentSpine; + extern SimpleFilter Onikabuto; + extern SimpleFilter Starconch; + extern SimpleFilter Eel; + extern SimpleFilter Inu; + extern SimpleFilter Boar; + extern SimpleFilter Fox; + extern SimpleFilter Squirrel; + extern SimpleFilter Crane; + extern SimpleFilter Falcon; + extern SimpleFilter LucklightFly; + extern SimpleFilter Salamander; + extern SimpleFilter Pigeon; + extern SimpleFilter Crow; + extern SimpleFilter Finch; + extern SimpleFilter Wigeon; + extern SimpleFilter Dog; + extern SimpleFilter Cat; + extern SimpleFilter Weasel; + extern SimpleFilter Kitsune; + extern SimpleFilter BakeDanuki; + } + + namespace mineral + { + extern SimpleFilter AmethystLump; + extern SimpleFilter ArchaicStone; + extern SimpleFilter CorLapis; + extern SimpleFilter CrystalChunk; + extern SimpleFilter CrystalMarrow; + extern SimpleFilter ElectroCrystal; + extern SimpleFilter IronChunk; + extern SimpleFilter NoctilucousJade; + extern SimpleFilter MagicalCrystalChunk; + extern SimpleFilter ScarletQuartz; + extern SimpleFilter StarSilver; + extern SimpleFilter WhiteIronChunk; + } + + namespace monster + { + extern SimpleFilter AbyssMage; + extern SimpleFilter FatuiAgent; + extern SimpleFilter FatuiCicinMage; + extern SimpleFilter FatuiMirrorMaiden; + extern SimpleFilter FatuiSkirmisher; + extern SimpleFilter Geovishap; + extern SimpleFilter GeovishapHatchling; + extern SimpleFilter Hilichurl; + extern SimpleFilter Mitachurl; + extern SimpleFilter Nobushi; + extern SimpleFilter Kairagi; + extern SimpleFilter RuinGuard; + extern SimpleFilter RuinHunter; + extern SimpleFilter RuinSentinel; + extern SimpleFilter Samachurl; + extern SimpleFilter ShadowyHusk; + extern SimpleFilter Slime; + extern SimpleFilter FloatingFungus; + extern SimpleFilter Specter; + extern SimpleFilter TreasureHoarder; + extern SimpleFilter UnusualHilichurl; + extern SimpleFilter Whopperflower; + extern SimpleFilter RifthoundWhelp; + extern SimpleFilter Rifthound; + extern SimpleFilter Dvalin; + extern SimpleFilter Andrius; + extern SimpleFilter Tartaglia; + extern SimpleFilter Azhdaha; + extern SimpleFilter Signora; + extern SimpleFilter Shogun; + extern SimpleFilter EyeOfTheStorm; + extern SimpleFilter ElectroHypostasis; + extern SimpleFilter AnemoHypostasis; + extern SimpleFilter GeoHypostasis; + extern SimpleFilter HydroHypostasis; + extern SimpleFilter CryoHypostasis; + extern SimpleFilter PyroHypostasis; + extern SimpleFilter HydroHypostasisSummon; + extern SimpleFilter Oceanid; + extern SimpleFilter OceanidBoar; + extern SimpleFilter OceanidCrane; + extern SimpleFilter OceanidCrab; + extern SimpleFilter OceanidFinch; + extern SimpleFilter OceanidWigeon; + extern SimpleFilter OceanidSquirrel; + extern SimpleFilter OceanidFrog; + extern SimpleFilter OceanidFalcon; + extern SimpleFilter PerpetualMechanicalArray; + extern SimpleFilter PrimoGeovishap; + extern SimpleFilter CryoBathysmalVishap; + extern SimpleFilter ElectroBathysmalVishap; + extern SimpleFilter ThunderManifestation; + extern SimpleFilter HydroAbyssHerald; + extern SimpleFilter ElectroAbyssLector; + extern SimpleFilter PyroAbyssLector; + extern SimpleFilter BlackSerpentKnight; + extern SimpleFilter GoldenWolflord; + extern SimpleFilter RuinSerpent; + extern SimpleFilter Millelith; + extern SimpleFilter ShogunateInfantry; + extern SimpleFilter SangonomiyaCohort; + extern SimpleFilter CryoRegisvine; + extern SimpleFilter PyroRegisvine; + extern SimpleFilter MaguuKenki; + extern SimpleFilter Cicin; + extern SimpleFilter Beisht; + } + + namespace plant + { + extern SimpleFilter AmakumoFruit; + extern SimpleFilter Apple; + extern SimpleFilter BambooShoot; + extern SimpleFilter Berry; + extern SimpleFilter CallaLily; + extern SimpleFilter Carrot; + extern SimpleFilter Cecilia; + extern SimpleFilter DandelionSeed; + extern SimpleFilter Dendrobium; + extern SimpleFilter FlamingFlowerStamen; + extern SimpleFilter FluorescentFungus; + extern SimpleFilter GlazeLily; + extern SimpleFilter Horsetail; + extern SimpleFilter JueyunChili; + extern SimpleFilter LavenderMelon; + extern SimpleFilter LotusHead; + extern SimpleFilter Matsutake; + extern SimpleFilter Mint; + extern SimpleFilter MistFlowerCorolla; + extern SimpleFilter Mushroom; + extern SimpleFilter NakuWeed; + extern SimpleFilter PhilanemoMushroom; + extern SimpleFilter Pinecone; + extern SimpleFilter Qingxin; + extern SimpleFilter Radish; + extern SimpleFilter SakuraBloom; + extern SimpleFilter SangoPearl; + extern SimpleFilter SeaGanoderma; + extern SimpleFilter Seagrass; + extern SimpleFilter SilkFlower; + extern SimpleFilter SmallLampGrass; + extern SimpleFilter Snapdragon; + extern SimpleFilter Sunsettia; + extern SimpleFilter SweetFlower; + extern SimpleFilter Valberry; + extern SimpleFilter Violetgrass; + extern SimpleFilter WindwheelAster; + extern SimpleFilter Wolfhook; + } + + namespace puzzle + { + extern SimpleFilter AncientRime; + extern SimpleFilter BakeDanuki; + extern SimpleFilter BloattyFloatty; + extern WhitelistFilter CubeDevices; + + extern SimpleFilter EightStoneTablets; + extern SimpleFilter ElectricConduction; + extern WhitelistFilter ElectroSeelie; + extern SimpleFilter ElementalMonument; + extern SimpleFilter FloatingAnemoSlime; + extern SimpleFilter Geogranum; + extern SimpleFilter GeoPuzzle; + extern SimpleFilter LargeRockPile; + extern SimpleFilter LightUpTilePuzzle; + extern SimpleFilter LightningStrikeProbe; + extern SimpleFilter LumenCage; + extern SimpleFilter LuminousSeelie; + extern SimpleFilter MistBubble; + extern SimpleFilter OozingConcretions; + extern SimpleFilter PirateHelm; + extern WhitelistFilter PressurePlate; + extern SimpleFilter SeelieLamp; + extern SimpleFilter Seelie; + extern SimpleFilter SmallRockPile; + extern SimpleFilter StormBarrier; + extern SimpleFilter SwordHilt; + extern SimpleFilter Temari; + extern SimpleFilter TorchPuzzle; + extern SimpleFilter UniqueRocks; + extern SimpleFilter WarmingSeelie; + extern SimpleFilter WindmillMechanism; + } + + namespace combined + { + extern SimpleFilter Oculies; + extern SimpleFilter Chests; + extern SimpleFilter Ores; + extern WhitelistFilter Doodads; + extern SimpleFilter Animals; + extern SimpleFilter AnimalDrop; + extern SimpleFilter AnimalPickUp; + extern SimpleFilter AnimalNPC; + extern SimpleFilter Monsters; + extern SimpleFilter MonsterCommon; + extern SimpleFilter MonsterElites; + extern SimpleFilter MonsterBosses; + extern SimpleFilter MonsterShielded; + extern SimpleFilter MonsterEquips; + extern BlacklistFilter Living; + extern SimpleFilter OrganicTargets; + } +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/game/util.cpp b/cheat-library/src/user/cheat/game/util.cpp new file mode 100644 index 0000000..023e874 --- /dev/null +++ b/cheat-library/src/user/cheat/game/util.cpp @@ -0,0 +1,127 @@ +#include +#include "util.h" + +#include +#include "EntityManager.h" + +namespace cheat::game +{ + std::vector GetUnlockedWaypoints(uint32_t targetSceneId) + { + auto mapModule = GET_SINGLETON(MBHLOBDPKEC); + if (mapModule == nullptr) + return {}; + + if (targetSceneId == 0) + targetSceneId = GetCurrentPlayerSceneID(); + + auto result = std::vector(); + + auto waypointGroups = TO_UNI_DICT(mapModule->fields._scenePointDics, uint32_t, UniDict*); + for (const auto& [sceneId, waypoints] : waypointGroups->pairs()) + { + if (sceneId != targetSceneId) + continue; + + for (const auto& [waypointId, waypoint] : waypoints->pairs()) + { + if (waypoint.config == nullptr) + continue; + + auto& config = waypoint.config->fields; + uint16_t areaId = app::SimpleSafeUInt16_get_Value(nullptr, config.areaIdRawNum, nullptr); + bool isAreaUnlocked = app::MapModule_IsAreaUnlock(mapModule, sceneId, areaId, nullptr); + + if (waypoint.isUnlocked && isAreaUnlocked && !config._unlocked && !waypoint.isGroupLimit && !waypoint.isModelHidden) + result.push_back(WaypointInfo{ sceneId, waypointId, waypoint.config->fields._tranPos, (app::MapModule_ScenePointData*)&waypoint }); + } + } + return result; + } + + // Finding nearest unlocked waypoint to the position + WaypointInfo FindNearestWaypoint(app::Vector3& position, uint32_t targetSceneId) + { + float minDistance = -1; + WaypointInfo result{}; + for (const auto& info : GetUnlockedWaypoints(targetSceneId)) { + float distance = app::Vector3_Distance(nullptr, position, info.position, nullptr); + if (minDistance < 0 || distance < minDistance) + { + minDistance = distance; + result = info; + } + } + return result; + } + + uint32_t GetCurrentPlayerSceneID() + { + auto playerModule = GET_SINGLETON(PlayerModule); + if (playerModule == nullptr) + return 0; + + return playerModule->fields.curSceneID; + } + + uint32_t GetCurrentMapSceneID() + { + auto mapManager = GET_SINGLETON(MapManager); + if (mapManager == nullptr) + return 0; + + return mapManager->fields.mapSceneID; + } + + app::GadgetEntity* GetGadget(uint32_t runtimeID) + { + auto& manager = EntityManager::instance(); + return GetGadget(manager.entity(runtimeID)); + } + + app::GadgetEntity* GetGadget(app::BaseEntity* entity) + { + if (entity == nullptr) + return nullptr; + + auto ent = Entity(entity); + if (!ent.isGadget()) + return nullptr; + + return reinterpret_cast(entity); + } + + app::GadgetEntity* GetGadget(Entity* entity) + { + if (entity == nullptr || !entity->isGadget()) + return nullptr; + + return reinterpret_cast(entity); + } + + game::Entity* FindNearestEntity(const IEntityFilter& filter) + { + auto& manager = game::EntityManager::instance(); + auto entities = manager.entities(filter); + return FindNearestEntity(entities); + } + + game::Entity* FindNearestEntity(std::vector& entities) + { + if (entities.size() == 0) + return nullptr; + + auto avatar = game::EntityManager::instance().avatar(); + return *std::min_element(entities.begin(), entities.end(), + [avatar](game::Entity* a, game::Entity* b) { return avatar->distance(a) < avatar->distance(b); }); + } + + app::AccountDataItem* GetAccountData() + { + auto playerModule = GET_SINGLETON(PlayerModule); + if (playerModule == nullptr || playerModule->fields._accountData_k__BackingField == nullptr) + return nullptr; + + return playerModule->fields._accountData_k__BackingField; + } +} diff --git a/cheat-library/src/user/cheat/game/util.h b/cheat-library/src/user/cheat/game/util.h new file mode 100644 index 0000000..b2b3c41 --- /dev/null +++ b/cheat-library/src/user/cheat/game/util.h @@ -0,0 +1,34 @@ +#pragma once + +#include +#include + +#include + +#include "Entity.h" +#include "SimpleFilter.h" + +namespace cheat::game +{ + struct WaypointInfo + { + uint32_t sceneId = 0; + uint32_t waypointId = 0; + app::Vector3 position = {}; + app::MapModule_ScenePointData* data = nullptr; + }; + + WaypointInfo FindNearestWaypoint(app::Vector3& position, uint32_t targetId = 0); + static std::vector GetUnlockedWaypoints(uint32_t targetId = 0); + uint32_t GetCurrentMapSceneID(); + uint32_t GetCurrentPlayerSceneID(); + + app::GadgetEntity* GetGadget(uint32_t runtimeID); + app::GadgetEntity* GetGadget(Entity* entity); + app::GadgetEntity* GetGadget(app::BaseEntity* entity); + + game::Entity* FindNearestEntity(const IEntityFilter& filter); + game::Entity* FindNearestEntity(std::vector& entities); + + app::AccountDataItem* GetAccountData(); +} diff --git a/cheat-library/src/user/cheat/imap/InteractiveMap.cpp b/cheat-library/src/user/cheat/imap/InteractiveMap.cpp new file mode 100644 index 0000000..749f125 --- /dev/null +++ b/cheat-library/src/user/cheat/imap/InteractiveMap.cpp @@ -0,0 +1,1891 @@ +#include "pch-il2cpp.h" +#include "InteractiveMap.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#define IMGUI_DEFINE_MATH_OPERATORS +#include "imgui_internal.h" +#include + +#include "cheat-base/cheat/CheatManagerBase.h" + +namespace cheat::feature +{ + + InteractiveMap::InteractiveMap() : Feature(), + NFEX(f_Enabled, "Interactive map", "m_InteractiveMap", "InteractiveMap", false, false), + NF(f_SeparatedWindows, "Separated windows", "InteractiveMap", true), + NF(f_CompletionLogShow, "Completion log show", "InteractiveMap", false), + + NFS(f_STFixedPoints, "Fixed points", "InteractiveMap", SaveAttachType::Global), + NFS(f_STCustomPoints, "Custom points", "InteractiveMap", SaveAttachType::Global), + NFS(f_STCompletedPoints, "Save completed points", "InteractiveMap", SaveAttachType::Account), + + NF(f_IconSize, "Icon size", "InteractiveMap", 20.0f), + NF(f_MinimapIconSize, "Minimap icon size", "InteractiveMap", 14.0f), + NF(f_DynamicSize, "Dynamic size", "InteractiveMap", false), + NF(f_ShowHDIcons, "Show HD icons", "InteractiveMap", false), + + NF(f_ShowCompleted, "Show completed", "InteractiveMap", false), + NF(f_CompletePointTransparency, "Completed point transparency", "InteractiveMap", 0.5f), + + NF(f_AutoDetectNewItems, "Detect new items", "InteractiveMap", true), + NF(f_AutoFixItemPositions, "Fix item positions", "InteractiveMap", true), + NF(f_ObjectCheckOnlyShowed, "Detect only showed", "InteractMap", true), + NF(f_ObjectDetectRange, "Detect range", "InteractiveMap", 20.0f), + NF(f_CheckObjectsDelay, "Detect delay (ms)", "InteractiveMap", 2000), + + NF(f_AutoDetectGatheredItems, "Detect gathered items", "InteractiveMap", true), + NF(f_GatheredItemsDetectRange, "Detect range", "InteractiveMap", 20.0f), + + NF(f_CompleteNearestPoint, "Complete nearest point", "InteractiveMap", Hotkey()), + NF(f_RevertLatestCompletion, "Revert latest completion", "InteractiveMap", Hotkey()), + NF(f_CompleteOnlyViewed, "Complete only showed", "InteractiveMap", true), + NF(f_PointFindRange, "Point finding range", "InteractiveMap", 30.0f), + + NFS(f_CustomPointIndex, "Custom point index", "InteractiveMap", 1000000), + NFS(f_LastUserID, "Last user id", "InteractiveMap", 0), + + m_HoveredPoint(nullptr) + { + // Initializing + LoadScenesData(); + ApplyScaling(); + + // --Loading user data + CreateUserDataField("custom_points", f_CustomPointsJson, f_STCustomPoints.value()); + CreateUserDataField("completed_points", f_CompletedPointsJson, f_STCompletedPoints.value()); + CreateUserDataField("fixed_points", f_FixedPointsJson, f_STFixedPoints.value()); + + LoadCustomPoints(); + LoadCompletedPoints(); + LoadFixedPoints(); + + InitializeEntityFilters(); + InitializeGatherDetectItems(); + + // Eventing + cheat::events::GameUpdateEvent += MY_METHOD_HANDLER(InteractiveMap::OnGameUpdate); + ::events::WndProcEvent += MY_METHOD_HANDLER(InteractiveMap::OnWndProc); + + cheat::events::AccountChangedEvent += MY_METHOD_HANDLER(InteractiveMap::OnAccountChanged); + config::ProfileChanged += MY_METHOD_HANDLER(InteractiveMap::OnConfigProfileChanged); + + f_CompleteNearestPoint.value().PressedEvent += LAMBDA_HANDLER( + [this]() + { + auto& manager = game::EntityManager::instance(); + auto point = FindNearestPoint(manager.avatar()->levelPosition(), f_PointFindRange, f_CompleteOnlyViewed, false, game::GetCurrentPlayerSceneID()); + if (point) + CompletePoint(point); + } + ); + + f_RevertLatestCompletion.value().PressedEvent += LAMBDA_HANDLER( + [this]() + { + RevertLatestPointCompleting(); + } + ); + + // Hooking + HookManager::install(app::MonoMiniMap_Update, InteractiveMap::MonoMiniMap_Update_Hook); + HookManager::install(app::GadgetModule_OnGadgetInteractRsp, InteractiveMap::GadgetModule_OnGadgetInteractRsp_Hook); + HookManager::install(app::InLevelMapPageContext_UpdateView, InteractiveMap::InLevelMapPageContext_UpdateView_Hook); + HookManager::install(app::InLevelMapPageContext_ZoomMap, InteractiveMap::InLevelMapPageContext_ZoomMap_Hook); + } + + const FeatureGUIInfo& InteractiveMap::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "", "World", false }; + return info; + } + + void InteractiveMap::DrawMain() { } + + void InteractiveMap::DrawMenu() + { + BeginGroupPanel("General"); + { + ConfigWidget("Enabled", f_Enabled); + ConfigWidget(f_SeparatedWindows, "Config and filters will be in separate windows."); + if (ConfigWidget(f_STCompletedPoints, "Save scope for completed items.")) + { + UpdateUserDataField(f_CompletedPointsJson, f_STCompletedPoints.value(), true); + } + } + EndGroupPanel(); + + BeginGroupPanel("Icon view"); + { + ConfigWidget(f_IconSize, 0.01f, 4.0f, 100.0f); + ConfigWidget(f_MinimapIconSize, 0.01f, 4.0f, 100.0f); + ConfigWidget(f_DynamicSize, "Icons will be sized dynamically depend to zoom size.\nMinimap icons don't affected."); + ConfigWidget(f_ShowHDIcons, "Toggle icons to HD format."); + } + EndGroupPanel(); + + BeginGroupPanel("Completed icon view"); + { + ConfigWidget(f_ShowCompleted, "Show completed points."); + ConfigWidget(f_CompletePointTransparency, 0.01f, 0.0f, 1.0f, "Completed points transparency."); + } + EndGroupPanel(); + + BeginGroupPanel("Item adjusting"); + { + ConfigWidget(f_AutoFixItemPositions, "Do fix positions to nearest to point.\n" + "Only items with green line support this function."); + + ConfigWidget(f_AutoDetectNewItems, "Enables detecting items what are not in interactive map data.\n" + "Only items with green line support this function."); + + ConfigWidget(f_ObjectCheckOnlyShowed, "Detect objects only for showed filters."); + + ConfigWidget(f_ObjectDetectRange, 0.1f, 5.0f, 30.0f, + "Fix positions: Only if item was found in this range about entity position,\n\t its position will be fixed.\n" + "New item detecting: Only if item not found in this range about entity position,\n\t it be detected as new." + ); + + ConfigWidget(f_CheckObjectsDelay, 10, 100, 100000, "Adjusting items is power consumption operation.\n" + "So rescanning will happen with specified delay."); + } + EndGroupPanel(); + + BeginGroupPanel("Gather detecting"); + { + ConfigWidget(f_AutoDetectGatheredItems, "Enables detecting gathered items.\n" + "It works only items what will be gathered after enabling this function.\n" + "Only items with blue line support this function."); + + ConfigWidget(f_GatheredItemsDetectRange, 0.1f, 5.0f, 30.0f, + "When entity was gathered finding nearest point in this range."); + } + EndGroupPanel(); + + BeginGroupPanel("Manual completing"); + { + ConfigWidget(f_CompleteNearestPoint, true, "When pressed, complete the nearest to avatar point."); + ConfigWidget(f_RevertLatestCompletion, true, "When pressed, revert latest complete operation."); + ConfigWidget(f_CompleteOnlyViewed, "Complete performed only to visible points."); + ConfigWidget(f_PointFindRange, 0.5f, 0.0f, 200.0f, "Complete performs within specified range. If 0 - unlimited."); + } + EndGroupPanel(); + } + + void InteractiveMap::DrawFilters(const bool searchFixed) + { + const auto sceneID = game::GetCurrentMapSceneID(); + if (m_ScenesData.count(sceneID) == 0) + ImGui::Text("Sorry. Current scene is not supported."); + + ImGui::InputText("Search", &m_SearchText); ImGui::SameLine(); + HelpMarker( + "This page following with filters for items.\n" + "Items what was activated will be appear on mini/global map. (Obviously)\n" + "Each filter have options, you can access to it by clicking RMB on filter.\n" + "Filters can be marked with colored lines,\n" + "\tthey indicate that filter support some features. (Hover it)\n" + "Thats all for now. Happy using ^)" + ); + if (searchFixed) + ImGui::BeginChild("FiltersList", ImVec2(-1, 0), false, ImGuiWindowFlags_NoBackground); + + auto& categories = m_ScenesData[sceneID].categories; + for (auto& [categoryName, labels] : categories) + { + std::vector validLabels; + + if (m_SearchText.empty()) + { + validLabels = labels; + } + else + { + for (auto& label : labels) + { + std::string name = label->name; + std::transform(name.begin(), name.end(), name.begin(), ::tolower); + std::string search = m_SearchText; + std::transform(search.begin(), search.end(), search.begin(), ::tolower); + if (name.find(search) != std::string::npos) + validLabels.push_back(label); + } + } + + if (validLabels.empty()) + continue; + + SelectData selData + { + std::all_of(validLabels.begin(), validLabels.end(), [](const LabelData* label) { return label->enabled; }), + false + }; + + if (BeginGroupPanel(categoryName.c_str(), ImVec2(-1, 0), true, &selData)) + { + if (ImGui::BeginTable("MarkFilters", 2)) + { + for (const auto& label : validLabels) + { + ImGui::TableNextColumn(); + ImGui::PushID(label); + DrawFilter(*label); + ImGui::PopID(); + } + ImGui::EndTable(); + } + + EndGroupPanel(); + } + + if (selData.changed) + { + for (const auto& label : validLabels) + { + label->enabled = selData.toggle; + } + } + + } + + if (searchFixed) + ImGui::EndChild(); + } + + // Modified ImGui::CheckBox + void InteractiveMap::DrawFilter(LabelData& label) + { + ImGuiWindow* window = ImGui::GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiContext& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(&label); + const ImVec2 label_size = ImGui::CalcTextSize(label.name.c_str(), nullptr, true); + + const float square_sz = ImGui::GetFrameHeight(); + const float image_sz = square_sz; + + const bool haveFilter = label.filter != nullptr; + const bool haveGatherDetect = label.supportGatherDetect; + + float markWidth = 5.0f; + float marksSize = 0.0f; + float halfSpacing = style.ItemInnerSpacing.x / 2; + + if (haveFilter || haveGatherDetect) + marksSize += halfSpacing; + + if (haveFilter) + marksSize += halfSpacing + markWidth; + + if (haveGatherDetect) + marksSize += halfSpacing + markWidth; + + std::string progress_text = fmt::format("{}/{}", label.completedCount, label.points.size()); + const ImVec2 progress_text_size = ImGui::CalcTextSize(progress_text.c_str()); + + const ImVec2 pos = window->DC.CursorPos; + const ImRect total_bb(pos, + pos + ImVec2(square_sz + style.ItemInnerSpacing.x + image_sz + marksSize + style.ItemInnerSpacing.x + progress_text_size.x + style.ItemInnerSpacing.x + + (label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f), + label_size.y + style.FramePadding.y * 2.0f)); + ImGui::ItemSize(total_bb, style.FramePadding.y); + + if (!ImGui::ItemAdd(total_bb, id)) + { + IMGUI_TEST_ENGINE_ITEM_INFO(id, label, g.LastItemData.StatusFlags | ImGuiItemStatusFlags_Checkable | (*v ? ImGuiItemStatusFlags_Checked : 0)); + return; + } + + bool hovered, held; + bool pressed = ImGui::ButtonBehavior(total_bb, id, &hovered, &held); + if (pressed) + { + label.enabled = !label.enabled; + + ImGui::MarkItemEdited(id); + } + + const ImRect check_bb(pos, pos + ImVec2(square_sz, square_sz)); + ImGui::RenderNavHighlight(total_bb, id); + ImGui::RenderFrame(check_bb.Min, check_bb.Max, ImGui::GetColorU32((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), true, style.FrameRounding); + ImU32 check_col = ImGui::GetColorU32(ImGuiCol_CheckMark); + bool mixed_value = (g.LastItemData.InFlags & ImGuiItemFlags_MixedValue) != 0; + if (mixed_value) + { + // Undocumented tristate/mixed/indeterminate checkbox (#2644) + // This may seem awkwardly designed because the aim is to make ImGuiItemFlags_MixedValue supported by all widgets (not just checkbox) + ImVec2 pad(ImMax(1.0f, IM_FLOOR(square_sz / 3.6f)), ImMax(1.0f, IM_FLOOR(square_sz / 3.6f))); + window->DrawList->AddRectFilled(check_bb.Min + pad, check_bb.Max - pad, check_col, style.FrameRounding); + } + else if (label.enabled.value()) + { + const float pad = ImMax(1.0f, IM_FLOOR(square_sz / 6.0f)); + ImGui::RenderCheckMark(window->DrawList, check_bb.Min + ImVec2(pad, pad), check_col, square_sz - pad * 2.0f); + } + + // -- + const ImVec2 image_pos(check_bb.Max.x + style.ItemInnerSpacing.x, check_bb.Min.y); + const ImRect image_bb(image_pos, image_pos + ImVec2(image_sz, image_sz)); + + auto image = ImageLoader::GetImage(label.clearName); + if (image) + { + window->DrawList->AddImageRounded(image->textureID, image_bb.Min, image_bb.Max, + ImVec2(0.0f, 0.0f), ImVec2(1.0f, 1.0f), ImColor(255, 255, 255), image_sz / 4); + } + // -- + + // -- + float cursorX = image_bb.Max.x; + bool markHovered = false; + if (marksSize != 0.0f) + { + ImVec2 mark_pos = ImVec2(cursorX + halfSpacing, image_bb.Min.y + style.FramePadding.y); + ImVec2 mark_size = ImVec2(markWidth, image_bb.Max.y - image_bb.Min.y - 2 * style.FramePadding.y); + + if (haveFilter) + { + ImRect mark_bb = { mark_pos, mark_pos + mark_size }; + if (ImGui::IsMouseHoveringRect(mark_bb.Min, mark_bb.Max)) + { + markHovered = true; + ShowHelpText("New items detect supported"); + } + + ImGui::RenderFrame(mark_bb.Min, mark_bb.Max, ImColor(0.0f, 1.0f, 0.0f), false, 3.0f); + mark_pos.x += markWidth + halfSpacing; + } + + if (haveGatherDetect) + { + ImRect mark_bb = { mark_pos, mark_pos + mark_size }; + if (ImGui::IsMouseHoveringRect(mark_bb.Min, mark_bb.Max)) + { + markHovered = true; + ShowHelpText("Gather detect supported"); + } + + ImGui::RenderFrame(mark_bb.Min, mark_bb.Max, ImColor(0.0f, 0.0f, 1.0f), false, 3.0f); + mark_pos.x += markWidth + halfSpacing; + } + + cursorX = mark_pos.x; + } + // -- + + // -- + ImVec2 label_progress_pos = ImVec2(cursorX + style.ItemInnerSpacing.x, image_bb.Min.y + style.FramePadding.y); + ImGui::RenderText(label_progress_pos, progress_text.c_str()); + + cursorX += style.ItemInnerSpacing.x + progress_text_size.x; + // -- + + ImVec2 label_pos = ImVec2(cursorX + style.ItemInnerSpacing.x, image_bb.Min.y + style.FramePadding.y); + if (g.LogEnabled) + ImGui::LogRenderedText(&label_pos, mixed_value ? "[~]" : label.enabled.value() ? "[x]" : "[ ]"); + if (label_size.x > 0.0f) + ImGui::RenderText(label_pos, label.name.c_str()); + + if (!markHovered && ImGui::IsItemHovered()) + ShowHelpText(label.name.c_str()); + + // -- Filter options + if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) + ImGui::OpenPopup("Filter options"); + + if (ImGui::BeginPopup("Filter options", ImGuiWindowFlags_AlwaysAutoResize)) + { + if (ImGui::Button("Drop progress")) + { + for (auto& [pointID, point] : label.points) + { + if (point.completed) + UncompletePoint(&point); + } + ImGui::CloseCurrentPopup(); + } + + ImGui::EndPopup(); + } + // -- + + IMGUI_TEST_ENGINE_ITEM_INFO(id, label, g.LastItemData.StatusFlags | ImGuiItemStatusFlags_Checkable | (*v ? ImGuiItemStatusFlags_Checked : 0)); + return; + } + + InteractiveMap& InteractiveMap::GetInstance() + { + static InteractiveMap instance; + return instance; + } + + InteractiveMap::PointData* InteractiveMap::GetHoveredPoint() + { + std::lock_guard _guard(m_PointMutex); + return m_HoveredPoint; + } + + + std::vector InteractiveMap::GetEntityPoints(game::Entity* entity, bool completed /*= false*/, uint32_t sceneID /*= 0*/) + { + sceneID = sceneID == 0 ? game::GetCurrentPlayerSceneID() : sceneID; + if (m_ScenesData.count(sceneID) == 0) + return {}; + + auto& labels = m_ScenesData[sceneID].labels; + + std::vector points; + static game::CacheFilterExecutor filterExecutor(2000U); + for (auto& [labelID, label] : labels) + { + if (label.filter == nullptr) + continue; + + if (!filterExecutor.ApplyFilter(entity, label.filter)) + continue; + + if (completed) + points.reserve(label.points.size()); + + for (auto& [pointID, point] : label.points) + { + if (completed || !point.completed) + points.push_back(&point); + } + break; + } + return points; + } + + InteractiveMap::PointData* InteractiveMap::FindNearestPoint(const app::Vector2& levelPosition, float range, bool onlyShowed, bool completed, uint32_t sceneID) + { + sceneID = sceneID == 0 ? game::GetCurrentPlayerSceneID() : sceneID; + if (m_ScenesData.count(sceneID) == 0) + return nullptr; + + auto& labels = m_ScenesData[sceneID].labels; + + PointData* minDistancePoint = nullptr; + float minDistance = 0; + for (auto& [labelID, label] : labels) + { + if (onlyShowed && !label.enabled) + continue; + + PointData* nearestLabelPoint = FindNearestPoint(label, levelPosition, range, completed); + if (nearestLabelPoint == nullptr) + continue; + + float distance = app::Vector2_Distance(nullptr, levelPosition, nearestLabelPoint->levelPosition, nullptr); + if (distance < minDistance || minDistancePoint == nullptr) + { + minDistance = distance; + minDistancePoint = nearestLabelPoint; + } + } + + if (minDistancePoint == nullptr || (range > 0 && minDistance > range)) + return nullptr; + + return minDistancePoint; + } + + InteractiveMap::PointData* InteractiveMap::FindNearestPoint(const LabelData& label, const app::Vector2& levelPosition, float range /*= 0.0f*/, bool completed /*= false*/) + { + PointData* minDistancePoint = nullptr; + float minDistance = 0; + for (auto& [pointID, point] : label.points) + { + if (!completed && point.completed) + continue; + + float distance = app::Vector2_Distance(nullptr, levelPosition, point.levelPosition, nullptr); + if (distance < minDistance || minDistancePoint == nullptr) + { + minDistance = distance; + minDistancePoint = const_cast(&point); + } + } + + if (minDistancePoint == nullptr || (range > 0 && minDistance > range)) + return nullptr; + + return minDistancePoint; + } + + InteractiveMap::PointData* InteractiveMap::FindEntityPoint(game::Entity* entity, float range /*= 20.0f*/, uint32_t sceneID /*= 0*/) + { + sceneID = sceneID == 0 ? game::GetCurrentPlayerSceneID() : sceneID; + if (m_ScenesData.count(sceneID) == 0) + return nullptr; + + auto& labels = m_ScenesData[sceneID].labels; + for (auto& [labelID, label] : labels) + { + if (label.filter == nullptr) + continue; + + if (!label.filter->IsValid(entity)) + continue; + + auto nearestPoint = FindNearestPoint(label, entity->levelPosition(), range, false); + if (nearestPoint == nullptr) + return nullptr; + + return nearestPoint; + } + + return nullptr; + } + + + void InteractiveMap::CompletePoint(PointData* pointData) + { + std::lock_guard _userDataLock(m_UserDataMutex); + LOG_WARNING("Complete point at %.0f.", game::EntityManager::instance().avatar()->distance(pointData->levelPosition)); + + if (m_CompletedPoints.count(pointData) > 0) + return; + + pointData->completed = true; + pointData->completeTimestamp = util::GetCurrentTimeMillisec(); + m_ScenesData[pointData->sceneID].labels[pointData->labelID].completedCount++; + m_CompletedPoints.insert(pointData); + + SaveCompletedPoints(); + } + + void InteractiveMap::UncompletePoint(PointData* pointData) + { + std::lock_guard _userDataLock(m_UserDataMutex); + + if (m_CompletedPoints.count(pointData) == 0) + return; + + pointData->completed = false; + pointData->completeTimestamp = 0; + m_ScenesData[pointData->sceneID].labels[pointData->labelID].completedCount--; + m_CompletedPoints.erase(pointData); + + SaveCompletedPoints(); + } + + void InteractiveMap::RevertLatestPointCompleting() + { + std::lock_guard _userDataLock(m_UserDataMutex); + if (m_CompletedPoints.empty()) + return; + + PointData* pointData = *m_CompletedPoints.begin(); + pointData->completed = false; + pointData->completeTimestamp = 0; + m_ScenesData[pointData->sceneID].labels[pointData->labelID].completedCount--; + m_CompletedPoints.erase(pointData); + + SaveCompletedPoints(); + } + + void InteractiveMap::FixPointPosition(PointData* pointData, app::Vector2 fixedPosition) + { + std::lock_guard _userDataLock(m_UserDataMutex); + if (!pointData->fixed) + { + pointData->fixed = true; + pointData->originPosition = pointData->levelPosition; + m_FixedPoints.insert(pointData); + } + + pointData->levelPosition = fixedPosition; + SaveFixedPoints(); + } + + void InteractiveMap::UnfixPoitnPosition(PointData* pointData) + { + std::lock_guard _userDataLock(m_UserDataMutex); + if (!pointData->fixed) + return; + + pointData->fixed = false; + pointData->levelPosition = pointData->originPosition; + m_FixedPoints.erase(pointData); + + SaveFixedPoints(); + } + + void InteractiveMap::AddCustomPoint(uint32_t sceneID, uint32_t labelID, app::Vector2 levelPosition) + { + std::lock_guard _userDataLock(m_UserDataMutex); + if (m_ScenesData.count(sceneID) == 0) + return; + + auto& sceneData = m_ScenesData[sceneID]; + if (sceneData.labels.count(labelID) == 0) + return; + + auto& points = sceneData.labels[labelID].points; + + // TODO: Fix uint32_t overflow. + // Callow: I think that will never happen, but who knows, who knows... + while (points.count(f_CustomPointIndex) > 0) + f_CustomPointIndex = f_CustomPointIndex + 1; + + auto& newPoint = points[f_CustomPointIndex]; + newPoint.id = f_CustomPointIndex; + newPoint.custom = true; + newPoint.creationTimestamp = util::GetCurrentTimeMillisec(); + newPoint.labelID = labelID; + newPoint.sceneID = sceneID; + newPoint.levelPosition = levelPosition; + m_CustomPoints.insert(&newPoint); + + f_CustomPointIndex = f_CustomPointIndex + 1; + SaveCustomPoints(); + } + + void InteractiveMap::RemoveCustomPoint(PointData* pointData) + { + std::lock_guard _userDataLock(m_UserDataMutex); + if (m_CustomPoints.empty()) + return; + + m_CustomPoints.erase(pointData); + m_ScenesData[pointData->sceneID].labels[pointData->labelID].points.erase(pointData->id); + SaveCustomPoints(); + } + + void InteractiveMap::OnGameUpdate() + { + CheckObjects(); // Calling it from game update thread to avoid screen freezes + } + + // For now this use straightforward method + // More advanced method description here: https://github.com/CallowBlack/genshin-cheat/issues/176 + void InteractiveMap::CheckObjects() + { + UPDATE_DELAY(f_CheckObjectsDelay); + + if (!f_AutoFixItemPositions && !f_AutoDetectNewItems) + return; + + auto sceneID = game::GetCurrentPlayerSceneID(); + if (m_ScenesData.count(sceneID) == 0) + return; + + auto& labels = m_ScenesData[sceneID].labels; + static game::CacheFilterExecutor filterExecutor(2000U); + //std::lock_guard _userDataLock(m_UserDataMutex); + + auto& manager = game::EntityManager::instance(); + + std::vector>> supportedEntities; + for (auto& [labelID, label] : labels) + { + if (label.filter == nullptr) + continue; + + if (f_ObjectCheckOnlyShowed && !label.enabled) + continue; + + auto& [entityId, entities] = supportedEntities.emplace_back(&label, std::unordered_set{}); + for (auto& entity : manager.entities()) + { + if (filterExecutor.ApplyFilter(entity, label.filter)) + entities.insert(entity); + } + + if (entities.empty()) + supportedEntities.pop_back(); + } + + for (auto& [label, entities] : supportedEntities) + { + std::unordered_set pointsSet; + for (auto& [pointID, point] : label->points) + pointsSet.insert(&point); + + for (auto& entity : entities) + { + PointData* nearestPoint = nullptr; + float minDistance = 0.0f; + for (auto& point : pointsSet) + { + auto distance = entity->distance(point->levelPosition); + if (nearestPoint == nullptr || distance < minDistance) + { + nearestPoint = point; + minDistance = distance; + } + } + + if (nearestPoint == nullptr) + break; + + if (minDistance > f_ObjectDetectRange) + { + if (f_AutoDetectNewItems) + AddCustomPoint(nearestPoint->sceneID, nearestPoint->labelID, entity->levelPosition()); + + continue; + } + + if (f_AutoFixItemPositions && !nearestPoint->fixed) + FixPointPosition(nearestPoint, entity->levelPosition()); + + pointsSet.erase(nearestPoint); + } + } + } + + void InteractiveMap::GadgetModule_OnGadgetInteractRsp_Hook(void* __this, app::GadgetInteractRsp* notify, MethodInfo* method) + { + if (notify->fields.opType_ == app::InterOpType__Enum::InterOpType__Enum_InterOpFinish) + { + auto entity = game::EntityManager::instance().entity(notify->fields.gadgetEntityId_); + auto& interactiveMap = GetInstance(); + switch (notify->fields.interactType_) + { + case app::InteractType__Enum::InteractGather: + case app::InteractType__Enum::InteractOpenChest: + interactiveMap.OnItemGathered(entity); + default: + break; + } + } + + CALL_ORIGIN(GadgetModule_OnGadgetInteractRsp_Hook, __this, notify, method); + } + + void InteractiveMap::OnItemGathered(game::Entity* entity) + { + auto sceneID = game::GetCurrentPlayerSceneID(); + if (m_ScenesData.count(sceneID) == 0) + return; + + auto& labels = m_ScenesData[sceneID].labels; + for (auto& [labelID, label] : labels) + { + if (!label.supportGatherDetect || label.filter == nullptr) + continue; + + if (!label.filter->IsValid(entity)) + continue; + + auto nearestPoint = FindNearestPoint(label, entity->levelPosition(), f_GatheredItemsDetectRange, sceneID); + if (nearestPoint == nullptr) + { + LOG_WARNING("Failed to find uncompleted point for this object."); + return; + } + CompletePoint(nearestPoint); + return; + } + } + void InteractiveMap::ResetUserData(ResetElementFunc func) + { + for (auto& [sceneID, scene] : m_ScenesData) + { + for (auto& [labelID, label] : scene.labels) + { + std::vector toRemovePoints; + for (auto& [pointID, point] : label.points) + { + bool needToRemove = (this->*func)(&label, &point); + if (needToRemove) + toRemovePoints.push_back(pointID); + } + + for (auto& pointID : toRemovePoints) + { + label.points.erase(pointID); + } + } + } + } + + bool InteractiveMap::ResetCompletedPointData(LabelData* label, PointData* point) + { + if (!point->completed) + return false; + + point->completed = false; + point->completeTimestamp = 0; + + label->completedCount--; + return false; + } + + bool InteractiveMap::ResetCustomPointData(LabelData* label, PointData* point) + { + if (!point->custom) + return false; + + return true; + } + + bool InteractiveMap::ResetFixedPointData(LabelData* label, PointData* point) + { + if (!point->fixed) + return false; + + point->levelPosition = point->originPosition; + + point->fixed = false; + point->originPosition = {}; + + return false; + } + + void InteractiveMap::LoadUserData(const nlohmann::json& data, LoadElementFunc func) + { + for (auto& [cSceneID, jLabels] : data.items()) + { + auto sceneID = std::stoul(cSceneID); + if (m_ScenesData.count(sceneID) == 0) + { + LOG_WARNING("Scene %u don't exist. Maybe map data was updated.", sceneID); + continue; + } + + auto& labels = m_ScenesData[sceneID].labels; + for (auto& [cLabelID, jLabelUserData] : jLabels.items()) + { + auto labelID = std::stoul(cLabelID); + if (labels.count(labelID) == 0) + { + LOG_WARNING("Label %u:%u don't exist. Maybe data was .", sceneID, labelID); + continue; + } + + auto& label = labels[labelID]; + + auto& elements = jLabelUserData; + for (auto& element : elements) + (this->*func)(&label, element); + } + } + } + + void InteractiveMap::LoadCustomPointData(LabelData* labelData, const nlohmann::json& data) + { + auto customPoint = ParsePointData(data); + if (labelData->points.count(customPoint.id) > 0) + { + LOG_ERROR("Failed to load custom point for label `%u:%s` with position %.1f, %.1f. ID already exist.", + labelData->sceneID, labelData->name.c_str(), customPoint.levelPosition.x, customPoint.levelPosition.y); + return; + } + + auto& newPointEntry = labelData->points[customPoint.id]; + newPointEntry = customPoint; + newPointEntry.sceneID = labelData->sceneID; + newPointEntry.labelID = labelData->id; + newPointEntry.custom = true; + newPointEntry.creationTimestamp = data["creation_timestamp"]; + + m_CustomPoints.insert(&newPointEntry); + } + + void InteractiveMap::LoadCompletedPointData(LabelData* labelData, const nlohmann::json& data) + { + auto& points = labelData->points; + auto pointID = data["point_id"].get(); + + if (points.count(pointID) == 0) + { + LOG_WARNING("Point %u don't exist. Maybe data was updated.", pointID); + return; + } + + auto& point = points[pointID]; + if (m_CompletedPoints.count(&point) > 0) + { + LOG_WARNING("Completed point %u duplicate.", pointID); + return; + } + + point.completed = true; + point.completeTimestamp = data["complete_timestamp"]; + labelData->completedCount++; + + m_CompletedPoints.insert(&point); + } + + void InteractiveMap::LoadFixedPointData(LabelData* labelData, const nlohmann::json& data) + { + auto& points = labelData->points; + auto pointID = data["point_id"].get(); + + if (points.count(pointID) == 0) + { + LOG_WARNING("Point %u don't exist. Maybe data was updated.", pointID); + return; + } + + auto& point = points[pointID]; + if (m_FixedPoints.count(&point) > 0) + { + LOG_WARNING("Fixed point %u duplicate.", pointID); + return; + } + + point.fixed = true; + point.originPosition = point.levelPosition; + point.levelPosition = { data["x_pos"], data["y_pos"] }; + + m_FixedPoints.insert(&point); + } + + void InteractiveMap::SaveUserData(nlohmann::json& data, SaveElementFunc func) + { + nlohmann::json jRoot = {}; + + for (auto& [sceneID, scene] : m_ScenesData) + { + auto cSceneID = std::to_string(sceneID); + jRoot[cSceneID] = nlohmann::json::object(); + + auto& jLabels = jRoot[cSceneID]; + for (auto& [labelID, label] : scene.labels) + { + auto cLabelID = std::to_string(labelID); + + auto& container = jLabels[cLabelID]; + container = nlohmann::json::array(); + + for (auto& [pointID, point] : label.points) + (this->*func)(container, &point); + + if (container.empty()) + jLabels.erase(cLabelID); + } + + if (jLabels.empty()) + jRoot.erase(cSceneID); + } + + data = jRoot; + } + + void InteractiveMap::SaveCustomPointData(nlohmann::json& jObject, PointData* point) + { + if (!point->custom) + return; + + auto jPoint = nlohmann::json::object(); + jPoint["id"] = point->id; + jPoint["x_pos"] = point->levelPosition.x; + jPoint["y_pos"] = point->levelPosition.y; + jPoint["creation_timestamp"] = point->creationTimestamp; + jObject.push_back(jPoint); + } + + void InteractiveMap::SaveCompletedPointData(nlohmann::json& jObject, PointData* point) + { + if (!point->completed) + return; + + auto jPoint = nlohmann::json::object(); + jPoint["point_id"] = point->id; + jPoint["complete_timestamp"] = point->completeTimestamp; + jObject.push_back(jPoint); + } + + void InteractiveMap::SaveFixedPointData(nlohmann::json& jObject, PointData* point) + { + if (!point->fixed) + return; + + jObject.push_back( + { + { "point_id", point->id }, + { "x_pos", point->levelPosition.x }, + { "y_pos", point->levelPosition.y } + } + ); + } + + void InteractiveMap::LoadCompletedPoints() + { + LoadUserData(f_CompletedPointsJson, &InteractiveMap::LoadCompletedPointData); + } + + void InteractiveMap::SaveCompletedPoints() + { + SaveUserData(f_CompletedPointsJson, &InteractiveMap::SaveCompletedPointData); + f_CompletedPointsJson.FireChanged(); + } + + void InteractiveMap::ResetCompletedPoints() + { + ResetUserData(&InteractiveMap::ResetCompletedPointData); + m_CompletedPoints.clear(); + } + + void InteractiveMap::LoadCustomPoints() + { + LoadUserData(f_CustomPointsJson, &InteractiveMap::LoadCustomPointData); + } + + void InteractiveMap::SaveCustomPoints() + { + SaveUserData(f_CustomPointsJson, &InteractiveMap::SaveCustomPointData); + f_CustomPointsJson.FireChanged(); + } + + void InteractiveMap::ResetCustomPoints() + { + ResetUserData(&InteractiveMap::ResetCustomPointData); + m_CustomPoints.clear(); + } + + void InteractiveMap::LoadFixedPoints() + { + LoadUserData(f_FixedPointsJson, &InteractiveMap::LoadFixedPointData); + } + + void InteractiveMap::SaveFixedPoints() + { + SaveUserData(f_FixedPointsJson, &InteractiveMap::SaveFixedPointData); + f_FixedPointsJson.FireChanged(); + } + + void InteractiveMap::ResetFixedPoints() + { + ResetUserData(&InteractiveMap::ResetFixedPointData); + m_FixedPoints.clear(); + } + + void InteractiveMap::CreateUserDataField(const char* name, config::Field& field, SaveAttachType saveType) + { + auto sectionName = GetUserDataFieldSection(saveType); + field = config::CreateField("", name, sectionName, saveType != SaveAttachType::Profile, nlohmann::json::object()); + } + + void InteractiveMap::UpdateUserDataField(config::Field& field, SaveAttachType saveType, bool move) + { + auto newSectionName = GetUserDataFieldSection(saveType); + if (move) + field.move(newSectionName, saveType != SaveAttachType::Profile); + else + field.repos(newSectionName, saveType != SaveAttachType::Profile); + } + + std::string InteractiveMap::GetUserDataFieldSection(SaveAttachType saveType) + { + switch(saveType) + { + case SaveAttachType::Account: + return fmt::format("InteractiveMap::accounts::{}", f_LastUserID.value()); + case SaveAttachType::Profile: + case SaveAttachType::Global: + default: + return "InteractiveMap"; + } + } + +#define RESET_IF(name, type) if (f_ST##name##Points.value() == type) { UpdateUserDataField(f_##name##PointsJson, f_ST##name##Points.value()); Reset##name##Points(); } +#define LOAD_IF(name, type) if (f_ST##name##Points.value() == type) { Load##name##Points(); } + + void InteractiveMap::OnConfigProfileChanged() + { + // TO DO: Fix the problem when customPoints is account but completed points for profile + + RESET_IF(Completed, SaveAttachType::Profile); + RESET_IF(Fixed, SaveAttachType::Profile); + RESET_IF(Custom, SaveAttachType::Profile); + + LOAD_IF(Custom, SaveAttachType::Profile); + LOAD_IF(Fixed, SaveAttachType::Profile); + LOAD_IF(Completed, SaveAttachType::Profile); + } + + void InteractiveMap::OnAccountChanged(uint32_t userID) + { + if (userID == 0 || f_LastUserID == userID) + return; + + f_LastUserID = userID; + + // TO DO: Fix the problem when customPoints is account but completed points for profile + RESET_IF(Completed, SaveAttachType::Account); + RESET_IF(Fixed, SaveAttachType::Account); + RESET_IF(Custom, SaveAttachType::Account); + + LOAD_IF(Custom, SaveAttachType::Account); + LOAD_IF(Fixed, SaveAttachType::Account); + LOAD_IF(Completed, SaveAttachType::Account); + } + +#undef RESET_IF +#undef LOAD_IF + InteractiveMap::PointData InteractiveMap::ParsePointData(const nlohmann::json& data) + { + PointData newPoint {}; + newPoint.id = data["id"]; + newPoint.levelPosition = { data["x_pos"], data["y_pos"] }; + return newPoint; + } + + void InteractiveMap::LoadLabelData(const nlohmann::json& data, uint32_t sceneID, uint32_t labelID) + { + auto& sceneData = m_ScenesData[sceneID]; + auto& labelEntry = sceneData.labels[labelID]; + + labelEntry.id = labelID; + labelEntry.sceneID = sceneID; + labelEntry.name = data["name"]; + labelEntry.clearName = data["clear_name"]; + labelEntry.enabled = config::CreateField(labelEntry.name, labelEntry.clearName, + fmt::format("InteractiveMap::Filters::Scene{}", sceneID), false, false); + + for (auto& pointJsonData : data["points"]) + { + PointData data = ParsePointData(pointJsonData); + data.labelID = labelID; + data.sceneID = sceneID; + + labelEntry.points[data.id] = data; + } + + sceneData.nameToLabel[labelEntry.clearName] = &labelEntry; + } + + void InteractiveMap::LoadCategoriaData(const nlohmann::json& data, uint32_t sceneID) + { + auto& sceneData = m_ScenesData[sceneID]; + auto& labels = sceneData.labels; + auto& categories = sceneData.categories; + + categories.push_back({}); + auto& newCategory = categories.back(); + + auto& children = newCategory.children; + for (auto& child : data["children"]) + { + if (labels.count(child) > 0) + children.push_back(&labels[child]); + } + + if (children.size() == 0) + { + categories.pop_back(); + return; + } + + newCategory.name = data["name"]; + } + + void InteractiveMap::LoadSceneData(const nlohmann::json& data, uint32_t sceneID) + { + for (auto& [labelID, labelData] : data["labels"].items()) + { + LoadLabelData(labelData, sceneID, std::stoi(labelID)); + } + + for (auto& categorie : data["categories"]) + { + LoadCategoriaData(categorie, sceneID); + } + } + + void InteractiveMap::LoadScenesData() + { + LoadSceneData(nlohmann::json::parse(ResourceLoader::Load("MapTeyvatData", RT_RCDATA)), 3); + LoadSceneData(nlohmann::json::parse(ResourceLoader::Load("MapEnkanomiyaData", RT_RCDATA)), 5); + LoadSceneData(nlohmann::json::parse(ResourceLoader::Load("MapUndegroundMinesData", RT_RCDATA)), 6); + + LOG_INFO("Interactive map data loaded successfully."); + } + + struct ScalingData + { + float scale; + float offset; + }; + + ScalingData ComputeScaling(app::Vector2 normal, app::Vector2 scaled) + { + // Just the equation system: + // s[0] * scale + offset = n[0] + // s[1] * scale + offset = n[1] + // Where: s = scaled, n = normal + + ScalingData scalingData {}; + scalingData.scale = (normal.y - normal.x) / (scaled.y - scaled.x); + scalingData.offset = normal.x - scaled.x * scalingData.scale; + + return scalingData; + } + + + void InteractiveMap::ApplySceneScalling(uint32_t sceneId, const ScallingInput& input) + { + ScalingData xScale = ComputeScaling({ input.normal1.x, input.normal2.x }, { input.scalled1.x, input.scalled2.x }); + ScalingData yScale = ComputeScaling({ input.normal1.y, input.normal2.y }, { input.scalled1.y, input.scalled2.y }); + + app::Vector2 scale = { xScale.scale, yScale.scale }; + app::Vector2 offset = { xScale.offset, yScale.offset }; + + LOG_DEBUG("Position scaling for scene %u: scale %0.3f %0.3f, offset %0.3f %0.3f", sceneId, scale.x, scale.y, offset.x, offset.y); + auto& sceneData = m_ScenesData[sceneId]; + for (auto& [labelID, labelData] : sceneData.labels) + { + for (auto& [pointID, point] : labelData.points) + { + point.levelPosition = point.levelPosition * scale + offset; + } + } + + } + + void InteractiveMap::ApplyScaling() + { +#define APPLY_SCENE_OFFSETS(sceneID, name1, normal1x, normal1y, name2, normal2x, normal2y) {\ + app::Vector2 NormalPos1 = { normal1x, normal1y }; \ + app::Vector2 NormalPos2 = { normal2x, normal2y }; \ + app::Vector2 ScalledPos1 = m_ScenesData[sceneID].nameToLabel[name1]->points.begin()->second.levelPosition; \ + app::Vector2 ScalledPos2 = m_ScenesData[sceneID].nameToLabel[name2]->points.begin()->second.levelPosition; \ + ApplySceneScalling(sceneID, {NormalPos1, NormalPos2, ScalledPos1, ScalledPos2}); \ + } + + // For find scaling we need two objects' correct & scaled coordinates + // Better find objects with one point on map + APPLY_SCENE_OFFSETS(3, + "AnemoHypostasis", 1301.2f, 2908.4f, + "ElectroHypostasis", 1942.3f, 1308.9f); + + APPLY_SCENE_OFFSETS(5, + "RuinHunter", -54.4f, -53.7f, + "RuinGrader", 428.9f, 505.0f); + + APPLY_SCENE_OFFSETS(6, + "Medaka", -649.27f, 776.9f, + "SweetFlowerMedaka", -720.16f, 513.55f); +#undef APPLY_SCENE_OFFSETS + + } + + static bool IsMapActive() + { + auto uimanager = GET_SINGLETON(UIManager_1); + if (uimanager == nullptr) + return false; + + return app::UIManager_1_HasEnableMapCamera(uimanager, nullptr); + } + + static app::Rect s_MapViewRect = { 0, 0, 1, 1 }; + void InteractiveMap::InLevelMapPageContext_UpdateView_Hook(app::InLevelMapPageContext* __this, MethodInfo* method) + { + CALL_ORIGIN(InLevelMapPageContext_UpdateView_Hook, __this, method); + s_MapViewRect = __this->fields._mapViewRect; + } + + static ImVec2 LevelToMapScreenPos(const app::Vector2& levelPosition) + { + if (s_MapViewRect.m_Width == 0 || s_MapViewRect.m_Height == 0) + return {}; + + ImVec2 screenPosition; + + // Got position from 0 to 1 + screenPosition.x = (levelPosition.x - s_MapViewRect.m_XMin) / s_MapViewRect.m_Width; + screenPosition.y = (levelPosition.y - s_MapViewRect.m_YMin) / s_MapViewRect.m_Height; + + // Scaling to screen position + screenPosition.x = screenPosition.x * app::Screen_get_width(nullptr, nullptr); + screenPosition.y = (1.0f - screenPosition.y) * app::Screen_get_height(nullptr, nullptr); + + return screenPosition; + } + + inline ImVec2 operator - (const ImVec2& A, const float k) + { + return { A.x - k, A.y - k }; + } + + inline ImVec2 operator + (const ImVec2& A, const float k) + { + return { A.x + k, A.y + k }; + } + + static std::mutex _windowRectsMutex; + static std::vector _windowRects; + + static void AddWindowRect() + { + _windowRects.push_back( + { + ImGui::GetWindowPos(), + ImGui::GetWindowPos() + ImGui::GetWindowSize() + } + ); + } + + static app::MonoMiniMap* _monoMiniMap; + void InteractiveMap::MonoMiniMap_Update_Hook(app::MonoMiniMap* __this, MethodInfo* method) + { + _monoMiniMap = __this; + CALL_ORIGIN(MonoMiniMap_Update_Hook, __this, method); + } + + static bool IsMiniMapActive() + { + if (_monoMiniMap == nullptr) + return false; + + SAFE_BEGIN(); + return app::Behaviour_get_isActiveAndEnabled(reinterpret_cast(_monoMiniMap), nullptr); + SAFE_ERROR(); + _monoMiniMap = nullptr; + return false; + SAFE_END(); + } + + static float GetMinimapLevelDistance() + { + if (_monoMiniMap == nullptr) + return {}; + + return _monoMiniMap->fields._areaMinDistance; + } + + static void MapToggled(bool showed) + { + auto& cheatManager = GenshinCM::instance(); + bool isCursorVisible = cheatManager.CursorGetVisibility(); + if ((showed && !isCursorVisible) || (!showed && isCursorVisible && !cheatManager.IsMenuShowed())) + cheatManager.CursorSetVisibility(showed); + } + + void InteractiveMap::DrawExternal() + { + + if (IsMiniMapActive() && f_Enabled) + DrawMinimapPoints(); + + static bool _lastMapActive = false; + bool mapActive = IsMapActive(); + + if (mapActive != _lastMapActive) + MapToggled(mapActive); + + _lastMapActive = mapActive; + + if (!mapActive) + return; + + auto mapManager = GET_SINGLETON(MapManager); + if (mapManager == nullptr) + return; + + // Draw windows + { + std::lock_guard _rectGuard(_windowRectsMutex); + + _windowRects.clear(); + + bool menuOpened = ImGui::Begin("Interactive map", nullptr, ImGuiWindowFlags_NoFocusOnAppearing); + AddWindowRect(); + + if (menuOpened) + { + DrawMenu(); + + if (!f_SeparatedWindows) + { + ImGui::Spacing(); + DrawFilters(false); + } + } + ImGui::End(); + + if (f_SeparatedWindows) + { + bool filtersOpened = ImGui::Begin("Filters", nullptr, ImGuiWindowFlags_NoFocusOnAppearing); + AddWindowRect(); + + if (filtersOpened) + DrawFilters(); + + ImGui::End(); + } + } + + if (!f_Enabled) + return; + + DrawPoints(); + } + + static bool IsRectInScreen(const ImRect& rect, const ImVec2& screenSize) + { + return rect.Min.x < screenSize.x && rect.Min.y < screenSize.y && + rect.Max.x > 0 && rect.Max.y > 0; + } + + static void RenderPointCircle(const ImVec2& position, ImTextureID textureID, float transparency, float radius, bool isCustom = false) + { + ImVec2 imageStartPos = position - radius; + ImVec2 imageEndPos = position + radius; + + auto draw = ImGui::GetBackgroundDrawList(); + draw->AddCircleFilled(position, radius, ImColor(0.23f, 0.26f, 0.32f, transparency)); + + if (textureID) + { + draw->AddImageRounded(textureID, imageStartPos + 2.0f, imageEndPos - 2.0f, + ImVec2(0, 0), ImVec2(1, 1), ImColor(1.0f, 1.0f, 1.0f, transparency), radius); + } + + draw->AddCircle(position, radius, isCustom ? ImColor(0.11f, 0.69f, 0.11f, transparency) : ImColor(0.91f, 0.68f, 0.36f, transparency)); + } + + void InteractiveMap::DrawPoint(const PointData& pointData, const ImVec2& screenPosition, float radius, float radiusSquared, ImTextureID texture, bool selectable) + { + if (pointData.completed && !f_ShowCompleted) + return; + + float transparency = pointData.completed ? f_CompletePointTransparency : 1.0f; + + if (/* m_SelectedPoint == nullptr && */!selectable || m_HoveredPoint != nullptr) + { + RenderPointCircle(screenPosition, texture, transparency, radius, pointData.custom); + return; + } + + ImVec2 mousePos = ImGui::GetMousePos(); + ImVec2 diffSize = screenPosition - mousePos; + if (diffSize.x * diffSize.x + diffSize.y * diffSize.y > radiusSquared) + { + RenderPointCircle(screenPosition, texture, transparency, radius, pointData.custom); + return; + } + + m_HoveredPoint = const_cast(&pointData); + radius *= 1.2f; + + RenderPointCircle(screenPosition, texture, transparency, radius, pointData.custom); + + if (ImGui::IsMouseClicked(ImGuiMouseButton_Right)) + { + if (pointData.completed) + UncompletePoint(m_HoveredPoint); + else + CompletePoint(m_HoveredPoint); + } + } + + void InteractiveMap::DrawPoints() + { + static const float relativeSizeX = 821.0f; + + auto sceneID = game::GetCurrentMapSceneID(); + if (m_ScenesData.count(sceneID) == 0) + return; + + ImVec2 screenSize = { static_cast(app::Screen_get_width(nullptr, nullptr)), + static_cast(app::Screen_get_height(nullptr, nullptr)) }; + + + auto iconSize = (f_DynamicSize && s_MapViewRect.m_Width != 0.0f) ? f_IconSize * (relativeSizeX / s_MapViewRect.m_Width) : f_IconSize; + auto radius = iconSize / 2; + auto radiusSquared = radius * radius; + + std::lock_guard _guard(m_PointMutex); + // m_SelectedPoint = nullptr; + m_HoveredPoint = nullptr; + + auto& labels = m_ScenesData[sceneID].labels; + for (auto& [labelID, label] : labels) + { + if (!label.enabled) + continue; + + auto image = ImageLoader::GetImage(f_ShowHDIcons ? "HD" + label.clearName : label.clearName); + for (auto& [pointID, point] : label.points) + { + auto screenPosition = LevelToMapScreenPos(point.levelPosition); + + ImRect imageRect = { screenPosition - radius, screenPosition + radius }; + if (!IsRectInScreen(imageRect, screenSize)) + continue; + + //ImGui::PushID(&point); + DrawPoint(point, screenPosition, radius, radiusSquared, image ? image->textureID : nullptr); + //ImGui::PopID(); + } + } + } + + struct ImCircle + { + ImVec2 center; + float radius; + + bool Contains(const ImCircle& b) + { + if (b.radius > radius) + return false; + + auto diff = b.center - center; + auto distanceSqrd = std::pow(diff.x, 2) + std::pow(diff.y, 2); + auto radiusDiffSqrd = std::pow(radius - b.radius, 2); + return radiusDiffSqrd > distanceSqrd; + } + }; + + static ImCircle GetMinimapCircle() + { + if (_monoMiniMap == nullptr) + return {}; + + UPDATE_DELAY_VAR(ImCircle, _miniMapCircle, 2000); + + auto uiManager = GET_SINGLETON(UIManager_1); + if (uiManager == nullptr || uiManager->fields._sceneCanvas == nullptr) + return {}; + + auto back = _monoMiniMap->fields._grpMapBack; + if (back == nullptr) + return {}; + + auto mapPos = app::Transform_get_position(reinterpret_cast(back), nullptr); + auto center = app::Camera_WorldToScreenPoint(uiManager->fields._uiCamera, mapPos, nullptr); + center.y = app::Screen_get_height(nullptr, nullptr) - center.y; + + auto mapRect = app::RectTransform_get_rect(back, nullptr); + float scaleFactor = app::Canvas_get_scaleFactor(uiManager->fields._sceneCanvas, nullptr); + _miniMapCircle = { + ImVec2(center.x, center.y), + (mapRect.m_Width * scaleFactor) / 2 + }; + + return _miniMapCircle; + } + + static float GetMinimapScale() + { + if (_monoMiniMap == nullptr || _monoMiniMap->fields.context == nullptr) + return 1.0f; + + return app::InLevelMainPageContext_get_miniMapScale(_monoMiniMap->fields.context, nullptr); + } + + static float GetMinimapRotation() + { + if (_monoMiniMap == nullptr) + return {}; + + auto back = _monoMiniMap->fields._grpMiniBackRotate; + if (back == nullptr) + return {}; + + auto rotation = app::Transform_get_rotation(reinterpret_cast(back), nullptr); + + app::Quaternion__Boxed boxed = { nullptr, nullptr, rotation }; + return app::Quaternion_get_eulerAngles(&boxed, nullptr).z; + } + + void InteractiveMap::DrawMinimapPoints() + { + // Found by hands. Only in Teyvat (3rd scene), need also test another scenes. + static const float minimapAreaLevelRadius = 175.0f; + constexpr float PI = 3.14159265f; + + auto sceneID = game::GetCurrentPlayerSceneID(); + if (m_ScenesData.count(sceneID) == 0) + return; + + auto rotation = GetMinimapRotation(); + ImVec2 rotationMult = ImVec2(1.0f, 0.0f); + if (rotation != 0) + { + auto rad = ( (360.0f - rotation) * PI ) / 180.0f; + rotationMult = { sin(rad), cos(rad) }; + } + + ImCircle minimapCircle = GetMinimapCircle(); + auto avatarLevelPos = game::EntityManager::instance().avatar()->levelPosition(); + auto scale = minimapCircle.radius * GetMinimapScale() / minimapAreaLevelRadius; + + auto iconRadius = f_MinimapIconSize / 2; + + auto& labels = m_ScenesData[sceneID].labels; + for (auto& [labelID, label] : labels) + { + if (!label.enabled) + continue; + + auto image = ImageLoader::GetImage(f_ShowHDIcons ? "HD" + label.clearName : label.clearName); + for (auto& [pointID, point] : label.points) + { + ImVec2 positionDiff = { point.levelPosition.x - avatarLevelPos.x, avatarLevelPos.y - point.levelPosition.y }; + positionDiff = positionDiff * scale; + if (rotation != 0.0f) + { + positionDiff = { + positionDiff.x * rotationMult.y - positionDiff.y * rotationMult.x, + positionDiff.x * rotationMult.x + positionDiff.y * rotationMult.y + }; + } + + + ImVec2 screenPos = minimapCircle.center + positionDiff; + if (!minimapCircle.Contains({ screenPos, iconRadius })) + continue; + + //ImGui::PushID(&point); + DrawPoint(point, screenPos, iconRadius, 0.0f, image ? image->textureID : nullptr, false); + //ImGui::PopID(); + } + } + } + + // Blocking interacts when cursor on window + + static ImVec2 _lastMousePosition = {}; + static bool MouseInIMapWindow() + { + std::lock_guard _rectGuard(_windowRectsMutex); + + for (auto& rect : _windowRects) + { + if (rect.Contains(_lastMousePosition)) + return true; + } + return false; + } + + void InteractiveMap::InLevelMapPageContext_ZoomMap_Hook(app::InLevelMapPageContext* __this, float value, MethodInfo* method) + { + if (MouseInIMapWindow()) + return; + + return CALL_ORIGIN(InLevelMapPageContext_ZoomMap_Hook, __this, value, method); + } + + void InteractiveMap::OnWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, bool& cancelled) + { + if (!IsMapActive()) + return; + + POINT mPos; + GetCursorPos(&mPos); + ScreenToClient(hWnd, &mPos); + ImVec2 cursorPos = { static_cast(mPos.x), static_cast(mPos.y) }; + _lastMousePosition = cursorPos; + + if (!MouseInIMapWindow()) + return; + + switch (uMsg) + { + case WM_MOUSEWHEEL: + case WM_LBUTTONDBLCLK: + case WM_LBUTTONDOWN: + cancelled = true; + break; + default: + break; + } + } + + std::vector InteractiveMap::FindLabelsByClearName(const std::string& clearName) + { + std::vector labels; + for (auto& [sceneID, sceneData] : m_ScenesData) + { + if (sceneData.nameToLabel.count(clearName) > 0) + labels.push_back(sceneData.nameToLabel[clearName]); + } + return labels; + } + + void InteractiveMap::InitializeEntityFilter(game::IEntityFilter* filter, const std::string& clearName) + { + auto labels = FindLabelsByClearName(clearName); + if (labels.size() == 0) + { + LOG_DEBUG("Not found filter for item '%s'", clearName.c_str()); + return; + } + + for (auto& label : labels) + { + label->filter = filter; + } + } + + void InteractiveMap::InitializeEntityFilters() + { +#define INIT_FILTER(category, filterName) InitializeEntityFilter(&game::filters::##category##::##filterName, #filterName) + + INIT_FILTER(collection, Book); + INIT_FILTER(collection, Viewpoint); + INIT_FILTER(collection, RadiantSpincrystal); + //INIT_FILTER(collection, BookPage); + //INIT_FILTER(collection, QuestInteract); + INIT_FILTER(chest, CommonChest); + INIT_FILTER(chest, ExquisiteChest); + INIT_FILTER(chest, PreciousChest); + INIT_FILTER(chest, LuxuriousChest); + INIT_FILTER(chest, RemarkableChest); + INIT_FILTER(featured, Anemoculus); + INIT_FILTER(featured, CrimsonAgate); + INIT_FILTER(featured, Electroculus); + //INIT_FILTER(featured, Electrogranum); + INIT_FILTER(featured, Geoculus); + INIT_FILTER(featured, Lumenspar); + //INIT_FILTER(featured, KeySigil); + //INIT_FILTER(featured, ShrineOfDepth); + //INIT_FILTER(featured, TimeTrialChallenge); + //INIT_FILTER(guide, CampfireTorch); + //INIT_FILTER(guide, MysteriousCarvings); + //INIT_FILTER(guide, PhaseGate); + //INIT_FILTER(guide, Pot); + //INIT_FILTER(guide, RuinBrazier); + //INIT_FILTER(guide, Stormstone); + //INIT_FILTER(living, BirdEgg); + //INIT_FILTER(living, ButterflyWings); + //INIT_FILTER(living, Crab); + //INIT_FILTER(living, CrystalCore); + //INIT_FILTER(living, Fish); + //INIT_FILTER(living, Frog); + //INIT_FILTER(living, LizardTail); + //INIT_FILTER(living, LuminescentSpine); + //INIT_FILTER(living, Onikabuto); + //INIT_FILTER(living, Starconch); + //INIT_FILTER(living, UnagiMeat); + INIT_FILTER(mineral, AmethystLump); + INIT_FILTER(mineral, ArchaicStone); + INIT_FILTER(mineral, CorLapis); + INIT_FILTER(mineral, CrystalChunk); + INIT_FILTER(mineral, CrystalMarrow); + INIT_FILTER(mineral, ElectroCrystal); + INIT_FILTER(mineral, IronChunk); + INIT_FILTER(mineral, NoctilucousJade); + INIT_FILTER(mineral, MagicalCrystalChunk); + INIT_FILTER(mineral, StarSilver); + INIT_FILTER(mineral, WhiteIronChunk); + //INIT_FILTER(monster, AbyssMage); + //INIT_FILTER(monster, FatuiAgent); + //INIT_FILTER(monster, FatuiCicinMage); + //INIT_FILTER(monster, FatuiMirrorMaiden); + //INIT_FILTER(monster, FatuiSkirmisher); + //INIT_FILTER(monster, Geovishap); + //INIT_FILTER(monster, GeovishapHatchling); + //INIT_FILTER(monster, Hilichurl); + //INIT_FILTER(monster, Mitachurl); + //INIT_FILTER(monster, Nobushi); + //INIT_FILTER(monster, RuinGuard); + //INIT_FILTER(monster, RuinHunter); + //INIT_FILTER(monster, RuinSentinel); + //INIT_FILTER(monster, Samachurl); + //INIT_FILTER(monster, Slime); + //INIT_FILTER(monster, Specter); + //INIT_FILTER(monster, TreasureHoarder); + //INIT_FILTER(monster, UnusualHilichurl); + //INIT_FILTER(monster, Whopperflower); + //INIT_FILTER(monster, WolvesOfTheRift); + INIT_FILTER(plant, AmakumoFruit); + INIT_FILTER(plant, Apple); + INIT_FILTER(plant, BambooShoot); + INIT_FILTER(plant, Berry); + INIT_FILTER(plant, CallaLily); + INIT_FILTER(plant, Carrot); + INIT_FILTER(plant, Cecilia); + INIT_FILTER(plant, DandelionSeed); + INIT_FILTER(plant, Dendrobium); + INIT_FILTER(plant, FlamingFlowerStamen); + INIT_FILTER(plant, FluorescentFungus); + INIT_FILTER(plant, GlazeLily); + INIT_FILTER(plant, Horsetail); + INIT_FILTER(plant, JueyunChili); + INIT_FILTER(plant, LavenderMelon); + INIT_FILTER(plant, LotusHead); + INIT_FILTER(plant, Matsutake); + INIT_FILTER(plant, Mint); + INIT_FILTER(plant, MistFlowerCorolla); + INIT_FILTER(plant, Mushroom); + INIT_FILTER(plant, NakuWeed); + INIT_FILTER(plant, PhilanemoMushroom); + INIT_FILTER(plant, Pinecone); + INIT_FILTER(plant, Qingxin); + INIT_FILTER(plant, Radish); + INIT_FILTER(plant, SakuraBloom); + INIT_FILTER(plant, SangoPearl); + INIT_FILTER(plant, SeaGanoderma); + INIT_FILTER(plant, Seagrass); + INIT_FILTER(plant, SilkFlower); + INIT_FILTER(plant, SmallLampGrass); + INIT_FILTER(plant, Snapdragon); + INIT_FILTER(plant, Sunsettia); + INIT_FILTER(plant, SweetFlower); + INIT_FILTER(plant, Valberry); + INIT_FILTER(plant, Violetgrass); + INIT_FILTER(plant, WindwheelAster); + INIT_FILTER(plant, Wolfhook); + //INIT_FILTER(puzzle, AncientRime); + //INIT_FILTER(puzzle, BakeDanuki); + //INIT_FILTER(puzzle, BloattyFloatty); + //INIT_FILTER(puzzle, CubeDevices); + //INIT_FILTER(puzzle, EightStoneTablets); + //INIT_FILTER(puzzle, ElectricConduction); + //INIT_FILTER(puzzle, ElectroSeelie); + //INIT_FILTER(puzzle, ElementalMonument); + //INIT_FILTER(puzzle, FloatingAnemoSlime); + //INIT_FILTER(puzzle, Geogranum); + //INIT_FILTER(puzzle, GeoPuzzle); + //INIT_FILTER(puzzle, LargeRockPile); + //INIT_FILTER(puzzle, LightUpTilePuzzle); + //INIT_FILTER(puzzle, LightningStrikeProbe); + //INIT_FILTER(puzzle, MistBubble); + //INIT_FILTER(puzzle, PirateHelm); + //INIT_FILTER(puzzle, PressurePlate); + //INIT_FILTER(puzzle, SeelieLamp); + //INIT_FILTER(puzzle, Seelie); + //INIT_FILTER(puzzle, SmallRockPile); + //INIT_FILTER(puzzle, StormBarrier); + //INIT_FILTER(puzzle, SwordHilt); + //INIT_FILTER(puzzle, TorchPuzzle); + //INIT_FILTER(puzzle, UniqueRocks); + //INIT_FILTER(puzzle, WindmillMechanism); + +#undef INIT_FILTER + } + + void InteractiveMap::InitializeGatherDetectItems() + { +#define INIT_DETECT_ITEM(name) \ + for (auto& label : FindLabelsByClearName(#name)) \ + { \ + label->supportGatherDetect = true; \ + } \ + + INIT_DETECT_ITEM(CommonChest); + INIT_DETECT_ITEM(ExquisiteChest); + INIT_DETECT_ITEM(PreciousChest); + INIT_DETECT_ITEM(LuxuriousChest); + INIT_DETECT_ITEM(RemarkableChest); + + INIT_DETECT_ITEM(Anemoculus); + INIT_DETECT_ITEM(CrimsonAgate); + INIT_DETECT_ITEM(Electroculus); + INIT_DETECT_ITEM(Geoculus); + INIT_DETECT_ITEM(Lumenspar); + +#undef INIT_DETECT_ITEM + } +} diff --git a/cheat-library/src/user/cheat/imap/InteractiveMap.h b/cheat-library/src/user/cheat/imap/InteractiveMap.h new file mode 100644 index 0000000..cae7e5e --- /dev/null +++ b/cheat-library/src/user/cheat/imap/InteractiveMap.h @@ -0,0 +1,240 @@ +#pragma once + +#include +#include +#include +#include + +namespace cheat::feature +{ + + class InteractiveMap : public Feature + { + public: + enum class SaveAttachType + { + Account, + Profile, + Global + }; + + config::Field> f_Enabled; + config::Field f_SeparatedWindows; + config::Field f_CompletionLogShow; + + config::Field> f_STFixedPoints; + config::Field> f_STCustomPoints; + config::Field> f_STCompletedPoints; + + config::Field f_IconSize; + config::Field f_MinimapIconSize; + config::Field f_DynamicSize; + config::Field f_ShowHDIcons; + + config::Field f_ShowCompleted; + config::Field f_CompletePointTransparency; + + config::Field f_AutoDetectNewItems; + config::Field f_AutoFixItemPositions; + config::Field f_ObjectCheckOnlyShowed; + config::Field f_ObjectDetectRange; + config::Field f_CheckObjectsDelay; + + config::Field f_AutoDetectGatheredItems; + config::Field f_GatheredItemsDetectRange; + + config::Field f_CompleteNearestPoint; + config::Field f_RevertLatestCompletion; + config::Field f_CompleteOnlyViewed; + config::Field f_PointFindRange; + + static InteractiveMap& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + void DrawExternal() override; + + struct PointData + { + uint32_t id; + + uint32_t sceneID; + uint32_t labelID; + + app::Vector2 levelPosition; + + bool completed; + int64_t completeTimestamp; + + bool custom; + int64_t creationTimestamp; + + bool fixed; + app::Vector2 originPosition; + }; + + // std::optional GetSelectedPoint(); + PointData* GetHoveredPoint(); + + std::vector GetEntityPoints(game::Entity* entity, bool completed = false, uint32_t sceneID = 0); + PointData* FindNearestPoint(const app::Vector2& levelPosition, float range = 0.0f, bool onlyShowed = true, bool completed = false, uint32_t sceneID = 0); + PointData* FindEntityPoint(game::Entity* entity, float range = 0.0f, uint32_t sceneID = 0); + + void CompletePoint(PointData* pointData); + void UncompletePoint(PointData* pointData); + void RevertLatestPointCompleting(); + + void FixPointPosition(PointData* pointData, app::Vector2 fixedPosition); + void UnfixPoitnPosition(PointData* pointData); + + void AddCustomPoint(uint32_t sceneID, uint32_t labelID, app::Vector2 levelPosition); + void RemoveCustomPoint(PointData* pointData); + + private: + + InteractiveMap(); + + struct ScallingInput + { + app::Vector2 normal1; + app::Vector2 normal2; + app::Vector2 scalled1; + app::Vector2 scalled2; + }; + + struct LabelData + { + uint32_t id; + uint32_t sceneID; + + std::string name; + std::string clearName; + config::Field enabled; + + std::map points; + uint32_t completedCount; + + game::IEntityFilter* filter; + bool supportGatherDetect; + }; + + struct CategoryData + { + std::string name; + std::vector children; + }; + + struct SceneData + { + std::map labels; + std::map nameToLabel; + std::vector categories; + }; + + std::map m_ScenesData; + + std::mutex m_UserDataMutex; // Support multithread + config::Field f_CustomPointsJson; + config::Field f_FixedPointsJson; + config::Field f_CompletedPointsJson; + + config::Field f_CustomPointIndex; // Stores last index for new custom points + config::Field f_LastUserID; + + std::unordered_set m_CustomPoints; + std::unordered_set m_FixedPoints; + std::unordered_set m_CompletedPoints; + + std::mutex m_PointMutex; + // PointData* m_SelectedPoint; + PointData* m_HoveredPoint; + + std::string m_SearchText; + + // Parsing map data + PointData ParsePointData(const nlohmann::json& data); + void LoadLabelData(const nlohmann::json& data, uint32_t sceneID, uint32_t labelID); + void LoadCategoriaData(const nlohmann::json& data, uint32_t sceneID); + void LoadSceneData(const nlohmann::json& data, uint32_t sceneID); + void LoadScenesData(); + + + void ApplySceneScalling(uint32_t sceneId, const ScallingInput& input); + void ApplyScaling(); + + void InitializeEntityFilter(game::IEntityFilter* filter, const std::string& clearName); + void InitializeEntityFilters(); + + void InitializeGatherDetectItems(); + + // Loading user data + using ResetElementFunc = bool (InteractiveMap::*)(LabelData* labelData, PointData* point); + using LoadElementFunc = void (InteractiveMap::*)(LabelData* labelData, const nlohmann::json& data); + using SaveElementFunc = void (InteractiveMap::*)(nlohmann::json& jObject, PointData* point); + + void ResetUserData(ResetElementFunc func); + void LoadUserData(const nlohmann::json& data, LoadElementFunc func); + void SaveUserData(nlohmann::json& data, SaveElementFunc func); + + void LoadCompletedPointData(LabelData* labelData, const nlohmann::json& data); + void SaveCompletedPointData(nlohmann::json& jObject, PointData* point); + bool ResetCompletedPointData(LabelData* label, PointData* point); + + void LoadCustomPointData(LabelData* labelData, const nlohmann::json& data); + void SaveCustomPointData(nlohmann::json& jObject, PointData* point); + bool ResetCustomPointData(LabelData* label, PointData* point); + + void LoadFixedPointData(LabelData* labelData, const nlohmann::json& data); + void SaveFixedPointData(nlohmann::json& jObject, PointData* point); + bool ResetFixedPointData(LabelData* label, PointData* point); + + void LoadCompletedPoints(); + void SaveCompletedPoints(); + void ResetCompletedPoints(); + + void LoadCustomPoints(); + void SaveCustomPoints(); + void ResetCustomPoints(); + + void LoadFixedPoints(); + void SaveFixedPoints(); + void ResetFixedPoints(); + + void CreateUserDataField(const char* name, config::Field& field, SaveAttachType saveType); + void UpdateUserDataField(config::Field& field, SaveAttachType saveType, bool move = false); + std::string GetUserDataFieldSection(SaveAttachType saveType); + + void OnConfigProfileChanged(); + void OnAccountChanged(uint32_t userID); + + // Drawing + void DrawMenu(); + void DrawFilters(const bool searchFixed = true); + void DrawFilter(LabelData& label); + + void DrawPoint(const PointData& pointData, const ImVec2& screenPosition, float radius, float radiusSquared, ImTextureID texture, bool selectable = true); + void DrawPoints(); + + void DrawMinimapPoints(); + + // Block interact + void OnWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, bool& cancelled); + + // Detecting stuff + void OnGameUpdate(); + void CheckObjects(); + void OnItemGathered(game::Entity* entity); + + // Utility + static PointData* FindNearestPoint(const LabelData& label, const app::Vector2& levelPosition, float range = 0.0f, bool completed = false); + std::vector FindLabelsByClearName(const std::string& clearName); + + // Hooks + static void GadgetModule_OnGadgetInteractRsp_Hook(void* __this, app::GadgetInteractRsp* notify, MethodInfo* method); + static void InLevelMapPageContext_UpdateView_Hook(app::InLevelMapPageContext* __this, MethodInfo* method); + static void InLevelMapPageContext_ZoomMap_Hook(app::InLevelMapPageContext* __this, float value, MethodInfo* method); + static void MonoMiniMap_Update_Hook(app::MonoMiniMap* __this, MethodInfo* method); + }; +} + diff --git a/cheat-library/src/user/cheat/misc/Debug.cpp b/cheat-library/src/user/cheat/misc/Debug.cpp new file mode 100644 index 0000000..b289e9d --- /dev/null +++ b/cheat-library/src/user/cheat/misc/Debug.cpp @@ -0,0 +1,1274 @@ +#include "pch-il2cpp.h" +#include "Debug.h" + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// This module is for debug purpose, and... well.. it's shit coded ^) +namespace cheat::feature +{ + + static bool ActorAbilityPlugin_OnEvent_Hook(void* __this, app::BaseEvent* e, MethodInfo* method); + void OnGameUpdate(); + static bool csvFriendly = true; + static bool includeHeaders = true; + + Debug::Debug() : Feature() + { + events::GameUpdateEvent += FUNCTION_HANDLER(OnGameUpdate); + HookManager::install(app::ActorAbilityPlugin_OnEvent, ActorAbilityPlugin_OnEvent_Hook); + // HookManager::install(app::LuaShellManager_ReportLuaShellResult, LuaShellManager_ReportLuaShellResult_Hook); + // HookManager::install(app::LuaShellManager_DoString, LuaShellManager_DoString_Hook); + // HookManager::install(app::LuaEnv_DoString, LuaEnv_DoString_Hook); + // HookManager::install(app::Lua_xlua_pushasciistring, Lua_xlua_pushasciistring_Hook); + + // HookManager::install(app::GameLogin_SendInfo_2, SendInfo_Hook); + // LOG_DEBUG("Hooked GameLogin::SendGameInfo. Origin at 0x%p", HookManager::getOrigin(SendInfo_Hook)); + } + + const FeatureGUIInfo& Debug::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "DebugInfo", "Debug", false }; + return info; + } + + Debug& Debug::GetInstance() + { + static Debug instance; + return instance; + } + + + // Raise when player start game log in (after press a door) + // Contains information about player system and game integrity + static void SendInfo_Hook(app::NetworkManager_1* __this, app::GKOJAICIOPA* info, MethodInfo* method) + { + LOG_TRACE("Game sending game info to server."); + LOG_TRACE("Content: "); + +#define printString(i) if (info->fields.string_ ## i > (void *)1 && info->fields.string_ ## i ##->fields.length > 0)\ + LOG_TRACE("\tfield#%d: %s", i ,il2cppi_to_string(info->fields.string_ ## i).c_str()); + + printString(1); + printString(2); + printString(3); + printString(4); + printString(5); + printString(6); + printString(7); + printString(8); + printString(9); + printString(10); + printString(11); + printString(12); + printString(13); + printString(14); + printString(15); + printString(16); + +#undef printString + + CALL_ORIGIN(SendInfo_Hook, __this, info, method); + } + + static void Lua_xlua_pushasciistring_Hook(void* __this, void* L, app::String* str, MethodInfo* method) + { + LOG_DEBUG("Pushed string: %s", il2cppi_to_string(str).c_str()); + CALL_ORIGIN(Lua_xlua_pushasciistring_Hook, __this, L, str, method); + } + + static int checkCount = 0; + static void* LuaEnv_DoString_Hook(void* __this, app::Byte__Array* chunk, app::String* chunkName, void* env, MethodInfo* method) + { + if (checkCount > 0) + { + LOG_DEBUG("After size %d; name: %s", chunk->bounds == nullptr ? chunk->max_length : chunk->bounds->length, il2cppi_to_string(chunkName).c_str()); + checkCount--; + } + return CALL_ORIGIN(LuaEnv_DoString_Hook, __this, chunk, chunkName, env, method); + } + + static void LuaShellManager_DoString_Hook(void* __this, app::Byte__Array* byteArray, MethodInfo* method) + { + LOG_DEBUG("Size %d", byteArray->bounds == nullptr ? byteArray->max_length : byteArray->bounds->length); + checkCount = 10; + CALL_ORIGIN(LuaShellManager_DoString_Hook, __this, byteArray, method); + } + + static void LuaShellManager_ReportLuaShellResult_Hook(void* __this, app::String* type, app::String* value, MethodInfo* method) + { + std::cout << "Type: " << il2cppi_to_string(type) << std::endl; + std::cout << "Value: " << il2cppi_to_string(value) << std::endl; + CALL_ORIGIN(LuaShellManager_ReportLuaShellResult_Hook, __this, type, value, method); + } + + static bool ActorAbilityPlugin_OnEvent_Hook(void* __this, app::BaseEvent* e, MethodInfo* method) + { + // LOG_DEBUG("Fire event: %s, targetID %u", magic_enum::enum_name(e->fields.eventID).data(), e->fields.targetID); + return CALL_ORIGIN(ActorAbilityPlugin_OnEvent_Hook, __this, e, method); + } + + static void DrawWaypoints(UniDict*>* waypointsGrops) + { + if (waypointsGrops == nullptr) + { + ImGui::Text("Waypoint data doesn't exist."); + return; + } + + auto singleton = GET_SINGLETON(MBHLOBDPKEC); + + for (const auto& [sceneId, waypoints] : waypointsGrops->pairs()) + { + if (ImGui::TreeNode(("WTD " + std::to_string(sceneId)).c_str(), "Waypoint group id %d", sceneId)) + { + for (const auto& [waypointId, waypoint] : waypoints->pairs()) + { + if (ImGui::TreeNode(("WD " + std::to_string(waypointId)).c_str(), "Waypoint id %d", waypointId)) + { + ImGui::Text("IsGroupLimit: %s", waypoint.isGroupLimit ? "true" : "false"); + ImGui::Text("IsUnlocked: %s", waypoint.isUnlocked ? "true" : "false"); + ImGui::Text("Level: %u", waypoint.level); + ImGui::Text("EntityId: %u", waypoint.entityId); + ImGui::Text("ModelHiden: %s", waypoint.isModelHidden ? "true" : "false"); + + if (waypoint.config != nullptr) + { + auto location = waypoint.config->fields; + ImGui::Text("Waypoint type: %s", magic_enum::enum_name(location._type).data()); + ImGui::Text("Trans position: %s", il2cppi_to_string(location._tranPos).c_str()); + ImGui::Text("Object position: %s", il2cppi_to_string(location._pos).c_str()); + ImGui::Text("_unlocked: %s", location._unlocked ? "true" : "false"); + ImGui::Text("_groupLimit: %s", location._groupLimit ? "true" : "false"); + uint16_t areaId = app::SimpleSafeUInt16_get_Value(nullptr, location.areaIdRawNum, nullptr); + ImGui::Text("areaId: %u", areaId); + ImGui::Text("areaUnlocked: %s", app::MapModule_IsAreaUnlock(singleton, sceneId, areaId, nullptr) ? "true" : "false"); + ImGui::Text("gadgetIdRawNum: %u", location.gadgetIdRawNum); + } + + ImGui::TreePop(); + } + } + + ImGui::TreePop(); + } + } + } + + void DrawManagerData() + { + auto singleton = GET_SINGLETON(MBHLOBDPKEC); + if (singleton == nullptr) + { + ImGui::Text("Manager not initialized."); + return; + } + + if (ImGui::TreeNode("Waypoints")) + { + auto waypoints = TO_UNI_DICT(singleton->fields._scenePointDics, uint32_t, UniDict*); + DrawWaypoints(waypoints); + ImGui::TreePop(); + } + } + + void DrawEntity(game::Entity* entity) + { + if (entity == nullptr) + { + ImGui::Text("Entity doesn't exist."); + return; + } + ImGui::Text("Entity type: %s", magic_enum::enum_name(entity->type()).data()); + ImGui::Text("Entity name: %s", entity->name().c_str()); + } + + void CopyEntityDetailsToClipboard(std::vector entities) + { + std::string entitiesDetails = ""; + if (csvFriendly && includeHeaders) + entitiesDetails.append("Entity,RuntimeID,Name,PosX,PosY,PosZ\n"); + for (auto entity : entities) { + auto entityPos = entity->absolutePosition(); + std::string baseString = csvFriendly ? "{},{},{},{},{},{}" : "{} {} {} x={} y={} z={}"; + auto entityDetails = fmt::format(baseString, + fmt::ptr(entity), + entity->runtimeID(), + entity->name().c_str(), + entityPos.x, entityPos.y, entityPos.z + ); + entitiesDetails.append(entityDetails); + entitiesDetails.append("\n"); + } + ImGui::SetClipboardText(entitiesDetails.c_str()); + } + + void CopyEntityDetailsToClipboard(game::Entity* entity) + { + auto entityPos = entity->absolutePosition(); + std::string headerString = "Entity,RuntimeID,Name,PosX,PosY,PosZ\n"; + std::string baseString = csvFriendly ? "{},{},{},{},{},{}" : "{} {} {} x={} y={} z={}"; + if (csvFriendly && includeHeaders) + baseString = headerString.append(baseString); + auto entityDetails = fmt::format(baseString, + fmt::ptr(entity), + entity->runtimeID(), + entity->name().c_str(), + entityPos.x, entityPos.y, entityPos.z + ); + ImGui::SetClipboardText(entityDetails.c_str()); + } + + void DrawCombatDetails(game::Entity* entity) + { + auto combat = entity->combat(); + if (combat != nullptr) { + auto combatProp = combat->fields._combatProperty_k__BackingField; + auto maxHP = app::SafeFloat_GetValue(nullptr, combatProp->fields.maxHP, nullptr); + auto HP = app::SafeFloat_GetValue(nullptr, combatProp->fields.HP, nullptr); + auto isLockHp = combatProp->fields.islockHP == nullptr || app::FixedBoolStack_get_value(combatProp->fields.islockHP, nullptr); + auto isInvincible = combatProp->fields.isInvincible == nullptr || app::FixedBoolStack_get_value(combatProp->fields.isInvincible, nullptr); + ImGui::BeginTooltip(); + ImGui::Text("Combat: %s", combat == nullptr ? "No" : "Yes"); + ImGui::Text("Combat Prop: %s", combatProp == nullptr ? "No" : "Yes"); + ImGui::Text("HP Curr/Max: %.01f/%.01f", HP, maxHP); + ImGui::Text("Locked HP: %s", isLockHp ? "Yes" : "No"); + ImGui::Text("Invincible: %s", isInvincible ? "Yes" : "No"); + ImGui::EndTooltip(); + } + } + + void DrawEntityActionButtons(game::Entity* entity, bool& csvFriendly) + { + auto& manager = game::EntityManager::instance(); + + if (ImGui::SmallButton("T")) + { + auto& mapTeleport = MapTeleport::GetInstance(); + mapTeleport.TeleportTo(entity->absolutePosition()); + }; + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Teleport"); + + ImGui::SameLine(); + if (ImGui::SmallButton("S")) + entity->setRelativePosition(manager.avatar()->relativePosition()); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Summon"); + + ImGui::SameLine(); + if (ImGui::SmallButton("B")) + entity->setRelativePosition({ 0, 0, 0 }); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Banish"); + + ImGui::SameLine(); + if (ImGui::SmallButton("C")) + CopyEntityDetailsToClipboard(entity); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Copy Details"); + } + + std::vector SortEntities(std::vector entities, Debug::EntitySortCondition condition) + { + switch (condition) { + case Debug::EntitySortCondition::RuntimeID: { + std::sort(entities.begin(), + entities.end(), + [](game::Entity* e1, game::Entity* e2) { + auto s1 = e1->runtimeID(); + auto s2 = e2->runtimeID(); + return s1 < s2; + }); + break; + } + case Debug::EntitySortCondition::Name: { + std::sort(entities.begin(), + entities.end(), + [](game::Entity* e1, game::Entity* e2) { + auto s1 = e1->name().c_str(); + auto s2 = e2->name().c_str(); + return s1 < s2; + }); + break; + } + case Debug::EntitySortCondition::Distance: { + std::sort(entities.begin(), + entities.end(), + [](game::Entity* e1, game::Entity* e2) { + auto& manager = game::EntityManager::instance(); + return manager.avatar()->distance(e1) < manager.avatar()->distance(e2); + }); + break; + } + default: + break; + } + return entities; + } + + void TeleportByCondition(std::vector entities, Debug::TeleportCondition condition) + { + auto& manager = game::EntityManager::instance(); + auto& mapTeleport = MapTeleport::GetInstance(); + + // Opted for this instead of min_/max_element to guarantee no voodoo magic happens. + // We'll go for min_/max_element later on if we want to implement weird sorts like + // lowest HP/highest HP/etc. Even then, that will be in SortEntities, not here. + // Like so: SortEntities(entities, Debug::EntitySortCondition::Health); + auto sortedEntities = SortEntities(entities, Debug::EntitySortCondition::Distance); + // Always have a default target! + auto target = sortedEntities.front(); + + // Keeping this as a switch statement instead of ternary. We don't know yet how + // many cases we want to keep supporting. Ternary is cleaner, but not a big + // performance hit if we keep a switch statement. + switch (condition) { + case Debug::TeleportCondition::Closest: { + // We've already selected this. + break; + } + case Debug::TeleportCondition::Farthest: { + target = sortedEntities.back(); + break; + } + } + + // Separating this logic to keep it clean and consistent. + if (target != nullptr) + { + auto targetDist = manager.avatar()->distance(target); + if (targetDist > 30.0f) + mapTeleport.TeleportTo(target->absolutePosition()); + else manager.avatar()->setRelativePosition(target->relativePosition()); + } + } + + void SummonEntities(game::Entity* entity) + { + auto& manager = game::EntityManager::instance(); + entity->setRelativePosition(manager.avatar()->relativePosition()); + } + + void SummonEntities(std::vector entities) + { + for (auto entity : entities) + SummonEntities(entity); + } + + void BanishEntities(game::Entity* entity) + { + entity->setRelativePosition({ 0, 0, 0 }); + } + + void BanishEntities(std::vector entities) + { + for (auto entity : entities) + BanishEntities(entity); + } + + void DrawEntityGroupActionButtons(std::vector entities, bool& csvFriendly, bool& includeHeaders) + { + auto& manager = game::EntityManager::instance(); + + if (ImGui::Button("Teleport: Closest")) + TeleportByCondition(entities, Debug::TeleportCondition::Closest); + + ImGui::SameLine(); + if (ImGui::Button("Teleport: Farthest")) + TeleportByCondition(entities, Debug::TeleportCondition::Farthest); + + ImGui::SameLine(); + if (ImGui::Button("Summon All")) + SummonEntities(entities); + + ImGui::SameLine(); + if (ImGui::Button("Banish All")) + BanishEntities(entities); + + ImGui::SameLine(); + if (ImGui::Button("Copy All Details")) + CopyEntityDetailsToClipboard(entities); + + ImGui::SameLine(); + ImGui::Checkbox("CSV Friendly", &csvFriendly); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Uses comma separation and removes xyz from pos on copy."); + + if (csvFriendly) { + ImGui::SameLine(); + ImGui::Checkbox("Include Headers", &includeHeaders); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Includes headers when copying."); + } + } + + void DrawEntitiesTable(std::vector entities) + { + auto& manager = game::EntityManager::instance(); + auto clipSize = min(entities.size(), 15) + 1; // Number of rows in table as initial view. Past this is scrollbar territory. + + static ImGuiTableFlags flags = + ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable | ImGuiTableFlags_Hideable // | ImGuiTableFlags_Sortable | ImGuiTableFlags_SortMulti + | ImGuiTableFlags_RowBg | ImGuiTableFlags_BordersOuter | ImGuiTableFlags_BordersV | ImGuiTableFlags_NoBordersInBody + | ImGuiTableFlags_ScrollY; + if (ImGui::BeginTable("EntityTable", 8, flags, ImVec2(0.0f, ImGui::GetTextLineHeightWithSpacing() * clipSize), 0.0f)) + { + ImGui::TableSetupColumn("Commands", ImGuiTableColumnFlags_NoSort | ImGuiTableColumnFlags_WidthFixed, 0.0, 0); + ImGui::TableSetupColumn("ID", ImGuiTableColumnFlags_WidthFixed, 0.0f, 1); + ImGui::TableSetupColumn("RuntimeID", ImGuiTableColumnFlags_WidthFixed, 0.0f, 2); + ImGui::TableSetupColumn("Name", ImGuiTableColumnFlags_WidthFixed, 0.0f, 3); + ImGui::TableSetupColumn("Distance", ImGuiTableColumnFlags_DefaultSort | ImGuiTableColumnFlags_PreferSortAscending | ImGuiTableColumnFlags_WidthFixed, 0.0, 4); + ImGui::TableSetupColumn("Pos.x", ImGuiTableColumnFlags_WidthFixed, 0.0, 5); + ImGui::TableSetupColumn("Pos.y", ImGuiTableColumnFlags_WidthFixed, 0.0, 6); + ImGui::TableSetupColumn("Pos.z", ImGuiTableColumnFlags_WidthFixed, 0.0, 7); + ImGui::TableSetupScrollFreeze(0, 1); + ImGui::TableHeadersRow(); + + ImGuiListClipper clipper; + clipper.Begin(entities.size()); + while (clipper.Step()) + for (int row_n = clipper.DisplayStart; row_n < clipper.DisplayEnd; row_n++) + { + auto entity = entities[row_n]; + auto entityPos = entity->absolutePosition(); + + ImGui::PushID(entity->runtimeID()); + ImGui::TableNextRow(); + ImGui::TableNextColumn(); + + DrawEntityActionButtons(entity, csvFriendly); + ImGui::TableNextColumn(); + + ImGui::Text("0x%p", entity); + if (ImGui::IsItemHovered()) + DrawCombatDetails(entity); + ImGui::TableNextColumn(); + + ImGui::Text("%u", entity->runtimeID()); + ImGui::TableNextColumn(); + + ImGui::Text("%s", entity->name().c_str()); + ImGui::TableNextColumn(); + + ImGui::Text("%.3fm", manager.avatar()->distance(entity)); + ImGui::TableNextColumn(); + + ImGui::Text("%.04f", entityPos.x); + ImGui::TableNextColumn(); + + ImGui::Text("%.04f", entityPos.y); + ImGui::TableNextColumn(); + + ImGui::Text("%.04f", entityPos.z); + + ImGui::PopID(); + } + ImGui::EndTable(); + } + } + + static void DrawEntitiesData() + { + static bool typeFilters[0x63] = {}; + static bool typeFiltersInitialized = false; + + if (!typeFiltersInitialized) { + std::fill_n(typeFilters, 0x63, true); + typeFiltersInitialized = true; + } + + static bool useObjectNameFilter = false; + static char objectNameFilter[128] = {}; + static float radius = 0.0f; + static bool useRadius = false; + static bool groupByType = true; + static int typeFiltersColCount = 5; + + static bool checkOnlyShells = false; + static bool showEmptyTypes = false; + static Debug::EntitySortCondition sortCondition = Debug::EntitySortCondition::Distance; + static ImGuiTabBarFlags tab_bar_flags = ImGuiTabBarFlags_Reorderable | ImGuiTabBarFlags_FittingPolicyScroll | + ImGuiTabBarFlags_NoCloseWithMiddleMouseButton | ImGuiTabBarFlags_TabListPopupButton; + + auto& manager = game::EntityManager::instance(); + auto entities = manager.entities(); + auto entries = magic_enum::enum_entries(); + + std::vector> sortedEntries; + sortedEntries.insert(sortedEntries.begin(), std::begin(entries), std::end(entries)); + std::sort(sortedEntries.begin(), sortedEntries.end(), [](auto a1, auto a2) { + return a1.second < a2.second; + }); + + ImGuiContext& g = *GImGui; + ImGuiIO& io = g.IO; + + ImGui::Text("Entity Count %d", entities.size()); + + ImGui::Checkbox("## Enable Object Name Filter", &useObjectNameFilter); ImGui::SameLine(); + if (!useObjectNameFilter) + ImGui::BeginDisabled(); + ImGui::InputText("Entity Name Filter", objectNameFilter, 128); + if (!useObjectNameFilter) + ImGui::EndDisabled(); + + + ImGui::Checkbox("Filter by Radius", &useRadius); + if (!useRadius) + ImGui::BeginDisabled(); + + ImGui::SameLine(); + ImGui::PushItemWidth(200.0); + ImGui::SliderFloat("Radius", &radius, 0.0f, 100.0f); + ImGui::PopItemWidth(); + if (!useRadius) + ImGui::EndDisabled(); + + if (ImGui::BeginTabBar("EntityManagerTabBar", tab_bar_flags)) + { + if (ImGui::BeginTabItem("Type Filter")) + { + if (ImGui::Button("Select All")) + std::fill_n(typeFilters, 0x63, true); + ImGui::SameLine(); + + if (ImGui::Button("Deselect All")) + std::fill_n(typeFilters, 0x63, false); + ImGui::SameLine(); + + ImGui::PushItemWidth(100.0); + ImGui::SliderInt("No. of Columns", &typeFiltersColCount, 2, 5); + ImGui::PopItemWidth(); + + if (ImGui::BeginTable("Type Filter Table", typeFiltersColCount, ImGuiTableFlags_NoBordersInBody)) + { + for (const auto& [value, name] : sortedEntries) + { + ImGui::TableNextColumn(); + ImGui::Checkbox(name.data(), &typeFilters[(int)value]); + } + ImGui::EndTable(); + } + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem("Entity List")) + { + // Checkbox: Group by Type. + ImGui::Checkbox("Group by Type", &groupByType); + ImGui::SameLine(); + + if (groupByType) { + ImGui::Checkbox("Show Empty Types", &showEmptyTypes); + ImGui::SameLine(); + } + + ImGui::Checkbox("Show Only Oculi", &checkOnlyShells); + ImGui::SameLine(); + + bool sortConditionChanged = ComboEnum("Sort Mode", &sortCondition); + + if (entities.size() > 0) { + if (groupByType) { + if (ImGui::BeginTabBar("EntityListTabBar", tab_bar_flags)) + { + for (const auto& [currentType, typeName] : sortedEntries) { + if (!typeFilters[int(currentType)]) + continue; + + auto filteredEntities = manager.entities(game::SimpleFilter(currentType)); + if (!showEmptyTypes && filteredEntities.size() == 0) + continue; + + std::vector validEntities; + for (const auto& entity : filteredEntities) + { + if (entity == nullptr) + continue; + + if (entity->type() != currentType) + continue; + + if (checkOnlyShells && !game::filters::combined::Oculies.IsValid(entity)) + continue; + + if (useObjectNameFilter && entity->name().find(objectNameFilter) == -1) + continue; + + if (useRadius) + { + auto dist = manager.avatar()->distance(entity); + if (dist > radius) + continue; + } + + validEntities.push_back(entity); + } + + if (validEntities.size() == 0 && !showEmptyTypes) + continue; + + + if (ImGui::BeginTabItem(typeName.data())) + { + auto sortedEntities = SortEntities(validEntities, sortCondition); + DrawEntityGroupActionButtons(sortedEntities, csvFriendly, includeHeaders); + DrawEntitiesTable(sortedEntities); + ImGui::EndTabItem(); + } + } + } + ImGui::EndTabBar(); + } + else { + std::vector validEntities; + for (const auto& entity : entities) + { + if (entity == nullptr) + continue; + + if (!typeFilters[int(entity->type())]) + continue; + + if (checkOnlyShells && !game::filters::combined::Oculies.IsValid(entity)) + continue; + + if (useObjectNameFilter && entity->name().find(objectNameFilter) == -1) + continue; + + if (useRadius) + { + auto dist = manager.avatar()->distance(entity); + if (dist > radius) + continue; + } + + validEntities.push_back(entity); + } + + auto sortedEntities = SortEntities(validEntities, sortCondition); + DrawEntityGroupActionButtons(sortedEntities, csvFriendly, includeHeaders); + DrawEntitiesTable(sortedEntities); + ImGui::TreePop(); + } + } + ImGui::EndTabItem(); + } + ImGui::EndTabBar(); + } + } + +#define DRAW_UINT(owner, fieldName) ImGui::Text("%s: %u", #fieldName, owner##->fields.##fieldName ); +#define DRAW_FLOAT(owner, fieldName) ImGui::Text("%s: %f", #fieldName, owner##->fields.##fieldName ); +#define DRAW_BOOL(owner, fieldName) ImGui::Text("%s: %s", #fieldName, owner##->fields.##fieldName ? "true" : "false"); + + static void DrawBaseInteraction(app::BaseInterAction* inter) + { + ImGui::Text("_type: %s", magic_enum::enum_name(inter->fields._type).data()); + DRAW_UINT(inter, _mainQuestId); + DRAW_BOOL(inter, _isFromExternal); + DRAW_BOOL(inter, _isStarted); + DRAW_BOOL(inter, _isFinished); + auto cfg = inter->fields._cfg; + if (cfg == nullptr) + return; + + ImGui::Text("Config: "); + ImGui::Text("_type: %s", magic_enum::enum_name(cfg->fields._type).data()); + DRAW_FLOAT(cfg, _delayTime); + DRAW_FLOAT(cfg, _duration); + DRAW_FLOAT(cfg, _checkNextImmediately); + } + + static void DrawInteractionManagerInfo() + { + auto interactionManager = GET_SINGLETON(InteractionManager); + if (interactionManager == nullptr) + { + ImGui::Text("Manager not loaded."); + return; + } + + DRAW_UINT(interactionManager, _keyInterCnt); + DRAW_FLOAT(interactionManager, _endFadeInTime); + DRAW_FLOAT(interactionManager, _endFadeOutTime); + DRAW_BOOL(interactionManager, _hasKeyPre); + DRAW_BOOL(interactionManager, _havEndFade); + DRAW_BOOL(interactionManager, _inEndFade); + DRAW_BOOL(interactionManager, _inStartFade); + DRAW_BOOL(interactionManager, _talkLoading); + DRAW_BOOL(interactionManager, _voiceLoading); + DRAW_BOOL(interactionManager, _isLockGameTime); + DRAW_BOOL(interactionManager, _isInteeReadyChecking); + DRAW_BOOL(interactionManager, _isDelayClear); + DRAW_BOOL(interactionManager, _isFromPerformConfig); + DRAW_BOOL(interactionManager, _edtTalkWaiting); + DRAW_BOOL(interactionManager, _isManulAttackMode); + DRAW_BOOL(interactionManager, _canShowAvatarEffectWhenTalkStart); + + + auto keyList = TO_UNI_LINK_LIST(interactionManager->fields._keyInterList, app::InterActionGrp*); + if (keyList != nullptr && ImGui::TreeNode("KeyList")) + { + auto reminder = keyList->count; + auto current = keyList->first; + while (reminder > 0 && current != nullptr) + { + auto item = current->item; + if (ImGui::TreeNode(item, "Key item: gid %d", item->fields.groupId)) + { + DRAW_UINT(item, groupId); + DRAW_UINT(item, nextGroupId); + DRAW_BOOL(item, isKeyList); + DRAW_BOOL(item, _isStarted); + + if (item->fields._interActionList != nullptr && ImGui::TreeNode("Interactions")) + { + auto interactions = TO_UNI_LIST(item->fields._interActionList, app::BaseInterAction*); + for (auto& interaction : *interactions) + { + if (interaction == nullptr) + continue; + + if (ImGui::TreeNode(interaction, "Base interaction")) + { + DrawBaseInteraction(interaction); + ImGui::TreePop(); + } + } + ImGui::TreePop(); + } + ImGui::TreePop(); + } + current = current->forward; + reminder--; + } + ImGui::TreePop(); + + } + } + +#undef DRAW_UINT +#undef DRAW_FLOAT +#undef DRAW_BOOL + + void DrawPositionInfo() + { + auto avatarPos = app::ActorUtils_GetAvatarPos(nullptr, nullptr); + ImGui::Text("Avatar position: %s", il2cppi_to_string(avatarPos).c_str()); + + auto relativePos = app::WorldShiftManager_GetRelativePosition(nullptr, avatarPos, nullptr); + ImGui::Text("Relative position: %s", il2cppi_to_string(relativePos).c_str()); + + auto levelPos = app::Miscs_GenLevelPos_1(nullptr, avatarPos, nullptr); + ImGui::Text("Level position: %s", il2cppi_to_string(levelPos).c_str()); + + + static app::Vector3 teleportPos = {}; + ImGui::InputFloat3("Teleport position", reinterpret_cast(&teleportPos)); + + auto& teleport = MapTeleport::GetInstance(); + if (ImGui::Button("Map teleport")) + teleport.TeleportTo(app::Vector2 { teleportPos.x, teleportPos.y }); + + ImGui::SameLine(); + + if (ImGui::Button("World teleport")) + teleport.TeleportTo(teleportPos); + + if (ImGui::TreeNode("Ground pos info")) + { + auto groundNormal = app::Miscs_CalcCurrentGroundNorm(nullptr, avatarPos, nullptr); + ImGui::Text("Ground normal: %s", il2cppi_to_string(groundNormal).c_str()); + + static app::Vector3 pos{}; + static bool fixedToPos; + ImGui::Checkbox("## Fixed to position", &fixedToPos); ImGui::SameLine(); + if (fixedToPos) { + pos = relativePos; + pos.y = 1000; + } + + ImGui::DragFloat3("Checked pos", (float*)&pos, 1.0f, -4000.0f, 4000.0f); + + static float length = 1000; + ImGui::DragFloat("Raycast length", &length, 1.0f, -2000.0f, 2000.0f); + + ImGui::Text("All: %f", app::Miscs_CalcCurrentGroundHeight_1(nullptr, avatarPos.x, avatarPos.z, avatarPos.y, length, 0xFFFFFFFF, nullptr)); + + ImGui::TreePop(); + } + if (ImGui::Button("Copy Position")) + { + auto text = il2cppi_to_string(avatarPos); + ImGui::SetClipboardText(text.c_str()); + } + ImGui::SameLine(); + if (ImGui::Button("Copy All Info")) + { + auto text = il2cppi_to_string(avatarPos) + "\n" + il2cppi_to_string(relativePos) + "\n" + il2cppi_to_string(levelPos) + "\n" + il2cppi_to_string(app::Miscs_CalcCurrentGroundNorm(nullptr, avatarPos, nullptr)); + ImGui::SetClipboardText(text.c_str()); + } + ImGui::SameLine(); + if (ImGui::Button("Copy as json")) + { + std::string text = "\"position\":["; + text += std::to_string(avatarPos.x) + ","; + text += std::to_string(avatarPos.y) + ","; + text += std::to_string(avatarPos.z) + "]"; + std::string name = ""; + for (int i = 0; i < 10; i++) + name += std::to_string(rand() % 10); + text = "\"name\":\"" + name + "\"," + text; + text = "{" + text + "}"; + ImGui::SetClipboardText(text.c_str()); + } + + } + + void DrawMapManager() + { + auto mapManager = GET_SINGLETON(MapManager); + if (mapManager == nullptr) + return; + + int temp = mapManager->fields.playerSceneID; + ImGui::InputInt("Player scene id", &temp); + + temp = mapManager->fields.mapSceneID; + ImGui::InputInt("Map scene id", &temp); + } + + void DrawImGuiFocusTest() + { + ImGui::Text("Is any item active: %s", ImGui::IsAnyItemActive() ? "true" : "false"); + ImGui::Text("Is any item focused: %s", ImGui::IsAnyItemFocused() ? "true" : "false"); + + ImGui::Button("Test"); + auto hk = Hotkey(); + int temp = 0; + InputHotkey("Test hotkey", &hk, false); + ImGui::InputInt("Test input", &temp); + } + + std::map chestNames; + std::unordered_set notWrittenChests; + bool showNotWritten = false; + void OnGameUpdate() + { + if (!showNotWritten) + return; + + auto& entityManager = game::EntityManager::instance(); + + notWrittenChests.clear(); + for (auto& entity : entityManager.entities(game::filters::combined::Chests)) + { + auto& entityName = entity->name(); + if (chestNames.count(entityName) == 0) + notWrittenChests.insert(entityName); + } + } + + void DrawChestPlugin() + { + static std::map tempNames; + + auto& entityManager = game::EntityManager::instance(); + ImGui::Checkbox("Show not written", &showNotWritten); + for (auto& entity : entityManager.entities(game::filters::combined::Chests)) + { + auto& entityName = entity->name(); + if (showNotWritten && chestNames.count(entityName) > 0) + continue; + + app::LCChestPlugin* chestPlugin = entity->plugin(*app::LCChestPlugin__TypeInfo); + if (chestPlugin == nullptr) + continue; + + if (!ImGui::TreeNode(entity, "Chest 0x%p, Distance: %f", entity, entityManager.avatar()->distance(entity))) + continue; + + auto& pluginData = chestPlugin->fields; + auto& owner = pluginData._owner->fields; + auto& ownerData = owner._dataItem->fields; + app::GadgetState__Enum chestState = static_cast(ownerData.gadgetState); + ImGui::Text("Is ability locked: %s", pluginData._isLockByAbility ? "true" : "false"); + ImGui::Text("State: %s", magic_enum::enum_name(chestState).data()); + + bool added = chestNames.count(entityName) > 0; + + if (tempNames.count(entityName) == 0) + tempNames[entityName] = added ? chestNames[entityName] : std::string(); + + auto& tempName = tempNames[entityName]; + ImGui::PushID(entity); + + ImGui::Text("Name: %s", entityName.c_str()); + ImGui::InputText("Friendly name", &tempName); + + if (ImGui::Button(added ? "Update" : "Add")) + chestNames[entityName] = tempName; + + if (ImGui::Button("Teleport")) + { + auto& mapTeleport = MapTeleport::GetInstance(); + mapTeleport.TeleportTo(entity->absolutePosition()); + } + + ImGui::PopID(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Chest dictionary")) + { + std::stringstream text; + text << "{\n"; + for (auto& [rawName, friendlyName] : chestNames) + { + text << "\t\"" << friendlyName << "\" : \"" << rawName << "\",\n"; + } + text << "}"; + std::string textStr = text.str(); + ImGui::InputTextMultiline("Dict", &textStr); + ImGui::TreePop(); + } + + } + + void DrawScenePropManager() + { + auto scenePropManager = GET_SINGLETON(ScenePropManager); + if (scenePropManager == nullptr) + { + ImGui::Text("Scene prop manager not loaded."); + return; + } + + auto scenePropDict = TO_UNI_DICT(scenePropManager->fields._scenePropDict, int32_t, app::Object*); + if (scenePropDict == nullptr) + { + ImGui::Text("Scene prop dict is nullptr."); + return; + } + + ImGui::Text("Prop count: %d", scenePropDict->count); + + auto& manager = game::EntityManager::instance(); + for (auto& [id, propObject] : scenePropDict->pairs()) + { + auto tree = CastTo(propObject, *app::SceneTreeObject__TypeInfo); + if (tree == nullptr) + continue; + + auto pos = tree->fields._.realBounds.m_Center; + auto config = tree->fields._config->fields; + + auto pattern = config._._.scenePropPatternName; + app::ECGLPBEEEAA__Enum value; + bool result = app::ScenePropManager_GetTreeTypeByPattern(scenePropManager, pattern, &value, nullptr); + if (!result) + continue; + + ImGui::Text("Tree at %s, type: %s, distance %0.3f", il2cppi_to_string(pos).c_str(), magic_enum::enum_name(value).data(), + manager.avatar()->distance(app::WorldShiftManager_GetRelativePosition(nullptr, pos, nullptr))); + } + } + + class ItemFilter : game::IEntityFilter + { + public: + ItemFilter() : ItemFilter(app::EntityType__Enum_1::None, "") + {} + + ItemFilter(app::EntityType__Enum_1 type, const std::string& name) : m_Type(type), m_Name(name) + { + + } + + bool IsValid(game::Entity* entity) const override + { + return entity->type() == m_Type && entity->name() == m_Name; + } + + app::EntityType__Enum_1 m_Type; + std::string m_Name; + }; + + static bool filtersIsLoaded = false; + static std::map simpleFilters; + static std::vector removedItems; + + static const std::string filename = "picked_filters.json"; + static bool filterItemPickerEnabled = false; + + static ItemFilter tempFilter; + static std::string tempName; + static std::string tempSectionName; + + static bool addingFilter; + static game::CacheFilterExecutor executor; + + void FilterItemPickerLoad() + { + filtersIsLoaded = true; + + std::ifstream fs(filename, std::ios::in); + if (!fs.is_open()) + return; + + nlohmann::json jRoot; + try { + jRoot =nlohmann::json::parse(fs); + } + catch (nlohmann::detail::parse_error& parseError) + { + LOG_ERROR("Failed to parse json"); + } + + for (auto& [key, value] : jRoot["filters"].items()) + simpleFilters[key] = ItemFilter(value["type"], value["name"]); + + for (auto& value : jRoot["excluded"]) + removedItems.push_back(ItemFilter(value["type"], value["name"])); + } + + void FiltetItemPickerSave() + { + std::ofstream fs(filename, std::ios::out); + if (!fs.is_open()) + { + LOG_ERROR("Failed to save changes."); + return; + } + + nlohmann::json jRoot = {}; + jRoot["filters"] = {}; + for (auto& [key, value] : simpleFilters) + { + jRoot["filters"][key] = {}; + jRoot["filters"][key]["name"] = value.m_Name; + jRoot["filters"][key]["type"] = value.m_Type; + } + + jRoot["excluded"] = {}; + for (auto& value : removedItems) + { + nlohmann::json item = {}; + item["name"] = value.m_Name; + item["type"] = value.m_Type; + + jRoot["excluded"].push_back(item); + } + + fs << jRoot.dump(4); + fs.close(); + } + + void DrawFilterItemPicker() + { + ImGui::Checkbox("Enable ## itemPicker", &filterItemPickerEnabled); + if (!filterItemPickerEnabled) + return; + + if (!filtersIsLoaded) + FilterItemPickerLoad(); + + for (auto& [key, filter] : simpleFilters) + { + ImGui::PushID(key.c_str()); + ImGui::PushItemWidth(250); + + std::string keyText = key; + ImGui::InputText("## Name", &keyText); + ImGui::SameLine(); + + ImGui::InputText("## ItemName", &filter.m_Name); + ImGui::SameLine(); + + std::string typeName = std::string(magic_enum::enum_name(filter.m_Type)); + ImGui::InputText("## ItemType", &typeName); + + ImGui::PopItemWidth(); + ImGui::PopID(); + } + } + + void Debug::DrawExternal() + { + //auto draw = ImGui::GetBackgroundDrawList(); + + //std::string fpsString = fmt::format("{:.1f}/{:.1f}", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate); + //draw->AddText(ImVec2(100, 100), ImColor(0, 0, 0), fpsString.c_str()); + + if (!filterItemPickerEnabled) + return; + + auto& manager = game::EntityManager::instance(); + + game::Entity* selectedEntity = nullptr; + esp::render::PrepareFrame(); + + for (auto& entity : manager.entities()) + { + bool unexplored = true; + for (auto& [_, filter] : simpleFilters) + { + if (executor.ApplyFilter(entity, reinterpret_cast(&filter))) + { + unexplored = false; + break; + } + } + + for (auto& filter : removedItems) + { + if (executor.ApplyFilter(entity, reinterpret_cast(&filter))) + { + unexplored = false; + break; + } + } + + if (!unexplored) + continue; + + bool isSelected = esp::render::DrawEntity(entity->name(), entity, ImColor(255, 0, 0, 255), ImColor(255, 0, 0, 255)); + if (isSelected && selectedEntity == nullptr) + { + esp::render::DrawEntity(entity->name(), entity, ImColor(0, 255, 0, 255), ImColor(255, 0, 255, 255)); + selectedEntity = entity; + } + } + + + bool updated = false; + + if (!addingFilter) + { + if (ImGui::IsKeyPressed(ImGuiKey_R, false) && ImGui::IsKeyDown(ImGuiKey_LeftCtrl)) + { + if (removedItems.size() > 0) + { + removedItems.pop_back(); + updated = true; + } + } + else if (selectedEntity != nullptr && ImGui::IsKeyPressed(ImGuiKey_R, false)) + { + removedItems.push_back(ItemFilter(selectedEntity->type(), selectedEntity->name())); + updated = true; + } + + if (selectedEntity != nullptr && ImGui::IsKeyPressed(ImGuiKey_T, false)) + { + tempFilter = ItemFilter(selectedEntity->type(), selectedEntity->name()); + addingFilter = true; + tempName = ""; + renderer::SetInputLock(this, true); + } + } + + if (addingFilter) + { + ImGui::Begin("Input name", nullptr, ImGuiWindowFlags_AlwaysAutoResize); + ImGui::PushItemWidth(500); + ImGui::InputText("Section", &tempSectionName); + if (!ImGui::IsAnyItemActive() && !ImGui::IsMouseClicked(0)) + ImGui::SetKeyboardFocusHere(0); + ImGui::InputText("Name", &tempName); + ImGui::PopItemWidth(); + ImGui::End(); + + if (ImGui::IsKeyPressed(ImGuiKey_Enter, false)) + { + simpleFilters[fmt::format("{}::{}", tempSectionName, tempName)] = tempFilter; + renderer::SetInputLock(this, false); + addingFilter = false; + updated = true; + } + + if (ImGui::IsKeyPressed(ImGuiKey_Escape, false)) + { + renderer::SetInputLock(this, false); + addingFilter = false; + } + } + + if (updated) + FiltetItemPickerSave(); + } + + + void DrawFPSGraph() + { + static float values[120] = {0}; + static int values_offset = 0; + values[values_offset++] = ImGui::GetIO().Framerate; + if (values_offset >= IM_ARRAYSIZE(values)) + values_offset = 0; + ImGui::PlotLines("", values, IM_ARRAYSIZE(values), values_offset, "", 0.0f, 100.0f, ImVec2(0, 80)); + ImGui::Text("%.1f FPS", ImGui::GetIO().Framerate); + float avg_fps = 0.0f; + for (int i = 0; i < IM_ARRAYSIZE(values); i++) + avg_fps += values[i]; + avg_fps /= IM_ARRAYSIZE(values); + ImGui::Text("%.1f FPS (avg)", avg_fps); + } + + void Debug::DrawMain() + { + if (ImGui::CollapsingHeader("Entity Manager", ImGuiTreeNodeFlags_None)) + DrawEntitiesData(); + + if (ImGui::CollapsingHeader("Position", ImGuiTreeNodeFlags_None)) + { + DrawMapManager(); + DrawPositionInfo(); + } + + //if (ImGui::CollapsingHeader("Filter item picker")) + // DrawFilterItemPicker(); + + //if (ImGui::CollapsingHeader("Chest plugin", ImGuiTreeNodeFlags_None)) + // DrawChestPlugin(); + + //if (ImGui::CollapsingHeader("Interaction manager", ImGuiTreeNodeFlags_None)) + // DrawInteractionManagerInfo(); + + if (ImGui::CollapsingHeader("Map Manager", ImGuiTreeNodeFlags_None)) + DrawManagerData(); + if (ImGui::CollapsingHeader("FPS Graph", ImGuiTreeNodeFlags_None)) + DrawFPSGraph(); + } + + bool Debug::NeedInfoDraw() const + { + return showNotWritten && notWrittenChests.size() > 0; + } + + void Debug::DrawInfo() + { + for (auto& name : notWrittenChests) + { + ImGui::Text("%s", name.c_str()); + } + } + + + +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/misc/Debug.h b/cheat-library/src/user/cheat/misc/Debug.h new file mode 100644 index 0000000..7736850 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/Debug.h @@ -0,0 +1,34 @@ +#pragma once +#include + +namespace cheat::feature +{ + class Debug : public Feature + { + public: + + static Debug& GetInstance(); + + enum class TeleportCondition { + Closest, + Farthest + }; + + enum class EntitySortCondition { + RuntimeID = 0, + Name, + Distance + }; + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedInfoDraw() const override; + void DrawInfo() override; + + void DrawExternal() override; + private: + Debug(); + }; +} + diff --git a/cheat-library/src/user/cheat/misc/Hotkeys.cpp b/cheat-library/src/user/cheat/misc/Hotkeys.cpp new file mode 100644 index 0000000..12e926e --- /dev/null +++ b/cheat-library/src/user/cheat/misc/Hotkeys.cpp @@ -0,0 +1,79 @@ +#include "pch-il2cpp.h" +#include "Hotkeys.h" + +#include +#include + +namespace cheat::feature +{ + Hotkeys::Hotkeys() : Feature() { } + + const FeatureGUIInfo& Hotkeys::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "", "Hotkeys", false }; + return info; + } + + void Hotkeys::DrawMain() + { + static std::string searchBuffer; + ImGui::InputText("Search", &searchBuffer); + + ImGui::BeginChild("Hotkeys"); + + std::unordered_map>*>> sections; + + for (auto& field : config::GetFields>()) + { + if (!searchBuffer.empty()) + { + auto name = field.friendName(); + auto it = std::search( + name.begin(), name.end(), + searchBuffer.begin(), searchBuffer.end(), + [](char ch1, char ch2) { return std::tolower(ch1) == std::tolower(ch2); } + ); + if (it == name.end()) + continue; + } + + sections[field.section()].push_back(&field); + } + + std::vector>*> singleLineSections; + std::vector>*>*> multiLineSections; + for (auto& [section, fields] : sections) + { + if (fields.size() == 1) + singleLineSections.push_back(fields[0]); + else + multiLineSections.push_back(&fields); + } + + for (auto& field : singleLineSections) + { + ConfigWidget(*field, nullptr, true); + } + + for (auto& fields : multiLineSections) + { + if (BeginGroupPanel((*fields)[0]->section().c_str(), ImVec2(-1, 0), true)) + { + for (auto& field : *fields) + { + ConfigWidget(*field, nullptr, true); + } + EndGroupPanel(); + } + } + + ImGui::EndChild(); + } + + Hotkeys& Hotkeys::GetInstance() + { + static Hotkeys instance; + return instance; + } +} + diff --git a/cheat-library/src/user/cheat/misc/Hotkeys.h b/cheat-library/src/user/cheat/misc/Hotkeys.h new file mode 100644 index 0000000..df8f67b --- /dev/null +++ b/cheat-library/src/user/cheat/misc/Hotkeys.h @@ -0,0 +1,19 @@ +#pragma once +#include + +namespace cheat::feature +{ + + class Hotkeys : public Feature + { + public: + static Hotkeys& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + private: + Hotkeys(); + }; +} + diff --git a/cheat-library/src/user/cheat/misc/ProtectionBypass.cpp b/cheat-library/src/user/cheat/misc/ProtectionBypass.cpp new file mode 100644 index 0000000..6eb80df --- /dev/null +++ b/cheat-library/src/user/cheat/misc/ProtectionBypass.cpp @@ -0,0 +1,87 @@ +#include "pch-il2cpp.h" +#include "ProtectionBypass.h" + +#include +#include + +namespace cheat::feature +{ + static app::Byte__Array* RecordUserData_Hook(int32_t nType) + { + auto& inst = ProtectionBypass::GetInstance(); + + return inst.OnRecordUserData(nType); + } + + ProtectionBypass::ProtectionBypass() : Feature(), + NFEX(f_Enabled, "Disable Protection", "m_DisableMhyProt", "General", true, false), + m_CorrectSignatures({}) + { + HookManager::install(app::Unity_RecordUserData, RecordUserData_Hook); + } + + void ProtectionBypass::Init() + { + for (int i = 0; i < 4; i++) { + LOG_TRACE("Emulating call of RecordUserData with type %d", i); + app::Application_RecordUserData(nullptr, i, nullptr); + } + + // if (m_Enabled) { + LOG_TRACE("Trying to close mhyprot handle."); + if (util::CloseHandleByName(L"\\Device\\mhyprot2")) + LOG_INFO("The Mhyprot2 handle was successfully closed. Happy hacking!"); + else + LOG_ERROR("Failed to close mhyprot2 handle. Report this Issue and describe it."); + //} + + LOG_DEBUG("Initialized"); + } + + const FeatureGUIInfo& ProtectionBypass::GetGUIInfo() const + { + static const FeatureGUIInfo info { "", "Settings", false }; + return info; + } + + void ProtectionBypass::DrawMain() + { + ConfigWidget(f_Enabled, + "Close mhyprot2 handle (changes will take effect after relaunch)."); + } + + ProtectionBypass& ProtectionBypass::GetInstance() + { + static ProtectionBypass instance; + return instance; + } + + app::Byte__Array* ProtectionBypass::OnRecordUserData(int32_t nType) + { + if (m_CorrectSignatures.count(nType)) + { + auto byteClass = app::GetIl2Classes()[0x25]; + + auto& content = m_CorrectSignatures[nType]; + auto newArray = (app::Byte__Array*)il2cpp_array_new(byteClass, content.size()); + memmove_s(newArray->vector, content.size(), content.data(), content.size()); + + return newArray; + } + + app::Byte__Array* result = CALL_ORIGIN(RecordUserData_Hook, nType); + auto resultArray = TO_UNI_ARRAY(result, byte); + + auto length = resultArray->length(); + if (length == 0) + return result; + + auto stringValue = std::string((char*)result->vector, length); + m_CorrectSignatures[nType] = stringValue; + + LOG_DEBUG("Sniffed correct signature for type %d value '%s'", nType, stringValue.c_str()); + + return result; + } +} + diff --git a/cheat-library/src/user/cheat/misc/ProtectionBypass.h b/cheat-library/src/user/cheat/misc/ProtectionBypass.h new file mode 100644 index 0000000..30ab155 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/ProtectionBypass.h @@ -0,0 +1,30 @@ +#pragma once +#include +#include +#include + +#include + +namespace cheat::feature +{ + + class ProtectionBypass : public Feature + { + public: + config::Field f_Enabled; + + static ProtectionBypass& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + app::Byte__Array* OnRecordUserData(int32_t nType); + + void Init(); + + private: + ProtectionBypass(); + std::map m_CorrectSignatures; + }; +} + diff --git a/cheat-library/src/user/cheat/misc/sniffer/MessageManager.cpp b/cheat-library/src/user/cheat/misc/sniffer/MessageManager.cpp new file mode 100644 index 0000000..6636b07 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/MessageManager.cpp @@ -0,0 +1,83 @@ +#include "pch-il2cpp.h" +#include "MessageManager.h" + +namespace sniffer +{ + + void MessageManager::Send(MessageBase& data) + { + if (!IsConnected()) + return; + + s_Pipe->WriteObject(data.header()); + s_Pipe->WriteObject(data); + } + + MessageBase* MessageManager::ReceiveMessage() + { + if (!IsConnected()) + return nullptr; + + MessageHeader header; + s_Pipe->ReadObject(header); + + MessageIDs messageID = static_cast(header.messageID()); + +#define MESSAGE_CASE(mid, type)\ + case mid: \ + { \ + auto data = new type(header); \ + s_Pipe->ReadObject(*data); \ + CallHandlers(*data); \ + return reinterpret_cast(data);\ + } + + switch (messageID) + { + MESSAGE_CASE(MessageIDs::PACKET_DATA, PacketData); + MESSAGE_CASE(MessageIDs::MODIFY_DATA, ModifyData); + default: + break; + } + } + + void MessageManager::ProcessMessage() + { + delete ReceiveMessage(); + } + + bool MessageManager::IsConnected() + { + if (s_Pipe == nullptr) + return false; + + return s_Pipe->IsPipeOpened() || TryConnectToPipe(); + } + + void MessageManager::SetConnectionDelay(uint32_t delay) + { + s_ConnectionDelay = delay; + } + + uint32_t MessageManager::GetConnectionDelay() + { + return s_ConnectionDelay; + } + + void MessageManager::Connect(const std::string& pipeName) + { + if (s_Pipe != nullptr) + delete s_Pipe; + + s_Pipe = new PipeTransfer(pipeName); + TryConnectToPipe(); + } + + void MessageManager::Disconnect() + { + if (s_Pipe == nullptr) + return; + + delete s_Pipe; + } +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/misc/sniffer/MessageManager.h b/cheat-library/src/user/cheat/misc/sniffer/MessageManager.h new file mode 100644 index 0000000..6f9e448 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/MessageManager.h @@ -0,0 +1,116 @@ +#pragma once +#include "messages/MessageHeader.h" +#include "messages/ModifyData.h" +#include "messages/PacketData.h" + +#include + +namespace sniffer +{ + enum MessageIDs : uint32_t + { + NONE = 0, + PACKET_DATA = 1, + MODIFY_DATA = 2 + }; + + class MessageManager + { + public: + template + using CallbackFunction = void(*)(const T& packetData); + + template + inline static void AddHandler(CallbackFunction callback) + { + s_Handlers.push_back(callback); + } + + template + inline static TMessage CreateMessage(uint32_t reqID = 0) + { + static_assert(std::is_base_of::value, "Should be derived of MessageBase."); + + return TMessage(MessageHeader{ GetMessageIDByType(), reqID }); + } + + template + inline static std::optional WaitFor() + { + static_assert(std::is_base_of::value, "Should be derived of MessageBase."); + + if (!IsConnected()) + return {}; + + while (true) + { + auto messagePtr = ReceiveMessage(); + if (GetMessageIDByType() != messagePtr->messageID()) + { + delete messagePtr; + continue; + } + + // Copying message + TMessage message = *reinterpret_cast(messagePtr); + delete messagePtr; + + return message; + } + } + + static void Send(MessageBase& data); + + static MessageBase* ReceiveMessage(); + + static void ProcessMessage(); + + static void SetConnectionDelay(uint32_t delay); + + static uint32_t GetConnectionDelay(); + + static bool IsConnected(); + + static void Connect(const std::string& pipeName); + + static void Disconnect(); + + private: + + inline static PipeTransfer* s_Pipe = nullptr; + + inline static uint32_t s_ConnectionDelay = 5; + inline static std::time_t s_NextTimeToConnect = 0; + + template + static std::vector> s_Handlers; + + static bool TryConnectToPipe() + { + if (s_Pipe == nullptr) + return false; + + std::time_t currTime = std::time(0); + if (s_NextTimeToConnect > currTime) + return false; + + bool result = s_Pipe->Connect(); + if (result) + LOG_INFO("Connected to pipe successfully."); + else + s_NextTimeToConnect = currTime + 5; // delay in 5 sec + return result; + } + + template static uint32_t GetMessageIDByType(); + template<> static uint32_t GetMessageIDByType() { return MessageIDs::PACKET_DATA; } + template<> static uint32_t GetMessageIDByType() { return MessageIDs::MODIFY_DATA; } + + template + static void CallHandlers(const T& message) + { + for (auto& handler : s_Handlers) + handler(message); + } + }; +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.cpp b/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.cpp new file mode 100644 index 0000000..c22545b --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.cpp @@ -0,0 +1,145 @@ +#include "pch-il2cpp.h" +#include "PacketInfo.h" + +#include + +namespace sniffer +{ + PacketInfo::PacketInfo(PacketData packetData) + : m_Data(packetData), + m_JObject(nlohmann::json::parse(packetData.messageJson)), + m_Time(util::GetCurrentTimeMillisec()), + m_DrawBeauty(false) + { + + } + + PacketIOType PacketInfo::type() const + { + return m_Data.ioType; + } + + uint32_t PacketInfo::id() const + { + return m_Data.packetID; + } + + size_t PacketInfo::size() const + { + return m_Data.messageRawData.size(); + } + + int64_t PacketInfo::time() const + { + return m_Time; + } + + std::string PacketInfo::name() const + { + return m_Data.name; + } + + nlohmann::json PacketInfo::object() const + { + return m_JObject; + } + + void DrawPrimitive(const std::string& key, nlohmann::json& jsonPrimitive) + { + if (jsonPrimitive.is_boolean()) + { + bool primitive = jsonPrimitive; + ImGui::Checkbox(key.c_str(), &primitive); + } + else if (jsonPrimitive.is_number_integer() || jsonPrimitive.is_number_unsigned()) + { + int primitive = jsonPrimitive; + ImGui::InputInt(key.c_str(), &primitive); + } + else if (jsonPrimitive.is_number_float()) + { + float primitive = jsonPrimitive; + ImGui::InputFloat(key.c_str(), &primitive); + } + else if (jsonPrimitive.is_string()) + { + std::string primitive = jsonPrimitive; + ImGui::InputText(key.c_str(), &primitive); + } + else if (jsonPrimitive.is_null()) + { + ImGui::Text("%s: ", key.c_str()); + } + } + + void DrawObject(const std::string& key, nlohmann::json& jsonObject); + + void DrawArray(const std::string& key, nlohmann::json& jsonArray) + { + ImGui::PushID(key.c_str()); + + if (ImGui::TreeNode(key.c_str())) + { + int i = 0; + for (auto& el : jsonArray) + { + DrawObject(std::to_string(i), el); + i++; + } + ImGui::TreePop(); + } + + ImGui::PopID(); + } + + void DrawObject(const std::string& key, nlohmann::json& jsonObject) + { + if (jsonObject.is_array()) + DrawArray(key, jsonObject); + else if (jsonObject.is_primitive()) + DrawPrimitive(key, jsonObject); + else + { + ImGui::PushID(key.c_str()); + + if (ImGui::TreeNode(key.c_str())) + { + for (auto& el : jsonObject.items()) + DrawObject(el.key(), el.value()); + + ImGui::TreePop(); + } + + ImGui::PopID(); + } + } + + void PacketInfo::Draw() + { + ImGui::PushID(this); + + if (m_Header.empty()) + m_Header = fmt::format("[{}] {} | {}. Size: {}", magic_enum::enum_name(type()), id(), name(), size()); + + if (ImGui::TreeNode(m_Header.c_str())) + { + if (ImGui::Checkbox("## Beauty", &m_DrawBeauty) && m_DrawBeauty && m_JsonMessageBeauty.empty()) + { + m_JsonMessageBeauty = m_JObject.dump(2); + } + ImGui::SameLine(); + + if (m_DrawBeauty) + ImGui::InputTextMultiline("JSON Message", &m_JsonMessageBeauty); + else + ImGui::InputText("JSON Message", &m_Data.messageJson); + + + DrawObject("Data", m_JObject); + ImGui::TreePop(); + } + + ImGui::PopID(); + } +} + diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.h b/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.h new file mode 100644 index 0000000..0434814 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/PacketInfo.h @@ -0,0 +1,35 @@ +#pragma once + +#include + +#include "messages/PacketData.h" + +namespace sniffer +{ + class PacketInfo + { + public: + PacketInfo(PacketData packetData); + + PacketIOType type() const; + uint32_t id() const; + size_t size() const; + int64_t time() const; + std::string name() const; + nlohmann::json object() const; + + void Draw(); + + private: + nlohmann::json m_JObject; + int64_t m_Time; + + bool m_DrawBeauty; + std::string m_JsonMessageBeauty; + std::string m_Header; + + PacketData m_Data; + }; +} + + diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketParser.cpp b/cheat-library/src/user/cheat/misc/sniffer/PacketParser.cpp new file mode 100644 index 0000000..e5b8a78 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/PacketParser.cpp @@ -0,0 +1,240 @@ +#include "pch-il2cpp.h" +#include "PacketParser.h" + +#include "MessageManager.h" +namespace sniffer +{ + + PacketParser::PacketParser(const std::string& protoDirPath, const std::string& protoIDPath) + : m_ProtoManager() + { + m_ProtoManager.Load(protoIDPath, protoDirPath); + UpdateUnionPacketIDs(); + } + + void PacketParser::SetProtoDir(const std::string& protoDir) + { + m_ProtoManager.LoadProtoDir(protoDir); + UpdateUnionPacketIDs(); + } + + void PacketParser::SetProtoIDPath(const std::string& protoIDPath) + { + m_ProtoManager.LoadProtoDir(protoIDPath); + UpdateUnionPacketIDs(); + } + + bool PacketParser::Parse(PacketData& data) + { + auto name = m_ProtoManager.GetName(data.packetID); + if (!name) + return false; + + auto head = m_ProtoManager.GetJson("PacketHead", data.headRawData); + if (!head) + return false; + + auto message = m_ProtoManager.GetJson(data.packetID, data.messageRawData); + if (!message) + return false; + + data.name = *name; + data.headJson = *head; + data.messageJson = *message; + return true; + } + + bool PacketParser::IsUnionPacket(const PacketData& data) + { + return m_UnionPacketIds.count(data.packetID) > 0; + } + + std::vector PacketParser::ParseUnionPacket(const PacketData& data) + { + if (!IsUnionPacket(data)) + return {}; + + auto parseFunction = m_UnionPacketIds[data.packetID]; + return (this->*parseFunction)(data); + } + + PacketData PacketParser::CreateNestedPacket(const PacketData& parent, std::string bodyEncoded, int16_t packetID) + { + PacketData nestedPacketData = MessageManager::CreateMessage(); + nestedPacketData.headRawData = parent.headRawData; + nestedPacketData.headJson = parent.headJson; + nestedPacketData.messageRawData = util::base64_decode(bodyEncoded); + nestedPacketData.packetID = packetID; + nestedPacketData.valid = true; + nestedPacketData.ioType = parent.ioType; + nestedPacketData.parentID = parent.sequenceID(); + + if (packetID != 0) + Parse(nestedPacketData); + + return nestedPacketData; + } + + std::vector PacketParser::ParseUnionCmdNotify(const PacketData& data) + { + nlohmann::json cmdListObject = nlohmann::json::parse(data.messageJson); + + std::vector packets; + for (auto& cmd : cmdListObject["cmdList"]) + { + auto nestedPacketData = CreateNestedPacket(data, cmd["body"], cmd["messageId"]); + packets.push_back(nestedPacketData); + + if (IsUnionPacket(nestedPacketData)) + { + auto nestedNestedPackets = ParseUnionPacket(nestedPacketData); + packets.insert(packets.end(), nestedNestedPackets.begin(), nestedNestedPackets.end()); + } + continue; + } + return packets; + } + + std::optional PacketParser::ParseAbilityInvokeEntry(const PacketData& parent, const nlohmann::json& entry) + { + static std::map abilityArgument2Proto = + { + { "ABILITY_META_MODIFIER_CHANGE", "AbilityMetaModifierChange" }, + { "ABILITY_META_COMMAND_MODIFIER_CHANGE_REQUEST", "AbilityMetaCommandModifierChangeRequest" }, + { "ABILITY_META_SPECIAL_FLOAT_ARGUMENT", "AbilityMetaSpecialFloatArgument" }, + { "ABILITY_META_OVERRIDE_PARAM", "AbilityMetaOverrideParam" }, + { "ABILITY_META_CLEAR_OVERRIDE_PARAM", "AbilityMetaClearOverrideParam" }, + { "ABILITY_META_REINIT_OVERRIDEMAP", "AbilityMetaReinitOverridemap" }, + { "ABILITY_META_GLOBAL_FLOAT_VALUE", "AbilityMetaGlobalFloatValue" }, + { "ABILITY_META_CLEAR_GLOBAL_FLOAT_VALUE", "AbilityMetaClearGlobalFloatValue" }, + { "ABILITY_META_ABILITY_ELEMENT_STRENGTH", "AbilityMetaAbilityElementStrength" }, + { "ABILITY_META_ADD_OR_GET_ABILITY_AND_TRIGGER", "AbilityMetaAddOrGetAbilityAndTrigger" }, + { "ABILITY_META_SET_KILLED_SETATE", "AbilityMetaSetKilledSetate" }, + { "ABILITY_META_SET_ABILITY_TRIGGER", "AbilityMetaSetAbilityTrigger" }, + { "ABILITY_META_ADD_NEW_ABILITY", "AbilityMetaAddNewAbility" }, + { "ABILITY_META_REMOVE_ABILITY", "AbilityMetaRemoveAbility" }, + { "ABILITY_META_SET_MODIFIER_APPLY_ENTITY", "AbilityMetaSetModifierApplyEntity" }, + { "ABILITY_META_MODIFIER_DURABILITY_CHANGE", "AbilityMetaModifierDurabilityChange" }, + { "ABILITY_META_ELEMENT_REACTION_VISUAL", "AbilityMetaElementReactionVisual" }, + { "ABILITY_META_SET_POSE_PARAMETER", "AbilityMetaSetPoseParameter" }, + { "ABILITY_META_UPDATE_BASE_REACTION_DAMAGE", "AbilityMetaUpdateBaseReactionDamage" }, + { "ABILITY_META_TRIGGER_ELEMENT_REACTION", "AbilityMetaTriggerElementReaction" }, + { "ABILITY_META_LOSE_HP", "AbilityMetaLoseHp" }, + { "ABILITY_ACTION_TRIGGER_ABILITY", "AbilityActionTriggerAbility" }, + { "ABILITY_ACTION_SET_CRASH_DAMAGE", "AbilityActionSetCrashDamage" }, + { "ABILITY_ACTION_EFFECT", "AbilityActionEffect" }, + { "ABILITY_ACTION_SUMMON", "AbilityActionSummon" }, + { "ABILITY_ACTION_BLINK", "AbilityActionBlink" }, + { "ABILITY_ACTION_CREATE_GADGET", "AbilityActionCreateGadget" }, + { "ABILITY_ACTION_APPLY_LEVEL_MODIFIER", "AbilityActionApplyLevelModifier" }, + { "ABILITY_ACTION_GENERATE_ELEM_BALL", "AbilityActionGenerateElemBall" }, + { "ABILITY_ACTION_SET_RANDOM_OVERRIDE_MAP_VALUE", "AbilityActionSetRandomOverrideMapValue" }, + { "ABILITY_ACTION_SERVER_MONSTER_LOG", "AbilityActionServerMonsterLog" }, + { "ABILITY_ACTION_CREATE_TILE", "AbilityActionCreateTile" }, + { "ABILITY_ACTION_DESTROY_TILE", "AbilityActionDestroyTile" }, + { "ABILITY_ACTION_FIRE_AFTER_IMAGE", "AbilityActionFireAfterImage" }, + { "ABILITY_MIXIN_AVATAR_STEER_BY_CAMERA", "AbilityMixinAvatarSteerByCamera" }, + { "ABILITY_MIXIN_MONSTER_DEFEND", "AbilityMixinMonsterDefend" }, + { "ABILITY_MIXIN_WIND_ZONE", "AbilityMixinWindZone" }, + { "ABILITY_MIXIN_COST_STAMINA", "AbilityMixinCostStamina" }, + { "ABILITY_MIXIN_ELITE_SHIELD", "AbilityMixinEliteShield" }, + { "ABILITY_MIXIN_ELEMENT_SHIELD", "AbilityMixinElementShield" }, + { "ABILITY_MIXIN_GLOBAL_SHIELD", "AbilityMixinGlobalShield" }, + { "ABILITY_MIXIN_SHIELD_BAR", "AbilityMixinShieldBar" }, + { "ABILITY_MIXIN_WIND_SEED_SPAWNER", "AbilityMixinWindSeedSpawner" }, + { "ABILITY_MIXIN_DO_ACTION_BY_ELEMENT_REACTION", "AbilityMixinDoActionByElementReaction" }, + { "ABILITY_MIXIN_FIELD_ENTITY_COUNT_CHANGE", "AbilityMixinFieldEntityCountChange" }, + { "ABILITY_MIXIN_SCENE_PROP_SYNC", "AbilityMixinScenePropSync" }, + { "ABILITY_MIXIN_WIDGET_MP_SUPPORT", "AbilityMixinWidgetMpSupport" } + }; + + if (entry.count("abilityData") == 0 || entry.count("argumentType") == 0) + return {}; + + std::string argumentType = entry["argumentType"]; + if (abilityArgument2Proto.count(argumentType) == 0) + return {}; + + PacketData nestedPacketData = CreateNestedPacket(parent, entry["abilityData"]); + nestedPacketData.name = abilityArgument2Proto[argumentType]; + + auto jsonData = m_ProtoManager.GetJson(nestedPacketData.name, nestedPacketData.messageRawData); + nestedPacketData.messageJson = jsonData ? *jsonData : "{}"; + return nestedPacketData; + } + + std::vector PacketParser::ParseAbilityInvocationsNotify(const PacketData& data) + { + auto combatJsonObject = nlohmann::json::parse(data.messageJson); + std::vector packets = {}; + for (auto& invokeEntry : combatJsonObject["invokes"]) + { + auto abilityPacketData = ParseAbilityInvokeEntry(data, invokeEntry); + if (abilityPacketData) + packets.push_back(*abilityPacketData); + } + return packets; + } + + std::optional PacketParser::ParseCombatInvokeEntry(const PacketData& parent, const nlohmann::json& entry) + { + static std::map combateTypeProtos = { + { "ENTITY_MOVE", "EntityMoveInfo" }, + { "COMBAT_EVT_BEING_HIT", "EvtBeingHitInfo" }, + { "COMBAT_ANIMATOR_STATE_CHANGED", "EvtAnimatorStateChangedInfo" }, + { "COMBAT_FACE_TO_DIR", "EvtFaceToDirInfo" }, + { "COMBAT_SET_ATTACK_TARGET", "EvtSetAttackTargetInfo" }, + { "COMBAT_RUSH_MOVE", "EvtRushMoveInfo" }, + { "COMBAT_ANIMATOR_PARAMETER_CHANGED", "EvtAnimatorParameterInfo" }, + { "SYNC_ENTITY_POSITION", "EvtSyncEntityPositionInfo" }, + { "COMBAT_STEER_MOTION_INFO", "EvtCombatSteerMotionInfo" }, + { "COMBAT_FORCE_SET_POSITION_INFO", "EvtCombatForceSetPosInfo" }, + { "COMBAT_FORCE_SET_POS_INFO", "EvtCombatForceSetPosInfo" }, + { "COMBAT_COMPENSATE_POS_DIFF", "EvtCompensatePosDiffInfo" }, + { "COMBAT_MONSTER_DO_BLINK", "EvtMonsterDoBlink" }, + { "COMBAT_FIXED_RUSH_MOVE", "EvtFixedRushMove" }, + { "COMBAT_SYNC_TRANSFORM", "EvtSyncTransform" }, + { "COMBAT_LIGHT_CORE_MOVE", "EvtLightCoreMove" } + }; + + if (!entry["argumentType"].is_string()) + return {}; + + std::string argumentType = entry["argumentType"]; + + if (combateTypeProtos.count(argumentType) == 0) + { + LOG_WARNING("Failed to find argument type %s", argumentType.c_str()); + return {}; + } + + PacketData nestedPacketData = CreateNestedPacket(parent, entry["combatData"]); + nestedPacketData.name = combateTypeProtos[argumentType]; + + auto jsonData = m_ProtoManager.GetJson(nestedPacketData.name, nestedPacketData.messageRawData); + nestedPacketData.messageJson = jsonData ? *jsonData : "{}"; + return nestedPacketData; + } + + std::vector PacketParser::ParseCombatInvocationsNotify(const PacketData& data) + { + auto combatJsonObject = nlohmann::json::parse(data.messageJson); + std::vector packets = {}; + for (auto& invokeEntry : combatJsonObject["invokeList"]) + { + auto combatPacketData = ParseCombatInvokeEntry(data, invokeEntry); + if (combatPacketData) + packets.push_back(*combatPacketData); + } + return packets; + } + + void PacketParser::UpdateUnionPacketIDs() + { + m_UnionPacketIds.clear(); + for (auto& [unionPacketName, parserFunc] : s_UnionPacketNames) + { + m_UnionPacketIds[m_ProtoManager.GetId(unionPacketName)] = parserFunc; + } + } +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketParser.h b/cheat-library/src/user/cheat/misc/sniffer/PacketParser.h new file mode 100644 index 0000000..700a623 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/PacketParser.h @@ -0,0 +1,49 @@ +#pragma once +#include "messages/PacketData.h" +#include "ProtoManager.h" + +namespace sniffer +{ + class PacketParser + { + public: + PacketParser(const std::string& protoDirPath, const std::string& protoIDPath); + + void SetProtoDir(const std::string& protoDir); + void SetProtoIDPath(const std::string& protoIDPath); + + bool Parse(PacketData& data); + bool IsUnionPacket(const PacketData& data); + std::vector ParseUnionPacket(const PacketData& data); + + private: + PacketData CreateNestedPacket(const PacketData& parent, std::string bodyEncoded, int16_t packetID = 0); + std::vector ParseUnionCmdNotify(const PacketData& data); + + std::optional ParseAbilityInvokeEntry(const PacketData& parent, const nlohmann::json& entry); + std::vector ParseAbilityInvocationsNotify(const PacketData& data); + + std::optional ParseCombatInvokeEntry(const PacketData& parent, const nlohmann::json& entry); + std::vector ParseCombatInvocationsNotify(const PacketData& data); + + using UnionPacketParserFunc = std::vector(PacketParser::*)(const PacketData& data); + inline static std::map s_UnionPacketNames = + { + { "UnionCmdNotify", &ParseUnionCmdNotify}, + + { "EntityAbilityInvokeEntry", &ParseAbilityInvocationsNotify }, + { "ClientAbilityInitFinishNotify", &ParseAbilityInvocationsNotify }, + { "ClientAbilityChangeNotify", &ParseAbilityInvocationsNotify }, + { "AbilityInvocationsNotify", &ParseAbilityInvocationsNotify }, + + { "CombatInvocationsNotify", &ParseCombatInvocationsNotify} + }; + + sniffer::ProtoManager m_ProtoManager; + std::map m_UnionPacketIds; + + void UpdateUnionPacketIDs(); + }; +} + + diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.cpp b/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.cpp new file mode 100644 index 0000000..3c40038 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.cpp @@ -0,0 +1,261 @@ +#include "pch-il2cpp.h" +#include "PacketSniffer.h" + +#ifdef _PACKET_SNIFFER +#include "SnifferWindow.h" +#endif + +#include +#include + +namespace cheat::feature +{ + PacketSniffer::PacketSniffer() : Feature(), + NF(m_CapturingEnabled, "Capturing", "PacketSniffer", false), + NF(m_ManipulationEnabled, "Manipulation", "PacketSniffer", false), + NF(m_PipeEnabled, "Pipe", "PacketSniffer", false) + +#ifdef _PACKET_SNIFFER + , NF(m_ProtoDirPath, "Proto Dir Path", "PacketSniffer", ""), + NF(m_ProtoIDFilePath, "Proto ID File Path", "PacketSniffer", ""), + m_PacketParser(m_ProtoDirPath, m_ProtoIDFilePath) +#endif + + { + sniffer::MessageManager::Connect("genshin_packet_pipe"); + + HookManager::install(app::KcpNative_kcp_client_send_packet, KcpNative_kcp_client_send_packet_Hook); + HookManager::install(app::KcpClient_TryDequeueEvent, KcpClient_TryDequeueEvent_Hook); + } + + const FeatureGUIInfo& PacketSniffer::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "Packet Sniffer", "Settings", true }; + return info; + } + + bool PacketSniffer::OnCapturingChanged() + { +#ifdef _PACKET_SNIFFER + if (!m_CapturingEnabled) + return true; + + if (!m_ProtoDirPath.value().empty() && !m_ProtoIDFilePath.value().empty()) + { + m_PacketParser.SetProtoIDPath(m_ProtoIDFilePath); + m_PacketParser.SetProtoDir(m_ProtoDirPath); + return true; + } + + return false; +#endif + + return true; + } + + void PacketSniffer::DrawMain() + { + + //ImGui::Text("Dev: for working needs server for named pipe 'genshin_packet_pipe'.\nCheck 'packet-handler' project like example."); + if (ConfigWidget(m_CapturingEnabled, "Enabling capturing of packet info and sending to pipe, if it exists.")) + { + bool result = OnCapturingChanged(); + if (!result) + { + m_CapturingEnabled = false; + ImGui::OpenPopup("Error"); + } + } + + if (ImGui::BeginPopup("Error")) + { + ImGui::Text("Please fill 'Proto Dir Path' and 'Proto ID File Path' before enabling capture."); + ImGui::EndPopup(); + } + +#ifdef _PACKET_SNIFFER + auto& window = sniffer::SnifferWindow::GetInstance(); + ConfigWidget(window.m_Show, "Show capturing window."); + + ConfigWidget(m_PipeEnabled, "Enable sending of packet data to pipe with name 'genshin_packet_pipe'.\n"\ + "This feature can be used with external monitoring tools."); + //ConfigWidget(m_ManipulationEnabled, "Enabling manipulation packet feature, that allows to replace, block incoming/outcoming packets." \ + // "\nThis feature often needs, to read-write pipe operation, so can decrease network bandwidth."); + + if (m_CapturingEnabled) + { + ImGui::Text("These parameters can only be changed when 'Capturing' is disabled."); + ImGui::BeginDisabled(); + } + + ConfigWidget(m_ProtoDirPath, "Path to directory containing Genshin .proto files."); + ConfigWidget(m_ProtoIDFilePath, "Path to JSON file containing packet id->packet name info."); + + if (m_CapturingEnabled) + ImGui::EndDisabled(); +#else + ImGui::Text("When capture is enabled, raw packet data will be send to named pipe: 'genshin_packet_pipe'."); + ImGui::Text("'Raw' means that you should to parse protobuf structure by yourself."); +#endif + } + + void PacketSniffer::DrawExternal() + { +#ifdef _PACKET_SNIFFER + auto& window = sniffer::SnifferWindow::GetInstance(); + if (window.m_Show) + window.Draw(); +#endif + } + + PacketSniffer& PacketSniffer::GetInstance() + { + static PacketSniffer instance; + return instance; + } + + bool ProcessModifiedData(app::KcpPacket_1* packet) + { + auto modifyData = sniffer::MessageManager::WaitFor(); + if (!modifyData) + return false; + + switch (modifyData->modifyType) + { + case PacketModifyType::Blocked: + return true; + case PacketModifyType::Modified: + { + auto dataSize = modifyData->modifiedData.size(); + packet->data = new byte[dataSize](); + memcpy_s(packet->data, dataSize, modifyData->modifiedData.data(), dataSize); + packet->dataLen = dataSize; + } + break; + case PacketModifyType::Unchanged: + default: + break; + } + return false; + } + + bool PacketSniffer::OnPacketIO(app::KcpPacket_1* packet, PacketIOType type) + { + if (!m_CapturingEnabled) + return true; + + PacketData packetData = ParseRawPacketData((char*)packet->data, packet->dataLen); + if (!packetData.valid) + return true; + + packetData.ioType = type; + packetData.blockModeEnabled = m_ManipulationEnabled; + +#ifdef _PACKET_SNIFFER + bool parsed = m_PacketParser.Parse(packetData); + if (!parsed) + return true; + + sniffer::SnifferWindow::GetInstance().OnPacketIO({packetData}); +#endif + + sniffer::MessageManager::Send(packetData); + + bool canceled = m_ManipulationEnabled && ProcessModifiedData(packet); + +#ifdef _PACKET_SNIFFER + if (m_PacketParser.IsUnionPacket(packetData)) + { + for (auto& nestedPacketData : m_PacketParser.ParseUnionPacket(packetData)) + { + sniffer::SnifferWindow::GetInstance().OnPacketIO({ nestedPacketData }); + sniffer::MessageManager::Send(nestedPacketData); + } + } +#endif + + return !canceled; + } + + char* PacketSniffer::EncryptXor(void* content, uint32_t length) + { + app::Byte__Array* byteArray = (app::Byte__Array*)new char[length + 0x20]; + byteArray->max_length = length; + memcpy_s(byteArray->vector, length, content, length); + + app::Packet_XorEncrypt(nullptr, &byteArray, length, nullptr); + + auto result = new char[length]; + memcpy_s(result, length, byteArray->vector, length); + delete[] byteArray; + + return (char*)result; + } + + PacketData PacketSniffer::ParseRawPacketData(char* encryptedData, uint32_t length) + { + PacketData packetData = sniffer::MessageManager::CreateMessage(); + // Decrypting packetData + auto data = EncryptXor(encryptedData, length); + + uint16_t magicHead = util::ReadMapped(data, 0); + + if (magicHead != 0x4567) + { + LOG_ERROR("Head magic value for packet is not valid."); + return packetData; + } + + uint16_t magicEnd = util::ReadMapped(data, length - 2); + if (magicEnd != 0x89AB) + { + LOG_ERROR("End magic value for packet is not valid."); + return packetData; + } + + uint16_t messageId = util::ReadMapped(data, 2); + uint16_t headSize = util::ReadMapped(data, 4); + uint32_t contenSize = util::ReadMapped(data, 6); + + if (length < headSize + contenSize + 12) + { + LOG_ERROR("Packet size is not valid."); + return packetData; + } + + packetData.valid = true; + packetData.packetID = messageId; + + packetData.headRawData = std::vector((size_t)headSize, 0); + memcpy_s(packetData.headRawData.data(), headSize, data + 10, headSize); + + packetData.messageRawData = std::vector((size_t)contenSize, 0); + memcpy_s(packetData.messageRawData.data(), contenSize, data + 10 + headSize, contenSize); + + delete[] data; + + return packetData; + } + + bool PacketSniffer::KcpClient_TryDequeueEvent_Hook(void* __this, app::ClientKcpEvent* evt, MethodInfo* method) + { + auto result = CALL_ORIGIN(KcpClient_TryDequeueEvent_Hook, __this, evt, method); + + if (!result || evt->_evt.type != app::KcpEventType__Enum::EventRecvMsg || + evt->_evt.packet == nullptr || evt->_evt.packet->data == nullptr) + return result; + + auto& sniffer = GetInstance(); + return sniffer.OnPacketIO(evt->_evt.packet, PacketIOType::Receive); + } + + int32_t PacketSniffer::KcpNative_kcp_client_send_packet_Hook(void* __this, void* kcp_client, app::KcpPacket_1* packet, MethodInfo* method) + { + auto& sniffer = GetInstance(); + if (!sniffer.OnPacketIO(packet, PacketIOType::Send)) + return 0; + + return CALL_ORIGIN(KcpNative_kcp_client_send_packet_Hook, __this, kcp_client, packet, method); + } +} + diff --git a/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.h b/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.h new file mode 100644 index 0000000..344452d --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/PacketSniffer.h @@ -0,0 +1,57 @@ +// ReSharper disable All +#pragma once + +#include + +#include +#include + +#include +#include "messages/PacketData.h" +#include "messages/ModifyData.h" + +#include "MessageManager.h" + +#ifdef _PACKET_SNIFFER +#include "PacketParser.h" +#include "PacketInfo.h" +#endif + +namespace cheat::feature +{ + + class PacketSniffer : public Feature + { + public: + config::Field m_CapturingEnabled; + config::Field m_ManipulationEnabled; + config::Field m_PipeEnabled; + +#ifdef _PACKET_SNIFFER + config::Field m_ProtoDirPath; + config::Field m_ProtoIDFilePath; +#endif + + static PacketSniffer& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + void DrawExternal() final; + + private: +#ifdef _PACKET_SNIFFER + sniffer::PacketParser m_PacketParser; +#endif + PacketSniffer(); + PacketData ParseRawPacketData(char* encryptedData, uint32_t length); + bool OnCapturingChanged(); + + static char* EncryptXor(void* content, uint32_t length); + static bool KcpClient_TryDequeueEvent_Hook(void* __this, app::ClientKcpEvent* evt, MethodInfo* method); + static int32_t KcpNative_kcp_client_send_packet_Hook(void* __this, void* kcp_client, app::KcpPacket_1* packet, MethodInfo* method); + + bool OnPacketIO(app::KcpPacket_1* packet, PacketIOType type); + }; +} + diff --git a/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.cpp b/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.cpp new file mode 100644 index 0000000..b84dfd6 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.cpp @@ -0,0 +1,125 @@ +#include "pch-il2cpp.h" +#include "ProtoManager.h" + +#include + +namespace sniffer +{ + + static class ErrorCollector : public google::protobuf::compiler::MultiFileErrorCollector + { + // Inherited via MultiFileErrorCollector + virtual void AddError(const std::string& filename, int line, int column, const std::string& message) override + { + LOG_ERROR("Error while parsing %s file, line %d, column %d, error: %s\n", filename.c_str(), line, column, message.c_str()); + } + }; + + void ProtoManager::LoadProtoDir(const std::string& dirPath) + { + const std::lock_guard lock(_mutex); + + diskTree = std::shared_ptr(new google::protobuf::compiler::DiskSourceTree()); + if (!dirPath.empty()) + diskTree->MapPath("", dirPath); + + auto errorCollector = new ErrorCollector(); + importer = std::shared_ptr(new google::protobuf::compiler::Importer(diskTree.get(), errorCollector)); + factory = std::shared_ptr(new google::protobuf::DynamicMessageFactory(importer->pool())); + } + + void ProtoManager::LoadIDFile(const std::string& filepath) + { + if (filepath.empty()) + return; + + const std::lock_guard lock(_mutex); + + nameMap.clear(); + + std::ifstream file; + file.open(filepath); + if (!file.is_open()) + { + LOG_WARNING("Failed to load proto id file."); + return; + } + + auto content = nlohmann::json::parse(file); + for (nlohmann::json::iterator it = content.begin(); it != content.end(); ++it) + { + auto id = std::stoi(it.key().c_str()); + nameMap[id] = it.value(); + idMap[it.value()] = id; + } + file.close(); + } + + google::protobuf::Message* ProtoManager::ParseMessage(const std::string& name, std::vector data) + { + const std::lock_guard lock(_mutex); + + auto fileDescriptor = importer->Import(name + ".proto"); + if (fileDescriptor == nullptr || fileDescriptor->message_type_count() == 0) + return nullptr; + + auto message = factory->GetPrototype(fileDescriptor->message_type(0))->New(); + + std::string stringData((char*)data.data(), data.size()); + message->ParseFromString(stringData); + return message; + } + + ProtoManager::ProtoManager() {} + + void ProtoManager::Load(const std::string& idFilePath, const std::string& protoDir) + { + LoadIDFile(idFilePath); + LoadProtoDir(protoDir); + } + + std::optional ProtoManager::GetJson(const std::string& name, std::vector& data) + { + auto message = ParseMessage(name, data); + if (message == nullptr) + { + LOG_ERROR("Failed to parse message with name %s.", name.c_str()); + return {}; + } + + std::string jsonMessage = {}; + google::protobuf::util::MessageToJsonString(*message, &jsonMessage); + + delete message; + + return jsonMessage; + } + + std::optional ProtoManager::GetJson(uint32_t id, std::vector& data) + { + auto name = GetName(id); + if (!name) + return {}; + + return GetJson(*name, data); + } + + std::optional ProtoManager::GetName(uint32_t id) + { + const std::lock_guard lock(_mutex); + + if (nameMap.count(id) == 0) + { + LOG_WARNING("Failed to find proto with id %u", id); + return {}; + } + + return nameMap[id]; + } + + uint16_t ProtoManager::GetId(const std::string& name) + { + return idMap.count(name) == 0 ? 0 : idMap[name]; + } + +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.h b/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.h new file mode 100644 index 0000000..0809acf --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/ProtoManager.h @@ -0,0 +1,41 @@ +#pragma once + +#include +#include + +#include +#include +#include +#include + +namespace sniffer +{ + class ProtoManager + { + public: + ProtoManager(); + + std::optional GetJson(uint32_t id, std::vector& data); + std::optional GetJson(const std::string& name, std::vector& byte); + std::optional GetName(uint32_t id); + uint16_t GetId(const std::string& name); + + void Load(const std::string& idFilePath, const std::string& protoDir); + void LoadIDFile(const std::string& filepath); + void LoadProtoDir(const std::string& dirPath); + + private: + std::mutex _mutex; + std::shared_ptr importer; + std::shared_ptr factory; + std::shared_ptr diskTree; + + std::map nameMap; + std::map idMap; + + google::protobuf::Message* ParseMessage(const std::string& name, std::vector data); + + }; +} + + diff --git a/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.cpp b/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.cpp new file mode 100644 index 0000000..08953a3 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.cpp @@ -0,0 +1,546 @@ +#include "pch-il2cpp.h" +#include "SnifferWindow.h" +#include +#include +#include + +namespace sniffer +{ + SnifferWindow& SnifferWindow::GetInstance() + { + static SnifferWindow instance; + return instance; + } + + static auto nameCompare = [](const PacketInfo& a, const PacketInfo& b) { return a.name() < b.name(); }; + static auto sizeCompare = [](const PacketInfo& a, const PacketInfo& b) { return a.size() < b.size(); }; + static auto idCompare = [](const PacketInfo& a, const PacketInfo& b) { return a.id() < b.id(); }; + static auto typeCompare = [](const PacketInfo& a, const PacketInfo& b) { return a.type() < b.type(); }; + static auto timeCompare = [](const PacketInfo& a, const PacketInfo& b) { return a.time() < b.time(); }; + + void SnifferWindow::OnPacketIO(const PacketInfo& info) + { + const std::lock_guard lock(m_CapturePacketLock); + + if (m_SortValue == SortValue::Time) + { + m_CapturedPackets.push_back(info); + if (m_FilterGroup.Execute(info)) + m_CachedPackets.push_back(info); + return; + } + + switch (m_SortValue) + { + case sniffer::SnifferWindow::SortValue::Name: + m_CapturedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, nameCompare), info); + if (m_FilterGroup.Execute(info)) + m_CachedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, nameCompare), info); + break; + case sniffer::SnifferWindow::SortValue::Size: + m_CapturedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, sizeCompare), info); + if (m_FilterGroup.Execute(info)) + m_CachedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, nameCompare), info); + break; + case sniffer::SnifferWindow::SortValue::Id: + m_CapturedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, idCompare), info); + if (m_FilterGroup.Execute(info)) + m_CachedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, nameCompare), info); + break; + case sniffer::SnifferWindow::SortValue::Type: + m_CapturedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, typeCompare), info); + if (m_FilterGroup.Execute(info)) + m_CachedPackets.insert(std::lower_bound(m_CapturedPackets.begin(), m_CapturedPackets.end(), info, nameCompare), info); + break; + default: + break; + } + } + +#undef min +#undef max + + void SnifferWindow::Draw() + { + + const std::lock_guard lock(m_CapturePacketLock); + + bool showPrev = m_Show; + bool windowShowed = ImGui::Begin("Packet sniffer", m_Show); + + if (showPrev != m_Show) + m_Show.FireChanged(); + + if (!windowShowed) + { + ImGui::End(); + return; + } + + if (ComboEnum("## SortValue", &m_SortValue)) + { + switch (m_SortValue) + { + case sniffer::SnifferWindow::SortValue::Name: + m_CapturedPackets.sort(nameCompare); + m_CachedPackets.sort(nameCompare); + break; + case sniffer::SnifferWindow::SortValue::Size: + m_CapturedPackets.sort(sizeCompare); + m_CachedPackets.sort(sizeCompare); + break; + case sniffer::SnifferWindow::SortValue::Id: + m_CapturedPackets.sort(idCompare); + m_CachedPackets.sort(idCompare); + break; + case sniffer::SnifferWindow::SortValue::Type: + m_CapturedPackets.sort(typeCompare); + m_CachedPackets.sort(typeCompare); + break; + case sniffer::SnifferWindow::SortValue::Time: + m_CapturedPackets.sort(timeCompare); + m_CachedPackets.sort(timeCompare); + break; + default: + break; + } + } + ImGui::SameLine(); + ComboEnum("Sort ## SortType", &m_SortType); + + m_FilterGroup.Draw(false); + + if (ImGui::Button("Apply filter")) + { + m_CachedPackets.clear(); + for (auto& info : m_CapturedPackets) + { + if (m_FilterGroup.Execute(info)) + { + m_CachedPackets.push_back(info); + } + } + } + ImGui::SameLine(); + + if (ImGui::Button("Clear history")) + { + m_CapturedPackets.clear(); + m_CachedPackets.clear(); + } + + ImGui::BeginChild("Packets"); + + if (m_SortType == SortType::Asc) + { + for (auto& info : m_CachedPackets) + info.Draw(); + } + else + { + for (auto it = m_CachedPackets.rbegin(); it != m_CachedPackets.rend(); it++) + it->Draw(); + } + + ImGui::EndChild(); + + ImGui::End(); + } + + SnifferWindow::SnifferWindow() : + NF(m_Show, "Show capturing window", "SnifferWindow", false), + m_SortType(SortType::Desc), + m_SortValue(SortValue::Time) + { + + } + + bool Filter::Draw(bool canBeRemoved) +{ + ImGui::PushID(this); + ComboEnum("## ObjectType", &m_ObjectType); ImGui::SameLine(); + ComboEnum("## CompareType", &m_CompareType); ImGui::SameLine(); + + if (m_ObjectType != ObjectType::AnyValue) + { + ImGui::SetNextItemWidth(200); + ImGui::InputText("## Key", &m_KeyPattern); ImGui::SameLine(); + } + + if (m_ObjectType == ObjectType::AnyValue || m_ObjectType == ObjectType::KeyValue) + { + ImGui::SetNextItemWidth(200); + ImGui::InputText("## Value", &m_ObjectPattern); ImGui::SameLine(); + } + + bool removed = false; + if (canBeRemoved && ImGui::Button("Remove")) + removed = true; + + ImGui::PopID(); + return removed; + } + + static std::vector StringSplit(const std::string& delimiter, const std::string& content) + { + std::vector tokens; + size_t pos = 0; + size_t prevPos = 0; + std::string token; + while ((pos = content.find(delimiter, prevPos)) != std::string::npos) { + token = content.substr(prevPos, pos - prevPos); + tokens.push_back(token); + prevPos = pos + delimiter.length(); + } + tokens.push_back(content.substr(prevPos)); + return tokens; + } + + static bool ApplyCompareString(const std::string& value, const std::string& pattern, Filter::CompareType compare) + { + std::string lowerValue = value; + std::transform(lowerValue.begin(), lowerValue.end(), lowerValue.begin(), + [](unsigned char c) { return std::tolower(c); }); + + std::string lowerPattern = pattern; + std::transform(lowerPattern.begin(), lowerPattern.end(), lowerPattern.begin(), + [](unsigned char c) { return std::tolower(c); }); + + switch (compare) + { + case sniffer::Filter::CompareType::Regex: + { + std::regex _regex(lowerPattern.c_str()); + return std::regex_match(lowerValue, _regex); + } + case sniffer::Filter::CompareType::Equal: + return lowerValue == lowerPattern; + case sniffer::Filter::CompareType::Contains: + return lowerValue.find(lowerPattern) != std::string::npos; + default: + return false; + } + } + + template + static bool ApplyCompareAnyType(const nlohmann::json& object, const T& value, Filter::CompareType compare) + { + switch (compare) + { + case sniffer::Filter::CompareType::Equal: + return object == value; + case sniffer::Filter::CompareType::Less: + return object < value; + case sniffer::Filter::CompareType::LessEqual: + return object <= value; + case sniffer::Filter::CompareType::More: + return object > value; + case sniffer::Filter::CompareType::MoreEqual: + return object >= value; + default: + return false; + } + } + + static bool ApplyCompareValue(const nlohmann::json& object, const std::string& pattern, Filter::CompareType compare) + { + if (object.is_string()) + return ApplyCompareString(object, pattern, compare); + + if (object.is_boolean()) + { + if (compare != Filter::CompareType::Equal) + return false; + + bool value = pattern == "true" || pattern == "1"; + return object == value; + } + + if (!object.is_number()) + return false; + + if (object.is_number_float()) + { + auto value = std::stof(pattern); + return ApplyCompareAnyType(object, value, compare); + } + + if (object.is_number_integer()) + { + auto value = std::stoi(pattern); + return ApplyCompareAnyType(object, value, compare); + } + + if (object.is_number_unsigned()) + { + auto value = std::stoul(pattern); + return ApplyCompareAnyType(object, value, compare); + } + + return false; + } + + static bool HasValue(const nlohmann::json& object, const std::string& pattern, Filter::CompareType compare) + { + if (object.is_array()) + { + for (auto& nested : object) + { + if (HasValue(nested, pattern, compare)) + return true; + } + return false; + } + + + if (object.is_object()) + { + for (auto& item : object.items()) + { + if (HasValue(item.value(), pattern, compare)) + return true; + } + return false; + } + + return ApplyCompareValue(object, pattern, compare); + } + + bool Filter::FindAnyValue(const sniffer::PacketInfo& info) + { + if (m_ObjectPattern.empty()) + return true; + + return HasValue(info.object(), m_ObjectPattern, m_CompareType); + } + + bool Filter::FindAnyKey(const sniffer::PacketInfo& info) + { + if (m_KeyPattern.empty()) + return true; + + return !FindKeys(info, true).empty(); + } + + bool Filter::FindKeyValue(const sniffer::PacketInfo& info) + { + if (m_KeyPattern.empty()) + return true; + + auto objects = FindKeys(info); + for (auto& obj : objects) + { + if (ApplyCompareValue(info.object(), m_ObjectPattern, m_CompareType)) + return true; + } + return false; + } + + static std::vector FindKey(const nlohmann::json& object, const std::string& pattern, Filter::CompareType compareType, bool onlyFirst, bool recursive) + { + std::vector objects; + + if (object.is_array()) + { + if (!recursive) + return objects; + + for (auto& nested : object) + { + auto nestedResult = FindKey(nested, pattern, compareType, onlyFirst, recursive); + if (nestedResult.size() > 0) + { + objects.insert(objects.end(), nestedResult.begin(), nestedResult.end()); + if (onlyFirst) + return objects; + } + + } + } + else if (object.is_object()) + { + for (auto& item : object.items()) + { + bool correct = ApplyCompareString(item.key(), pattern, compareType); + if (!correct) + { + if (recursive) + { + auto nestedResult = FindKey(item.value(), pattern, compareType, onlyFirst, recursive); + if (nestedResult.size() > 0) + { + objects.insert(objects.end(), nestedResult.begin(), nestedResult.end()); + if (onlyFirst) + return objects; + } + } + continue; + } + + objects.push_back(item.value()); + if (onlyFirst) + return objects; + } + } + return objects; + + } + + std::vector Filter::FindKeys(const sniffer::PacketInfo& info, bool onlyFirst) + { + auto equalType = m_ObjectType == ObjectType::KeyValue ? CompareType::Regex : m_CompareType; + auto tokens = StringSplit("::", m_KeyPattern); + + std::string& mainToken = tokens[0]; + if (tokens.size() == 1) + { + auto mainObjects = FindKey(info.object(), mainToken, equalType, onlyFirst, true); + return mainObjects; + } + + auto objects = FindKey(info.object(), m_KeyPattern, equalType, false, true); + + for (auto it = tokens.begin() + 1; it != tokens.end(); it++) + { + if (objects.empty()) + return {}; + + bool last_token = (tokens.end() - 1) == it; + bool _onlyFirst = onlyFirst && last_token; + + objects = FindKey(objects, *it, equalType, _onlyFirst, false); + } + + return objects; + } + + + bool Filter::Execute(const sniffer::PacketInfo& info) + { + try + { + switch (m_ObjectType) + { + case sniffer::Filter::ObjectType::KeyValue: + return FindKeyValue(info); + case sniffer::Filter::ObjectType::AnyKey: + return FindAnyKey(info); + case sniffer::Filter::ObjectType::AnyValue: + return FindAnyValue(info); + case sniffer::Filter::ObjectType::Name: + return ApplyCompareString(info.name(), m_KeyPattern, m_CompareType); + case sniffer::Filter::ObjectType::PacketId: + return ApplyCompareString(std::to_string(info.id()), m_KeyPattern, m_CompareType); + default: + return true; + } + } + catch (const std::regex_error& e) + { + return false; + } + } + + nlohmann::json Filter::Serialize() + { + return {}; + } + + Filter::Filter() + : m_CompareType(CompareType::Equal), + m_ObjectType(ObjectType::KeyValue) + { + + } + + Filter::Filter(nlohmann::json& object) + : Filter() + { + + } + + bool FilterGroup::Draw(bool canBeRemoved) +{ + ImGui::PushID(this); + + bool removed = false; + auto name = fmt::format("Group {}", magic_enum::enum_name(m_Rule)); + BeginGroupPanel(name.c_str(), ImVec2(-1, 0)); + { + ComboEnum("Rule", &m_Rule); + + if (canBeRemoved) + { + ImGui::SameLine(); + if (ImGui::Button("Remove")) + removed = true; + } + + std::optional removeFilter = {}; + for (auto& filter : m_Filters) + { + if (filter->Draw()) + removeFilter = filter; + } + + if (removeFilter) + { + m_Filters.remove(*removeFilter); + delete* removeFilter; + } + + if (ImGui::Button("Add group", ImVec2(70, 0))) + m_Filters.push_back(new FilterGroup()); + + ImGui::SameLine(); + + if (ImGui::Button("Add filter", ImVec2(70, 0))) + m_Filters.push_back(new Filter()); + + } + EndGroupPanel(); + + ImGui::PopID(); + + return removed; + } + + + bool FilterGroup::Execute(const sniffer::PacketInfo& info) + { + if (m_Filters.empty()) + return true; + + for (auto& filter : m_Filters) + { + bool result = filter->Execute(info); + if (m_Rule == Rule::AND && !result) + return false; + + if (m_Rule == Rule::NOT && result) + return false; + + if (m_Rule == Rule::OR && result) + return true; + } + return m_Rule != Rule::OR; + } + + + nlohmann::json FilterGroup::Serialize() + { + return {}; + } + + FilterGroup::FilterGroup() : + m_Rule(Rule::AND), + m_Filters() + { + + } + + FilterGroup::FilterGroup(nlohmann::json& object) : FilterGroup() + { + } + +} diff --git a/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.h b/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.h new file mode 100644 index 0000000..f7c4d46 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/SnifferWindow.h @@ -0,0 +1,109 @@ +#pragma once +#include "PacketInfo.h" + +namespace sniffer +{ + + class IFilter + { + public: + virtual bool Draw(bool canBeRemoved = true) = 0; + virtual bool Execute(const sniffer::PacketInfo& info) = 0; + virtual nlohmann::json Serialize() = 0; + }; + + + class Filter : public IFilter + { + public: + enum class CompareType + { + Regex, Equal, Contains, Less, LessEqual, More, MoreEqual + }; + + enum class ObjectType + { + KeyValue, AnyKey, AnyValue, Name, PacketId + }; + + virtual bool Draw(bool canBeRemoved = true) override; + virtual bool Execute(const sniffer::PacketInfo& info) override; + + virtual nlohmann::json Serialize() override; + + Filter(); + Filter(nlohmann::json& object); + private: + + bool FindAnyValue(const sniffer::PacketInfo& info); + bool FindAnyKey(const sniffer::PacketInfo& info); + bool FindKeyValue(const sniffer::PacketInfo& info); + std::vector FindKeys(const sniffer::PacketInfo& info, bool onlyFirst = false); + + CompareType m_CompareType; + ObjectType m_ObjectType; + + std::string m_KeyPattern; + std::string m_ObjectPattern; + }; + + class FilterGroup : public IFilter + { + public: + + enum class Rule + { + AND, OR, NOT + }; + + virtual bool Draw(bool canBeRemoved = true) override; + virtual bool Execute(const sniffer::PacketInfo& info) override; + + virtual nlohmann::json Serialize() override; + + FilterGroup(); + FilterGroup(nlohmann::json& object); + + private: + Rule m_Rule; + std::list m_Filters; + + }; + + class SnifferWindow + { + public: + config::Field m_Show; + + SnifferWindow(SnifferWindow const&) = delete; + void operator=(SnifferWindow const&) = delete; + + static SnifferWindow& GetInstance(); + void OnPacketIO(const PacketInfo& info); + void Draw(); + + private: + enum class SortValue + { + Time, Name, Size, Id, Type + }; + + enum class SortType + { + Desc, Asc + }; + + SortValue m_SortValue; + SortType m_SortType; + + std::list m_CapturedPackets; + std::list m_CachedPackets; + + std::mutex m_CapturePacketLock; + + FilterGroup m_FilterGroup; + + SnifferWindow(); + }; +} + diff --git a/cheat-library/src/user/cheat/misc/sniffer/messages/MessageBase.cpp b/cheat-library/src/user/cheat/misc/sniffer/messages/MessageBase.cpp new file mode 100644 index 0000000..825979e --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/messages/MessageBase.cpp @@ -0,0 +1,32 @@ +#include "pch-il2cpp.h" +#include "MessageBase.h" + +MessageBase::MessageBase(const MessageHeader& header) : m_Header(header) +{ + +} + +uint32_t MessageBase::requestID() const +{ + return m_Header.requestID(); +} + +uint32_t MessageBase::messageID() const +{ + return m_Header.messageID(); +} + +int64_t MessageBase::timestamp() const +{ + return m_Header.timestamp(); +} + +uint64_t MessageBase::sequenceID() const +{ + return m_Header.sequenceID(); +} + +MessageHeader& MessageBase::header() +{ + return m_Header; +} diff --git a/cheat-library/src/user/cheat/misc/sniffer/messages/MessageBase.h b/cheat-library/src/user/cheat/misc/sniffer/messages/MessageBase.h new file mode 100644 index 0000000..923aa2c --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/messages/MessageBase.h @@ -0,0 +1,17 @@ +#pragma once +#include "MessageHeader.h" +class MessageBase : public PipeSerializedObject +{ +public: + explicit MessageBase(const MessageHeader& header); + + uint32_t requestID() const; + uint32_t messageID() const; + int64_t timestamp() const; + uint64_t sequenceID() const; + + MessageHeader& header(); +private: + MessageHeader m_Header; +}; + diff --git a/cheat-library/src/user/cheat/misc/sniffer/messages/MessageHeader.cpp b/cheat-library/src/user/cheat/misc/sniffer/messages/MessageHeader.cpp new file mode 100644 index 0000000..a0b1579 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/messages/MessageHeader.cpp @@ -0,0 +1,53 @@ +#include +#include "MessageHeader.h" + + +MessageHeader::MessageHeader(uint32_t messageId, uint32_t requestID /*= 0*/) : + m_MessageID(messageId), m_RequestID(requestID), + m_SequenceID(GenerateSequenceID()), m_Timestamp(util::GetCurrentTimeMillisec()) +{ } + +MessageHeader::MessageHeader() : m_MessageID(0), m_RequestID(0), m_SequenceID(0), m_Timestamp(0) +{ } + +uint32_t MessageHeader::requestID() const +{ + return m_RequestID; +} + +uint32_t MessageHeader::messageID() const +{ + return m_MessageID; +} + +int64_t MessageHeader::timestamp() const +{ + return m_Timestamp; +} + +uint64_t MessageHeader::sequenceID() const +{ + return m_SequenceID; +} + +void MessageHeader::Write(PipeTransfer* transfer) +{ + transfer->Write(m_MessageID); + transfer->Write(m_RequestID); + transfer->Write(util::GetCurrentTimeMillisec()); + transfer->Write(m_SequenceID); +} + +void MessageHeader::Read(PipeTransfer* transfer) +{ + transfer->Read(m_MessageID); + transfer->Read(m_RequestID); + transfer->Read(m_Timestamp); + transfer->Read(m_SequenceID); +} + +uint64_t MessageHeader::GenerateSequenceID() +{ + s_SequenceGlobalID += 1; + return s_SequenceGlobalID; +} diff --git a/cheat-library/src/user/cheat/misc/sniffer/messages/MessageHeader.h b/cheat-library/src/user/cheat/misc/sniffer/messages/MessageHeader.h new file mode 100644 index 0000000..06037a5 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/messages/MessageHeader.h @@ -0,0 +1,25 @@ +#pragma once +#include + +class MessageHeader : public PipeSerializedObject +{ +public: + MessageHeader(); + MessageHeader(uint32_t messageId, uint32_t requestID = 0); + uint32_t requestID() const; + uint32_t messageID() const; + int64_t timestamp() const; + uint64_t sequenceID() const; + + void Write(PipeTransfer* transfer) final; + void Read(PipeTransfer* transfer) final; + +private: + inline static std::atomic s_SequenceGlobalID {}; + static uint64_t GenerateSequenceID(); + + uint32_t m_MessageID; + uint32_t m_RequestID; + int64_t m_Timestamp; + int64_t m_SequenceID; +}; \ No newline at end of file diff --git a/cheat-library/src/user/cheat/misc/sniffer/messages/ModifyData.cpp b/cheat-library/src/user/cheat/misc/sniffer/messages/ModifyData.cpp new file mode 100644 index 0000000..f1b0d6b --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/messages/ModifyData.cpp @@ -0,0 +1,22 @@ +#include +#include "ModifyData.h" + +ModifyData::ModifyData(const MessageHeader& header) : MessageBase(header), + modifyType(PacketModifyType::Unchanged), modifiedData({}) +{ + +} + +void ModifyData::Write(PipeTransfer* transfer) +{ + transfer->Write(modifyType); + if (modifyType == PacketModifyType::Modified) + transfer->Write(modifiedData); +} + +void ModifyData::Read(PipeTransfer* transfer) +{ + transfer->Read(modifyType); + if (modifyType == PacketModifyType::Modified) + transfer->Read(modifiedData); +} diff --git a/cheat-library/src/user/cheat/misc/sniffer/messages/ModifyData.h b/cheat-library/src/user/cheat/misc/sniffer/messages/ModifyData.h new file mode 100644 index 0000000..224ebe7 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/messages/ModifyData.h @@ -0,0 +1,25 @@ +#pragma once +#include +#include "MessageBase.h" + +enum class PacketModifyType +{ + Unchanged, + Modified, + Blocked +}; + +class ModifyData : public MessageBase +{ +public: + PacketModifyType modifyType; + std::string modifiedData; + + ModifyData(const MessageHeader& header); + ~ModifyData() {} + + // Inherited via PipeSerializedObject + virtual void Write(PipeTransfer* transfer) override; + virtual void Read(PipeTransfer* transfer) override; +}; + diff --git a/cheat-library/src/user/cheat/misc/sniffer/messages/PacketData.cpp b/cheat-library/src/user/cheat/misc/sniffer/messages/PacketData.cpp new file mode 100644 index 0000000..8ff4d58 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/messages/PacketData.cpp @@ -0,0 +1,40 @@ +#include +#include "PacketData.h" + +void PacketData::Write(PipeTransfer* transfer) +{ + transfer->Write(blockModeEnabled); + transfer->Write(ioType); + transfer->Write(dataType); + transfer->Write(valid); + transfer->Write(parentID); + transfer->Write(packetID); + transfer->Write(headRawData); + transfer->Write(messageRawData); + + if (dataType == PacketDataType::Parsed) + { + transfer->Write(name); + transfer->Write(headJson); + transfer->Write(messageJson); + } +} + +void PacketData::Read(PipeTransfer* transfer) +{ + transfer->Read(blockModeEnabled); + transfer->Read(ioType); + transfer->Read(dataType); + transfer->Read(valid); + transfer->Read(parentID); + transfer->Read(packetID); + transfer->Read(headRawData); + transfer->Read(messageRawData); + + if (dataType == PacketDataType::Parsed) + { + transfer->Read(name); + transfer->Read(headJson); + transfer->Read(messageJson); + } +} diff --git a/cheat-library/src/user/cheat/misc/sniffer/messages/PacketData.h b/cheat-library/src/user/cheat/misc/sniffer/messages/PacketData.h new file mode 100644 index 0000000..1bd6bf7 --- /dev/null +++ b/cheat-library/src/user/cheat/misc/sniffer/messages/PacketData.h @@ -0,0 +1,42 @@ +#pragma once +#include +#include "MessageBase.h" + +enum class PacketIOType +{ + Receive, + Send +}; + +enum class PacketDataType +{ + Raw, + Parsed +}; + +class PacketData : public MessageBase +{ +public: + using MessageBase::MessageBase; + + bool blockModeEnabled; + + PacketIOType ioType; + PacketDataType dataType; + + bool valid; + + uint64_t parentID; + + int16_t packetID; + std::vector headRawData; + std::vector messageRawData; + + std::string name; + std::string headJson; + std::string messageJson; + + // Inherited via PipeSerializedObject + virtual void Write(PipeTransfer* transfer) override; + virtual void Read(PipeTransfer* transfer) override; +}; \ No newline at end of file diff --git a/cheat-library/src/user/util/util.cpp b/cheat-library/src/user/cheat/native.cpp similarity index 94% rename from cheat-library/src/user/util/util.cpp rename to cheat-library/src/user/cheat/native.cpp index 2839b23..bf8275e 100644 --- a/cheat-library/src/user/util/util.cpp +++ b/cheat-library/src/user/cheat/native.cpp @@ -1,9 +1,11 @@ #include +#include "native.h" + #ifndef UNICODE #define UNICODE #endif -#include +#include #include #include #include @@ -21,13 +23,13 @@ static int num = 0; - typedef NTSTATUS(NTAPI* _NtQuerySystemInformation)( ULONG SystemInformationClass, PVOID SystemInformation, ULONG SystemInformationLength, PULONG ReturnLength ); + typedef NTSTATUS(NTAPI* _NtDuplicateObject)( HANDLE SourceProcessHandle, HANDLE SourceHandle, @@ -37,6 +39,7 @@ typedef NTSTATUS(NTAPI* _NtDuplicateObject)( ULONG Attributes, ULONG Options ); + typedef NTSTATUS(NTAPI* _NtQueryObject)( HANDLE ObjectHandle, ULONG ObjectInformationClass, @@ -119,12 +122,15 @@ typedef struct _SYSTEM_PROCESS_INFO HANDLE InheritedFromProcessId; }SYSTEM_PROCESS_INFO, * PSYSTEM_PROCESS_INFO; -PVOID GetLibraryProcAddress(LPCSTR LibraryName, LPCSTR ProcName) +static PVOID GetLibraryProcAddress(LPCSTR LibraryName, LPCSTR ProcName) { - return GetProcAddress(GetModuleHandleA(LibraryName), ProcName); + auto hModule = GetModuleHandleA(LibraryName); + if (hModule == NULL) + return nullptr; + return GetProcAddress(hModule, ProcName); } -bool CloseHandleByName(const wchar_t* name) +bool util::CloseHandleByName(const wchar_t* name) { _NtQuerySystemInformation NtQuerySystemInformation = (_NtQuerySystemInformation)GetLibraryProcAddress("ntdll.dll", "NtQuerySystemInformation"); @@ -137,7 +143,7 @@ bool CloseHandleByName(const wchar_t* name) ULONG handleInfoSize = 0x10000; PSYSTEM_HANDLE_INFORMATION handleInfo = (PSYSTEM_HANDLE_INFORMATION)malloc(handleInfoSize); - ULONG pid; + ULONG pid = 0; HANDLE processHandle = GetCurrentProcess(); ULONG i; @@ -154,7 +160,7 @@ bool CloseHandleByName(const wchar_t* name) /* NtQuerySystemInformation stopped giving us STATUS_INFO_LENGTH_MISMATCH. */ if (!NT_SUCCESS(status)) { - std::cout << "NtQuerySystemInformation failed!" << std::endl; + LOG_ERROR("NtQuerySystemInformation failed!"); return false; } diff --git a/cheat-library/src/user/cheat/native.h b/cheat-library/src/user/cheat/native.h new file mode 100644 index 0000000..870b768 --- /dev/null +++ b/cheat-library/src/user/cheat/native.h @@ -0,0 +1,5 @@ +#pragma once +namespace util +{ + bool CloseHandleByName(const wchar_t* name); +} diff --git a/cheat-library/src/user/cheat/player/GodMode.cpp b/cheat-library/src/user/cheat/player/GodMode.cpp new file mode 100644 index 0000000..2f0f1ec --- /dev/null +++ b/cheat-library/src/user/cheat/player/GodMode.cpp @@ -0,0 +1,87 @@ +#include "pch-il2cpp.h" +#include "GodMode.h" + +#include +#include + +namespace cheat::feature +{ + static bool Miscs_CheckTargetAttackable_Hook(void* __this, app::BaseEntity* attacker, app::BaseEntity* target, MethodInfo* method); + static void VCHumanoidMove_NotifyLandVelocity_Hook(app::VCHumanoidMove* __this, app::Vector3 velocity, float reachMaxDownVelocityTime, MethodInfo* method); + + GodMode::GodMode() : Feature(), + NFEX(f_Enabled, "God mode", "m_GodMode", "Player", false, false) + { + // HookManager::install(app::LCBaseCombat_FireBeingHitEvent, LCBaseCombat_FireBeingHitEvent_Hook); + HookManager::install(app::VCHumanoidMove_NotifyLandVelocity, VCHumanoidMove_NotifyLandVelocity_Hook); + HookManager::install(app::Miscs_CheckTargetAttackable, Miscs_CheckTargetAttackable_Hook); + } + + const FeatureGUIInfo& GodMode::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "", "Player", false }; + return info; + } + + void GodMode::DrawMain() + { + ConfigWidget("God Mode", f_Enabled, + "Enables god mode, i.e. no incoming damage.\n" \ + "May not work with some types of damage."); + } + + bool GodMode::NeedStatusDraw() const +{ + return f_Enabled; + } + + void GodMode::DrawStatus() + { + ImGui::Text("God Mode"); + } + + GodMode& GodMode::GetInstance() + { + static GodMode instance; + return instance; + } + + // Attack immunity (return false when target is avatar, that mean avatar entity isn't attackable) + static bool Miscs_CheckTargetAttackable_Hook(void* __this, app::BaseEntity* attacker, app::BaseEntity* target, MethodInfo* method) + { + auto& gm = GodMode::GetInstance(); + auto& manager = game::EntityManager::instance(); + auto entity = manager.entity(target); + if (gm.f_Enabled && entity->isAvatar()) + return false; + + return CALL_ORIGIN(Miscs_CheckTargetAttackable_Hook, __this, attacker, target, method); + } + + // Raised when avatar fall on ground. + // Sending fall speed, and how many time pass from gain max fall speed (~30m/s). + // To disable fall damage reset reachMaxDownVelocityTime and decrease fall velocity. + static void VCHumanoidMove_NotifyLandVelocity_Hook(app::VCHumanoidMove* __this, app::Vector3 velocity, float reachMaxDownVelocityTime, MethodInfo* method) + { + auto& gm = GodMode::GetInstance(); + if (gm.f_Enabled && -velocity.y > 13) + { + float randAdd = (float)(std::rand() % 1000) / 1000; + velocity.y = -8 - randAdd; + reachMaxDownVelocityTime = 0; + } + // LOG_DEBUG("%s, %f", il2cppi_to_string(velocity).c_str(), reachMaxDownVelocityTime); + CALL_ORIGIN(VCHumanoidMove_NotifyLandVelocity_Hook, __this, velocity, reachMaxDownVelocityTime, method); + } + + // Analog function for disable attack damage (Thanks to Taiga74164) + //void LCBaseCombat_FireBeingHitEvent_Hook(app::LCBaseCombat* __this, uint32_t attackeeRuntimeID, app::AttackResult* attackResult, MethodInfo* method) + //{ + // auto avatarEntity = GetAvatarEntity(); + // if (avatarEntity != nullptr && Config::cfgGodModEnable.GetValue() && avatarEntity->fields._runtimeID_k__BackingField == attackeeRuntimeID) + // return; + // + // return callOrigin(LCBaseCombat_FireBeingHitEvent_Hook, __this, attackeeRuntimeID, attackResult, method); + //} +} + diff --git a/cheat-library/src/user/cheat/player/GodMode.h b/cheat-library/src/user/cheat/player/GodMode.h new file mode 100644 index 0000000..750398f --- /dev/null +++ b/cheat-library/src/user/cheat/player/GodMode.h @@ -0,0 +1,25 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class GodMode : public Feature + { + public: + config::Field> f_Enabled; + + static GodMode& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + GodMode(); + }; +} + diff --git a/cheat-library/src/user/cheat/player/InfiniteStamina.cpp b/cheat-library/src/user/cheat/player/InfiniteStamina.cpp new file mode 100644 index 0000000..298642c --- /dev/null +++ b/cheat-library/src/user/cheat/player/InfiniteStamina.cpp @@ -0,0 +1,116 @@ +#include "pch-il2cpp.h" +#include "InfiniteStamina.h" + +#include +#include +#include + +namespace cheat::feature +{ + InfiniteStamina::InfiniteStamina() : Feature(), + NF(f_Enabled, "Infinite stamina", "InfiniteStamina", false), + NF(f_PacketReplacement, "Move sync packet replacement", "InfiniteStamina", false) + { + HookManager::install(app::DataItem_HandleNormalProp, DataItem_HandleNormalProp_Hook); + + events::MoveSyncEvent += MY_METHOD_HANDLER(InfiniteStamina::OnMoveSync); + } + + const FeatureGUIInfo& InfiniteStamina::GetGUIInfo() const + { + static const FeatureGUIInfo info { "Infinite Stamina", "Player", true }; + return info; + } + + void InfiniteStamina::DrawMain() + { + ConfigWidget("Enabled", f_Enabled, "Enables infinite stamina option."); + + ConfigWidget("Move Sync Packet Replacement", f_PacketReplacement, + "This mode prevents sending server packets with stamina cost actions,\n" \ + "e.g. swim, climb, sprint, etc.\n" \ + "NOTE: This is may be more safe than the standard method. More testing is needed."); + } + + bool InfiniteStamina::NeedStatusDraw() const +{ + return f_Enabled; + } + + void InfiniteStamina::DrawStatus() + { + ImGui::Text("Inf. Stamina [%s]", f_PacketReplacement ? "Packet" : "Normal"); + } + + InfiniteStamina& InfiniteStamina::GetInstance() + { + static InfiniteStamina instance; + return instance; + } + + // Infinite stamina offline mode. Blocks changes for stamina property. + // Note. Changes received from the server (not sure about this for current time), + // that means that server know our stamina, and changes it in client can be detected. + // Not working for water because server sending drown action when your stamina down to zero. (Also guess for now) + bool InfiniteStamina::OnPropertySet(app::PropType__Enum propType) + { + using PT = app::PropType__Enum; + + return !f_Enabled || f_PacketReplacement || + (propType != PT::PROP_MAX_STAMINA && + propType != PT::PROP_CUR_PERSIST_STAMINA && + propType != PT::PROP_CUR_TEMPORARY_STAMINA); + } + + // Infinite stamina packet mode. + // Note. Blocking packets with movement information, to prevent ability server to know stamina info. + // But server may see incorrect movements. What mode safer don't tested. + void InfiniteStamina::OnMoveSync(uint32_t entityId, app::MotionInfo* syncInfo) + { + static bool afterDash = false; + + auto& manager = game::EntityManager::instance(); + if (manager.avatar()->runtimeID() != entityId) + return; + + // LOG_DEBUG("Movement packet: %s", magic_enum::enum_name(syncInfo->fields.motionState).data()); + if (f_Enabled && f_PacketReplacement) + { + auto state = syncInfo->fields.motionState; + switch (state) + { + case app::MotionState__Enum::MotionDash: + case app::MotionState__Enum::MotionClimb: + case app::MotionState__Enum::MotionClimbJump: + case app::MotionState__Enum::MotionStandbyToClimb: + case app::MotionState__Enum::MotionSwimDash: + case app::MotionState__Enum::MotionSwimIdle: + case app::MotionState__Enum::MotionSwimMove: + case app::MotionState__Enum::MotionSwimJump: + case app::MotionState__Enum::MotionFly: + case app::MotionState__Enum::MotionFight: + case app::MotionState__Enum::MotionDashBeforeShake: + case app::MotionState__Enum::MotionDangerDash: + syncInfo->fields.motionState = app::MotionState__Enum::MotionRun; + break; + case app::MotionState__Enum::MotionJump: + if (afterDash) + syncInfo->fields.motionState = app::MotionState__Enum::MotionRun; + break; + } + if (state != app::MotionState__Enum::MotionJump && state != app::MotionState__Enum::MotionFallOnGround) + afterDash = state == app::MotionState__Enum::MotionDash; + } + } + + void InfiniteStamina::DataItem_HandleNormalProp_Hook(app::DataItem* __this, uint32_t type, int64_t value, app::DataPropOp__Enum state, MethodInfo* method) + { + auto& infiniteStamina = GetInstance(); + + auto propType = static_cast(type); + bool isValid = infiniteStamina.OnPropertySet(propType); + if (isValid) + CALL_ORIGIN(DataItem_HandleNormalProp_Hook, __this, type, value, state, method); + } +} + diff --git a/cheat-library/src/user/cheat/player/InfiniteStamina.h b/cheat-library/src/user/cheat/player/InfiniteStamina.h new file mode 100644 index 0000000..525b16a --- /dev/null +++ b/cheat-library/src/user/cheat/player/InfiniteStamina.h @@ -0,0 +1,33 @@ +#pragma once +#include +#include + +#include + +namespace cheat::feature +{ + + class InfiniteStamina : public Feature + { + public: + config::Field> f_Enabled; + config::Field f_PacketReplacement; + + static InfiniteStamina& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + InfiniteStamina(); + + bool OnPropertySet(app::PropType__Enum propType); + void OnMoveSync(uint32_t entityId, app::MotionInfo* syncInfo); + + static void DataItem_HandleNormalProp_Hook(app::DataItem* __this, uint32_t type, int64_t value, app::DataPropOp__Enum state, MethodInfo* method); + }; +} + diff --git a/cheat-library/src/user/cheat/player/NoCD.cpp b/cheat-library/src/user/cheat/player/NoCD.cpp new file mode 100644 index 0000000..2a09635 --- /dev/null +++ b/cheat-library/src/user/cheat/player/NoCD.cpp @@ -0,0 +1,157 @@ +#include "pch-il2cpp.h" +#include "NoCD.h" + +#include +#include + +namespace cheat::feature +{ + static bool HumanoidMoveFSM_CheckSprintCooldown_Hook(void* __this, MethodInfo* method); + static bool LCAvatarCombat_IsEnergyMax_Hook(void* __this, MethodInfo* method); + static bool LCAvatarCombat_OnSkillStart(app::LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method); + static void ActorAbilityPlugin_AddDynamicFloatWithRange_Hook(void* __this, app::String* key, float value, float minValue, float maxValue, + bool forceDoAtRemote, MethodInfo* method); + + static std::list abilityLog; + + NoCD::NoCD() : Feature(), + NF(f_AbilityReduce, "Reduce Skill/Burst Cooldown", "NoCD", false), + NF(f_AbilityReduceValue, "Reduce skill CD value", "NoCD", 0.1f), + + NF(f_UtimateMaxEnergy, "Burst max energy", "NoCD", false), + NF(f_Sprint, "No Sprint Cooldown", "NoCD", false), + NF(f_InstantBow, "Instant bow", "NoCD", false) + + { + HookManager::install(app::LCAvatarCombat_IsEnergyMax, LCAvatarCombat_IsEnergyMax_Hook); + HookManager::install(app::LCAvatarCombat_OnSkillStart, LCAvatarCombat_OnSkillStart); + + HookManager::install(app::HumanoidMoveFSM_CheckSprintCooldown, HumanoidMoveFSM_CheckSprintCooldown_Hook); + HookManager::install(app::ActorAbilityPlugin_AddDynamicFloatWithRange, ActorAbilityPlugin_AddDynamicFloatWithRange_Hook); + } + + const FeatureGUIInfo& NoCD::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "Cooldown Effects", "Player", true }; + return info; + } + + void NoCD::DrawMain() + { + + ConfigWidget("Max Burst Energy", f_UtimateMaxEnergy, + "Removes energy requirement for elemental bursts.\n" \ + "(Energy bubble may appear incomplete but still usable.)"); + + ConfigWidget("## AbilityReduce", f_AbilityReduce); ImGui::SameLine(); + ConfigWidget("Reduce Skill/Burst Cooldown", f_AbilityReduceValue, 0.1f, 0.2f, 1.0f, + "Reduce cooldowns of elemental skills and bursts.\n"\ + "The greater the value, the greater the cooldown."); + + ConfigWidget(f_Sprint, "Removes delay in-between sprints."); + + ConfigWidget("Instant Bow Charge", f_InstantBow, "Disable cooldown of bow charge.\n" \ + "Known issues with Fischl."); + + if (f_InstantBow) { + ImGui::Text("If Instant Bow Charge doesn't work:"); + TextURL("Please contribute to issue on GitHub.", "https://github.com/CallowBlack/genshin-cheat/issues/47", false, false); + if (ImGui::TreeNode("Ability Log [DEBUG]")) + { + if (ImGui::Button("Copy to Clipboard")) + { + ImGui::LogToClipboard(); + + ImGui::LogText("Ability Log:\n"); + + for (auto& logEntry : abilityLog) + ImGui::LogText("%s\n", logEntry.c_str()); + + ImGui::LogFinish(); + } + + for (std::string& logEntry : abilityLog) + ImGui::Text(logEntry.c_str()); + + ImGui::TreePop(); + } + } + } + + bool NoCD::NeedStatusDraw() const +{ + return f_InstantBow || f_AbilityReduce || f_Sprint ; + } + + void NoCD::DrawStatus() + { + ImGui::Text("Cooldown\n[%s%s%s%s%s]", + f_AbilityReduce ? fmt::format("Reduce {:.1f}", f_AbilityReduceValue.value()).c_str() : "", + f_AbilityReduce && (f_InstantBow || f_Sprint) ? "|" : "", + f_InstantBow ? "Bow" : "", + f_InstantBow && f_Sprint ? "|" : "", + f_Sprint ? "Sprint" : ""); + } + + NoCD& NoCD::GetInstance() + { + static NoCD instance; + return instance; + } + + static bool LCAvatarCombat_IsEnergyMax_Hook(void* __this, MethodInfo* method) + { + NoCD& noCD = NoCD::GetInstance(); + if (noCD.f_UtimateMaxEnergy) + return true; + + return CALL_ORIGIN(LCAvatarCombat_IsEnergyMax_Hook, __this, method); + } + + // Multipler CoolDown Timer | RyujinZX#6666 + static bool LCAvatarCombat_OnSkillStart(app::LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method) { + NoCD& noCD = NoCD::GetInstance(); + if (noCD.f_AbilityReduce) + { + if (__this->fields._targetFixTimer->fields._._timer_k__BackingField > 0) { + cdMultipler = noCD.f_AbilityReduceValue / 3; + } + else { + cdMultipler = noCD.f_AbilityReduceValue / 1; + } + } + return CALL_ORIGIN(LCAvatarCombat_OnSkillStart, __this, skillID, cdMultipler, method); + } + + // Check sprint cooldown, we just return true if sprint no cooldown enabled. + static bool HumanoidMoveFSM_CheckSprintCooldown_Hook(void* __this, MethodInfo* method) + { + NoCD& noCD = NoCD::GetInstance(); + if (noCD.f_Sprint) + return true; + + return CALL_ORIGIN(HumanoidMoveFSM_CheckSprintCooldown_Hook, __this, method); + } + + // This function raise when abilities, whose has charge, is charging, like a bow. + // value - increase value + // min and max - bounds of charge. + // So, to charge make full charge m_Instantly, just replace value to maxValue. + static void ActorAbilityPlugin_AddDynamicFloatWithRange_Hook(void* __this, app::String* key, float value, float minValue, float maxValue, + bool forceDoAtRemote, MethodInfo* method) + { + std::time_t t = std::time(nullptr); + auto logEntry = fmt::format("{:%H:%M:%S} | Key: {} value {}.", fmt::localtime(t), il2cppi_to_string(key), value); + abilityLog.push_front(logEntry); + if (abilityLog.size() > 50) + abilityLog.pop_back(); + + NoCD& noCD = NoCD::GetInstance(); + // This function is calling not only for bows, so if don't put key filter it cause various game mechanic bugs. + // For now only "_Enchanted_Time" found for bow charging, maybe there are more. Need to continue research. + if (noCD.f_InstantBow && il2cppi_to_string(key) == "_Enchanted_Time") + value = maxValue; + CALL_ORIGIN(ActorAbilityPlugin_AddDynamicFloatWithRange_Hook, __this, key, value, minValue, maxValue, forceDoAtRemote, method); + } +} + diff --git a/cheat-library/src/user/cheat/player/NoCD.h b/cheat-library/src/user/cheat/player/NoCD.h new file mode 100644 index 0000000..0565056 --- /dev/null +++ b/cheat-library/src/user/cheat/player/NoCD.h @@ -0,0 +1,29 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + class NoCD : public Feature + { + public: + config::Field> f_AbilityReduce; + config::Field f_AbilityReduceValue; + + config::Field> f_UtimateMaxEnergy; + config::Field> f_Sprint; + config::Field> f_InstantBow; + + static NoCD& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + NoCD(); + }; +} + diff --git a/cheat-library/src/user/cheat/player/NoClip.cpp b/cheat-library/src/user/cheat/player/NoClip.cpp new file mode 100644 index 0000000..b2eb1ea --- /dev/null +++ b/cheat-library/src/user/cheat/player/NoClip.cpp @@ -0,0 +1,222 @@ +#include "pch-il2cpp.h" +#include "NoClip.h" + +#include +#include +#include +#include +#include + +namespace cheat::feature +{ + static void HumanoidMoveFSM_LateTick_Hook(void* __this, float deltaTime, MethodInfo* method); + app::Vector3 zero; + + NoClip::NoClip() : Feature(), + NF(f_Enabled, "No clip", "NoClip", false), + NF(f_Speed, "Speed", "NoClip", 5.5f), + NF(f_CameraRelative, "Relative to camera", "NoClip", true), + NF(f_VelocityMode, "Velocity mode", "NoClip", false), + NF(f_FreeflightMode, "Freeflight mode", "NoClip", false), + NF(f_AltSpeedEnabled, "Alt speed enabled", "NoClip", false), + NF(f_AltSpeed, "Alt speed", "NoClip", 1.0f) + { + HookManager::install(app::HumanoidMoveFSM_LateTick, HumanoidMoveFSM_LateTick_Hook); + + events::GameUpdateEvent += MY_METHOD_HANDLER(NoClip::OnGameUpdate); + events::MoveSyncEvent += MY_METHOD_HANDLER(NoClip::OnMoveSync); + } + + const FeatureGUIInfo& NoClip::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "No-Clip", "Player", true }; + return info; + } + + void NoClip::DrawMain() + { + ConfigWidget("Enabled", f_Enabled, "Enables no-clip (fast speed + no collision).\n" \ + "To move, use WASD, Space (go up), and Shift (go down)."); + + ConfigWidget("Speed", f_Speed, 0.1f, 2.0f, 100.0f, + "No-clip move speed.\n" \ + "Not recommended setting above 5.0."); + + ConfigWidget("Camera-relative movement", f_CameraRelative, + "Move relative to camera view instead of avatar view/direction."); + + ConfigWidget("Alternate No-clip", f_AltSpeedEnabled, + "Allows usage of alternate speed when holding down LeftCtrl key.\n" \ + "Useful if you want to temporarily go faster/slower than the no-clip speed setting."); + + if (f_AltSpeedEnabled) { + ConfigWidget("Alt Speed", f_AltSpeed, 0.1f, 2.0f, 100.0f, + "Alternate no-clip move speed.\n" \ + "Not recommended setting above 5.0."); + + ConfigWidget("Velocity mode", f_VelocityMode,"Use velocity instead of position to move."); + ConfigWidget("Freeflight mode", f_FreeflightMode,"Don't remove collisions"); + } + } + + bool NoClip::NeedStatusDraw() const +{ + return f_Enabled; + } + + void NoClip::DrawStatus() + { + ImGui::Text("NoClip%s[%.01f%s%|%s]", + f_AltSpeedEnabled ? "+Alt " : " ", + f_Speed.value(), + f_AltSpeedEnabled ? fmt::format("|{:.1f}", f_AltSpeed.value()).c_str() : "", + f_CameraRelative ? "CR" : "PR"); + } + + NoClip& NoClip::GetInstance() + { + static NoClip instance; + return instance; + } + + // No clip update function. + // We just disabling collision detect and move avatar when no clip moving keys pressed. + void NoClip::OnGameUpdate() + { + static bool isApplied = false; + + auto& manager = game::EntityManager::instance(); + + if (!f_Enabled && isApplied) + { + auto avatarEntity = manager.avatar(); + auto rigidBody = avatarEntity->rigidbody(); + if (rigidBody == nullptr) + return; + + app::Rigidbody_set_detectCollisions(rigidBody, true, nullptr); + + isApplied = false; + } + + if (!f_Enabled) + return; + + isApplied = true; + + auto avatarEntity = manager.avatar(); + auto baseMove = avatarEntity->moveComponent(); + if (baseMove == nullptr) + return; + + if (renderer::IsInputLocked()) + return; + + auto rigidBody = avatarEntity->rigidbody(); + if (rigidBody == nullptr) + return; + if (!f_FreeflightMode) + app::Rigidbody_set_detectCollisions(rigidBody, false, nullptr); + + if (!f_VelocityMode) + app::Rigidbody_set_velocity(rigidBody, zero,nullptr); + + auto cameraEntity = game::Entity(reinterpret_cast(manager.mainCamera())); + auto relativeEntity = f_CameraRelative ? &cameraEntity : avatarEntity; + + float speed = f_Speed.value(); + if (f_AltSpeedEnabled && Hotkey(VK_LCONTROL).IsPressed()) + speed = f_AltSpeed.value(); + + app::Vector3 dir = {}; + if (Hotkey('W').IsPressed()) + dir = dir + relativeEntity->forward(); + + if (Hotkey('S').IsPressed()) + dir = dir + relativeEntity->back(); + + if (Hotkey('D').IsPressed()) + dir = dir + relativeEntity->right(); + + if (Hotkey('A').IsPressed()) + dir = dir + relativeEntity->left(); + + if (Hotkey(VK_SPACE).IsPressed()) + dir = dir + avatarEntity->up(); + + if (Hotkey(ImGuiKey_ModShift).IsPressed()) + dir = dir + avatarEntity->down(); + + app::Vector3 prevPos = avatarEntity->relativePosition(); + if (IsVectorZero(prevPos)) + return; + + float deltaTime = app::Time_get_deltaTime(nullptr, nullptr); + + app::Vector3 newPos = prevPos + dir * speed * deltaTime; + if (!f_VelocityMode) + avatarEntity->setRelativePosition(newPos); + else + app::Rigidbody_set_velocity(rigidBody, dir * speed, nullptr); + } + + // Fixing player sync packets when no clip + void NoClip::OnMoveSync(uint32_t entityId, app::MotionInfo* syncInfo) + { + static app::Vector3 prevPosition = {}; + static int64_t prevSyncTime = 0; + + if (!f_Enabled) + { + prevSyncTime = 0; + return; + } + + auto& manager = game::EntityManager::instance(); + if (manager.avatar()->runtimeID() != entityId) + return; + + auto avatarEntity = manager.avatar(); + if (avatarEntity == nullptr) + return; + + auto avatarPosition = avatarEntity->absolutePosition(); + auto currentTime = util::GetCurrentTimeMillisec(); + if (prevSyncTime > 0) + { + auto posDiff = avatarPosition - prevPosition; + auto timeDiff = ((float)(currentTime - prevSyncTime)) / 1000; + auto velocity = posDiff / timeDiff; + + auto speed = GetVectorMagnitude(velocity); + if (speed > 0.1) + { + syncInfo->fields.motionState = (speed < 2) ? app::MotionState__Enum::MotionWalk : app::MotionState__Enum::MotionRun; + + syncInfo->fields.speed_->fields.x = velocity.x; + syncInfo->fields.speed_->fields.y = velocity.y; + syncInfo->fields.speed_->fields.z = velocity.z; + } + + syncInfo->fields.pos_->fields.x = avatarPosition.x; + syncInfo->fields.pos_->fields.y = avatarPosition.y; + syncInfo->fields.pos_->fields.z = avatarPosition.z; + } + + prevPosition = avatarPosition; + prevSyncTime = currentTime; + } + + // Disabling standard motion performing. + // This disabling any animations, climb, jump, swim and so on. + // But when it disabled, MoveSync sending our last position, so needs to update position in packet. + static void HumanoidMoveFSM_LateTick_Hook(void* __this, float deltaTime, MethodInfo* method) + { + NoClip& noClip = NoClip::GetInstance(); + if (noClip.f_Enabled) + return; + + CALL_ORIGIN(HumanoidMoveFSM_LateTick_Hook, __this, deltaTime, method); + } +} + diff --git a/cheat-library/src/user/cheat/player/NoClip.h b/cheat-library/src/user/cheat/player/NoClip.h new file mode 100644 index 0000000..250872a --- /dev/null +++ b/cheat-library/src/user/cheat/player/NoClip.h @@ -0,0 +1,37 @@ +#pragma once +#include +#include + +#include + +namespace cheat::feature +{ + + class NoClip : public Feature + { + public: + config::Field> f_Enabled; + config::Field f_Speed; + config::Field f_CameraRelative; + config::Field> f_VelocityMode; + config::Field> f_FreeflightMode; + + config::Field f_AltSpeedEnabled; + config::Field f_AltSpeed; + + + static NoClip& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + void OnGameUpdate(); + void OnMoveSync(uint32_t entityId, app::MotionInfo* syncInfo); + private: + NoClip(); + }; +} + diff --git a/cheat-library/src/user/cheat/player/RapidFire.cpp b/cheat-library/src/user/cheat/player/RapidFire.cpp new file mode 100644 index 0000000..fbe3454 --- /dev/null +++ b/cheat-library/src/user/cheat/player/RapidFire.cpp @@ -0,0 +1,230 @@ +#include "pch-il2cpp.h" +#include "RapidFire.h" + +#include +#include +#include +#include + +namespace cheat::feature +{ + static void LCBaseCombat_DoHitEntity_Hook(app::LCBaseCombat* __this, uint32_t targetID, app::AttackResult* attackResult, + bool ignoreCheckCanBeHitInMP, MethodInfo* method); + + RapidFire::RapidFire() : Feature(), + NF(f_Enabled, "Attack Multiplier", "RapidFire", false), + NF(f_MultiHit, "Multi-hit", "RapidFire", false), + NF(f_Multiplier, "Hit Multiplier", "RapidFire", 2), + NF(f_OnePunch, "One Punch Mode", "RapidFire", false), + NF(f_Randomize, "Randomize", "RapidFire", false), + NF(f_minMultiplier, "Min Multiplier", "RapidFire", 1), + NF(f_maxMultiplier, "Max Multiplier", "RapidFire", 3), + NF(f_MultiTarget, "Multi-target", "RapidFire", false), + NF(f_MultiTargetRadius, "Multi-target Radius", "RapidFire", 20.0f) + { + HookManager::install(app::LCBaseCombat_DoHitEntity, LCBaseCombat_DoHitEntity_Hook); + } + + const FeatureGUIInfo& RapidFire::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "Attack Effects", "Player", true }; + return info; + } + + void RapidFire::DrawMain() + { + ConfigWidget("Enabled", f_Enabled, "Enables attack multipliers. Need to choose a mode to work."); + ImGui::SameLine(); + ImGui::TextColored(ImColor(255, 165, 0, 255), "Choose any or both modes below."); + + ConfigWidget("Multi-hit Mode", f_MultiHit, "Enables multi-hit.\n" \ + "Multiplies your attack count.\n" \ + "This is not well tested, and can be detected by anticheat.\n" \ + "Not recommended to be used with main accounts or used with high values.\n" \ + "Known issues with certain multi-hit attacks, e.g. Xiao E, Ayaka CA, etc."); + + ImGui::Indent(); + + ConfigWidget("One-Punch Mode", f_OnePunch, "Calculate how many attacks needed to kill an enemy based on their HP\n" \ + "and uses that to set the multiplier accordingly.\n" \ + "May be safer, but multiplier calculation may not be on-point."); + + ConfigWidget("Randomize Multiplier", f_Randomize, "Randomize multiplier between min and max multiplier."); + ImGui::SameLine(); + ImGui::TextColored(ImColor(255, 165, 0, 255), "This will override One-Punch Mode!"); + + if (!f_OnePunch) { + if (!f_Randomize) + { + ConfigWidget("Multiplier", f_Multiplier, 1, 2, 1000, "Attack count multiplier."); + } + else + { + ConfigWidget("Min Multiplier", f_minMultiplier, 1, 2, 1000, "Attack count minimum multiplier."); + ConfigWidget("Max Multiplier", f_maxMultiplier, 1, 2, 1000, "Attack count maximum multiplier."); + } + } + + ImGui::Unindent(); + + ConfigWidget("Multi-target", f_MultiTarget, "Enables multi-target attacks within specified radius of target.\n" \ + "All valid targets around initial target will be hit based on setting.\n" \ + "Damage numbers will only appear on initial target but all valid targets are damaged.\n" \ + "If multi-hit is off and there are still multiple numbers on a single target, check the Entity Manager in the Debug section to see if there are invisible entities.\n" \ + "This can cause EXTREME lag and quick bans if used with multi-hit. You are warned." + ); + + ImGui::Indent(); + ConfigWidget("Radius (m)", f_MultiTargetRadius, 0.1f, 5.0f, 50.0f, "Radius to check for valid targets."); + ImGui::Unindent(); + } + + bool RapidFire::NeedStatusDraw() const +{ + return f_Enabled && (f_MultiHit || f_MultiTarget); + } + + void RapidFire::DrawStatus() + { + if (f_MultiHit) + { + if (f_Randomize) + ImGui::Text("Multi-Hit Random[%d|%d]", f_minMultiplier.value(), f_maxMultiplier.value()); + else if (f_OnePunch) + ImGui::Text("Multi-Hit [OnePunch]"); + else + ImGui::Text("Multi-Hit [%d]", f_Multiplier.value()); + } + if (f_MultiTarget) + ImGui::Text("Multi-Target [%.01fm]", f_MultiTargetRadius.value()); + } + + RapidFire& RapidFire::GetInstance() + { + static RapidFire instance; + return instance; + } + + + int RapidFire::CalcCountToKill(float attackDamage, uint32_t targetID) + { + if (attackDamage == 0) + return f_Multiplier; + + auto& manager = game::EntityManager::instance(); + auto targetEntity = manager.entity(targetID); + if (targetEntity == nullptr) + return f_Multiplier; + + auto baseCombat = targetEntity->combat(); + if (baseCombat == nullptr) + return f_Multiplier; + + auto safeHP = baseCombat->fields._combatProperty_k__BackingField->fields.HP; + auto HP = app::SafeFloat_GetValue(nullptr, safeHP, nullptr); + int attackCount = (int)ceil(HP / attackDamage); + return std::clamp(attackCount, 1, 200); + } + + int RapidFire::GetAttackCount(app::LCBaseCombat* combat, uint32_t targetID, app::AttackResult* attackResult) + { + if (!f_MultiHit) + return 1; + + auto& manager = game::EntityManager::instance(); + auto targetEntity = manager.entity(targetID); + auto baseCombat = targetEntity->combat(); + if (baseCombat == nullptr) + return 1; + + int countOfAttacks = f_Multiplier; + if (f_OnePunch) + { + app::Formula_CalcAttackResult(targetEntity, combat->fields._combatProperty_k__BackingField, + baseCombat->fields._combatProperty_k__BackingField, + attackResult, manager.avatar()->raw(), targetEntity->raw(), nullptr); + countOfAttacks = CalcCountToKill(attackResult->fields.damage, targetID); + } + if (f_Randomize) + { + countOfAttacks = rand() % (f_maxMultiplier.value() - f_minMultiplier.value()) + f_minMultiplier.value(); + return countOfAttacks; + } + + return countOfAttacks; + } + + bool IsAvatarOwner(game::Entity entity) + { + auto& manager = game::EntityManager::instance(); + auto avatarID = manager.avatar()->runtimeID(); + + while (entity.isGadget()) + { + game::Entity temp = entity; + entity = game::Entity(app::GadgetEntity_GetOwnerEntity(reinterpret_cast(entity.raw()), nullptr)); + if (entity.runtimeID() == avatarID) + return true; + } + + return false; + + } + + bool IsAttackByAvatar(game::Entity& attacker) + { + if (attacker.raw() == nullptr) + return false; + + auto& manager = game::EntityManager::instance(); + auto avatarID = manager.avatar()->runtimeID(); + auto attackerID = attacker.runtimeID(); + + return attackerID == avatarID || IsAvatarOwner(attacker); + } + + // Raises when any entity do hit event. + // Just recall attack few times (regulating by combatProp) + // It's not tested well, so, I think, anticheat can detect it. + static void LCBaseCombat_DoHitEntity_Hook(app::LCBaseCombat* __this, uint32_t targetID, app::AttackResult* attackResult, + bool ignoreCheckCanBeHitInMP, MethodInfo* method) + { + auto attacker = game::Entity(__this->fields._._._entity); + RapidFire& rapidFire = RapidFire::GetInstance(); + if (!IsAttackByAvatar(attacker) || !rapidFire.f_Enabled) + return CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, targetID, attackResult, ignoreCheckCanBeHitInMP, method); + + auto& manager = game::EntityManager::instance(); + auto originalTarget = manager.entity(targetID); + if (!game::filters::combined::OrganicTargets.IsValid(originalTarget)) + return CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, targetID, attackResult, ignoreCheckCanBeHitInMP, method); + + std::vector validEntities; + validEntities.push_back(originalTarget); + + if (rapidFire.f_MultiTarget) + { + auto filteredEntities = manager.entities(game::filters::combined::Monsters); + for (const auto& entity : filteredEntities) { + auto distance = originalTarget->distance(entity); + + if (entity->runtimeID() == targetID) + continue; + + if (distance > rapidFire.f_MultiTargetRadius) + continue; + + validEntities.push_back(entity); + } + } + + for (const auto& entity : validEntities) { + if (rapidFire.f_MultiHit) { + int attackCount = rapidFire.GetAttackCount(__this, entity->runtimeID(), attackResult); + for (int i = 0; i < attackCount; i++) + CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, entity->runtimeID(), attackResult, ignoreCheckCanBeHitInMP, method); + } else CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, entity->runtimeID(), attackResult, ignoreCheckCanBeHitInMP, method); + } + } +} + diff --git a/cheat-library/src/user/cheat/player/RapidFire.h b/cheat-library/src/user/cheat/player/RapidFire.h new file mode 100644 index 0000000..940741c --- /dev/null +++ b/cheat-library/src/user/cheat/player/RapidFire.h @@ -0,0 +1,37 @@ +#pragma once +#include +#include + +#include + +namespace cheat::feature +{ + + class RapidFire : public Feature + { + public: + config::Field> f_Enabled; + config::Field> f_MultiHit; + config::Field f_Multiplier; + config::Field f_OnePunch; + config::Field> f_Randomize; + config::Field f_minMultiplier; + config::Field f_maxMultiplier; + config::Field> f_MultiTarget; + config::Field f_MultiTargetRadius; + + static RapidFire& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + int GetAttackCount(app::LCBaseCombat* combat, uint32_t targetID, app::AttackResult* attackResult); + private: + RapidFire(); + int CalcCountToKill(float attackDamage, uint32_t targetID); + }; +} + diff --git a/cheat-library/src/user/cheat/teleport/ChestTeleport.cpp b/cheat-library/src/user/cheat/teleport/ChestTeleport.cpp new file mode 100644 index 0000000..fc82888 --- /dev/null +++ b/cheat-library/src/user/cheat/teleport/ChestTeleport.cpp @@ -0,0 +1,318 @@ +#include "pch-il2cpp.h" +#include "ChestTeleport.h" + +#include +#include +#include +#include +#include + +namespace cheat::feature +{ + + ChestTeleport::ChestTeleport() : ItemTeleportBase("ChestTeleport", "Chest"), + NF(f_FilterChestLocked , "Locked", "ChestTeleport", true), + NF(f_FilterChestInRock , "In rock", "ChestTeleport", true), + NF(f_FilterChestFrozen , "Frozen", "ChestTeleport", true), + NF(f_FilterChestBramble , "Bramble", "ChestTeleport", true), + NF(f_FilterChestTrap , "Trap", "ChestTeleport", true), + + NF(f_FilterChestCommon , "Common", "ChestTeleport", true), + NF(f_FilterChestExquisite , "Exquisite", "ChestTeleport", true), + NF(f_FilterChestPrecious , "Precious", "ChestTeleport", true), + NF(f_FilterChestLuxurious , "Luxurious", "ChestTeleport", true), + NF(f_FilterChestRemarkable, "Remarkable", "ChestTeleport", true), + + NF(f_FilterChest , "Chests", "ChestTeleport", true), + NF(f_FilterInvestigates , "Investigates", "ChestTeleport", false), + NF(f_FilterBookPage , "Book pages", "ChestTeleport", false), + NF(f_FilterBGM , "BGMs", "ChestTeleport", false), + NF(f_FilterQuestInt , "Quest Interaction", "ChestTeleport", false), + NF(f_FilterFloraChest , "Flora chest", "ChestTeleport", false), + + NF(f_FilterUnknown , "Unknowns", "ChestTeleport", true) + { } + + + void cheat::feature::ChestTeleport::DrawFilterOptions() + { + ConfigWidget(f_ShowInfo, "Show short info about nearest chest to the info window."); + + if (ImGui::TreeNode("Filters")) + { + + ImGui::Text("Type Filters"); + + ConfigWidget(f_FilterChest, "Enable chest detection and filters."); + ConfigWidget(f_FilterInvestigates); + ConfigWidget(f_FilterBookPage); + ConfigWidget(f_FilterBGM); + ConfigWidget(f_FilterQuestInt); + ConfigWidget(f_FilterFloraChest); + ConfigWidget(f_FilterUnknown, "Enable detection of unknown items.\nYou can see these items below, if they exist."); + + ImGui::Spacing(); + + if (!f_FilterChest) + ImGui::BeginDisabled(); + + if (ImGui::BeginTable("Chest Filters", 2, ImGuiTableFlags_NoBordersInBody)) + { + ImGui::TableNextColumn(); + ImGui::Text("Rarity Filter"); + + ImGui::TableNextColumn(); + ImGui::Text("State Filter"); + + ImGui::TableNextColumn(); + ConfigWidget(f_FilterChestCommon); + + ImGui::TableNextColumn(); + ConfigWidget(f_FilterChestLocked); + + + ImGui::TableNextColumn(); + ConfigWidget(f_FilterChestExquisite); + + ImGui::TableNextColumn(); + ConfigWidget(f_FilterChestInRock); + + + ImGui::TableNextColumn(); + ConfigWidget(f_FilterChestPrecious); + + ImGui::TableNextColumn(); + ConfigWidget(f_FilterChestFrozen); + + + ImGui::TableNextColumn(); + ConfigWidget(f_FilterChestLuxurious); + + ImGui::TableNextColumn(); + ConfigWidget(f_FilterChestBramble); + + + ImGui::TableNextColumn(); + ConfigWidget(f_FilterChestRemarkable); + + ImGui::TableNextColumn(); + ConfigWidget(f_FilterChestTrap); + + ImGui::EndTable(); + } + + if (!f_FilterChest) + ImGui::EndDisabled(); + + ImGui::TreePop(); + } + } + + const FeatureGUIInfo& ChestTeleport::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "Chest Teleport", "Teleport", true }; + return info; + } + + ChestTeleport& ChestTeleport::GetInstance() + { + static ChestTeleport instance; + return instance; + } + + bool ChestTeleport::IsValid(game::Entity* entity) const + { + if (!entity->isChest()) + return false; + + auto chest = reinterpret_cast(entity); + auto filterResult = FilterChest(chest); + return filterResult == ChestTeleport::FilterStatus::Valid || + (filterResult == ChestTeleport::FilterStatus::Unknown && f_FilterUnknown); + } + + cheat::feature::ChestTeleport::FilterStatus ChestTeleport::FilterChest(game::Chest* entity) const + { + auto itemType = entity->itemType(); + switch (itemType) + { + case game::Chest::ItemType::Chest: + { + if (!f_FilterChest) + return FilterStatus::Invalid; + + auto chestRarity = entity->chestRarity(); + if (chestRarity == game::Chest::ChestRarity::Unknown) + return FilterStatus::Unknown; + + bool rarityValid = (chestRarity == game::Chest::ChestRarity::Common && f_FilterChestCommon) || + (chestRarity == game::Chest::ChestRarity::Exquisite && f_FilterChestExquisite) || + (chestRarity == game::Chest::ChestRarity::Precious && f_FilterChestPrecious) || + (chestRarity == game::Chest::ChestRarity::Luxurious && f_FilterChestLuxurious) || + (chestRarity == game::Chest::ChestRarity::Remarkable && f_FilterChestRemarkable); + + if (!rarityValid) + return FilterStatus::Invalid; + + auto chestState = entity->chestState(); + if (chestState == game::Chest::ChestState::Invalid) + return FilterStatus::Invalid; + + bool chestStateValid = chestState == game::Chest::ChestState::None || + (chestState == game::Chest::ChestState::Locked && f_FilterChestLocked) || + (chestState == game::Chest::ChestState::InRock && f_FilterChestInRock) || + (chestState == game::Chest::ChestState::Frozen && f_FilterChestFrozen) || + (chestState == game::Chest::ChestState::Bramble && f_FilterChestBramble) || + (chestState == game::Chest::ChestState::Trap && f_FilterChestTrap); + + if (!chestStateValid) + return FilterStatus::Invalid; + + return FilterStatus::Valid; + } + case game::Chest::ItemType::Investigate: + return f_FilterInvestigates ? FilterStatus::Valid : FilterStatus::Invalid; + case game::Chest::ItemType::BookPage: + return f_FilterBookPage ? FilterStatus::Valid : FilterStatus::Invalid; + case game::Chest::ItemType::BGM: + return f_FilterBGM ? FilterStatus::Valid : FilterStatus::Invalid; + case game::Chest::ItemType::QuestInteract: + return f_FilterQuestInt ? FilterStatus::Valid : FilterStatus::Invalid; + case game::Chest::ItemType::Flora: + return f_FilterFloraChest ? FilterStatus::Valid : FilterStatus::Invalid; + case game::Chest::ItemType::None: + default: + return FilterStatus::Unknown; + } + + return FilterStatus::Unknown; + } + + void ChestTeleport::DrawItems() + { + DrawUnknowns(); + DrawChests(); + } + + bool ChestTeleport::NeedInfoDraw() const + { + return true; + } + + void ChestTeleport::DrawInfo() + { + auto entity = game::FindNearestEntity(*this); + auto chest = reinterpret_cast(entity); + + DrawEntityInfo(entity); + if (entity == nullptr) + return; + ImGui::SameLine(); + + ImGui::TextColored(chest->chestColor(), "%s", chest->minName().c_str()); + } + + void ChestTeleport::DrawChests() + { + if (!ImGui::TreeNode("Items")) + return; + + auto& manager = game::EntityManager::instance(); + auto entities = manager.entities(*this); + + ImGui::BeginTable("ChestsTable", 2); + for (auto& entity : entities) + { + ImGui::PushID(entity); + auto chest = reinterpret_cast(entity); + + ImGui::TableNextColumn(); + if (chest->itemType() == game::Chest::ItemType::Chest) + { + ImGui::TextColored(chest->chestColor(), "%s [%s] [%s] at %0.3fm", + magic_enum::enum_name(chest->itemType()).data(), + magic_enum::enum_name(chest->chestRarity()).data(), + magic_enum::enum_name(chest->chestState()).data(), + manager.avatar()->distance(entity)); + } + else + { + ImGui::TextColored(chest->chestColor(), "%s at %0.3fm", magic_enum::enum_name(chest->itemType()).data(), + manager.avatar()->distance(entity)); + } + + ImGui::TableNextColumn(); + + if (ImGui::Button("Teleport")) + { + auto& mapTeleport = MapTeleport::GetInstance(); + mapTeleport.TeleportTo(chest->absolutePosition()); + } + ImGui::PopID(); + } + ImGui::EndTable(); + ImGui::TreePop(); + } + + static bool ChestUnknownFilter(game::Entity* entity) + { + if (!entity->isChest()) + return false; + + auto chest = reinterpret_cast(entity); + auto& chestTp = ChestTeleport::GetInstance(); + return chestTp.FilterChest(chest) == ChestTeleport::FilterStatus::Unknown; + } + + void ChestTeleport::DrawUnknowns() + { + auto& manager = game::EntityManager::instance(); + auto unknowns = manager.entities(ChestUnknownFilter); + if (unknowns.empty()) + return; + + ImGui::TextColored(ImColor(255, 165, 0, 255), "Wow, you found unknown chest names. This means this chest type has no filter yet."); + TextURL("Please contribute to issue on GitHub", "https://github.com/CallowBlack/genshin-cheat/issues/48", false, false); + + if (ImGui::Button("Copy to clipboard")) + { + ImGui::LogToClipboard(); + + ImGui::LogText("Unknown Names:\n"); + + for (auto& entity : unknowns) + ImGui::LogText("%s; Position: %s; Scene: %u\n", entity->name().c_str(), + il2cppi_to_string(entity->relativePosition()).c_str(), game::GetCurrentPlayerSceneID()); + + ImGui::LogFinish(); + } + + if (!ImGui::TreeNode("Unknown Items")) + return; + + ImGui::BeginTable("UnknownsTable", 2); + + for (auto& entity : unknowns) + { + ImGui::PushID(entity); + + ImGui::TableNextColumn(); + ImGui::Text("%s. Dist %0.3f", entity->name().c_str(), manager.avatar()->distance(entity)); + + ImGui::TableNextColumn(); + if (ImGui::Button("TP")) + { + auto& mapTeleport = MapTeleport::GetInstance(); + mapTeleport.TeleportTo(entity->absolutePosition()); + } + + ImGui::PopID(); + } + ImGui::EndTable(); + ImGui::TreePop(); + } + + + +} + diff --git a/cheat-library/src/user/cheat/teleport/ChestTeleport.h b/cheat-library/src/user/cheat/teleport/ChestTeleport.h new file mode 100644 index 0000000..664b161 --- /dev/null +++ b/cheat-library/src/user/cheat/teleport/ChestTeleport.h @@ -0,0 +1,64 @@ +#pragma once +#include "ItemTeleportBase.h" + +#include +namespace cheat::feature +{ + + class ChestTeleport : public ItemTeleportBase + { + public: + + // Chest state filters + config::Field f_FilterChestLocked; + config::Field f_FilterChestInRock; + config::Field f_FilterChestFrozen; + config::Field f_FilterChestBramble; + config::Field f_FilterChestTrap; + + // Chest rarity filters + config::Field f_FilterChestCommon; + config::Field f_FilterChestExquisite; + config::Field f_FilterChestPrecious; + config::Field f_FilterChestLuxurious; + config::Field f_FilterChestRemarkable; + + // Type filters + config::Field f_FilterChest; + config::Field f_FilterInvestigates; + config::Field f_FilterBookPage; + config::Field f_FilterBGM; + config::Field f_FilterQuestInt; + config::Field f_FilterFloraChest; + + config::Field f_FilterUnknown; + + static ChestTeleport& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const final; + virtual void DrawFilterOptions() final; + + void DrawItems() final; + + bool NeedInfoDraw() const final; + void DrawInfo() final; + + bool IsValid(game::Entity* entity) const override; + + enum class FilterStatus + { + Unknown, + Valid, + Invalid + }; + + FilterStatus FilterChest(game::Chest* entity) const; + private: + + void DrawChests(); + void DrawUnknowns(); + + ChestTeleport(); + }; +} + diff --git a/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp b/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp new file mode 100644 index 0000000..6154517 --- /dev/null +++ b/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp @@ -0,0 +1,173 @@ +#include "pch-il2cpp.h" +#include "CustomTeleports.h" + +#include +#include +#include +#include "MapTeleport.h" +#include +#include +#include +#include +#include +#include + +namespace cheat::feature +{ + CustomTeleports::CustomTeleports() : Feature(), + NF(f_DebugMode, "Debug Mode", "CustomTeleports", false) // Soon to be added + { } + const FeatureGUIInfo &CustomTeleports::GetGUIInfo() const + { + static const FeatureGUIInfo info{"Custom Teleports", "Teleport", true}; + return info; + } + + void CustomTeleports::DrawMain() + { + auto &entityManager = game::EntityManager::instance(); + auto &MapTeleport = MapTeleport::GetInstance(); + static std::string teleportName; + ImGui::InputText("Teleport name", &teleportName); + static std::vector> teleports; + app::Vector3 pos = app::ActorUtils_GetAvatarPos(nullptr, nullptr); + if (ImGui::Button("Add teleport")) + { + // check if already added + bool found = false; + for (const auto &[name, pos] : teleports) + { + if (name == teleportName) + { + found = true; + break; + } + } + // check if name is valid and doesnt contain special characters + if (teleportName.find_first_of("\\/:*?\"<>|") != std::string::npos) + { + return; + } + + teleports.push_back({teleportName, pos}); + + auto dir = std::filesystem::current_path(); + dir /= "teleports"; + if (!std::filesystem::exists(dir)) + std::filesystem::create_directory(dir); + std::ofstream ofs(dir / (teleportName + ".json")); + nlohmann::json j; + j["name"] = teleportName; + j["position"] = {pos.x, pos.y, pos.z}; + ofs << j; + teleportName.clear(); + } + ImGui::SameLine(); + if (ImGui::Button("Reload")) + { + auto dir = std::filesystem::current_path(); + dir /= "teleports"; + auto result = std::filesystem::directory_iterator(dir); + teleports.clear(); + for (auto &file : result) + { + + if (file.path().extension() != ".json") + continue; + + std::string name = file.path().stem().string(); + if (file.is_directory()) + continue; + + std::ifstream ifs(file.path()); + nlohmann::json j; + ifs >> j; + teleports.push_back({j["name"], {j["position"][0], j["position"][1], j["position"][2]}}); + LOG_INFO("Loaded teleport %s", name.c_str()); + } + } + ImGui::SameLine(); + // open directory + if (ImGui::Button("Open Folder")) + { + auto dir = std::filesystem::current_path(); + dir /= "teleports"; + ShellExecuteA(NULL, "open", dir.string().c_str(), NULL, NULL, SW_SHOW); + } + + static std::string jsonInput; + ImGui::InputTextMultiline("JSON input", &jsonInput, ImVec2(0, 50), ImGuiInputTextFlags_AllowTabInput); + + if (ImGui::Button("Load from JSON")) + { + auto dir = std::filesystem::current_path(); + dir /= "teleports"; + LOG_INFO("Defined dir"); + if (!std::filesystem::exists(dir)) + std::filesystem::create_directory(dir); + nlohmann::json j; + try + { + j = nlohmann::json::parse(jsonInput); + } + catch (nlohmann::json::parse_error &e) + { + LOG_ERROR("Failed to parse JSON: %s", e.what()); + return; + } + LOG_INFO("Parsed JSON"); + std::string teleportName = j["name"]; + app::Vector3 pos = {j["position"][0], j["position"][1], j["position"][2]}; + teleports.push_back({teleportName, pos}); + LOG_INFO("Loaded teleport %s", teleportName.c_str()); + std::ofstream ofs(dir / (teleportName + ".json")); + ofs << jsonInput; + jsonInput.clear(); + } + + if (ImGui::TreeNode("Teleports")) + { + std::string search; + ImGui::InputText("Search", &search); + for (const auto &[teleportName, position] : teleports) + { + // find without case sensitivity + if (search.empty() || std::search(teleportName.begin(), teleportName.end(), search.begin(), search.end(), [](char a, char b) + { return std::tolower(a) == std::tolower(b); }) != teleportName.end()) + { + if (ImGui::TreeNode(teleportName.data())) + { + ImGui::Text("Position: %.3f, %.3f, %.3f", position.x, position.y, position.z); + if (ImGui::Button("Teleport")) + { + auto &mapTeleport = MapTeleport::GetInstance(); + mapTeleport.TeleportTo(position); + } + ImGui::SameLine(); + if (ImGui::Button("Remove")) + { + auto dir = std::filesystem::current_path(); + dir /= "teleports"; + // delete file + std::filesystem::remove(dir / (teleportName + ".json")); + auto it = std::find_if(teleports.begin(), teleports.end(), [&teleportName](const auto &pair) + { return pair.first == teleportName; }); + if (it != teleports.end()) + teleports.erase(it); + } + ImGui::SameLine(); + HelpMarker("Warning: Removing a teleport will remove the file from the directory. It will be lost forever."); + ImGui::TreePop(); + } + } + } + ImGui::TreePop(); + } + } + + CustomTeleports& CustomTeleports::GetInstance() + { + static CustomTeleports instance; + return instance; + } +} diff --git a/cheat-library/src/user/cheat/teleport/CustomTeleports.h b/cheat-library/src/user/cheat/teleport/CustomTeleports.h new file mode 100644 index 0000000..9fa2d09 --- /dev/null +++ b/cheat-library/src/user/cheat/teleport/CustomTeleports.h @@ -0,0 +1,20 @@ +#pragma once + +#include + +#include +#include + +namespace cheat::feature +{ + class CustomTeleports : public Feature + { + public: + config::Field> f_DebugMode; + static CustomTeleports& GetInstance(); + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + private: + CustomTeleports(); + }; +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/teleport/ItemTeleportBase.cpp b/cheat-library/src/user/cheat/teleport/ItemTeleportBase.cpp new file mode 100644 index 0000000..ada4545 --- /dev/null +++ b/cheat-library/src/user/cheat/teleport/ItemTeleportBase.cpp @@ -0,0 +1,110 @@ +#include "pch-il2cpp.h" +#include "ItemTeleportBase.h" + +#include +#include +#include +#include +#include +#include + +namespace cheat::feature +{ + ItemTeleportBase::ItemTeleportBase(const std::string& section, const std::string& name) : Feature(), + NF(f_Key, "Teleport to Nearest", section, Hotkey()), + NF(f_ShowInfo, "Show Info", section, true), + section(section), name(name) + { + f_Key.value().PressedEvent += MY_METHOD_HANDLER(ItemTeleportBase::OnTeleportKeyPressed); + } + + void ItemTeleportBase::DrawMain() + { + auto desc = util::string_format("When key pressed, will teleport to nearest %s if exists.", name.c_str()); + ConfigWidget(f_Key, desc.c_str()); + + DrawFilterOptions(); + + DrawItems(); + } + + void ItemTeleportBase::DrawItems() + { + auto nodeName = util::string_format("%s list", name.c_str()); + if (ImGui::TreeNode(nodeName.c_str())) + { + DrawEntities(); + ImGui::TreePop(); + } + } + + bool ItemTeleportBase::NeedInfoDraw() const +{ + return f_ShowInfo; + } + + void ItemTeleportBase::DrawInfo() + { + DrawNearestEntityInfo(); + } + + void ItemTeleportBase::OnTeleportKeyPressed() + { + if (GenshinCM::IsMenuShowed()) + return; + + auto entity = game::FindNearestEntity(*this); + if (entity != nullptr) + { + MapTeleport& mapTeleport = MapTeleport::GetInstance(); + mapTeleport.TeleportTo(entity->absolutePosition()); + } + } + + void ItemTeleportBase::DrawEntityInfo(game::Entity* entity) + { + if (entity == nullptr) + { + ImGui::Text(name.c_str()); ImGui::SameLine(); + ImGui::TextColored(ImVec4(1.0f, 0.1f, 0.1f, 1.0f), "not found"); + return; + } + + auto& manager = game::EntityManager::instance(); + ImGui::Text(name.c_str()); ImGui::SameLine(); + ImGui::TextColored(ImVec4(0.1f, 1.0f, 0.1f, 1.0f), "%.3fm", manager.avatar()->distance(entity)); + } + + void ItemTeleportBase::DrawNearestEntityInfo() + { + auto nearestEntity = game::FindNearestEntity(*this); + DrawEntityInfo(nearestEntity); + } + + void ItemTeleportBase::DrawEntities() + { + auto& manager = game::EntityManager::instance(); + auto entities = manager.entities(*this); + if (entities.size() == 0) + { + ImGui::Text("Not found."); + return; + } + + for (const auto& entity : entities) + { + ImGui::Text("Dist %.03fm", manager.avatar()->distance(entity)); + ImGui::SameLine(); + auto label = util::string_format("Teleport ## %p", entity); + if (ImGui::Button(label.c_str())) + { + MapTeleport& mapTeleport = MapTeleport::GetInstance(); + mapTeleport.TeleportTo(entity->absolutePosition()); + } + } + } + + + +} + diff --git a/cheat-library/src/user/cheat/teleport/ItemTeleportBase.h b/cheat-library/src/user/cheat/teleport/ItemTeleportBase.h new file mode 100644 index 0000000..e57b93d --- /dev/null +++ b/cheat-library/src/user/cheat/teleport/ItemTeleportBase.h @@ -0,0 +1,39 @@ +#pragma once +#include +#include + +#include + +namespace cheat::feature +{ + + class ItemTeleportBase : public Feature, public game::IEntityFilter + { + public: + config::Field f_Key; + config::Field f_ShowInfo; + + void DrawMain() final; + + virtual void DrawItems(); + virtual void DrawFilterOptions() { }; + + virtual bool NeedInfoDraw() const; + virtual void DrawInfo() override; + + protected: + ItemTeleportBase(const std::string& section, const std::string& name); + + void DrawEntityInfo(game::Entity* entity); + + private: + void DrawEntities(); + void DrawNearestEntityInfo(); + + void OnTeleportKeyPressed(); + + std::string section; + std::string name; + }; +} + diff --git a/cheat-library/src/user/cheat/teleport/MapTeleport.cpp b/cheat-library/src/user/cheat/teleport/MapTeleport.cpp new file mode 100644 index 0000000..d89b41a --- /dev/null +++ b/cheat-library/src/user/cheat/teleport/MapTeleport.cpp @@ -0,0 +1,304 @@ +#include "pch-il2cpp.h" +#include "MapTeleport.h" + +#include +#include +#include +#include + +namespace cheat::feature +{ + static void InLevelMapPageContext_OnMapClicked_Hook(app::InLevelMapPageContext* __this, app::Vector2 screenPos, MethodInfo* method); + static void InLevelMapPageContext_OnMarkClicked_Hook(app::InLevelMapPageContext* __this, app::MonoMapMark* mark, MethodInfo* method); + static app::Vector3 LocalEntityInfoData_GetTargetPos_Hook(app::LocalEntityInfoData* __this, MethodInfo* method); + + static bool LoadingManager_NeedTransByServer_Hook(app::LoadingManager* __this, uint32_t sceneId, app::Vector3 position, MethodInfo* method); + static void LoadingManager_PerformPlayerTransmit_Hook(app::LoadingManager* __this, app::Vector3 position, app::EnterType__Enum someEnum, + uint32_t someUint1, app::CMHGHBNDBMG_ECPNDLCPDIE__Enum teleportType, uint32_t someUint2, MethodInfo* method); + static void Entity_SetPosition_Hook(app::BaseEntity* __this, app::Vector3 position, bool someBool, MethodInfo* method); + + MapTeleport::MapTeleport() : Feature(), + NF(f_Enabled, "Map teleport", "MapTeleport", false), + NF(f_DetectHeight, "Auto height detect", "MapTeleport", true), + NF(f_DefaultHeight, "Default teleport height", "MapTeleport", 300.0f), + NF(f_Key, "Teleport key", "MapTeleport", Hotkey('T')) + { + // Map touch + HookManager::install(app::InLevelMapPageContext_OnMarkClicked, InLevelMapPageContext_OnMarkClicked_Hook); + HookManager::install(app::InLevelMapPageContext_OnMapClicked, InLevelMapPageContext_OnMapClicked_Hook); + + // Stage 1 + HookManager::install(app::LocalEntityInfoData_GetTargetPos, LocalEntityInfoData_GetTargetPos_Hook); + HookManager::install(app::LoadingManager_NeedTransByServer, LoadingManager_NeedTransByServer_Hook); + + // Stage 2 + HookManager::install(app::LoadingManager_PerformPlayerTransmit, LoadingManager_PerformPlayerTransmit_Hook); + + // Stage 3 + HookManager::install(app::Entity_SetPosition, Entity_SetPosition_Hook); + + events::GameUpdateEvent += MY_METHOD_HANDLER(MapTeleport::OnGameUpdate); + } + + const FeatureGUIInfo& MapTeleport::GetGUIInfo() const + { + static const FeatureGUIInfo info { "Map Teleport", "Teleport", true }; + return info; + } + + void MapTeleport::DrawMain() + { + ConfigWidget("Enabled", + f_Enabled, + "Enable teleport-to-mark functionality.\n" \ + "Usage: \n" \ + "\t1. Open map.\n" \ + "\t2. Hold [Teleport Key] and click with the LMB anywhere in the map.\n" \ + "\tDone. You have been teleported to selected location.\n" \ + "Teleport might glitch if teleporting to an extremely high location. \n" \ + "Adjust Override Height accordingly to help avoid." + ); + + if (!f_Enabled) + ImGui::BeginDisabled(); + + ConfigWidget("Override Height (m)", f_DefaultHeight, 1.0F, 200.0F, 800.0F, + "If teleport cannot get ground height of target location,\nit will teleport you to the height specified here.\n" \ + "It is recommended to have this value to be at least as high as a mountain.\nOtherwise, you may fall through the ground."); + + ConfigWidget("Teleport Key", f_Key, true, + "Key to hold down before clicking on target location."); + + if (!f_Enabled) + ImGui::EndDisabled(); + } + + MapTeleport& MapTeleport::GetInstance() + { + static MapTeleport instance; + return instance; + } + + // Hook for game manager needs for starting teleport in game update thread. + // Because, when we use Teleport call in non game thread (imgui update thread for example) + // the game just skip this call, and only with second call you start teleporting, + // but to prev selected location. + void MapTeleport::OnGameUpdate() + { + if (taskInfo.waitingThread) + { + taskInfo.waitingThread = false; + auto someSingleton = GET_SINGLETON(LoadingManager); + app::LoadingManager_RequestSceneTransToPoint(someSingleton, taskInfo.sceneId, taskInfo.waypointId, nullptr, nullptr); + } + } + + // Finding nearest waypoint to position, and request teleport to it. + // After, in teleport events, change waypoint position to target position. + void MapTeleport::TeleportTo(app::Vector3 position, bool needHeightCalc, uint32_t sceneId) + { + LOG_DEBUG("Stage 0. Target location at %s", il2cppi_to_string(position).c_str()); + + auto avatarPosition = app::ActorUtils_GetAvatarPos(nullptr, nullptr); + auto nearestWaypoint = game::FindNearestWaypoint(position, sceneId); + + if (nearestWaypoint.data == nullptr) + { + LOG_ERROR("Stage 0. Failed to find the nearest unlocked waypoint. Maybe you haven't unlocked anyone or the scene has no waypoints."); + return; + } + else + { + float dist = app::Vector3_Distance(nullptr, position, nearestWaypoint.position, nullptr); + LOG_DEBUG("Stage 0. Found nearest waypoint { sceneId: %d; waypointId: %d } with distance %fm.", + nearestWaypoint.sceneId, nearestWaypoint.waypointId, dist); + } + taskInfo = { true, needHeightCalc, 3, position, nearestWaypoint.sceneId, nearestWaypoint.waypointId }; + } + + static bool ScreenToMapPosition(app::InLevelMapPageContext* context, app::Vector2 screenPos, app::Vector2* outMapPos) + { + auto mapBackground = app::MonoInLevelMapPage_get_mapBackground(context->fields._pageMono, nullptr); + if (!mapBackground) + return false; + + auto uimanager = GET_SINGLETON(UIManager_1); + if (uimanager == nullptr) + return false; + + auto screenCamera = uimanager->fields._uiCamera; + if (screenCamera == nullptr) + return false; + + bool result = app::RectTransformUtility_ScreenPointToLocalPointInRectangle(nullptr, mapBackground, screenPos, screenCamera, outMapPos, nullptr); + if (!result) + return false; + + auto mapRect = app::MonoInLevelMapPage_get_mapRect(context->fields._pageMono, nullptr); + auto mapViewRect = context->fields._mapViewRect; + + // Map rect pos to map view rect pos + outMapPos->x = (outMapPos->x - mapRect.m_XMin) / mapRect.m_Width; + outMapPos->x = (outMapPos->x * mapViewRect.m_Width) + mapViewRect.m_XMin; + + outMapPos->y = (outMapPos->y - mapRect.m_YMin) / mapRect.m_Height; + outMapPos->y = (outMapPos->y * mapViewRect.m_Height) + mapViewRect.m_YMin; + + return true; + } + + void MapTeleport::TeleportTo(app::Vector2 mapPosition) + { + auto worldPosition = app::Miscs_GenWorldPos(nullptr, mapPosition, nullptr); + + auto relativePos = app::WorldShiftManager_GetRelativePosition(nullptr, worldPosition, nullptr); + auto groundHeight = app::Miscs_CalcCurrentGroundHeight(nullptr, relativePos.x, relativePos.z, nullptr); + + TeleportTo({ worldPosition.x, groundHeight > 0 ? groundHeight + 5 : f_DefaultHeight, worldPosition.z }, true, game::GetCurrentMapSceneID()); + } + + // Calling teleport if map clicked. + // This event invokes only when free space of map clicked, + // if clicked mark, invokes InLevelMapPageContext_OnMarkClicked_Hook. + static void InLevelMapPageContext_OnMapClicked_Hook(app::InLevelMapPageContext* __this, app::Vector2 screenPos, MethodInfo* method) + { + MapTeleport& mapTeleport = MapTeleport::GetInstance(); + + if (!mapTeleport.f_Enabled || !mapTeleport.f_Key.value().IsPressed()) + return CALL_ORIGIN(InLevelMapPageContext_OnMapClicked_Hook, __this, screenPos, method); + + app::Vector2 mapPosition{}; + bool mapPosResult = ScreenToMapPosition(__this, screenPos, &mapPosition); + if (!mapPosResult) + return; + + mapTeleport.TeleportTo(mapPosition); + } + + // Calling teleport if map marks clicked. + static void InLevelMapPageContext_OnMarkClicked_Hook(app::InLevelMapPageContext* __this, app::MonoMapMark* mark, MethodInfo* method) + { + MapTeleport& mapTeleport = MapTeleport::GetInstance(); + if (!mapTeleport.f_Enabled || !mapTeleport.f_Key.value().IsPressed()) + return CALL_ORIGIN(InLevelMapPageContext_OnMarkClicked_Hook, __this, mark, method); + + mapTeleport.TeleportTo(mark->fields._levelMapPos); + } + + // Before call, game checked if distance is near (<60) to cast near teleport. + // But it check distance to waypoint location, given by this function. + // So, we need to replace target position to do correct check. + void MapTeleport::OnGetTargetPos(app::Vector3& position) + { + if (taskInfo.currentStage == 3) + { + position = taskInfo.targetPosition; + taskInfo.currentStage--; + LOG_DEBUG("Stage 1. Replace waypoint tp position."); + } + } + + // Checking is teleport is far (>60m), if it isn't we clear stage. + void MapTeleport::OnCheckTeleportDistance(bool needTransByServer) + { + if (!needTransByServer && taskInfo.currentStage == 2) + { + LOG_DEBUG("Stage 1. Distance is less than 60m. Performing fast tp."); + taskInfo.currentStage = 0; + } + } + + // After server responded, it will give us the waypoint target location to load. + // Change it to teleport location. + void MapTeleport::OnPerformPlayerTransmit(app::Vector3& position) + { + if (taskInfo.currentStage == 2) + { + LOG_DEBUG("Stage 2. Changing loading location."); + position = taskInfo.targetPosition; + taskInfo.currentStage--; + } + } + + // Last event in teleportation is avatar teleport, we just change avatar position from + // waypoint location to teleport location. And also recalculate ground position if it needed. + void MapTeleport::OnSetAvatarPosition(app::Vector3& position) + { + if (taskInfo.currentStage == 1) + { + app::Vector3 originPosition = position; + position = taskInfo.targetPosition; + LOG_DEBUG("Stage 3. Changing avatar entity position."); + + if (taskInfo.needHeightCalculation) + { + auto relativePos = app::WorldShiftManager_GetRelativePosition(nullptr, position, nullptr); + float groundHeight; + switch (taskInfo.sceneId) + { + // Underground mines has tunnel structure, so we need to calculate height from waypoint height to prevent tp above world. + case 6: // Underground mines scene id, if it was changed, please create issue + groundHeight = app::Miscs_CalcCurrentGroundHeight_1(nullptr, relativePos.x, relativePos.z, originPosition.y, 100, + app::Miscs_GetSceneGroundLayerMask(nullptr, nullptr), nullptr); + break; + default: + groundHeight = app::Miscs_CalcCurrentGroundWaterHeight(nullptr, relativePos.x, relativePos.z, nullptr); + break; + } + if (groundHeight > 0 && position.y != groundHeight) + { + position.y = groundHeight + 5; + LOG_DEBUG("Stage 3. Changing height to %f", position.y); + } + } + + LOG_DEBUG("Finish. Teleport to mark finished."); + taskInfo.currentStage--; + } + } + + static app::Vector3 LocalEntityInfoData_GetTargetPos_Hook(app::LocalEntityInfoData* __this, MethodInfo* method) + { + auto result = CALL_ORIGIN(LocalEntityInfoData_GetTargetPos_Hook, __this, method); + + MapTeleport& mapTeleport = MapTeleport::GetInstance(); + mapTeleport.OnGetTargetPos(result); + + return result; + } + + static bool LoadingManager_NeedTransByServer_Hook(app::LoadingManager* __this, uint32_t sceneId, app::Vector3 position, MethodInfo* method) + { + auto result = CALL_ORIGIN(LoadingManager_NeedTransByServer_Hook, __this, sceneId, position, method); + + MapTeleport& mapTeleport = MapTeleport::GetInstance(); + mapTeleport.OnCheckTeleportDistance(result); + + return result; + } + + + static void LoadingManager_PerformPlayerTransmit_Hook(app::LoadingManager* __this, app::Vector3 position, app::EnterType__Enum someEnum, + uint32_t someUint1, app::CMHGHBNDBMG_ECPNDLCPDIE__Enum teleportType, uint32_t someUint2, MethodInfo* method) + { + MapTeleport& mapTeleport = MapTeleport::GetInstance(); + mapTeleport.OnPerformPlayerTransmit(position); + + CALL_ORIGIN(LoadingManager_PerformPlayerTransmit_Hook, __this, position, someEnum, someUint1, teleportType, someUint2, method); + } + + + static void Entity_SetPosition_Hook(app::BaseEntity* __this, app::Vector3 position, bool someBool, MethodInfo* method) + { + auto& manager = game::EntityManager::instance(); + if (manager.avatar()->raw() == __this) + { + MapTeleport& mapTeleport = MapTeleport::GetInstance(); + mapTeleport.OnSetAvatarPosition(position); + } + + CALL_ORIGIN(Entity_SetPosition_Hook, __this, position, someBool, method); + } + +} + diff --git a/cheat-library/src/user/cheat/teleport/MapTeleport.h b/cheat-library/src/user/cheat/teleport/MapTeleport.h new file mode 100644 index 0000000..fc5610b --- /dev/null +++ b/cheat-library/src/user/cheat/teleport/MapTeleport.h @@ -0,0 +1,53 @@ +#pragma once + +#include + +#include +#include + +namespace cheat::feature +{ + + class MapTeleport : public Feature + { + public: + config::Field> f_Enabled; + config::Field f_DetectHeight; + config::Field f_DefaultHeight; + config::Field f_Key; + + static MapTeleport& GetInstance(); + + void TeleportTo(app::Vector3 position, bool needHeightCalc = false, uint32_t sceneId = 0); + + void TeleportTo(app::Vector2 mapPosition); + + void OnGetTargetPos(app::Vector3& position); + + void OnCheckTeleportDistance(bool needTransByServer); + + void OnPerformPlayerTransmit(app::Vector3& position); + + void OnSetAvatarPosition(app::Vector3& position); + + void OnGameUpdate(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + private: + struct TeleportTaskInfo + { + bool waitingThread = false; + bool needHeightCalculation = false; + int currentStage = 0; + app::Vector3 targetPosition = {}; + uint32_t sceneId = 0; + uint32_t waypointId = 0; + }; + TeleportTaskInfo taskInfo; + + MapTeleport(); + }; +} + diff --git a/cheat-library/src/user/cheat/teleport/OculiTeleport.cpp b/cheat-library/src/user/cheat/teleport/OculiTeleport.cpp new file mode 100644 index 0000000..cc7bc5a --- /dev/null +++ b/cheat-library/src/user/cheat/teleport/OculiTeleport.cpp @@ -0,0 +1,30 @@ +#include "pch-il2cpp.h" +#include "OculiTeleport.h" + +#include +#include + +namespace cheat::feature +{ + OculiTeleport::OculiTeleport() : ItemTeleportBase("OculiTeleport", "Oculi") + { } + + const FeatureGUIInfo& OculiTeleport::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "0culi Teleport", "Teleport", true }; + return info; + } + + OculiTeleport& OculiTeleport::GetInstance() + { + static OculiTeleport instance; + return instance; + } + + bool OculiTeleport::IsValid(game::Entity* entity) const + { + return game::filters::combined::Oculies.IsValid(entity); + } + +} + diff --git a/cheat-library/src/user/cheat/teleport/OculiTeleport.h b/cheat-library/src/user/cheat/teleport/OculiTeleport.h new file mode 100644 index 0000000..b2c9233 --- /dev/null +++ b/cheat-library/src/user/cheat/teleport/OculiTeleport.h @@ -0,0 +1,19 @@ +#pragma once +#include "ItemTeleportBase.h" + +namespace cheat::feature +{ + + class OculiTeleport : public ItemTeleportBase + { + public: + static OculiTeleport& GetInstance(); + const FeatureGUIInfo& GetGUIInfo() const override; + + bool IsValid(game::Entity* entity) const override; + + private: + OculiTeleport(); + }; +} + diff --git a/cheat-library/src/user/cheat/visuals/CameraZoom.cpp b/cheat-library/src/user/cheat/visuals/CameraZoom.cpp new file mode 100644 index 0000000..8f17c82 --- /dev/null +++ b/cheat-library/src/user/cheat/visuals/CameraZoom.cpp @@ -0,0 +1,64 @@ +#include "pch-il2cpp.h" +#include "CameraZoom.h" + +#include +#include + +namespace cheat::feature +{ + static void SCameraModuleInitialize_SetWarningLocateRatio_Hook(app::SCameraModuleInitialize* __this, double deltaTime, app::CameraShareData* data, MethodInfo* method); + + CameraZoom::CameraZoom() : Feature(), + NFEX(f_Enabled, "Camera Zoom", "CameraZoom", "Visuals", false, false), + NF(f_Zoom, "Zoom", "CameraZoom", 200) + { + HookManager::install(app::SCameraModuleInitialize_SetWarningLocateRatio, SCameraModuleInitialize_SetWarningLocateRatio_Hook); + } + + const FeatureGUIInfo& CameraZoom::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "CameraZoom", "Visuals", false }; + return info; + } + + void CameraZoom::DrawMain() + { + ConfigWidget("", f_Enabled); ImGui::SameLine(); + ConfigWidget("Camera Zoom", f_Zoom, 0.01f, 1.0f, 500.0f, "Custom camera zooming.\n" + "Specified value is multiplier for default zoom distance.\n" + "For example:\n" + "\t2.0 = 2.0 * defaultZoom" + ); + } + + bool CameraZoom::NeedStatusDraw() const + { + return f_Enabled; + } + + void CameraZoom::DrawStatus() + { + ImGui::Text("Camera zoom [%.1fx]", f_Zoom.value()); + } + + CameraZoom& CameraZoom::GetInstance() + { + static CameraZoom instance; + return instance; + } + + void SCameraModuleInitialize_SetWarningLocateRatio_Hook(app::SCameraModuleInitialize* __this, double deltaTime, app::CameraShareData* data, MethodInfo* method) + { + CameraZoom& cameraZoom = CameraZoom::GetInstance(); + if (cameraZoom.f_Enabled) + { + data->currentWarningLocateRatio= static_cast(cameraZoom.f_Zoom); + //data->isRadiusSqueezing; + } + else + data->currentWarningLocateRatio = 1.0; + + CALL_ORIGIN(SCameraModuleInitialize_SetWarningLocateRatio_Hook, __this, deltaTime, data, method); + } +} + diff --git a/cheat-library/src/user/cheat/visuals/CameraZoom.h b/cheat-library/src/user/cheat/visuals/CameraZoom.h new file mode 100644 index 0000000..d04e4b3 --- /dev/null +++ b/cheat-library/src/user/cheat/visuals/CameraZoom.h @@ -0,0 +1,26 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class CameraZoom : public Feature + { + public: + config::Field> f_Enabled; + config::Field f_Zoom; + + static CameraZoom& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + CameraZoom(); + }; +} + diff --git a/cheat-library/src/user/cheat/visuals/FPSUnlock.cpp b/cheat-library/src/user/cheat/visuals/FPSUnlock.cpp new file mode 100644 index 0000000..10fcf64 --- /dev/null +++ b/cheat-library/src/user/cheat/visuals/FPSUnlock.cpp @@ -0,0 +1,61 @@ +#include "pch-il2cpp.h" +#include "FPSUnlock.h" + +#include +#include + +namespace cheat::feature +{ + FPSUnlock::FPSUnlock() : Feature(), + NF(f_Enabled, "Fps unlock", "Visuals::FPSUnlocker", false), + NF(f_Fps, "FPS", "Visuals::FPSUnlocker", 240) + { + events::GameUpdateEvent += MY_METHOD_HANDLER(FPSUnlock::OnGameUpdate); + } + + const FeatureGUIInfo& FPSUnlock::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "FPSUnlock", "Visuals", false }; + return info; + } + + void FPSUnlock::DrawMain() + { + ConfigWidget("", f_Enabled); ImGui::SameLine(); + ConfigWidget(f_Fps, 1, 30, 360, "Unlocks higher framerate."); + } + + bool FPSUnlock::NeedStatusDraw() const + { + return f_Enabled; + } + + void FPSUnlock::DrawStatus() + { + ImGui::Text("FPSUnlock [%d]", f_Fps.value()); + } + + FPSUnlock& FPSUnlock::GetInstance() + { + static FPSUnlock instance; + return instance; + } + + void FPSUnlock::OnGameUpdate() + { + static bool _lastEnabledStatus = false; + static int _originFPS = 30; + if (_lastEnabledStatus && !f_Enabled) + { + app::Application_set_targetFrameRate(nullptr, _originFPS, nullptr); + } + else if (!_lastEnabledStatus && f_Enabled) + { + _originFPS = app::Application_get_targetFrameRate(nullptr, nullptr); + } + _lastEnabledStatus = f_Enabled; + + if (f_Enabled) + app::Application_set_targetFrameRate(nullptr, f_Fps, nullptr); + } +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/visuals/FPSUnlock.h b/cheat-library/src/user/cheat/visuals/FPSUnlock.h new file mode 100644 index 0000000..395baf9 --- /dev/null +++ b/cheat-library/src/user/cheat/visuals/FPSUnlock.h @@ -0,0 +1,27 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class FPSUnlock : public Feature + { + public: + config::Field f_Enabled; + config::Field f_Fps; + + static FPSUnlock& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + void OnGameUpdate(); + + private: + FPSUnlock(); + }; +} + diff --git a/cheat-library/src/user/cheat/visuals/NoFog.cpp b/cheat-library/src/user/cheat/visuals/NoFog.cpp new file mode 100644 index 0000000..82ac880 --- /dev/null +++ b/cheat-library/src/user/cheat/visuals/NoFog.cpp @@ -0,0 +1,47 @@ +#include "pch-il2cpp.h" +#include "NoFog.h" + +#include +#include + +namespace cheat::feature +{ + NoFog::NoFog() : Feature(), + NFEX(f_Enabled, "No Fog", "NoFog", "Visuals", false, false) + { + events::GameUpdateEvent += MY_METHOD_HANDLER(NoFog::OnGameUpdate); + } + + const FeatureGUIInfo& NoFog::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "NoFog", "Visuals", false }; + return info; + } + + void NoFog::DrawMain() + { + ConfigWidget(f_Enabled, "Removes the fog."); + } + + bool NoFog::NeedStatusDraw() const + { + return f_Enabled; + } + + void NoFog::DrawStatus() + { + ImGui::Text("NoFog"); + } + + NoFog& NoFog::GetInstance() + { + static NoFog instance; + return instance; + } + + void NoFog::OnGameUpdate() + { + app::RenderSettings_set_fog(nullptr, !f_Enabled, nullptr); + } +} + diff --git a/cheat-library/src/user/cheat/visuals/NoFog.h b/cheat-library/src/user/cheat/visuals/NoFog.h new file mode 100644 index 0000000..677f815 --- /dev/null +++ b/cheat-library/src/user/cheat/visuals/NoFog.h @@ -0,0 +1,28 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class NoFog : public Feature + { + public: + config::Field> f_Enabled; + + static NoFog& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + + void OnGameUpdate(); + + NoFog(); + }; +} + diff --git a/cheat-library/src/user/cheat/world/AutoDestroy.cpp b/cheat-library/src/user/cheat/world/AutoDestroy.cpp new file mode 100644 index 0000000..13839d2 --- /dev/null +++ b/cheat-library/src/user/cheat/world/AutoDestroy.cpp @@ -0,0 +1,101 @@ +#include "pch-il2cpp.h" +#include "AutoDestroy.h" + +#include +#include + +#include +#include +#include +#include + +namespace cheat::feature +{ + static void LCAbilityElement_ReduceModifierDurability_Hook(app::LCAbilityElement* __this, int32_t modifierDurabilityIndex, float reduceDurability, app::Nullable_1_Single_ deltaTime, MethodInfo* method); + + AutoDestroy::AutoDestroy() : Feature(), + NF(f_Enabled, "Auto Destroy", "AutoDestroy", false), + NF(f_DestroyOres, "Destroy Ores", "AutoDestroy", false), + NF(f_DestroyShields, "Destroy Shields", "AutoDestroy", false), + NF(f_DestroyDoodads, "Destroy Doodads", "AutoDestroy", false), + NF(f_Range, "Range", "AutoDestroy", 10.0f) + { + HookManager::install(app::LCAbilityElement_ReduceModifierDurability, LCAbilityElement_ReduceModifierDurability_Hook); + } + + const FeatureGUIInfo& AutoDestroy::GetGUIInfo() const + { + static const FeatureGUIInfo info { "Auto Destroy Objects", "World", true }; + return info; + } + + void AutoDestroy::DrawMain() + { + ImGui::TextColored(ImColor(255, 165, 0, 255), "Note. This feature is not fully tested detection-wise.\n" + "Not recommended for main accounts or used with high values."); + + ConfigWidget("Enabled", f_Enabled, "Instantly destroys non-living objects within range."); + ImGui::Indent(); + ConfigWidget("Ores", f_DestroyOres, "Ores and variants, e.g. electro crystals, marrows, etc."); + ConfigWidget("Shields", f_DestroyShields, "Abyss mage/churl/slime shields."); + ImGui::SameLine(); + ImGui::TextColored(ImColor(255, 165, 0, 255), "Extremely risky!"); + ConfigWidget("Doodads", f_DestroyDoodads, "Barrels, boxes, vases, etc."); + ImGui::SameLine(); + ImGui::TextColored(ImColor(255, 165, 0, 255), "Extremely risky!"); + ImGui::Unindent(); + ConfigWidget("Range (m)", f_Range, 0.1f, 1.0f, 15.0f); + } + + bool AutoDestroy::NeedStatusDraw() const + { + return f_Enabled; + } + + void AutoDestroy::DrawStatus() + { + ImGui::Text("Destroy [%.01fm%s%s%s%s]", + f_Range.value(), + f_DestroyOres || f_DestroyShields || f_DestroyDoodads ? "|" : "", + f_DestroyOres ? "O" : "", + f_DestroyShields ? "S" : "", + f_DestroyDoodads ? "D" : ""); + } + + AutoDestroy& AutoDestroy::GetInstance() + { + static AutoDestroy instance; + return instance; + } + + // Thanks to @RyujinZX + // Every ore has ability element component + // Durability of ability element is a ore health + // Every tick ability element check reducing durability, for ore in calm state `reduceDurability` equals 0, means HP don't change + // We need just change this value to current durability or above to destroy ore + // This function also can work with some types of shields (TODO: improve killaura with this function) + static void LCAbilityElement_ReduceModifierDurability_Hook(app::LCAbilityElement* __this, int32_t modifierDurabilityIndex, float reduceDurability, app::Nullable_1_Single_ deltaTime, MethodInfo* method) + { + auto& manager = game::EntityManager::instance(); + auto& autoDestroy = AutoDestroy::GetInstance(); + auto entity = __this->fields._._._entity; + if (autoDestroy.f_Enabled && + autoDestroy.f_Range > manager.avatar()->distance(entity) && + ( + (autoDestroy.f_DestroyOres && game::filters::combined::Ores.IsValid(manager.entity(entity))) || + (autoDestroy.f_DestroyDoodads && game::filters::combined::Doodads.IsValid(manager.entity(entity))) || + (autoDestroy.f_DestroyShields && !game::filters::combined::MonsterBosses.IsValid(manager.entity(entity)) && ( + game::filters::combined::MonsterShielded.IsValid(manager.entity(entity)) || // For shields attached to monsters, e.g. abyss mage shields. + game::filters::combined::MonsterEquips.IsValid(manager.entity(entity)) // For shields/weapons equipped by monsters, e.g. rock shield. + )) + ) + ) + { + // This value always above any ore durability + reduceDurability = 1000; + } + CALL_ORIGIN(LCAbilityElement_ReduceModifierDurability_Hook, __this, modifierDurabilityIndex, reduceDurability, deltaTime, method); + } + +} + diff --git a/cheat-library/src/user/cheat/world/AutoDestroy.h b/cheat-library/src/user/cheat/world/AutoDestroy.h new file mode 100644 index 0000000..14e0985 --- /dev/null +++ b/cheat-library/src/user/cheat/world/AutoDestroy.h @@ -0,0 +1,29 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class AutoDestroy : public Feature + { + public: + config::Field> f_Enabled; + config::Field> f_DestroyOres; + config::Field> f_DestroyShields; + config::Field> f_DestroyDoodads; + config::Field f_Range; + + static AutoDestroy& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + AutoDestroy(); + }; +} + diff --git a/cheat-library/src/user/cheat/world/AutoFish.cpp b/cheat-library/src/user/cheat/world/AutoFish.cpp new file mode 100644 index 0000000..6df814a --- /dev/null +++ b/cheat-library/src/user/cheat/world/AutoFish.cpp @@ -0,0 +1,182 @@ +#include "pch-il2cpp.h" +#include "AutoFish.h" + +#include +#include + +#include +#include + +namespace cheat::feature +{ + AutoFish::AutoFish() : Feature(), + NFEX(f_Enabled, "Auto Fish", "m_AutoFish", "AutoFish", false, false), + NF(f_DelayBeforeCatch, "Delay before catch", "AutoFish", 2000), + NF(f_AutoRecastRod, "Recast rod", "AutoFish", true), + NF(f_DelayBeforeRecast, "Delay before recast", "AutoFish", 500) + { + events::GameUpdateEvent += MY_METHOD_HANDLER(AutoFish::OnGameUpdate); + + HookManager::install(app::FishingModule_RequestFishCastRod, FishingModule_RequestFishCastRod_Hook); + HookManager::install(app::FishingModule_onFishChosenNotify, FishingModule_onFishChosenNotify_Hook); + HookManager::install(app::FishingModule_OnFishBiteRsp, FishingModule_OnFishBiteRsp_Hook); + HookManager::install(app::FishingModule_OnFishBattleBeginRsp, FishingModule_OnFishBattleBeginRsp_Hook); + HookManager::install(app::FishingModule_OnFishBattleEndRsp, FishingModule_OnFishBattleEndRsp_Hook); + HookManager::install(app::FishingModule_OnExitFishingRsp, FishingModule_OnExitFishingRsp_Hook); + } + + const FeatureGUIInfo& AutoFish::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "Fishing", "World", true }; + return info; + } + + void AutoFish::DrawMain() + { + ConfigWidget("Enabled", f_Enabled, "Automatically catch fish."); + ConfigWidget("Delay (ms)", f_DelayBeforeCatch, 100, 500, 4000, "Fish will be caught after this delay (in ms)."); + + ImGui::Spacing(); + + ConfigWidget(f_AutoRecastRod, "If enabled, rod will recasted. Without visualization."); + ConfigWidget("Delay (ms)", f_DelayBeforeRecast, 10, 100, 4000, "Rod will be recast after this delay (in ms)."); + } + + bool AutoFish::NeedStatusDraw() const + { + return f_Enabled; + } + + void AutoFish::DrawStatus() + { + ImGui::Text("Auto Fish"); + } + + AutoFish& AutoFish::GetInstance() + { + static AutoFish instance; + return instance; + } + + void AutoFish::FishingModule_onFishChosenNotify_Hook(void* __this, void* notify, MethodInfo* method) + { + CALL_ORIGIN(FishingModule_onFishChosenNotify_Hook, __this, notify, method); + + auto& autoFish = GetInstance(); + if (!autoFish.f_Enabled) + return; + + app::FishingModule_RequestFishBite(__this, nullptr); + } + + void AutoFish::FishingModule_OnFishBiteRsp_Hook(void* __this, app::FishBiteRsp* rsp, MethodInfo* method) + { + auto& autoFish = GetInstance(); + if (!autoFish.f_Enabled) + { + CALL_ORIGIN(FishingModule_OnFishBiteRsp_Hook, __this, rsp, method); + return; + } + + app::FishingModule_RequestFishBattleBegin(__this, nullptr); + } + + void AutoFish::FishingModule_OnFishBattleBeginRsp_Hook(void* __this, app::FishBattleBeginRsp* rsp, MethodInfo* method) + { + auto& autoFish = GetInstance(); + if (!autoFish.f_Enabled) + { + CALL_ORIGIN(FishingModule_OnFishBattleBeginRsp_Hook, __this, rsp, method); + return; + } + + std::lock_guard catchLock(autoFish.m_BattleFinishTimestampMutex); + autoFish.m_BattleFinishTimestamp = app::GetTimestamp(nullptr, nullptr) + autoFish.f_DelayBeforeCatch; + } + + void AutoFish::FishingModule_OnFishBattleEndRsp_Hook(void* __this, app::FishBattleEndRsp* rsp, MethodInfo* method) + { + CALL_ORIGIN(FishingModule_OnFishBattleEndRsp_Hook, __this, rsp, method); + + auto& autoFish = GetInstance(); + + if (rsp->fields.battleResult_ == app::FishBattleResult__Enum::Cancel + || rsp->fields.battleResult_ == app::FishBattleResult__Enum::Exit) + { + std::lock_guard _lock2(autoFish.m_RecastTimestampMutex); + autoFish.m_RecastTimestamp = 0; + return; + } + + if (!autoFish.f_Enabled) + return; + + if (rsp->fields.retcode_ != 0) + { + LOG_WARNING("Failed to catch fish, retrying in %u ms", autoFish.f_DelayBeforeCatch); + std::lock_guard catchLock(autoFish.m_BattleFinishTimestampMutex); + autoFish.m_BattleFinishTimestamp = app::GetTimestamp(nullptr, nullptr) + autoFish.f_DelayBeforeCatch; + return; + } + + if (!autoFish.f_AutoRecastRod) + return; + + std::lock_guard _lock(autoFish.m_RecastTimestampMutex); + autoFish.m_RecastTimestamp = app::GetTimestamp(nullptr, nullptr) + autoFish.f_DelayBeforeRecast; + } + + void AutoFish::FishingModule_OnExitFishingRsp_Hook(void* __this, void* rsp, MethodInfo* method) + { + CALL_ORIGIN(FishingModule_OnExitFishingRsp_Hook, __this, rsp, method); + + auto& autoFish = GetInstance(); + + std::lock_guard _lock(autoFish.m_RecastTimestampMutex); + autoFish.m_LastCastData.exist = false; + } + + void AutoFish::FishingModule_RequestFishCastRod_Hook(void* __this, uint32_t baitId, uint32_t rodId, app::Vector3 pos, uint32_t rodEntityId, MethodInfo* method) + { + CALL_ORIGIN(FishingModule_RequestFishCastRod_Hook, __this, baitId, rodId, pos, rodEntityId, method); + + auto& autoFish = GetInstance(); + + autoFish.m_LastCastData.exist = true; + autoFish.m_LastCastData.fishingModule = __this; + autoFish.m_LastCastData.baitId = baitId; + autoFish.m_LastCastData.rodId = rodId; + autoFish.m_LastCastData.pos = pos; + autoFish.m_LastCastData.rodEntityId = rodEntityId; + + autoFish.m_RecastTimestamp = 0; + } + + void AutoFish::OnGameUpdate() + { + auto timestamp = app::GetTimestamp(nullptr, nullptr); + + std::lock_guard _lock(m_BattleFinishTimestampMutex); + std::lock_guard _lock2(m_RecastTimestampMutex); + + if (!m_LastCastData.exist) + return; + + if (m_BattleFinishTimestamp != 0 && timestamp > m_BattleFinishTimestamp) + { + m_BattleFinishTimestamp = 0; + + app::FishingModule_RequestFishBattleEnd(m_LastCastData.fishingModule, app::FishBattleResult__Enum::Succ, f_DelayBeforeCatch == 4.0f, + static_cast(f_DelayBeforeCatch / 1000), nullptr); + } + + if (m_RecastTimestamp != 0 && timestamp > m_RecastTimestamp) + { + m_RecastTimestamp = 0; + + app::FishingModule_RequestFishCastRod(m_LastCastData.fishingModule, m_LastCastData.baitId, + m_LastCastData.rodId, m_LastCastData.pos, m_LastCastData.rodEntityId, nullptr); + } + } +} + diff --git a/cheat-library/src/user/cheat/world/AutoFish.h b/cheat-library/src/user/cheat/world/AutoFish.h new file mode 100644 index 0000000..15fa9fc --- /dev/null +++ b/cheat-library/src/user/cheat/world/AutoFish.h @@ -0,0 +1,56 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class AutoFish : public Feature + { + public: + config::Field> f_Enabled; + config::Field f_DelayBeforeCatch; + config::Field f_AutoRecastRod; + config::Field f_DelayBeforeRecast; + + static AutoFish& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + AutoFish(); + + std::mutex m_BattleFinishTimestampMutex; + uint64_t m_BattleFinishTimestamp; + + std::mutex m_RecastTimestampMutex; + uint64_t m_RecastTimestamp; + + struct RodCastData + { + bool exist; + + void* fishingModule; + uint32_t baitId; + uint32_t rodId; + app::Vector3 pos; + uint32_t rodEntityId; + }; + + RodCastData m_LastCastData; + + void OnGameUpdate(); + + // Hooks + static void FishingModule_OnFishBattleEndRsp_Hook(void* __this, app::FishBattleEndRsp* rsp, MethodInfo* method); + static void FishingModule_OnExitFishingRsp_Hook(void* __this, void* rsp, MethodInfo* method); + static void FishingModule_RequestFishCastRod_Hook(void* __this, uint32_t baitId, uint32_t rodId, app::Vector3 pos, uint32_t rodEntityId, MethodInfo* method); + static void FishingModule_onFishChosenNotify_Hook(void* __this, void* notify, MethodInfo* method); + static void FishingModule_OnFishBiteRsp_Hook(void* __this, app::FishBiteRsp* rsp, MethodInfo* method); + static void FishingModule_OnFishBattleBeginRsp_Hook(void* __this, app::FishBattleBeginRsp* rsp, MethodInfo* method); + }; +} diff --git a/cheat-library/src/user/cheat/world/AutoLoot.cpp b/cheat-library/src/user/cheat/world/AutoLoot.cpp new file mode 100644 index 0000000..7606fe1 --- /dev/null +++ b/cheat-library/src/user/cheat/world/AutoLoot.cpp @@ -0,0 +1,251 @@ +#include "pch-il2cpp.h" +#include "AutoLoot.h" + +#include +#include +#include +#include +#include + +namespace cheat::feature +{ + static void LCSelectPickup_AddInteeBtnByID_Hook(void* __this, app::BaseEntity* entity, MethodInfo* method); + static bool LCSelectPickup_IsInPosition_Hook(void* __this, app::BaseEntity* entity, MethodInfo* method); + static bool LCSelectPickup_IsOutPosition_Hook(void* __this, app::BaseEntity* entity, MethodInfo* method); + + AutoLoot::AutoLoot() : Feature(), + NF(f_AutoPickup, "Auto-pickup drops", "AutoLoot", false), + NF(f_AutoTreasure, "Auto-open treasures", "AutoLoot", false), + NF(f_UseCustomRange, "Use custom pickup range", "AutoLoot", false), + NF(f_Chest, "Chests", "AutoLoot", false), + NF(f_Leyline, "Leylines", "AutoLoot", false), + NF(f_Investigate, "Search points", "AutoLoot", false), + NF(f_QuestInteract, "Quest interacts", "AutoLoot", false), + NF(f_Others, "Other treasures", "AutoLoot", false), + NF(f_DelayTime, "Delay time (in ms)", "AutoLoot", 150), + NF(f_CustomRange, "Pickup Range", "AutoLoot", 5.0f), + toBeLootedItems(), nextLootTime(0) + { + // Auto loot + HookManager::install(app::LCSelectPickup_AddInteeBtnByID, LCSelectPickup_AddInteeBtnByID_Hook); + HookManager::install(app::LCSelectPickup_IsInPosition, LCSelectPickup_IsInPosition_Hook); + HookManager::install(app::LCSelectPickup_IsOutPosition, LCSelectPickup_IsOutPosition_Hook); + + events::GameUpdateEvent += MY_METHOD_HANDLER(AutoLoot::OnGameUpdate); + } + + const FeatureGUIInfo& AutoLoot::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "Auto Loot", "World", true }; + return info; + } + + void AutoLoot::DrawMain() + { + if (ImGui::BeginTable("AutoLootDrawTable", 2, ImGuiTableFlags_NoBordersInBody)) + { + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); + + BeginGroupPanel("Auto-Pickup", ImVec2(-1, 0)); + { + ConfigWidget("Enabled", f_AutoPickup, "Automatically picks up dropped items.\n" \ + "Note: Using this with custom range and low delay times is extremely risky.\n" \ + "Abuse will definitely merit a ban.\n\n" \ + "If using with custom range, make sure this is turned on FIRST."); + ImGui::SameLine(); + ImGui::TextColored(ImColor(255, 165, 0, 255), "Read the note!"); + } + EndGroupPanel(); + + BeginGroupPanel("Custom Pickup Range", ImVec2(-1, 0)); + { + ConfigWidget("Enabled", f_UseCustomRange, "Enable custom pickup range.\n" \ + "High values are not recommended, as it is easily detected by the server.\n\n" \ + "If using with auto-pickup/auto-treasure, turn this on LAST."); + ImGui::SameLine(); + ImGui::TextColored(ImColor(255, 165, 0, 255), "Read the note!"); + ImGui::SetNextItemWidth(100.0f); + ConfigWidget("Range (m)", f_CustomRange, 0.1f, 0.5f, 40.0f, "Modifies pickup/open range to this value (in meters)."); + } + EndGroupPanel(); + + BeginGroupPanel("Looting Speed", ImVec2(-1, 0)); + { + ImGui::SetNextItemWidth(100.0f); + ConfigWidget("Delay Time (ms)", f_DelayTime, 1, 0, 1000, "Delay (in ms) between loot/open actions.\n" \ + "Values under 200ms are unsafe.\nNot used if no auto-functions are on."); + } + EndGroupPanel(); + + ImGui::TableSetColumnIndex(1); + BeginGroupPanel("Auto-Treasure", ImVec2(-1, 0)); + { + ConfigWidget("Enabled", f_AutoTreasure, "Automatically opens chests and other treasures.\n" \ + "Note: Using this with custom range and low delay times is extremely risky.\n" \ + "Abuse will definitely merit a ban.\n\n" \ + "If using with custom range, make sure this is turned on FIRST."); + ImGui::SameLine(); + ImGui::TextColored(ImColor(255, 165, 0, 255), "Read the note!"); + ImGui::Indent(); + ConfigWidget("Chests", f_Chest, "Common, precious, luxurious, etc."); + ConfigWidget("Leyline", f_Leyline, "Mora/XP, overworld/Trounce bosses, etc."); + ConfigWidget("Search Points", f_Investigate, "Marked as Investigate/Search, etc."); + ConfigWidget("Quest Interacts", f_QuestInteract, "Valid quest interact points."); + ConfigWidget("Others", f_Others, "Book Pages, Spincrystals, etc."); + ImGui::Unindent(); + } + EndGroupPanel(); + ImGui::EndTable(); + } + } + + bool AutoLoot::NeedStatusDraw() const +{ + return f_AutoPickup || f_AutoTreasure || f_UseCustomRange; + } + + void AutoLoot::DrawStatus() + { + ImGui::Text("Auto Loot\n[%s%s%s%s%s%s]", + f_AutoPickup ? "AP" : "", + f_AutoPickup && (f_AutoTreasure || f_UseCustomRange) ? "|" : "", + f_AutoTreasure ? "AT" : "", + f_AutoTreasure && f_UseCustomRange ? "|" : "", + f_UseCustomRange ? fmt::format("CR{:.1f}m", f_CustomRange.value()).c_str() : "", + f_AutoPickup || f_AutoTreasure ? fmt::format("|{}ms", f_DelayTime.value()).c_str() : "" + ); + } + + AutoLoot& AutoLoot::GetInstance() + { + static AutoLoot instance; + return instance; + } + + bool AutoLoot::OnCreateButton(app::BaseEntity* entity) + { + if (!f_AutoPickup) + return false; + + auto itemModule = GET_SINGLETON(ItemModule); + if (itemModule == nullptr) + return false; + + auto entityId = entity->fields._runtimeID_k__BackingField; + if (f_DelayTime == 0) + { + app::ItemModule_PickItem(itemModule, entityId, nullptr); + return true; + } + + toBeLootedItems.push(entityId); + return false; + } + + void AutoLoot::OnGameUpdate() + { + auto currentTime = util::GetCurrentTimeMillisec(); + if (currentTime < nextLootTime) + return; + + auto entityManager = GET_SINGLETON(EntityManager); + if (entityManager == nullptr) + return; + + // RyujinZX#6666 + if (f_AutoTreasure) + { + auto& manager = game::EntityManager::instance(); + for (auto& entity : manager.entities(game::filters::combined::Chests)) + { + float range = f_UseCustomRange ? f_CustomRange : 3.5f; + if (manager.avatar()->distance(entity) >= range) + continue; + + auto chest = reinterpret_cast(entity); + auto chestType = chest->itemType(); + + if (!f_Investigate && chestType == game::Chest::ItemType::Investigate) + continue; + + if (!f_QuestInteract && chestType == game::Chest::ItemType::QuestInteract) + continue; + + if (!f_Others && ( + chestType == game::Chest::ItemType::BGM || + chestType == game::Chest::ItemType::BookPage + )) + continue; + + if (!f_Leyline && chestType == game::Chest::ItemType::Flora) + continue; + + if (chestType == game::Chest::ItemType::Chest) + { + if (!f_Chest) + continue; + auto ChestState = chest->chestState(); + if (ChestState != game::Chest::ChestState::None) + continue; + } + + uint32_t entityId = entity->runtimeID(); + toBeLootedItems.push(entityId); + } + } + + auto entityId = toBeLootedItems.pop(); + if (!entityId) + return; + + auto itemModule = GET_SINGLETON(ItemModule); + if (itemModule == nullptr) + return; + + auto entity = app::EntityManager_GetValidEntity(entityManager, *entityId, nullptr); + if (entity == nullptr) + return; + + app::ItemModule_PickItem(itemModule, *entityId, nullptr); + nextLootTime = currentTime + (int)f_DelayTime; + } + + void AutoLoot::OnCheckIsInPosition(bool& result, app::BaseEntity* entity) + { + if (f_AutoPickup || f_UseCustomRange) { + float pickupRange = f_UseCustomRange ? f_CustomRange : 3.5f; + auto& manager = game::EntityManager::instance(); + result = manager.avatar()->distance(entity) < pickupRange; + } + } + + static void LCSelectPickup_AddInteeBtnByID_Hook(void* __this, app::BaseEntity* entity, MethodInfo* method) + { + AutoLoot& autoLoot = AutoLoot::GetInstance(); + bool canceled = autoLoot.OnCreateButton(entity); + if (!canceled) + CALL_ORIGIN(LCSelectPickup_AddInteeBtnByID_Hook, __this, entity, method); + } + + static bool LCSelectPickup_IsInPosition_Hook(void* __this, app::BaseEntity* entity, MethodInfo* method) + { + bool result = CALL_ORIGIN(LCSelectPickup_IsInPosition_Hook, __this, entity, method); + + AutoLoot& autoLoot = AutoLoot::GetInstance(); + autoLoot.OnCheckIsInPosition(result, entity); + + return result; + } + + static bool LCSelectPickup_IsOutPosition_Hook(void* __this, app::BaseEntity* entity, MethodInfo* method) + { + bool result = CALL_ORIGIN(LCSelectPickup_IsOutPosition_Hook, __this, entity, method); + + AutoLoot& autoLoot = AutoLoot::GetInstance(); + autoLoot.OnCheckIsInPosition(result, entity); + + return result; + } +} + diff --git a/cheat-library/src/user/cheat/world/AutoLoot.h b/cheat-library/src/user/cheat/world/AutoLoot.h new file mode 100644 index 0000000..baa9866 --- /dev/null +++ b/cheat-library/src/user/cheat/world/AutoLoot.h @@ -0,0 +1,44 @@ +#pragma once +#include +#include +#include + +namespace cheat::feature +{ + + class AutoLoot : public Feature + { + public: + config::Field> f_AutoPickup; + config::Field> f_AutoTreasure; + config::Field> f_UseCustomRange; + + config::Field f_DelayTime; + config::Field f_CustomRange; + + config::Field f_Chest; + config::Field f_Leyline; + config::Field f_Investigate; + config::Field f_QuestInteract; + config::Field f_Others; + + static AutoLoot& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + bool OnCreateButton(app::BaseEntity* entity); + void OnGameUpdate(); + void OnCheckIsInPosition(bool& result, app::BaseEntity* entity); + + private: + + SafeQueue toBeLootedItems; + SafeValue nextLootTime; + AutoLoot(); + }; +} + diff --git a/cheat-library/src/user/cheat/world/AutoTreeFarm.cpp b/cheat-library/src/user/cheat/world/AutoTreeFarm.cpp new file mode 100644 index 0000000..bd97207 --- /dev/null +++ b/cheat-library/src/user/cheat/world/AutoTreeFarm.cpp @@ -0,0 +1,194 @@ +#include "pch-il2cpp.h" +#include "AutoTreeFarm.h" + +#include +#include + +#include +#include +#include + +namespace cheat::feature +{ + AutoTreeFarm::AutoTreeFarm() : Feature(), + NF(m_Enabled, "Auto tree farm", "AutoTreeFarm", false), + NF(m_AttackDelay, "Attack delay", "AutoTreeFarm", 150), + NF(m_RepeatDelay, "Repeat delay", "AutoTreeFarm", 500), + NF(m_AttackPerTree,"Attack per tree", "AutoTreeFarm", 5), + NF(m_Range, "Range", "AutoTreeFarm", 15.0f) + { + events::GameUpdateEvent += MY_METHOD_HANDLER(AutoTreeFarm::OnGameUpdate); + } + + const FeatureGUIInfo& AutoTreeFarm::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "Auto Tree Farm", "World", true }; + return info; + } + + void AutoTreeFarm::DrawMain() + { + ImGui::TextColored(ImColor(255, 165, 0, 255), "Note. This feature is not fully tested detection-wise.\n" + "Not recommended for main accounts or used with high values."); + + ConfigWidget("Enabled", m_Enabled, "Automatically attack trees in range."); + ConfigWidget("Attack Delay (ms)", m_AttackDelay, 1, 0, 1000, "Delay before attacking the next tree (in ms)."); + ConfigWidget("Repeat Delay (ms)", m_RepeatDelay, 1, 500, 1000, "Delay before attacking the same tree (in ms).\nValues <500ms will not work."); + + ConfigWidget("Attacks per Tree", m_AttackPerTree, 1, 0, 100, "Count of attacks for one tree.\n" \ + "Recommended to set to 10 or lower to avoid attacking empty trees.\n" \ + "Set to 0 for unlimited attacks (even empty trees, extremely high risk).\n" \ + "Note: Memorized trees' attacks are reset after game restart." + ); + + ConfigWidget("Range (m)", m_Range, 0.1f, 1.0f, 15.0f); + ImGui::TextColored(ImColor(255, 165, 0, 255), "Range is softly limited to ~15m for safety purposes."); + } + + bool AutoTreeFarm::NeedStatusDraw() const + { + return m_Enabled; + } + + void AutoTreeFarm::DrawStatus() + { + ImGui::Text("Tree Farm\n[%dms|%dms|%d|%.1fm]", + m_AttackDelay.value(), + m_RepeatDelay.value(), + m_AttackPerTree.value(), + m_Range.value()); + } + + AutoTreeFarm& AutoTreeFarm::GetInstance() + { + static AutoTreeFarm instance; + return instance; + } + + + std::unordered_set GetTreeSet() + { + auto scenePropManager = GET_SINGLETON(ScenePropManager); + if (scenePropManager == nullptr) + return {}; + + auto scenePropDict = TO_UNI_DICT(scenePropManager->fields._scenePropDict, int32_t, app::Object*); + if (scenePropDict == nullptr) + return {}; + + std::unordered_set trees; + for (auto& [id, propObject] : scenePropDict->pairs()) + { + auto tree = CastTo(propObject, *app::SceneTreeObject__TypeInfo); + if (tree == nullptr) + continue; + + trees.insert(tree); + } + + return trees; + } + + + struct Vector3d + { + float x, y, z; + + Vector3d(const app::Vector3& v) + { + x = v.x; + y = v.y; + z = v.z; + } + + bool operator==(const Vector3d& b) const + { + return x == b.x && y == b.y && z == b.z; + } + + }; + + struct hash_fn + { + std::size_t operator() (const Vector3d& vector) const + { + return std::hash()(vector.x) ^ std::hash()(vector.y) ^ std::hash()(vector.z); + } + }; + + + + void AutoTreeFarm::OnGameUpdate() + { + static std::unordered_map s_AttackCountMap; + + static std::queue s_AttackQueue; + static std::unordered_set s_AttackQueueSet; + static uint64_t s_LastAttackTimestamp = 0; + + uint64_t timestamp = app::GetTimestamp(nullptr, nullptr); + if (!m_Enabled || s_LastAttackTimestamp + m_AttackDelay > timestamp) + return; + + auto& manager = game::EntityManager::instance(); + auto scenePropManager = GET_SINGLETON(ScenePropManager); + auto networkManager = GET_SINGLETON(NetworkManager_1); + if (networkManager == nullptr || scenePropManager == nullptr) + return; + + auto treeSet = GetTreeSet(); + for (auto& tree : treeSet) + { + if (s_AttackQueueSet.count(tree) > 0) + continue; + + if (tree->fields._lastTreeDropTimeStamp + m_RepeatDelay > timestamp) + continue; + + auto position = tree->fields._.realBounds.m_Center; + if (manager.avatar()->distance(app::WorldShiftManager_GetRelativePosition(nullptr, position, nullptr)) > m_Range) + continue; + + s_AttackQueueSet.insert(tree); + s_AttackQueue.push(tree); + } + + while (!s_AttackQueue.empty()) + { + auto tree = s_AttackQueue.front(); + s_AttackQueue.pop(); + s_AttackQueueSet.erase(tree); + + if (treeSet.count(tree) == 0) + continue; + + auto position = tree->fields._.realBounds.m_Center; + if (manager.avatar()->distance(app::WorldShiftManager_GetRelativePosition(nullptr, position, nullptr)) > m_Range) + continue; + + app::ECGLPBEEEAA__Enum treeType; + auto pattern = tree->fields._config->fields._._.scenePropPatternName; + if (!app::ScenePropManager_GetTreeTypeByPattern(scenePropManager, pattern, &treeType, nullptr)) + continue; + + if (m_AttackPerTree > 0) + { + if (s_AttackCountMap.count(position) == 0) + s_AttackCountMap[position] = 0; + + auto& attackCount = s_AttackCountMap[position]; + attackCount++; + if (attackCount > m_AttackPerTree) + continue; + } + + tree->fields._lastTreeDropTimeStamp = timestamp; + app::NetworkManager_1_RequestHitTreeDropNotify(networkManager, position, position, treeType, nullptr); + break; + } + + if (s_AttackCountMap.size() > 1000) + s_AttackCountMap.clear(); + } +} + diff --git a/cheat-library/src/user/cheat/world/AutoTreeFarm.h b/cheat-library/src/user/cheat/world/AutoTreeFarm.h new file mode 100644 index 0000000..cf448b5 --- /dev/null +++ b/cheat-library/src/user/cheat/world/AutoTreeFarm.h @@ -0,0 +1,31 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class AutoTreeFarm : public Feature + { + public: + config::Field> m_Enabled; + config::Field m_AttackDelay; + config::Field m_RepeatDelay; + config::Field m_AttackPerTree; + config::Field m_Range; + + static AutoTreeFarm& GetInstance(); + + void OnGameUpdate(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + AutoTreeFarm(); + }; +} + diff --git a/cheat-library/src/user/cheat/world/DialogSkip.cpp b/cheat-library/src/user/cheat/world/DialogSkip.cpp new file mode 100644 index 0000000..0038f57 --- /dev/null +++ b/cheat-library/src/user/cheat/world/DialogSkip.cpp @@ -0,0 +1,135 @@ +#include "pch-il2cpp.h" +#include "DialogSkip.h" + +#include +#include + +namespace cheat::feature +{ + static void InLevelCutScenePageContext_UpdateView_Hook(app::InLevelCutScenePageContext* __this, MethodInfo* method); + static void InLevelCutScenePageContext_ClearView_Hook(app::InLevelCutScenePageContext* __this, MethodInfo* method); + + DialogSkip::DialogSkip() : Feature(), + NF(f_Enabled, "Auto talk", "AutoTalk", false), + NF(f_AutoSelectDialog, "Auto select dialog", "AutoTalk", true), + NF(f_ExcludeImportant, "Exclude Katheryne/Tubby", "AutoTalk", true), + NF(f_FastDialog, "Fast dialog", "AutoTalk", false), + NF(f_TimeSpeedup, "Time Speed", "AutoTalk", 5.0f) + { + HookManager::install(app::InLevelCutScenePageContext_UpdateView, InLevelCutScenePageContext_UpdateView_Hook); + HookManager::install(app::InLevelCutScenePageContext_ClearView, InLevelCutScenePageContext_ClearView_Hook); + } + + const FeatureGUIInfo& DialogSkip::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "Auto Talk", "World", true }; + return info; + } + + void DialogSkip::DrawMain() + { + ConfigWidget("Enabled", f_Enabled, "Automatically continue the dialog."); + ConfigWidget("Auto-select Dialog", f_AutoSelectDialog, "Automatically select dialog choices."); + if (f_AutoSelectDialog) + { + ImGui::Indent(); + ConfigWidget("Exclude Katheryne/Tubby", f_ExcludeImportant, "Exclude Kath/Tubby from auto-select."); + ImGui::Unindent(); + } + ConfigWidget("Fast Dialog", f_FastDialog, "Speeds up Time"); + if (f_FastDialog) + { + ConfigWidget(f_TimeSpeedup, 0.1f, 2.0f, 50.0f, "Time Speedup Multipler \nHigher Values will lead to sync issues with servers \nand is not recommended for Laggy Internet connections."); + } + } + + bool DialogSkip::NeedStatusDraw() const +{ + return f_Enabled; + } + + void DialogSkip::DrawStatus() + { + ImGui::Text("Dialog [%s%s%s%s%s]", + f_AutoSelectDialog ? "Auto" : "Manual", + f_AutoSelectDialog && (f_ExcludeImportant || f_FastDialog) ? "|" : "", + f_ExcludeImportant ? "Exc" : "", + f_ExcludeImportant && f_FastDialog ? "|" : "", + f_FastDialog ? "Fast" : "Normal"); + } + + DialogSkip& DialogSkip::GetInstance() + { + static DialogSkip instance; + return instance; + } + + // Raised when dialog view updating + // We call free click, if auto talk enabled, that means we just emulate user click + // When appear dialog choose we create notify with dialog select first item. + void DialogSkip::OnCutScenePageUpdate(app::InLevelCutScenePageContext* context) + { + if (!f_Enabled) + return; + + auto talkDialog = context->fields._talkDialog; + if (talkDialog == nullptr) + return; + + if (f_FastDialog) + app::Time_set_timeScale(nullptr, f_TimeSpeedup, nullptr); + + bool isImportant = false; + if (f_ExcludeImportant) + { + // TODO: Add a custom filter in the future where users can + // add their own name substrings of entities to avoid + // speeding up dialog on. + std::vector impEntitiesNames = { + "Djinn", + "Katheryne" + }; + auto dialogPartnerID = context->fields._inteeID; + auto& manager = game::EntityManager::instance(); + auto dialogPartner = manager.entity(dialogPartnerID); + auto dialogPartnerName = dialogPartner->name(); + for (auto impEntityName : impEntitiesNames) + { + if (dialogPartnerName.find(impEntityName) != -1) { + LOG_DEBUG("%s %s %d", dialogPartnerName.c_str(), impEntityName, dialogPartnerName.find(impEntityName)); + isImportant = true; + break; + } + } + } + + if (talkDialog->fields._inSelect && f_AutoSelectDialog && !isImportant) + { + int32_t value = 0; + auto object = il2cpp_value_box((Il2CppClass*)*app::Int32__TypeInfo, &value); + auto notify = app::Notify_CreateNotify_1(nullptr, app::AJAPIFPNFKP__Enum::DialogSelectItemNotify, (app::Object*)object, nullptr); + app::TalkDialogContext_OnDialogSelectItem(talkDialog, ¬ify, nullptr); + } + else if (!talkDialog->fields._inSelect) + app::InLevelCutScenePageContext_OnFreeClick(context, nullptr); + } + + static void InLevelCutScenePageContext_UpdateView_Hook(app::InLevelCutScenePageContext* __this, MethodInfo* method) + { + CALL_ORIGIN(InLevelCutScenePageContext_UpdateView_Hook, __this, method); + + DialogSkip& dialogSkip = DialogSkip::GetInstance(); + dialogSkip.OnCutScenePageUpdate(__this); + } + + // Raised when exiting a dialog. We try to hackishly return to normal value. + // Should be a better way to store the pre-dialog speed using Time_get_timeScale. + static void InLevelCutScenePageContext_ClearView_Hook(app::InLevelCutScenePageContext* __this, MethodInfo* method) + { + float gameSpeed = app::Time_get_timeScale(nullptr, nullptr); + if (gameSpeed > 1.0f) + app::Time_set_timeScale(nullptr, 1.0f, nullptr); + CALL_ORIGIN(InLevelCutScenePageContext_ClearView_Hook, __this, method); + } +} + diff --git a/cheat-library/src/user/cheat/world/DialogSkip.h b/cheat-library/src/user/cheat/world/DialogSkip.h new file mode 100644 index 0000000..4d3731d --- /dev/null +++ b/cheat-library/src/user/cheat/world/DialogSkip.h @@ -0,0 +1,31 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class DialogSkip : public Feature + { + public: + config::Field> f_Enabled; + config::Field> f_AutoSelectDialog; + config::Field> f_ExcludeImportant; + config::Field> f_FastDialog; + config::Field f_TimeSpeedup; + + static DialogSkip& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + void OnCutScenePageUpdate(app::InLevelCutScenePageContext* context); + + private: + DialogSkip(); + }; +} + diff --git a/cheat-library/src/user/cheat/world/DumbEnemies.cpp b/cheat-library/src/user/cheat/world/DumbEnemies.cpp new file mode 100644 index 0000000..6e2cd72 --- /dev/null +++ b/cheat-library/src/user/cheat/world/DumbEnemies.cpp @@ -0,0 +1,54 @@ +#include "pch-il2cpp.h" +#include "DumbEnemies.h" + +#include + +namespace cheat::feature +{ + static void VCMonsterAIController_TryDoSkill_Hook(void* __this, uint32_t skillID, MethodInfo* method); + + DumbEnemies::DumbEnemies() : Feature(), + NF(f_Enabled, "Dumb Enemies", "DumbEnemies", false) + { + HookManager::install(app::VCMonsterAIController_TryDoSkill, VCMonsterAIController_TryDoSkill_Hook); + } + + const FeatureGUIInfo& DumbEnemies::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "", "World", false }; + return info; + } + + void DumbEnemies::DrawMain() + { + ConfigWidget(f_Enabled, "Enemies don't attack or use abilities against player. \n" + "May not work with some enemies or enemy abilites."); + } + + bool DumbEnemies::NeedStatusDraw() const +{ + return f_Enabled; + } + + void DumbEnemies::DrawStatus() + { + ImGui::Text("Dumb Enemies"); + } + + DumbEnemies& DumbEnemies::GetInstance() + { + static DumbEnemies instance; + return instance; + } + + // Raised when monster trying to do skill. Attack also is skill. + // We just block if dumb mob enabled, so mob will not attack player. + static void VCMonsterAIController_TryDoSkill_Hook(void* __this, uint32_t skillID, MethodInfo* method) + { + DumbEnemies& dumbEnemies = DumbEnemies::GetInstance(); + if (dumbEnemies.f_Enabled) + return; + CALL_ORIGIN(VCMonsterAIController_TryDoSkill_Hook, __this, skillID, method); + } +} + diff --git a/cheat-library/src/user/cheat/world/DumbEnemies.h b/cheat-library/src/user/cheat/world/DumbEnemies.h new file mode 100644 index 0000000..96b593b --- /dev/null +++ b/cheat-library/src/user/cheat/world/DumbEnemies.h @@ -0,0 +1,25 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class DumbEnemies : public Feature + { + public: + config::Field> f_Enabled; + + static DumbEnemies& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + DumbEnemies(); + }; +} + diff --git a/cheat-library/src/user/cheat/world/ElementalSight.cpp b/cheat-library/src/user/cheat/world/ElementalSight.cpp new file mode 100644 index 0000000..0873998 --- /dev/null +++ b/cheat-library/src/user/cheat/world/ElementalSight.cpp @@ -0,0 +1,52 @@ +#include "pch-il2cpp.h" +#include "ElementalSight.h" + +#include + +namespace cheat::feature +{ + static void LevelSceneElementViewPlugin_Tick_Hook(app::LevelSceneElementViewPlugin* __this, float inDeltaTime, MethodInfo* method); + + ElementalSight::ElementalSight() : Feature(), + NF(f_Enabled, "Permanent Elemental Sight", "ElementalSight", false) + { + HookManager::install(app::LevelSceneElementViewPlugin_Tick, LevelSceneElementViewPlugin_Tick_Hook); + } + + const FeatureGUIInfo& ElementalSight::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "", "World", false }; + return info; + } + + void ElementalSight::DrawMain() + { + ConfigWidget("Permanent Elemental Sight", f_Enabled, "Elemental sight is kept on even when moving.\n" + "To turn off, toggle off and use Elemental Sight again."); + } + + bool ElementalSight::NeedStatusDraw() const + { + return f_Enabled; + } + + void ElementalSight::DrawStatus() + { + ImGui::Text("Perma Elemental Sight"); + } + + ElementalSight& ElementalSight::GetInstance() + { + static ElementalSight instance; + return instance; + } + + static void LevelSceneElementViewPlugin_Tick_Hook(app::LevelSceneElementViewPlugin* __this, float inDeltaTime, MethodInfo* method) + { + ElementalSight& ElementalSight = ElementalSight::GetInstance(); + if (ElementalSight.f_Enabled) + __this->fields.elementalSightActivated = true; + CALL_ORIGIN(LevelSceneElementViewPlugin_Tick_Hook, __this, inDeltaTime, method); + } +} + diff --git a/cheat-library/src/user/cheat/world/ElementalSight.h b/cheat-library/src/user/cheat/world/ElementalSight.h new file mode 100644 index 0000000..1512ded --- /dev/null +++ b/cheat-library/src/user/cheat/world/ElementalSight.h @@ -0,0 +1,25 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class ElementalSight : public Feature + { + public: + config::Field> f_Enabled; + + static ElementalSight& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + ElementalSight(); + }; +} + diff --git a/cheat-library/src/user/cheat/world/KillAura.cpp b/cheat-library/src/user/cheat/world/KillAura.cpp new file mode 100644 index 0000000..137791d --- /dev/null +++ b/cheat-library/src/user/cheat/world/KillAura.cpp @@ -0,0 +1,202 @@ +#include "pch-il2cpp.h" +#include "KillAura.h" + +#include +#include + +#include +#include +#include +#include + +namespace cheat::feature +{ + static void BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo_Hook(app::BaseMoveSyncPlugin* __this, MethodInfo* method); + + KillAura::KillAura() : Feature(), + NF(f_Enabled, "Kill aura", "KillAura", false), + NF(f_DamageMode, "Damage mode", "Damage mode", false), + NF(f_InstantDeathMode, "Instant death", "Instant death", false), + NF(f_OnlyTargeted, "Only targeted", "KillAura", true), + NF(f_Range, "Range", "KillAura", 15.0f), + NF(f_AttackDelay, "Attack delay time (in ms)", "KillAura", 100), + NF(f_RepeatDelay, "Repeat delay time (in ms)", "KillAura", 1000) + { + events::GameUpdateEvent += MY_METHOD_HANDLER(KillAura::OnGameUpdate); + HookManager::install(app::BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo, BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo_Hook); + } + + const FeatureGUIInfo& KillAura::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "Kill Aura", "World", true }; + return info; + } + + void KillAura::DrawMain() + { + ConfigWidget("Enable Kill Aura", f_Enabled, "Enables kill aura. Need to choose a mode to work."); + ImGui::SameLine(); + ImGui::TextColored(ImColor(255, 165, 0, 255), "Choose any or both modes below."); + + ConfigWidget("Crash Damage Mode", f_DamageMode, "Kill aura causes crash damage for monster around you."); + ConfigWidget("Instant Death Mode", f_InstantDeathMode, "Kill aura will attempt to instagib any valid target."); + ImGui::SameLine(); + ImGui::TextColored(ImColor(255, 165, 0, 255), "Can get buggy with bosses like PMA and Hydro Hypo."); + ConfigWidget("Kill Range", f_Range, 0.1f, 5.0f, 100.0f); + ConfigWidget("Only Hostile/Aggro", f_OnlyTargeted, "If enabled, kill aura will only affect monsters targeting/aggro towards you."); + ConfigWidget("Crash Attack Delay (ms)", f_AttackDelay, 1, 0, 1000, "Delay in ms before next crash damage."); + ConfigWidget("Crash Repeat Delay (ms)", f_RepeatDelay, 1, 100, 2000, "Delay in ms before crash damaging same monster."); + } + + bool KillAura::NeedStatusDraw() const + { + return f_Enabled; + } + + void KillAura::DrawStatus() + { + ImGui::Text("Kill Aura [%s]\n[%.01fm|%s|%dms|%dms]", + f_DamageMode && f_InstantDeathMode ? "Extreme" : f_DamageMode ? "Crash" : f_InstantDeathMode ? "Instant" : "None", + f_Range.value(), + f_OnlyTargeted ? "Aggro" : "All", + f_AttackDelay.value(), + f_RepeatDelay.value()); + } + + KillAura& KillAura::GetInstance() + { + static KillAura instance; + return instance; + } + + // Kill aura logic is just emulate monster fall crash, so simple but works. + // Note. No work on mob with shield, maybe update like auto ore destroy. + void KillAura::OnGameUpdate() + { + static std::default_random_engine generator; + static std::uniform_int_distribution distribution(-50, 50); + + static int64_t nextAttackTime = 0; + static std::map monsterRepeatTimeMap; + static std::queue attackQueue; + static std::unordered_set attackSet; + + if (!f_Enabled || !f_DamageMode) + return; + + auto eventManager = GET_SINGLETON(EventManager); + if (eventManager == nullptr || *app::CreateCrashEvent__MethodInfo == nullptr) + return; + + auto currentTime = util::GetCurrentTimeMillisec(); + if (currentTime < nextAttackTime) + return; + + auto& manager = game::EntityManager::instance(); + + for (const auto& monster : manager.entities(game::filters::combined::Monsters)) + { + auto monsterID = monster->runtimeID(); + + if (attackSet.count(monsterID) > 0) + continue; + + if (monsterRepeatTimeMap.count(monsterID) > 0 && monsterRepeatTimeMap[monsterID] > currentTime) + continue; + + auto combat = monster->combat(); + if (combat == nullptr) + continue; + + auto combatProp = combat->fields._combatProperty_k__BackingField; + if (combatProp == nullptr) + continue; + + auto maxHP = app::SafeFloat_GetValue(nullptr, combatProp->fields.maxHP, nullptr); + auto isLockHp = combatProp->fields.islockHP == nullptr || app::FixedBoolStack_get_value(combatProp->fields.islockHP, nullptr); + auto isInvincible = combatProp->fields.isInvincible == nullptr || app::FixedBoolStack_get_value(combatProp->fields.isInvincible, nullptr); + auto HP = app::SafeFloat_GetValue(nullptr, combatProp->fields.HP, nullptr); + if (maxHP < 10 || HP < 2 || isLockHp || isInvincible) + continue; + + if (f_OnlyTargeted && combat->fields._attackTarget.runtimeID != manager.avatar()->runtimeID()) + continue; + + if (manager.avatar()->distance(monster) > f_Range) + continue; + + attackQueue.push(monster); + attackSet.insert(monsterID); + } + + if (attackQueue.empty()) + return; + + auto monster = attackQueue.front(); + attackQueue.pop(); + + if (!monster->isLoaded()) + { + // If monster entity isn't active means that it was unloaded (it happen when player teleport or moving fast) + // And we don't have way to get id + // So better to clear all queue, to prevent memory leak + // This happen rarely, so don't give any performance issues + std::queue empty; + std::swap(attackQueue, empty); + + attackSet.clear(); + return; + } + + attackSet.erase(monster->runtimeID()); + + auto combat = monster->combat(); + auto maxHP = app::SafeFloat_GetValue(nullptr, combat->fields._combatProperty_k__BackingField->fields.maxHP, nullptr); + + auto crashEvt = app::CreateCrashEvent(nullptr, *app::CreateCrashEvent__MethodInfo); + app::EvtCrash_Init(crashEvt, monster->runtimeID(), nullptr); + crashEvt->fields.maxHp = maxHP; + crashEvt->fields.velChange = 1000; + crashEvt->fields.hitPos = monster->absolutePosition(); + + app::EventManager_FireEvent(eventManager, reinterpret_cast(crashEvt), false, nullptr); + + monsterRepeatTimeMap[monster->runtimeID()] = currentTime + (int)f_RepeatDelay + distribution(generator); + + nextAttackTime = currentTime + (int)f_AttackDelay + distribution(generator); + } + + static void OnSyncTask(app::BaseMoveSyncPlugin* moveSync) + { + KillAura& killAura = KillAura::GetInstance(); + if (!killAura.f_Enabled || !killAura.f_InstantDeathMode) + return; + + auto& manager = game::EntityManager::instance(); + auto avatarID = manager.avatar()->runtimeID(); + auto entityID = moveSync->fields._.owner->fields.entityRuntimeID; + + if (entityID == avatarID) + return; + + auto monster = manager.entity(entityID); + auto combat = monster->combat(); + if (combat == nullptr) + return; + + if (killAura.f_OnlyTargeted && combat->fields._attackTarget.runtimeID != avatarID) + return; + + if (manager.avatar()->distance(monster) > killAura.f_Range) + return; + + moveSync->fields.moveSyncTask.position.x = 1000000.0f; + } + + static void BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo_Hook(app::BaseMoveSyncPlugin* __this, MethodInfo* method) + { + OnSyncTask(__this); + CALL_ORIGIN(BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo_Hook, __this, method); + } +} + diff --git a/cheat-library/src/user/cheat/world/KillAura.h b/cheat-library/src/user/cheat/world/KillAura.h new file mode 100644 index 0000000..4713f5e --- /dev/null +++ b/cheat-library/src/user/cheat/world/KillAura.h @@ -0,0 +1,33 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class KillAura : public Feature + { + public: + config::Field> f_Enabled; + config::Field> f_DamageMode; + config::Field> f_InstantDeathMode; + config::Field f_OnlyTargeted; + config::Field f_Range; + config::Field f_AttackDelay; + config::Field f_RepeatDelay; + + static KillAura& GetInstance(); + + void OnGameUpdate(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + KillAura(); + }; +} + diff --git a/cheat-library/src/user/cheat/world/MobVacuum.cpp b/cheat-library/src/user/cheat/world/MobVacuum.cpp new file mode 100644 index 0000000..b4392cf --- /dev/null +++ b/cheat-library/src/user/cheat/world/MobVacuum.cpp @@ -0,0 +1,236 @@ +#include "pch-il2cpp.h" +#include "MobVacuum.h" + +#include +#include +#include +#include + +namespace cheat::feature +{ + MobVacuum::MobVacuum() : Feature(), + NF(f_Enabled, "Mob vacuum", "MobVacuum", false), + NF(f_IncludeMonsters, "Include Monsters", "MobVacuum", true), + NF(f_MonsterCommon, "Common", "MobVacuum", true), + NF(f_MonsterElites, "Elite", "MobVacuum", true), + NF(f_MonsterBosses, "Boss", "MobVacuum", true), + NF(f_IncludeAnimals, "Include Animals", "MobVacuum", true), + NF(f_AnimalDrop, "Droppers", "MobVacuum", true), + NF(f_AnimalPickUp, "Pick-ups", "MobVacuum", true), + NF(f_AnimalNPC, "NPCs", "MobVacuum", true), + NF(f_Speed, "Speed", "MobVacuum", 2.5f), + NF(f_Distance, "Distance", "MobVacuum", 1.5f), + NF(f_Radius, "Radius", "MobVacuum", 10.0f), + NF(f_OnlyTarget, "Only targeted", "MobVacuum", true), + NF(f_Instantly, "Instantly", "MobVacuum", false) + { + events::GameUpdateEvent += MY_METHOD_HANDLER(MobVacuum::OnGameUpdate); + events::MoveSyncEvent += MY_METHOD_HANDLER(MobVacuum::OnMoveSync); + } + + const FeatureGUIInfo& MobVacuum::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "Mob Vacuum", "World", true }; + return info; + } + + void MobVacuum::DrawMain() + { + ConfigWidget("Enabled", f_Enabled, "Enables mob vacuum.\n" \ + "Mobs within the specified radius will move\nto a specified distance in front of the player."); + + bool filtersChanged = false; + BeginGroupPanel("Monsters", ImVec2(-1, 0)); + { + filtersChanged |= ConfigWidget(f_IncludeMonsters, "Include monsters in vacuum."); + filtersChanged |= ConfigWidget(f_MonsterCommon, "Common enemies."); ImGui::SameLine(); + filtersChanged |= ConfigWidget(f_MonsterElites, "Elite enemies."); ImGui::SameLine(); + filtersChanged |= ConfigWidget(f_MonsterBosses, "World and Trounce boss enemies."); + } + EndGroupPanel(); + + BeginGroupPanel("Animals", ImVec2(-1, 0)); + { + filtersChanged |= ConfigWidget(f_IncludeAnimals, "Include animals in vacuum."); + filtersChanged |= ConfigWidget(f_AnimalDrop, "Animals you need to kill before collecting."); ImGui::SameLine(); + filtersChanged |= ConfigWidget(f_AnimalPickUp, "Animals you can immediately collect."); ImGui::SameLine(); + filtersChanged |= ConfigWidget(f_AnimalNPC, "Animals without mechanics."); + } + EndGroupPanel(); + + if (filtersChanged) + UpdateFilters(); + + ConfigWidget("Instant Vacuum", f_Instantly, "Vacuum entities instantly."); + ConfigWidget("Only Hostile/Aggro", f_OnlyTarget, "If enabled, vacuum will only affect monsters targeting you. Will not affect animals."); + ConfigWidget("Speed", f_Speed, 0.1f, 1.0f, 15.0f, "If 'Instant Vacuum' is not checked, mob will be vacuumed at the specified speed."); + ConfigWidget("Radius (m)", f_Radius, 0.1f, 5.0f, 150.0f, "Radius of vacuum."); + ConfigWidget("Distance (m)", f_Distance, 0.1f, 0.5f, 10.0f, "Distance between the player and the monster."); + } + + bool MobVacuum::NeedStatusDraw() const + { + return f_Enabled; + } + + void MobVacuum::DrawStatus() + { + ImGui::Text("Vacuum [%s]\n[%s|%.01fm|%.01fm|%s]", + f_IncludeMonsters && f_IncludeAnimals ? "All" : f_IncludeMonsters ? "Monsters" : f_IncludeAnimals ? "Animals" : "None", + f_Instantly ? "Instant" : fmt::format("Normal|{:.1f}", f_Speed.value()).c_str(), + f_Radius.value(), + f_Distance.value(), + f_OnlyTarget ? "Aggro" : "All" + ); + } + + MobVacuum& MobVacuum::GetInstance() + { + static MobVacuum instance; + return instance; + } + + // Combines selected vacuum filters. + void MobVacuum::UpdateFilters() { + + m_Filters.clear(); + + if (f_IncludeMonsters) { + if (f_MonsterCommon) m_Filters.push_back(&game::filters::combined::MonsterCommon); + if (f_MonsterElites) m_Filters.push_back(&game::filters::combined::MonsterElites); + if (f_MonsterBosses) m_Filters.push_back(&game::filters::combined::MonsterBosses); + } + + if (f_IncludeAnimals) { + if (f_AnimalDrop) m_Filters.push_back(&game::filters::combined::AnimalDrop); + if (f_AnimalPickUp) m_Filters.push_back(&game::filters::combined::AnimalPickUp); + if (f_AnimalNPC) m_Filters.push_back(&game::filters::combined::AnimalNPC); + } + } + + // Check if entity valid for mob vacuum. + bool MobVacuum::IsEntityForVac(game::Entity* entity) + { + if (m_Filters.empty()) + return false; + + bool entityValid = std::any_of(m_Filters.cbegin(), m_Filters.cend(), + [entity](const game::IEntityFilter* filter) { return filter->IsValid(entity); }); + if (!entityValid) + return false; + + auto& manager = game::EntityManager::instance(); + if (f_OnlyTarget && game::filters::combined::Monsters.IsValid(entity)) + { + auto monsterCombat = entity->combat(); + if (monsterCombat == nullptr || monsterCombat->fields._attackTarget.runtimeID != manager.avatar()->runtimeID()) + return false; + } + + auto distance = manager.avatar()->distance(entity); + return distance <= f_Radius; + } + + // Calculate mob vacuum target position. + app::Vector3 MobVacuum::CalcMobVacTargetPos() + { + auto& manager = game::EntityManager::instance(); + auto avatarEntity = manager.avatar(); + if (avatarEntity == nullptr) + return {}; + + return avatarEntity->relativePosition() + avatarEntity->forward() * f_Distance; + } + + // Mob vacuum update function. + // Changes position of monster, if mob vacuum enabled. + void MobVacuum::OnGameUpdate() + { + static auto positions = new std::map(); + + if (!f_Enabled) + return; + + app::Vector3 targetPos = CalcMobVacTargetPos(); + if (IsVectorZero(targetPos)) + return; + + UpdateFilters(); + if (!f_IncludeMonsters && !f_IncludeAnimals) + return; + + if (m_Filters.empty()) + return; + + auto& manager = game::EntityManager::instance(); + auto newPositions = new std::map(); + for (const auto& entity : manager.entities()) + { + if (!IsEntityForVac(entity)) + continue; + + if (f_Instantly) + { + entity->setRelativePosition(targetPos); + continue; + } + + uint32_t entityId = entity->runtimeID(); + app::Vector3 entityRelPos = positions->count(entityId) ? (*positions)[entityId] : entity->relativePosition(); + app::Vector3 newPosition = {}; + if (app::Vector3_Distance(nullptr, entityRelPos, targetPos, nullptr) < 0.1) + { + newPosition = targetPos; + } + else + { + app::Vector3 dir = GetVectorDirection(entityRelPos, targetPos); + float deltaTime = app::Time_get_deltaTime(nullptr, nullptr); + newPosition = entityRelPos + dir * f_Speed * deltaTime; + } + + (*newPositions)[entityId] = newPosition; + entity->setRelativePosition(newPosition); + } + + delete positions; + positions = newPositions; + } + + // Mob vacuum sync packet replace. + // Replacing move sync speed and motion state. + // Callow: I think it is more safe method, + // because for server monster don't change position instantly. + void MobVacuum::OnMoveSync(uint32_t entityId, app::MotionInfo* syncInfo) + { + if (!f_Enabled || f_Instantly) + return; + + auto& manager = game::EntityManager::instance(); + auto entity = manager.entity(entityId); + if (!IsEntityForVac(entity)) + return; + + app::Vector3 targetPos = CalcMobVacTargetPos(); + app::Vector3 entityPos = entity->relativePosition(); + if (app::Vector3_Distance(nullptr, targetPos, entityPos, nullptr) < 0.2) + return; + + app::Vector3 dir = GetVectorDirection(targetPos, entityPos); + app::Vector3 scaledDir = dir * f_Speed; + + syncInfo->fields.speed_->fields.x = scaledDir.x; + syncInfo->fields.speed_->fields.y = scaledDir.y; + syncInfo->fields.speed_->fields.z = scaledDir.z; + + switch (syncInfo->fields.motionState) + { + case app::MotionState__Enum::MotionStandby: + case app::MotionState__Enum::MotionStandbyMove: + case app::MotionState__Enum::MotionWalk: + case app::MotionState__Enum::MotionDangerDash: + syncInfo->fields.motionState = app::MotionState__Enum::MotionRun; + } + } +} + diff --git a/cheat-library/src/user/cheat/world/MobVacuum.h b/cheat-library/src/user/cheat/world/MobVacuum.h new file mode 100644 index 0000000..4a76b0c --- /dev/null +++ b/cheat-library/src/user/cheat/world/MobVacuum.h @@ -0,0 +1,54 @@ +#pragma once +#include +#include + +#include +#include +#include + +namespace cheat::feature +{ + + class MobVacuum : public Feature + { + public: + config::Field> f_Enabled; + + config::Field> f_IncludeMonsters; + config::Field f_MonsterCommon; + config::Field f_MonsterElites; + config::Field f_MonsterBosses; + + config::Field> f_IncludeAnimals; + config::Field f_AnimalDrop; + config::Field f_AnimalPickUp; + config::Field f_AnimalNPC; + + config::Field f_Speed; + config::Field f_Radius; + config::Field f_Distance; + config::Field f_OnlyTarget; + config::Field f_Instantly; + + static MobVacuum& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + void OnGameUpdate(); + private: + + std::vector m_Filters; + MobVacuum(); + + void UpdateFilters(); + + bool IsEntityForVac(cheat::game::Entity* entity); + void OnMoveSync(uint32_t entityId, app::MotionInfo* syncInfo); + app::Vector3 CalcMobVacTargetPos(); + }; +} + diff --git a/cheat-library/src/user/debug-hooks.cpp b/cheat-library/src/user/debug-hooks.cpp deleted file mode 100644 index c8054b7..0000000 --- a/cheat-library/src/user/debug-hooks.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#include "pch-il2cpp.h" - -#include "debug-hooks.h" - -#include "util/HookManager.h" -#include "helpers.h" -#include - -app::Byte__Array* LoadCustomLuaFile_Hook(app::LuaManager* __this, app::String** filePath, bool* recycleBytes, MethodInfo* method) { - std::cout << "Load library: " << il2cppi_to_string(*filePath) << ".lua" << std::endl; - return callOrigin(LoadCustomLuaFile_Hook, __this, filePath, recycleBytes, method); -} - -void __stdcall SendInfo_Hook(app::GameLogin* __this, app::GKOJAICIOPA* info, MethodInfo* method) { - std::cout << "Game sending game info to server." << std::endl; - std::cout << "Content: " << std::endl; - -#define printString(i) if (info->fields.string_ ## i > (void *)1 && info->fields.string_ ## i ##->fields.length > 0)\ - std::cout << "\tfield#" << i << ": " << il2cppi_to_string(info->fields.string_ ## i) << std::endl; - - printString(1); - printString(2); - printString(3); - printString(4); - printString(5); - printString(6); - printString(7); - printString(8); - printString(9); - printString(10); - printString(11); - printString(12); - printString(13); - printString(14); - printString(15); - printString(16); - -#undef printString - - callOrigin(SendInfo_Hook, __this, info, method); -} - - -void InitDebugHooks() { - HookManager::set(app::LuaManager_LoadCustomLuaFile, LoadCustomLuaFile_Hook); - std::cout << "Hooked LoadCustomLuaFile. Origin at 0x" << (void*)HookManager::getOrigin(LoadCustomLuaFile_Hook) << std::endl; - - HookManager::set(app::GameLogin_SendInfo_2, SendInfo_Hook); - std::cout << "Hooked GameLogin::SendGameInfo. Origin at 0x" << (void*)HookManager::getOrigin(SendInfo_Hook) << std::endl; -} \ No newline at end of file diff --git a/cheat-library/src/user/debug-hooks.h b/cheat-library/src/user/debug-hooks.h deleted file mode 100644 index 3b6b102..0000000 --- a/cheat-library/src/user/debug-hooks.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -void InitDebugHooks(); \ No newline at end of file diff --git a/cheat-library/src/user/main.cpp b/cheat-library/src/user/main.cpp index 10cd662..0f29f63 100644 --- a/cheat-library/src/user/main.cpp +++ b/cheat-library/src/user/main.cpp @@ -1,40 +1,85 @@ #include "pch-il2cpp.h" #include "main.h" -#define WIN32_LEAN_AND_MEAN +#include +#include +#include +#include -#include +#include +#include -#include -#include -#include +bool StubTerminateProcess(); -#include "il2cpp-init.h" -#include "helpers.h" -#include "util/Config.h" -#include "debug-hooks.h" -#include "protection-bypass.h" - -const char* INIFileName = "config.ini"; - -void Run() +void Run(HMODULE* phModule) { - Sleep(2000); // Waiting for il2cpp initialize +#ifdef _DEBUG + Sleep(10000); +#else + while (GetModuleHandle("UserAssembly.dll") == nullptr) + { + Sleep(2000); + } + Sleep(15000); +#endif + + ResourceLoader::SetModuleHandle(*phModule); + + // Init config + std::string configPath = (std::filesystem::current_path() / "cfg.json").string(); + config::Initialize(configPath); + + // Init logger + auto& settings = cheat::feature::Settings::GetInstance(); + if (settings.f_FileLogging) + { + Logger::PrepareFileLogging((std::filesystem::current_path() / "logs").string()); + Logger::SetLevel(Logger::Level::Trace, Logger::LoggerType::FileLogger); + } + + if (settings.f_ConsoleLogging) + { + Logger::SetLevel(Logger::Level::Debug, Logger::LoggerType::ConsoleLogger); + il2cppi_new_console(); + } + + init_il2cpp(); + + if (StubTerminateProcess()) + LOG_INFO("TerminateProcess stubbed successfully."); + else + LOG_ERROR("Stub TerminateProcess failed."); + + cheat::Init(); + + LOG_DEBUG("Config path is at %s", configPath.c_str()); + LOG_DEBUG("UserAssembly.dll is at 0x%p", il2cppi_get_base_address()); + LOG_DEBUG("UnityPlayer.dll is at 0x%p", il2cppi_get_unity_address()); +} + +BOOL WINAPI TerminateProcess_Hook(HANDLE hProcessUINT, UINT uExitCode) +{ + return TRUE; +} + +bool StubTerminateProcess() +{ + HMODULE hKernelBase = GetModuleHandle("kernelbase.dll"); + if (hKernelBase == NULL) + { + LOG_LAST_ERROR("Failed to get the kernelbase.dll handle."); + return false; + } + + FARPROC pTerminateProcess = GetProcAddress(hKernelBase, "TerminateProcess"); + if (pTerminateProcess == nullptr) + { + LOG_LAST_ERROR("Getting KernelBase::NtTerminateProcess failed."); + return false; + } + using TerminateProcess_Type = BOOL(*)(HANDLE, UINT); - init_il2cpp(); - - il2cpp_thread_attach(il2cpp_domain_get()); - - std::string configPath = (std::filesystem::current_path() / INIFileName).string(); - Config::Init(configPath); - if (Config::consoleLogging) - il2cppi_new_console(); - - std::cout << "Config path is " << (std::filesystem::current_path() / INIFileName).string() << std::endl; - std::cout << "UserAssembly.dll at 0x" << il2cppi_get_base_address() << std::endl; - std::cout << "UnityPlayer.dll at 0x" << il2cppi_get_unity_address() << std::endl; - - InitProtectionBypass(); - - InitDebugHooks(); + HookManager::install((TerminateProcess_Type)pTerminateProcess, TerminateProcess_Hook); + LOG_DEBUG("Terminate process hooked. Origin at 0x%p", HookManager::getOrigin(TerminateProcess_Hook)); + return true; } \ No newline at end of file diff --git a/cheat-library/src/user/main.h b/cheat-library/src/user/main.h index a1cbaa9..9fb7319 100644 --- a/cheat-library/src/user/main.h +++ b/cheat-library/src/user/main.h @@ -2,6 +2,7 @@ // Custom injected code entry point #pragma once +#include // Custom injected code entry point -void Run(); \ No newline at end of file +void Run(HMODULE* hModule); \ No newline at end of file diff --git a/cheat-library/src/user/protection-bypass.cpp b/cheat-library/src/user/protection-bypass.cpp deleted file mode 100644 index 4d56b77..0000000 --- a/cheat-library/src/user/protection-bypass.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include "pch-il2cpp.h" - -#include "protection-bypass.h" - -#include "util/HookManager.h" -#include "util/Config.h" - -#include -#include -#include - -static std::map correctSignatures; - -app::Byte__Array* RecordUserData_Hook(int32_t nType) { - - if (correctSignatures.count(nType)) - { - auto byteClass = app::GetIl2Classes()[0x25]; - - auto content = correctSignatures[nType]; - auto newArray = (app::Byte__Array*)il2cpp_array_new(byteClass, content.size()); - memmove_s(newArray->vector, content.size(), content.data(), content.size()); - - return newArray; - } - - app::Byte__Array* result = callOrigin(RecordUserData_Hook, nType); - auto length = app::Array_get_Length(reinterpret_cast(result), nullptr); - - if (length == 0) - return result; - - - auto stringValue = std::string((char*)result->vector, length); - correctSignatures[nType] = stringValue; - - std::cout << "Sniffed correct signature for type " << nType << " value " << stringValue << std::endl; - - return result; -} - - -void InitProtectionBypass() { - HookManager::set(app::Unity_RecordUserData, RecordUserData_Hook); - std::cout << "RecordUserData function address is 0x" << (void*)app::Unity_RecordUserData << std::endl; - - for (int i = 0; i < 4; i++) { - std::cout << "Emulating call of RecordUserData with type " << i << std::endl; - app::Application_RecordUserData(nullptr, i, nullptr); - } - - if (Config::disableMhyProt) { - std::cout << "Trying to close mhyprot handle." << std::endl; - if (CloseHandleByName(L"\\Device\\mhyprot2")) - std::cout << "Mhyprot2 handle successfuly closed. Happy hacking ^)" << std::endl; - else - std::cout << "Failed closing mhyprot2 handle. Maybe dev updated driver." << std::endl; - } - -} \ No newline at end of file diff --git a/cheat-library/src/user/protection-bypass.h b/cheat-library/src/user/protection-bypass.h deleted file mode 100644 index c5021a7..0000000 --- a/cheat-library/src/user/protection-bypass.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -void InitProtectionBypass(); \ No newline at end of file diff --git a/cheat-library/src/user/util/Config.cpp b/cheat-library/src/user/util/Config.cpp deleted file mode 100644 index ad3adf8..0000000 --- a/cheat-library/src/user/util/Config.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "pch-il2cpp.h" - -#include "Config.h" - -#include "simple-ini.hpp" - -bool Config::disableMhyProt = false; -bool Config::consoleLogging = false; -bool Config::fileLogging = false; - -static CSimpleIni ini; -static bool changed = false; - -bool LoadBool(const char* section, const char* key, bool defaultValue = false) { - auto result = ini.GetBoolValue(section, key, defaultValue); - ini.SetBoolValue(section, key, result); - return result; -} - -void Config::Init(const std::string& configFile) -{ - ini.LoadFile(configFile.c_str()); - - disableMhyProt = LoadBool("DLLUtil", "DisableMhyprot", true); - consoleLogging = LoadBool("DLLUtil", "ConsoleLogging", true); - fileLogging = LoadBool("DLLUtil", "FileLogging", true); - - ini.SaveFile(configFile.c_str()); -} diff --git a/cheat-library/src/user/util/Config.h b/cheat-library/src/user/util/Config.h deleted file mode 100644 index 3f7e059..0000000 --- a/cheat-library/src/user/util/Config.h +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once -#include - -class Config { -public: - static bool disableMhyProt; - static bool fileLogging; - static bool consoleLogging; - - static void Init(const std::string& configFile); -}; \ No newline at end of file diff --git a/cheat-library/src/user/util/HookManager.cpp b/cheat-library/src/user/util/HookManager.cpp deleted file mode 100644 index ab55132..0000000 --- a/cheat-library/src/user/util/HookManager.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include "pch-il2cpp.h" -#include "HookManager.h" - -#include - -std::map HookManager::holderMap; - -//template -//static void HookManager::set(Fn func, Fn handler) noexcept -//{ -// auto existHolder = get(handler); -// if (existHolder != nullptr) -// existHolder->disable(); -// -// auto holder = HookFactory::install(func, handler); -// holderMap[handler] = holder; -//} - -//template -//static HookHolder* HookManager::get(Fn handler) noexcept -//{ -// if (holderMap.count(handler) == 0) -// return nullptr; -// return (HookHolder)* holderMap[handler]; -//} - -//template -//static Fn* HookManager::getOrigin(Fn handler) noexcept -//{ -// auto holder = get(handler); -// if (holder == nullptr) -// return nullptr; -// return &holder->origin(); -//} -// -//template -//static void HookManager::remove(Fn func) noexcept -//{ -// holderMap.erase(func); -//} diff --git a/cheat-library/src/user/util/HookManager.h b/cheat-library/src/user/util/HookManager.h deleted file mode 100644 index 90ef971..0000000 --- a/cheat-library/src/user/util/HookManager.h +++ /dev/null @@ -1,46 +0,0 @@ -#pragma once - -#include "HookLib.h" -#include - -#define callOrigin(function, ...) \ - HookManager::getOrigin(function)(__VA_ARGS__); - -class HookManager -{ -public: - template - static void set(Fn func, Fn handler) { - auto existHolder = get(handler); - if (existHolder != nullptr) - existHolder->disable(); - - auto holder = new HookHolder(func, handler); - holder->enable(); - - holderMap[reinterpret_cast(handler)] = reinterpret_cast(holder); - } - - template - [[nodiscard]] static HookHolder* get(Fn handler) noexcept { - if (holderMap.count(reinterpret_cast(handler)) == 0) - return nullptr; - return reinterpret_cast*>(holderMap[reinterpret_cast(handler)]); - } - - template - [[nodiscard]] static Fn getOrigin(Fn handler) noexcept { - auto holder = get(handler); - return holder->original(); - } - - template - [[nodiscard]] static void remove(Fn handler) noexcept { - holderMap.erase(reinterpret_cast(handler)); - } - -private: - static std::map holderMap; -}; - - diff --git a/cheat-library/src/user/util/util.h b/cheat-library/src/user/util/util.h deleted file mode 100644 index 87a11e3..0000000 --- a/cheat-library/src/user/util/util.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -bool CloseHandleByName(const wchar_t* name); \ No newline at end of file diff --git a/cheat-library/vendor/include/HookLib.h b/cheat-library/vendor/include/HookLib.h deleted file mode 100644 index fb23bc8..0000000 --- a/cheat-library/vendor/include/HookLib.h +++ /dev/null @@ -1,212 +0,0 @@ -#pragma once - -#ifdef __cplusplus - #include - #define hooklib_export extern "C" -#else - #include - #define hooklib_export -#endif - -typedef struct -{ - void* fn; - const void* handler; - void* original; // hook() makes it valid callable pointer after successful hook and sets as nullptr otherwise -} Hook; - -typedef struct -{ - void* original; // unhook() makes it nullptr after successful unhook and keeps unchanged otherwise -} Unhook; - -hooklib_export void* hook(void* fn, const void* handler); -hooklib_export size_t multihook(Hook* hooks, size_t count); - -hooklib_export size_t multiunhook(Unhook* originals, size_t count); -hooklib_export size_t unhook(void* original); - -#ifndef _KERNEL_MODE -hooklib_export void* lookupModule(const wchar_t* modName); // LdrGetDllHandle -hooklib_export void* lookupFunction(const void* hModule, const char* funcName); // LdrGetProcedureAddress -#endif - -#ifdef __cplusplus -template -class HookHolder -{ -private: - struct tr - { - template - static constexpr Type exchange(Type& val, Other&& newVal) - { - const Type oldVal = static_cast(val); - val = static_cast(newVal); - return oldVal; - } - }; - -protected: - Fn m_orig; - Fn m_fn; - Fn m_handler; - -public: - HookHolder() = default; - - HookHolder(Fn fn, Fn handler) noexcept : m_orig(nullptr), m_fn(fn), m_handler(handler) - { - } - - HookHolder(const HookHolder&) = delete; - - HookHolder(HookHolder&& holder) noexcept - : m_orig(tr::exchange(holder.m_orig, nullptr)) - , m_fn(tr::exchange(holder.m_fn, nullptr)) - , m_handler(tr::exchange(holder.m_handler, nullptr)) - { - } - - HookHolder& operator = (const HookHolder&) = delete; - - HookHolder& operator = (HookHolder&& holder) noexcept - { - if (&holder == this) - { - return *this; - } - - disable(); - - m_orig = tr::exchange(holder.m_orig, nullptr); - m_fn = tr::exchange(holder.m_fn, nullptr); - m_handler = tr::exchange(holder.m_handler, nullptr); - - return *this; - } - - ~HookHolder() noexcept - { - if (active()) - { - disable(); - } - } - - bool valid() const noexcept - { - return m_fn && m_handler; - } - - bool active() const noexcept - { - return m_orig != nullptr; - } - - bool enable() noexcept - { - if (!valid()) - { - return false; - } - - if (active()) - { - return true; - } - - m_orig = static_cast(hook(m_fn, m_handler)); - - return m_orig != nullptr; - } - - bool disable() noexcept - { - if (!valid()) - { - return false; - } - - if (!active()) - { - return true; - } - - const bool unhookStatus = (unhook(m_orig) == 1); - if (unhookStatus) - { - m_orig = nullptr; - } - - return unhookStatus; - } - - Fn detach() noexcept - { - return tr::exchange(m_orig, nullptr); - } - - Fn original() const noexcept - { - return m_orig; - } - - Fn fn() const noexcept - { - return m_fn; - } - - Fn handler() const noexcept - { - return m_handler; - } - -#ifdef _MSC_VER - __declspec(property(get = original)) Fn call; -#endif -}; - -struct HookFactory -{ - template - [[nodiscard]] static HookHolder install(Fn fn, Fn handler) noexcept - { - HookHolder hook(fn, handler); - hook.enable(); - return hook; - } - - template - [[nodiscard]] static HookHolder install(void* fn, Fn handler) noexcept - { - return install(static_cast(fn), handler); - } - -#ifndef _KERNEL_MODE - template - [[nodiscard]] static HookHolder install(void* mod, const char* const funcName, Fn handler) noexcept - { - if (!mod) - { - return HookHolder(nullptr, handler); - } - - void* const fn = lookupFunction(mod, funcName); - if (!fn) - { - return HookHolder(nullptr, handler); - } - - return install(static_cast(fn), handler); - } - - template - [[nodiscard]] static HookHolder install(const wchar_t* const modName, const char* const funcName, Fn handler) noexcept - { - const void* const mod = lookupModule(modName); - return install(mod, funcName, handler); - } -#endif -}; -#endif \ No newline at end of file diff --git a/cheat-library/vendor/include/simple-ini.hpp b/cheat-library/vendor/include/simple-ini.hpp deleted file mode 100644 index 54de89d..0000000 --- a/cheat-library/vendor/include/simple-ini.hpp +++ /dev/null @@ -1,3487 +0,0 @@ -/** @mainpage - - -
Library SimpleIni -
File SimpleIni.h -
Author Brodie Thiesfield [brofield at gmail dot com] -
Source https://github.com/brofield/simpleini -
Version 4.17 -
- - Jump to the @link CSimpleIniTempl CSimpleIni @endlink interface documentation. - - @section intro INTRODUCTION - - This component allows an INI-style configuration file to be used on both - Windows and Linux/Unix. It is fast, simple and source code using this - component will compile unchanged on either OS. - - - @section features FEATURES - - - MIT Licence allows free use in all software (including GPL and commercial) - - multi-platform (Windows CE/9x/NT..10/etc, Linux, MacOSX, Unix) - - loading and saving of INI-style configuration files - - configuration files can have any newline format on all platforms - - liberal acceptance of file format - - key/values with no section - - removal of whitespace around sections, keys and values - - support for multi-line values (values with embedded newline characters) - - optional support for multiple keys with the same name - - optional case-insensitive sections and keys (for ASCII characters only) - - saves files with sections and keys in the same order as they were loaded - - preserves comments on the file, section and keys where possible. - - supports both char or wchar_t programming interfaces - - supports both MBCS (system locale) and UTF-8 file encodings - - system locale does not need to be UTF-8 on Linux/Unix to load UTF-8 file - - support for non-ASCII characters in section, keys, values and comments - - support for non-standard character types or file encodings - via user-written converter classes - - support for adding/modifying values programmatically - - compiles cleanly in the following compilers: - - Windows/VC6 (warning level 3) - - Windows/VC.NET 2003 (warning level 4) - - Windows/VC 2005 (warning level 4) - - Linux/gcc (-Wall) - - - @section usage USAGE SUMMARY - - -# Define the appropriate symbol for the converter you wish to use and - include the SimpleIni.h header file. If no specific converter is defined - then the default converter is used. The default conversion mode uses - SI_CONVERT_WIN32 on Windows and SI_CONVERT_GENERIC on all other - platforms. If you are using ICU then SI_CONVERT_ICU is supported on all - platforms. - -# Declare an instance the appropriate class. Note that the following - definitions are just shortcuts for commonly used types. Other types - (PRUnichar, unsigned short, unsigned char) are also possible. - -
Interface Case-sensitive Load UTF-8 Load MBCS Typedef -
SI_CONVERT_GENERIC -
char No Yes Yes #1 CSimpleIniA -
char Yes Yes Yes CSimpleIniCaseA -
wchar_t No Yes Yes CSimpleIniW -
wchar_t Yes Yes Yes CSimpleIniCaseW -
SI_CONVERT_WIN32 -
char No No #2 Yes CSimpleIniA -
char Yes Yes Yes CSimpleIniCaseA -
wchar_t No Yes Yes CSimpleIniW -
wchar_t Yes Yes Yes CSimpleIniCaseW -
SI_CONVERT_ICU -
char No Yes Yes CSimpleIniA -
char Yes Yes Yes CSimpleIniCaseA -
UChar No Yes Yes CSimpleIniW -
UChar Yes Yes Yes CSimpleIniCaseW -
- #1 On Windows you are better to use CSimpleIniA with SI_CONVERT_WIN32.
- #2 Only affects Windows. On Windows this uses MBCS functions and - so may fold case incorrectly leading to uncertain results. - -# Call LoadData() or LoadFile() to load and parse the INI configuration file - -# Access and modify the data of the file using the following functions - -
GetAllSections Return all section names -
GetAllKeys Return all key names within a section -
GetAllValues Return all values within a section & key -
GetSection Return all key names and values in a section -
GetSectionSize Return the number of keys in a section -
GetValue Return a value for a section & key -
SetValue Add or update a value for a section & key -
Delete Remove a section, or a key from a section -
- -# Call Save() or SaveFile() to save the INI configuration data - - @section iostreams IO STREAMS - - SimpleIni supports reading from and writing to STL IO streams. Enable this - by defining SI_SUPPORT_IOSTREAMS before including the SimpleIni.h header - file. Ensure that if the streams are backed by a file (e.g. ifstream or - ofstream) then the flag ios_base::binary has been used when the file was - opened. - - @section multiline MULTI-LINE VALUES - - Values that span multiple lines are created using the following format. - -
-        key = <<
-
-    Note the following:
-    - The text used for ENDTAG can be anything and is used to find
-      where the multi-line text ends.
-    - The newline after ENDTAG in the start tag, and the newline
-      before ENDTAG in the end tag is not included in the data value.
-    - The ending tag must be on it's own line with no whitespace before
-      or after it.
-    - The multi-line value is modified at load so that each line in the value
-      is delimited by a single '\\n' character on all platforms. At save time
-      it will be converted into the newline format used by the current
-      platform.
-
-    @section comments COMMENTS
-
-    Comments are preserved in the file within the following restrictions:
-    - Every file may have a single "file comment". It must start with the
-      first character in the file, and will end with the first non-comment
-      line in the file.
-    - Every section may have a single "section comment". It will start
-      with the first comment line following the file comment, or the last
-      data entry. It ends at the beginning of the section.
-    - Every key may have a single "key comment". This comment will start
-      with the first comment line following the section start, or the file
-      comment if there is no section name.
-    - Comments are set at the time that the file, section or key is first
-      created. The only way to modify a comment on a section or a key is to
-      delete that entry and recreate it with the new comment. There is no
-      way to change the file comment.
-
-    @section save SAVE ORDER
-
-    The sections and keys are written out in the same order as they were
-    read in from the file. Sections and keys added to the data after the
-    file has been loaded will be added to the end of the file when it is
-    written. There is no way to specify the location of a section or key
-    other than in first-created, first-saved order.
-
-    @section notes NOTES
-
-    - To load UTF-8 data on Windows 95, you need to use Microsoft Layer for
-      Unicode, or SI_CONVERT_GENERIC, or SI_CONVERT_ICU.
-    - When using SI_CONVERT_GENERIC, ConvertUTF.c must be compiled and linked.
-    - When using SI_CONVERT_ICU, ICU header files must be on the include
-      path and icuuc.lib must be linked in.
-    - To load a UTF-8 file on Windows AND expose it with SI_CHAR == char,
-      you should use SI_CONVERT_GENERIC.
-    - The collation (sorting) order used for sections and keys returned from
-      iterators is NOT DEFINED. If collation order of the text is important
-      then it should be done yourself by either supplying a replacement
-      SI_STRLESS class, or by sorting the strings external to this library.
-    - Usage of the  header on Windows can be disabled by defining
-      SI_NO_MBCS. This is defined automatically on Windows CE platforms.
-    - Not thread-safe so manage your own locking
-
-    @section contrib CONTRIBUTIONS
-    
-    - 2010/05/03: Tobias Gehrig: added GetDoubleValue()
-
-    @section licence MIT LICENCE
-
-    The licence text below is the boilerplate "MIT Licence" used from:
-    http://www.opensource.org/licenses/mit-license.php
-
-    Copyright (c) 2006-2012, Brodie Thiesfield
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is furnished
-    to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in
-    all copies or substantial portions of the Software.
-
-    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 OR
-    COPYRIGHT HOLDERS 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.
-*/
-
-#ifndef INCLUDED_SimpleIni_h
-#define INCLUDED_SimpleIni_h
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-// Disable these warnings in MSVC:
-//  4127 "conditional expression is constant" as the conversion classes trigger
-//  it with the statement if (sizeof(SI_CHAR) == sizeof(char)). This test will
-//  be optimized away in a release build.
-//  4503 'insert' : decorated name length exceeded, name was truncated
-//  4702 "unreachable code" as the MS STL header causes it in release mode.
-//  Again, the code causing the warning will be cleaned up by the compiler.
-//  4786 "identifier truncated to 256 characters" as this is thrown hundreds
-//  of times VC6 as soon as STL is used.
-#ifdef _MSC_VER
-# pragma warning (push)
-# pragma warning (disable: 4127 4503 4702 4786)
-#endif
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#ifdef SI_SUPPORT_IOSTREAMS
-# include 
-#endif // SI_SUPPORT_IOSTREAMS
-
-#ifdef _DEBUG
-# ifndef assert
-#  include 
-# endif
-# define SI_ASSERT(x)   assert(x)
-#else
-# define SI_ASSERT(x)
-#endif
-
-enum SI_Error {
-    SI_OK       =  0,   //!< No error
-    SI_UPDATED  =  1,   //!< An existing value was updated
-    SI_INSERTED =  2,   //!< A new value was inserted
-
-    // note: test for any error with (retval < 0)
-    SI_FAIL     = -1,   //!< Generic failure
-    SI_NOMEM    = -2,   //!< Out of memory error
-    SI_FILE     = -3    //!< File error (see errno for detail error)
-};
-
-#define SI_UTF8_SIGNATURE     "\xEF\xBB\xBF"
-
-#ifdef _WIN32
-# define SI_NEWLINE_A   "\r\n"
-# define SI_NEWLINE_W   L"\r\n"
-#else // !_WIN32
-# define SI_NEWLINE_A   "\n"
-# define SI_NEWLINE_W   L"\n"
-#endif // _WIN32
-
-#if defined(SI_CONVERT_ICU)
-# include 
-#endif
-
-#if defined(_WIN32)
-# define SI_HAS_WIDE_FILE
-# define SI_WCHAR_T     wchar_t
-#elif defined(SI_CONVERT_ICU)
-# define SI_HAS_WIDE_FILE
-# define SI_WCHAR_T     UChar
-#endif
-
-
-// ---------------------------------------------------------------------------
-//                              MAIN TEMPLATE CLASS
-// ---------------------------------------------------------------------------
-
-/** Simple INI file reader.
-
-    This can be instantiated with the choice of unicode or native characterset,
-    and case sensitive or insensitive comparisons of section and key names.
-    The supported combinations are pre-defined with the following typedefs:
-
-    
-        
Interface Case-sensitive Typedef -
char No CSimpleIniA -
char Yes CSimpleIniCaseA -
wchar_t No CSimpleIniW -
wchar_t Yes CSimpleIniCaseW -
- - Note that using other types for the SI_CHAR is supported. For instance, - unsigned char, unsigned short, etc. Note that where the alternative type - is a different size to char/wchar_t you may need to supply new helper - classes for SI_STRLESS and SI_CONVERTER. - */ -template -class CSimpleIniTempl -{ -public: - typedef SI_CHAR SI_CHAR_T; - - /** key entry */ - struct Entry { - const SI_CHAR * pItem; - const SI_CHAR * pComment; - int nOrder; - - Entry(const SI_CHAR * a_pszItem = NULL, int a_nOrder = 0) - : pItem(a_pszItem) - , pComment(NULL) - , nOrder(a_nOrder) - { } - Entry(const SI_CHAR * a_pszItem, const SI_CHAR * a_pszComment, int a_nOrder) - : pItem(a_pszItem) - , pComment(a_pszComment) - , nOrder(a_nOrder) - { } - Entry(const Entry & rhs) { operator=(rhs); } - Entry & operator=(const Entry & rhs) { - pItem = rhs.pItem; - pComment = rhs.pComment; - nOrder = rhs.nOrder; - return *this; - } - -#if defined(_MSC_VER) && _MSC_VER <= 1200 - /** STL of VC6 doesn't allow me to specify my own comparator for list::sort() */ - bool operator<(const Entry & rhs) const { return LoadOrder()(*this, rhs); } - bool operator>(const Entry & rhs) const { return LoadOrder()(rhs, *this); } -#endif - - /** Strict less ordering by name of key only */ - struct KeyOrder { - bool operator()(const Entry & lhs, const Entry & rhs) const { - const static SI_STRLESS isLess = SI_STRLESS(); - return isLess(lhs.pItem, rhs.pItem); - } - }; - - /** Strict less ordering by order, and then name of key */ - struct LoadOrder { - bool operator()(const Entry & lhs, const Entry & rhs) const { - if (lhs.nOrder != rhs.nOrder) { - return lhs.nOrder < rhs.nOrder; - } - return KeyOrder()(lhs.pItem, rhs.pItem); - } - }; - }; - - /** map keys to values */ - typedef std::multimap TKeyVal; - - /** map sections to key/value map */ - typedef std::map TSection; - - /** set of dependent string pointers. Note that these pointers are - dependent on memory owned by CSimpleIni. - */ - typedef std::list TNamesDepend; - - /** interface definition for the OutputWriter object to pass to Save() - in order to output the INI file data. - */ - class OutputWriter { - public: - OutputWriter() { } - virtual ~OutputWriter() { } - virtual void Write(const char * a_pBuf) = 0; - private: - OutputWriter(const OutputWriter &); // disable - OutputWriter & operator=(const OutputWriter &); // disable - }; - - /** OutputWriter class to write the INI data to a file */ - class FileWriter : public OutputWriter { - FILE * m_file; - public: - FileWriter(FILE * a_file) : m_file(a_file) { } - void Write(const char * a_pBuf) { - fputs(a_pBuf, m_file); - } - private: - FileWriter(const FileWriter &); // disable - FileWriter & operator=(const FileWriter &); // disable - }; - - /** OutputWriter class to write the INI data to a string */ - class StringWriter : public OutputWriter { - std::string & m_string; - public: - StringWriter(std::string & a_string) : m_string(a_string) { } - void Write(const char * a_pBuf) { - m_string.append(a_pBuf); - } - private: - StringWriter(const StringWriter &); // disable - StringWriter & operator=(const StringWriter &); // disable - }; - -#ifdef SI_SUPPORT_IOSTREAMS - /** OutputWriter class to write the INI data to an ostream */ - class StreamWriter : public OutputWriter { - std::ostream & m_ostream; - public: - StreamWriter(std::ostream & a_ostream) : m_ostream(a_ostream) { } - void Write(const char * a_pBuf) { - m_ostream << a_pBuf; - } - private: - StreamWriter(const StreamWriter &); // disable - StreamWriter & operator=(const StreamWriter &); // disable - }; -#endif // SI_SUPPORT_IOSTREAMS - - /** Characterset conversion utility class to convert strings to the - same format as is used for the storage. - */ - class Converter : private SI_CONVERTER { - public: - Converter(bool a_bStoreIsUtf8) : SI_CONVERTER(a_bStoreIsUtf8) { - m_scratch.resize(1024); - } - Converter(const Converter & rhs) { operator=(rhs); } - Converter & operator=(const Converter & rhs) { - m_scratch = rhs.m_scratch; - return *this; - } - bool ConvertToStore(const SI_CHAR * a_pszString) { - size_t uLen = SI_CONVERTER::SizeToStore(a_pszString); - if (uLen == (size_t)(-1)) { - return false; - } - while (uLen > m_scratch.size()) { - m_scratch.resize(m_scratch.size() * 2); - } - return SI_CONVERTER::ConvertToStore( - a_pszString, - const_cast(m_scratch.data()), - m_scratch.size()); - } - const char * Data() { return m_scratch.data(); } - private: - std::string m_scratch; - }; - -public: - /*-----------------------------------------------------------------------*/ - - /** Default constructor. - - @param a_bIsUtf8 See the method SetUnicode() for details. - @param a_bMultiKey See the method SetMultiKey() for details. - @param a_bMultiLine See the method SetMultiLine() for details. - */ - CSimpleIniTempl( - bool a_bIsUtf8 = false, - bool a_bMultiKey = false, - bool a_bMultiLine = false - ); - - /** Destructor */ - ~CSimpleIniTempl(); - - /** Deallocate all memory stored by this object */ - void Reset(); - - /** Has any data been loaded */ - bool IsEmpty() const { return m_data.empty(); } - - /*-----------------------------------------------------------------------*/ - /** @{ @name Settings */ - - /** Set the storage format of the INI data. This affects both the loading - and saving of the INI data using all of the Load/Save API functions. - This value cannot be changed after any INI data has been loaded. - - If the file is not set to Unicode (UTF-8), then the data encoding is - assumed to be the OS native encoding. This encoding is the system - locale on Linux/Unix and the legacy MBCS encoding on Windows NT/2K/XP. - If the storage format is set to Unicode then the file will be loaded - as UTF-8 encoded data regardless of the native file encoding. If - SI_CHAR == char then all of the char* parameters take and return UTF-8 - encoded data regardless of the system locale. - - \param a_bIsUtf8 Assume UTF-8 encoding for the source? - */ - void SetUnicode(bool a_bIsUtf8 = true) { - if (!m_pData) m_bStoreIsUtf8 = a_bIsUtf8; - } - - /** Get the storage format of the INI data. */ - bool IsUnicode() const { return m_bStoreIsUtf8; } - - /** Should multiple identical keys be permitted in the file. If set to false - then the last value encountered will be used as the value of the key. - If set to true, then all values will be available to be queried. For - example, with the following input: - -
-        [section]
-        test=value1
-        test=value2
-        
- - Then with SetMultiKey(true), both of the values "value1" and "value2" - will be returned for the key test. If SetMultiKey(false) is used, then - the value for "test" will only be "value2". This value may be changed - at any time. - - \param a_bAllowMultiKey Allow multi-keys in the source? - */ - void SetMultiKey(bool a_bAllowMultiKey = true) { - m_bAllowMultiKey = a_bAllowMultiKey; - } - - /** Get the storage format of the INI data. */ - bool IsMultiKey() const { return m_bAllowMultiKey; } - - /** Should data values be permitted to span multiple lines in the file. If - set to false then the multi-line construct << - SI_CHAR FORMAT - char same format as when loaded (MBCS or UTF-8) - wchar_t UTF-8 - other UTF-8 - - - Note that comments from the original data is preserved as per the - documentation on comments. The order of the sections and values - from the original file will be preserved. - - Any data prepended or appended to the output device must use the the - same format (MBCS or UTF-8). You may use the GetConverter() method to - convert text to the correct format regardless of the output format - being used by SimpleIni. - - To add a BOM to UTF-8 data, write it out manually at the very beginning - like is done in SaveFile when a_bUseBOM is true. - - @param a_oOutput Output writer to write the data to. - - @param a_bAddSignature Prepend the UTF-8 BOM if the output data is in - UTF-8 format. If it is not UTF-8 then this value is - ignored. Do not set this to true if anything has - already been written to the OutputWriter. - - @return SI_Error See error definitions - */ - SI_Error Save( - OutputWriter & a_oOutput, - bool a_bAddSignature = false - ) const; - -#ifdef SI_SUPPORT_IOSTREAMS - /** Save the INI data to an ostream. See Save() for details. - - @param a_ostream String to have the INI data appended to. - - @param a_bAddSignature Prepend the UTF-8 BOM if the output data is in - UTF-8 format. If it is not UTF-8 then this value is - ignored. Do not set this to true if anything has - already been written to the stream. - - @return SI_Error See error definitions - */ - SI_Error Save( - std::ostream & a_ostream, - bool a_bAddSignature = false - ) const - { - StreamWriter writer(a_ostream); - return Save(writer, a_bAddSignature); - } -#endif // SI_SUPPORT_IOSTREAMS - - /** Append the INI data to a string. See Save() for details. - - @param a_sBuffer String to have the INI data appended to. - - @param a_bAddSignature Prepend the UTF-8 BOM if the output data is in - UTF-8 format. If it is not UTF-8 then this value is - ignored. Do not set this to true if anything has - already been written to the string. - - @return SI_Error See error definitions - */ - SI_Error Save( - std::string & a_sBuffer, - bool a_bAddSignature = false - ) const - { - StringWriter writer(a_sBuffer); - return Save(writer, a_bAddSignature); - } - - /*-----------------------------------------------------------------------*/ - /** @} - @{ @name Accessing INI Data */ - - /** Retrieve all section names. The list is returned as an STL vector of - names and can be iterated or searched as necessary. Note that the - sort order of the returned strings is NOT DEFINED. You can sort - the names into the load order if desired. Search this file for ".sort" - for an example. - - NOTE! This structure contains only pointers to strings. The actual - string data is stored in memory owned by CSimpleIni. Ensure that the - CSimpleIni object is not destroyed or Reset() while these pointers - are in use! - - @param a_names Vector that will receive all of the section - names. See note above! - */ - void GetAllSections( - TNamesDepend & a_names - ) const; - - /** Retrieve all unique key names in a section. The sort order of the - returned strings is NOT DEFINED. You can sort the names into the load - order if desired. Search this file for ".sort" for an example. Only - unique key names are returned. - - NOTE! This structure contains only pointers to strings. The actual - string data is stored in memory owned by CSimpleIni. Ensure that the - CSimpleIni object is not destroyed or Reset() while these strings - are in use! - - @param a_pSection Section to request data for - @param a_names List that will receive all of the key - names. See note above! - - @return true Section was found. - @return false Matching section was not found. - */ - bool GetAllKeys( - const SI_CHAR * a_pSection, - TNamesDepend & a_names - ) const; - - /** Retrieve all values for a specific key. This method can be used when - multiple keys are both enabled and disabled. Note that the sort order - of the returned strings is NOT DEFINED. You can sort the names into - the load order if desired. Search this file for ".sort" for an example. - - NOTE! The returned values are pointers to string data stored in memory - owned by CSimpleIni. Ensure that the CSimpleIni object is not destroyed - or Reset while you are using this pointer! - - @param a_pSection Section to search - @param a_pKey Key to search for - @param a_values List to return if the key is not found - - @return true Key was found. - @return false Matching section/key was not found. - */ - bool GetAllValues( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - TNamesDepend & a_values - ) const; - - /** Query the number of keys in a specific section. Note that if multiple - keys are enabled, then this value may be different to the number of - keys returned by GetAllKeys. - - @param a_pSection Section to request data for - - @return -1 Section does not exist in the file - @return >=0 Number of keys in the section - */ - int GetSectionSize( - const SI_CHAR * a_pSection - ) const; - - /** Retrieve all key and value pairs for a section. The data is returned - as a pointer to an STL map and can be iterated or searched as - desired. Note that multiple entries for the same key may exist when - multiple keys have been enabled. - - NOTE! This structure contains only pointers to strings. The actual - string data is stored in memory owned by CSimpleIni. Ensure that the - CSimpleIni object is not destroyed or Reset() while these strings - are in use! - - @param a_pSection Name of the section to return - @return boolean Was a section matching the supplied - name found. - */ - const TKeyVal * GetSection( - const SI_CHAR * a_pSection - ) const; - - /** Retrieve the value for a specific key. If multiple keys are enabled - (see SetMultiKey) then only the first value associated with that key - will be returned, see GetAllValues for getting all values with multikey. - - NOTE! The returned value is a pointer to string data stored in memory - owned by CSimpleIni. Ensure that the CSimpleIni object is not destroyed - or Reset while you are using this pointer! - - @param a_pSection Section to search - @param a_pKey Key to search for - @param a_pDefault Value to return if the key is not found - @param a_pHasMultiple Optionally receive notification of if there are - multiple entries for this key. - - @return a_pDefault Key was not found in the section - @return other Value of the key - */ - const SI_CHAR * GetValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pDefault = NULL, - bool * a_pHasMultiple = NULL - ) const; - - /** Retrieve a numeric value for a specific key. If multiple keys are enabled - (see SetMultiKey) then only the first value associated with that key - will be returned, see GetAllValues for getting all values with multikey. - - @param a_pSection Section to search - @param a_pKey Key to search for - @param a_nDefault Value to return if the key is not found - @param a_pHasMultiple Optionally receive notification of if there are - multiple entries for this key. - - @return a_nDefault Key was not found in the section - @return other Value of the key - */ - long GetLongValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - long a_nDefault = 0, - bool * a_pHasMultiple = NULL - ) const; - - /** Retrieve a numeric value for a specific key. If multiple keys are enabled - (see SetMultiKey) then only the first value associated with that key - will be returned, see GetAllValues for getting all values with multikey. - - @param a_pSection Section to search - @param a_pKey Key to search for - @param a_nDefault Value to return if the key is not found - @param a_pHasMultiple Optionally receive notification of if there are - multiple entries for this key. - - @return a_nDefault Key was not found in the section - @return other Value of the key - */ - double GetDoubleValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - double a_nDefault = 0, - bool * a_pHasMultiple = NULL - ) const; - - /** Retrieve a boolean value for a specific key. If multiple keys are enabled - (see SetMultiKey) then only the first value associated with that key - will be returned, see GetAllValues for getting all values with multikey. - - Strings starting with "t", "y", "on" or "1" are returned as logically true. - Strings starting with "f", "n", "of" or "0" are returned as logically false. - For all other values the default is returned. Character comparisons are - case-insensitive. - - @param a_pSection Section to search - @param a_pKey Key to search for - @param a_bDefault Value to return if the key is not found - @param a_pHasMultiple Optionally receive notification of if there are - multiple entries for this key. - - @return a_nDefault Key was not found in the section - @return other Value of the key - */ - bool GetBoolValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bDefault = false, - bool * a_pHasMultiple = NULL - ) const; - - /** Add or update a section or value. This will always insert - when multiple keys are enabled. - - @param a_pSection Section to add or update - @param a_pKey Key to add or update. Set to NULL to - create an empty section. - @param a_pValue Value to set. Set to NULL to create an - empty section. - @param a_pComment Comment to be associated with the section or the - key. If a_pKey is NULL then it will be associated - with the section, otherwise the key. Note that a - comment may be set ONLY when the section or key is - first created (i.e. when this function returns the - value SI_INSERTED). If you wish to create a section - with a comment then you need to create the section - separately to the key. The comment string must be - in full comment form already (have a comment - character starting every line). - @param a_bForceReplace Should all existing values in a multi-key INI - file be replaced with this entry. This option has - no effect if not using multi-key files. The - difference between Delete/SetValue and SetValue - with a_bForceReplace = true, is that the load - order and comment will be preserved this way. - - @return SI_Error See error definitions - @return SI_UPDATED Value was updated - @return SI_INSERTED Value was inserted - */ - SI_Error SetValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pValue, - const SI_CHAR * a_pComment = NULL, - bool a_bForceReplace = false - ) - { - return AddEntry(a_pSection, a_pKey, a_pValue, a_pComment, a_bForceReplace, true); - } - - /** Add or update a numeric value. This will always insert - when multiple keys are enabled. - - @param a_pSection Section to add or update - @param a_pKey Key to add or update. - @param a_nValue Value to set. - @param a_pComment Comment to be associated with the key. See the - notes on SetValue() for comments. - @param a_bUseHex By default the value will be written to the file - in decimal format. Set this to true to write it - as hexadecimal. - @param a_bForceReplace Should all existing values in a multi-key INI - file be replaced with this entry. This option has - no effect if not using multi-key files. The - difference between Delete/SetLongValue and - SetLongValue with a_bForceReplace = true, is that - the load order and comment will be preserved this - way. - - @return SI_Error See error definitions - @return SI_UPDATED Value was updated - @return SI_INSERTED Value was inserted - */ - SI_Error SetLongValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - long a_nValue, - const SI_CHAR * a_pComment = NULL, - bool a_bUseHex = false, - bool a_bForceReplace = false - ); - - /** Add or update a double value. This will always insert - when multiple keys are enabled. - - @param a_pSection Section to add or update - @param a_pKey Key to add or update. - @param a_nValue Value to set. - @param a_pComment Comment to be associated with the key. See the - notes on SetValue() for comments. - @param a_bForceReplace Should all existing values in a multi-key INI - file be replaced with this entry. This option has - no effect if not using multi-key files. The - difference between Delete/SetDoubleValue and - SetDoubleValue with a_bForceReplace = true, is that - the load order and comment will be preserved this - way. - - @return SI_Error See error definitions - @return SI_UPDATED Value was updated - @return SI_INSERTED Value was inserted - */ - SI_Error SetDoubleValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - double a_nValue, - const SI_CHAR * a_pComment = NULL, - bool a_bForceReplace = false - ); - - /** Add or update a boolean value. This will always insert - when multiple keys are enabled. - - @param a_pSection Section to add or update - @param a_pKey Key to add or update. - @param a_bValue Value to set. - @param a_pComment Comment to be associated with the key. See the - notes on SetValue() for comments. - @param a_bForceReplace Should all existing values in a multi-key INI - file be replaced with this entry. This option has - no effect if not using multi-key files. The - difference between Delete/SetBoolValue and - SetBoolValue with a_bForceReplace = true, is that - the load order and comment will be preserved this - way. - - @return SI_Error See error definitions - @return SI_UPDATED Value was updated - @return SI_INSERTED Value was inserted - */ - SI_Error SetBoolValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bValue, - const SI_CHAR * a_pComment = NULL, - bool a_bForceReplace = false - ); - - /** Delete an entire section, or a key from a section. Note that the - data returned by GetSection is invalid and must not be used after - anything has been deleted from that section using this method. - Note when multiple keys is enabled, this will delete all keys with - that name; to selectively delete individual key/values, use - DeleteValue. - - @param a_pSection Section to delete key from, or if - a_pKey is NULL, the section to remove. - @param a_pKey Key to remove from the section. Set to - NULL to remove the entire section. - @param a_bRemoveEmpty If the section is empty after this key has - been deleted, should the empty section be - removed? - - @return true Key or section was deleted. - @return false Key or section was not found. - */ - bool Delete( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bRemoveEmpty = false - ); - - /** Delete an entire section, or a key from a section. If value is - provided, only remove keys with the value. Note that the data - returned by GetSection is invalid and must not be used after - anything has been deleted from that section using this method. - Note when multiple keys is enabled, all keys with the value will - be deleted. - - @param a_pSection Section to delete key from, or if - a_pKey is NULL, the section to remove. - @param a_pKey Key to remove from the section. Set to - NULL to remove the entire section. - @param a_pValue Value of key to remove from the section. - Set to NULL to remove all keys. - @param a_bRemoveEmpty If the section is empty after this key has - been deleted, should the empty section be - removed? - - @return true Key/value or section was deleted. - @return false Key/value or section was not found. - */ - bool DeleteValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pValue, - bool a_bRemoveEmpty = false - ); - - /*-----------------------------------------------------------------------*/ - /** @} - @{ @name Converter */ - - /** Return a conversion object to convert text to the same encoding - as is used by the Save(), SaveFile() and SaveString() functions. - Use this to prepare the strings that you wish to append or prepend - to the output INI data. - */ - Converter GetConverter() const { - return Converter(m_bStoreIsUtf8); - } - - /*-----------------------------------------------------------------------*/ - /** @} */ - -private: - // copying is not permitted - CSimpleIniTempl(const CSimpleIniTempl &); // disabled - CSimpleIniTempl & operator=(const CSimpleIniTempl &); // disabled - - /** Parse the data looking for a file comment and store it if found. - */ - SI_Error FindFileComment( - SI_CHAR *& a_pData, - bool a_bCopyStrings - ); - - /** Parse the data looking for the next valid entry. The memory pointed to - by a_pData is modified by inserting NULL characters. The pointer is - updated to the current location in the block of text. - */ - bool FindEntry( - SI_CHAR *& a_pData, - const SI_CHAR *& a_pSection, - const SI_CHAR *& a_pKey, - const SI_CHAR *& a_pVal, - const SI_CHAR *& a_pComment - ) const; - - /** Add the section/key/value to our data. - - @param a_pSection Section name. Sections will be created if they - don't already exist. - @param a_pKey Key name. May be NULL to create an empty section. - Existing entries will be updated. New entries will - be created. - @param a_pValue Value for the key. - @param a_pComment Comment to be associated with the section or the - key. If a_pKey is NULL then it will be associated - with the section, otherwise the key. This must be - a string in full comment form already (have a - comment character starting every line). - @param a_bForceReplace Should all existing values in a multi-key INI - file be replaced with this entry. This option has - no effect if not using multi-key files. The - difference between Delete/AddEntry and AddEntry - with a_bForceReplace = true, is that the load - order and comment will be preserved this way. - @param a_bCopyStrings Should copies of the strings be made or not. - If false then the pointers will be used as is. - */ - SI_Error AddEntry( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pValue, - const SI_CHAR * a_pComment, - bool a_bForceReplace, - bool a_bCopyStrings - ); - - /** Is the supplied character a whitespace character? */ - inline bool IsSpace(SI_CHAR ch) const { - return (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n'); - } - - /** Does the supplied character start a comment line? */ - inline bool IsComment(SI_CHAR ch) const { - return (ch == ';' || ch == '#'); - } - - - /** Skip over a newline character (or characters) for either DOS or UNIX */ - inline void SkipNewLine(SI_CHAR *& a_pData) const { - a_pData += (*a_pData == '\r' && *(a_pData+1) == '\n') ? 2 : 1; - } - - /** Make a copy of the supplied string, replacing the original pointer */ - SI_Error CopyString(const SI_CHAR *& a_pString); - - /** Delete a string from the copied strings buffer if necessary */ - void DeleteString(const SI_CHAR * a_pString); - - /** Internal use of our string comparison function */ - bool IsLess(const SI_CHAR * a_pLeft, const SI_CHAR * a_pRight) const { - const static SI_STRLESS isLess = SI_STRLESS(); - return isLess(a_pLeft, a_pRight); - } - - bool IsMultiLineTag(const SI_CHAR * a_pData) const; - bool IsMultiLineData(const SI_CHAR * a_pData) const; - bool LoadMultiLineText( - SI_CHAR *& a_pData, - const SI_CHAR *& a_pVal, - const SI_CHAR * a_pTagName, - bool a_bAllowBlankLinesInComment = false - ) const; - bool IsNewLineChar(SI_CHAR a_c) const; - - bool OutputMultiLineText( - OutputWriter & a_oOutput, - Converter & a_oConverter, - const SI_CHAR * a_pText - ) const; - -private: - /** Copy of the INI file data in our character format. This will be - modified when parsed to have NULL characters added after all - interesting string entries. All of the string pointers to sections, - keys and values point into this block of memory. - */ - SI_CHAR * m_pData; - - /** Length of the data that we have stored. Used when deleting strings - to determine if the string is stored here or in the allocated string - buffer. - */ - size_t m_uDataLen; - - /** File comment for this data, if one exists. */ - const SI_CHAR * m_pFileComment; - - /** Parsed INI data. Section -> (Key -> Value). */ - TSection m_data; - - /** This vector stores allocated memory for copies of strings that have - been supplied after the file load. It will be empty unless SetValue() - has been called. - */ - TNamesDepend m_strings; - - /** Is the format of our datafile UTF-8 or MBCS? */ - bool m_bStoreIsUtf8; - - /** Are multiple values permitted for the same key? */ - bool m_bAllowMultiKey; - - /** Are data values permitted to span multiple lines? */ - bool m_bAllowMultiLine; - - /** Should spaces be written out surrounding the equals sign? */ - bool m_bSpaces; - - /** Next order value, used to ensure sections and keys are output in the - same order that they are loaded/added. - */ - int m_nOrder; -}; - -// --------------------------------------------------------------------------- -// IMPLEMENTATION -// --------------------------------------------------------------------------- - -template -CSimpleIniTempl::CSimpleIniTempl( - bool a_bIsUtf8, - bool a_bAllowMultiKey, - bool a_bAllowMultiLine - ) - : m_pData(0) - , m_uDataLen(0) - , m_pFileComment(NULL) - , m_bStoreIsUtf8(a_bIsUtf8) - , m_bAllowMultiKey(a_bAllowMultiKey) - , m_bAllowMultiLine(a_bAllowMultiLine) - , m_bSpaces(true) - , m_nOrder(0) -{ } - -template -CSimpleIniTempl::~CSimpleIniTempl() -{ - Reset(); -} - -template -void -CSimpleIniTempl::Reset() -{ - // remove all data - delete[] m_pData; - m_pData = NULL; - m_uDataLen = 0; - m_pFileComment = NULL; - if (!m_data.empty()) { - m_data.erase(m_data.begin(), m_data.end()); - } - - // remove all strings - if (!m_strings.empty()) { - typename TNamesDepend::iterator i = m_strings.begin(); - for (; i != m_strings.end(); ++i) { - delete[] const_cast(i->pItem); - } - m_strings.erase(m_strings.begin(), m_strings.end()); - } -} - -template -SI_Error -CSimpleIniTempl::LoadFile( - const char * a_pszFile - ) -{ - FILE * fp = NULL; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - fopen_s(&fp, a_pszFile, "rb"); -#else // !__STDC_WANT_SECURE_LIB__ - fp = fopen(a_pszFile, "rb"); -#endif // __STDC_WANT_SECURE_LIB__ - if (!fp) { - return SI_FILE; - } - SI_Error rc = LoadFile(fp); - fclose(fp); - return rc; -} - -#ifdef SI_HAS_WIDE_FILE -template -SI_Error -CSimpleIniTempl::LoadFile( - const SI_WCHAR_T * a_pwszFile - ) -{ -#ifdef _WIN32 - FILE * fp = NULL; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - _wfopen_s(&fp, a_pwszFile, L"rb"); -#else // !__STDC_WANT_SECURE_LIB__ - fp = _wfopen(a_pwszFile, L"rb"); -#endif // __STDC_WANT_SECURE_LIB__ - if (!fp) return SI_FILE; - SI_Error rc = LoadFile(fp); - fclose(fp); - return rc; -#else // !_WIN32 (therefore SI_CONVERT_ICU) - char szFile[256]; - u_austrncpy(szFile, a_pwszFile, sizeof(szFile)); - return LoadFile(szFile); -#endif // _WIN32 -} -#endif // SI_HAS_WIDE_FILE - -template -SI_Error -CSimpleIniTempl::LoadFile( - FILE * a_fpFile - ) -{ - // load the raw file data - int retval = fseek(a_fpFile, 0, SEEK_END); - if (retval != 0) { - return SI_FILE; - } - long lSize = ftell(a_fpFile); - if (lSize < 0) { - return SI_FILE; - } - if (lSize == 0) { - return SI_OK; - } - - // allocate and ensure NULL terminated - char * pData = new(std::nothrow) char[lSize+1]; - if (!pData) { - return SI_NOMEM; - } - pData[lSize] = 0; - - // load data into buffer - fseek(a_fpFile, 0, SEEK_SET); - size_t uRead = fread(pData, sizeof(char), lSize, a_fpFile); - if (uRead != (size_t) lSize) { - delete[] pData; - return SI_FILE; - } - - // convert the raw data to unicode - SI_Error rc = LoadData(pData, uRead); - delete[] pData; - return rc; -} - -template -SI_Error -CSimpleIniTempl::LoadData( - const char * a_pData, - size_t a_uDataLen - ) -{ - if (!a_pData) { - return SI_OK; - } - - // if the UTF-8 BOM exists, consume it and set mode to unicode, if we have - // already loaded data and try to change mode half-way through then this will - // be ignored and we will assert in debug versions - if (a_uDataLen >= 3 && memcmp(a_pData, SI_UTF8_SIGNATURE, 3) == 0) { - a_pData += 3; - a_uDataLen -= 3; - SI_ASSERT(m_bStoreIsUtf8 || !m_pData); // we don't expect mixed mode data - SetUnicode(); - } - - if (a_uDataLen == 0) { - return SI_OK; - } - - // determine the length of the converted data - SI_CONVERTER converter(m_bStoreIsUtf8); - size_t uLen = converter.SizeFromStore(a_pData, a_uDataLen); - if (uLen == (size_t)(-1)) { - return SI_FAIL; - } - - // allocate memory for the data, ensure that there is a NULL - // terminator wherever the converted data ends - SI_CHAR * pData = new(std::nothrow) SI_CHAR[uLen+1]; - if (!pData) { - return SI_NOMEM; - } - memset(pData, 0, sizeof(SI_CHAR)*(uLen+1)); - - // convert the data - if (!converter.ConvertFromStore(a_pData, a_uDataLen, pData, uLen)) { - delete[] pData; - return SI_FAIL; - } - - // parse it - const static SI_CHAR empty = 0; - SI_CHAR * pWork = pData; - const SI_CHAR * pSection = ∅ - const SI_CHAR * pItem = NULL; - const SI_CHAR * pVal = NULL; - const SI_CHAR * pComment = NULL; - - // We copy the strings if we are loading data into this class when we - // already have stored some. - bool bCopyStrings = (m_pData != NULL); - - // find a file comment if it exists, this is a comment that starts at the - // beginning of the file and continues until the first blank line. - SI_Error rc = FindFileComment(pWork, bCopyStrings); - if (rc < 0) return rc; - - // add every entry in the file to the data table - while (FindEntry(pWork, pSection, pItem, pVal, pComment)) { - rc = AddEntry(pSection, pItem, pVal, pComment, false, bCopyStrings); - if (rc < 0) return rc; - } - - // store these strings if we didn't copy them - if (bCopyStrings) { - delete[] pData; - } - else { - m_pData = pData; - m_uDataLen = uLen+1; - } - - return SI_OK; -} - -#ifdef SI_SUPPORT_IOSTREAMS -template -SI_Error -CSimpleIniTempl::LoadData( - std::istream & a_istream - ) -{ - std::string strData; - char szBuf[512]; - do { - a_istream.get(szBuf, sizeof(szBuf), '\0'); - strData.append(szBuf); - } - while (a_istream.good()); - return LoadData(strData); -} -#endif // SI_SUPPORT_IOSTREAMS - -template -SI_Error -CSimpleIniTempl::FindFileComment( - SI_CHAR *& a_pData, - bool a_bCopyStrings - ) -{ - // there can only be a single file comment - if (m_pFileComment) { - return SI_OK; - } - - // Load the file comment as multi-line text, this will modify all of - // the newline characters to be single \n chars - if (!LoadMultiLineText(a_pData, m_pFileComment, NULL, false)) { - return SI_OK; - } - - // copy the string if necessary - if (a_bCopyStrings) { - SI_Error rc = CopyString(m_pFileComment); - if (rc < 0) return rc; - } - - return SI_OK; -} - -template -bool -CSimpleIniTempl::FindEntry( - SI_CHAR *& a_pData, - const SI_CHAR *& a_pSection, - const SI_CHAR *& a_pKey, - const SI_CHAR *& a_pVal, - const SI_CHAR *& a_pComment - ) const -{ - a_pComment = NULL; - - SI_CHAR * pTrail = NULL; - while (*a_pData) { - // skip spaces and empty lines - while (*a_pData && IsSpace(*a_pData)) { - ++a_pData; - } - if (!*a_pData) { - break; - } - - // skip processing of comment lines but keep a pointer to - // the start of the comment. - if (IsComment(*a_pData)) { - LoadMultiLineText(a_pData, a_pComment, NULL, true); - continue; - } - - // process section names - if (*a_pData == '[') { - // skip leading spaces - ++a_pData; - while (*a_pData && IsSpace(*a_pData)) { - ++a_pData; - } - - // find the end of the section name (it may contain spaces) - // and convert it to lowercase as necessary - a_pSection = a_pData; - while (*a_pData && *a_pData != ']' && !IsNewLineChar(*a_pData)) { - ++a_pData; - } - - // if it's an invalid line, just skip it - if (*a_pData != ']') { - continue; - } - - // remove trailing spaces from the section - pTrail = a_pData - 1; - while (pTrail >= a_pSection && IsSpace(*pTrail)) { - --pTrail; - } - ++pTrail; - *pTrail = 0; - - // skip to the end of the line - ++a_pData; // safe as checked that it == ']' above - while (*a_pData && !IsNewLineChar(*a_pData)) { - ++a_pData; - } - - a_pKey = NULL; - a_pVal = NULL; - return true; - } - - // find the end of the key name (it may contain spaces) - // and convert it to lowercase as necessary - a_pKey = a_pData; - while (*a_pData && *a_pData != '=' && !IsNewLineChar(*a_pData)) { - ++a_pData; - } - - // if it's an invalid line, just skip it - if (*a_pData != '=') { - continue; - } - - // empty keys are invalid - if (a_pKey == a_pData) { - while (*a_pData && !IsNewLineChar(*a_pData)) { - ++a_pData; - } - continue; - } - - // remove trailing spaces from the key - pTrail = a_pData - 1; - while (pTrail >= a_pKey && IsSpace(*pTrail)) { - --pTrail; - } - ++pTrail; - *pTrail = 0; - - // skip leading whitespace on the value - ++a_pData; // safe as checked that it == '=' above - while (*a_pData && !IsNewLineChar(*a_pData) && IsSpace(*a_pData)) { - ++a_pData; - } - - // find the end of the value which is the end of this line - a_pVal = a_pData; - while (*a_pData && !IsNewLineChar(*a_pData)) { - ++a_pData; - } - - // remove trailing spaces from the value - pTrail = a_pData - 1; - if (*a_pData) { // prepare for the next round - SkipNewLine(a_pData); - } - while (pTrail >= a_pVal && IsSpace(*pTrail)) { - --pTrail; - } - ++pTrail; - *pTrail = 0; - - // check for multi-line entries - if (m_bAllowMultiLine && IsMultiLineTag(a_pVal)) { - // skip the "<<<" to get the tag that will end the multiline - const SI_CHAR * pTagName = a_pVal + 3; - return LoadMultiLineText(a_pData, a_pVal, pTagName); - } - - // return the standard entry - return true; - } - - return false; -} - -template -bool -CSimpleIniTempl::IsMultiLineTag( - const SI_CHAR * a_pVal - ) const -{ - // check for the "<<<" prefix for a multi-line entry - if (*a_pVal++ != '<') return false; - if (*a_pVal++ != '<') return false; - if (*a_pVal++ != '<') return false; - return true; -} - -template -bool -CSimpleIniTempl::IsMultiLineData( - const SI_CHAR * a_pData - ) const -{ - // data is multi-line if it has any of the following features: - // * whitespace prefix - // * embedded newlines - // * whitespace suffix - - // empty string - if (!*a_pData) { - return false; - } - - // check for prefix - if (IsSpace(*a_pData)) { - return true; - } - - // embedded newlines - while (*a_pData) { - if (IsNewLineChar(*a_pData)) { - return true; - } - ++a_pData; - } - - // check for suffix - if (IsSpace(*--a_pData)) { - return true; - } - - return false; -} - -template -bool -CSimpleIniTempl::IsNewLineChar( - SI_CHAR a_c - ) const -{ - return (a_c == '\n' || a_c == '\r'); -} - -template -bool -CSimpleIniTempl::LoadMultiLineText( - SI_CHAR *& a_pData, - const SI_CHAR *& a_pVal, - const SI_CHAR * a_pTagName, - bool a_bAllowBlankLinesInComment - ) const -{ - // we modify this data to strip all newlines down to a single '\n' - // character. This means that on Windows we need to strip out some - // characters which will make the data shorter. - // i.e. LINE1-LINE1\r\nLINE2-LINE2\0 will become - // LINE1-LINE1\nLINE2-LINE2\0 - // The pDataLine entry is the pointer to the location in memory that - // the current line needs to start to run following the existing one. - // This may be the same as pCurrLine in which case no move is needed. - SI_CHAR * pDataLine = a_pData; - SI_CHAR * pCurrLine; - - // value starts at the current line - a_pVal = a_pData; - - // find the end tag. This tag must start in column 1 and be - // followed by a newline. We ignore any whitespace after the end - // tag but not whitespace before it. - SI_CHAR cEndOfLineChar = *a_pData; - for(;;) { - // if we are loading comments then we need a comment character as - // the first character on every line - if (!a_pTagName && !IsComment(*a_pData)) { - // if we aren't allowing blank lines then we're done - if (!a_bAllowBlankLinesInComment) { - break; - } - - // if we are allowing blank lines then we only include them - // in this comment if another comment follows, so read ahead - // to find out. - SI_CHAR * pCurr = a_pData; - int nNewLines = 0; - while (IsSpace(*pCurr)) { - if (IsNewLineChar(*pCurr)) { - ++nNewLines; - SkipNewLine(pCurr); - } - else { - ++pCurr; - } - } - - // we have a comment, add the blank lines to the output - // and continue processing from here - if (IsComment(*pCurr)) { - for (; nNewLines > 0; --nNewLines) *pDataLine++ = '\n'; - a_pData = pCurr; - continue; - } - - // the comment ends here - break; - } - - // find the end of this line - pCurrLine = a_pData; - while (*a_pData && !IsNewLineChar(*a_pData)) ++a_pData; - - // move this line down to the location that it should be if necessary - if (pDataLine < pCurrLine) { - size_t nLen = (size_t) (a_pData - pCurrLine); - memmove(pDataLine, pCurrLine, nLen * sizeof(SI_CHAR)); - pDataLine[nLen] = '\0'; - } - - // end the line with a NULL - cEndOfLineChar = *a_pData; - *a_pData = 0; - - // if are looking for a tag then do the check now. This is done before - // checking for end of the data, so that if we have the tag at the end - // of the data then the tag is removed correctly. - if (a_pTagName) { - // strip whitespace from the end of this tag - SI_CHAR* pc = a_pData - 1; - while (pc > pDataLine && IsSpace(*pc)) --pc; - SI_CHAR ch = *++pc; - *pc = 0; - - if (!IsLess(pDataLine, a_pTagName) && !IsLess(a_pTagName, pDataLine)) { - break; - } - - *pc = ch; - } - - // if we are at the end of the data then we just automatically end - // this entry and return the current data. - if (!cEndOfLineChar) { - return true; - } - - // otherwise we need to process this newline to ensure that it consists - // of just a single \n character. - pDataLine += (a_pData - pCurrLine); - *a_pData = cEndOfLineChar; - SkipNewLine(a_pData); - *pDataLine++ = '\n'; - } - - // if we didn't find a comment at all then return false - if (a_pVal == a_pData) { - a_pVal = NULL; - return false; - } - - // the data (which ends at the end of the last line) needs to be - // null-terminated BEFORE before the newline character(s). If the - // user wants a new line in the multi-line data then they need to - // add an empty line before the tag. - *--pDataLine = '\0'; - - // if looking for a tag and if we aren't at the end of the data, - // then move a_pData to the start of the next line. - if (a_pTagName && cEndOfLineChar) { - SI_ASSERT(IsNewLineChar(cEndOfLineChar)); - *a_pData = cEndOfLineChar; - SkipNewLine(a_pData); - } - - return true; -} - -template -SI_Error -CSimpleIniTempl::CopyString( - const SI_CHAR *& a_pString - ) -{ - size_t uLen = 0; - if (sizeof(SI_CHAR) == sizeof(char)) { - uLen = strlen((const char *)a_pString); - } - else if (sizeof(SI_CHAR) == sizeof(wchar_t)) { - uLen = wcslen((const wchar_t *)a_pString); - } - else { - for ( ; a_pString[uLen]; ++uLen) /*loop*/ ; - } - ++uLen; // NULL character - SI_CHAR * pCopy = new(std::nothrow) SI_CHAR[uLen]; - if (!pCopy) { - return SI_NOMEM; - } - memcpy(pCopy, a_pString, sizeof(SI_CHAR)*uLen); - m_strings.push_back(pCopy); - a_pString = pCopy; - return SI_OK; -} - -template -SI_Error -CSimpleIniTempl::AddEntry( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pValue, - const SI_CHAR * a_pComment, - bool a_bForceReplace, - bool a_bCopyStrings - ) -{ - SI_Error rc; - bool bInserted = false; - - SI_ASSERT(!a_pComment || IsComment(*a_pComment)); - - // if we are copying strings then make a copy of the comment now - // because we will need it when we add the entry. - if (a_bCopyStrings && a_pComment) { - rc = CopyString(a_pComment); - if (rc < 0) return rc; - } - - // create the section entry if necessary - typename TSection::iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - // if the section doesn't exist then we need a copy as the - // string needs to last beyond the end of this function - if (a_bCopyStrings) { - rc = CopyString(a_pSection); - if (rc < 0) return rc; - } - - // only set the comment if this is a section only entry - Entry oSection(a_pSection, ++m_nOrder); - if (a_pComment && (!a_pKey || !a_pValue)) { - oSection.pComment = a_pComment; - } - - typename TSection::value_type oEntry(oSection, TKeyVal()); - typedef typename TSection::iterator SectionIterator; - std::pair i = m_data.insert(oEntry); - iSection = i.first; - bInserted = true; - } - if (!a_pKey || !a_pValue) { - // section only entries are specified with pItem and pVal as NULL - return bInserted ? SI_INSERTED : SI_UPDATED; - } - - // check for existence of the key - TKeyVal & keyval = iSection->second; - typename TKeyVal::iterator iKey = keyval.find(a_pKey); - bInserted = iKey == keyval.end(); - - // remove all existing entries but save the load order and - // comment of the first entry - int nLoadOrder = ++m_nOrder; - if (iKey != keyval.end() && m_bAllowMultiKey && a_bForceReplace) { - const SI_CHAR * pComment = NULL; - while (iKey != keyval.end() && !IsLess(a_pKey, iKey->first.pItem)) { - if (iKey->first.nOrder < nLoadOrder) { - nLoadOrder = iKey->first.nOrder; - pComment = iKey->first.pComment; - } - ++iKey; - } - if (pComment) { - DeleteString(a_pComment); - a_pComment = pComment; - CopyString(a_pComment); - } - Delete(a_pSection, a_pKey); - iKey = keyval.end(); - } - - // make string copies if necessary - bool bForceCreateNewKey = m_bAllowMultiKey && !a_bForceReplace; - if (a_bCopyStrings) { - if (bForceCreateNewKey || iKey == keyval.end()) { - // if the key doesn't exist then we need a copy as the - // string needs to last beyond the end of this function - // because we will be inserting the key next - rc = CopyString(a_pKey); - if (rc < 0) return rc; - } - - // we always need a copy of the value - rc = CopyString(a_pValue); - if (rc < 0) return rc; - } - - // create the key entry - if (iKey == keyval.end() || bForceCreateNewKey) { - Entry oKey(a_pKey, nLoadOrder); - if (a_pComment) { - oKey.pComment = a_pComment; - } - typename TKeyVal::value_type oEntry(oKey, static_cast(NULL)); - iKey = keyval.insert(oEntry); - } - - iKey->second = a_pValue; - return bInserted ? SI_INSERTED : SI_UPDATED; -} - -template -const SI_CHAR * -CSimpleIniTempl::GetValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pDefault, - bool * a_pHasMultiple - ) const -{ - if (a_pHasMultiple) { - *a_pHasMultiple = false; - } - if (!a_pSection || !a_pKey) { - return a_pDefault; - } - typename TSection::const_iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - return a_pDefault; - } - typename TKeyVal::const_iterator iKeyVal = iSection->second.find(a_pKey); - if (iKeyVal == iSection->second.end()) { - return a_pDefault; - } - - // check for multiple entries with the same key - if (m_bAllowMultiKey && a_pHasMultiple) { - typename TKeyVal::const_iterator iTemp = iKeyVal; - if (++iTemp != iSection->second.end()) { - if (!IsLess(a_pKey, iTemp->first.pItem)) { - *a_pHasMultiple = true; - } - } - } - - return iKeyVal->second; -} - -template -long -CSimpleIniTempl::GetLongValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - long a_nDefault, - bool * a_pHasMultiple - ) const -{ - // return the default if we don't have a value - const SI_CHAR * pszValue = GetValue(a_pSection, a_pKey, NULL, a_pHasMultiple); - if (!pszValue || !*pszValue) return a_nDefault; - - // convert to UTF-8/MBCS which for a numeric value will be the same as ASCII - char szValue[64] = { 0 }; - SI_CONVERTER c(m_bStoreIsUtf8); - if (!c.ConvertToStore(pszValue, szValue, sizeof(szValue))) { - return a_nDefault; - } - - // handle the value as hex if prefaced with "0x" - long nValue = a_nDefault; - char * pszSuffix = szValue; - if (szValue[0] == '0' && (szValue[1] == 'x' || szValue[1] == 'X')) { - if (!szValue[2]) return a_nDefault; - nValue = strtol(&szValue[2], &pszSuffix, 16); - } - else { - nValue = strtol(szValue, &pszSuffix, 10); - } - - // any invalid strings will return the default value - if (*pszSuffix) { - return a_nDefault; - } - - return nValue; -} - -template -SI_Error -CSimpleIniTempl::SetLongValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - long a_nValue, - const SI_CHAR * a_pComment, - bool a_bUseHex, - bool a_bForceReplace - ) -{ - // use SetValue to create sections - if (!a_pSection || !a_pKey) return SI_FAIL; - - // convert to an ASCII string - char szInput[64]; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - sprintf_s(szInput, a_bUseHex ? "0x%lx" : "%ld", a_nValue); -#else // !__STDC_WANT_SECURE_LIB__ - sprintf(szInput, a_bUseHex ? "0x%lx" : "%ld", a_nValue); -#endif // __STDC_WANT_SECURE_LIB__ - - // convert to output text - SI_CHAR szOutput[64]; - SI_CONVERTER c(m_bStoreIsUtf8); - c.ConvertFromStore(szInput, strlen(szInput) + 1, - szOutput, sizeof(szOutput) / sizeof(SI_CHAR)); - - // actually add it - return AddEntry(a_pSection, a_pKey, szOutput, a_pComment, a_bForceReplace, true); -} - -template -double -CSimpleIniTempl::GetDoubleValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - double a_nDefault, - bool * a_pHasMultiple - ) const -{ - // return the default if we don't have a value - const SI_CHAR * pszValue = GetValue(a_pSection, a_pKey, NULL, a_pHasMultiple); - if (!pszValue || !*pszValue) return a_nDefault; - - // convert to UTF-8/MBCS which for a numeric value will be the same as ASCII - char szValue[64] = { 0 }; - SI_CONVERTER c(m_bStoreIsUtf8); - if (!c.ConvertToStore(pszValue, szValue, sizeof(szValue))) { - return a_nDefault; - } - - char * pszSuffix = NULL; - double nValue = strtod(szValue, &pszSuffix); - - // any invalid strings will return the default value - if (!pszSuffix || *pszSuffix) { - return a_nDefault; - } - - return nValue; -} - -template -SI_Error -CSimpleIniTempl::SetDoubleValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - double a_nValue, - const SI_CHAR * a_pComment, - bool a_bForceReplace - ) -{ - // use SetValue to create sections - if (!a_pSection || !a_pKey) return SI_FAIL; - - // convert to an ASCII string - char szInput[64]; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - sprintf_s(szInput, "%f", a_nValue); -#else // !__STDC_WANT_SECURE_LIB__ - sprintf(szInput, "%f", a_nValue); -#endif // __STDC_WANT_SECURE_LIB__ - - // convert to output text - SI_CHAR szOutput[64]; - SI_CONVERTER c(m_bStoreIsUtf8); - c.ConvertFromStore(szInput, strlen(szInput) + 1, - szOutput, sizeof(szOutput) / sizeof(SI_CHAR)); - - // actually add it - return AddEntry(a_pSection, a_pKey, szOutput, a_pComment, a_bForceReplace, true); -} - -template -bool -CSimpleIniTempl::GetBoolValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bDefault, - bool * a_pHasMultiple - ) const -{ - // return the default if we don't have a value - const SI_CHAR * pszValue = GetValue(a_pSection, a_pKey, NULL, a_pHasMultiple); - if (!pszValue || !*pszValue) return a_bDefault; - - // we only look at the minimum number of characters - switch (pszValue[0]) { - case 't': case 'T': // true - case 'y': case 'Y': // yes - case '1': // 1 (one) - return true; - - case 'f': case 'F': // false - case 'n': case 'N': // no - case '0': // 0 (zero) - return false; - - case 'o': case 'O': - if (pszValue[1] == 'n' || pszValue[1] == 'N') return true; // on - if (pszValue[1] == 'f' || pszValue[1] == 'F') return false; // off - break; - } - - // no recognized value, return the default - return a_bDefault; -} - -template -SI_Error -CSimpleIniTempl::SetBoolValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bValue, - const SI_CHAR * a_pComment, - bool a_bForceReplace - ) -{ - // use SetValue to create sections - if (!a_pSection || !a_pKey) return SI_FAIL; - - // convert to an ASCII string - const char * pszInput = a_bValue ? "true" : "false"; - - // convert to output text - SI_CHAR szOutput[64]; - SI_CONVERTER c(m_bStoreIsUtf8); - c.ConvertFromStore(pszInput, strlen(pszInput) + 1, - szOutput, sizeof(szOutput) / sizeof(SI_CHAR)); - - // actually add it - return AddEntry(a_pSection, a_pKey, szOutput, a_pComment, a_bForceReplace, true); -} - -template -bool -CSimpleIniTempl::GetAllValues( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - TNamesDepend & a_values - ) const -{ - a_values.clear(); - - if (!a_pSection || !a_pKey) { - return false; - } - typename TSection::const_iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - return false; - } - typename TKeyVal::const_iterator iKeyVal = iSection->second.find(a_pKey); - if (iKeyVal == iSection->second.end()) { - return false; - } - - // insert all values for this key - a_values.push_back(Entry(iKeyVal->second, iKeyVal->first.pComment, iKeyVal->first.nOrder)); - if (m_bAllowMultiKey) { - ++iKeyVal; - while (iKeyVal != iSection->second.end() && !IsLess(a_pKey, iKeyVal->first.pItem)) { - a_values.push_back(Entry(iKeyVal->second, iKeyVal->first.pComment, iKeyVal->first.nOrder)); - ++iKeyVal; - } - } - - return true; -} - -template -int -CSimpleIniTempl::GetSectionSize( - const SI_CHAR * a_pSection - ) const -{ - if (!a_pSection) { - return -1; - } - - typename TSection::const_iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - return -1; - } - const TKeyVal & section = iSection->second; - - // if multi-key isn't permitted then the section size is - // the number of keys that we have. - if (!m_bAllowMultiKey || section.empty()) { - return (int) section.size(); - } - - // otherwise we need to count them - int nCount = 0; - const SI_CHAR * pLastKey = NULL; - typename TKeyVal::const_iterator iKeyVal = section.begin(); - for (int n = 0; iKeyVal != section.end(); ++iKeyVal, ++n) { - if (!pLastKey || IsLess(pLastKey, iKeyVal->first.pItem)) { - ++nCount; - pLastKey = iKeyVal->first.pItem; - } - } - return nCount; -} - -template -const typename CSimpleIniTempl::TKeyVal * -CSimpleIniTempl::GetSection( - const SI_CHAR * a_pSection - ) const -{ - if (a_pSection) { - typename TSection::const_iterator i = m_data.find(a_pSection); - if (i != m_data.end()) { - return &(i->second); - } - } - return 0; -} - -template -void -CSimpleIniTempl::GetAllSections( - TNamesDepend & a_names - ) const -{ - a_names.clear(); - typename TSection::const_iterator i = m_data.begin(); - for (int n = 0; i != m_data.end(); ++i, ++n ) { - a_names.push_back(i->first); - } -} - -template -bool -CSimpleIniTempl::GetAllKeys( - const SI_CHAR * a_pSection, - TNamesDepend & a_names - ) const -{ - a_names.clear(); - - if (!a_pSection) { - return false; - } - - typename TSection::const_iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - return false; - } - - const TKeyVal & section = iSection->second; - const SI_CHAR * pLastKey = NULL; - typename TKeyVal::const_iterator iKeyVal = section.begin(); - for (int n = 0; iKeyVal != section.end(); ++iKeyVal, ++n ) { - if (!pLastKey || IsLess(pLastKey, iKeyVal->first.pItem)) { - a_names.push_back(iKeyVal->first); - pLastKey = iKeyVal->first.pItem; - } - } - - return true; -} - -template -SI_Error -CSimpleIniTempl::SaveFile( - const char * a_pszFile, - bool a_bAddSignature - ) const -{ - FILE * fp = NULL; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - fopen_s(&fp, a_pszFile, "wb"); -#else // !__STDC_WANT_SECURE_LIB__ - fp = fopen(a_pszFile, "wb"); -#endif // __STDC_WANT_SECURE_LIB__ - if (!fp) return SI_FILE; - SI_Error rc = SaveFile(fp, a_bAddSignature); - fclose(fp); - return rc; -} - -#ifdef SI_HAS_WIDE_FILE -template -SI_Error -CSimpleIniTempl::SaveFile( - const SI_WCHAR_T * a_pwszFile, - bool a_bAddSignature - ) const -{ -#ifdef _WIN32 - FILE * fp = NULL; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - _wfopen_s(&fp, a_pwszFile, L"wb"); -#else // !__STDC_WANT_SECURE_LIB__ - fp = _wfopen(a_pwszFile, L"wb"); -#endif // __STDC_WANT_SECURE_LIB__ - if (!fp) return SI_FILE; - SI_Error rc = SaveFile(fp, a_bAddSignature); - fclose(fp); - return rc; -#else // !_WIN32 (therefore SI_CONVERT_ICU) - char szFile[256]; - u_austrncpy(szFile, a_pwszFile, sizeof(szFile)); - return SaveFile(szFile, a_bAddSignature); -#endif // _WIN32 -} -#endif // SI_HAS_WIDE_FILE - -template -SI_Error -CSimpleIniTempl::SaveFile( - FILE * a_pFile, - bool a_bAddSignature - ) const -{ - FileWriter writer(a_pFile); - return Save(writer, a_bAddSignature); -} - -template -SI_Error -CSimpleIniTempl::Save( - OutputWriter & a_oOutput, - bool a_bAddSignature - ) const -{ - Converter convert(m_bStoreIsUtf8); - - // add the UTF-8 signature if it is desired - if (m_bStoreIsUtf8 && a_bAddSignature) { - a_oOutput.Write(SI_UTF8_SIGNATURE); - } - - // get all of the sections sorted in load order - TNamesDepend oSections; - GetAllSections(oSections); -#if defined(_MSC_VER) && _MSC_VER <= 1200 - oSections.sort(); -#elif defined(__BORLANDC__) - oSections.sort(Entry::LoadOrder()); -#else - oSections.sort(typename Entry::LoadOrder()); -#endif - - // if there is an empty section name, then it must be written out first - // regardless of the load order - typename TNamesDepend::iterator is = oSections.begin(); - for (; is != oSections.end(); ++is) { - if (!*is->pItem) { - // move the empty section name to the front of the section list - if (is != oSections.begin()) { - oSections.splice(oSections.begin(), oSections, is, std::next(is)); - } - break; - } - } - - // write the file comment if we have one - bool bNeedNewLine = false; - if (m_pFileComment) { - if (!OutputMultiLineText(a_oOutput, convert, m_pFileComment)) { - return SI_FAIL; - } - bNeedNewLine = true; - } - - // iterate through our sections and output the data - typename TNamesDepend::const_iterator iSection = oSections.begin(); - for ( ; iSection != oSections.end(); ++iSection ) { - // write out the comment if there is one - if (iSection->pComment) { - if (bNeedNewLine) { - a_oOutput.Write(SI_NEWLINE_A); - a_oOutput.Write(SI_NEWLINE_A); - } - if (!OutputMultiLineText(a_oOutput, convert, iSection->pComment)) { - return SI_FAIL; - } - bNeedNewLine = false; - } - - if (bNeedNewLine) { - a_oOutput.Write(SI_NEWLINE_A); - a_oOutput.Write(SI_NEWLINE_A); - bNeedNewLine = false; - } - - // write the section (unless there is no section name) - if (*iSection->pItem) { - if (!convert.ConvertToStore(iSection->pItem)) { - return SI_FAIL; - } - a_oOutput.Write("["); - a_oOutput.Write(convert.Data()); - a_oOutput.Write("]"); - a_oOutput.Write(SI_NEWLINE_A); - } - - // get all of the keys sorted in load order - TNamesDepend oKeys; - GetAllKeys(iSection->pItem, oKeys); -#if defined(_MSC_VER) && _MSC_VER <= 1200 - oKeys.sort(); -#elif defined(__BORLANDC__) - oKeys.sort(Entry::LoadOrder()); -#else - oKeys.sort(typename Entry::LoadOrder()); -#endif - - // write all keys and values - typename TNamesDepend::const_iterator iKey = oKeys.begin(); - for ( ; iKey != oKeys.end(); ++iKey) { - // get all values for this key - TNamesDepend oValues; - GetAllValues(iSection->pItem, iKey->pItem, oValues); - - typename TNamesDepend::const_iterator iValue = oValues.begin(); - for ( ; iValue != oValues.end(); ++iValue) { - // write out the comment if there is one - if (iValue->pComment) { - a_oOutput.Write(SI_NEWLINE_A); - if (!OutputMultiLineText(a_oOutput, convert, iValue->pComment)) { - return SI_FAIL; - } - } - - // write the key - if (!convert.ConvertToStore(iKey->pItem)) { - return SI_FAIL; - } - a_oOutput.Write(convert.Data()); - - // write the value - if (!convert.ConvertToStore(iValue->pItem)) { - return SI_FAIL; - } - a_oOutput.Write(m_bSpaces ? " = " : "="); - if (m_bAllowMultiLine && IsMultiLineData(iValue->pItem)) { - // multi-line data needs to be processed specially to ensure - // that we use the correct newline format for the current system - a_oOutput.Write("<<pItem)) { - return SI_FAIL; - } - a_oOutput.Write("END_OF_TEXT"); - } - else { - a_oOutput.Write(convert.Data()); - } - a_oOutput.Write(SI_NEWLINE_A); - } - } - - bNeedNewLine = true; - } - - return SI_OK; -} - -template -bool -CSimpleIniTempl::OutputMultiLineText( - OutputWriter & a_oOutput, - Converter & a_oConverter, - const SI_CHAR * a_pText - ) const -{ - const SI_CHAR * pEndOfLine; - SI_CHAR cEndOfLineChar = *a_pText; - while (cEndOfLineChar) { - // find the end of this line - pEndOfLine = a_pText; - for (; *pEndOfLine && *pEndOfLine != '\n'; ++pEndOfLine) /*loop*/ ; - cEndOfLineChar = *pEndOfLine; - - // temporarily null terminate, convert and output the line - *const_cast(pEndOfLine) = 0; - if (!a_oConverter.ConvertToStore(a_pText)) { - return false; - } - *const_cast(pEndOfLine) = cEndOfLineChar; - a_pText += (pEndOfLine - a_pText) + 1; - a_oOutput.Write(a_oConverter.Data()); - a_oOutput.Write(SI_NEWLINE_A); - } - return true; -} - -template -bool -CSimpleIniTempl::Delete( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bRemoveEmpty - ) -{ - return DeleteValue(a_pSection, a_pKey, NULL, a_bRemoveEmpty); -} - -template -bool -CSimpleIniTempl::DeleteValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pValue, - bool a_bRemoveEmpty - ) -{ - if (!a_pSection) { - return false; - } - - typename TSection::iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - return false; - } - - // remove a single key if we have a keyname - if (a_pKey) { - typename TKeyVal::iterator iKeyVal = iSection->second.find(a_pKey); - if (iKeyVal == iSection->second.end()) { - return false; - } - - const static SI_STRLESS isLess = SI_STRLESS(); - - // remove any copied strings and then the key - typename TKeyVal::iterator iDelete; - bool bDeleted = false; - do { - iDelete = iKeyVal++; - - if(a_pValue == NULL || - (isLess(a_pValue, iDelete->second) == false && - isLess(iDelete->second, a_pValue) == false)) { - DeleteString(iDelete->first.pItem); - DeleteString(iDelete->second); - iSection->second.erase(iDelete); - bDeleted = true; - } - } - while (iKeyVal != iSection->second.end() - && !IsLess(a_pKey, iKeyVal->first.pItem)); - - if(!bDeleted) { - return false; - } - - // done now if the section is not empty or we are not pruning away - // the empty sections. Otherwise let it fall through into the section - // deletion code - if (!a_bRemoveEmpty || !iSection->second.empty()) { - return true; - } - } - else { - // delete all copied strings from this section. The actual - // entries will be removed when the section is removed. - typename TKeyVal::iterator iKeyVal = iSection->second.begin(); - for ( ; iKeyVal != iSection->second.end(); ++iKeyVal) { - DeleteString(iKeyVal->first.pItem); - DeleteString(iKeyVal->second); - } - } - - // delete the section itself - DeleteString(iSection->first.pItem); - m_data.erase(iSection); - - return true; -} - -template -void -CSimpleIniTempl::DeleteString( - const SI_CHAR * a_pString - ) -{ - // strings may exist either inside the data block, or they will be - // individually allocated and stored in m_strings. We only physically - // delete those stored in m_strings. - if (a_pString < m_pData || a_pString >= m_pData + m_uDataLen) { - typename TNamesDepend::iterator i = m_strings.begin(); - for (;i != m_strings.end(); ++i) { - if (a_pString == i->pItem) { - delete[] const_cast(i->pItem); - m_strings.erase(i); - break; - } - } - } -} - -// --------------------------------------------------------------------------- -// CONVERSION FUNCTIONS -// --------------------------------------------------------------------------- - -// Defines the conversion classes for different libraries. Before including -// SimpleIni.h, set the converter that you wish you use by defining one of the -// following symbols. -// -// SI_NO_CONVERSION Do not make the "W" wide character version of the -// library available. Only CSimpleIniA etc is defined. -// SI_CONVERT_GENERIC Use the Unicode reference conversion library in -// the accompanying files ConvertUTF.h/c -// SI_CONVERT_ICU Use the IBM ICU conversion library. Requires -// ICU headers on include path and icuuc.lib -// SI_CONVERT_WIN32 Use the Win32 API functions for conversion. - -#if !defined(SI_NO_CONVERSION) && !defined(SI_CONVERT_GENERIC) && !defined(SI_CONVERT_WIN32) && !defined(SI_CONVERT_ICU) -# ifdef _WIN32 -# define SI_CONVERT_WIN32 -# else -# define SI_CONVERT_GENERIC -# endif -#endif - -/** - * Generic case-sensitive less than comparison. This class returns numerically - * ordered ASCII case-sensitive text for all possible sizes and types of - * SI_CHAR. - */ -template -struct SI_GenericCase { - bool operator()(const SI_CHAR * pLeft, const SI_CHAR * pRight) const { - long cmp; - for ( ;*pLeft && *pRight; ++pLeft, ++pRight) { - cmp = (long) *pLeft - (long) *pRight; - if (cmp != 0) { - return cmp < 0; - } - } - return *pRight != 0; - } -}; - -/** - * Generic ASCII case-insensitive less than comparison. This class returns - * numerically ordered ASCII case-insensitive text for all possible sizes - * and types of SI_CHAR. It is not safe for MBCS text comparison where - * ASCII A-Z characters are used in the encoding of multi-byte characters. - */ -template -struct SI_GenericNoCase { - inline SI_CHAR locase(SI_CHAR ch) const { - return (ch < 'A' || ch > 'Z') ? ch : (ch - 'A' + 'a'); - } - bool operator()(const SI_CHAR * pLeft, const SI_CHAR * pRight) const { - long cmp; - for ( ;*pLeft && *pRight; ++pLeft, ++pRight) { - cmp = (long) locase(*pLeft) - (long) locase(*pRight); - if (cmp != 0) { - return cmp < 0; - } - } - return *pRight != 0; - } -}; - -/** - * Null conversion class for MBCS/UTF-8 to char (or equivalent). - */ -template -class SI_ConvertA { - bool m_bStoreIsUtf8; -protected: - SI_ConvertA() { } -public: - SI_ConvertA(bool a_bStoreIsUtf8) : m_bStoreIsUtf8(a_bStoreIsUtf8) { } - - /* copy and assignment */ - SI_ConvertA(const SI_ConvertA & rhs) { operator=(rhs); } - SI_ConvertA & operator=(const SI_ConvertA & rhs) { - m_bStoreIsUtf8 = rhs.m_bStoreIsUtf8; - return *this; - } - - /** Calculate the number of SI_CHAR required for converting the input - * from the storage format. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @return Number of SI_CHAR required by the string when - * converted. If there are embedded NULL bytes in the - * input data, only the string up and not including - * the NULL byte will be converted. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeFromStore( - const char * a_pInputData, - size_t a_uInputDataLen) - { - (void)a_pInputData; - SI_ASSERT(a_uInputDataLen != (size_t) -1); - - // ASCII/MBCS/UTF-8 needs no conversion - return a_uInputDataLen; - } - - /** Convert the input string from the storage format to SI_CHAR. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @param a_pOutputData Pointer to the output buffer to received the - * converted data. - * @param a_uOutputDataSize Size of the output buffer in SI_CHAR. - * @return true if all of the input data was successfully - * converted. - */ - bool ConvertFromStore( - const char * a_pInputData, - size_t a_uInputDataLen, - SI_CHAR * a_pOutputData, - size_t a_uOutputDataSize) - { - // ASCII/MBCS/UTF-8 needs no conversion - if (a_uInputDataLen > a_uOutputDataSize) { - return false; - } - memcpy(a_pOutputData, a_pInputData, a_uInputDataLen); - return true; - } - - /** Calculate the number of char required by the storage format of this - * data. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated string to calculate the number of - * bytes required to be converted to storage format. - * @return Number of bytes required by the string when - * converted to storage format. This size always - * includes space for the terminating NULL character. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeToStore( - const SI_CHAR * a_pInputData) - { - // ASCII/MBCS/UTF-8 needs no conversion - return strlen((const char *)a_pInputData) + 1; - } - - /** Convert the input string to the storage format of this data. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated source string to convert. All of - * the data will be converted including the - * terminating NULL character. - * @param a_pOutputData Pointer to the buffer to receive the converted - * string. - * @param a_uOutputDataSize Size of the output buffer in char. - * @return true if all of the input data, including the - * terminating NULL character was successfully - * converted. - */ - bool ConvertToStore( - const SI_CHAR * a_pInputData, - char * a_pOutputData, - size_t a_uOutputDataSize) - { - // calc input string length (SI_CHAR type and size independent) - size_t uInputLen = strlen((const char *)a_pInputData) + 1; - if (uInputLen > a_uOutputDataSize) { - return false; - } - - // ascii/UTF-8 needs no conversion - memcpy(a_pOutputData, a_pInputData, uInputLen); - return true; - } -}; - - -// --------------------------------------------------------------------------- -// SI_CONVERT_GENERIC -// --------------------------------------------------------------------------- -#ifdef SI_CONVERT_GENERIC - -#define SI_Case SI_GenericCase -#define SI_NoCase SI_GenericNoCase - -#include -#include "ConvertUTF.h" - -/** - * Converts UTF-8 to a wchar_t (or equivalent) using the Unicode reference - * library functions. This can be used on all platforms. - */ -template -class SI_ConvertW { - bool m_bStoreIsUtf8; -protected: - SI_ConvertW() { } -public: - SI_ConvertW(bool a_bStoreIsUtf8) : m_bStoreIsUtf8(a_bStoreIsUtf8) { } - - /* copy and assignment */ - SI_ConvertW(const SI_ConvertW & rhs) { operator=(rhs); } - SI_ConvertW & operator=(const SI_ConvertW & rhs) { - m_bStoreIsUtf8 = rhs.m_bStoreIsUtf8; - return *this; - } - - /** Calculate the number of SI_CHAR required for converting the input - * from the storage format. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @return Number of SI_CHAR required by the string when - * converted. If there are embedded NULL bytes in the - * input data, only the string up and not including - * the NULL byte will be converted. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeFromStore( - const char * a_pInputData, - size_t a_uInputDataLen) - { - SI_ASSERT(a_uInputDataLen != (size_t) -1); - - if (m_bStoreIsUtf8) { - // worst case scenario for UTF-8 to wchar_t is 1 char -> 1 wchar_t - // so we just return the same number of characters required as for - // the source text. - return a_uInputDataLen; - } - -#if defined(SI_NO_MBSTOWCS_NULL) || (!defined(_MSC_VER) && !defined(_linux)) - // fall back processing for platforms that don't support a NULL dest to mbstowcs - // worst case scenario is 1:1, this will be a sufficient buffer size - (void)a_pInputData; - return a_uInputDataLen; -#else - // get the actual required buffer size - return mbstowcs(NULL, a_pInputData, a_uInputDataLen); -#endif - } - - /** Convert the input string from the storage format to SI_CHAR. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @param a_pOutputData Pointer to the output buffer to received the - * converted data. - * @param a_uOutputDataSize Size of the output buffer in SI_CHAR. - * @return true if all of the input data was successfully - * converted. - */ - bool ConvertFromStore( - const char * a_pInputData, - size_t a_uInputDataLen, - SI_CHAR * a_pOutputData, - size_t a_uOutputDataSize) - { - if (m_bStoreIsUtf8) { - // This uses the Unicode reference implementation to do the - // conversion from UTF-8 to wchar_t. The required files are - // ConvertUTF.h and ConvertUTF.c which should be included in - // the distribution but are publically available from unicode.org - // at http://www.unicode.org/Public/PROGRAMS/CVTUTF/ - ConversionResult retval; - const UTF8 * pUtf8 = (const UTF8 *) a_pInputData; - if (sizeof(wchar_t) == sizeof(UTF32)) { - UTF32 * pUtf32 = (UTF32 *) a_pOutputData; - retval = ConvertUTF8toUTF32( - &pUtf8, pUtf8 + a_uInputDataLen, - &pUtf32, pUtf32 + a_uOutputDataSize, - lenientConversion); - } - else if (sizeof(wchar_t) == sizeof(UTF16)) { - UTF16 * pUtf16 = (UTF16 *) a_pOutputData; - retval = ConvertUTF8toUTF16( - &pUtf8, pUtf8 + a_uInputDataLen, - &pUtf16, pUtf16 + a_uOutputDataSize, - lenientConversion); - } - return retval == conversionOK; - } - - // convert to wchar_t - size_t retval = mbstowcs(a_pOutputData, - a_pInputData, a_uOutputDataSize); - return retval != (size_t)(-1); - } - - /** Calculate the number of char required by the storage format of this - * data. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated string to calculate the number of - * bytes required to be converted to storage format. - * @return Number of bytes required by the string when - * converted to storage format. This size always - * includes space for the terminating NULL character. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeToStore( - const SI_CHAR * a_pInputData) - { - if (m_bStoreIsUtf8) { - // worst case scenario for wchar_t to UTF-8 is 1 wchar_t -> 6 char - size_t uLen = 0; - while (a_pInputData[uLen]) { - ++uLen; - } - return (6 * uLen) + 1; - } - else { - size_t uLen = wcstombs(NULL, a_pInputData, 0); - if (uLen == (size_t)(-1)) { - return uLen; - } - return uLen + 1; // include NULL terminator - } - } - - /** Convert the input string to the storage format of this data. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated source string to convert. All of - * the data will be converted including the - * terminating NULL character. - * @param a_pOutputData Pointer to the buffer to receive the converted - * string. - * @param a_uOutputDataSize Size of the output buffer in char. - * @return true if all of the input data, including the - * terminating NULL character was successfully - * converted. - */ - bool ConvertToStore( - const SI_CHAR * a_pInputData, - char * a_pOutputData, - size_t a_uOutputDataSize - ) - { - if (m_bStoreIsUtf8) { - // calc input string length (SI_CHAR type and size independent) - size_t uInputLen = 0; - while (a_pInputData[uInputLen]) { - ++uInputLen; - } - ++uInputLen; // include the NULL char - - // This uses the Unicode reference implementation to do the - // conversion from wchar_t to UTF-8. The required files are - // ConvertUTF.h and ConvertUTF.c which should be included in - // the distribution but are publically available from unicode.org - // at http://www.unicode.org/Public/PROGRAMS/CVTUTF/ - ConversionResult retval; - UTF8 * pUtf8 = (UTF8 *) a_pOutputData; - if (sizeof(wchar_t) == sizeof(UTF32)) { - const UTF32 * pUtf32 = (const UTF32 *) a_pInputData; - retval = ConvertUTF32toUTF8( - &pUtf32, pUtf32 + uInputLen, - &pUtf8, pUtf8 + a_uOutputDataSize, - lenientConversion); - } - else if (sizeof(wchar_t) == sizeof(UTF16)) { - const UTF16 * pUtf16 = (const UTF16 *) a_pInputData; - retval = ConvertUTF16toUTF8( - &pUtf16, pUtf16 + uInputLen, - &pUtf8, pUtf8 + a_uOutputDataSize, - lenientConversion); - } - return retval == conversionOK; - } - else { - size_t retval = wcstombs(a_pOutputData, - a_pInputData, a_uOutputDataSize); - return retval != (size_t) -1; - } - } -}; - -#endif // SI_CONVERT_GENERIC - - -// --------------------------------------------------------------------------- -// SI_CONVERT_ICU -// --------------------------------------------------------------------------- -#ifdef SI_CONVERT_ICU - -#define SI_Case SI_GenericCase -#define SI_NoCase SI_GenericNoCase - -#include - -/** - * Converts MBCS/UTF-8 to UChar using ICU. This can be used on all platforms. - */ -template -class SI_ConvertW { - const char * m_pEncoding; - UConverter * m_pConverter; -protected: - SI_ConvertW() : m_pEncoding(NULL), m_pConverter(NULL) { } -public: - SI_ConvertW(bool a_bStoreIsUtf8) : m_pConverter(NULL) { - m_pEncoding = a_bStoreIsUtf8 ? "UTF-8" : NULL; - } - - /* copy and assignment */ - SI_ConvertW(const SI_ConvertW & rhs) { operator=(rhs); } - SI_ConvertW & operator=(const SI_ConvertW & rhs) { - m_pEncoding = rhs.m_pEncoding; - m_pConverter = NULL; - return *this; - } - ~SI_ConvertW() { if (m_pConverter) ucnv_close(m_pConverter); } - - /** Calculate the number of UChar required for converting the input - * from the storage format. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to UChar. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @return Number of UChar required by the string when - * converted. If there are embedded NULL bytes in the - * input data, only the string up and not including - * the NULL byte will be converted. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeFromStore( - const char * a_pInputData, - size_t a_uInputDataLen) - { - SI_ASSERT(a_uInputDataLen != (size_t) -1); - - UErrorCode nError; - - if (!m_pConverter) { - nError = U_ZERO_ERROR; - m_pConverter = ucnv_open(m_pEncoding, &nError); - if (U_FAILURE(nError)) { - return (size_t) -1; - } - } - - nError = U_ZERO_ERROR; - int32_t nLen = ucnv_toUChars(m_pConverter, NULL, 0, - a_pInputData, (int32_t) a_uInputDataLen, &nError); - if (U_FAILURE(nError) && nError != U_BUFFER_OVERFLOW_ERROR) { - return (size_t) -1; - } - - return (size_t) nLen; - } - - /** Convert the input string from the storage format to UChar. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to UChar. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @param a_pOutputData Pointer to the output buffer to received the - * converted data. - * @param a_uOutputDataSize Size of the output buffer in UChar. - * @return true if all of the input data was successfully - * converted. - */ - bool ConvertFromStore( - const char * a_pInputData, - size_t a_uInputDataLen, - UChar * a_pOutputData, - size_t a_uOutputDataSize) - { - UErrorCode nError; - - if (!m_pConverter) { - nError = U_ZERO_ERROR; - m_pConverter = ucnv_open(m_pEncoding, &nError); - if (U_FAILURE(nError)) { - return false; - } - } - - nError = U_ZERO_ERROR; - ucnv_toUChars(m_pConverter, - a_pOutputData, (int32_t) a_uOutputDataSize, - a_pInputData, (int32_t) a_uInputDataLen, &nError); - if (U_FAILURE(nError)) { - return false; - } - - return true; - } - - /** Calculate the number of char required by the storage format of this - * data. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated string to calculate the number of - * bytes required to be converted to storage format. - * @return Number of bytes required by the string when - * converted to storage format. This size always - * includes space for the terminating NULL character. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeToStore( - const UChar * a_pInputData) - { - UErrorCode nError; - - if (!m_pConverter) { - nError = U_ZERO_ERROR; - m_pConverter = ucnv_open(m_pEncoding, &nError); - if (U_FAILURE(nError)) { - return (size_t) -1; - } - } - - nError = U_ZERO_ERROR; - int32_t nLen = ucnv_fromUChars(m_pConverter, NULL, 0, - a_pInputData, -1, &nError); - if (U_FAILURE(nError) && nError != U_BUFFER_OVERFLOW_ERROR) { - return (size_t) -1; - } - - return (size_t) nLen + 1; - } - - /** Convert the input string to the storage format of this data. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated source string to convert. All of - * the data will be converted including the - * terminating NULL character. - * @param a_pOutputData Pointer to the buffer to receive the converted - * string. - * @param a_pOutputDataSize Size of the output buffer in char. - * @return true if all of the input data, including the - * terminating NULL character was successfully - * converted. - */ - bool ConvertToStore( - const UChar * a_pInputData, - char * a_pOutputData, - size_t a_uOutputDataSize) - { - UErrorCode nError; - - if (!m_pConverter) { - nError = U_ZERO_ERROR; - m_pConverter = ucnv_open(m_pEncoding, &nError); - if (U_FAILURE(nError)) { - return false; - } - } - - nError = U_ZERO_ERROR; - ucnv_fromUChars(m_pConverter, - a_pOutputData, (int32_t) a_uOutputDataSize, - a_pInputData, -1, &nError); - if (U_FAILURE(nError)) { - return false; - } - - return true; - } -}; - -#endif // SI_CONVERT_ICU - - -// --------------------------------------------------------------------------- -// SI_CONVERT_WIN32 -// --------------------------------------------------------------------------- -#ifdef SI_CONVERT_WIN32 - -#define SI_Case SI_GenericCase - -// Windows CE doesn't have errno or MBCS libraries -#ifdef _WIN32_WCE -# ifndef SI_NO_MBCS -# define SI_NO_MBCS -# endif -#endif - -#include -#ifdef SI_NO_MBCS -# define SI_NoCase SI_GenericNoCase -#else // !SI_NO_MBCS -/** - * Case-insensitive comparison class using Win32 MBCS functions. This class - * returns a case-insensitive semi-collation order for MBCS text. It may not - * be safe for UTF-8 text returned in char format as we don't know what - * characters will be folded by the function! Therefore, if you are using - * SI_CHAR == char and SetUnicode(true), then you need to use the generic - * SI_NoCase class instead. - */ -#include -template -struct SI_NoCase { - bool operator()(const SI_CHAR * pLeft, const SI_CHAR * pRight) const { - if (sizeof(SI_CHAR) == sizeof(char)) { - return _mbsicmp((const unsigned char *)pLeft, - (const unsigned char *)pRight) < 0; - } - if (sizeof(SI_CHAR) == sizeof(wchar_t)) { - return _wcsicmp((const wchar_t *)pLeft, - (const wchar_t *)pRight) < 0; - } - return SI_GenericNoCase()(pLeft, pRight); - } -}; -#endif // SI_NO_MBCS - -/** - * Converts MBCS and UTF-8 to a wchar_t (or equivalent) on Windows. This uses - * only the Win32 functions and doesn't require the external Unicode UTF-8 - * conversion library. It will not work on Windows 95 without using Microsoft - * Layer for Unicode in your application. - */ -template -class SI_ConvertW { - UINT m_uCodePage; -protected: - SI_ConvertW() { } -public: - SI_ConvertW(bool a_bStoreIsUtf8) { - m_uCodePage = a_bStoreIsUtf8 ? CP_UTF8 : CP_ACP; - } - - /* copy and assignment */ - SI_ConvertW(const SI_ConvertW & rhs) { operator=(rhs); } - SI_ConvertW & operator=(const SI_ConvertW & rhs) { - m_uCodePage = rhs.m_uCodePage; - return *this; - } - - /** Calculate the number of SI_CHAR required for converting the input - * from the storage format. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @return Number of SI_CHAR required by the string when - * converted. If there are embedded NULL bytes in the - * input data, only the string up and not including - * the NULL byte will be converted. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeFromStore( - const char * a_pInputData, - size_t a_uInputDataLen) - { - SI_ASSERT(a_uInputDataLen != (size_t) -1); - - int retval = MultiByteToWideChar( - m_uCodePage, 0, - a_pInputData, (int) a_uInputDataLen, - 0, 0); - return (size_t)(retval > 0 ? retval : -1); - } - - /** Convert the input string from the storage format to SI_CHAR. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @param a_pOutputData Pointer to the output buffer to received the - * converted data. - * @param a_uOutputDataSize Size of the output buffer in SI_CHAR. - * @return true if all of the input data was successfully - * converted. - */ - bool ConvertFromStore( - const char * a_pInputData, - size_t a_uInputDataLen, - SI_CHAR * a_pOutputData, - size_t a_uOutputDataSize) - { - int nSize = MultiByteToWideChar( - m_uCodePage, 0, - a_pInputData, (int) a_uInputDataLen, - (wchar_t *) a_pOutputData, (int) a_uOutputDataSize); - return (nSize > 0); - } - - /** Calculate the number of char required by the storage format of this - * data. The storage format is always UTF-8. - * - * @param a_pInputData NULL terminated string to calculate the number of - * bytes required to be converted to storage format. - * @return Number of bytes required by the string when - * converted to storage format. This size always - * includes space for the terminating NULL character. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeToStore( - const SI_CHAR * a_pInputData) - { - int retval = WideCharToMultiByte( - m_uCodePage, 0, - (const wchar_t *) a_pInputData, -1, - 0, 0, 0, 0); - return (size_t) (retval > 0 ? retval : -1); - } - - /** Convert the input string to the storage format of this data. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated source string to convert. All of - * the data will be converted including the - * terminating NULL character. - * @param a_pOutputData Pointer to the buffer to receive the converted - * string. - * @param a_pOutputDataSize Size of the output buffer in char. - * @return true if all of the input data, including the - * terminating NULL character was successfully - * converted. - */ - bool ConvertToStore( - const SI_CHAR * a_pInputData, - char * a_pOutputData, - size_t a_uOutputDataSize) - { - int retval = WideCharToMultiByte( - m_uCodePage, 0, - (const wchar_t *) a_pInputData, -1, - a_pOutputData, (int) a_uOutputDataSize, 0, 0); - return retval > 0; - } -}; - -#endif // SI_CONVERT_WIN32 - - - -// --------------------------------------------------------------------------- -// SI_NO_CONVERSION -// --------------------------------------------------------------------------- -#ifdef SI_NO_CONVERSION - -#define SI_Case SI_GenericCase -#define SI_NoCase SI_GenericNoCase - -#endif // SI_NO_CONVERSION - - - -// --------------------------------------------------------------------------- -// TYPE DEFINITIONS -// --------------------------------------------------------------------------- - -typedef CSimpleIniTempl,SI_ConvertA > CSimpleIniA; -typedef CSimpleIniTempl,SI_ConvertA > CSimpleIniCaseA; - -#if defined(SI_NO_CONVERSION) -// if there is no wide char conversion then we don't need to define the -// widechar "W" versions of CSimpleIni -# define CSimpleIni CSimpleIniA -# define CSimpleIniCase CSimpleIniCaseA -# define SI_NEWLINE SI_NEWLINE_A -#else -# if defined(SI_CONVERT_ICU) -typedef CSimpleIniTempl,SI_ConvertW > CSimpleIniW; -typedef CSimpleIniTempl,SI_ConvertW > CSimpleIniCaseW; -# else -typedef CSimpleIniTempl,SI_ConvertW > CSimpleIniW; -typedef CSimpleIniTempl,SI_ConvertW > CSimpleIniCaseW; -# endif - -# ifdef _UNICODE -# define CSimpleIni CSimpleIniW -# define CSimpleIniCase CSimpleIniCaseW -# define SI_NEWLINE SI_NEWLINE_W -# else // !_UNICODE -# define CSimpleIni CSimpleIniA -# define CSimpleIniCase CSimpleIniCaseA -# define SI_NEWLINE SI_NEWLINE_A -# endif // _UNICODE -#endif - -#ifdef _MSC_VER -# pragma warning (pop) -#endif - -#endif // INCLUDED_SimpleIni_h - diff --git a/cheat-library/vendor/lib/libprotobuf.lib b/cheat-library/vendor/lib/libprotobuf.lib new file mode 100644 index 0000000..3d9a6ae Binary files /dev/null and b/cheat-library/vendor/lib/libprotobuf.lib differ diff --git a/cheat-library/vendor/lib/libprotobufd.lib b/cheat-library/vendor/lib/libprotobufd.lib new file mode 100644 index 0000000..80151c7 Binary files /dev/null and b/cheat-library/vendor/lib/libprotobufd.lib differ diff --git a/cheat-library/vendor/libraries/HookLib/HookLib-x64-Debug.lib b/cheat-library/vendor/libraries/HookLib/HookLib-x64-Debug.lib deleted file mode 100644 index a605ffa..0000000 Binary files a/cheat-library/vendor/libraries/HookLib/HookLib-x64-Debug.lib and /dev/null differ diff --git a/cheat-library/vendor/libraries/HookLib/HookLib-x64-Release.lib b/cheat-library/vendor/libraries/HookLib/HookLib-x64-Release.lib deleted file mode 100644 index b48c178..0000000 Binary files a/cheat-library/vendor/libraries/HookLib/HookLib-x64-Release.lib and /dev/null differ diff --git a/cheat-library/vendor/libraries/HookLib/HookLib-x86-Debug.lib b/cheat-library/vendor/libraries/HookLib/HookLib-x86-Debug.lib deleted file mode 100644 index 99450f9..0000000 Binary files a/cheat-library/vendor/libraries/HookLib/HookLib-x86-Debug.lib and /dev/null differ diff --git a/cheat-library/vendor/libraries/HookLib/HookLib-x86-Release.lib b/cheat-library/vendor/libraries/HookLib/HookLib-x86-Release.lib deleted file mode 100644 index edda3e9..0000000 Binary files a/cheat-library/vendor/libraries/HookLib/HookLib-x86-Release.lib and /dev/null differ diff --git a/cheat-library/vendor/protobuf b/cheat-library/vendor/protobuf new file mode 160000 index 0000000..6f99f12 --- /dev/null +++ b/cheat-library/vendor/protobuf @@ -0,0 +1 @@ +Subproject commit 6f99f12a6b3e2a38f444d9d052eb29822f885913 diff --git a/genshincheat.sln b/genshincheat.sln deleted file mode 100644 index bbbd315..0000000 --- a/genshincheat.sln +++ /dev/null @@ -1,141 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.32014.148 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "injector", "injector\injector.vcxproj", "{F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cheat-library", "cheat-library\cheat-library.vcxproj", "{704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug Kernel|x64 = Debug Kernel|x64 - Debug Kernel|x86 = Debug Kernel|x86 - Debug MD DLL|x64 = Debug MD DLL|x64 - Debug MD DLL|x86 = Debug MD DLL|x86 - Debug MD|x64 = Debug MD|x64 - Debug MD|x86 = Debug MD|x86 - Debug MT DLL|x64 = Debug MT DLL|x64 - Debug MT DLL|x86 = Debug MT DLL|x86 - Debug MT|x64 = Debug MT|x64 - Debug MT|x86 = Debug MT|x86 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release Kernel|x64 = Release Kernel|x64 - Release Kernel|x86 = Release Kernel|x86 - Release MD DLL|x64 = Release MD DLL|x64 - Release MD DLL|x86 = Release MD DLL|x86 - Release MD|x64 = Release MD|x64 - Release MD|x86 = Release MD|x86 - Release MT DLL|x64 = Release MT DLL|x64 - Release MT DLL|x86 = Release MT DLL|x86 - Release MT|x64 = Release MT|x64 - Release MT|x86 = Release MT|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug Kernel|x64.ActiveCfg = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug Kernel|x64.Build.0 = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug Kernel|x86.ActiveCfg = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug Kernel|x86.Build.0 = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MD DLL|x64.ActiveCfg = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MD DLL|x64.Build.0 = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MD DLL|x86.ActiveCfg = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MD DLL|x86.Build.0 = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MD|x64.ActiveCfg = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MD|x64.Build.0 = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MD|x86.ActiveCfg = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MD|x86.Build.0 = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MT DLL|x64.ActiveCfg = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MT DLL|x64.Build.0 = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MT DLL|x86.ActiveCfg = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MT DLL|x86.Build.0 = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MT|x64.ActiveCfg = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MT|x64.Build.0 = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MT|x86.ActiveCfg = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug MT|x86.Build.0 = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug|x64.ActiveCfg = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug|x64.Build.0 = Debug|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug|x86.ActiveCfg = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Debug|x86.Build.0 = Debug|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release Kernel|x64.ActiveCfg = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release Kernel|x64.Build.0 = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release Kernel|x86.ActiveCfg = Release|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release Kernel|x86.Build.0 = Release|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MD DLL|x64.ActiveCfg = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MD DLL|x64.Build.0 = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MD DLL|x86.ActiveCfg = Release|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MD DLL|x86.Build.0 = Release|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MD|x64.ActiveCfg = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MD|x64.Build.0 = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MD|x86.ActiveCfg = Release|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MD|x86.Build.0 = Release|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MT DLL|x64.ActiveCfg = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MT DLL|x64.Build.0 = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MT DLL|x86.ActiveCfg = Release|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MT DLL|x86.Build.0 = Release|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MT|x64.ActiveCfg = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MT|x64.Build.0 = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MT|x86.ActiveCfg = Release|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release MT|x86.Build.0 = Release|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release|x64.ActiveCfg = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release|x64.Build.0 = Release|x64 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release|x86.ActiveCfg = Release|Win32 - {F578B30C-8DE6-4741-99E4-1D30D2ACDAC4}.Release|x86.Build.0 = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug Kernel|x64.ActiveCfg = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug Kernel|x64.Build.0 = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug Kernel|x86.ActiveCfg = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug Kernel|x86.Build.0 = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MD DLL|x64.ActiveCfg = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MD DLL|x64.Build.0 = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MD DLL|x86.ActiveCfg = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MD DLL|x86.Build.0 = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MD|x64.ActiveCfg = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MD|x64.Build.0 = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MD|x86.ActiveCfg = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MD|x86.Build.0 = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MT DLL|x64.ActiveCfg = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MT DLL|x64.Build.0 = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MT DLL|x86.ActiveCfg = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MT DLL|x86.Build.0 = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MT|x64.ActiveCfg = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MT|x64.Build.0 = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MT|x86.ActiveCfg = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug MT|x86.Build.0 = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug|x64.ActiveCfg = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug|x64.Build.0 = Debug|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug|x86.ActiveCfg = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Debug|x86.Build.0 = Debug|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release Kernel|x64.ActiveCfg = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release Kernel|x64.Build.0 = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release Kernel|x86.ActiveCfg = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release Kernel|x86.Build.0 = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MD DLL|x64.ActiveCfg = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MD DLL|x64.Build.0 = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MD DLL|x86.ActiveCfg = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MD DLL|x86.Build.0 = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MD|x64.ActiveCfg = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MD|x64.Build.0 = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MD|x86.ActiveCfg = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MD|x86.Build.0 = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MT DLL|x64.ActiveCfg = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MT DLL|x64.Build.0 = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MT DLL|x86.ActiveCfg = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MT DLL|x86.Build.0 = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MT|x64.ActiveCfg = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MT|x64.Build.0 = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MT|x86.ActiveCfg = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release MT|x86.Build.0 = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release|x64.ActiveCfg = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release|x64.Build.0 = Release|x64 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release|x86.ActiveCfg = Release|Win32 - {704C8746-1BD9-4BC8-9EBE-8187F1A1AD72}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {0F485A89-A340-4742-97E7-923E14A929A1} - EndGlobalSection -EndGlobal diff --git a/injector/include/simple-ini.hpp b/injector/include/simple-ini.hpp deleted file mode 100644 index 54de89d..0000000 --- a/injector/include/simple-ini.hpp +++ /dev/null @@ -1,3487 +0,0 @@ -/** @mainpage - - -
Library SimpleIni -
File SimpleIni.h -
Author Brodie Thiesfield [brofield at gmail dot com] -
Source https://github.com/brofield/simpleini -
Version 4.17 -
- - Jump to the @link CSimpleIniTempl CSimpleIni @endlink interface documentation. - - @section intro INTRODUCTION - - This component allows an INI-style configuration file to be used on both - Windows and Linux/Unix. It is fast, simple and source code using this - component will compile unchanged on either OS. - - - @section features FEATURES - - - MIT Licence allows free use in all software (including GPL and commercial) - - multi-platform (Windows CE/9x/NT..10/etc, Linux, MacOSX, Unix) - - loading and saving of INI-style configuration files - - configuration files can have any newline format on all platforms - - liberal acceptance of file format - - key/values with no section - - removal of whitespace around sections, keys and values - - support for multi-line values (values with embedded newline characters) - - optional support for multiple keys with the same name - - optional case-insensitive sections and keys (for ASCII characters only) - - saves files with sections and keys in the same order as they were loaded - - preserves comments on the file, section and keys where possible. - - supports both char or wchar_t programming interfaces - - supports both MBCS (system locale) and UTF-8 file encodings - - system locale does not need to be UTF-8 on Linux/Unix to load UTF-8 file - - support for non-ASCII characters in section, keys, values and comments - - support for non-standard character types or file encodings - via user-written converter classes - - support for adding/modifying values programmatically - - compiles cleanly in the following compilers: - - Windows/VC6 (warning level 3) - - Windows/VC.NET 2003 (warning level 4) - - Windows/VC 2005 (warning level 4) - - Linux/gcc (-Wall) - - - @section usage USAGE SUMMARY - - -# Define the appropriate symbol for the converter you wish to use and - include the SimpleIni.h header file. If no specific converter is defined - then the default converter is used. The default conversion mode uses - SI_CONVERT_WIN32 on Windows and SI_CONVERT_GENERIC on all other - platforms. If you are using ICU then SI_CONVERT_ICU is supported on all - platforms. - -# Declare an instance the appropriate class. Note that the following - definitions are just shortcuts for commonly used types. Other types - (PRUnichar, unsigned short, unsigned char) are also possible. - -
Interface Case-sensitive Load UTF-8 Load MBCS Typedef -
SI_CONVERT_GENERIC -
char No Yes Yes #1 CSimpleIniA -
char Yes Yes Yes CSimpleIniCaseA -
wchar_t No Yes Yes CSimpleIniW -
wchar_t Yes Yes Yes CSimpleIniCaseW -
SI_CONVERT_WIN32 -
char No No #2 Yes CSimpleIniA -
char Yes Yes Yes CSimpleIniCaseA -
wchar_t No Yes Yes CSimpleIniW -
wchar_t Yes Yes Yes CSimpleIniCaseW -
SI_CONVERT_ICU -
char No Yes Yes CSimpleIniA -
char Yes Yes Yes CSimpleIniCaseA -
UChar No Yes Yes CSimpleIniW -
UChar Yes Yes Yes CSimpleIniCaseW -
- #1 On Windows you are better to use CSimpleIniA with SI_CONVERT_WIN32.
- #2 Only affects Windows. On Windows this uses MBCS functions and - so may fold case incorrectly leading to uncertain results. - -# Call LoadData() or LoadFile() to load and parse the INI configuration file - -# Access and modify the data of the file using the following functions - -
GetAllSections Return all section names -
GetAllKeys Return all key names within a section -
GetAllValues Return all values within a section & key -
GetSection Return all key names and values in a section -
GetSectionSize Return the number of keys in a section -
GetValue Return a value for a section & key -
SetValue Add or update a value for a section & key -
Delete Remove a section, or a key from a section -
- -# Call Save() or SaveFile() to save the INI configuration data - - @section iostreams IO STREAMS - - SimpleIni supports reading from and writing to STL IO streams. Enable this - by defining SI_SUPPORT_IOSTREAMS before including the SimpleIni.h header - file. Ensure that if the streams are backed by a file (e.g. ifstream or - ofstream) then the flag ios_base::binary has been used when the file was - opened. - - @section multiline MULTI-LINE VALUES - - Values that span multiple lines are created using the following format. - -
-        key = <<
-
-    Note the following:
-    - The text used for ENDTAG can be anything and is used to find
-      where the multi-line text ends.
-    - The newline after ENDTAG in the start tag, and the newline
-      before ENDTAG in the end tag is not included in the data value.
-    - The ending tag must be on it's own line with no whitespace before
-      or after it.
-    - The multi-line value is modified at load so that each line in the value
-      is delimited by a single '\\n' character on all platforms. At save time
-      it will be converted into the newline format used by the current
-      platform.
-
-    @section comments COMMENTS
-
-    Comments are preserved in the file within the following restrictions:
-    - Every file may have a single "file comment". It must start with the
-      first character in the file, and will end with the first non-comment
-      line in the file.
-    - Every section may have a single "section comment". It will start
-      with the first comment line following the file comment, or the last
-      data entry. It ends at the beginning of the section.
-    - Every key may have a single "key comment". This comment will start
-      with the first comment line following the section start, or the file
-      comment if there is no section name.
-    - Comments are set at the time that the file, section or key is first
-      created. The only way to modify a comment on a section or a key is to
-      delete that entry and recreate it with the new comment. There is no
-      way to change the file comment.
-
-    @section save SAVE ORDER
-
-    The sections and keys are written out in the same order as they were
-    read in from the file. Sections and keys added to the data after the
-    file has been loaded will be added to the end of the file when it is
-    written. There is no way to specify the location of a section or key
-    other than in first-created, first-saved order.
-
-    @section notes NOTES
-
-    - To load UTF-8 data on Windows 95, you need to use Microsoft Layer for
-      Unicode, or SI_CONVERT_GENERIC, or SI_CONVERT_ICU.
-    - When using SI_CONVERT_GENERIC, ConvertUTF.c must be compiled and linked.
-    - When using SI_CONVERT_ICU, ICU header files must be on the include
-      path and icuuc.lib must be linked in.
-    - To load a UTF-8 file on Windows AND expose it with SI_CHAR == char,
-      you should use SI_CONVERT_GENERIC.
-    - The collation (sorting) order used for sections and keys returned from
-      iterators is NOT DEFINED. If collation order of the text is important
-      then it should be done yourself by either supplying a replacement
-      SI_STRLESS class, or by sorting the strings external to this library.
-    - Usage of the  header on Windows can be disabled by defining
-      SI_NO_MBCS. This is defined automatically on Windows CE platforms.
-    - Not thread-safe so manage your own locking
-
-    @section contrib CONTRIBUTIONS
-    
-    - 2010/05/03: Tobias Gehrig: added GetDoubleValue()
-
-    @section licence MIT LICENCE
-
-    The licence text below is the boilerplate "MIT Licence" used from:
-    http://www.opensource.org/licenses/mit-license.php
-
-    Copyright (c) 2006-2012, Brodie Thiesfield
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is furnished
-    to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in
-    all copies or substantial portions of the Software.
-
-    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 OR
-    COPYRIGHT HOLDERS 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.
-*/
-
-#ifndef INCLUDED_SimpleIni_h
-#define INCLUDED_SimpleIni_h
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-// Disable these warnings in MSVC:
-//  4127 "conditional expression is constant" as the conversion classes trigger
-//  it with the statement if (sizeof(SI_CHAR) == sizeof(char)). This test will
-//  be optimized away in a release build.
-//  4503 'insert' : decorated name length exceeded, name was truncated
-//  4702 "unreachable code" as the MS STL header causes it in release mode.
-//  Again, the code causing the warning will be cleaned up by the compiler.
-//  4786 "identifier truncated to 256 characters" as this is thrown hundreds
-//  of times VC6 as soon as STL is used.
-#ifdef _MSC_VER
-# pragma warning (push)
-# pragma warning (disable: 4127 4503 4702 4786)
-#endif
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#ifdef SI_SUPPORT_IOSTREAMS
-# include 
-#endif // SI_SUPPORT_IOSTREAMS
-
-#ifdef _DEBUG
-# ifndef assert
-#  include 
-# endif
-# define SI_ASSERT(x)   assert(x)
-#else
-# define SI_ASSERT(x)
-#endif
-
-enum SI_Error {
-    SI_OK       =  0,   //!< No error
-    SI_UPDATED  =  1,   //!< An existing value was updated
-    SI_INSERTED =  2,   //!< A new value was inserted
-
-    // note: test for any error with (retval < 0)
-    SI_FAIL     = -1,   //!< Generic failure
-    SI_NOMEM    = -2,   //!< Out of memory error
-    SI_FILE     = -3    //!< File error (see errno for detail error)
-};
-
-#define SI_UTF8_SIGNATURE     "\xEF\xBB\xBF"
-
-#ifdef _WIN32
-# define SI_NEWLINE_A   "\r\n"
-# define SI_NEWLINE_W   L"\r\n"
-#else // !_WIN32
-# define SI_NEWLINE_A   "\n"
-# define SI_NEWLINE_W   L"\n"
-#endif // _WIN32
-
-#if defined(SI_CONVERT_ICU)
-# include 
-#endif
-
-#if defined(_WIN32)
-# define SI_HAS_WIDE_FILE
-# define SI_WCHAR_T     wchar_t
-#elif defined(SI_CONVERT_ICU)
-# define SI_HAS_WIDE_FILE
-# define SI_WCHAR_T     UChar
-#endif
-
-
-// ---------------------------------------------------------------------------
-//                              MAIN TEMPLATE CLASS
-// ---------------------------------------------------------------------------
-
-/** Simple INI file reader.
-
-    This can be instantiated with the choice of unicode or native characterset,
-    and case sensitive or insensitive comparisons of section and key names.
-    The supported combinations are pre-defined with the following typedefs:
-
-    
-        
Interface Case-sensitive Typedef -
char No CSimpleIniA -
char Yes CSimpleIniCaseA -
wchar_t No CSimpleIniW -
wchar_t Yes CSimpleIniCaseW -
- - Note that using other types for the SI_CHAR is supported. For instance, - unsigned char, unsigned short, etc. Note that where the alternative type - is a different size to char/wchar_t you may need to supply new helper - classes for SI_STRLESS and SI_CONVERTER. - */ -template -class CSimpleIniTempl -{ -public: - typedef SI_CHAR SI_CHAR_T; - - /** key entry */ - struct Entry { - const SI_CHAR * pItem; - const SI_CHAR * pComment; - int nOrder; - - Entry(const SI_CHAR * a_pszItem = NULL, int a_nOrder = 0) - : pItem(a_pszItem) - , pComment(NULL) - , nOrder(a_nOrder) - { } - Entry(const SI_CHAR * a_pszItem, const SI_CHAR * a_pszComment, int a_nOrder) - : pItem(a_pszItem) - , pComment(a_pszComment) - , nOrder(a_nOrder) - { } - Entry(const Entry & rhs) { operator=(rhs); } - Entry & operator=(const Entry & rhs) { - pItem = rhs.pItem; - pComment = rhs.pComment; - nOrder = rhs.nOrder; - return *this; - } - -#if defined(_MSC_VER) && _MSC_VER <= 1200 - /** STL of VC6 doesn't allow me to specify my own comparator for list::sort() */ - bool operator<(const Entry & rhs) const { return LoadOrder()(*this, rhs); } - bool operator>(const Entry & rhs) const { return LoadOrder()(rhs, *this); } -#endif - - /** Strict less ordering by name of key only */ - struct KeyOrder { - bool operator()(const Entry & lhs, const Entry & rhs) const { - const static SI_STRLESS isLess = SI_STRLESS(); - return isLess(lhs.pItem, rhs.pItem); - } - }; - - /** Strict less ordering by order, and then name of key */ - struct LoadOrder { - bool operator()(const Entry & lhs, const Entry & rhs) const { - if (lhs.nOrder != rhs.nOrder) { - return lhs.nOrder < rhs.nOrder; - } - return KeyOrder()(lhs.pItem, rhs.pItem); - } - }; - }; - - /** map keys to values */ - typedef std::multimap TKeyVal; - - /** map sections to key/value map */ - typedef std::map TSection; - - /** set of dependent string pointers. Note that these pointers are - dependent on memory owned by CSimpleIni. - */ - typedef std::list TNamesDepend; - - /** interface definition for the OutputWriter object to pass to Save() - in order to output the INI file data. - */ - class OutputWriter { - public: - OutputWriter() { } - virtual ~OutputWriter() { } - virtual void Write(const char * a_pBuf) = 0; - private: - OutputWriter(const OutputWriter &); // disable - OutputWriter & operator=(const OutputWriter &); // disable - }; - - /** OutputWriter class to write the INI data to a file */ - class FileWriter : public OutputWriter { - FILE * m_file; - public: - FileWriter(FILE * a_file) : m_file(a_file) { } - void Write(const char * a_pBuf) { - fputs(a_pBuf, m_file); - } - private: - FileWriter(const FileWriter &); // disable - FileWriter & operator=(const FileWriter &); // disable - }; - - /** OutputWriter class to write the INI data to a string */ - class StringWriter : public OutputWriter { - std::string & m_string; - public: - StringWriter(std::string & a_string) : m_string(a_string) { } - void Write(const char * a_pBuf) { - m_string.append(a_pBuf); - } - private: - StringWriter(const StringWriter &); // disable - StringWriter & operator=(const StringWriter &); // disable - }; - -#ifdef SI_SUPPORT_IOSTREAMS - /** OutputWriter class to write the INI data to an ostream */ - class StreamWriter : public OutputWriter { - std::ostream & m_ostream; - public: - StreamWriter(std::ostream & a_ostream) : m_ostream(a_ostream) { } - void Write(const char * a_pBuf) { - m_ostream << a_pBuf; - } - private: - StreamWriter(const StreamWriter &); // disable - StreamWriter & operator=(const StreamWriter &); // disable - }; -#endif // SI_SUPPORT_IOSTREAMS - - /** Characterset conversion utility class to convert strings to the - same format as is used for the storage. - */ - class Converter : private SI_CONVERTER { - public: - Converter(bool a_bStoreIsUtf8) : SI_CONVERTER(a_bStoreIsUtf8) { - m_scratch.resize(1024); - } - Converter(const Converter & rhs) { operator=(rhs); } - Converter & operator=(const Converter & rhs) { - m_scratch = rhs.m_scratch; - return *this; - } - bool ConvertToStore(const SI_CHAR * a_pszString) { - size_t uLen = SI_CONVERTER::SizeToStore(a_pszString); - if (uLen == (size_t)(-1)) { - return false; - } - while (uLen > m_scratch.size()) { - m_scratch.resize(m_scratch.size() * 2); - } - return SI_CONVERTER::ConvertToStore( - a_pszString, - const_cast(m_scratch.data()), - m_scratch.size()); - } - const char * Data() { return m_scratch.data(); } - private: - std::string m_scratch; - }; - -public: - /*-----------------------------------------------------------------------*/ - - /** Default constructor. - - @param a_bIsUtf8 See the method SetUnicode() for details. - @param a_bMultiKey See the method SetMultiKey() for details. - @param a_bMultiLine See the method SetMultiLine() for details. - */ - CSimpleIniTempl( - bool a_bIsUtf8 = false, - bool a_bMultiKey = false, - bool a_bMultiLine = false - ); - - /** Destructor */ - ~CSimpleIniTempl(); - - /** Deallocate all memory stored by this object */ - void Reset(); - - /** Has any data been loaded */ - bool IsEmpty() const { return m_data.empty(); } - - /*-----------------------------------------------------------------------*/ - /** @{ @name Settings */ - - /** Set the storage format of the INI data. This affects both the loading - and saving of the INI data using all of the Load/Save API functions. - This value cannot be changed after any INI data has been loaded. - - If the file is not set to Unicode (UTF-8), then the data encoding is - assumed to be the OS native encoding. This encoding is the system - locale on Linux/Unix and the legacy MBCS encoding on Windows NT/2K/XP. - If the storage format is set to Unicode then the file will be loaded - as UTF-8 encoded data regardless of the native file encoding. If - SI_CHAR == char then all of the char* parameters take and return UTF-8 - encoded data regardless of the system locale. - - \param a_bIsUtf8 Assume UTF-8 encoding for the source? - */ - void SetUnicode(bool a_bIsUtf8 = true) { - if (!m_pData) m_bStoreIsUtf8 = a_bIsUtf8; - } - - /** Get the storage format of the INI data. */ - bool IsUnicode() const { return m_bStoreIsUtf8; } - - /** Should multiple identical keys be permitted in the file. If set to false - then the last value encountered will be used as the value of the key. - If set to true, then all values will be available to be queried. For - example, with the following input: - -
-        [section]
-        test=value1
-        test=value2
-        
- - Then with SetMultiKey(true), both of the values "value1" and "value2" - will be returned for the key test. If SetMultiKey(false) is used, then - the value for "test" will only be "value2". This value may be changed - at any time. - - \param a_bAllowMultiKey Allow multi-keys in the source? - */ - void SetMultiKey(bool a_bAllowMultiKey = true) { - m_bAllowMultiKey = a_bAllowMultiKey; - } - - /** Get the storage format of the INI data. */ - bool IsMultiKey() const { return m_bAllowMultiKey; } - - /** Should data values be permitted to span multiple lines in the file. If - set to false then the multi-line construct << - SI_CHAR FORMAT - char same format as when loaded (MBCS or UTF-8) - wchar_t UTF-8 - other UTF-8 - - - Note that comments from the original data is preserved as per the - documentation on comments. The order of the sections and values - from the original file will be preserved. - - Any data prepended or appended to the output device must use the the - same format (MBCS or UTF-8). You may use the GetConverter() method to - convert text to the correct format regardless of the output format - being used by SimpleIni. - - To add a BOM to UTF-8 data, write it out manually at the very beginning - like is done in SaveFile when a_bUseBOM is true. - - @param a_oOutput Output writer to write the data to. - - @param a_bAddSignature Prepend the UTF-8 BOM if the output data is in - UTF-8 format. If it is not UTF-8 then this value is - ignored. Do not set this to true if anything has - already been written to the OutputWriter. - - @return SI_Error See error definitions - */ - SI_Error Save( - OutputWriter & a_oOutput, - bool a_bAddSignature = false - ) const; - -#ifdef SI_SUPPORT_IOSTREAMS - /** Save the INI data to an ostream. See Save() for details. - - @param a_ostream String to have the INI data appended to. - - @param a_bAddSignature Prepend the UTF-8 BOM if the output data is in - UTF-8 format. If it is not UTF-8 then this value is - ignored. Do not set this to true if anything has - already been written to the stream. - - @return SI_Error See error definitions - */ - SI_Error Save( - std::ostream & a_ostream, - bool a_bAddSignature = false - ) const - { - StreamWriter writer(a_ostream); - return Save(writer, a_bAddSignature); - } -#endif // SI_SUPPORT_IOSTREAMS - - /** Append the INI data to a string. See Save() for details. - - @param a_sBuffer String to have the INI data appended to. - - @param a_bAddSignature Prepend the UTF-8 BOM if the output data is in - UTF-8 format. If it is not UTF-8 then this value is - ignored. Do not set this to true if anything has - already been written to the string. - - @return SI_Error See error definitions - */ - SI_Error Save( - std::string & a_sBuffer, - bool a_bAddSignature = false - ) const - { - StringWriter writer(a_sBuffer); - return Save(writer, a_bAddSignature); - } - - /*-----------------------------------------------------------------------*/ - /** @} - @{ @name Accessing INI Data */ - - /** Retrieve all section names. The list is returned as an STL vector of - names and can be iterated or searched as necessary. Note that the - sort order of the returned strings is NOT DEFINED. You can sort - the names into the load order if desired. Search this file for ".sort" - for an example. - - NOTE! This structure contains only pointers to strings. The actual - string data is stored in memory owned by CSimpleIni. Ensure that the - CSimpleIni object is not destroyed or Reset() while these pointers - are in use! - - @param a_names Vector that will receive all of the section - names. See note above! - */ - void GetAllSections( - TNamesDepend & a_names - ) const; - - /** Retrieve all unique key names in a section. The sort order of the - returned strings is NOT DEFINED. You can sort the names into the load - order if desired. Search this file for ".sort" for an example. Only - unique key names are returned. - - NOTE! This structure contains only pointers to strings. The actual - string data is stored in memory owned by CSimpleIni. Ensure that the - CSimpleIni object is not destroyed or Reset() while these strings - are in use! - - @param a_pSection Section to request data for - @param a_names List that will receive all of the key - names. See note above! - - @return true Section was found. - @return false Matching section was not found. - */ - bool GetAllKeys( - const SI_CHAR * a_pSection, - TNamesDepend & a_names - ) const; - - /** Retrieve all values for a specific key. This method can be used when - multiple keys are both enabled and disabled. Note that the sort order - of the returned strings is NOT DEFINED. You can sort the names into - the load order if desired. Search this file for ".sort" for an example. - - NOTE! The returned values are pointers to string data stored in memory - owned by CSimpleIni. Ensure that the CSimpleIni object is not destroyed - or Reset while you are using this pointer! - - @param a_pSection Section to search - @param a_pKey Key to search for - @param a_values List to return if the key is not found - - @return true Key was found. - @return false Matching section/key was not found. - */ - bool GetAllValues( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - TNamesDepend & a_values - ) const; - - /** Query the number of keys in a specific section. Note that if multiple - keys are enabled, then this value may be different to the number of - keys returned by GetAllKeys. - - @param a_pSection Section to request data for - - @return -1 Section does not exist in the file - @return >=0 Number of keys in the section - */ - int GetSectionSize( - const SI_CHAR * a_pSection - ) const; - - /** Retrieve all key and value pairs for a section. The data is returned - as a pointer to an STL map and can be iterated or searched as - desired. Note that multiple entries for the same key may exist when - multiple keys have been enabled. - - NOTE! This structure contains only pointers to strings. The actual - string data is stored in memory owned by CSimpleIni. Ensure that the - CSimpleIni object is not destroyed or Reset() while these strings - are in use! - - @param a_pSection Name of the section to return - @return boolean Was a section matching the supplied - name found. - */ - const TKeyVal * GetSection( - const SI_CHAR * a_pSection - ) const; - - /** Retrieve the value for a specific key. If multiple keys are enabled - (see SetMultiKey) then only the first value associated with that key - will be returned, see GetAllValues for getting all values with multikey. - - NOTE! The returned value is a pointer to string data stored in memory - owned by CSimpleIni. Ensure that the CSimpleIni object is not destroyed - or Reset while you are using this pointer! - - @param a_pSection Section to search - @param a_pKey Key to search for - @param a_pDefault Value to return if the key is not found - @param a_pHasMultiple Optionally receive notification of if there are - multiple entries for this key. - - @return a_pDefault Key was not found in the section - @return other Value of the key - */ - const SI_CHAR * GetValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pDefault = NULL, - bool * a_pHasMultiple = NULL - ) const; - - /** Retrieve a numeric value for a specific key. If multiple keys are enabled - (see SetMultiKey) then only the first value associated with that key - will be returned, see GetAllValues for getting all values with multikey. - - @param a_pSection Section to search - @param a_pKey Key to search for - @param a_nDefault Value to return if the key is not found - @param a_pHasMultiple Optionally receive notification of if there are - multiple entries for this key. - - @return a_nDefault Key was not found in the section - @return other Value of the key - */ - long GetLongValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - long a_nDefault = 0, - bool * a_pHasMultiple = NULL - ) const; - - /** Retrieve a numeric value for a specific key. If multiple keys are enabled - (see SetMultiKey) then only the first value associated with that key - will be returned, see GetAllValues for getting all values with multikey. - - @param a_pSection Section to search - @param a_pKey Key to search for - @param a_nDefault Value to return if the key is not found - @param a_pHasMultiple Optionally receive notification of if there are - multiple entries for this key. - - @return a_nDefault Key was not found in the section - @return other Value of the key - */ - double GetDoubleValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - double a_nDefault = 0, - bool * a_pHasMultiple = NULL - ) const; - - /** Retrieve a boolean value for a specific key. If multiple keys are enabled - (see SetMultiKey) then only the first value associated with that key - will be returned, see GetAllValues for getting all values with multikey. - - Strings starting with "t", "y", "on" or "1" are returned as logically true. - Strings starting with "f", "n", "of" or "0" are returned as logically false. - For all other values the default is returned. Character comparisons are - case-insensitive. - - @param a_pSection Section to search - @param a_pKey Key to search for - @param a_bDefault Value to return if the key is not found - @param a_pHasMultiple Optionally receive notification of if there are - multiple entries for this key. - - @return a_nDefault Key was not found in the section - @return other Value of the key - */ - bool GetBoolValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bDefault = false, - bool * a_pHasMultiple = NULL - ) const; - - /** Add or update a section or value. This will always insert - when multiple keys are enabled. - - @param a_pSection Section to add or update - @param a_pKey Key to add or update. Set to NULL to - create an empty section. - @param a_pValue Value to set. Set to NULL to create an - empty section. - @param a_pComment Comment to be associated with the section or the - key. If a_pKey is NULL then it will be associated - with the section, otherwise the key. Note that a - comment may be set ONLY when the section or key is - first created (i.e. when this function returns the - value SI_INSERTED). If you wish to create a section - with a comment then you need to create the section - separately to the key. The comment string must be - in full comment form already (have a comment - character starting every line). - @param a_bForceReplace Should all existing values in a multi-key INI - file be replaced with this entry. This option has - no effect if not using multi-key files. The - difference between Delete/SetValue and SetValue - with a_bForceReplace = true, is that the load - order and comment will be preserved this way. - - @return SI_Error See error definitions - @return SI_UPDATED Value was updated - @return SI_INSERTED Value was inserted - */ - SI_Error SetValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pValue, - const SI_CHAR * a_pComment = NULL, - bool a_bForceReplace = false - ) - { - return AddEntry(a_pSection, a_pKey, a_pValue, a_pComment, a_bForceReplace, true); - } - - /** Add or update a numeric value. This will always insert - when multiple keys are enabled. - - @param a_pSection Section to add or update - @param a_pKey Key to add or update. - @param a_nValue Value to set. - @param a_pComment Comment to be associated with the key. See the - notes on SetValue() for comments. - @param a_bUseHex By default the value will be written to the file - in decimal format. Set this to true to write it - as hexadecimal. - @param a_bForceReplace Should all existing values in a multi-key INI - file be replaced with this entry. This option has - no effect if not using multi-key files. The - difference between Delete/SetLongValue and - SetLongValue with a_bForceReplace = true, is that - the load order and comment will be preserved this - way. - - @return SI_Error See error definitions - @return SI_UPDATED Value was updated - @return SI_INSERTED Value was inserted - */ - SI_Error SetLongValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - long a_nValue, - const SI_CHAR * a_pComment = NULL, - bool a_bUseHex = false, - bool a_bForceReplace = false - ); - - /** Add or update a double value. This will always insert - when multiple keys are enabled. - - @param a_pSection Section to add or update - @param a_pKey Key to add or update. - @param a_nValue Value to set. - @param a_pComment Comment to be associated with the key. See the - notes on SetValue() for comments. - @param a_bForceReplace Should all existing values in a multi-key INI - file be replaced with this entry. This option has - no effect if not using multi-key files. The - difference between Delete/SetDoubleValue and - SetDoubleValue with a_bForceReplace = true, is that - the load order and comment will be preserved this - way. - - @return SI_Error See error definitions - @return SI_UPDATED Value was updated - @return SI_INSERTED Value was inserted - */ - SI_Error SetDoubleValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - double a_nValue, - const SI_CHAR * a_pComment = NULL, - bool a_bForceReplace = false - ); - - /** Add or update a boolean value. This will always insert - when multiple keys are enabled. - - @param a_pSection Section to add or update - @param a_pKey Key to add or update. - @param a_bValue Value to set. - @param a_pComment Comment to be associated with the key. See the - notes on SetValue() for comments. - @param a_bForceReplace Should all existing values in a multi-key INI - file be replaced with this entry. This option has - no effect if not using multi-key files. The - difference between Delete/SetBoolValue and - SetBoolValue with a_bForceReplace = true, is that - the load order and comment will be preserved this - way. - - @return SI_Error See error definitions - @return SI_UPDATED Value was updated - @return SI_INSERTED Value was inserted - */ - SI_Error SetBoolValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bValue, - const SI_CHAR * a_pComment = NULL, - bool a_bForceReplace = false - ); - - /** Delete an entire section, or a key from a section. Note that the - data returned by GetSection is invalid and must not be used after - anything has been deleted from that section using this method. - Note when multiple keys is enabled, this will delete all keys with - that name; to selectively delete individual key/values, use - DeleteValue. - - @param a_pSection Section to delete key from, or if - a_pKey is NULL, the section to remove. - @param a_pKey Key to remove from the section. Set to - NULL to remove the entire section. - @param a_bRemoveEmpty If the section is empty after this key has - been deleted, should the empty section be - removed? - - @return true Key or section was deleted. - @return false Key or section was not found. - */ - bool Delete( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bRemoveEmpty = false - ); - - /** Delete an entire section, or a key from a section. If value is - provided, only remove keys with the value. Note that the data - returned by GetSection is invalid and must not be used after - anything has been deleted from that section using this method. - Note when multiple keys is enabled, all keys with the value will - be deleted. - - @param a_pSection Section to delete key from, or if - a_pKey is NULL, the section to remove. - @param a_pKey Key to remove from the section. Set to - NULL to remove the entire section. - @param a_pValue Value of key to remove from the section. - Set to NULL to remove all keys. - @param a_bRemoveEmpty If the section is empty after this key has - been deleted, should the empty section be - removed? - - @return true Key/value or section was deleted. - @return false Key/value or section was not found. - */ - bool DeleteValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pValue, - bool a_bRemoveEmpty = false - ); - - /*-----------------------------------------------------------------------*/ - /** @} - @{ @name Converter */ - - /** Return a conversion object to convert text to the same encoding - as is used by the Save(), SaveFile() and SaveString() functions. - Use this to prepare the strings that you wish to append or prepend - to the output INI data. - */ - Converter GetConverter() const { - return Converter(m_bStoreIsUtf8); - } - - /*-----------------------------------------------------------------------*/ - /** @} */ - -private: - // copying is not permitted - CSimpleIniTempl(const CSimpleIniTempl &); // disabled - CSimpleIniTempl & operator=(const CSimpleIniTempl &); // disabled - - /** Parse the data looking for a file comment and store it if found. - */ - SI_Error FindFileComment( - SI_CHAR *& a_pData, - bool a_bCopyStrings - ); - - /** Parse the data looking for the next valid entry. The memory pointed to - by a_pData is modified by inserting NULL characters. The pointer is - updated to the current location in the block of text. - */ - bool FindEntry( - SI_CHAR *& a_pData, - const SI_CHAR *& a_pSection, - const SI_CHAR *& a_pKey, - const SI_CHAR *& a_pVal, - const SI_CHAR *& a_pComment - ) const; - - /** Add the section/key/value to our data. - - @param a_pSection Section name. Sections will be created if they - don't already exist. - @param a_pKey Key name. May be NULL to create an empty section. - Existing entries will be updated. New entries will - be created. - @param a_pValue Value for the key. - @param a_pComment Comment to be associated with the section or the - key. If a_pKey is NULL then it will be associated - with the section, otherwise the key. This must be - a string in full comment form already (have a - comment character starting every line). - @param a_bForceReplace Should all existing values in a multi-key INI - file be replaced with this entry. This option has - no effect if not using multi-key files. The - difference between Delete/AddEntry and AddEntry - with a_bForceReplace = true, is that the load - order and comment will be preserved this way. - @param a_bCopyStrings Should copies of the strings be made or not. - If false then the pointers will be used as is. - */ - SI_Error AddEntry( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pValue, - const SI_CHAR * a_pComment, - bool a_bForceReplace, - bool a_bCopyStrings - ); - - /** Is the supplied character a whitespace character? */ - inline bool IsSpace(SI_CHAR ch) const { - return (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n'); - } - - /** Does the supplied character start a comment line? */ - inline bool IsComment(SI_CHAR ch) const { - return (ch == ';' || ch == '#'); - } - - - /** Skip over a newline character (or characters) for either DOS or UNIX */ - inline void SkipNewLine(SI_CHAR *& a_pData) const { - a_pData += (*a_pData == '\r' && *(a_pData+1) == '\n') ? 2 : 1; - } - - /** Make a copy of the supplied string, replacing the original pointer */ - SI_Error CopyString(const SI_CHAR *& a_pString); - - /** Delete a string from the copied strings buffer if necessary */ - void DeleteString(const SI_CHAR * a_pString); - - /** Internal use of our string comparison function */ - bool IsLess(const SI_CHAR * a_pLeft, const SI_CHAR * a_pRight) const { - const static SI_STRLESS isLess = SI_STRLESS(); - return isLess(a_pLeft, a_pRight); - } - - bool IsMultiLineTag(const SI_CHAR * a_pData) const; - bool IsMultiLineData(const SI_CHAR * a_pData) const; - bool LoadMultiLineText( - SI_CHAR *& a_pData, - const SI_CHAR *& a_pVal, - const SI_CHAR * a_pTagName, - bool a_bAllowBlankLinesInComment = false - ) const; - bool IsNewLineChar(SI_CHAR a_c) const; - - bool OutputMultiLineText( - OutputWriter & a_oOutput, - Converter & a_oConverter, - const SI_CHAR * a_pText - ) const; - -private: - /** Copy of the INI file data in our character format. This will be - modified when parsed to have NULL characters added after all - interesting string entries. All of the string pointers to sections, - keys and values point into this block of memory. - */ - SI_CHAR * m_pData; - - /** Length of the data that we have stored. Used when deleting strings - to determine if the string is stored here or in the allocated string - buffer. - */ - size_t m_uDataLen; - - /** File comment for this data, if one exists. */ - const SI_CHAR * m_pFileComment; - - /** Parsed INI data. Section -> (Key -> Value). */ - TSection m_data; - - /** This vector stores allocated memory for copies of strings that have - been supplied after the file load. It will be empty unless SetValue() - has been called. - */ - TNamesDepend m_strings; - - /** Is the format of our datafile UTF-8 or MBCS? */ - bool m_bStoreIsUtf8; - - /** Are multiple values permitted for the same key? */ - bool m_bAllowMultiKey; - - /** Are data values permitted to span multiple lines? */ - bool m_bAllowMultiLine; - - /** Should spaces be written out surrounding the equals sign? */ - bool m_bSpaces; - - /** Next order value, used to ensure sections and keys are output in the - same order that they are loaded/added. - */ - int m_nOrder; -}; - -// --------------------------------------------------------------------------- -// IMPLEMENTATION -// --------------------------------------------------------------------------- - -template -CSimpleIniTempl::CSimpleIniTempl( - bool a_bIsUtf8, - bool a_bAllowMultiKey, - bool a_bAllowMultiLine - ) - : m_pData(0) - , m_uDataLen(0) - , m_pFileComment(NULL) - , m_bStoreIsUtf8(a_bIsUtf8) - , m_bAllowMultiKey(a_bAllowMultiKey) - , m_bAllowMultiLine(a_bAllowMultiLine) - , m_bSpaces(true) - , m_nOrder(0) -{ } - -template -CSimpleIniTempl::~CSimpleIniTempl() -{ - Reset(); -} - -template -void -CSimpleIniTempl::Reset() -{ - // remove all data - delete[] m_pData; - m_pData = NULL; - m_uDataLen = 0; - m_pFileComment = NULL; - if (!m_data.empty()) { - m_data.erase(m_data.begin(), m_data.end()); - } - - // remove all strings - if (!m_strings.empty()) { - typename TNamesDepend::iterator i = m_strings.begin(); - for (; i != m_strings.end(); ++i) { - delete[] const_cast(i->pItem); - } - m_strings.erase(m_strings.begin(), m_strings.end()); - } -} - -template -SI_Error -CSimpleIniTempl::LoadFile( - const char * a_pszFile - ) -{ - FILE * fp = NULL; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - fopen_s(&fp, a_pszFile, "rb"); -#else // !__STDC_WANT_SECURE_LIB__ - fp = fopen(a_pszFile, "rb"); -#endif // __STDC_WANT_SECURE_LIB__ - if (!fp) { - return SI_FILE; - } - SI_Error rc = LoadFile(fp); - fclose(fp); - return rc; -} - -#ifdef SI_HAS_WIDE_FILE -template -SI_Error -CSimpleIniTempl::LoadFile( - const SI_WCHAR_T * a_pwszFile - ) -{ -#ifdef _WIN32 - FILE * fp = NULL; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - _wfopen_s(&fp, a_pwszFile, L"rb"); -#else // !__STDC_WANT_SECURE_LIB__ - fp = _wfopen(a_pwszFile, L"rb"); -#endif // __STDC_WANT_SECURE_LIB__ - if (!fp) return SI_FILE; - SI_Error rc = LoadFile(fp); - fclose(fp); - return rc; -#else // !_WIN32 (therefore SI_CONVERT_ICU) - char szFile[256]; - u_austrncpy(szFile, a_pwszFile, sizeof(szFile)); - return LoadFile(szFile); -#endif // _WIN32 -} -#endif // SI_HAS_WIDE_FILE - -template -SI_Error -CSimpleIniTempl::LoadFile( - FILE * a_fpFile - ) -{ - // load the raw file data - int retval = fseek(a_fpFile, 0, SEEK_END); - if (retval != 0) { - return SI_FILE; - } - long lSize = ftell(a_fpFile); - if (lSize < 0) { - return SI_FILE; - } - if (lSize == 0) { - return SI_OK; - } - - // allocate and ensure NULL terminated - char * pData = new(std::nothrow) char[lSize+1]; - if (!pData) { - return SI_NOMEM; - } - pData[lSize] = 0; - - // load data into buffer - fseek(a_fpFile, 0, SEEK_SET); - size_t uRead = fread(pData, sizeof(char), lSize, a_fpFile); - if (uRead != (size_t) lSize) { - delete[] pData; - return SI_FILE; - } - - // convert the raw data to unicode - SI_Error rc = LoadData(pData, uRead); - delete[] pData; - return rc; -} - -template -SI_Error -CSimpleIniTempl::LoadData( - const char * a_pData, - size_t a_uDataLen - ) -{ - if (!a_pData) { - return SI_OK; - } - - // if the UTF-8 BOM exists, consume it and set mode to unicode, if we have - // already loaded data and try to change mode half-way through then this will - // be ignored and we will assert in debug versions - if (a_uDataLen >= 3 && memcmp(a_pData, SI_UTF8_SIGNATURE, 3) == 0) { - a_pData += 3; - a_uDataLen -= 3; - SI_ASSERT(m_bStoreIsUtf8 || !m_pData); // we don't expect mixed mode data - SetUnicode(); - } - - if (a_uDataLen == 0) { - return SI_OK; - } - - // determine the length of the converted data - SI_CONVERTER converter(m_bStoreIsUtf8); - size_t uLen = converter.SizeFromStore(a_pData, a_uDataLen); - if (uLen == (size_t)(-1)) { - return SI_FAIL; - } - - // allocate memory for the data, ensure that there is a NULL - // terminator wherever the converted data ends - SI_CHAR * pData = new(std::nothrow) SI_CHAR[uLen+1]; - if (!pData) { - return SI_NOMEM; - } - memset(pData, 0, sizeof(SI_CHAR)*(uLen+1)); - - // convert the data - if (!converter.ConvertFromStore(a_pData, a_uDataLen, pData, uLen)) { - delete[] pData; - return SI_FAIL; - } - - // parse it - const static SI_CHAR empty = 0; - SI_CHAR * pWork = pData; - const SI_CHAR * pSection = ∅ - const SI_CHAR * pItem = NULL; - const SI_CHAR * pVal = NULL; - const SI_CHAR * pComment = NULL; - - // We copy the strings if we are loading data into this class when we - // already have stored some. - bool bCopyStrings = (m_pData != NULL); - - // find a file comment if it exists, this is a comment that starts at the - // beginning of the file and continues until the first blank line. - SI_Error rc = FindFileComment(pWork, bCopyStrings); - if (rc < 0) return rc; - - // add every entry in the file to the data table - while (FindEntry(pWork, pSection, pItem, pVal, pComment)) { - rc = AddEntry(pSection, pItem, pVal, pComment, false, bCopyStrings); - if (rc < 0) return rc; - } - - // store these strings if we didn't copy them - if (bCopyStrings) { - delete[] pData; - } - else { - m_pData = pData; - m_uDataLen = uLen+1; - } - - return SI_OK; -} - -#ifdef SI_SUPPORT_IOSTREAMS -template -SI_Error -CSimpleIniTempl::LoadData( - std::istream & a_istream - ) -{ - std::string strData; - char szBuf[512]; - do { - a_istream.get(szBuf, sizeof(szBuf), '\0'); - strData.append(szBuf); - } - while (a_istream.good()); - return LoadData(strData); -} -#endif // SI_SUPPORT_IOSTREAMS - -template -SI_Error -CSimpleIniTempl::FindFileComment( - SI_CHAR *& a_pData, - bool a_bCopyStrings - ) -{ - // there can only be a single file comment - if (m_pFileComment) { - return SI_OK; - } - - // Load the file comment as multi-line text, this will modify all of - // the newline characters to be single \n chars - if (!LoadMultiLineText(a_pData, m_pFileComment, NULL, false)) { - return SI_OK; - } - - // copy the string if necessary - if (a_bCopyStrings) { - SI_Error rc = CopyString(m_pFileComment); - if (rc < 0) return rc; - } - - return SI_OK; -} - -template -bool -CSimpleIniTempl::FindEntry( - SI_CHAR *& a_pData, - const SI_CHAR *& a_pSection, - const SI_CHAR *& a_pKey, - const SI_CHAR *& a_pVal, - const SI_CHAR *& a_pComment - ) const -{ - a_pComment = NULL; - - SI_CHAR * pTrail = NULL; - while (*a_pData) { - // skip spaces and empty lines - while (*a_pData && IsSpace(*a_pData)) { - ++a_pData; - } - if (!*a_pData) { - break; - } - - // skip processing of comment lines but keep a pointer to - // the start of the comment. - if (IsComment(*a_pData)) { - LoadMultiLineText(a_pData, a_pComment, NULL, true); - continue; - } - - // process section names - if (*a_pData == '[') { - // skip leading spaces - ++a_pData; - while (*a_pData && IsSpace(*a_pData)) { - ++a_pData; - } - - // find the end of the section name (it may contain spaces) - // and convert it to lowercase as necessary - a_pSection = a_pData; - while (*a_pData && *a_pData != ']' && !IsNewLineChar(*a_pData)) { - ++a_pData; - } - - // if it's an invalid line, just skip it - if (*a_pData != ']') { - continue; - } - - // remove trailing spaces from the section - pTrail = a_pData - 1; - while (pTrail >= a_pSection && IsSpace(*pTrail)) { - --pTrail; - } - ++pTrail; - *pTrail = 0; - - // skip to the end of the line - ++a_pData; // safe as checked that it == ']' above - while (*a_pData && !IsNewLineChar(*a_pData)) { - ++a_pData; - } - - a_pKey = NULL; - a_pVal = NULL; - return true; - } - - // find the end of the key name (it may contain spaces) - // and convert it to lowercase as necessary - a_pKey = a_pData; - while (*a_pData && *a_pData != '=' && !IsNewLineChar(*a_pData)) { - ++a_pData; - } - - // if it's an invalid line, just skip it - if (*a_pData != '=') { - continue; - } - - // empty keys are invalid - if (a_pKey == a_pData) { - while (*a_pData && !IsNewLineChar(*a_pData)) { - ++a_pData; - } - continue; - } - - // remove trailing spaces from the key - pTrail = a_pData - 1; - while (pTrail >= a_pKey && IsSpace(*pTrail)) { - --pTrail; - } - ++pTrail; - *pTrail = 0; - - // skip leading whitespace on the value - ++a_pData; // safe as checked that it == '=' above - while (*a_pData && !IsNewLineChar(*a_pData) && IsSpace(*a_pData)) { - ++a_pData; - } - - // find the end of the value which is the end of this line - a_pVal = a_pData; - while (*a_pData && !IsNewLineChar(*a_pData)) { - ++a_pData; - } - - // remove trailing spaces from the value - pTrail = a_pData - 1; - if (*a_pData) { // prepare for the next round - SkipNewLine(a_pData); - } - while (pTrail >= a_pVal && IsSpace(*pTrail)) { - --pTrail; - } - ++pTrail; - *pTrail = 0; - - // check for multi-line entries - if (m_bAllowMultiLine && IsMultiLineTag(a_pVal)) { - // skip the "<<<" to get the tag that will end the multiline - const SI_CHAR * pTagName = a_pVal + 3; - return LoadMultiLineText(a_pData, a_pVal, pTagName); - } - - // return the standard entry - return true; - } - - return false; -} - -template -bool -CSimpleIniTempl::IsMultiLineTag( - const SI_CHAR * a_pVal - ) const -{ - // check for the "<<<" prefix for a multi-line entry - if (*a_pVal++ != '<') return false; - if (*a_pVal++ != '<') return false; - if (*a_pVal++ != '<') return false; - return true; -} - -template -bool -CSimpleIniTempl::IsMultiLineData( - const SI_CHAR * a_pData - ) const -{ - // data is multi-line if it has any of the following features: - // * whitespace prefix - // * embedded newlines - // * whitespace suffix - - // empty string - if (!*a_pData) { - return false; - } - - // check for prefix - if (IsSpace(*a_pData)) { - return true; - } - - // embedded newlines - while (*a_pData) { - if (IsNewLineChar(*a_pData)) { - return true; - } - ++a_pData; - } - - // check for suffix - if (IsSpace(*--a_pData)) { - return true; - } - - return false; -} - -template -bool -CSimpleIniTempl::IsNewLineChar( - SI_CHAR a_c - ) const -{ - return (a_c == '\n' || a_c == '\r'); -} - -template -bool -CSimpleIniTempl::LoadMultiLineText( - SI_CHAR *& a_pData, - const SI_CHAR *& a_pVal, - const SI_CHAR * a_pTagName, - bool a_bAllowBlankLinesInComment - ) const -{ - // we modify this data to strip all newlines down to a single '\n' - // character. This means that on Windows we need to strip out some - // characters which will make the data shorter. - // i.e. LINE1-LINE1\r\nLINE2-LINE2\0 will become - // LINE1-LINE1\nLINE2-LINE2\0 - // The pDataLine entry is the pointer to the location in memory that - // the current line needs to start to run following the existing one. - // This may be the same as pCurrLine in which case no move is needed. - SI_CHAR * pDataLine = a_pData; - SI_CHAR * pCurrLine; - - // value starts at the current line - a_pVal = a_pData; - - // find the end tag. This tag must start in column 1 and be - // followed by a newline. We ignore any whitespace after the end - // tag but not whitespace before it. - SI_CHAR cEndOfLineChar = *a_pData; - for(;;) { - // if we are loading comments then we need a comment character as - // the first character on every line - if (!a_pTagName && !IsComment(*a_pData)) { - // if we aren't allowing blank lines then we're done - if (!a_bAllowBlankLinesInComment) { - break; - } - - // if we are allowing blank lines then we only include them - // in this comment if another comment follows, so read ahead - // to find out. - SI_CHAR * pCurr = a_pData; - int nNewLines = 0; - while (IsSpace(*pCurr)) { - if (IsNewLineChar(*pCurr)) { - ++nNewLines; - SkipNewLine(pCurr); - } - else { - ++pCurr; - } - } - - // we have a comment, add the blank lines to the output - // and continue processing from here - if (IsComment(*pCurr)) { - for (; nNewLines > 0; --nNewLines) *pDataLine++ = '\n'; - a_pData = pCurr; - continue; - } - - // the comment ends here - break; - } - - // find the end of this line - pCurrLine = a_pData; - while (*a_pData && !IsNewLineChar(*a_pData)) ++a_pData; - - // move this line down to the location that it should be if necessary - if (pDataLine < pCurrLine) { - size_t nLen = (size_t) (a_pData - pCurrLine); - memmove(pDataLine, pCurrLine, nLen * sizeof(SI_CHAR)); - pDataLine[nLen] = '\0'; - } - - // end the line with a NULL - cEndOfLineChar = *a_pData; - *a_pData = 0; - - // if are looking for a tag then do the check now. This is done before - // checking for end of the data, so that if we have the tag at the end - // of the data then the tag is removed correctly. - if (a_pTagName) { - // strip whitespace from the end of this tag - SI_CHAR* pc = a_pData - 1; - while (pc > pDataLine && IsSpace(*pc)) --pc; - SI_CHAR ch = *++pc; - *pc = 0; - - if (!IsLess(pDataLine, a_pTagName) && !IsLess(a_pTagName, pDataLine)) { - break; - } - - *pc = ch; - } - - // if we are at the end of the data then we just automatically end - // this entry and return the current data. - if (!cEndOfLineChar) { - return true; - } - - // otherwise we need to process this newline to ensure that it consists - // of just a single \n character. - pDataLine += (a_pData - pCurrLine); - *a_pData = cEndOfLineChar; - SkipNewLine(a_pData); - *pDataLine++ = '\n'; - } - - // if we didn't find a comment at all then return false - if (a_pVal == a_pData) { - a_pVal = NULL; - return false; - } - - // the data (which ends at the end of the last line) needs to be - // null-terminated BEFORE before the newline character(s). If the - // user wants a new line in the multi-line data then they need to - // add an empty line before the tag. - *--pDataLine = '\0'; - - // if looking for a tag and if we aren't at the end of the data, - // then move a_pData to the start of the next line. - if (a_pTagName && cEndOfLineChar) { - SI_ASSERT(IsNewLineChar(cEndOfLineChar)); - *a_pData = cEndOfLineChar; - SkipNewLine(a_pData); - } - - return true; -} - -template -SI_Error -CSimpleIniTempl::CopyString( - const SI_CHAR *& a_pString - ) -{ - size_t uLen = 0; - if (sizeof(SI_CHAR) == sizeof(char)) { - uLen = strlen((const char *)a_pString); - } - else if (sizeof(SI_CHAR) == sizeof(wchar_t)) { - uLen = wcslen((const wchar_t *)a_pString); - } - else { - for ( ; a_pString[uLen]; ++uLen) /*loop*/ ; - } - ++uLen; // NULL character - SI_CHAR * pCopy = new(std::nothrow) SI_CHAR[uLen]; - if (!pCopy) { - return SI_NOMEM; - } - memcpy(pCopy, a_pString, sizeof(SI_CHAR)*uLen); - m_strings.push_back(pCopy); - a_pString = pCopy; - return SI_OK; -} - -template -SI_Error -CSimpleIniTempl::AddEntry( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pValue, - const SI_CHAR * a_pComment, - bool a_bForceReplace, - bool a_bCopyStrings - ) -{ - SI_Error rc; - bool bInserted = false; - - SI_ASSERT(!a_pComment || IsComment(*a_pComment)); - - // if we are copying strings then make a copy of the comment now - // because we will need it when we add the entry. - if (a_bCopyStrings && a_pComment) { - rc = CopyString(a_pComment); - if (rc < 0) return rc; - } - - // create the section entry if necessary - typename TSection::iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - // if the section doesn't exist then we need a copy as the - // string needs to last beyond the end of this function - if (a_bCopyStrings) { - rc = CopyString(a_pSection); - if (rc < 0) return rc; - } - - // only set the comment if this is a section only entry - Entry oSection(a_pSection, ++m_nOrder); - if (a_pComment && (!a_pKey || !a_pValue)) { - oSection.pComment = a_pComment; - } - - typename TSection::value_type oEntry(oSection, TKeyVal()); - typedef typename TSection::iterator SectionIterator; - std::pair i = m_data.insert(oEntry); - iSection = i.first; - bInserted = true; - } - if (!a_pKey || !a_pValue) { - // section only entries are specified with pItem and pVal as NULL - return bInserted ? SI_INSERTED : SI_UPDATED; - } - - // check for existence of the key - TKeyVal & keyval = iSection->second; - typename TKeyVal::iterator iKey = keyval.find(a_pKey); - bInserted = iKey == keyval.end(); - - // remove all existing entries but save the load order and - // comment of the first entry - int nLoadOrder = ++m_nOrder; - if (iKey != keyval.end() && m_bAllowMultiKey && a_bForceReplace) { - const SI_CHAR * pComment = NULL; - while (iKey != keyval.end() && !IsLess(a_pKey, iKey->first.pItem)) { - if (iKey->first.nOrder < nLoadOrder) { - nLoadOrder = iKey->first.nOrder; - pComment = iKey->first.pComment; - } - ++iKey; - } - if (pComment) { - DeleteString(a_pComment); - a_pComment = pComment; - CopyString(a_pComment); - } - Delete(a_pSection, a_pKey); - iKey = keyval.end(); - } - - // make string copies if necessary - bool bForceCreateNewKey = m_bAllowMultiKey && !a_bForceReplace; - if (a_bCopyStrings) { - if (bForceCreateNewKey || iKey == keyval.end()) { - // if the key doesn't exist then we need a copy as the - // string needs to last beyond the end of this function - // because we will be inserting the key next - rc = CopyString(a_pKey); - if (rc < 0) return rc; - } - - // we always need a copy of the value - rc = CopyString(a_pValue); - if (rc < 0) return rc; - } - - // create the key entry - if (iKey == keyval.end() || bForceCreateNewKey) { - Entry oKey(a_pKey, nLoadOrder); - if (a_pComment) { - oKey.pComment = a_pComment; - } - typename TKeyVal::value_type oEntry(oKey, static_cast(NULL)); - iKey = keyval.insert(oEntry); - } - - iKey->second = a_pValue; - return bInserted ? SI_INSERTED : SI_UPDATED; -} - -template -const SI_CHAR * -CSimpleIniTempl::GetValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pDefault, - bool * a_pHasMultiple - ) const -{ - if (a_pHasMultiple) { - *a_pHasMultiple = false; - } - if (!a_pSection || !a_pKey) { - return a_pDefault; - } - typename TSection::const_iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - return a_pDefault; - } - typename TKeyVal::const_iterator iKeyVal = iSection->second.find(a_pKey); - if (iKeyVal == iSection->second.end()) { - return a_pDefault; - } - - // check for multiple entries with the same key - if (m_bAllowMultiKey && a_pHasMultiple) { - typename TKeyVal::const_iterator iTemp = iKeyVal; - if (++iTemp != iSection->second.end()) { - if (!IsLess(a_pKey, iTemp->first.pItem)) { - *a_pHasMultiple = true; - } - } - } - - return iKeyVal->second; -} - -template -long -CSimpleIniTempl::GetLongValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - long a_nDefault, - bool * a_pHasMultiple - ) const -{ - // return the default if we don't have a value - const SI_CHAR * pszValue = GetValue(a_pSection, a_pKey, NULL, a_pHasMultiple); - if (!pszValue || !*pszValue) return a_nDefault; - - // convert to UTF-8/MBCS which for a numeric value will be the same as ASCII - char szValue[64] = { 0 }; - SI_CONVERTER c(m_bStoreIsUtf8); - if (!c.ConvertToStore(pszValue, szValue, sizeof(szValue))) { - return a_nDefault; - } - - // handle the value as hex if prefaced with "0x" - long nValue = a_nDefault; - char * pszSuffix = szValue; - if (szValue[0] == '0' && (szValue[1] == 'x' || szValue[1] == 'X')) { - if (!szValue[2]) return a_nDefault; - nValue = strtol(&szValue[2], &pszSuffix, 16); - } - else { - nValue = strtol(szValue, &pszSuffix, 10); - } - - // any invalid strings will return the default value - if (*pszSuffix) { - return a_nDefault; - } - - return nValue; -} - -template -SI_Error -CSimpleIniTempl::SetLongValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - long a_nValue, - const SI_CHAR * a_pComment, - bool a_bUseHex, - bool a_bForceReplace - ) -{ - // use SetValue to create sections - if (!a_pSection || !a_pKey) return SI_FAIL; - - // convert to an ASCII string - char szInput[64]; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - sprintf_s(szInput, a_bUseHex ? "0x%lx" : "%ld", a_nValue); -#else // !__STDC_WANT_SECURE_LIB__ - sprintf(szInput, a_bUseHex ? "0x%lx" : "%ld", a_nValue); -#endif // __STDC_WANT_SECURE_LIB__ - - // convert to output text - SI_CHAR szOutput[64]; - SI_CONVERTER c(m_bStoreIsUtf8); - c.ConvertFromStore(szInput, strlen(szInput) + 1, - szOutput, sizeof(szOutput) / sizeof(SI_CHAR)); - - // actually add it - return AddEntry(a_pSection, a_pKey, szOutput, a_pComment, a_bForceReplace, true); -} - -template -double -CSimpleIniTempl::GetDoubleValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - double a_nDefault, - bool * a_pHasMultiple - ) const -{ - // return the default if we don't have a value - const SI_CHAR * pszValue = GetValue(a_pSection, a_pKey, NULL, a_pHasMultiple); - if (!pszValue || !*pszValue) return a_nDefault; - - // convert to UTF-8/MBCS which for a numeric value will be the same as ASCII - char szValue[64] = { 0 }; - SI_CONVERTER c(m_bStoreIsUtf8); - if (!c.ConvertToStore(pszValue, szValue, sizeof(szValue))) { - return a_nDefault; - } - - char * pszSuffix = NULL; - double nValue = strtod(szValue, &pszSuffix); - - // any invalid strings will return the default value - if (!pszSuffix || *pszSuffix) { - return a_nDefault; - } - - return nValue; -} - -template -SI_Error -CSimpleIniTempl::SetDoubleValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - double a_nValue, - const SI_CHAR * a_pComment, - bool a_bForceReplace - ) -{ - // use SetValue to create sections - if (!a_pSection || !a_pKey) return SI_FAIL; - - // convert to an ASCII string - char szInput[64]; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - sprintf_s(szInput, "%f", a_nValue); -#else // !__STDC_WANT_SECURE_LIB__ - sprintf(szInput, "%f", a_nValue); -#endif // __STDC_WANT_SECURE_LIB__ - - // convert to output text - SI_CHAR szOutput[64]; - SI_CONVERTER c(m_bStoreIsUtf8); - c.ConvertFromStore(szInput, strlen(szInput) + 1, - szOutput, sizeof(szOutput) / sizeof(SI_CHAR)); - - // actually add it - return AddEntry(a_pSection, a_pKey, szOutput, a_pComment, a_bForceReplace, true); -} - -template -bool -CSimpleIniTempl::GetBoolValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bDefault, - bool * a_pHasMultiple - ) const -{ - // return the default if we don't have a value - const SI_CHAR * pszValue = GetValue(a_pSection, a_pKey, NULL, a_pHasMultiple); - if (!pszValue || !*pszValue) return a_bDefault; - - // we only look at the minimum number of characters - switch (pszValue[0]) { - case 't': case 'T': // true - case 'y': case 'Y': // yes - case '1': // 1 (one) - return true; - - case 'f': case 'F': // false - case 'n': case 'N': // no - case '0': // 0 (zero) - return false; - - case 'o': case 'O': - if (pszValue[1] == 'n' || pszValue[1] == 'N') return true; // on - if (pszValue[1] == 'f' || pszValue[1] == 'F') return false; // off - break; - } - - // no recognized value, return the default - return a_bDefault; -} - -template -SI_Error -CSimpleIniTempl::SetBoolValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bValue, - const SI_CHAR * a_pComment, - bool a_bForceReplace - ) -{ - // use SetValue to create sections - if (!a_pSection || !a_pKey) return SI_FAIL; - - // convert to an ASCII string - const char * pszInput = a_bValue ? "true" : "false"; - - // convert to output text - SI_CHAR szOutput[64]; - SI_CONVERTER c(m_bStoreIsUtf8); - c.ConvertFromStore(pszInput, strlen(pszInput) + 1, - szOutput, sizeof(szOutput) / sizeof(SI_CHAR)); - - // actually add it - return AddEntry(a_pSection, a_pKey, szOutput, a_pComment, a_bForceReplace, true); -} - -template -bool -CSimpleIniTempl::GetAllValues( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - TNamesDepend & a_values - ) const -{ - a_values.clear(); - - if (!a_pSection || !a_pKey) { - return false; - } - typename TSection::const_iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - return false; - } - typename TKeyVal::const_iterator iKeyVal = iSection->second.find(a_pKey); - if (iKeyVal == iSection->second.end()) { - return false; - } - - // insert all values for this key - a_values.push_back(Entry(iKeyVal->second, iKeyVal->first.pComment, iKeyVal->first.nOrder)); - if (m_bAllowMultiKey) { - ++iKeyVal; - while (iKeyVal != iSection->second.end() && !IsLess(a_pKey, iKeyVal->first.pItem)) { - a_values.push_back(Entry(iKeyVal->second, iKeyVal->first.pComment, iKeyVal->first.nOrder)); - ++iKeyVal; - } - } - - return true; -} - -template -int -CSimpleIniTempl::GetSectionSize( - const SI_CHAR * a_pSection - ) const -{ - if (!a_pSection) { - return -1; - } - - typename TSection::const_iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - return -1; - } - const TKeyVal & section = iSection->second; - - // if multi-key isn't permitted then the section size is - // the number of keys that we have. - if (!m_bAllowMultiKey || section.empty()) { - return (int) section.size(); - } - - // otherwise we need to count them - int nCount = 0; - const SI_CHAR * pLastKey = NULL; - typename TKeyVal::const_iterator iKeyVal = section.begin(); - for (int n = 0; iKeyVal != section.end(); ++iKeyVal, ++n) { - if (!pLastKey || IsLess(pLastKey, iKeyVal->first.pItem)) { - ++nCount; - pLastKey = iKeyVal->first.pItem; - } - } - return nCount; -} - -template -const typename CSimpleIniTempl::TKeyVal * -CSimpleIniTempl::GetSection( - const SI_CHAR * a_pSection - ) const -{ - if (a_pSection) { - typename TSection::const_iterator i = m_data.find(a_pSection); - if (i != m_data.end()) { - return &(i->second); - } - } - return 0; -} - -template -void -CSimpleIniTempl::GetAllSections( - TNamesDepend & a_names - ) const -{ - a_names.clear(); - typename TSection::const_iterator i = m_data.begin(); - for (int n = 0; i != m_data.end(); ++i, ++n ) { - a_names.push_back(i->first); - } -} - -template -bool -CSimpleIniTempl::GetAllKeys( - const SI_CHAR * a_pSection, - TNamesDepend & a_names - ) const -{ - a_names.clear(); - - if (!a_pSection) { - return false; - } - - typename TSection::const_iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - return false; - } - - const TKeyVal & section = iSection->second; - const SI_CHAR * pLastKey = NULL; - typename TKeyVal::const_iterator iKeyVal = section.begin(); - for (int n = 0; iKeyVal != section.end(); ++iKeyVal, ++n ) { - if (!pLastKey || IsLess(pLastKey, iKeyVal->first.pItem)) { - a_names.push_back(iKeyVal->first); - pLastKey = iKeyVal->first.pItem; - } - } - - return true; -} - -template -SI_Error -CSimpleIniTempl::SaveFile( - const char * a_pszFile, - bool a_bAddSignature - ) const -{ - FILE * fp = NULL; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - fopen_s(&fp, a_pszFile, "wb"); -#else // !__STDC_WANT_SECURE_LIB__ - fp = fopen(a_pszFile, "wb"); -#endif // __STDC_WANT_SECURE_LIB__ - if (!fp) return SI_FILE; - SI_Error rc = SaveFile(fp, a_bAddSignature); - fclose(fp); - return rc; -} - -#ifdef SI_HAS_WIDE_FILE -template -SI_Error -CSimpleIniTempl::SaveFile( - const SI_WCHAR_T * a_pwszFile, - bool a_bAddSignature - ) const -{ -#ifdef _WIN32 - FILE * fp = NULL; -#if __STDC_WANT_SECURE_LIB__ && !_WIN32_WCE - _wfopen_s(&fp, a_pwszFile, L"wb"); -#else // !__STDC_WANT_SECURE_LIB__ - fp = _wfopen(a_pwszFile, L"wb"); -#endif // __STDC_WANT_SECURE_LIB__ - if (!fp) return SI_FILE; - SI_Error rc = SaveFile(fp, a_bAddSignature); - fclose(fp); - return rc; -#else // !_WIN32 (therefore SI_CONVERT_ICU) - char szFile[256]; - u_austrncpy(szFile, a_pwszFile, sizeof(szFile)); - return SaveFile(szFile, a_bAddSignature); -#endif // _WIN32 -} -#endif // SI_HAS_WIDE_FILE - -template -SI_Error -CSimpleIniTempl::SaveFile( - FILE * a_pFile, - bool a_bAddSignature - ) const -{ - FileWriter writer(a_pFile); - return Save(writer, a_bAddSignature); -} - -template -SI_Error -CSimpleIniTempl::Save( - OutputWriter & a_oOutput, - bool a_bAddSignature - ) const -{ - Converter convert(m_bStoreIsUtf8); - - // add the UTF-8 signature if it is desired - if (m_bStoreIsUtf8 && a_bAddSignature) { - a_oOutput.Write(SI_UTF8_SIGNATURE); - } - - // get all of the sections sorted in load order - TNamesDepend oSections; - GetAllSections(oSections); -#if defined(_MSC_VER) && _MSC_VER <= 1200 - oSections.sort(); -#elif defined(__BORLANDC__) - oSections.sort(Entry::LoadOrder()); -#else - oSections.sort(typename Entry::LoadOrder()); -#endif - - // if there is an empty section name, then it must be written out first - // regardless of the load order - typename TNamesDepend::iterator is = oSections.begin(); - for (; is != oSections.end(); ++is) { - if (!*is->pItem) { - // move the empty section name to the front of the section list - if (is != oSections.begin()) { - oSections.splice(oSections.begin(), oSections, is, std::next(is)); - } - break; - } - } - - // write the file comment if we have one - bool bNeedNewLine = false; - if (m_pFileComment) { - if (!OutputMultiLineText(a_oOutput, convert, m_pFileComment)) { - return SI_FAIL; - } - bNeedNewLine = true; - } - - // iterate through our sections and output the data - typename TNamesDepend::const_iterator iSection = oSections.begin(); - for ( ; iSection != oSections.end(); ++iSection ) { - // write out the comment if there is one - if (iSection->pComment) { - if (bNeedNewLine) { - a_oOutput.Write(SI_NEWLINE_A); - a_oOutput.Write(SI_NEWLINE_A); - } - if (!OutputMultiLineText(a_oOutput, convert, iSection->pComment)) { - return SI_FAIL; - } - bNeedNewLine = false; - } - - if (bNeedNewLine) { - a_oOutput.Write(SI_NEWLINE_A); - a_oOutput.Write(SI_NEWLINE_A); - bNeedNewLine = false; - } - - // write the section (unless there is no section name) - if (*iSection->pItem) { - if (!convert.ConvertToStore(iSection->pItem)) { - return SI_FAIL; - } - a_oOutput.Write("["); - a_oOutput.Write(convert.Data()); - a_oOutput.Write("]"); - a_oOutput.Write(SI_NEWLINE_A); - } - - // get all of the keys sorted in load order - TNamesDepend oKeys; - GetAllKeys(iSection->pItem, oKeys); -#if defined(_MSC_VER) && _MSC_VER <= 1200 - oKeys.sort(); -#elif defined(__BORLANDC__) - oKeys.sort(Entry::LoadOrder()); -#else - oKeys.sort(typename Entry::LoadOrder()); -#endif - - // write all keys and values - typename TNamesDepend::const_iterator iKey = oKeys.begin(); - for ( ; iKey != oKeys.end(); ++iKey) { - // get all values for this key - TNamesDepend oValues; - GetAllValues(iSection->pItem, iKey->pItem, oValues); - - typename TNamesDepend::const_iterator iValue = oValues.begin(); - for ( ; iValue != oValues.end(); ++iValue) { - // write out the comment if there is one - if (iValue->pComment) { - a_oOutput.Write(SI_NEWLINE_A); - if (!OutputMultiLineText(a_oOutput, convert, iValue->pComment)) { - return SI_FAIL; - } - } - - // write the key - if (!convert.ConvertToStore(iKey->pItem)) { - return SI_FAIL; - } - a_oOutput.Write(convert.Data()); - - // write the value - if (!convert.ConvertToStore(iValue->pItem)) { - return SI_FAIL; - } - a_oOutput.Write(m_bSpaces ? " = " : "="); - if (m_bAllowMultiLine && IsMultiLineData(iValue->pItem)) { - // multi-line data needs to be processed specially to ensure - // that we use the correct newline format for the current system - a_oOutput.Write("<<pItem)) { - return SI_FAIL; - } - a_oOutput.Write("END_OF_TEXT"); - } - else { - a_oOutput.Write(convert.Data()); - } - a_oOutput.Write(SI_NEWLINE_A); - } - } - - bNeedNewLine = true; - } - - return SI_OK; -} - -template -bool -CSimpleIniTempl::OutputMultiLineText( - OutputWriter & a_oOutput, - Converter & a_oConverter, - const SI_CHAR * a_pText - ) const -{ - const SI_CHAR * pEndOfLine; - SI_CHAR cEndOfLineChar = *a_pText; - while (cEndOfLineChar) { - // find the end of this line - pEndOfLine = a_pText; - for (; *pEndOfLine && *pEndOfLine != '\n'; ++pEndOfLine) /*loop*/ ; - cEndOfLineChar = *pEndOfLine; - - // temporarily null terminate, convert and output the line - *const_cast(pEndOfLine) = 0; - if (!a_oConverter.ConvertToStore(a_pText)) { - return false; - } - *const_cast(pEndOfLine) = cEndOfLineChar; - a_pText += (pEndOfLine - a_pText) + 1; - a_oOutput.Write(a_oConverter.Data()); - a_oOutput.Write(SI_NEWLINE_A); - } - return true; -} - -template -bool -CSimpleIniTempl::Delete( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - bool a_bRemoveEmpty - ) -{ - return DeleteValue(a_pSection, a_pKey, NULL, a_bRemoveEmpty); -} - -template -bool -CSimpleIniTempl::DeleteValue( - const SI_CHAR * a_pSection, - const SI_CHAR * a_pKey, - const SI_CHAR * a_pValue, - bool a_bRemoveEmpty - ) -{ - if (!a_pSection) { - return false; - } - - typename TSection::iterator iSection = m_data.find(a_pSection); - if (iSection == m_data.end()) { - return false; - } - - // remove a single key if we have a keyname - if (a_pKey) { - typename TKeyVal::iterator iKeyVal = iSection->second.find(a_pKey); - if (iKeyVal == iSection->second.end()) { - return false; - } - - const static SI_STRLESS isLess = SI_STRLESS(); - - // remove any copied strings and then the key - typename TKeyVal::iterator iDelete; - bool bDeleted = false; - do { - iDelete = iKeyVal++; - - if(a_pValue == NULL || - (isLess(a_pValue, iDelete->second) == false && - isLess(iDelete->second, a_pValue) == false)) { - DeleteString(iDelete->first.pItem); - DeleteString(iDelete->second); - iSection->second.erase(iDelete); - bDeleted = true; - } - } - while (iKeyVal != iSection->second.end() - && !IsLess(a_pKey, iKeyVal->first.pItem)); - - if(!bDeleted) { - return false; - } - - // done now if the section is not empty or we are not pruning away - // the empty sections. Otherwise let it fall through into the section - // deletion code - if (!a_bRemoveEmpty || !iSection->second.empty()) { - return true; - } - } - else { - // delete all copied strings from this section. The actual - // entries will be removed when the section is removed. - typename TKeyVal::iterator iKeyVal = iSection->second.begin(); - for ( ; iKeyVal != iSection->second.end(); ++iKeyVal) { - DeleteString(iKeyVal->first.pItem); - DeleteString(iKeyVal->second); - } - } - - // delete the section itself - DeleteString(iSection->first.pItem); - m_data.erase(iSection); - - return true; -} - -template -void -CSimpleIniTempl::DeleteString( - const SI_CHAR * a_pString - ) -{ - // strings may exist either inside the data block, or they will be - // individually allocated and stored in m_strings. We only physically - // delete those stored in m_strings. - if (a_pString < m_pData || a_pString >= m_pData + m_uDataLen) { - typename TNamesDepend::iterator i = m_strings.begin(); - for (;i != m_strings.end(); ++i) { - if (a_pString == i->pItem) { - delete[] const_cast(i->pItem); - m_strings.erase(i); - break; - } - } - } -} - -// --------------------------------------------------------------------------- -// CONVERSION FUNCTIONS -// --------------------------------------------------------------------------- - -// Defines the conversion classes for different libraries. Before including -// SimpleIni.h, set the converter that you wish you use by defining one of the -// following symbols. -// -// SI_NO_CONVERSION Do not make the "W" wide character version of the -// library available. Only CSimpleIniA etc is defined. -// SI_CONVERT_GENERIC Use the Unicode reference conversion library in -// the accompanying files ConvertUTF.h/c -// SI_CONVERT_ICU Use the IBM ICU conversion library. Requires -// ICU headers on include path and icuuc.lib -// SI_CONVERT_WIN32 Use the Win32 API functions for conversion. - -#if !defined(SI_NO_CONVERSION) && !defined(SI_CONVERT_GENERIC) && !defined(SI_CONVERT_WIN32) && !defined(SI_CONVERT_ICU) -# ifdef _WIN32 -# define SI_CONVERT_WIN32 -# else -# define SI_CONVERT_GENERIC -# endif -#endif - -/** - * Generic case-sensitive less than comparison. This class returns numerically - * ordered ASCII case-sensitive text for all possible sizes and types of - * SI_CHAR. - */ -template -struct SI_GenericCase { - bool operator()(const SI_CHAR * pLeft, const SI_CHAR * pRight) const { - long cmp; - for ( ;*pLeft && *pRight; ++pLeft, ++pRight) { - cmp = (long) *pLeft - (long) *pRight; - if (cmp != 0) { - return cmp < 0; - } - } - return *pRight != 0; - } -}; - -/** - * Generic ASCII case-insensitive less than comparison. This class returns - * numerically ordered ASCII case-insensitive text for all possible sizes - * and types of SI_CHAR. It is not safe for MBCS text comparison where - * ASCII A-Z characters are used in the encoding of multi-byte characters. - */ -template -struct SI_GenericNoCase { - inline SI_CHAR locase(SI_CHAR ch) const { - return (ch < 'A' || ch > 'Z') ? ch : (ch - 'A' + 'a'); - } - bool operator()(const SI_CHAR * pLeft, const SI_CHAR * pRight) const { - long cmp; - for ( ;*pLeft && *pRight; ++pLeft, ++pRight) { - cmp = (long) locase(*pLeft) - (long) locase(*pRight); - if (cmp != 0) { - return cmp < 0; - } - } - return *pRight != 0; - } -}; - -/** - * Null conversion class for MBCS/UTF-8 to char (or equivalent). - */ -template -class SI_ConvertA { - bool m_bStoreIsUtf8; -protected: - SI_ConvertA() { } -public: - SI_ConvertA(bool a_bStoreIsUtf8) : m_bStoreIsUtf8(a_bStoreIsUtf8) { } - - /* copy and assignment */ - SI_ConvertA(const SI_ConvertA & rhs) { operator=(rhs); } - SI_ConvertA & operator=(const SI_ConvertA & rhs) { - m_bStoreIsUtf8 = rhs.m_bStoreIsUtf8; - return *this; - } - - /** Calculate the number of SI_CHAR required for converting the input - * from the storage format. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @return Number of SI_CHAR required by the string when - * converted. If there are embedded NULL bytes in the - * input data, only the string up and not including - * the NULL byte will be converted. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeFromStore( - const char * a_pInputData, - size_t a_uInputDataLen) - { - (void)a_pInputData; - SI_ASSERT(a_uInputDataLen != (size_t) -1); - - // ASCII/MBCS/UTF-8 needs no conversion - return a_uInputDataLen; - } - - /** Convert the input string from the storage format to SI_CHAR. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @param a_pOutputData Pointer to the output buffer to received the - * converted data. - * @param a_uOutputDataSize Size of the output buffer in SI_CHAR. - * @return true if all of the input data was successfully - * converted. - */ - bool ConvertFromStore( - const char * a_pInputData, - size_t a_uInputDataLen, - SI_CHAR * a_pOutputData, - size_t a_uOutputDataSize) - { - // ASCII/MBCS/UTF-8 needs no conversion - if (a_uInputDataLen > a_uOutputDataSize) { - return false; - } - memcpy(a_pOutputData, a_pInputData, a_uInputDataLen); - return true; - } - - /** Calculate the number of char required by the storage format of this - * data. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated string to calculate the number of - * bytes required to be converted to storage format. - * @return Number of bytes required by the string when - * converted to storage format. This size always - * includes space for the terminating NULL character. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeToStore( - const SI_CHAR * a_pInputData) - { - // ASCII/MBCS/UTF-8 needs no conversion - return strlen((const char *)a_pInputData) + 1; - } - - /** Convert the input string to the storage format of this data. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated source string to convert. All of - * the data will be converted including the - * terminating NULL character. - * @param a_pOutputData Pointer to the buffer to receive the converted - * string. - * @param a_uOutputDataSize Size of the output buffer in char. - * @return true if all of the input data, including the - * terminating NULL character was successfully - * converted. - */ - bool ConvertToStore( - const SI_CHAR * a_pInputData, - char * a_pOutputData, - size_t a_uOutputDataSize) - { - // calc input string length (SI_CHAR type and size independent) - size_t uInputLen = strlen((const char *)a_pInputData) + 1; - if (uInputLen > a_uOutputDataSize) { - return false; - } - - // ascii/UTF-8 needs no conversion - memcpy(a_pOutputData, a_pInputData, uInputLen); - return true; - } -}; - - -// --------------------------------------------------------------------------- -// SI_CONVERT_GENERIC -// --------------------------------------------------------------------------- -#ifdef SI_CONVERT_GENERIC - -#define SI_Case SI_GenericCase -#define SI_NoCase SI_GenericNoCase - -#include -#include "ConvertUTF.h" - -/** - * Converts UTF-8 to a wchar_t (or equivalent) using the Unicode reference - * library functions. This can be used on all platforms. - */ -template -class SI_ConvertW { - bool m_bStoreIsUtf8; -protected: - SI_ConvertW() { } -public: - SI_ConvertW(bool a_bStoreIsUtf8) : m_bStoreIsUtf8(a_bStoreIsUtf8) { } - - /* copy and assignment */ - SI_ConvertW(const SI_ConvertW & rhs) { operator=(rhs); } - SI_ConvertW & operator=(const SI_ConvertW & rhs) { - m_bStoreIsUtf8 = rhs.m_bStoreIsUtf8; - return *this; - } - - /** Calculate the number of SI_CHAR required for converting the input - * from the storage format. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @return Number of SI_CHAR required by the string when - * converted. If there are embedded NULL bytes in the - * input data, only the string up and not including - * the NULL byte will be converted. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeFromStore( - const char * a_pInputData, - size_t a_uInputDataLen) - { - SI_ASSERT(a_uInputDataLen != (size_t) -1); - - if (m_bStoreIsUtf8) { - // worst case scenario for UTF-8 to wchar_t is 1 char -> 1 wchar_t - // so we just return the same number of characters required as for - // the source text. - return a_uInputDataLen; - } - -#if defined(SI_NO_MBSTOWCS_NULL) || (!defined(_MSC_VER) && !defined(_linux)) - // fall back processing for platforms that don't support a NULL dest to mbstowcs - // worst case scenario is 1:1, this will be a sufficient buffer size - (void)a_pInputData; - return a_uInputDataLen; -#else - // get the actual required buffer size - return mbstowcs(NULL, a_pInputData, a_uInputDataLen); -#endif - } - - /** Convert the input string from the storage format to SI_CHAR. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @param a_pOutputData Pointer to the output buffer to received the - * converted data. - * @param a_uOutputDataSize Size of the output buffer in SI_CHAR. - * @return true if all of the input data was successfully - * converted. - */ - bool ConvertFromStore( - const char * a_pInputData, - size_t a_uInputDataLen, - SI_CHAR * a_pOutputData, - size_t a_uOutputDataSize) - { - if (m_bStoreIsUtf8) { - // This uses the Unicode reference implementation to do the - // conversion from UTF-8 to wchar_t. The required files are - // ConvertUTF.h and ConvertUTF.c which should be included in - // the distribution but are publically available from unicode.org - // at http://www.unicode.org/Public/PROGRAMS/CVTUTF/ - ConversionResult retval; - const UTF8 * pUtf8 = (const UTF8 *) a_pInputData; - if (sizeof(wchar_t) == sizeof(UTF32)) { - UTF32 * pUtf32 = (UTF32 *) a_pOutputData; - retval = ConvertUTF8toUTF32( - &pUtf8, pUtf8 + a_uInputDataLen, - &pUtf32, pUtf32 + a_uOutputDataSize, - lenientConversion); - } - else if (sizeof(wchar_t) == sizeof(UTF16)) { - UTF16 * pUtf16 = (UTF16 *) a_pOutputData; - retval = ConvertUTF8toUTF16( - &pUtf8, pUtf8 + a_uInputDataLen, - &pUtf16, pUtf16 + a_uOutputDataSize, - lenientConversion); - } - return retval == conversionOK; - } - - // convert to wchar_t - size_t retval = mbstowcs(a_pOutputData, - a_pInputData, a_uOutputDataSize); - return retval != (size_t)(-1); - } - - /** Calculate the number of char required by the storage format of this - * data. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated string to calculate the number of - * bytes required to be converted to storage format. - * @return Number of bytes required by the string when - * converted to storage format. This size always - * includes space for the terminating NULL character. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeToStore( - const SI_CHAR * a_pInputData) - { - if (m_bStoreIsUtf8) { - // worst case scenario for wchar_t to UTF-8 is 1 wchar_t -> 6 char - size_t uLen = 0; - while (a_pInputData[uLen]) { - ++uLen; - } - return (6 * uLen) + 1; - } - else { - size_t uLen = wcstombs(NULL, a_pInputData, 0); - if (uLen == (size_t)(-1)) { - return uLen; - } - return uLen + 1; // include NULL terminator - } - } - - /** Convert the input string to the storage format of this data. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated source string to convert. All of - * the data will be converted including the - * terminating NULL character. - * @param a_pOutputData Pointer to the buffer to receive the converted - * string. - * @param a_uOutputDataSize Size of the output buffer in char. - * @return true if all of the input data, including the - * terminating NULL character was successfully - * converted. - */ - bool ConvertToStore( - const SI_CHAR * a_pInputData, - char * a_pOutputData, - size_t a_uOutputDataSize - ) - { - if (m_bStoreIsUtf8) { - // calc input string length (SI_CHAR type and size independent) - size_t uInputLen = 0; - while (a_pInputData[uInputLen]) { - ++uInputLen; - } - ++uInputLen; // include the NULL char - - // This uses the Unicode reference implementation to do the - // conversion from wchar_t to UTF-8. The required files are - // ConvertUTF.h and ConvertUTF.c which should be included in - // the distribution but are publically available from unicode.org - // at http://www.unicode.org/Public/PROGRAMS/CVTUTF/ - ConversionResult retval; - UTF8 * pUtf8 = (UTF8 *) a_pOutputData; - if (sizeof(wchar_t) == sizeof(UTF32)) { - const UTF32 * pUtf32 = (const UTF32 *) a_pInputData; - retval = ConvertUTF32toUTF8( - &pUtf32, pUtf32 + uInputLen, - &pUtf8, pUtf8 + a_uOutputDataSize, - lenientConversion); - } - else if (sizeof(wchar_t) == sizeof(UTF16)) { - const UTF16 * pUtf16 = (const UTF16 *) a_pInputData; - retval = ConvertUTF16toUTF8( - &pUtf16, pUtf16 + uInputLen, - &pUtf8, pUtf8 + a_uOutputDataSize, - lenientConversion); - } - return retval == conversionOK; - } - else { - size_t retval = wcstombs(a_pOutputData, - a_pInputData, a_uOutputDataSize); - return retval != (size_t) -1; - } - } -}; - -#endif // SI_CONVERT_GENERIC - - -// --------------------------------------------------------------------------- -// SI_CONVERT_ICU -// --------------------------------------------------------------------------- -#ifdef SI_CONVERT_ICU - -#define SI_Case SI_GenericCase -#define SI_NoCase SI_GenericNoCase - -#include - -/** - * Converts MBCS/UTF-8 to UChar using ICU. This can be used on all platforms. - */ -template -class SI_ConvertW { - const char * m_pEncoding; - UConverter * m_pConverter; -protected: - SI_ConvertW() : m_pEncoding(NULL), m_pConverter(NULL) { } -public: - SI_ConvertW(bool a_bStoreIsUtf8) : m_pConverter(NULL) { - m_pEncoding = a_bStoreIsUtf8 ? "UTF-8" : NULL; - } - - /* copy and assignment */ - SI_ConvertW(const SI_ConvertW & rhs) { operator=(rhs); } - SI_ConvertW & operator=(const SI_ConvertW & rhs) { - m_pEncoding = rhs.m_pEncoding; - m_pConverter = NULL; - return *this; - } - ~SI_ConvertW() { if (m_pConverter) ucnv_close(m_pConverter); } - - /** Calculate the number of UChar required for converting the input - * from the storage format. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to UChar. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @return Number of UChar required by the string when - * converted. If there are embedded NULL bytes in the - * input data, only the string up and not including - * the NULL byte will be converted. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeFromStore( - const char * a_pInputData, - size_t a_uInputDataLen) - { - SI_ASSERT(a_uInputDataLen != (size_t) -1); - - UErrorCode nError; - - if (!m_pConverter) { - nError = U_ZERO_ERROR; - m_pConverter = ucnv_open(m_pEncoding, &nError); - if (U_FAILURE(nError)) { - return (size_t) -1; - } - } - - nError = U_ZERO_ERROR; - int32_t nLen = ucnv_toUChars(m_pConverter, NULL, 0, - a_pInputData, (int32_t) a_uInputDataLen, &nError); - if (U_FAILURE(nError) && nError != U_BUFFER_OVERFLOW_ERROR) { - return (size_t) -1; - } - - return (size_t) nLen; - } - - /** Convert the input string from the storage format to UChar. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to UChar. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @param a_pOutputData Pointer to the output buffer to received the - * converted data. - * @param a_uOutputDataSize Size of the output buffer in UChar. - * @return true if all of the input data was successfully - * converted. - */ - bool ConvertFromStore( - const char * a_pInputData, - size_t a_uInputDataLen, - UChar * a_pOutputData, - size_t a_uOutputDataSize) - { - UErrorCode nError; - - if (!m_pConverter) { - nError = U_ZERO_ERROR; - m_pConverter = ucnv_open(m_pEncoding, &nError); - if (U_FAILURE(nError)) { - return false; - } - } - - nError = U_ZERO_ERROR; - ucnv_toUChars(m_pConverter, - a_pOutputData, (int32_t) a_uOutputDataSize, - a_pInputData, (int32_t) a_uInputDataLen, &nError); - if (U_FAILURE(nError)) { - return false; - } - - return true; - } - - /** Calculate the number of char required by the storage format of this - * data. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated string to calculate the number of - * bytes required to be converted to storage format. - * @return Number of bytes required by the string when - * converted to storage format. This size always - * includes space for the terminating NULL character. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeToStore( - const UChar * a_pInputData) - { - UErrorCode nError; - - if (!m_pConverter) { - nError = U_ZERO_ERROR; - m_pConverter = ucnv_open(m_pEncoding, &nError); - if (U_FAILURE(nError)) { - return (size_t) -1; - } - } - - nError = U_ZERO_ERROR; - int32_t nLen = ucnv_fromUChars(m_pConverter, NULL, 0, - a_pInputData, -1, &nError); - if (U_FAILURE(nError) && nError != U_BUFFER_OVERFLOW_ERROR) { - return (size_t) -1; - } - - return (size_t) nLen + 1; - } - - /** Convert the input string to the storage format of this data. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated source string to convert. All of - * the data will be converted including the - * terminating NULL character. - * @param a_pOutputData Pointer to the buffer to receive the converted - * string. - * @param a_pOutputDataSize Size of the output buffer in char. - * @return true if all of the input data, including the - * terminating NULL character was successfully - * converted. - */ - bool ConvertToStore( - const UChar * a_pInputData, - char * a_pOutputData, - size_t a_uOutputDataSize) - { - UErrorCode nError; - - if (!m_pConverter) { - nError = U_ZERO_ERROR; - m_pConverter = ucnv_open(m_pEncoding, &nError); - if (U_FAILURE(nError)) { - return false; - } - } - - nError = U_ZERO_ERROR; - ucnv_fromUChars(m_pConverter, - a_pOutputData, (int32_t) a_uOutputDataSize, - a_pInputData, -1, &nError); - if (U_FAILURE(nError)) { - return false; - } - - return true; - } -}; - -#endif // SI_CONVERT_ICU - - -// --------------------------------------------------------------------------- -// SI_CONVERT_WIN32 -// --------------------------------------------------------------------------- -#ifdef SI_CONVERT_WIN32 - -#define SI_Case SI_GenericCase - -// Windows CE doesn't have errno or MBCS libraries -#ifdef _WIN32_WCE -# ifndef SI_NO_MBCS -# define SI_NO_MBCS -# endif -#endif - -#include -#ifdef SI_NO_MBCS -# define SI_NoCase SI_GenericNoCase -#else // !SI_NO_MBCS -/** - * Case-insensitive comparison class using Win32 MBCS functions. This class - * returns a case-insensitive semi-collation order for MBCS text. It may not - * be safe for UTF-8 text returned in char format as we don't know what - * characters will be folded by the function! Therefore, if you are using - * SI_CHAR == char and SetUnicode(true), then you need to use the generic - * SI_NoCase class instead. - */ -#include -template -struct SI_NoCase { - bool operator()(const SI_CHAR * pLeft, const SI_CHAR * pRight) const { - if (sizeof(SI_CHAR) == sizeof(char)) { - return _mbsicmp((const unsigned char *)pLeft, - (const unsigned char *)pRight) < 0; - } - if (sizeof(SI_CHAR) == sizeof(wchar_t)) { - return _wcsicmp((const wchar_t *)pLeft, - (const wchar_t *)pRight) < 0; - } - return SI_GenericNoCase()(pLeft, pRight); - } -}; -#endif // SI_NO_MBCS - -/** - * Converts MBCS and UTF-8 to a wchar_t (or equivalent) on Windows. This uses - * only the Win32 functions and doesn't require the external Unicode UTF-8 - * conversion library. It will not work on Windows 95 without using Microsoft - * Layer for Unicode in your application. - */ -template -class SI_ConvertW { - UINT m_uCodePage; -protected: - SI_ConvertW() { } -public: - SI_ConvertW(bool a_bStoreIsUtf8) { - m_uCodePage = a_bStoreIsUtf8 ? CP_UTF8 : CP_ACP; - } - - /* copy and assignment */ - SI_ConvertW(const SI_ConvertW & rhs) { operator=(rhs); } - SI_ConvertW & operator=(const SI_ConvertW & rhs) { - m_uCodePage = rhs.m_uCodePage; - return *this; - } - - /** Calculate the number of SI_CHAR required for converting the input - * from the storage format. The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @return Number of SI_CHAR required by the string when - * converted. If there are embedded NULL bytes in the - * input data, only the string up and not including - * the NULL byte will be converted. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeFromStore( - const char * a_pInputData, - size_t a_uInputDataLen) - { - SI_ASSERT(a_uInputDataLen != (size_t) -1); - - int retval = MultiByteToWideChar( - m_uCodePage, 0, - a_pInputData, (int) a_uInputDataLen, - 0, 0); - return (size_t)(retval > 0 ? retval : -1); - } - - /** Convert the input string from the storage format to SI_CHAR. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData Data in storage format to be converted to SI_CHAR. - * @param a_uInputDataLen Length of storage format data in bytes. This - * must be the actual length of the data, including - * NULL byte if NULL terminated string is required. - * @param a_pOutputData Pointer to the output buffer to received the - * converted data. - * @param a_uOutputDataSize Size of the output buffer in SI_CHAR. - * @return true if all of the input data was successfully - * converted. - */ - bool ConvertFromStore( - const char * a_pInputData, - size_t a_uInputDataLen, - SI_CHAR * a_pOutputData, - size_t a_uOutputDataSize) - { - int nSize = MultiByteToWideChar( - m_uCodePage, 0, - a_pInputData, (int) a_uInputDataLen, - (wchar_t *) a_pOutputData, (int) a_uOutputDataSize); - return (nSize > 0); - } - - /** Calculate the number of char required by the storage format of this - * data. The storage format is always UTF-8. - * - * @param a_pInputData NULL terminated string to calculate the number of - * bytes required to be converted to storage format. - * @return Number of bytes required by the string when - * converted to storage format. This size always - * includes space for the terminating NULL character. - * @return -1 cast to size_t on a conversion error. - */ - size_t SizeToStore( - const SI_CHAR * a_pInputData) - { - int retval = WideCharToMultiByte( - m_uCodePage, 0, - (const wchar_t *) a_pInputData, -1, - 0, 0, 0, 0); - return (size_t) (retval > 0 ? retval : -1); - } - - /** Convert the input string to the storage format of this data. - * The storage format is always UTF-8 or MBCS. - * - * @param a_pInputData NULL terminated source string to convert. All of - * the data will be converted including the - * terminating NULL character. - * @param a_pOutputData Pointer to the buffer to receive the converted - * string. - * @param a_pOutputDataSize Size of the output buffer in char. - * @return true if all of the input data, including the - * terminating NULL character was successfully - * converted. - */ - bool ConvertToStore( - const SI_CHAR * a_pInputData, - char * a_pOutputData, - size_t a_uOutputDataSize) - { - int retval = WideCharToMultiByte( - m_uCodePage, 0, - (const wchar_t *) a_pInputData, -1, - a_pOutputData, (int) a_uOutputDataSize, 0, 0); - return retval > 0; - } -}; - -#endif // SI_CONVERT_WIN32 - - - -// --------------------------------------------------------------------------- -// SI_NO_CONVERSION -// --------------------------------------------------------------------------- -#ifdef SI_NO_CONVERSION - -#define SI_Case SI_GenericCase -#define SI_NoCase SI_GenericNoCase - -#endif // SI_NO_CONVERSION - - - -// --------------------------------------------------------------------------- -// TYPE DEFINITIONS -// --------------------------------------------------------------------------- - -typedef CSimpleIniTempl,SI_ConvertA > CSimpleIniA; -typedef CSimpleIniTempl,SI_ConvertA > CSimpleIniCaseA; - -#if defined(SI_NO_CONVERSION) -// if there is no wide char conversion then we don't need to define the -// widechar "W" versions of CSimpleIni -# define CSimpleIni CSimpleIniA -# define CSimpleIniCase CSimpleIniCaseA -# define SI_NEWLINE SI_NEWLINE_A -#else -# if defined(SI_CONVERT_ICU) -typedef CSimpleIniTempl,SI_ConvertW > CSimpleIniW; -typedef CSimpleIniTempl,SI_ConvertW > CSimpleIniCaseW; -# else -typedef CSimpleIniTempl,SI_ConvertW > CSimpleIniW; -typedef CSimpleIniTempl,SI_ConvertW > CSimpleIniCaseW; -# endif - -# ifdef _UNICODE -# define CSimpleIni CSimpleIniW -# define CSimpleIniCase CSimpleIniCaseW -# define SI_NEWLINE SI_NEWLINE_W -# else // !_UNICODE -# define CSimpleIni CSimpleIniA -# define CSimpleIniCase CSimpleIniCaseA -# define SI_NEWLINE SI_NEWLINE_A -# endif // _UNICODE -#endif - -#ifdef _MSC_VER -# pragma warning (pop) -#endif - -#endif // INCLUDED_SimpleIni_h - diff --git a/injector/injector.vcxproj b/injector/injector.vcxproj index 7cabb49..09882c9 100644 --- a/injector/injector.vcxproj +++ b/injector/injector.vcxproj @@ -1,18 +1,14 @@ - - Debug - Win32 - - - Release - Win32 - Debug x64 + + Release_WS + x64 + Release x64 @@ -24,14 +20,12 @@ - - - {704c8746-1bd9-4bc8-9ebe-8187f1a1ad72} - false + + {adb35022-823b-4dc0-b495-3efefbd3a82f} @@ -43,19 +37,6 @@ injector - - Application - true - v143 - MultiByte - - - Application - false - v143 - true - MultiByte - Application true @@ -69,88 +50,43 @@ true MultiByte + + Application + false + v143 + true + MultiByte + - - - - - - + + + - - false - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\ - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\obj\ - - - false - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\ - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\obj\ - false - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\ - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\obj\ + $(SolutionDir)bin\$(Configuration)\ + $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ false - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\ - $(ProjectDir)bin\$(PlatformShortName)\$(Configuration)\obj\ + $(SolutionDir)bin\$(Configuration)\ + $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ + + + false + $(SolutionDir)bin\$(Configuration)\ + $(SolutionDir)bin\$(Configuration)\obj\$(ProjectName)\ - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - stdcpp17 - $(ProjectDir)include/ - - - Console - true - RequireAdministrator - false - - - - - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - stdcpp17 - $(ProjectDir)include/ - - - Console - true - true - true - RequireAdministrator - false - - - - - - Level3 @@ -162,7 +98,7 @@ false ProgramDatabase false - $(ProjectDir)include/ + $(ProjectDir)include/;$(SolutionDir)cheat-base/src;$(SolutionDir)cheat-base/vendor/simpleIni/ Console @@ -170,6 +106,8 @@ RequireAdministrator + $(OutDir);%(AdditionalLibraryDirectories) + cheat-base.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) @@ -189,7 +127,7 @@ NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true stdcpp17 - $(ProjectDir)include/ + $(ProjectDir)include/;$(SolutionDir)cheat-base/src;$(SolutionDir)cheat-base/vendor/simpleIni/ Console @@ -198,6 +136,34 @@ true RequireAdministrator false + $(OutDir);%(AdditionalLibraryDirectories) + cheat-base.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp17 + $(ProjectDir)include/;$(SolutionDir)cheat-base/src;$(SolutionDir)cheat-base/vendor/simpleIni/ + + + Console + true + true + true + RequireAdministrator + false + $(OutDir);%(AdditionalLibraryDirectories) + cheat-base.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) diff --git a/injector/injector.vcxproj.filters b/injector/injector.vcxproj.filters index 21d8cc8..3894479 100644 --- a/injector/injector.vcxproj.filters +++ b/injector/injector.vcxproj.filters @@ -13,6 +13,9 @@ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + {877f240b-91bb-46cf-8770-6df8379fa27a} + @@ -32,8 +35,5 @@ Header Files - - Header Files - \ No newline at end of file diff --git a/injector/src/injector.cpp b/injector/src/injector.cpp index 5e6c178..e3dcb0c 100644 --- a/injector/src/injector.cpp +++ b/injector/src/injector.cpp @@ -5,7 +5,7 @@ #define IPrintError(text, ...) #else #define ILog(text, ...) printf(text, __VA_ARGS__) -#define ILogError(text, ...) ILog(text, __VA_ARGS__); std::cout << "Error: " << GetLastErrorAsString() << std::endl +#define ILogError(text, ...) ILog(text, __VA_ARGS__); std::cout << "Error: " << util::GetLastErrorAsString() << std::endl #endif #ifdef _WIN64 @@ -14,11 +14,12 @@ #define CURRENT_ARCH IMAGE_FILE_MACHINE_I386 #endif -bool InjectDLL(HANDLE hProc, const std::string& filepath) { - -#ifndef _DEBUG // _DEBUG +bool InjectDLL(HANDLE hProc, const std::string& filepath) +{ +#ifndef MANUAL_MAP // Using LoadLibrary inject to be able to debug DLL in attached process. // NOTE. For debug also needs disable mhyprot protection. (See protection-bypass.h in cheat-library) + // NOTE 2. Also need find way to disable antidebug. bool result = LoadLibraryInject(hProc, filepath); #else std::ifstream file(filepath, std::ios::in | std::ios::binary | std::ios::ate); @@ -45,7 +46,7 @@ bool InjectDLL(HANDLE hProc, const std::string& filepath) { return result; } -#ifdef _DEBUG +#ifndef MANUAL_MAP static bool LoadLibraryInject(HANDLE hProc, const std::string& dllpath) { HMODULE hKernel = GetModuleHandle("kernel32.dll"); @@ -85,11 +86,11 @@ static bool LoadLibraryInject(HANDLE hProc, const std::string& dllpath) // TODO: Add waiting for thread end and release unneccessary data. // VirtualFreeEx(hProc, pDLLPath, 0, MEM_RELEASE); - ILogError("[DLL Injection] Successfully LoadLibraryA injection.\n"); + ILog("[DLL Injection] Successfully LoadLibraryA injection.\n"); return true; } -#endif // _DEBUG +#else bool ManualMapDll(HANDLE hProc, BYTE* pSrcData, SIZE_T FileSize, bool ClearHeader, bool ClearNonNeededSections, bool AdjustProtections, bool SEHExceptionSupport, DWORD fdwReason) { IMAGE_NT_HEADERS* pOldNtHeader = nullptr; @@ -409,4 +410,5 @@ void __stdcall Shellcode(MANUAL_MAPPING_DATA* pData) { pData->hMod = reinterpret_cast(0x505050); else pData->hMod = reinterpret_cast(pBase); -} \ No newline at end of file +} +#endif // MANUAL_MAP \ No newline at end of file diff --git a/injector/src/injector.h b/injector/src/injector.h index 1d3af97..e83bddf 100644 --- a/injector/src/injector.h +++ b/injector/src/injector.h @@ -39,10 +39,10 @@ struct MANUAL_MAPPING_DATA bool InjectDLL(HANDLE hProc, const std::string& filepath); -#ifdef _DEBUG -static bool LoadLibraryInject(HANDLE hProc, const std::string& dllpath); -#endif - +#ifdef MANUAL_MAP // Note: Exception support only x64 with build params /EHa or /EHc -bool ManualMapDll(HANDLE hProc, BYTE* pSrcData, SIZE_T FileSize, bool ClearHeader = false, bool ClearNonNeededSections = false, bool AdjustProtections = false, bool SEHExceptionSupport = false, DWORD fdwReason = DLL_PROCESS_ATTACH); -void __stdcall Shellcode(MANUAL_MAPPING_DATA* pData); \ No newline at end of file +bool ManualMapDll(HANDLE hProc, BYTE* pSrcData, SIZE_T FileSize, bool ClearHeader = false, bool ClearNonNeededSections = false, bool AdjustProtections = true, bool SEHExceptionSupport = false, DWORD fdwReason = DLL_PROCESS_ATTACH); +void __stdcall Shellcode(MANUAL_MAPPING_DATA* pData); +#else +static bool LoadLibraryInject(HANDLE hProc, const std::string& dllpath); +#endif \ No newline at end of file diff --git a/injector/src/main.cpp b/injector/src/main.cpp index 9e34f76..0d15841 100644 --- a/injector/src/main.cpp +++ b/injector/src/main.cpp @@ -3,23 +3,25 @@ #include #include +#include +#include + #include "injector.h" -#include "simple-ini.hpp" #include "util.h" const std::string GlobalGenshinProcName = "GenshinImpact.exe"; const std::string ChinaGenshinProcName = "YuanShen.exe"; -const char* INIFileName = "config.ini"; - static CSimpleIni ini; HANDLE OpenGenshinProcess(); int main(int argc, char* argv[]) { + Logger::SetLevel(Logger::Level::Debug, Logger::LoggerType::ConsoleLogger); + auto path = std::filesystem::path(argv[0]).parent_path(); - std::filesystem::current_path(path); + current_path(path); WaitForCloseProcess(GlobalGenshinProcName); WaitForCloseProcess(ChinaGenshinProcName); @@ -27,7 +29,7 @@ int main(int argc, char* argv[]) Sleep(1000); // Wait for unloading all dlls. ini.SetUnicode(); - ini.LoadFile(INIFileName); + ini.LoadFile("cfg.ini"); HANDLE hProcess = OpenGenshinProcess(); if (hProcess == NULL) @@ -36,54 +38,54 @@ int main(int argc, char* argv[]) return 1; } - ini.SaveFile(INIFileName); - - std::filesystem::current_path(path); + current_path(path); + ini.SaveFile("cfg.ini"); std::string filename = (argc == 2 ? argv[1] : "CLibrary.dll"); std::filesystem::path currentDllPath = std::filesystem::current_path() / filename; + +#ifdef _DEBUG std::filesystem::path tempDllPath = std::filesystem::temp_directory_path() / filename; - std::filesystem::copy(currentDllPath, tempDllPath, std::filesystem::copy_options::update_existing); + std::error_code ec; + std::filesystem::copy_file(currentDllPath, tempDllPath, std::filesystem::copy_options::update_existing, ec); + if (ec) + { + LOG_ERROR("Copy dll failed: %s", ec.message().c_str()); + std::system("pause"); + } + InjectDLL(hProcess, tempDllPath.string()); +#else + InjectDLL(hProcess, currentDllPath.string()); +#endif CloseHandle(hProcess); } -HANDLE OpenGenshinProcess() { +HANDLE OpenGenshinProcess() +{ STARTUPINFOA startInfo{}; PROCESS_INFORMATION processInformation{}; - auto savedPath = ini.GetValue("Inject", "GenshinPath"); - bool exePathNotExist = savedPath == nullptr; + auto filePath = util::GetOrSelectPath(ini, "Inject", "GenshinPath", "genshin path", "Executable\0GenshinImpact.exe;YuanShen.exe\0"); + auto commandline = ini.GetValue("Inject", "GenshinCommandLine"); - std::string* filePath = exePathNotExist ? nullptr : new std::string(savedPath); - if (exePathNotExist) { - std::cout << "Genshin path not found. Please point to it manually. ^)" << std::endl; - filePath = GetFilePathByUser(); - if (filePath == nullptr) { - std::cout << "Failed to get genshin path from user. Exiting..." << std::endl; - return NULL; - } - } + LPSTR lpstr = commandline == nullptr ? nullptr : const_cast(commandline); + + if (!filePath) + return NULL; BOOL result = CreateProcessA(filePath->c_str(), - nullptr, 0, 0, false, CREATE_SUSPENDED, nullptr, nullptr, &startInfo, &processInformation); - if (result == FALSE) { - std::cout << "Failed to create game process." << std::endl; - std::cout << "Error: " << GetLastErrorAsString() << std::endl; - std::cout << "If you have problem with GenshinImpact.exe path. You can change it manually in " << INIFileName << "." << std::endl; + lpstr, 0, 0, FALSE, CREATE_SUSPENDED, nullptr, nullptr, &startInfo, &processInformation); + if (result == FALSE) + { + LOG_LAST_ERROR("Failed to create game process."); + LOG_ERROR("If you have problem with GenshinImpact.exe path. You can change it manually in cfg.ini."); return NULL; } - if (exePathNotExist) { - ini.SetValue("Inject", "genshinPath", (*filePath).c_str()); - std::cout << "New GenshinImpact.exe path saved to " << INIFileName << "." << std::endl; - } - - delete filePath; - - std::cout << "Created game process." << std::endl; + ini.SaveFile("cfg.ini"); ResumeThread(processInformation.hThread); diff --git a/injector/src/util.cpp b/injector/src/util.cpp index 54f29c9..6a53929 100644 --- a/injector/src/util.cpp +++ b/injector/src/util.cpp @@ -4,59 +4,10 @@ #include #include +#include -//Returns the last Win32 error, in string format. Returns an empty string if there is no error. -std::string GetLastErrorAsString() +int FindProcessId(const std::string& processName) { - //Get the error message ID, if any. - DWORD errorMessageID = ::GetLastError(); - if (errorMessageID == 0) { - return std::string(); //No error message has been recorded - } - - LPSTR messageBuffer = nullptr; - - //Ask Win32 to give us the string version of that message ID. - //The parameters we pass in, tell Win32 to create the buffer that holds the message for us (because we don't yet know how long the message string will be). - size_t size = FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, errorMessageID, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&messageBuffer, 0, NULL); - - //Copy the error message into a std::string. - std::string message(messageBuffer, size); - - //Free the Win32's string's buffer. - LocalFree(messageBuffer); - - return message; -} - -std::string* GetFilePathByUser() { - - // common dialog box structure, setting all fields to 0 is important - OPENFILENAME ofn = { 0 }; - TCHAR szFile[260] = { 0 }; - - // Initialize remaining fields of OPENFILENAME structure - ofn.lStructSize = sizeof(ofn); - ofn.hwndOwner = NULL; - ofn.lpstrFile = szFile; - ofn.nMaxFile = sizeof(szFile); - ofn.lpstrFilter = "Executable\0*.exe\0"; - ofn.nFilterIndex = 1; - ofn.lpstrFileTitle = NULL; - ofn.nMaxFileTitle = 0; - ofn.lpstrInitialDir = NULL; - ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; - - if (GetOpenFileName(&ofn) == TRUE) - { - return new std::string(szFile); - } - - return nullptr; -} - -int FindProcessId(const std::string& processName) { int pid = -1; HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); @@ -81,7 +32,8 @@ int FindProcessId(const std::string& processName) { return pid; } -void WaitForCloseProcess(const std::string& processName) { +void WaitForCloseProcess(const std::string& processName) +{ int pid = FindProcessId(processName); if (pid == -1) return; diff --git a/injector/src/util.h b/injector/src/util.h index c2b9415..7d7eed8 100644 --- a/injector/src/util.h +++ b/injector/src/util.h @@ -1,9 +1,8 @@ +#pragma once #include #include -#pragma once -std::string GetLastErrorAsString(); -std::string* GetFilePathByUser(); +#include int FindProcessId(const std::string& processName); void WaitForCloseProcess(const std::string& processName); \ No newline at end of file