From 899549f3b580323a08a0a0d2651af8b3bde3798e Mon Sep 17 00:00:00 2001
From: Rekku <rekku@retrodeck.net>
Date: Fri, 13 Sep 2024 18:27:07 +0100
Subject: [PATCH] What a state!

---
 .../configurator/locales/interface.csv.import | 17 ----
 tools/configurator/main.tscn                  |  6 +-
 .../res/pixel_ui_theme/RetroDECKTheme.tres    | 88 +++++++++----------
 tools/configurator/scripts/GlobalsTab.gd      |  1 +
 tools/configurator/scripts/ToolsTab.gd        |  9 +-
 tools/configurator/scripts/class_functions.gd | 76 +++++++++-------
 tools/configurator/scripts/data_handler.gd    | 37 +++++++-
 tools/configurator/scripts/main.gd            | 44 ++++++++--
 8 files changed, 166 insertions(+), 112 deletions(-)
 delete mode 100644 tools/configurator/locales/interface.csv.import

diff --git a/tools/configurator/locales/interface.csv.import b/tools/configurator/locales/interface.csv.import
deleted file mode 100644
index c24bb904..00000000
--- a/tools/configurator/locales/interface.csv.import
+++ /dev/null
@@ -1,17 +0,0 @@
-[remap]
-
-importer="csv_translation"
-type="Translation"
-uid="uid://cwb782o5jh5lx"
-
-[deps]
-
-files=["res://locales/interface.en.translation", "res://locales/interface.it.translation", "res://locales/interface.de.translation", "res://locales/interface.sv.translation", "res://locales/interface.ua.translation", "res://locales/interface.ja.translation", "res://locales/interface.zh.translation"]
-
-source_file="res://locales/interface.csv"
-dest_files=["res://locales/interface.en.translation", "res://locales/interface.it.translation", "res://locales/interface.de.translation", "res://locales/interface.sv.translation", "res://locales/interface.ua.translation", "res://locales/interface.ja.translation", "res://locales/interface.zh.translation"]
-
-[params]
-
-compress=true
-delimiter=0
diff --git a/tools/configurator/main.tscn b/tools/configurator/main.tscn
index 2f551659..50c3fda5 100644
--- a/tools/configurator/main.tscn
+++ b/tools/configurator/main.tscn
@@ -220,12 +220,11 @@ size_flags_horizontal = 3
 unique_name_in_owner = true
 layout_mode = 2
 tab_alignment = 1
