From a21f05cf622a21f920e7c85a2a4dd5c1a7779b0e Mon Sep 17 00:00:00 2001 From: icenine451 <59938822+icenine451@users.noreply.github.com> Date: Thu, 13 Apr 2023 17:12:34 -0400 Subject: [PATCH 01/10] Testing different format --- automation_tools/{sha_update_list.cfg => sha_update_list.txt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename automation_tools/{sha_update_list.cfg => sha_update_list.txt} (100%) diff --git a/automation_tools/sha_update_list.cfg b/automation_tools/sha_update_list.txt similarity index 100% rename from automation_tools/sha_update_list.cfg rename to automation_tools/sha_update_list.txt From f722edbeab1d1f4d9c8f19cea0cb3e735735d9fa Mon Sep 17 00:00:00 2001 From: icenine451 <59938822+icenine451@users.noreply.github.com> Date: Thu, 13 Apr 2023 17:14:12 -0400 Subject: [PATCH 02/10] Path fix --- automation_tools/update_sha.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automation_tools/update_sha.sh b/automation_tools/update_sha.sh index 0166f73e..552dc4cd 100644 --- a/automation_tools/update_sha.sh +++ b/automation_tools/update_sha.sh @@ -4,7 +4,7 @@ # sh automation_tools/update_sha.sh rd_manifest=${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml -sha_update_list=${GITHUB_WORKSPACE}/automation_tools/sha_update_list.cfg +sha_update_list=${GITHUB_WORKSPACE}/automation_tools/sha_update_list.txt echo "Manifest location: $rd_manifest" echo "Hash update list location: $sha_update_list" From 282782fed2c0cd213ec1d37d69d22908400d3592 Mon Sep 17 00:00:00 2001 From: icenine451 <59938822+icenine451@users.noreply.github.com> Date: Thu, 13 Apr 2023 18:29:59 -0400 Subject: [PATCH 03/10] Add gitattributes --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..4eb2283c --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +text eol=lf \ No newline at end of file From 4f5645207ced5658f4b361a32bb2c35ca1f06735 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Thu, 13 Apr 2023 18:32:26 -0400 Subject: [PATCH 04/10] Normalize all the line endings --- emu-configs/melonDS.ini | 268 ++++++++++++++++++++-------------------- 1 file changed, 134 insertions(+), 134 deletions(-) diff --git a/emu-configs/melonDS.ini b/emu-configs/melonDS.ini index e43cde93..4235bc1f 100644 --- a/emu-configs/melonDS.ini +++ b/emu-configs/melonDS.ini @@ -1,135 +1,135 @@ -Key_A=-1 -Key_B=-1 -Key_Select=-1 -Key_Start=-1 -Key_Right=-1 -Key_Left=-1 -Key_Up=-1 -Key_Down=-1 -Key_R=-1 -Key_L=-1 -Key_X=-1 -Key_Y=-1 -Joy_A=0 -Joy_B=1 -Joy_Select=6 -Joy_Start=7 -Joy_Right=258 -Joy_Left=264 -Joy_Up=257 -Joy_Down=260 -Joy_R=5 -Joy_L=4 -Joy_X=2 -Joy_Y=3 -HKKey_Lid=-1 -HKKey_Mic=-1 -HKKey_Pause=82 -HKKey_Reset=-1 -HKKey_FastForward=76 -HKKey_FastForwardToggle=-1 -HKKey_FullscreenToggle=-1 -HKKey_SwapScreens=89 -HKKey_SolarSensorDecrease=-1 -HKKey_SolarSensorIncrease=-1 -HKKey_FrameStep=-1 -HKJoy_Lid=-1 -HKJoy_Mic=-1 -HKJoy_Pause=-1 -HKJoy_Reset=-1 -HKJoy_FastForward=-1 -HKJoy_FastForwardToggle=-1 -HKJoy_FullscreenToggle=-1 -HKJoy_SwapScreens=-1 -HKJoy_SolarSensorDecrease=-1 -HKJoy_SolarSensorIncrease=-1 -HKJoy_FrameStep=-1 -JoystickID=0 -WindowWidth=768 -WindowHeight=418 -WindowMax=1 -ScreenRotation=0 -ScreenGap=0 -ScreenLayout=3 -ScreenSwap=0 -ScreenSizing=3 -IntegerScaling=1 -ScreenAspectTop=0 -ScreenAspectBot=0 -ScreenFilter=1 -ScreenUseGL=0 -ScreenVSync=0 -ScreenVSyncInterval=1 -3DRenderer=1 -Threaded3D=1 -GL_ScaleFactor=1 -GL_BetterPolygons=0 -LimitFPS=1 -AudioSync=0 -ShowOSD=1 -ConsoleType=0 -DirectBoot=1 -JIT_Enable=0 -JIT_MaxBlockSize=32 -JIT_BranchOptimisations=1 -JIT_LiteralOptimisations=1 -JIT_FastMemory=1 -ExternalBIOSEnable=1 -BIOS9Path=RETRODECKHOMEDIR/bios/bios9.bin -BIOS7Path=RETRODECKHOMEDIR/bios/bios7.bin -FirmwarePath=RETRODECKHOMEDIR/bios/firmware.bin -DSiBIOS9Path= -DSiBIOS7Path= -DSiFirmwarePath= -DSiNANDPath= -DLDIEnable=0 -DLDISDPath=dldi.bin -DLDISize=0 -DLDIReadOnly=0 -DLDIFolderSync=0 -DLDIFolderPath= -DSiSDEnable=0 -DSiSDPath=dsisd.bin -DSiSDSize=0 -DSiSDReadOnly=0 -DSiSDFolderSync=0 -DSiSDFolderPath= -FirmwareOverrideSettings=0 -FirmwareUsername=RetroDECK -FirmwareLanguage=1 -FirmwareBirthdayMonth=3 -FirmwareBirthdayDay=4 -FirmwareFavouriteColour=0 -FirmwareMessage= -FirmwareMAC= -RandomizeMAC=0 -SockBindAnyAddr=0 -LANDevice= -DirectLAN=0 -SavStaRelocSRAM=0 -AudioInterp=0 -AudioBitrate=0 -AudioVolume=256 -MicInputType=1 -MicWavPath= -LastROMFolder= -RecentROM_0= -RecentROM_1= -RecentROM_2= -RecentROM_3= -RecentROM_4= -RecentROM_5= -RecentROM_6= -RecentROM_7= -RecentROM_8= -RecentROM_9= -SaveFilePath=RETRODECKHOMEDIR/saves/nds/melonds -SavestatePath=RETRODECKHOMEDIR/states/nds/melonds -CheatFilePath= -EnableCheats=0 -MouseHide=0 -MouseHideSeconds=5 -PauseLostFocus=1 -DSBatteryLevelOkay=1 -DSiBatteryLevel=15 +Key_A=-1 +Key_B=-1 +Key_Select=-1 +Key_Start=-1 +Key_Right=-1 +Key_Left=-1 +Key_Up=-1 +Key_Down=-1 +Key_R=-1 +Key_L=-1 +Key_X=-1 +Key_Y=-1 +Joy_A=0 +Joy_B=1 +Joy_Select=6 +Joy_Start=7 +Joy_Right=258 +Joy_Left=264 +Joy_Up=257 +Joy_Down=260 +Joy_R=5 +Joy_L=4 +Joy_X=2 +Joy_Y=3 +HKKey_Lid=-1 +HKKey_Mic=-1 +HKKey_Pause=82 +HKKey_Reset=-1 +HKKey_FastForward=76 +HKKey_FastForwardToggle=-1 +HKKey_FullscreenToggle=-1 +HKKey_SwapScreens=89 +HKKey_SolarSensorDecrease=-1 +HKKey_SolarSensorIncrease=-1 +HKKey_FrameStep=-1 +HKJoy_Lid=-1 +HKJoy_Mic=-1 +HKJoy_Pause=-1 +HKJoy_Reset=-1 +HKJoy_FastForward=-1 +HKJoy_FastForwardToggle=-1 +HKJoy_FullscreenToggle=-1 +HKJoy_SwapScreens=-1 +HKJoy_SolarSensorDecrease=-1 +HKJoy_SolarSensorIncrease=-1 +HKJoy_FrameStep=-1 +JoystickID=0 +WindowWidth=768 +WindowHeight=418 +WindowMax=1 +ScreenRotation=0 +ScreenGap=0 +ScreenLayout=3 +ScreenSwap=0 +ScreenSizing=3 +IntegerScaling=1 +ScreenAspectTop=0 +ScreenAspectBot=0 +ScreenFilter=1 +ScreenUseGL=0 +ScreenVSync=0 +ScreenVSyncInterval=1 +3DRenderer=1 +Threaded3D=1 +GL_ScaleFactor=1 +GL_BetterPolygons=0 +LimitFPS=1 +AudioSync=0 +ShowOSD=1 +ConsoleType=0 +DirectBoot=1 +JIT_Enable=0 +JIT_MaxBlockSize=32 +JIT_BranchOptimisations=1 +JIT_LiteralOptimisations=1 +JIT_FastMemory=1 +ExternalBIOSEnable=1 +BIOS9Path=RETRODECKHOMEDIR/bios/bios9.bin +BIOS7Path=RETRODECKHOMEDIR/bios/bios7.bin +FirmwarePath=RETRODECKHOMEDIR/bios/firmware.bin +DSiBIOS9Path= +DSiBIOS7Path= +DSiFirmwarePath= +DSiNANDPath= +DLDIEnable=0 +DLDISDPath=dldi.bin +DLDISize=0 +DLDIReadOnly=0 +DLDIFolderSync=0 +DLDIFolderPath= +DSiSDEnable=0 +DSiSDPath=dsisd.bin +DSiSDSize=0 +DSiSDReadOnly=0 +DSiSDFolderSync=0 +DSiSDFolderPath= +FirmwareOverrideSettings=0 +FirmwareUsername=RetroDECK +FirmwareLanguage=1 +FirmwareBirthdayMonth=3 +FirmwareBirthdayDay=4 +FirmwareFavouriteColour=0 +FirmwareMessage= +FirmwareMAC= +RandomizeMAC=0 +SockBindAnyAddr=0 +LANDevice= +DirectLAN=0 +SavStaRelocSRAM=0 +AudioInterp=0 +AudioBitrate=0 +AudioVolume=256 +MicInputType=1 +MicWavPath= +LastROMFolder= +RecentROM_0= +RecentROM_1= +RecentROM_2= +RecentROM_3= +RecentROM_4= +RecentROM_5= +RecentROM_6= +RecentROM_7= +RecentROM_8= +RecentROM_9= +SaveFilePath=RETRODECKHOMEDIR/saves/nds/melonds +SavestatePath=RETRODECKHOMEDIR/states/nds/melonds +CheatFilePath= +EnableCheats=0 +MouseHide=0 +MouseHideSeconds=5 +PauseLostFocus=1 +DSBatteryLevelOkay=1 +DSiBatteryLevel=15 DSiBatteryCharging=1 \ No newline at end of file From 6c7ebf8adb754677e561c499678607c46a03b878 Mon Sep 17 00:00:00 2001 From: icenine451 <59938822+icenine451@users.noreply.github.com> Date: Thu, 13 Apr 2023 18:43:07 -0400 Subject: [PATCH 05/10] Test add-final-newline --- automation_tools/sha_update_list.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automation_tools/sha_update_list.txt b/automation_tools/sha_update_list.txt index 6004513e..7cbb4f75 100644 --- a/automation_tools/sha_update_list.txt +++ b/automation_tools/sha_update_list.txt @@ -1,3 +1,3 @@ # The proper format for this file is # URL^PLACEHOLDERTEXT -https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip^DOOMSHAPLACEHOLDER \ No newline at end of file +https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip^DOOMSHAPLACEHOLDER From 33520491f3c5ef1fda810258037acc223a4b6306 Mon Sep 17 00:00:00 2001 From: icenine451 <59938822+icenine451@users.noreply.github.com> Date: Thu, 13 Apr 2023 18:48:28 -0400 Subject: [PATCH 06/10] Fix missing newlines at end of files --- .../{sha_update_list.txt => sha_update_list.cfg} | 0 automation_tools/update_sha.sh | 4 ++-- .../defaults/retrodeck/reference_lists/bios_checklist.cfg | 2 +- .../retrodeck/reference_lists/compression_targets.cfg | 2 +- .../defaults/retrodeck/reference_lists/input_validation.cfg | 2 +- .../reference_lists/multi_user_emulator_config_dirs.cfg | 2 +- .../reference_lists/zip_compressable_extensions.cfg | 2 +- emu-configs/defaults/retrodeck/retrodeck.cfg | 2 +- rd-submodules/es-de/es-de-retrodeck-mods.patch | 6 +++--- 9 files changed, 11 insertions(+), 11 deletions(-) rename automation_tools/{sha_update_list.txt => sha_update_list.cfg} (100%) diff --git a/automation_tools/sha_update_list.txt b/automation_tools/sha_update_list.cfg similarity index 100% rename from automation_tools/sha_update_list.txt rename to automation_tools/sha_update_list.cfg diff --git a/automation_tools/update_sha.sh b/automation_tools/update_sha.sh index 552dc4cd..656507d8 100644 --- a/automation_tools/update_sha.sh +++ b/automation_tools/update_sha.sh @@ -4,7 +4,7 @@ # sh automation_tools/update_sha.sh rd_manifest=${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml -sha_update_list=${GITHUB_WORKSPACE}/automation_tools/sha_update_list.txt +sha_update_list=${GITHUB_WORKSPACE}/automation_tools/sha_update_list.cfg echo "Manifest location: $rd_manifest" echo "Hash update list location: $sha_update_list" @@ -26,4 +26,4 @@ do fi done < "$sha_update_list" -echo "Done updating manifest hashes." \ No newline at end of file +echo "Done updating manifest hashes." diff --git a/emu-configs/defaults/retrodeck/reference_lists/bios_checklist.cfg b/emu-configs/defaults/retrodeck/reference_lists/bios_checklist.cfg index f6deede3..bde8a54a 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/bios_checklist.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/bios_checklist.cfg @@ -126,4 +126,4 @@ gluck.rom^fuse/^Unknown^ZX Spectrum^Pentagon 512K/1024 ROM (Required) 256s-0.rom^fuse/^Unknown^ZX Spectrum^Scorpion 256K ROM (Required) 256s-1.rom^fuse/^Unknown^ZX Spectrum^Scorpion 256K ROM (Required) 256s-2.rom^fuse/^Unknown^ZX Spectrum^Scorpion 256K ROM (Required) -256s-3.rom^fuse/^Unknown^ZX Spectrum^Scorpion 256K ROM (Required) \ No newline at end of file +256s-3.rom^fuse/^Unknown^ZX Spectrum^Scorpion 256K ROM (Required) diff --git a/emu-configs/defaults/retrodeck/reference_lists/compression_targets.cfg b/emu-configs/defaults/retrodeck/reference_lists/compression_targets.cfg index 09b04b68..382abc1d 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/compression_targets.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/compression_targets.cfg @@ -32,4 +32,4 @@ mastersystem nds nes snes -snesna \ No newline at end of file +snesna diff --git a/emu-configs/defaults/retrodeck/reference_lists/input_validation.cfg b/emu-configs/defaults/retrodeck/reference_lists/input_validation.cfg index fab4efc4..da763c56 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/input_validation.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/input_validation.cfg @@ -3,4 +3,4 @@ uuddlrlrstart^echo Visit the Configurator to behold your new-found powers. uuddlrlrstart^echo But beware, with great power comes great responsibility... gameovermangameover^set_setting_value $rd_conf developer_options false retrodeck options gameovermangameover^echo You have relinquished your powers in the name of saftey. -gameovermangameover^echo This was a wise choice. \ No newline at end of file +gameovermangameover^echo This was a wise choice. diff --git a/emu-configs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg b/emu-configs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg index db58f32e..0b96c088 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg @@ -8,4 +8,4 @@ primehack rpcs3 Ryujinx xemu -yuzu \ No newline at end of file +yuzu diff --git a/emu-configs/defaults/retrodeck/reference_lists/zip_compressable_extensions.cfg b/emu-configs/defaults/retrodeck/reference_lists/zip_compressable_extensions.cfg index b2d370f3..585e7584 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/zip_compressable_extensions.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/zip_compressable_extensions.cfg @@ -57,4 +57,4 @@ .unf .unif .xex -.xfd \ No newline at end of file +.xfd diff --git a/emu-configs/defaults/retrodeck/retrodeck.cfg b/emu-configs/defaults/retrodeck/retrodeck.cfg index 79d7407d..f346d864 100644 --- a/emu-configs/defaults/retrodeck/retrodeck.cfg +++ b/emu-configs/defaults/retrodeck/retrodeck.cfg @@ -23,4 +23,4 @@ cloud_saves=false multi_user_mode=false ask_default_user=true default_user= -developer_options=false \ No newline at end of file +developer_options=false diff --git a/rd-submodules/es-de/es-de-retrodeck-mods.patch b/rd-submodules/es-de/es-de-retrodeck-mods.patch index c029baee..6ff1e475 100644 --- a/rd-submodules/es-de/es-de-retrodeck-mods.patch +++ b/rd-submodules/es-de/es-de-retrodeck-mods.patch @@ -4,9 +4,9 @@ diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.cpp emulationstation-de-p @@ -10,2 +10,3 @@ #include "guis/GuiMenu.h" +#include "utils/PlatformUtil.h" - + @@ -66,2 +67,4 @@ - + + addEntry("RETRODECK CONFIGURATOR", 0x777777FF, false, [this] { openRetroDeckConfigurator(); }); + if (!Settings::getInstance()->getBool("ForceKiosk") && @@ -21,7 +21,7 @@ diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.cpp emulationstation-de-p + addEntry("QUIT RETRODECK", 0x777777FF, false, [this] { openQuitMenu(); }); #endif @@ -1704,2 +1707,15 @@ - + +void GuiMenu::openRetroDeckConfigurator() +{ + // Launch the configurator.sh script From 7a121068e7fb46d5abedaf1303ec0d7f6609aa74 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Thu, 13 Apr 2023 19:08:28 -0400 Subject: [PATCH 07/10] Add check for empty lines --- automation_tools/update_sha.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/automation_tools/update_sha.sh b/automation_tools/update_sha.sh index 552dc4cd..599910f6 100644 --- a/automation_tools/update_sha.sh +++ b/automation_tools/update_sha.sh @@ -15,7 +15,7 @@ echo while IFS="^" read -r url placeholder do - if [[ ! $url == "#"* ]]; then + if [[ ! "$url" == "#"* ]] && [[ ! -z "$url"]]; then echo echo "Placeholder text: $placeholder" echo "URL to hash: $url" @@ -26,4 +26,4 @@ do fi done < "$sha_update_list" -echo "Done updating manifest hashes." \ No newline at end of file +echo "Done updating manifest hashes." From 65a93602f8d3c42ecdf9aa47018efa0be9f0196e Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 14 Apr 2023 08:49:21 -0400 Subject: [PATCH 08/10] Missing fi --- retrodeck.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/retrodeck.sh b/retrodeck.sh index 620f0199..df9f9f88 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -129,6 +129,7 @@ then fi else # If newly-installed version is a normal build. post_update # Executing post update script + fi fi # Else, LOCKFILE IS NOT EXISTING (WAS REMOVED) # if the lock file doesn't exist at all means that it's a fresh install or a triggered reset @@ -157,4 +158,4 @@ fi # Normal Startup -start_retrodeck \ No newline at end of file +start_retrodeck From e8daf8d72c5530e29e0b384cc729aee7562430d2 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 14 Apr 2023 08:49:58 -0400 Subject: [PATCH 09/10] DOOM returns --- net.retrodeck.retrodeck.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 97d7c3ba..5aa7fb48 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -424,15 +424,15 @@ modules: url: https://buildbot.libretro.com/stable/1.15.0/linux/x86_64/RetroArch_cores.7z sha256: 2230bc38eaf87406efd0c2b7bdd1cf9e813ba113505600f14a7ef9eb06f8c7c0 - # - name: doom-shareware - # buildsystem: simple - # build-commands: - # - mkdir -p ${FLATPAK_DEST}/retrodeck/extras - # - cp doom1.wad ${FLATPAK_DEST}/retrodeck/extras/ - # sources: - # - type: archive - # url: https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip - # sha256: DOOMSHAPLACEHOLDER + - name: doom-shareware + buildsystem: simple + build-commands: + - mkdir -p ${FLATPAK_DEST}/retrodeck/extras + - cp doom1.wad ${FLATPAK_DEST}/retrodeck/extras/ + sources: + - type: archive + url: https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip + sha256: DOOMSHAPLACEHOLDER # PPSSPP - START # https://github.com/flathub/org.ppsspp.PPSSPP @@ -1212,4 +1212,4 @@ modules: sources: - type: git url: https://github.com/XargonWan/RetroDECK.git - branch: cooker-0.7.0b \ No newline at end of file + branch: cooker-0.7.0b From 9809d2324ace031a989150a2af9a329572447a4e Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 14 Apr 2023 08:54:22 -0400 Subject: [PATCH 10/10] Missing space --- automation_tools/update_sha.sh | 2 +- rd-submodules/retroarch | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/automation_tools/update_sha.sh b/automation_tools/update_sha.sh index 15dee7ba..5bcbc8ee 100644 --- a/automation_tools/update_sha.sh +++ b/automation_tools/update_sha.sh @@ -15,7 +15,7 @@ echo while IFS="^" read -r url placeholder do - if [[ ! "$url" == "#"* ]] && [[ ! -z "$url"]]; then + if [[ ! "$url" == "#"* ]] && [[ ! -z "$url" ]]; then echo echo "Placeholder text: $placeholder" echo "URL to hash: $url" diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch index 717b7809..0b1cfb79 160000 --- a/rd-submodules/retroarch +++ b/rd-submodules/retroarch @@ -1 +1 @@ -Subproject commit 717b78093797270877ec416e58082f1c71d435d8 +Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409