diff --git a/Editor/src/Windows/EditorInterface.cpp b/Editor/src/Windows/EditorInterface.cpp index 5f90ec3d..6ef80044 100644 --- a/Editor/src/Windows/EditorInterface.cpp +++ b/Editor/src/Windows/EditorInterface.cpp @@ -324,6 +324,21 @@ namespace Nuake { ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(2, 2)); ImGui::PushStyleColor(ImGuiCol_Button, IM_COL32(0, 0, 0, 0)); + if (ImGui::Button(ICON_FA_ARROWS_ALT, ImVec2(30, 30)) || Input::IsKeyDown(Key::W)) + { + CurrentOperation = ImGuizmo::OPERATION::TRANSLATE; + } + ImGui::SameLine(); + if (ImGui::Button(ICON_FA_SYNC_ALT, ImVec2(30, 30)) || Input::IsKeyDown(Key::E)) + { + CurrentOperation = ImGuizmo::OPERATION::ROTATE; + } + ImGui::SameLine(); + if (ImGui::Button(ICON_FA_EXPAND_ALT, ImVec2(30, 30)) || Input::IsKeyDown(Key::R)) + { + CurrentOperation = ImGuizmo::OPERATION::SCALE; + } + ImGui::SameLine(); ImGui::Dummy({ ImGui::GetContentRegionAvail().x / 2.0f - (76.0f / 2.0f), 8.0f }); ImGui::SameLine(); @@ -720,6 +735,40 @@ namespace Nuake { ImGui::PopStyleColor(); } + ImGui::TableNextColumn(); + { + // Title + ImGui::Text("Gamma"); + ImGui::TableNextColumn(); + + // Here we create a dropdown for every sky type. + ImGui::DragFloat("##gamma", &env->Gamma, 0.001f, 0.0f); + ImGui::TableNextColumn(); + + // Reset button + ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(1, 1, 1, 0)); + std::string ResetType = ICON_FA_UNDO + std::string("##ResetType"); + if (ImGui::Button(ResetType.c_str())) env->CurrentSkyType = SkyType::ProceduralSky; + ImGui::PopStyleColor(); + } + + ImGui::TableNextColumn(); + { + // Title + ImGui::Text("Exposure"); + ImGui::TableNextColumn(); + + // Here we create a dropdown for every sky type. + ImGui::DragFloat("##exposure", &env->Exposure, 0.001f, 0.0f); + ImGui::TableNextColumn(); + + // Reset button + ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(1, 1, 1, 0)); + std::string ResetType = ICON_FA_UNDO + std::string("##ResetType"); + if (ImGui::Button(ResetType.c_str())) env->CurrentSkyType = SkyType::ProceduralSky; + ImGui::PopStyleColor(); + } + if (env->CurrentSkyType == SkyType::ProceduralSky) { ImGui::TableNextColumn(); diff --git a/Editor/src/Windows/FileSystemUI.cpp b/Editor/src/Windows/FileSystemUI.cpp index 42e7e357..23bdfd1c 100644 --- a/Editor/src/Windows/FileSystemUI.cpp +++ b/Editor/src/Windows/FileSystemUI.cpp @@ -370,7 +370,7 @@ namespace Nuake ImGui::GetWindowDrawList()->AddRectFilled(prevScreenPos + ImVec2(0, 100) - startOffset, prevScreenPos + ImVec2(100, 150) + offsetEnd, rectColor, 1.0f); std::string visibleName = file->GetName(); const uint32_t MAX_CHAR_NAME = 35; - if (file->GetName().size() > MAX_CHAR_NAME) + if (file->GetName().size() >= MAX_CHAR_NAME) { visibleName = std::string(file->GetName().begin(), file->GetName().begin() + MAX_CHAR_NAME - 3) + "..."; } diff --git a/Nuake/Engine.cpp b/Nuake/Engine.cpp index eb52e563..06fa9691 100644 --- a/Nuake/Engine.cpp +++ b/Nuake/Engine.cpp @@ -103,7 +103,7 @@ namespace Nuake void Engine::ExitPlayMode() { // Dont trigger exit if already not in play mode. - if (s_GameState == GameState::Playing) + if (s_GameState != GameState::Stopped) { GetCurrentScene()->OnExit(); Input::ShowMouse(); diff --git a/Nuake/src/Resource/StaticResources.cpp b/Nuake/src/Resource/StaticResources.cpp index a419680b..f87e0d39 100644 --- a/Nuake/src/Resource/StaticResources.cpp +++ b/Nuake/src/Resource/StaticResources.cpp @@ -234317,303 +234317,302 @@ const std::string Resources_Shaders_deferred_shader_path = R"(Resources/Shaders/ 0x73, 0x73, 0x61, 0x6f, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x6d, 0x5f, 0x53, 0x53, 0x41, 0x4f, 0x2c, 0x20, 0x55, 0x56, 0x29, 0x2e, 0x72, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, - 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x20, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x76, 0x65, 0x20, 0x3d, - 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x6d, 0x5f, 0x45, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x76, 0x65, 0x2c, 0x20, 0x55, 0x56, 0x29, - 0x2e, 0x72, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x66, 0x20, 0x28, 0x75, 0x6e, 0x6c, 0x69, 0x74, 0x20, 0x3e, 0x20, 0x30, - 0x2e, 0x31, 0x66, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x72, 0x61, - 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, - 0x34, 0x28, 0x61, 0x6c, 0x62, 0x65, 0x64, 0x6f, 0x20, 0x2a, 0x20, 0x73, - 0x73, 0x61, 0x6f, 0x20, 0x2a, 0x20, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x76, 0x65, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x4e, 0x20, - 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x0d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x56, 0x20, 0x3d, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x75, 0x5f, - 0x45, 0x79, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x2d, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x29, 0x3b, - 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x52, - 0x20, 0x3d, 0x20, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x2d, - 0x56, 0x2c, 0x20, 0x4e, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x76, 0x65, 0x63, 0x33, 0x20, 0x46, 0x30, 0x20, 0x3d, 0x20, 0x76, 0x65, - 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x34, 0x29, 0x3b, 0x0d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x46, 0x30, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, - 0x46, 0x30, 0x2c, 0x20, 0x61, 0x6c, 0x62, 0x65, 0x64, 0x6f, 0x2c, 0x20, - 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x69, 0x63, 0x29, 0x3b, 0x0d, 0x0a, - 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x72, 0x65, 0x66, - 0x6c, 0x65, 0x63, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x65, 0x71, 0x75, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, - 0x65, 0x63, 0x33, 0x20, 0x65, 0x79, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x75, 0x5f, 0x45, 0x79, 0x65, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2d, 0x20, 0x77, 0x6f, 0x72, - 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x4c, 0x6f, 0x20, 0x3d, - 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x29, 0x3b, 0x0d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x66, 0x6f, - 0x67, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, - 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x30, - 0x2e, 0x30, 0x66, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x5f, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x67, - 0x68, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x3c, 0x20, - 0x30, 0x2e, 0x31, 0x66, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, - 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x68, - 0x61, 0x64, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x66, 0x3b, 0x0d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x74, 0x72, 0x75, 0x65, 0x29, 0x0d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x4c, 0x20, 0x3d, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x75, - 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x61, - 0x74, 0x74, 0x65, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, - 0x20, 0x31, 0x2e, 0x30, 0x66, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x20, 0x3d, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x75, 0x5f, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x67, - 0x68, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x66, 0x28, 0x75, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x2e, - 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x3e, 0x20, 0x30, 0x2e, 0x31, - 0x66, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x2b, 0x3d, - 0x20, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x43, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x77, 0x6f, 0x72, 0x6c, 0x64, - 0x50, 0x6f, 0x73, 0x2c, 0x20, 0x4e, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, - 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x75, - 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, - 0x2a, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x2a, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3b, 0x0d, - 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, - 0x65, 0x63, 0x33, 0x20, 0x48, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x56, 0x20, 0x2b, 0x20, 0x4c, 0x29, - 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x4e, 0x44, 0x46, 0x20, 0x3d, 0x20, 0x44, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, - 0x47, 0x58, 0x28, 0x4e, 0x2c, 0x20, 0x48, 0x2c, 0x20, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x6e, 0x65, 0x73, 0x73, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, + 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, + 0x75, 0x6e, 0x6c, 0x69, 0x74, 0x20, 0x3e, 0x20, 0x30, 0x2e, 0x31, 0x66, + 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, - 0x47, 0x20, 0x3d, 0x20, 0x47, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, - 0x53, 0x6d, 0x69, 0x74, 0x68, 0x28, 0x4e, 0x2c, 0x20, 0x56, 0x2c, 0x20, - 0x4c, 0x2c, 0x20, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x65, 0x73, 0x73, - 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x76, 0x65, 0x63, 0x33, 0x20, 0x46, 0x20, 0x3d, 0x20, 0x66, 0x72, 0x65, - 0x73, 0x6e, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x6c, 0x69, 0x63, 0x6b, 0x28, - 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x48, 0x2c, 0x20, 0x56, - 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x46, 0x30, 0x29, - 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, - 0x74, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x4e, 0x44, 0x46, 0x20, 0x2a, 0x20, - 0x47, 0x20, 0x2a, 0x20, 0x46, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x3d, 0x20, - 0x34, 0x20, 0x2a, 0x20, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, - 0x4e, 0x2c, 0x20, 0x56, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x20, - 0x2a, 0x20, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x4e, 0x2c, - 0x20, 0x4c, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x20, 0x2b, 0x20, - 0x30, 0x2e, 0x30, 0x30, 0x31, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x30, 0x2e, - 0x30, 0x30, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x20, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x20, 0x62, 0x79, - 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x73, 0x70, 0x65, - 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x2f, 0x20, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6b, - 0x53, 0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x46, 0x72, 0x65, 0x73, 0x6e, 0x65, 0x6c, 0x0d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, - 0x6b, 0x53, 0x20, 0x3d, 0x20, 0x46, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6b, 0x44, - 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x29, - 0x20, 0x2d, 0x20, 0x6b, 0x53, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x6b, 0x44, 0x20, 0x2a, 0x3d, 0x20, 0x31, 0x2e, - 0x30, 0x20, 0x2d, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x69, 0x63, - 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2f, 0x2f, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x64, 0x6f, 0x74, 0x4c, - 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x20, 0x4e, 0x64, 0x6f, 0x74, 0x4c, 0x20, 0x3d, 0x20, - 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x4e, 0x2c, 0x20, 0x4c, - 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x20, 0x2b, 0x3d, 0x20, - 0x28, 0x6b, 0x44, 0x20, 0x2a, 0x20, 0x61, 0x6c, 0x62, 0x65, 0x64, 0x6f, - 0x20, 0x2f, 0x20, 0x50, 0x49, 0x20, 0x2b, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x75, 0x6c, 0x61, 0x72, 0x29, 0x20, 0x2a, 0x20, 0x72, 0x61, 0x64, 0x69, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x2a, 0x20, 0x4e, 0x64, 0x6f, 0x74, 0x4c, - 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, - 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, - 0x4c, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3b, 0x20, - 0x69, 0x2b, 0x2b, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, - 0x33, 0x20, 0x4c, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x28, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x5b, 0x69, - 0x5d, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2d, - 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x29, 0x3b, 0x0d, - 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x20, 0x3d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x28, 0x4c, - 0x69, 0x67, 0x68, 0x74, 0x73, 0x5b, 0x69, 0x5d, 0x2e, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2d, 0x20, 0x77, 0x6f, 0x72, 0x6c, - 0x64, 0x50, 0x6f, 0x73, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x61, 0x74, - 0x74, 0x65, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, - 0x31, 0x2e, 0x30, 0x20, 0x2f, 0x20, 0x28, 0x64, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x2a, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x72, 0x61, 0x64, - 0x69, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x4c, 0x69, 0x67, 0x68, - 0x74, 0x73, 0x5b, 0x69, 0x5d, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, - 0x2a, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x43, 0x6f, 0x6f, 0x6b, 0x2d, 0x54, - 0x6f, 0x72, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x42, 0x52, 0x44, 0x46, - 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, - 0x63, 0x33, 0x20, 0x48, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x56, 0x20, 0x2b, 0x20, 0x4c, 0x29, 0x3b, - 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x20, 0x4e, 0x44, 0x46, 0x20, 0x3d, 0x20, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x47, - 0x58, 0x28, 0x4e, 0x2c, 0x20, 0x48, 0x2c, 0x20, 0x72, 0x6f, 0x75, 0x67, - 0x68, 0x6e, 0x65, 0x73, 0x73, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x47, - 0x20, 0x3d, 0x20, 0x47, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, - 0x6d, 0x69, 0x74, 0x68, 0x28, 0x4e, 0x2c, 0x20, 0x56, 0x2c, 0x20, 0x4c, - 0x2c, 0x20, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x65, 0x73, 0x73, 0x29, - 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, - 0x65, 0x63, 0x33, 0x20, 0x46, 0x20, 0x3d, 0x20, 0x66, 0x72, 0x65, 0x73, - 0x6e, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x6c, 0x69, 0x63, 0x6b, 0x28, 0x6d, - 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x48, 0x2c, 0x20, 0x56, 0x29, - 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x46, 0x30, 0x29, 0x3b, - 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x76, 0x65, 0x63, 0x33, 0x20, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x4e, 0x44, 0x46, 0x20, 0x2a, 0x20, 0x47, - 0x20, 0x2a, 0x20, 0x46, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x34, - 0x20, 0x2a, 0x20, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x4e, - 0x2c, 0x20, 0x56, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x20, 0x2a, - 0x20, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x4e, 0x2c, 0x20, - 0x4c, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x20, 0x2b, 0x20, 0x30, - 0x2e, 0x30, 0x30, 0x31, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x30, 0x2e, 0x30, - 0x30, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x20, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x20, 0x62, 0x79, 0x20, - 0x7a, 0x65, 0x72, 0x6f, 0x2e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x75, 0x6c, 0x61, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, - 0x61, 0x74, 0x6f, 0x72, 0x20, 0x2f, 0x20, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6b, 0x53, - 0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x46, 0x72, 0x65, 0x73, 0x6e, 0x65, 0x6c, 0x0d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6b, - 0x53, 0x20, 0x3d, 0x20, 0x46, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6b, 0x44, 0x20, - 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x29, 0x20, - 0x2d, 0x20, 0x6b, 0x53, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x6b, 0x44, 0x20, 0x2a, 0x3d, 0x20, 0x31, 0x2e, 0x30, - 0x20, 0x2d, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x69, 0x63, 0x3b, - 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2f, 0x2f, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x6c, 0x69, 0x67, - 0x68, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x64, 0x6f, 0x74, 0x4c, 0x0d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x20, 0x4e, 0x64, 0x6f, 0x74, 0x4c, 0x20, 0x3d, 0x20, 0x6d, - 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x4e, 0x2c, 0x20, 0x4c, 0x29, - 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x20, 0x2b, 0x3d, 0x20, 0x28, - 0x6b, 0x44, 0x20, 0x2a, 0x20, 0x61, 0x6c, 0x62, 0x65, 0x64, 0x6f, 0x20, - 0x2f, 0x20, 0x50, 0x49, 0x20, 0x2b, 0x20, 0x73, 0x70, 0x65, 0x63, 0x75, - 0x6c, 0x61, 0x72, 0x29, 0x20, 0x2a, 0x20, 0x72, 0x61, 0x64, 0x69, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x2a, 0x20, 0x4e, 0x64, 0x6f, 0x74, 0x4c, 0x3b, - 0x2f, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x77, 0x65, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x42, 0x52, 0x44, 0x46, 0x20, 0x62, 0x79, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, 0x73, 0x6e, 0x65, 0x6c, 0x20, 0x28, - 0x6b, 0x53, 0x29, 0x20, 0x73, 0x6f, 0x20, 0x77, 0x65, 0x20, 0x77, 0x6f, - 0x6e, 0x27, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, - 0x20, 0x62, 0x79, 0x20, 0x6b, 0x53, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, - 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x2f, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x65, - 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x28, 0x77, 0x65, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x75, 0x73, 0x65, 0x20, - 0x49, 0x42, 0x4c, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, - 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x29, - 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x46, - 0x20, 0x3d, 0x20, 0x66, 0x72, 0x65, 0x73, 0x6e, 0x65, 0x6c, 0x53, 0x63, - 0x68, 0x6c, 0x69, 0x63, 0x6b, 0x52, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x65, - 0x73, 0x73, 0x28, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x4e, - 0x2c, 0x20, 0x56, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x2c, 0x20, - 0x46, 0x30, 0x2c, 0x20, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x65, 0x73, - 0x73, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, - 0x65, 0x63, 0x33, 0x20, 0x6b, 0x53, 0x20, 0x3d, 0x20, 0x46, 0x3b, 0x0d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6b, 0x44, - 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x20, 0x2d, 0x20, 0x6b, 0x53, 0x3b, - 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6b, 0x44, 0x20, 0x2a, 0x3d, 0x20, - 0x31, 0x2e, 0x30, 0x20, 0x2d, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x6c, - 0x69, 0x63, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, - 0x65, 0x63, 0x33, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x20, - 0x3d, 0x20, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x35, 0x29, - 0x20, 0x2a, 0x20, 0x61, 0x6c, 0x62, 0x65, 0x64, 0x6f, 0x29, 0x20, 0x2a, - 0x20, 0x61, 0x6f, 0x20, 0x2a, 0x20, 0x73, 0x73, 0x61, 0x6f, 0x20, 0x2a, - 0x20, 0x75, 0x5f, 0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, - 0x72, 0x6d, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, - 0x33, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x28, 0x61, - 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x2b, 0x20, 0x4c, 0x6f, - 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, - 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x43, 0x53, 0x4d, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x74, 0x73, 0x2e, 0x2e, 0x0d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x2f, 0x2a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x64, 0x65, - 0x70, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x28, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x20, 0x2d, 0x20, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x76, 0x65, 0x20, 0x3d, 0x20, 0x74, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x6d, 0x5f, 0x45, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x76, 0x65, 0x2c, 0x20, 0x55, 0x56, 0x29, 0x2e, 0x72, + 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, + 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x76, + 0x65, 0x63, 0x34, 0x28, 0x61, 0x6c, 0x62, 0x65, 0x64, 0x6f, 0x20, 0x2a, + 0x20, 0x73, 0x73, 0x61, 0x6f, 0x20, 0x2a, 0x20, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x76, 0x65, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, + 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, + 0x4e, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x56, 0x20, + 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x75, 0x5f, 0x45, 0x79, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x20, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x47, - 0x65, 0x74, 0x43, 0x53, 0x4d, 0x44, 0x65, 0x70, 0x74, 0x68, 0x28, 0x64, - 0x65, 0x70, 0x74, 0x68, 0x2c, 0x20, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x73, - 0x5b, 0x30, 0x5d, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x66, 0x20, 0x28, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, 0x20, 0x3d, - 0x3d, 0x20, 0x30, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x2a, 0x3d, 0x20, 0x76, - 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x30, - 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x6e, 0x20, 0x2d, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x50, 0x6f, 0x73, + 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, + 0x20, 0x52, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, + 0x28, 0x2d, 0x56, 0x2c, 0x20, 0x4e, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x46, 0x30, 0x20, 0x3d, 0x20, + 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x34, 0x29, 0x3b, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x46, 0x30, 0x20, 0x3d, 0x20, 0x6d, 0x69, + 0x78, 0x28, 0x46, 0x30, 0x2c, 0x20, 0x61, 0x6c, 0x62, 0x65, 0x64, 0x6f, + 0x2c, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x69, 0x63, 0x29, 0x3b, + 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x72, + 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x65, 0x79, 0x65, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x75, 0x5f, 0x45, 0x79, 0x65, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2d, 0x20, 0x77, + 0x6f, 0x72, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x4c, 0x6f, + 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x29, + 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, + 0x66, 0x6f, 0x67, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, + 0x2e, 0x30, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x3d, + 0x20, 0x30, 0x2e, 0x30, 0x66, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x5f, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x67, 0x68, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, + 0x3c, 0x20, 0x30, 0x2e, 0x31, 0x66, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x66, + 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x74, 0x72, 0x75, 0x65, + 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x4c, + 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x28, 0x75, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x66, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x20, 0x3d, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x75, 0x5f, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x67, 0x68, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x28, 0x75, 0x5f, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, + 0x74, 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x3e, 0x20, 0x30, + 0x2e, 0x31, 0x66, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, + 0x2b, 0x3d, 0x20, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x43, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x77, 0x6f, 0x72, + 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x2c, 0x20, 0x4e, 0x29, 0x3b, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, + 0x33, 0x20, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x3d, + 0x20, 0x75, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x20, 0x2a, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x2a, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, + 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x48, 0x20, 0x3d, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x56, 0x20, 0x2b, 0x20, + 0x4c, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x4e, 0x44, 0x46, 0x20, 0x3d, + 0x20, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x47, 0x47, 0x58, 0x28, 0x4e, 0x2c, 0x20, 0x48, 0x2c, 0x20, 0x72, + 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x65, 0x73, 0x73, 0x29, 0x3b, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x20, 0x47, 0x20, 0x3d, 0x20, 0x47, 0x65, 0x6f, 0x6d, 0x65, 0x74, + 0x72, 0x79, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x28, 0x4e, 0x2c, 0x20, 0x56, + 0x2c, 0x20, 0x4c, 0x2c, 0x20, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x65, + 0x73, 0x73, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x46, 0x20, 0x3d, 0x20, 0x66, + 0x72, 0x65, 0x73, 0x6e, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x6c, 0x69, 0x63, + 0x6b, 0x28, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x48, 0x2c, + 0x20, 0x56, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x46, + 0x30, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6e, 0x6f, 0x6d, 0x69, + 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x4e, 0x44, 0x46, 0x20, + 0x2a, 0x20, 0x47, 0x20, 0x2a, 0x20, 0x46, 0x3b, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x20, + 0x3d, 0x20, 0x34, 0x20, 0x2a, 0x20, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, + 0x74, 0x28, 0x4e, 0x2c, 0x20, 0x56, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, + 0x29, 0x20, 0x2a, 0x20, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, + 0x4e, 0x2c, 0x20, 0x4c, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x20, + 0x2b, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x31, 0x3b, 0x20, 0x2f, 0x2f, 0x20, + 0x30, 0x2e, 0x30, 0x30, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x20, + 0x62, 0x79, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2e, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x73, + 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x6f, + 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x2f, 0x20, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x3b, 0x0d, 0x0a, + 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, + 0x20, 0x6b, 0x53, 0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x46, 0x72, 0x65, 0x73, 0x6e, 0x65, 0x6c, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, + 0x33, 0x20, 0x6b, 0x53, 0x20, 0x3d, 0x20, 0x46, 0x3b, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, + 0x6b, 0x44, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, + 0x30, 0x29, 0x20, 0x2d, 0x20, 0x6b, 0x53, 0x3b, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6b, 0x44, 0x20, 0x2a, 0x3d, 0x20, + 0x31, 0x2e, 0x30, 0x20, 0x2d, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x6c, + 0x69, 0x63, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, + 0x6c, 0x69, 0x67, 0x68, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x64, 0x6f, + 0x74, 0x4c, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x4e, 0x64, 0x6f, 0x74, 0x4c, 0x20, + 0x3d, 0x20, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x4e, 0x2c, + 0x20, 0x4c, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x3b, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x20, 0x2b, + 0x3d, 0x20, 0x28, 0x6b, 0x44, 0x20, 0x2a, 0x20, 0x61, 0x6c, 0x62, 0x65, + 0x64, 0x6f, 0x20, 0x2f, 0x20, 0x50, 0x49, 0x20, 0x2b, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x29, 0x20, 0x2a, 0x20, 0x72, 0x61, + 0x64, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x2a, 0x20, 0x4e, 0x64, 0x6f, + 0x74, 0x4c, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, + 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, + 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, + 0x3c, 0x20, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x3b, 0x20, 0x69, 0x2b, 0x2b, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x65, 0x63, 0x33, 0x20, 0x4c, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x5b, 0x69, 0x5d, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x2d, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x29, + 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x28, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x5b, 0x69, 0x5d, 0x2e, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2d, 0x20, 0x77, 0x6f, + 0x72, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x61, 0x74, 0x74, 0x65, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x20, 0x2f, 0x20, 0x28, 0x64, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x2a, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x72, + 0x61, 0x64, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x4c, 0x69, + 0x67, 0x68, 0x74, 0x73, 0x5b, 0x69, 0x5d, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x20, 0x2a, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x43, 0x6f, 0x6f, 0x6b, + 0x2d, 0x54, 0x6f, 0x72, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x42, 0x52, + 0x44, 0x46, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x76, 0x65, 0x63, 0x33, 0x20, 0x48, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x56, 0x20, 0x2b, 0x20, 0x4c, + 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x4e, 0x44, 0x46, 0x20, 0x3d, 0x20, + 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x47, 0x47, 0x58, 0x28, 0x4e, 0x2c, 0x20, 0x48, 0x2c, 0x20, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x6e, 0x65, 0x73, 0x73, 0x29, 0x3b, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x20, 0x47, 0x20, 0x3d, 0x20, 0x47, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, + 0x79, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x28, 0x4e, 0x2c, 0x20, 0x56, 0x2c, + 0x20, 0x4c, 0x2c, 0x20, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x65, 0x73, + 0x73, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x46, 0x20, 0x3d, 0x20, 0x66, 0x72, + 0x65, 0x73, 0x6e, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x6c, 0x69, 0x63, 0x6b, + 0x28, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x48, 0x2c, 0x20, + 0x56, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x46, 0x30, + 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x4e, 0x44, 0x46, 0x20, 0x2a, + 0x20, 0x47, 0x20, 0x2a, 0x20, 0x46, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x3d, + 0x20, 0x34, 0x20, 0x2a, 0x20, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, + 0x28, 0x4e, 0x2c, 0x20, 0x56, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, + 0x20, 0x2a, 0x20, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x4e, + 0x2c, 0x20, 0x4c, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x20, 0x2b, + 0x20, 0x30, 0x2e, 0x30, 0x30, 0x31, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x30, + 0x2e, 0x30, 0x30, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x20, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x20, 0x62, + 0x79, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2e, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x6d, + 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x2f, 0x20, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x3b, 0x0d, 0x0a, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, + 0x6b, 0x53, 0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x46, 0x72, 0x65, 0x73, 0x6e, 0x65, 0x6c, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, + 0x20, 0x6b, 0x53, 0x20, 0x3d, 0x20, 0x46, 0x3b, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6b, + 0x44, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, + 0x29, 0x20, 0x2d, 0x20, 0x6b, 0x53, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x6b, 0x44, 0x20, 0x2a, 0x3d, 0x20, 0x31, + 0x2e, 0x30, 0x20, 0x2d, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x69, + 0x63, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x6c, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x64, 0x6f, 0x74, + 0x4c, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x4e, 0x64, 0x6f, 0x74, 0x4c, 0x20, 0x3d, + 0x20, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, 0x28, 0x4e, 0x2c, 0x20, + 0x4c, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x3b, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x20, 0x2b, 0x3d, + 0x20, 0x28, 0x6b, 0x44, 0x20, 0x2a, 0x20, 0x61, 0x6c, 0x62, 0x65, 0x64, + 0x6f, 0x20, 0x2f, 0x20, 0x50, 0x49, 0x20, 0x2b, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x75, 0x6c, 0x61, 0x72, 0x29, 0x20, 0x2a, 0x20, 0x72, 0x61, 0x64, + 0x69, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x2a, 0x20, 0x4e, 0x64, 0x6f, 0x74, + 0x4c, 0x3b, 0x2f, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x65, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x77, 0x65, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x52, 0x44, 0x46, 0x20, 0x62, 0x79, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, 0x73, 0x6e, 0x65, 0x6c, + 0x20, 0x28, 0x6b, 0x53, 0x29, 0x20, 0x73, 0x6f, 0x20, 0x77, 0x65, 0x20, + 0x77, 0x6f, 0x6e, 0x27, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x79, 0x20, 0x62, 0x79, 0x20, 0x6b, 0x53, 0x20, 0x61, 0x67, 0x61, + 0x69, 0x6e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x2f, 0x20, 0x61, 0x6d, 0x62, + 0x69, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, + 0x67, 0x20, 0x28, 0x77, 0x65, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x49, 0x42, 0x4c, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x65, 0x72, + 0x6d, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, + 0x20, 0x46, 0x20, 0x3d, 0x20, 0x66, 0x72, 0x65, 0x73, 0x6e, 0x65, 0x6c, + 0x53, 0x63, 0x68, 0x6c, 0x69, 0x63, 0x6b, 0x52, 0x6f, 0x75, 0x67, 0x68, + 0x6e, 0x65, 0x73, 0x73, 0x28, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x6f, 0x74, + 0x28, 0x4e, 0x2c, 0x20, 0x56, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, + 0x2c, 0x20, 0x46, 0x30, 0x2c, 0x20, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6e, + 0x65, 0x73, 0x73, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6b, 0x53, 0x20, 0x3d, 0x20, 0x46, + 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, + 0x6b, 0x44, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x20, 0x2d, 0x20, 0x6b, + 0x53, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6b, 0x44, 0x20, 0x2a, + 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x20, 0x2d, 0x20, 0x6d, 0x65, 0x74, 0x61, + 0x6c, 0x6c, 0x69, 0x63, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, + 0x74, 0x20, 0x3d, 0x20, 0x28, 0x61, 0x6c, 0x62, 0x65, 0x64, 0x6f, 0x29, + 0x20, 0x2a, 0x20, 0x61, 0x6f, 0x20, 0x2a, 0x20, 0x73, 0x73, 0x61, 0x6f, + 0x20, 0x2a, 0x20, 0x75, 0x5f, 0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, + 0x54, 0x65, 0x72, 0x6d, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x65, 0x63, 0x33, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, + 0x28, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x2b, 0x20, + 0x4c, 0x6f, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, + 0x2f, 0x20, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x43, 0x53, + 0x4d, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x73, 0x2e, 0x2e, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, + 0x64, 0x65, 0x70, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x28, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x20, + 0x2d, 0x20, 0x75, 0x5f, 0x45, 0x79, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x20, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, 0x20, 0x3d, + 0x20, 0x47, 0x65, 0x74, 0x43, 0x53, 0x4d, 0x44, 0x65, 0x70, 0x74, 0x68, + 0x28, 0x64, 0x65, 0x70, 0x74, 0x68, 0x2c, 0x20, 0x4c, 0x69, 0x67, 0x68, + 0x74, 0x73, 0x5b, 0x30, 0x5d, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, - 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x2a, 0x3d, - 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, + 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x61, 0x73, 0x63, 0x61, - 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x29, 0x0d, 0x0a, 0x20, 0x20, + 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x2a, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x2c, - 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0d, + 0x20, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x61, 0x73, - 0x63, 0x61, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x33, 0x29, 0x0d, 0x0a, + 0x63, 0x61, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x29, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x2a, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, - 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, - 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2a, 0x2f, 0x0d, 0x0a, 0x0d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, - 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0d, 0x0a, - 0x7d + 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, + 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, + 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x33, 0x29, + 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x20, 0x2a, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, + 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, + 0x30, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2a, 0x2f, 0x0d, + 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x46, 0x72, 0x61, 0x67, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, + 0x0d, 0x0a, 0x7d }; - unsigned int Resources_Shaders_deferred_shader_len = 10069; + unsigned int Resources_Shaders_deferred_shader_len = 10059; // Data for file: Resources_Shaders_depth_aware_blur_shader_path const std::string Resources_Shaders_depth_aware_blur_shader_path = R"(Resources/Shaders/depth_aware_blur.shader)"; @@ -239653,28 +239652,32 @@ const std::string Resources_Shaders_tonemap_shader_path = R"(Resources/Shaders/t 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x75, 0x5f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2c, 0x20, 0x55, - 0x56, 0x29, 0x2e, 0x72, 0x67, 0x62, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, - 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2d, - 0x20, 0x65, 0x78, 0x70, 0x28, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, - 0x2a, 0x20, 0x75, 0x5f, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, - 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x72, - 0x65, 0x69, 0x6e, 0x68, 0x61, 0x72, 0x64, 0x0d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x2f, 0x2f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x2f, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x20, 0x2b, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, - 0x29, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, - 0x67, 0x61, 0x6d, 0x6d, 0x61, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, - 0x74, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, - 0x20, 0x2f, 0x20, 0x75, 0x5f, 0x47, 0x61, 0x6d, 0x6d, 0x61, 0x29, 0x29, + 0x56, 0x29, 0x2e, 0x72, 0x67, 0x62, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x29, + 0x20, 0x2d, 0x20, 0x65, 0x78, 0x70, 0x28, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x20, 0x2a, 0x20, 0x75, 0x5f, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, + 0x72, 0x65, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x33, + 0x28, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2d, 0x20, 0x65, 0x78, 0x70, 0x28, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x2a, 0x20, 0x75, 0x5f, 0x45, + 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x29, 0x3b, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x72, 0x65, 0x69, 0x6e, 0x68, 0x61, + 0x72, 0x64, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, + 0x2f, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x2b, 0x20, 0x76, + 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x67, 0x61, 0x6d, 0x6d, 0x61, + 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x70, 0x6f, + 0x77, 0x28, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2c, 0x20, 0x76, 0x65, + 0x63, 0x33, 0x28, 0x75, 0x5f, 0x47, 0x61, 0x6d, 0x6d, 0x61, 0x29, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0d, 0x0a, 0x7d }; - unsigned int Resources_Shaders_tonemap_shader_len = 917; + unsigned int Resources_Shaders_tonemap_shader_len = 965; // Data for file: Resources_Shaders_ui_shader_path const std::string Resources_Shaders_ui_shader_path = R"(Resources/Shaders/ui.shader)"; diff --git a/Nuake/src/Scene/Lighting/Environment.h b/Nuake/src/Scene/Lighting/Environment.h index 4382ad53..664883d7 100644 --- a/Nuake/src/Scene/Lighting/Environment.h +++ b/Nuake/src/Scene/Lighting/Environment.h @@ -36,7 +36,7 @@ namespace Nuake float AmbientTerm; float Exposure = 3.5f; - float Gamma = 1.1f; + float Gamma = 2.2f; bool BloomEnabled = true; Scope mBloom; diff --git a/Resources/Shaders/deferred.shader b/Resources/Shaders/deferred.shader index 12f77518..f92515aa 100644 --- a/Resources/Shaders/deferred.shader +++ b/Resources/Shaders/deferred.shader @@ -245,10 +245,9 @@ void main() ssao = texture(m_SSAO, UV).r; } - float emissive = texture(m_Emissive, UV).r; - if (unlit > 0.1f) { + float emissive = texture(m_Emissive, UV).r; FragColor = vec4(albedo * ssao * emissive, 1.0); return; } @@ -341,7 +340,7 @@ void main() vec3 kD = 1.0 - kS; kD *= 1.0 - metallic; - vec3 ambient = (vec3(0.5) * albedo) * ao * ssao * u_AmbientTerm; + vec3 ambient = (albedo) * ao * ssao * u_AmbientTerm; vec3 color = (ambient) + Lo; // Display CSM splits.. diff --git a/Resources/Shaders/tonemap.shader b/Resources/Shaders/tonemap.shader index 2970834e..b6cf7c0d 100644 --- a/Resources/Shaders/tonemap.shader +++ b/Resources/Shaders/tonemap.shader @@ -36,12 +36,12 @@ vec3 aces(vec3 x) { void main() { vec3 color = texture(u_Source, UV).rgb; - + vec3 mapped = vec3(1.0) - exp(-color * u_Exposure); //color = vec3(1.0) - exp(-color * u_Exposure); // reinhard //color = color / (color + vec3(1.0)); // gamma correct - //color = pow(color, vec3(1.0 / u_Gamma)); + color = pow(mapped, vec3(u_Gamma)); FragColor = vec4(color, 1.0); } \ No newline at end of file