-current_tab = 3
+current_tab = 0
 script = ExtResource("3_id6l4")
 
 [node name="GLOBALS" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"]
 unique_name_in_owner = true
-visible = false
 layout_mode = 2
 script = ExtResource("4_2jqfc")
 metadata/_tab_index = 0
@@ -264,6 +263,7 @@ icon_alignment = 1
 vertical_icon_alignment = 0
 
 [node name="button_swap_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"]
+unique_name_in_owner = true
 custom_minimum_size = Vector2(345, 222)
 layout_mode = 2
 tooltip_text = "Change to Nintendo style button mappings."
@@ -533,6 +533,7 @@ layout_mode = 2
 [node name="check_conn_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container"]
 unique_name_in_owner = true
 layout_mode = 2
+toggle_mode = true
 text = "CHECK CONNECTION"
 icon = ExtResource("50_5d2ui")
 
@@ -687,6 +688,7 @@ disabled = true
 text = "TK_3DSDECRYPT"
 
 [node name="SETTINGS" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"]
+visible = false
 layout_mode = 2
 script = ExtResource("54_bxhvn")
 metadata/_tab_index = 3
diff --git a/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres b/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres
index a83ddecb..8da599d4 100644
--- a/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres
+++ b/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres
@@ -1087,7 +1087,7 @@ cache/0/16/0/glyphs/95/uv_rect = Rect2(92, 148, 6, 1)
 cache/0/16/0/glyphs/95/texture_idx = 0
 cache/0/16/0/kerning_overrides/16/0 = Vector2(0, 0)
 
-[sub_resource type="Image" id="Image_hqq1p"]
+[sub_resource type="Image" id="Image_i3f44"]
 data = {
 "data": PackedByteArray("4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg/////////////////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4A=="),
 "format": "Lum8",
@@ -1097,9 +1097,9 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="447"]
-image = SubResource("Image_hqq1p")
+image = SubResource("Image_i3f44")
 
-[sub_resource type="Image" id="Image_ivgtk"]
+[sub_resource type="Image" id="Image_48gu5"]
 data = {
 "data": PackedByteArray("AAQACgARABkAHwAiACQAJAAkACQAIgAfABkAEQAKAAQACgAVACUANAA/AEYARwBIAEgARwBGAD8ANAAlABUACgARACU/d1rvVv9W/1b/Vv9W/1b/Vv9W/1rvP3cAJQARABkANFnvSP9E/0P/Q/9D/0P/Q/9D/0T/SP9Z7wA0ABkAHwA/VP9D/0P/Q/9D/0P/Q/9D/0P/Q/9D/1T/AD8AHwAiAEZS/0L/Qv9C/0L/Qv9C/0L/Qv9C/0L/Uv8ARgAiACQAR1H/QP9A/0D/QP9A/0D/QP9A/0D/QP9R/wBHACQAJABIT/8//z//P/8//z//P/8//z//P/8//0//AEgAJAAkAEhN/z7/Pv8+/z7/Pv8+/z7/Pv8+/z7/Tf8ASAAkACQAR0z/Pf89/z3/Pf89/z3/Pf89/z3/Pf9M/wBHACQAIgBGSv87/zv/O/87/zv/O/87/zv/O/87/0r/AEYAIgAfAD9J/zr/Ov86/zr/Ov86/zr/Ov86/zr/Sf8APwAfABkANEvvPf85/zn/Of85/zn/Of85/zn/Pf9L7wA0ABkAEQAlNXdK70f/Rv9G/0b/Rv9G/0b/R/9K7TV3ACUAEQAKABUAJQA0AD8ARgBHAEgASABHAEYAPwA0ACUAFQAKAAQACgARABkAHwAiACQAJAAkACQAIgAfABkAEQAKAAQ="),
 "format": "LumAlpha8",
@@ -1109,7 +1109,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="53"]
-image = SubResource("Image_ivgtk")
+image = SubResource("Image_48gu5")
 
 [sub_resource type="StyleBoxTexture" id="54"]
 content_margin_left = 6.0
@@ -1123,7 +1123,7 @@ expand_margin_right = 2.0
 expand_margin_bottom = 2.0
 region_rect = Rect2(0, 0, 16, 16)
 
-[sub_resource type="Image" id="Image_qp456"]
+[sub_resource type="Image" id="Image_vdoto"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvw5HjL85R4y/aEeMv3pHjL97R4y/e0eMv3tHjL97R4y/ekeMv2hHjL85R4y/DgAAAAAAAAAAAAAAAAAAAABHjL86R4y/dEeMvxBHjL8IR4y/CEeMvwhHjL8IR4y/CEeMvwhHjL8QR4y/dEeMvzoAAAAAAAAAAAAAAAAAAAAAR4y/aUeMvw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvw9HjL9pAAAAAAAAAAAAAAAAAAAAAEeMv3tHjL8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHjL8GR4y/ewAAAAAAAAAAAAAAAAAAAABHjL97R4y/CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR4y/CEeMv3sAAAAAAAAAAAAAAAAAAAAAR4y/e0eMvwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvwhHjL97AAAAAAAAAAAAAAAAAAAAAEeMv3tHjL8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHjL8IR4y/ewAAAAAAAAAAAAAAAAAAAABHjL97R4y/CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR4y/CEeMv3sAAAAAAAAAAAAAAAAAAAAAR4y/e0eMvwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvwZHjL97AAAAAAAAAAAAAAAAAAAAAEeMv2lHjL8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHjL8OR4y/aQAAAAAAAAAAAAAAAAAAAABHjL86R4y/dUeMvw9HjL8IR4y/CEeMvwhHjL8IR4y/CEeMvwhHjL8RR4y/dEeMvzoAAAAAAAAAAAAAAAAAAAAAR4y/DkeMvzpHjL9oR4y/ekeMv3tHjL97R4y/e0eMv3tHjL96R4y/aEeMvzlHjL8OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="),
 "format": "RGBA8",
@@ -1133,7 +1133,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="56"]
-image = SubResource("Image_qp456")
+image = SubResource("Image_vdoto")
 
 [sub_resource type="StyleBoxTexture" id="57"]
 content_margin_left = 6.0
@@ -1147,7 +1147,7 @@ expand_margin_right = 2.0
 expand_margin_bottom = 2.0
 region_rect = Rect2(0, 0, 16, 16)
 
-[sub_resource type="Image" id="Image_pwn0t"]
+[sub_resource type="Image" id="Image_nux7e"]
 data = {
 "data": PackedByteArray("AAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABAAAAAoAAAAVAAAAJQAAADQAAAA/AAAARgAAAEcAAABIAAAASAAAAEcAAABGAAAAPwAAADQAAAAlAAAAFQAAAAoAAAARAAAAJUJAS3dfWmzvW1do/1pWZ/9aVmf/WlZn/1pWZ/9aVmf/WlZn/1tXaP9fWmzvQkBLdwAAACUAAAARAAAAGQAAADRfWmvvTUpX/0lGUv9IRVH/SEVR/0hFUf9IRVH/SEVR/0hFUf9JRlL/TUpX/19aa+8AAAA0AAAAGQAAAB8AAAA/W1dm/0lGUv9IRVH/SEVR/0hFUf9IRVH/SEVR/0hFUf9IRVH/SEVR/0lGUv9bV2b/AAAAPwAAAB8AAAAiAAAARllVZP9HRFD/R0RQ/0dEUP9HRFD/R0RQ/0dEUP9HRFD/R0RQ/0dEUP9HRFD/WVVk/wAAAEYAAAAiAAAAJAAAAEdYVGT/RkNQ/0ZDUP9GQ1D/RkNQ/0ZDUP9GQ1D/RkNQ/0ZDUP9GQ1D/RkNQ/1hUZP8AAABHAAAAJAAAACQAAABIVlNj/0VCT/9FQk//RUJP/0VCT/9FQk//RUJP/0VCT/9FQk//RUJP/0VCT/9WU2P/AAAASAAAACQAAAAkAAAASFZTYv9FQk7/RUJO/0VCTv9FQk7/RUJO/0VCTv9FQk7/RUJO/0VCTv9FQk7/VlNi/wAAAEgAAAAkAAAAJAAAAEdVUWL/REFO/0RBTv9EQU7/REFO/0RBTv9EQU7/REFO/0RBTv9EQU7/REFO/1VRYv8AAABHAAAAJAAAACIAAABGVVFg/0RBTf9EQU3/REFN/0RBTf9EQU3/REFN/0RBTf9EQU3/REFN/0RBTf9VUWD/AAAARgAAACIAAAAfAAAAP1VRYP9EQU3/Q0BM/0NATP9DQEz/Q0BM/0NATP9DQEz/Q0BM/0NATP9EQU3/VVFg/wAAAD8AAAAfAAAAGQAAADRWU2TvR0NR/0M/Tf9CP0z/Qj9M/0I/TP9CP0z/Qj9M/0I/TP9DP03/R0NR/1dTZO8AAAA0AAAAGQAAABEAAAAlPjtGd1dTY+9TUF//U09e/1NPXv9TT17/U09e/1NPXv9TT17/U1Bf/1dTY+0+O0Z3AAAAJQAAABEAAAAKAAAAFQAAACUAAAA0AAAAPwAAAEYAAABHAAAASAAAAEgAAABHAAAARgAAAD8AAAA0AAAAJQAAABUAAAAKAAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABA=="),
 "format": "RGBA8",
@@ -1157,7 +1157,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="59"]
-image = SubResource("Image_pwn0t")
+image = SubResource("Image_nux7e")
 
 [sub_resource type="StyleBoxTexture" id="60"]
 content_margin_left = 6.0
@@ -1175,7 +1175,7 @@ expand_margin_right = 2.0
 expand_margin_bottom = 2.0
 region_rect = Rect2(0, 0, 16, 16)
 
-[sub_resource type="Image" id="Image_ikhsm"]
+[sub_resource type="Image" id="Image_1uvxf"]
 data = {
 "data": PackedByteArray("AAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABAAAAAoAAAAVAAAAJQAAADQAAAA/AAAARgAAAEcAAABIAAAASAAAAEcAAABGAAAAPwAAADQAAAAlAAAAFQAAAAoAAAARAAAAJTw6RHdWU2HvUlBd/1FPXf9RT13/UU9d/1FPXf9RT13/UU9d/1JQXf9WU2HvPDpEdwAAACUAAAARAAAAGQAAADRWUmDvRkJO/0I+Sv9BPkn/QT5J/0E+Sf9BPkn/QT5J/0E+Sf9CPkr/RkJO/1ZSYO8AAAA0AAAAGQAAAB8AAAA/UU5b/0E+Sf9APkj/QD5I/0A+SP9APkj/QD5I/0A+SP9APkj/QD5I/0E+Sf9RTlv/AAAAPwAAAB8AAAAiAAAARk9MWf8/PUf/Pz1H/z89R/8/PUf/Pz1H/z89R/8/PUf/Pz1H/z89R/8/PUf/T0xZ/wAAAEYAAAAiAAAAJAAAAEdOSlj/PjtG/z47Rv8+O0b/PjtG/z47Rv8+O0b/PjtG/z47Rv8+O0b/PjtG/05KWP8AAABHAAAAJAAAACQAAABIS0lV/zw6RP88OkT/PDpE/zw6RP88OkT/PDpE/zw6RP88OkT/PDpE/zw6RP9LSVX/AAAASAAAACQAAAAkAAAASEpHVP87OUP/OzlD/zs5Q/87OUP/OzlD/zs5Q/87OUP/OzlD/zs5Q/87OUP/SkdU/wAAAEgAAAAkAAAAJAAAAEdJRlP/OjhC/zo4Qv86OEL/OjhC/zo4Qv86OEL/OjhC/zo4Qv86OEL/OjhC/0lGU/8AAABHAAAAJAAAACIAAABGR0VQ/zk3QP85N0D/OTdA/zk3QP85N0D/OTdA/zk3QP85N0D/OTdA/zk3QP9HRVD/AAAARgAAACIAAAAfAAAAP0dDUP84NT//ODU//zg1P/84NT//ODU//zg1P/84NT//ODU//zg1P/84NT//R0NQ/wAAAD8AAAAfAAAAGQAAADRHRFLvOjhC/zY0Pv82ND7/NjQ+/zY0Pv82ND7/NjQ+/zY0Pv82ND7/OjhC/0dEUu8AAAA0AAAAGQAAABEAAAAlMzE5d0dEUO9EQk3/REFM/0RBTP9EQUz/REFM/0RBTP9EQUz/REJN/0dEUe0zMTl3AAAAJQAAABEAAAAKAAAAFQAAACUAAAA0AAAAPwAAAEYAAABHAAAASAAAAEgAAABHAAAARgAAAD8AAAA0AAAAJQAAABUAAAAKAAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABA=="),
 "format": "RGBA8",
@@ -1185,7 +1185,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="62"]
-image = SubResource("Image_ikhsm")
+image = SubResource("Image_1uvxf")
 
 [sub_resource type="StyleBoxTexture" id="63"]
 content_margin_left = 6.0
@@ -1199,7 +1199,7 @@ expand_margin_right = 2.0
 expand_margin_bottom = 2.0
 region_rect = Rect2(0, 0, 16, 16)
 
-[sub_resource type="Image" id="Image_n5g6i"]
+[sub_resource type="Image" id="Image_5aefc"]
 data = {
 "data": PackedByteArray("AAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABAAAAAsAAAAWAAAAJwAAADYAAABBAAAASQAAAEoAAABLAAAASwAAAEoAAABJAAAAQQAAADYAAAAnAAAAFgAAAAsAAAATAAAAKTEvN4BGQ0/xQ0BM/0JAS/9CQEv/QkBL/0JAS/9CQEv/QkBL/0NATP9GQ0/xMS83fwAAACkAAAATAAAAHgAAAD1HRFDyOjhB/wsLDP8LCgz/CwoM/wsKDP8LCgz/CwsM/wsLDP8LCwz/OjhB/0dEUPIAAAA9AAAAHgAAACcAAABNREJO/w8OEf8PDhH/Dw4R/w8OEf8PDhH/Dw4R/w8OEf8PDhH/Dw4R/w8OEf9EQk7/AAAATQAAACcAAAAsAAAAWEZCT/8UExb/ExIW/xMSFv8UExb/ExIW/xQTFv8UExb/FBMW/xQTFv8TEhb/RkJP/wAAAFgAAAAsAAAAMgAAAF1HRVD/GBcb/xgXG/8YFxv/GBcb/xgXG/8YFxv/GBcb/xkYHP8YFxv/GBcb/0dFUP8AAABdAAAAMgAAADMAAABjSUZT/x0cIf8dHCH/HRwh/x0cIf8dHCH/HRwh/x0cIf8dHCH/HRwh/x0cIf9JRlP/AAAAYwAAADMAAAA2AAAAZkpHVP8iISf/IiEn/yIhJ/8iISf/IiEn/yIhJ/8iISf/IiEn/yIhJ/8iISf/SkdU/wAAAGYAAAA2AAAAOQAAAGlLSVX/JyYt/ycmLf8nJi3/JyYt/ycmLf8nJi3/JyYt/ygmLf8nJi3/KCYt/0tJVf8AAABpAAAAOQAAADgAAABsTkpY/y0rM/8tKzP/LSsz/y0rM/8tKzP/LSsz/y0rM/8tKzP/LSsz/y0rM/9OSlj/AAAAbAAAADgAAAA1AAAAZVBNWv8zMTr/MzE5/zMxOf8zMTn/MzE5/zMxOf8zMTn/MzE5/zMxOf8zMTr/UE1a/wAAAGUAAAA1AAAALQAAAFlVUl/8RUJN/zk3QP84N0D/OTdA/zg3QP84N0D/ODdA/zg3QP86N0H/RUJN/1VSYPwAAABZAAAALQAAACAAAABEPTpFtFZSYP1STlz/UU5b/1FOW/9RTlv/UU5b/1FOW/9RTlv/Uk5c/1ZSYP09OkW0AAAARAAAACAAAAAUAAAAKAAAAEUAAABdAAAAbgAAAHkAAAB6AAAAfAAAAHwAAAB6AAAAeQAAAG4AAABdAAAARQAAACgAAAAUAAAACAAAABQAAAAhAAAAMAAAADoAAAA/AAAAQwAAAEMAAABDAAAAQwAAAD8AAAA6AAAAMAAAACEAAAAUAAAACA=="),
 "format": "RGBA8",
@@ -1209,7 +1209,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="65"]
-image = SubResource("Image_n5g6i")
+image = SubResource("Image_5aefc")
 
 [sub_resource type="StyleBoxTexture" id="66"]
 content_margin_left = 6.0
@@ -1223,7 +1223,7 @@ expand_margin_right = 2.0
 expand_margin_bottom = 2.0
 region_rect = Rect2(0, 0, 16, 16)
 
-[sub_resource type="Image" id="Image_u1l5i"]
+[sub_resource type="Image" id="Image_587bn"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAADf39+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAA4ODg/9/f34gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAODg4P/g4OD/39/fiAAAAAAAAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAADg4OD/4ODg/+Dg4P/f39+IAAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="),
 "format": "RGBA8",
@@ -1233,9 +1233,9 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="425"]
-image = SubResource("Image_u1l5i")
+image = SubResource("Image_587bn")
 
-[sub_resource type="Image" id="Image_g0b26"]
+[sub_resource type="Image" id="Image_on8j2"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4MXg/+D/4P/g/+D/4P/gwwAAAAAAAAAAAAAAAAAAAADg/+D/4P/g/+D/4P/g/+D/AAAAAAAAAAAAAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P/hPAAAAAAAAAAAAAAAAAAA4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/gwwAAAADg/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/AAAAAOD/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P8AAAAA4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/wAAAADg/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/AAAAAOD/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P8AAAAA4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/wAAAADg/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/AAAAAODD4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/38IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="),
 "format": "LumAlpha8",
@@ -1245,9 +1245,9 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="427"]
-image = SubResource("Image_g0b26")
+image = SubResource("Image_on8j2")
 
-[sub_resource type="Image" id="Image_4ugco"]
+[sub_resource type="Image" id="Image_opjb6"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3hfgz+DO3hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3Bbh0uD+4P7g1+AZAAAAAAAAAAAAAAAAAAAAAAAA3Bbh0uD+4P7g/uD+4NfgGQAAAAAAAAAAAAAAAAAA3hfg1OD+4NHg/uD94dLg/uDU3hcAAAAAAAAAAAAAAADgzeD+4NDcFuD+4P3bFeDR4P7gzAAAAAAAAAAAAAAAAOC+4MXZFP8B4P7g/QAA2xXhyeDFAAAAAAAAAAAAAAAAAAAAAAAA/wHg/uD9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AeD+4P0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4MThwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="),
 "format": "LumAlpha8",
@@ -1257,9 +1257,9 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="429"]
-image = SubResource("Image_4ugco")
+image = SubResource("Image_opjb6")
 
-[sub_resource type="Image" id="Image_fvce2"]
+[sub_resource type="Image" id="Image_rsgl1"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADbB99u4Mfg8+Dz4MfebdsHAAAAAAAAAAAAAAAAAADjG+DP4P7g/uD+4P7g/uD+4M7jGwAAAAAAAAAAAADbB+DP4P7g4eBT2A3YDd9Q4Nfg/uDO2wcAAAAAAAAAAN9u4P7g4eMSAAAAAAAAAADhEeDh4P7ebAAAAAAAAAAA4Mjg/uBTAAAAAAAAAAAAAAAA3lXg/uDGAAAAAAAAAADg8uD+2A0AAAAAAAAAAAAAAADbDuD+4PEAAAAA4J7g/uD+4P7g/uCeAAAAAAAAAAAAAN0P4P7g8QAAAADoC+DU4P7g/uDU6AsAAAAAAAAAAAAA3lbg/uDGAAAAAAAA4Svg8+Dz4SsAAAAAAAAAAAAA5BPh4uD+3mwAAAAAAAAAAN9g32AAAAAAAAAAANsO3lbh4uD+4M7VBgAAAAAAAAAAAAAAAAAAAAAAAAAA4P7g/uD+4M7jGwAAAAAAAAAAAAAAAAAAAAAAAAAAAADg8uDF3mzVBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="),
 "format": "LumAlpha8",
@@ -1269,9 +1269,9 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="431"]
-image = SubResource("Image_fvce2")
+image = SubResource("Image_rsgl1")
 
-[sub_resource type="Image" id="Image_cc2ro"]
+[sub_resource type="Image" id="Image_m1f2u"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39/fCN7e3mzg4ODF4ODg9ODg4PPg4ODF3t7ebePj4wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3t7eLuDg4Njg4OD+4ODg/uDg4P7g4OD+4ODg/uDg4P7h4eHa4ODgMgAAAAAAAAAAAAAAAAAAAAAAAAAA3t7eL+Dg4PDg4OD+4ODg4eDg4FPY2NgN2NjYDd/f31Dg4ODX4ODg/uDg4PLh4eEzAAAAAAAAAAAAAAAA4+PjCeDg4Nzg4OD+4ODg4ePj4xIAAAAAAAAAAAAAAAAAAAAA4eHhEeDg4OHg4OD+4ODg3+bm5goAAAAAAAAAAN/f33fg4OD+4ODg/uDg4FMAAAAA4ODgS+Dg4OPh4eHi4ODgSQAAAADe3t5V4ODg/uDg4P7f3995AAAAAAAAAADh4eHa4ODg/uDg4P7Y2NgNAAAAAOHh4eLg4OD+4ODg/uDg4OEAAAAA29vbDuDg4P7g4OD+4eHh2gAAAAAAAAAA4ODg2+Dg4P7g4OD+2NjYDQAAAADh4eHi4ODg/uDg4P7g4ODhAAAAAN3d3Q/g4OD+4ODg/uDg4NsAAAAAAAAAAN7e3nzg4OD+4ODg/t/f31AAAAAA4ODgSeHh4eLg4ODh39/fSAAAAADe3t5W4ODg/uDg4P7g4OB7AAAAAAAAAADV1dUM4ODg4+Dg4P7g4ODX4eHhEQAAAAAAAAAAAAAAAAAAAADk5OQT4eHh4uDg4P7g4ODh1dXVDAAAAAAAAAAAAAAAAN/f3zjg4OD04ODg/uDg4OHe3t5V29vbDtvb2w7e3t5W4eHh4uDg4P7g4OD03t7eNgAAAAAAAAAAAAAAAAAAAAAAAAAA39/fN+Dg4N7g4OD+4ODg/uDg4P7g4OD+4ODg/uDg4P7g4ODd3t7eNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADm5uYK39/fcODg4MXg4ODz4ODg8+Dg4MXf399u5ubmCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="),
 "format": "RGBA8",
@@ -1281,7 +1281,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="433"]
-image = SubResource("Image_cc2ro")
+image = SubResource("Image_m1f2u")
 
 [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_g6bu4"]
 texture = ExtResource("1_ak8qr")
@@ -1359,7 +1359,7 @@ region = Rect2(96, 96, 16, 16)
 atlas = ExtResource("1_ak8qr")
 region = Rect2(96, 80, 16, 16)
 
-[sub_resource type="Image" id="Image_i23rm"]
+[sub_resource type="Image" id="Image_jy3dj"]
 data = {
 "data": PackedByteArray("AAAAAJiYmHlOTk4xAAAAAAAAAACNjY15Tk5OMQAAAAAAAAAAgoKCeU5OTjEAAAAAAAAAAE5OTjFOTk4cAAAAAAAAAAA4VV8AOFVfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjKy4ADhVXwAAAAAAAAAAAIGirQA4VV8AAAAAAAAAAACYmJh5Tk5OMQAAAAAAAAAAjY2NeU5OTjEAAAAAAAAAAIKCgnlOTk4xAAAAAA=="),
 "format": "RGBA8",
@@ -1369,7 +1369,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="29"]
-image = SubResource("Image_i23rm")
+image = SubResource("Image_jy3dj")
 
 [sub_resource type="StyleBoxTexture" id="4"]
 content_margin_left = 6.0
@@ -1440,7 +1440,7 @@ bg_color = Color(0.490196, 0.490196, 0.490196, 1)
 corner_detail = 1
 anti_aliasing = false
 
-[sub_resource type="Image" id="Image_emnte"]
+[sub_resource type="Image" id="Image_huwvi"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN9Y3BYAAAAAAAAAAAAAAADcFt9YAAAAAAAAAAAAAN9Y4P7g09wWAAAAAAAAAADcFuDT4P7fWAAAAAAAAAAA2xXf0uD/4NfgGQAAAADbFd/S4P/g198YAAAAAAAAAAAAANsV39Lg/+DX4BnbFd/S4P/g198YAAAAAAAAAAAAAAAAAADbFd/S4P/h2uDW4P/g198YAAAAAAAAAAAAAAAAAAAAAAAA2xXf1uD/4P/g298YAAAAAAAAAAAAAAAAAAAAAAAAAADbFd/W4P/g/+Db4BkAAAAAAAAAAAAAAAAAAAAAAADbFd/S4P/f2uDW4P/g1+AZAAAAAAAAAAAAAAAAAADbFd/S4P/g198Y2xXf0uD/4NfgGQAAAAAAAAAAAADbFd/S4P/g198YAAAAANsV39Lg/+DX4BkAAAAAAAAAAN9Y4P7g09wWAAAAAAAAAADcFuDT4P7fWAAAAAAAAAAAAADfWNwWAAAAAAAAAAAAAAAA3BbfWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="),
 "format": "LumAlpha8",
@@ -1450,7 +1450,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="49"]
-image = SubResource("Image_emnte")
+image = SubResource("Image_huwvi")
 
 [sub_resource type="StyleBoxTexture" id="127"]
 content_margin_left = 4.0
@@ -2271,7 +2271,7 @@ texture_margin_right = 2.0
 texture_margin_bottom = 2.0
 region_rect = Rect2(72, 64, 8, 8)
 
-[sub_resource type="Image" id="Image_ebbu5"]
+[sub_resource type="Image" id="Image_dpf26"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc5uqs87c4bPO3OGzztzhs87c4bPO3OGzztzhs3ObqrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="),
 "format": "RGBA8",
@@ -2281,7 +2281,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="199"]
-image = SubResource("Image_ebbu5")
+image = SubResource("Image_dpf26")
 
 [sub_resource type="StyleBoxTexture" id="200"]
 texture = SubResource("199")
@@ -2305,7 +2305,7 @@ texture_margin_right = 2.0
 texture_margin_bottom = 2.0
 region_rect = Rect2(64, 64, 8, 8)
 
-[sub_resource type="Image" id="Image_bl446"]
+[sub_resource type="Image" id="Image_x6v4n"]
 data = {
 "data": PackedByteArray("/wD//wD//wD//wD/Z3qFZnqGaHuGaHuGaHuGaHuGZnqGZ3qF/wD//wD//wD//wD//wD//wD/Z3qFZnqGV1FRTEJATUNBTUNBTUNBTUNBTEJAV1FRZnqGZ3qF/wD//wD//wD/Z3qFVkxLTEJATURBTUNBTkRCTkRCTkRCTkRCTUNBTURBTEJAV1FRZ3qF/wD//wD/ZnqGTEJATEJATUNBT0VDT0VDT0VDT0VDT0VDT0VDTUNBTEJATEJAZ3uH/wD/Z3qFV1FRTEJATEJATkRCT0RDUEVEUkZEUkZEUUZFT0RDTkRCTEJATEJAV1FRZ3qFZnqGS0A/TEJATUNBT0RDUUdFUkhGU0hHU0hHUkhGUUdFT0RDTkRCTEJAS0E/Z3uHZ3uHS0E/TEJATUNBT0RDUUdFVElGVUpHVUlHVUpHUkhGUEVETUNBTEJAS0E/aHyIZ3uHSkA+S0E/TUNBT0VDUUdFVElGVUtJVk1LVElGU0lHUEZETkRCTEJAS0E/aHyIZ3uHSkE+S0E/TEJAT0VDUUdFVElGVUtJVUtJVUpHUkhGUEZETkRCTEJASkA+aHyIZ3uHSD48S0I/S0E/TkRCUEVEUUZFU0lHU0lHUkhGUEVETkRCTEJAS0E/ST89aHyIZ3uHRj08SD48SkA+TEJATkRCT0RDUEVEUEVEUEZET0VDTEJAS0A/ST89Rz07Z3uHZ3qFV1FRRz47SUA9S0E/TEJATUNBTkRCTkRCTUNBTEJAS0E/ST89Rz07V1FRaHuG/wD/Z3uHRj08Rz07SD48ST89SkA+S0E/S0E/S0A/SkA+SD48Rz47Rz07Z3uH/wD//wD/Z3qFV1FRRTw7Rz07Rz07Rz07SD48SD48Rz07Rz07Rz47Rj08V1FRZnqG/wD//wD//wD/Z3qFZ3uHV1FRRjw6Rjw6Rz47Rz47Rjw6Rjw6V1FRZ3uHaHuG/wD//wD//wD//wD//wD//wD/ZnqGZ3uHaHyIaHyIaHyIaHyIZ3uHaHuG/wD//wD//wD//wD/"),
 "format": "RGB8",
@@ -2315,7 +2315,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="204"]
-image = SubResource("Image_bl446")
+image = SubResource("Image_x6v4n")
 
 [sub_resource type="StyleBoxTexture" id="205"]
 texture = SubResource("204")
@@ -2428,7 +2428,7 @@ axis_stretch_horizontal = 2
 axis_stretch_vertical = 2
 region_rect = Rect2(80, 0, 16, 8)
 
-[sub_resource type="Image" id="Image_w70p8"]
+[sub_resource type="Image" id="Image_6y20l"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P8AAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P8AAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P8AAAAAAAAAAOFe4PTg/+D/4P/g/+D24WYAAAAAAAAAAAAA3yjf0uD/4P/g1+MtAAAAAAAAAAAAAAAAAADoC+Gf4Z/oCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"),
 "format": "LumAlpha8",
@@ -2438,9 +2438,9 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="306"]
-image = SubResource("Image_w70p8")
+image = SubResource("Image_6y20l")
 
-[sub_resource type="Image" id="Image_cmfqe"]
+[sub_resource type="Image" id="Image_8v3o5"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4P/g/+D/32AAAAAAAAAAAAAAAAAAAAAA4P/g/+D/4PThKwAAAAAAAAAAAAAAAAAA4P/g/+D/4P/g1egLAAAAAAAAAAAAAAAA4P/g/+D/4P/g/+GfAAAAAAAAAAAAAAAA4P/g/+D/4P/g/+GfAAAAAAAAAAAAAAAA4P/g/+D/4P/g1egLAAAAAAAAAAAAAAAA4P/g/+D/4PThKwAAAAAAAAAAAAAAAAAA4P/g/+D/32AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"),
 "format": "LumAlpha8",
@@ -2450,9 +2450,9 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="308"]
-image = SubResource("Image_cmfqe")
+image = SubResource("Image_8v3o5")
 
-[sub_resource type="Image" id="Image_tosy3"]
+[sub_resource type="Image" id="Image_0xm13"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAP9Z/xT/FP9ZAAAAAAAA/1n/FP8U/1kAAAAAAAD/Wf8U/xT/WQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="),
 "format": "LumAlpha8",
@@ -2462,9 +2462,9 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="292"]
-image = SubResource("Image_tosy3")
+image = SubResource("Image_0xm13")
 
-[sub_resource type="Image" id="Image_gw7hv"]
+[sub_resource type="Image" id="Image_17cl6"]
 data = {
 "data": PackedByteArray("FxYabx0cIe8gHiT3IR8l9yEfJfchHyX3IR8l9yAeJPcdHCHvFxYabx0cIfAkIin/KCYt/ygmLv8oJi7/KCYu/ygmLv8oJi3/JCIp/x0cIfAgHiT5KCYt/ysqMf8sKjL/LCoy/ywqMv8sKjL/Kyox/ygmLf8gHiT5IR8l9ygmLv8sKjL/LCoy/ywqMv8sKjL/LCoy/ywqMv8oJi7/IR8l9yEfJfcoJi7/LCoy/ywqMv8sKjL/LCoy/ywqMv8sKjL/KCYu/yEfJfchHyX3KCYu/ywqMv8sKjL/LCoy/ywqMv8sKjL/LCoy/ygmLv8hHyX3IR8l9ygmLv8sKjL/LCoy/ywqMv8sKjL/LCoy/ywqMv8oJi7/IR8l9yAeJPkoJi3/Kyox/ywqMv8sKjL/LCoy/ywqMv8rKjH/KCYt/yAeJPkdHCHwJCIp/ygmLf8oJi7/KCYu/ygmLv8oJi7/KCYt/yQiKf8dHCHxFxYabx0cIfAgHiT3IR8l9yEfJfchHyX3IR8l9yAeJPcdHCHuFxYabw=="),
 "format": "RGBA8",
@@ -2474,7 +2474,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="39"]
-image = SubResource("Image_gw7hv")
+image = SubResource("Image_17cl6")
 
 [sub_resource type="StyleBoxTexture" id="272"]
 content_margin_left = 0.0
@@ -2534,7 +2534,7 @@ axis_stretch_horizontal = 2
 axis_stretch_vertical = 2
 region_rect = Rect2(24, 40, 8, 8)
 
-[sub_resource type="Image" id="Image_5vh8k"]
+[sub_resource type="Image" id="Image_pwvp8"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNS1kHTUtZJ01LWVBNS1lmTUtZaE1LWWhNS1loTUtZaE1LWWhNS1loWFZjarCvtYFNS1knTUtZBwAAAAAAAAAATUtZJzg3QLQgICT6Hh4i/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hx8j/4uLjf//////tra53U1LWScAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/0JCR//4+Pj//v7+/1dXWvtNS1lQAAAAAAAAAABNS1lmHh4i/yIiJ/8lJSr/JSUq/05OUv8mJiv/JSUq/yUlKv/Fxcf//////6qqq/8eHiL/TUtZZgAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/7i4uv//////X19j/yUlKv90dHf//////+3t7f8zMzj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv+NjY///////7i4uf81NTn/7e3t//////90dHf/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/Ojo+//v7+//6+vr/srK0///////Fxcf/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/yUlKv+4uLr///////7+/v/4+Pj/RUVJ/yUlKv8jIyj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv8lJSr/YWFl////////////j4+S/yUlKv8lJSr/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/JSUq/yYmK/9OTlL/Y2Nm/yoqL/8lJSr/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZZh4eIv8iIif/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8iIif/Hh4i/01LWWYAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/yMjKP8iIif/ICAk/yAgJPtNS1lQAAAAAAAAAABNS1knODZAtCAgJPseHiL/Hx8j/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hh4i/yAgJfo4NkC0TUtZJwAAAAAAAAAATUtZB01LWSdNS1lQTUtZZk1LWWhNS1loTUtZaE1LWWhNS1loTUtZaE1LWWZNS1lQTUtZJ01LWQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="),
 "format": "RGBA8",
@@ -2544,9 +2544,9 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="334"]
-image = SubResource("Image_5vh8k")
+image = SubResource("Image_pwvp8")
 
-[sub_resource type="Image" id="Image_5axhi"]
+[sub_resource type="Image" id="Image_igjjy"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNS1kHTUtZJ01LWVBNS1lmTUtZaE1LWWhNS1loTUtZaE1LWWhNS1loTUtZZk1LWVBNS1knTUtZBwAAAAAAAAAATUtZJzg3QLQgICT6Hh4i/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hx8j/x4eIv8gICT6ODdAtE1LWScAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/yMjKP8iIif/ICAk/yAgJPpNS1lQAAAAAAAAAABNS1lmHh4i/yIiJ/8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yIiJ/8eHiL/TUtZZgAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8jIyj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8jIyj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZZh4eIv8iIif/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8iIif/Hh4i/01LWWYAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/yMjKP8iIif/ICAk/yAgJPtNS1lQAAAAAAAAAABNS1knODZAtCAgJPseHiL/Hx8j/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hh4i/yAgJfo4NkC0TUtZJwAAAAAAAAAATUtZB01LWSdNS1lQTUtZZk1LWWhNS1loTUtZaE1LWWhNS1loTUtZaE1LWWZNS1lQTUtZJ01LWQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="),
 "format": "RGBA8",
@@ -2556,7 +2556,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="336"]
-image = SubResource("Image_5axhi")
+image = SubResource("Image_igjjy")
 
 [sub_resource type="AtlasTexture" id="359"]
 atlas = ExtResource("1_ak8qr")
@@ -2632,7 +2632,7 @@ border_width_left = 1
 border_color = Color(0.2, 0.2, 0.2, 1)
 anti_aliasing = false
 
-[sub_resource type="Image" id="Image_4acxx"]
+[sub_resource type="Image" id="Image_i457w"]
 data = {
 "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKCgnmNjY15mJiYeYGirQCMrLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOFVfAE5OTjGCgoJ5jY2NeZiYmHlOTk4xTk5OMU5OTjE4VV8AOFVfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADhVXwBOTk4cTk5OMU5OTjFOTk4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="),
 "format": "RGBA8",
@@ -2642,7 +2642,7 @@ data = {
 }
 
 [sub_resource type="ImageTexture" id="111"]
-image = SubResource("Image_4acxx")
+image = SubResource("Image_i457w")
 
 [sub_resource type="AtlasTexture" id="20"]
 atlas = ExtResource("3_0m6kw")
diff --git a/tools/configurator/scripts/GlobalsTab.gd b/tools/configurator/scripts/GlobalsTab.gd
index c4174796..be6a01d5 100644
--- a/tools/configurator/scripts/GlobalsTab.gd
+++ b/tools/configurator/scripts/GlobalsTab.gd
@@ -7,3 +7,4 @@ func _ready():
 
 func _connect_signals():
 	%quick_resume_button.pressed.connect(class_functions.run_function.bind(%quick_resume_button))
+	%button_swap_button.pressed.connect(class_functions.run_function.bind(%button_swap_button))
diff --git a/tools/configurator/scripts/ToolsTab.gd b/tools/configurator/scripts/ToolsTab.gd
index a2ab4dc3..f4551d2f 100644
--- a/tools/configurator/scripts/ToolsTab.gd
+++ b/tools/configurator/scripts/ToolsTab.gd
@@ -37,15 +37,12 @@ func check_internet_connection():
 	http_request.request("https://retrodeck.net/")
 
 func _on_request_completed(_result, response_code, _headers, _body):
-	var style_box = StyleBoxFlat.new()
+	#var style_box = StyleBoxFlat.new()
 	if response_code == 200:
 		class_functions.logger("i","Internet Connection Succesful")
-		style_box.bg_color = Color(0, 1, 0)
-		%check_conn_button.add_theme_stylebox_override("normal", style_box)
+		%check_conn_button.button_pressed = true
 		%check_conn_button.text += " - CONNECTED"
-
 	else:
 		class_functions.logger("d","Internet Connection Failed")
-		style_box.bg_color = Color(1, 0, 0)
-		%check_conn_button.add_theme_stylebox_override("normal", style_box)
+		%check_conn_button.button_pressed = false
 		%check_conn_button.text += " - NOT CONNECTED: " + str(response_code)
diff --git a/tools/configurator/scripts/class_functions.gd b/tools/configurator/scripts/class_functions.gd
index a8b681bb..997f162f 100644
--- a/tools/configurator/scripts/class_functions.gd
+++ b/tools/configurator/scripts/class_functions.gd
@@ -20,9 +20,8 @@ var sound_effects: bool = true
 var title: String
 var quick_resume_status: bool
 var update_check: bool
-@onready var retoarch_qrg_button: Button  = get_tree().current_scene.get_node("%retroarch_quick_resume_button")
-@onready var retoarch_qrs_button: Button  = get_tree().current_scene.get_node("%quick_resume_button")
-@onready var options_update_button: Button  = get_tree().current_scene.get_node("%update_notification_button")
+var abxy_state: String
+signal update_global_signal
 
 func _ready():
 	var config = data_handler.parse_config_to_json(config_file_path)
@@ -39,7 +38,20 @@ func _ready():
 	title = "\n   " + rd_version + "\nConfigurator\n    " + gc_version
 	quick_resume_status = config["quick_resume"]["retroarch"]
 	update_check = config["options"]["update_check"]
-
+	var testT:Dictionary = data_handler.get_elements_in_section(config_file_path, "abxy_button_swap")
+	var true_values: int
+	var false_values: int
+	for value in testT.values():
+		if value == "true":
+			true_values += 1
+		else:
+			false_values += 1
+	if true_values == testT.size():
+		abxy_state = "true"
+	elif false_values == testT.size():
+		abxy_state = "false"
+	else:
+		abxy_state = "mixed"
 func logger(log_type: String, log_text: String) -> void:
 	# Type of log messages:
 	# log d - debug message: maybe in the future we can decide to hide them in main builds or if an option is toggled
@@ -190,28 +202,28 @@ func display_json_data() -> void:
 			var emulator = app_data.emulators[key]
 			# Display the properties of each emulator
 			print("System Name: ", emulator.name)
-			print("Description: ", emulator.description)
+			#print("Description: ", emulator.description)
 			#print("System: ", emulator.systen)
-			print("Help URL: ", emulator.url)
-			print("Properties:")
+			#print("Help URL: ", emulator.url)
+			#print("Properties:")
 			for property: EmulatorProperty in emulator.properties:
-				print("Cheevos: ", property.cheevos)
-				print("Borders: ", property.borders)
+				#print("Cheevos: ", property.cheevos)
+				#print("Borders: ", property.borders)
 				print("ABXY_button:", property.abxy_button)
-				print("multi_user_config_dir: ", property.multi_user_config_dir)
+				#print("multi_user_config_dir: ", property.multi_user_config_dir)
 		
 		for key in app_data.cores.keys():
 			var core = app_data.cores[key]
 			print("Core Name: ", core.name)
-			print("Description: ", core.description)
-			print("Properties:")
+			#print("Description: ", core.description)
+			#print("Properties:")
 			for property: CoreProperty in core.properties:
-				print("Cheevos: ", property.cheevos)
-				print("Cheevos Hardcore: ", property.cheevos_hardcore)
-				print("Quick Resume: ", property.quick_resume)
-				print("Rewind: ", property.rewind)
-				print("Borders: ", property.borders)
-				print("Widescreen: ", property.widescreen)
+				#print("Cheevos: ", property.cheevos)
+				#print("Cheevos Hardcore: ", property.cheevos_hardcore)
+				#print("Quick Resume: ", property.quick_resume)
+				#print("Rewind: ", property.rewind)
+				#print("Borders: ", property.borders)
+				#print("Widescreen: ", property.widescreen)
 				print("ABXY_button:", property.abxy_button)
 	else:
 		print ("No emulators")	
@@ -227,38 +239,34 @@ func enable_global(button: Button) -> void:
 	match button.name:
 		"quick_resume_button", "retroarch_quick_resume_button":
 			quick_resume_status = true
-			class_functions._set_up_globals()
+			update_global_signal.emit()
 			result = data_handler.change_cfg_value(class_functions.config_file_path, "retroarch", "quick_resume", "true")
 			change_global(result)
 		"update_notification_button":
 			result = data_handler.change_cfg_value(class_functions.config_file_path, "update_check", "options", "true")
-	
+		"button_swap_button":
+			if abxy_state == "false":
+				abxy_state = "true"
+				result = data_handler.change_all_cfg_values(class_functions.config_file_path, "abxy_button_swap", "true")
+
 func disable_global(button: Button) -> void:
 	var result: Array
 	match button.name:
 		"quick_resume_button", "retroarch_quick_resume_button":
 			quick_resume_status = false
-			class_functions._set_up_globals()
+			update_global_signal.emit()
 			result = data_handler.change_cfg_value(class_functions.config_file_path, "retroarch", "quick_resume", "false")
 			change_global(result)
 		"update_notification_button":
 			result = data_handler.change_cfg_value(class_functions.config_file_path, "update_check", "options", "false")
-	
+		"button_swap_button":
+			if abxy_state == "true":
+				abxy_state = "false"
+				result = data_handler.change_all_cfg_values(class_functions.config_file_path, "abxy_button_swap", "false")
+
 func change_global(parameters: Array) -> void:
 	parameters.push_front("build_preset_config")
 	class_functions.logger("d", "Running: %s" % var_to_str(parameters)) 
 	var result: Dictionary
 	result = await class_functions.run_thread_command(class_functions.wrapper_command, parameters, false)
 	class_functions.logger("d", "Exit code: %s" % result["exit_code"])
-
-func _set_up_globals() -> void:
-	if update_check:
-		options_update_button.button_pressed = true
-	else:
-		options_update_button.button_pressed = false
-	if quick_resume_status:
-		retoarch_qrg_button.button_pressed = true
-		retoarch_qrs_button.button_pressed = true
-	else:
-		retoarch_qrg_button.button_pressed = false
-		retoarch_qrs_button.button_pressed = false
diff --git a/tools/configurator/scripts/data_handler.gd b/tools/configurator/scripts/data_handler.gd
index b7a8209b..6ea8d3b4 100644
--- a/tools/configurator/scripts/data_handler.gd
+++ b/tools/configurator/scripts/data_handler.gd
@@ -4,7 +4,6 @@ class_name DataHandler
 
 var data_file_path = "/app/retrodeck/config/retrodeck/reference_lists/features.json"
 var app_data: AppData
-var button_swap: Array
 
 func _ready():
 	# Load the data when the scene is ready
@@ -327,3 +326,39 @@ func change_cfg_value(file_path: String, key: String, section: String, new_value
 		class_functions.logger("i", "Change: Key: %s Section %s New Value: %s" % [key, section, new_value])
 	write_cfg_file(file_path, lines, changes)
 	return parameters
+
+func change_all_cfg_values(file_path: String, section: String, new_value: String) -> Array:
+	var lines: Array = read_cfg_file(file_path)
+	var parameters: Array =[section, new_value]
+	var changes: Dictionary = {}
+	var current_section: String
+	for line in lines:
+		var trimmed_line: String = line.strip_edges()
+		if trimmed_line.begins_with("[") and trimmed_line.ends_with("]"):
+			current_section = trimmed_line.trim_prefix("[").trim_suffix("]")
+			if current_section == section:
+				changes[current_section] = {}  # Initialize changes for this section
+		elif "=" in trimmed_line and current_section == section:
+			var parts: Array = trimmed_line.split("=", false)
+			if parts.size() >= 2:
+				var key: String = parts[0].strip_edges()
+				changes[section][key] = new_value
+				class_functions.logger("i", "Change: Key: %s Section %s New Value: %s" % [key, section, new_value])
+	write_cfg_file(file_path, lines, changes)
+	return parameters
+
+func get_elements_in_section(file_path: String, section: String) -> Dictionary:
+	var lines: Array = read_cfg_file(file_path)
+	var elements: Dictionary = {}
+	var current_section: String = ""
+	for line in lines:
+		var trimmed_line: String = line.strip_edges()
+		if trimmed_line.begins_with("[") and trimmed_line.ends_with("]"):
+			current_section = trimmed_line.trim_prefix("[").trim_suffix("]")
+		elif "=" in trimmed_line and current_section == section:
+			var parts: Array = trimmed_line.split("=", false)
+			if parts.size() >= 2:
+				var key: String = parts[0].strip_edges()
+				var value: String = parts[1].strip_edges()
+				elements[key] = value
+	return elements
diff --git a/tools/configurator/scripts/main.gd b/tools/configurator/scripts/main.gd
index 66dc0302..1cf47278 100644
--- a/tools/configurator/scripts/main.gd
+++ b/tools/configurator/scripts/main.gd
@@ -16,17 +16,11 @@ func _ready():
 	_get_nodes()
 	_connect_signals()
 	_play_main_animations()
-	class_functions._set_up_globals()
+	_set_up_globals()
 	%locale_option.selected = class_functions.map_locale_id(OS.get_locale_language())
-	#class_functions.logger()	
 	%rd_title.text += class_functions.title
 	class_functions.logger("i","Started Godot configurator")
 	#class_functions.display_json_data()
-	#var log_file = class_functions.import_text_file(rd_logs +"/retrodeck.log")
-	#for id in config.paths:
-	#	var path_data = config.paths[id]
-	#	print (id)
-
 	# set current startup tab to match IDE	
 	tab_container.current_tab = 0
 	#add_child(class_functions) # Needed for threaded results Not need autoload?
@@ -67,7 +61,7 @@ func _get_nodes() -> void:
 	tab_container = get_node("%TabContainer")
 	anim_logo = get_node("%logo_animated")
 	log_option = get_node("%logs_button")
-	
+
 func _connect_signals() -> void:
 	#signal_theme_changed.connect(_conf_theme)
 	theme_option.item_selected.connect(_conf_theme)
@@ -77,6 +71,8 @@ func _connect_signals() -> void:
 	%decorations_save.pressed.connect(_hide_show_buttons.bind(%decorations_save,%decorations_save.get_parent(),null))
 	%decorations_button.pressed.connect(_hide_show_containers.bind(%decorations_button, %decorations_gridcontainer))
 	%systems_button.pressed.connect(_hide_show_containers.bind(%systems_button, %systems_gridcontainer))
+	class_functions.update_global_signal.connect(_set_up_globals)
+
 
 func _conf_theme(index: int) -> void: 
 	match index:
@@ -200,3 +196,35 @@ func combine_tkeys(): #More as a test
 	#$Background/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container/cheevos_hardcore.text = tr("TK_CHEEVOSHARDCORE") + " " + tr("TK_SOON")
 	#$Background/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/data_mng_container/saves_sync.text = tr("TK_SAVESSYNC") + " " + tr("TK_SOON")
 	#$Background/MarginContainer/TabContainer/TK_CONFIGURATOR/ScrollContainer/VBoxContainer/system_container/easter_eggs.text = tr("TK_EASTEREGGS") + " " + tr("TK_SOON")
+
+func _set_up_globals() -> void:
+	if class_functions.update_check:
+		%update_notification_button.button_pressed = true
+	else:
+		%update_notification_button.button_pressed = false
+	if class_functions.quick_resume_status:
+		%quick_resume_button.button_pressed = true
+		%retroarch_quick_resume_button.button_pressed = true
+	else:
+		%quick_resume_button.button_pressed = false
+		%retroarch_quick_resume_button.button_pressed = false
+	if class_functions.abxy_state == "true":
+		%button_swap_button.button_pressed = true
+	elif class_functions.abxy_state == "false":
+		%button_swap_button.button_pressed = false
+	else:
+		var style_box = StyleBoxFlat.new()
+		style_box.bg_color = Color(1, 0.54902, 0, 1)
+		style_box.corner_detail = 8
+		style_box.border_width_left = 15
+		style_box.border_width_top = 15
+		style_box.border_width_right = 15
+		style_box.border_width_bottom = 15
+		style_box.corner_radius_top_left = 25
+		style_box.corner_radius_top_right = 25
+		style_box.corner_radius_bottom_right = 25
+		style_box.corner_radius_bottom_left = 25
+		style_box.border_color = Color(0.102, 0.624, 1, 1)
+		style_box.border_blend = true
+		%button_swap_button.add_theme_stylebox_override("normal", style_box)
+		%button_swap_button.toggle_mode = false